domain analysis & data modeling

68
Domain Analysis & Data Modeling Course IN4308 Master Computer Science Delft University of Technology Eelco Visser http://eelcovisser.org Lecture2 Thursday, February 11, 2010

Upload: eelco-visser

Post on 12-Jan-2015

6.298 views

Category:

Education


3 download

DESCRIPTION

These are the slides for the second lecture of the course "Model-Driven Software Development" taught at Delft University of Technology in the academic year 2009-2010.

TRANSCRIPT

Page 1: Domain Analysis & Data Modeling

Domain Analysis & Data Modeling

Course IN4308Master Computer Science

Delft University of Technology

Eelco Visserhttp://eelcovisser.org

Lecture2

Thursday, February 11, 2010

Page 2: Domain Analysis & Data Modeling

Course Goal

Learn to design and implement domain-specific languages

Understand DSL design choices and make reasoned decisions about their application

Thursday, February 11, 2010

Page 3: Domain Analysis & Data Modeling

ProblemDomain HLL MachineDSL

domain-specific models reduce gap between problem domain and implementation

Model-Driven Software Development

Thursday, February 11, 2010

Page 4: Domain Analysis & Data Modeling

Why domain-specific languages?

Domain-specific models

- increase level of abstraction

- are closer to problem domain

- are smaller

- are easier to write

- are easier to maintain

Thursday, February 11, 2010

Page 5: Domain Analysis & Data Modeling

What is a model?

A model

- is a simplification of a system

★ abstraction, description, specification, information

- can answer questions in place of actual system

★ analysis, inference, predictions

- is used for a purpose

★ understanding, planing, risk analysis, ...

Thursday, February 11, 2010

Page 6: Domain Analysis & Data Modeling

How are ‘models’ different from ‘code’

- Models are just another form of code

- Are models better than code?

★ no, models provide different level of abstraction

★ depends on the purpose

★ how well does DSL fit purpose

★ should be easier to analyze

- Continuum of abstractions

- Abstraction => giving up control

Thursday, February 11, 2010

Page 7: Domain Analysis & Data Modeling

“Far better at some key things”

Thursday, February 11, 2010

Page 8: Domain Analysis & Data Modeling

How do we make DSLs?

Thursday, February 11, 2010

Page 9: Domain Analysis & Data Modeling

Model

Syntax

DSL

Checks

Editor

Transformation

GeneratorSoftwareSystem

generate

described by

consists of

Thursday, February 11, 2010

Page 10: Domain Analysis & Data Modeling

What makes a DSL?

Thursday, February 11, 2010

Page 11: Domain Analysis & Data Modeling

What makes a DSL?

The DomainThursday, February 11, 2010

Page 12: Domain Analysis & Data Modeling

What is a domain?

Thursday, February 11, 2010

Page 13: Domain Analysis & Data Modeling

Domain Engineering is the activity of collecting, organizing, and storing past experience in building

systems or parts of systems in a particular domain in the form of reusable assets (i.e. reusable work

products), as well as providing an adequate means for reusing these assets (i.e., retrieval, qualification,

dissemination, adaptation, assembly, and so on) when building new systems

Source: Czarnecki & Eisenecker, Generative Programming, 2000

Thursday, February 11, 2010

Page 14: Domain Analysis & Data Modeling

DomainAnalysis

DomainDesign

DomainImplementation

RequirementsAnalysis

ProductConfiguration

Integrationand Test

product

domainknowledge

domainmodel

system familyarchitecture

requirements

requirements

requirements

features configuration

Domain Engineering

Application Engineering

Source: Czarnecki & Eisenecker, Generative Programming, 2000

DSLscomponentsgenerators

Thursday, February 11, 2010

Page 15: Domain Analysis & Data Modeling

Application Domain = Family of Systems

Identify

- Commonality

★ What is the same in all systems?

★ Can be reused between applications

★ Standard components

★ Generated code

- Variability

★ What is different between systems?

★ Needs to be defined for each application

★ Using domain-specific language

Thursday, February 11, 2010

Page 16: Domain Analysis & Data Modeling

Domain analysis in application engineering

ProblemDomain

SolutionDomain

implement

validate

Thursday, February 11, 2010

Page 17: Domain Analysis & Data Modeling

Domain: “A sphere of knowledge, influence, or activity”

Eric Evans, Domain-Driven Design, 2004

“The subject to which the user applies a program is the domain of the software”

Thursday, February 11, 2010

Page 18: Domain Analysis & Data Modeling

System

Thursday, February 11, 2010

Page 19: Domain Analysis & Data Modeling

Interaction Design

Domain-Driven Design

Data Model Design

Thursday, February 11, 2010

Page 20: Domain Analysis & Data Modeling

Interaction Design

Thursday, February 11, 2010

Page 21: Domain Analysis & Data Modeling

X + Computer = Computer

Cognitive Friction

Dancing Bearware

Thursday, February 11, 2010

Page 22: Domain Analysis & Data Modeling

Analysis

Software design driven by developers

- implementation model is leading

- convenient for developer, not for user

- developers drive design ‘from the back seat’

Thursday, February 11, 2010

Page 23: Domain Analysis & Data Modeling

Thursday, February 11, 2010

Page 24: Domain Analysis & Data Modeling

User Personas

Goals (not Tasks)

Thursday, February 11, 2010

Page 25: Domain Analysis & Data Modeling

Polite software is

★ interested in me

★ forthcoming

★ has common sense

★ anticipates my needs

★ is responsive

★ is taciturn about its problems

★ is well informed

★ is perceptive

★ is self-confident

★ stays focused

★ is fudgable

★ is trustworthy

Thursday, February 11, 2010

Page 26: Domain Analysis & Data Modeling

Interaction Designrequires

Big Up Front Design

Thursday, February 11, 2010

Page 27: Domain Analysis & Data Modeling

How can we integrate interaction design in software engineering?

Can programmers be interaction designers?Thursday, February 11, 2010

Page 28: Domain Analysis & Data Modeling

Some lessons that I have tried to apply

- Direct manipulation

★ edit where you view

- No confirmations

★ no destructive, catastrophic actions

- No inaccessible actions/links

★ apply access control to source of navigation

- Limitations for user should be based on policy

★ policy: rules based on domain requirements

★ mechanism: inconvenient to implement

Thursday, February 11, 2010

Page 29: Domain Analysis & Data Modeling

CourseManagement

System

Student

Lecturer

UniversityAdministrationGuests

Thursday, February 11, 2010

Page 30: Domain Analysis & Data Modeling

Thursday, February 11, 2010

Page 31: Domain Analysis & Data Modeling

Thursday, February 11, 2010

Page 32: Domain Analysis & Data Modeling

Thursday, February 11, 2010

Page 33: Domain Analysis & Data Modeling

Thursday, February 11, 2010

Page 34: Domain Analysis & Data Modeling

Thursday, February 11, 2010

Page 35: Domain Analysis & Data Modeling

Thursday, February 11, 2010

Page 36: Domain Analysis & Data Modeling

Thursday, February 11, 2010

Page 37: Domain Analysis & Data Modeling

Thursday, February 11, 2010

Page 38: Domain Analysis & Data Modeling

Thursday, February 11, 2010

Page 39: Domain Analysis & Data Modeling

Thursday, February 11, 2010

Page 40: Domain Analysis & Data Modeling

Thursday, February 11, 2010

Page 41: Domain Analysis & Data Modeling

Thursday, February 11, 2010

Page 42: Domain Analysis & Data Modeling

Thursday, February 11, 2010

Page 43: Domain Analysis & Data Modeling

Thursday, February 11, 2010

Page 44: Domain Analysis & Data Modeling

Thursday, February 11, 2010

Page 45: Domain Analysis & Data Modeling

Thursday, February 11, 2010

Page 46: Domain Analysis & Data Modeling

What goals does/should ‘The Department’ support?

Thursday, February 11, 2010

Page 47: Domain Analysis & Data Modeling

Thursday, February 11, 2010

Page 48: Domain Analysis & Data Modeling

Eric Evans, Domain-Driven Design, 2004

“Every software program relates to some activity or interest of its use. That subject area to which the user applies a program

is the domain of the software”

Thursday, February 11, 2010

Page 49: Domain Analysis & Data Modeling

Eric Evans, Domain-Driven Design, 2004

“A model is a selectively simplified and consiously structured form of knowledge”

Thursday, February 11, 2010

Page 50: Domain Analysis & Data Modeling

Eric Evans, Domain-Driven Design, 2004

Ubiquitous Language: “a language structured around the domain model and

used by all team members to connect all the activities of the team with the software”

Thursday, February 11, 2010

Page 51: Domain Analysis & Data Modeling

Thursday, February 11, 2010

Page 52: Domain Analysis & Data Modeling

[Course]-*[Student][Course]-*[Lecturer][Course]-*[Assistant][Course]-*[Lecture][Course]-*[Assignment][Assignment]-*[Submission][Submission]1-1..[Student][Lecture]-[Slides][Lecture]-[Notes]

http://yUML.me: a DSL for drawing UML diagramsThursday, February 11, 2010

Page 53: Domain Analysis & Data Modeling

Thursday, February 11, 2010

Page 54: Domain Analysis & Data Modeling

Collaboration on Assignments

Scenario 1

- Piet starts submission for Design 1

- Jan starts submission for Design 1

- Piet and Jan want to work together on Design 1

Scenario 2

- Piet, Jan work together on Design 1

- They want to split

Thursday, February 11, 2010

Page 55: Domain Analysis & Data Modeling

- Creating submissions

★ should be enrolled

- Can be partner if

★ no active submission

★ #students < limit

- Start submission if

★ not part of active submission

Binding Students to Submissions

Thursday, February 11, 2010

Page 56: Domain Analysis & Data Modeling

Submissions & Deadlines

- Edit assignment after submission?

★ before deadline

★ after deadline

★ after/during grading

- Status of assignment not submitted before deadline?

- Submitting partial assignments?

Thursday, February 11, 2010

Page 57: Domain Analysis & Data Modeling

Domain analysis is more than drawing a class diagram

Domain Model = Concepts + Interaction

System

Thursday, February 11, 2010

Page 58: Domain Analysis & Data Modeling

A domain-specific language for domain-driven design

Thursday, February 11, 2010

Page 59: Domain Analysis & Data Modeling

entities with propertiesThursday, February 11, 2010

Page 60: Domain Analysis & Data Modeling

Thursday, February 11, 2010

Page 61: Domain Analysis & Data Modeling

Thursday, February 11, 2010

Page 62: Domain Analysis & Data Modeling

Thursday, February 11, 2010

Page 63: Domain Analysis & Data Modeling

Thursday, February 11, 2010

Page 64: Domain Analysis & Data Modeling

Thursday, February 11, 2010

Page 65: Domain Analysis & Data Modeling

Thursday, February 11, 2010

Page 66: Domain Analysis & Data Modeling

‘Physical’ Data Models

Thursday, February 11, 2010

Page 67: Domain Analysis & Data Modeling

From conceptual to physical data model

In memory

- objects

- hash maps

Persistent data

- Records in RDBS

- XML

- JSON

- Text (csv)

Thursday, February 11, 2010

Page 68: Domain Analysis & Data Modeling

Schedule

Lab this week:

★ WebDSL tutorial => submit page index

★ Make design proposal for a web application

★ Entity declarations for your web application

Read/think:

★ Read: interaction design, domain-driven design

★ Case 1: analysing issues in digital library domain

Next week

★ Web Abstractions

Thursday, February 11, 2010