Domain Analysis & Data Modeling
-
Upload
eelco-visser -
Category
Education
-
view
6.291 -
download
3
description
Transcript of 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
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
ProblemDomain HLL MachineDSL
domain-specific models reduce gap between problem domain and implementation
Model-Driven Software Development
Thursday, February 11, 2010
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
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
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
“Far better at some key things”
Thursday, February 11, 2010
How do we make DSLs?
Thursday, February 11, 2010
Model
Syntax
DSL
Checks
Editor
Transformation
GeneratorSoftwareSystem
generate
described by
consists of
Thursday, February 11, 2010
What makes a DSL?
Thursday, February 11, 2010
What makes a DSL?
The DomainThursday, February 11, 2010
What is a domain?
Thursday, February 11, 2010
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
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
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
Domain analysis in application engineering
ProblemDomain
SolutionDomain
implement
validate
Thursday, February 11, 2010
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
System
Thursday, February 11, 2010
Interaction Design
Domain-Driven Design
Data Model Design
Thursday, February 11, 2010
Interaction Design
Thursday, February 11, 2010
X + Computer = Computer
Cognitive Friction
Dancing Bearware
Thursday, February 11, 2010
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
Thursday, February 11, 2010
User Personas
Goals (not Tasks)
Thursday, February 11, 2010
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
Interaction Designrequires
Big Up Front Design
Thursday, February 11, 2010
How can we integrate interaction design in software engineering?
Can programmers be interaction designers?Thursday, February 11, 2010
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
CourseManagement
System
Student
Lecturer
UniversityAdministrationGuests
Thursday, February 11, 2010
Thursday, February 11, 2010
Thursday, February 11, 2010
Thursday, February 11, 2010
Thursday, February 11, 2010
Thursday, February 11, 2010
Thursday, February 11, 2010
Thursday, February 11, 2010
Thursday, February 11, 2010
Thursday, February 11, 2010
Thursday, February 11, 2010
Thursday, February 11, 2010
Thursday, February 11, 2010
Thursday, February 11, 2010
Thursday, February 11, 2010
Thursday, February 11, 2010
Thursday, February 11, 2010
What goals does/should ‘The Department’ support?
Thursday, February 11, 2010
Thursday, February 11, 2010
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
Eric Evans, Domain-Driven Design, 2004
“A model is a selectively simplified and consiously structured form of knowledge”
Thursday, February 11, 2010
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
Thursday, February 11, 2010
[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
Thursday, February 11, 2010
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
- 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
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
Domain analysis is more than drawing a class diagram
Domain Model = Concepts + Interaction
System
Thursday, February 11, 2010
A domain-specific language for domain-driven design
Thursday, February 11, 2010
entities with propertiesThursday, February 11, 2010
Thursday, February 11, 2010
Thursday, February 11, 2010
Thursday, February 11, 2010
Thursday, February 11, 2010
Thursday, February 11, 2010
Thursday, February 11, 2010
‘Physical’ Data Models
Thursday, February 11, 2010
From conceptual to physical data model
In memory
- objects
- hash maps
Persistent data
- Records in RDBS
- XML
- JSON
- Text (csv)
Thursday, February 11, 2010
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