SlideShare ist ein Scribd-Unternehmen logo
1 von 68
Downloaden Sie, um offline zu lesen
Domain Analysis
                              & Data Modeling
                                   Lecture2



                                                        Course IN4308
       Eelco Visser
                                             Master Computer Science
  http://eelcovisser.org                 Delft University of Technology
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
Model-Driven Software Development




   Problem
                                      DSL                HLL             Machine
   Domain




                              domain-specific models reduce gap between
                                 problem domain and implementation
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
Syntax



                                                                           Checks

                                     described by
                   Model                            DSL                     Editor

                                                          consists of
                              generate                                  Transformation

               Software
                System                                                    Generator

Thursday, February 11, 2010
What makes a DSL?




Thursday, February 11, 2010
What makes a DSL?


                              The Domain
Thursday, 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
Domain Engineering

     domain                                domain                   system family
    knowledge                              model                     architecture

                                Domain                  Domain                        Domain
                                Analysis                Design                     Implementation


                                                                                                 DSLs
                    requirements                                                                 components
                                                                                                 generators



                           Requirements                 Product                       Integration
                             Analysis                 Configuration                      and Test
    requirements                           features                   configuration                         product



    Application Engineering
                                                          Source: Czarnecki & Eisenecker, Generative Programming, 2000
s 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



                                            implement

                              Problem                     Solution
                              Domain           validate
                                                          Domain



Thursday, February 11, 2010
Domain: “A sphere of knowledge, influence, or activity”




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




                                              Eric Evans, Domain-Driven Design, 2004
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 Design
               requires
         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
Student




                                Course
                                             University
              Guests          Management   Administration
                                System




                               Lecturer

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
“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”




                                            Eric Evans, Domain-Driven Design, 2004
Thursday, February 11, 2010
“A model is a selectively simplified and
                         consiously structured form of knowledge”




                                         Eric Evans, Domain-Driven Design, 2004
Thursday, February 11, 2010
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”




                                       Eric Evans, Domain-Driven Design, 2004
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 diagrams
Thursday, 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
Binding Students to Submissions



                -       Creating submissions
                        ★ should be enrolled

                -       Can be partner if
                        ★ no active submission
                        ★ #students < limit

                -       Start submission if
                        ★ not part of active submission




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 Model = Concepts + Interaction




                                       System




                  Domain analysis is more than drawing a class diagram

Thursday, February 11, 2010
A domain-specific language
                               for domain-driven design




Thursday, February 11, 2010
entities with properties
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
‘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

Weitere ähnliche Inhalte

Was ist angesagt?

Protection against Lost or Stolen Data with Novell ZENworks Endpoint Security...
Protection against Lost or Stolen Data with Novell ZENworks Endpoint Security...Protection against Lost or Stolen Data with Novell ZENworks Endpoint Security...
Protection against Lost or Stolen Data with Novell ZENworks Endpoint Security...Novell
 
Avoiding Common Novell ZENworks Configuration Management Implementation Pitfalls
Avoiding Common Novell ZENworks Configuration Management Implementation PitfallsAvoiding Common Novell ZENworks Configuration Management Implementation Pitfalls
Avoiding Common Novell ZENworks Configuration Management Implementation PitfallsNovell
 
Novell ZENworks Advanced Application Management
Novell ZENworks Advanced Application ManagementNovell ZENworks Advanced Application Management
Novell ZENworks Advanced Application ManagementNovell
 
Introducing Novell Conferencing
Introducing Novell ConferencingIntroducing Novell Conferencing
Introducing Novell ConferencingNovell
 
Introducing Novell Privileged User Manager and Securing Novell Open Enterpris...
Introducing Novell Privileged User Manager and Securing Novell Open Enterpris...Introducing Novell Privileged User Manager and Securing Novell Open Enterpris...
Introducing Novell Privileged User Manager and Securing Novell Open Enterpris...Novell
 
How to Maintain Software Appliances
How to Maintain Software AppliancesHow to Maintain Software Appliances
How to Maintain Software AppliancesNovell
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture PortfolioMajong DevJfu
 
A Complete, Low-cost Virtual Infrastructure for Small and Medium Businesses
A Complete, Low-cost Virtual Infrastructure for Small and Medium BusinessesA Complete, Low-cost Virtual Infrastructure for Small and Medium Businesses
A Complete, Low-cost Virtual Infrastructure for Small and Medium BusinessesNovell
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processesMajong DevJfu
 
02archintro
02archintro02archintro
02archintro624820
 
Discovering Computers: Chapter 13
Discovering Computers: Chapter 13Discovering Computers: Chapter 13
Discovering Computers: Chapter 13Anna Stirling
 
Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...
Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...
Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...lseinturier
 
V Labs Product Presentation
V Labs  Product PresentationV Labs  Product Presentation
V Labs Product PresentationWil Huijben
 
3 f6 9_distributed_systems
3 f6 9_distributed_systems3 f6 9_distributed_systems
3 f6 9_distributed_systemsop205
 
Streamline client deployments with customised installation packages
Streamline client deployments with customised installation packagesStreamline client deployments with customised installation packages
Streamline client deployments with customised installation packagesChristian Petters
 
Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...
Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...
Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...ICSM 2011
 

Was ist angesagt? (20)

Protection against Lost or Stolen Data with Novell ZENworks Endpoint Security...
Protection against Lost or Stolen Data with Novell ZENworks Endpoint Security...Protection against Lost or Stolen Data with Novell ZENworks Endpoint Security...
Protection against Lost or Stolen Data with Novell ZENworks Endpoint Security...
 
Avoiding Common Novell ZENworks Configuration Management Implementation Pitfalls
Avoiding Common Novell ZENworks Configuration Management Implementation PitfallsAvoiding Common Novell ZENworks Configuration Management Implementation Pitfalls
Avoiding Common Novell ZENworks Configuration Management Implementation Pitfalls
 
Novell ZENworks Advanced Application Management
Novell ZENworks Advanced Application ManagementNovell ZENworks Advanced Application Management
Novell ZENworks Advanced Application Management
 
Introducing Novell Conferencing
Introducing Novell ConferencingIntroducing Novell Conferencing
Introducing Novell Conferencing
 
Introducing Novell Privileged User Manager and Securing Novell Open Enterpris...
Introducing Novell Privileged User Manager and Securing Novell Open Enterpris...Introducing Novell Privileged User Manager and Securing Novell Open Enterpris...
Introducing Novell Privileged User Manager and Securing Novell Open Enterpris...
 
How to Maintain Software Appliances
How to Maintain Software AppliancesHow to Maintain Software Appliances
How to Maintain Software Appliances
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio
 
What’s New ?Linux on System z
What’s New ?Linux on System zWhat’s New ?Linux on System z
What’s New ?Linux on System z
 
A Complete, Low-cost Virtual Infrastructure for Small and Medium Businesses
A Complete, Low-cost Virtual Infrastructure for Small and Medium BusinessesA Complete, Low-cost Virtual Infrastructure for Small and Medium Businesses
A Complete, Low-cost Virtual Infrastructure for Small and Medium Businesses
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes
 
02archintro
02archintro02archintro
02archintro
 
SET NSF Final Presentation
SET NSF Final PresentationSET NSF Final Presentation
SET NSF Final Presentation
 
Discovering Computers: Chapter 13
Discovering Computers: Chapter 13Discovering Computers: Chapter 13
Discovering Computers: Chapter 13
 
Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...
Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...
Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...
 
V Labs Product Presentation
V Labs  Product PresentationV Labs  Product Presentation
V Labs Product Presentation
 
3 f6 9_distributed_systems
3 f6 9_distributed_systems3 f6 9_distributed_systems
3 f6 9_distributed_systems
 
Ajs 1 b
Ajs 1 bAjs 1 b
Ajs 1 b
 
Streamline client deployments with customised installation packages
Streamline client deployments with customised installation packagesStreamline client deployments with customised installation packages
Streamline client deployments with customised installation packages
 
Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...
Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...
Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...
 
Ajs 3 a
Ajs 3 aAjs 3 a
Ajs 3 a
 

Ähnlich wie Domain Analysis & Data Modeling

Language Engineering With Xtext
Language Engineering With XtextLanguage Engineering With Xtext
Language Engineering With XtextSven Efftinge
 
Detailed design
Detailed designDetailed design
Detailed designjsokohl
 
Detailed design: Nailing it Down
Detailed design: Nailing it DownDetailed design: Nailing it Down
Detailed design: Nailing it Downjsokohl
 
Domain Driven Design - Building Blocks
Domain Driven Design - Building BlocksDomain Driven Design - Building Blocks
Domain Driven Design - Building BlocksMark Windholtz
 
Deepak_Dhami_2017Jan
Deepak_Dhami_2017JanDeepak_Dhami_2017Jan
Deepak_Dhami_2017JanDeepak Dhami
 
Intel Ultrabook Software Development Tools - Intel AppLab Berlin
Intel Ultrabook Software Development Tools - Intel AppLab BerlinIntel Ultrabook Software Development Tools - Intel AppLab Berlin
Intel Ultrabook Software Development Tools - Intel AppLab BerlinIntel Developer Zone Community
 
EMC #1 Open XML Database (OEM)
EMC #1 Open XML Database (OEM)EMC #1 Open XML Database (OEM)
EMC #1 Open XML Database (OEM)Mountaha
 
On the Use of an Internal DSL for Enriching EMF Models
On the Use of an Internal DSL for Enriching EMF ModelsOn the Use of an Internal DSL for Enriching EMF Models
On the Use of an Internal DSL for Enriching EMF ModelsFilip Krikava
 
Cloud Computing - Making IT Simple
Cloud Computing - Making IT SimpleCloud Computing - Making IT Simple
Cloud Computing - Making IT SimpleBob Rhubart
 
Practical SOA for the Solution Architect
Practical SOA for the Solution Architect Practical SOA for the Solution Architect
Practical SOA for the Solution Architect WSO2
 
Smalltalk in Enterprise Applications
Smalltalk in Enterprise ApplicationsSmalltalk in Enterprise Applications
Smalltalk in Enterprise ApplicationsESUG
 
Transform Microsoft Application Environment With EMC Information Infrastructure
Transform Microsoft Application Environment With EMC Information InfrastructureTransform Microsoft Application Environment With EMC Information Infrastructure
Transform Microsoft Application Environment With EMC Information InfrastructureEMC Forum India
 
Application Repackaging Best Practices for Novell ZENworks 10 Configuration M...
Application Repackaging Best Practices for Novell ZENworks 10 Configuration M...Application Repackaging Best Practices for Novell ZENworks 10 Configuration M...
Application Repackaging Best Practices for Novell ZENworks 10 Configuration M...Novell
 
The Synergy Between the Object Database, Graph Database, Cloud Computing and ...
The Synergy Between the Object Database, Graph Database, Cloud Computing and ...The Synergy Between the Object Database, Graph Database, Cloud Computing and ...
The Synergy Between the Object Database, Graph Database, Cloud Computing and ...InfiniteGraph
 
Oracle Cloud Reference Architecture
Oracle Cloud Reference ArchitectureOracle Cloud Reference Architecture
Oracle Cloud Reference ArchitectureBob Rhubart
 
Chudi\'s Resume
Chudi\'s ResumeChudi\'s Resume
Chudi\'s Resumechuxyno
 
Introduction of file based workflows 111004 vfinal
Introduction of file based workflows 111004 vfinalIntroduction of file based workflows 111004 vfinal
Introduction of file based workflows 111004 vfinalMarie Josée (MJ) Drouin
 
1Lesson 5.3UML Deployment DiagramsLesson 5.2Distribu.docx
1Lesson 5.3UML Deployment DiagramsLesson 5.2Distribu.docx1Lesson 5.3UML Deployment DiagramsLesson 5.2Distribu.docx
1Lesson 5.3UML Deployment DiagramsLesson 5.2Distribu.docxfelicidaddinwoodie
 

Ähnlich wie Domain Analysis & Data Modeling (20)

6 28-12
6 28-126 28-12
6 28-12
 
Language Engineering With Xtext
Language Engineering With XtextLanguage Engineering With Xtext
Language Engineering With Xtext
 
Detailed design
Detailed designDetailed design
Detailed design
 
Detailed design: Nailing it Down
Detailed design: Nailing it DownDetailed design: Nailing it Down
Detailed design: Nailing it Down
 
Domain Driven Design - Building Blocks
Domain Driven Design - Building BlocksDomain Driven Design - Building Blocks
Domain Driven Design - Building Blocks
 
Framework
FrameworkFramework
Framework
 
Deepak_Dhami_2017Jan
Deepak_Dhami_2017JanDeepak_Dhami_2017Jan
Deepak_Dhami_2017Jan
 
Intel Ultrabook Software Development Tools - Intel AppLab Berlin
Intel Ultrabook Software Development Tools - Intel AppLab BerlinIntel Ultrabook Software Development Tools - Intel AppLab Berlin
Intel Ultrabook Software Development Tools - Intel AppLab Berlin
 
EMC #1 Open XML Database (OEM)
EMC #1 Open XML Database (OEM)EMC #1 Open XML Database (OEM)
EMC #1 Open XML Database (OEM)
 
On the Use of an Internal DSL for Enriching EMF Models
On the Use of an Internal DSL for Enriching EMF ModelsOn the Use of an Internal DSL for Enriching EMF Models
On the Use of an Internal DSL for Enriching EMF Models
 
Cloud Computing - Making IT Simple
Cloud Computing - Making IT SimpleCloud Computing - Making IT Simple
Cloud Computing - Making IT Simple
 
Practical SOA for the Solution Architect
Practical SOA for the Solution Architect Practical SOA for the Solution Architect
Practical SOA for the Solution Architect
 
Smalltalk in Enterprise Applications
Smalltalk in Enterprise ApplicationsSmalltalk in Enterprise Applications
Smalltalk in Enterprise Applications
 
Transform Microsoft Application Environment With EMC Information Infrastructure
Transform Microsoft Application Environment With EMC Information InfrastructureTransform Microsoft Application Environment With EMC Information Infrastructure
Transform Microsoft Application Environment With EMC Information Infrastructure
 
Application Repackaging Best Practices for Novell ZENworks 10 Configuration M...
Application Repackaging Best Practices for Novell ZENworks 10 Configuration M...Application Repackaging Best Practices for Novell ZENworks 10 Configuration M...
Application Repackaging Best Practices for Novell ZENworks 10 Configuration M...
 
The Synergy Between the Object Database, Graph Database, Cloud Computing and ...
The Synergy Between the Object Database, Graph Database, Cloud Computing and ...The Synergy Between the Object Database, Graph Database, Cloud Computing and ...
The Synergy Between the Object Database, Graph Database, Cloud Computing and ...
 
Oracle Cloud Reference Architecture
Oracle Cloud Reference ArchitectureOracle Cloud Reference Architecture
Oracle Cloud Reference Architecture
 
Chudi\'s Resume
Chudi\'s ResumeChudi\'s Resume
Chudi\'s Resume
 
Introduction of file based workflows 111004 vfinal
Introduction of file based workflows 111004 vfinalIntroduction of file based workflows 111004 vfinal
Introduction of file based workflows 111004 vfinal
 
1Lesson 5.3UML Deployment DiagramsLesson 5.2Distribu.docx
1Lesson 5.3UML Deployment DiagramsLesson 5.2Distribu.docx1Lesson 5.3UML Deployment DiagramsLesson 5.2Distribu.docx
1Lesson 5.3UML Deployment DiagramsLesson 5.2Distribu.docx
 

Mehr von Eelco Visser

CS4200 2019 | Lecture 5 | Transformation by Term Rewriting
CS4200 2019 | Lecture 5 | Transformation by Term RewritingCS4200 2019 | Lecture 5 | Transformation by Term Rewriting
CS4200 2019 | Lecture 5 | Transformation by Term RewritingEelco Visser
 
CS4200 2019 | Lecture 4 | Syntactic Services
CS4200 2019 | Lecture 4 | Syntactic ServicesCS4200 2019 | Lecture 4 | Syntactic Services
CS4200 2019 | Lecture 4 | Syntactic ServicesEelco Visser
 
CS4200 2019 | Lecture 3 | Parsing
CS4200 2019 | Lecture 3 | ParsingCS4200 2019 | Lecture 3 | Parsing
CS4200 2019 | Lecture 3 | ParsingEelco Visser
 
CS4200 2019 | Lecture 2 | syntax-definition
CS4200 2019 | Lecture 2 | syntax-definitionCS4200 2019 | Lecture 2 | syntax-definition
CS4200 2019 | Lecture 2 | syntax-definitionEelco Visser
 
CS4200 2019 Lecture 1: Introduction
CS4200 2019 Lecture 1: IntroductionCS4200 2019 Lecture 1: Introduction
CS4200 2019 Lecture 1: IntroductionEelco Visser
 
A Direct Semantics of Declarative Disambiguation Rules
A Direct Semantics of Declarative Disambiguation RulesA Direct Semantics of Declarative Disambiguation Rules
A Direct Semantics of Declarative Disambiguation RulesEelco Visser
 
Declarative Type System Specification with Statix
Declarative Type System Specification with StatixDeclarative Type System Specification with Statix
Declarative Type System Specification with StatixEelco Visser
 
Compiler Construction | Lecture 17 | Beyond Compiler Construction
Compiler Construction | Lecture 17 | Beyond Compiler ConstructionCompiler Construction | Lecture 17 | Beyond Compiler Construction
Compiler Construction | Lecture 17 | Beyond Compiler ConstructionEelco Visser
 
Domain Specific Languages for Parallel Graph AnalytiX (PGX)
Domain Specific Languages for Parallel Graph AnalytiX (PGX)Domain Specific Languages for Parallel Graph AnalytiX (PGX)
Domain Specific Languages for Parallel Graph AnalytiX (PGX)Eelco Visser
 
Compiler Construction | Lecture 15 | Memory Management
Compiler Construction | Lecture 15 | Memory ManagementCompiler Construction | Lecture 15 | Memory Management
Compiler Construction | Lecture 15 | Memory ManagementEelco Visser
 
Compiler Construction | Lecture 14 | Interpreters
Compiler Construction | Lecture 14 | InterpretersCompiler Construction | Lecture 14 | Interpreters
Compiler Construction | Lecture 14 | InterpretersEelco Visser
 
Compiler Construction | Lecture 13 | Code Generation
Compiler Construction | Lecture 13 | Code GenerationCompiler Construction | Lecture 13 | Code Generation
Compiler Construction | Lecture 13 | Code GenerationEelco Visser
 
Compiler Construction | Lecture 12 | Virtual Machines
Compiler Construction | Lecture 12 | Virtual MachinesCompiler Construction | Lecture 12 | Virtual Machines
Compiler Construction | Lecture 12 | Virtual MachinesEelco Visser
 
Compiler Construction | Lecture 11 | Monotone Frameworks
Compiler Construction | Lecture 11 | Monotone FrameworksCompiler Construction | Lecture 11 | Monotone Frameworks
Compiler Construction | Lecture 11 | Monotone FrameworksEelco Visser
 
Compiler Construction | Lecture 10 | Data-Flow Analysis
Compiler Construction | Lecture 10 | Data-Flow AnalysisCompiler Construction | Lecture 10 | Data-Flow Analysis
Compiler Construction | Lecture 10 | Data-Flow AnalysisEelco Visser
 
Compiler Construction | Lecture 9 | Constraint Resolution
Compiler Construction | Lecture 9 | Constraint ResolutionCompiler Construction | Lecture 9 | Constraint Resolution
Compiler Construction | Lecture 9 | Constraint ResolutionEelco Visser
 
Compiler Construction | Lecture 8 | Type Constraints
Compiler Construction | Lecture 8 | Type ConstraintsCompiler Construction | Lecture 8 | Type Constraints
Compiler Construction | Lecture 8 | Type ConstraintsEelco Visser
 
Compiler Construction | Lecture 7 | Type Checking
Compiler Construction | Lecture 7 | Type CheckingCompiler Construction | Lecture 7 | Type Checking
Compiler Construction | Lecture 7 | Type CheckingEelco Visser
 
Compiler Construction | Lecture 6 | Introduction to Static Analysis
Compiler Construction | Lecture 6 | Introduction to Static AnalysisCompiler Construction | Lecture 6 | Introduction to Static Analysis
Compiler Construction | Lecture 6 | Introduction to Static AnalysisEelco Visser
 
Compiler Construction | Lecture 5 | Transformation by Term Rewriting
Compiler Construction | Lecture 5 | Transformation by Term RewritingCompiler Construction | Lecture 5 | Transformation by Term Rewriting
Compiler Construction | Lecture 5 | Transformation by Term RewritingEelco Visser
 

Mehr von Eelco Visser (20)

CS4200 2019 | Lecture 5 | Transformation by Term Rewriting
CS4200 2019 | Lecture 5 | Transformation by Term RewritingCS4200 2019 | Lecture 5 | Transformation by Term Rewriting
CS4200 2019 | Lecture 5 | Transformation by Term Rewriting
 
CS4200 2019 | Lecture 4 | Syntactic Services
CS4200 2019 | Lecture 4 | Syntactic ServicesCS4200 2019 | Lecture 4 | Syntactic Services
CS4200 2019 | Lecture 4 | Syntactic Services
 
CS4200 2019 | Lecture 3 | Parsing
CS4200 2019 | Lecture 3 | ParsingCS4200 2019 | Lecture 3 | Parsing
CS4200 2019 | Lecture 3 | Parsing
 
CS4200 2019 | Lecture 2 | syntax-definition
CS4200 2019 | Lecture 2 | syntax-definitionCS4200 2019 | Lecture 2 | syntax-definition
CS4200 2019 | Lecture 2 | syntax-definition
 
CS4200 2019 Lecture 1: Introduction
CS4200 2019 Lecture 1: IntroductionCS4200 2019 Lecture 1: Introduction
CS4200 2019 Lecture 1: Introduction
 
A Direct Semantics of Declarative Disambiguation Rules
A Direct Semantics of Declarative Disambiguation RulesA Direct Semantics of Declarative Disambiguation Rules
A Direct Semantics of Declarative Disambiguation Rules
 
Declarative Type System Specification with Statix
Declarative Type System Specification with StatixDeclarative Type System Specification with Statix
Declarative Type System Specification with Statix
 
Compiler Construction | Lecture 17 | Beyond Compiler Construction
Compiler Construction | Lecture 17 | Beyond Compiler ConstructionCompiler Construction | Lecture 17 | Beyond Compiler Construction
Compiler Construction | Lecture 17 | Beyond Compiler Construction
 
Domain Specific Languages for Parallel Graph AnalytiX (PGX)
Domain Specific Languages for Parallel Graph AnalytiX (PGX)Domain Specific Languages for Parallel Graph AnalytiX (PGX)
Domain Specific Languages for Parallel Graph AnalytiX (PGX)
 
Compiler Construction | Lecture 15 | Memory Management
Compiler Construction | Lecture 15 | Memory ManagementCompiler Construction | Lecture 15 | Memory Management
Compiler Construction | Lecture 15 | Memory Management
 
Compiler Construction | Lecture 14 | Interpreters
Compiler Construction | Lecture 14 | InterpretersCompiler Construction | Lecture 14 | Interpreters
Compiler Construction | Lecture 14 | Interpreters
 
Compiler Construction | Lecture 13 | Code Generation
Compiler Construction | Lecture 13 | Code GenerationCompiler Construction | Lecture 13 | Code Generation
Compiler Construction | Lecture 13 | Code Generation
 
Compiler Construction | Lecture 12 | Virtual Machines
Compiler Construction | Lecture 12 | Virtual MachinesCompiler Construction | Lecture 12 | Virtual Machines
Compiler Construction | Lecture 12 | Virtual Machines
 
Compiler Construction | Lecture 11 | Monotone Frameworks
Compiler Construction | Lecture 11 | Monotone FrameworksCompiler Construction | Lecture 11 | Monotone Frameworks
Compiler Construction | Lecture 11 | Monotone Frameworks
 
Compiler Construction | Lecture 10 | Data-Flow Analysis
Compiler Construction | Lecture 10 | Data-Flow AnalysisCompiler Construction | Lecture 10 | Data-Flow Analysis
Compiler Construction | Lecture 10 | Data-Flow Analysis
 
Compiler Construction | Lecture 9 | Constraint Resolution
Compiler Construction | Lecture 9 | Constraint ResolutionCompiler Construction | Lecture 9 | Constraint Resolution
Compiler Construction | Lecture 9 | Constraint Resolution
 
Compiler Construction | Lecture 8 | Type Constraints
Compiler Construction | Lecture 8 | Type ConstraintsCompiler Construction | Lecture 8 | Type Constraints
Compiler Construction | Lecture 8 | Type Constraints
 
Compiler Construction | Lecture 7 | Type Checking
Compiler Construction | Lecture 7 | Type CheckingCompiler Construction | Lecture 7 | Type Checking
Compiler Construction | Lecture 7 | Type Checking
 
Compiler Construction | Lecture 6 | Introduction to Static Analysis
Compiler Construction | Lecture 6 | Introduction to Static AnalysisCompiler Construction | Lecture 6 | Introduction to Static Analysis
Compiler Construction | Lecture 6 | Introduction to Static Analysis
 
Compiler Construction | Lecture 5 | Transformation by Term Rewriting
Compiler Construction | Lecture 5 | Transformation by Term RewritingCompiler Construction | Lecture 5 | Transformation by Term Rewriting
Compiler Construction | Lecture 5 | Transformation by Term Rewriting
 

Kürzlich hochgeladen

Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptxDecoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptxDhatriParmar
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 
Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1GloryAnnCastre1
 
Using Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea DevelopmentUsing Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea Developmentchesterberbo7
 
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptxMan or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptxDhatriParmar
 
4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptxmary850239
 
Mythology Quiz-4th April 2024, Quiz Club NITW
Mythology Quiz-4th April 2024, Quiz Club NITWMythology Quiz-4th April 2024, Quiz Club NITW
Mythology Quiz-4th April 2024, Quiz Club NITWQuiz Club NITW
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Seán Kennedy
 
Multi Domain Alias In the Odoo 17 ERP Module
Multi Domain Alias In the Odoo 17 ERP ModuleMulti Domain Alias In the Odoo 17 ERP Module
Multi Domain Alias In the Odoo 17 ERP ModuleCeline George
 
Expanded definition: technical and operational
Expanded definition: technical and operationalExpanded definition: technical and operational
Expanded definition: technical and operationalssuser3e220a
 
Q-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITWQ-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITWQuiz Club NITW
 
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptxDIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptxMichelleTuguinay1
 
Scientific Writing :Research Discourse
Scientific  Writing :Research  DiscourseScientific  Writing :Research  Discourse
Scientific Writing :Research DiscourseAnita GoswamiGiri
 
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Association for Project Management
 
Measures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped dataMeasures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped dataBabyAnnMotar
 
Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptxGrade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptxkarenfajardo43
 
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxBIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxSayali Powar
 
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmStan Meyer
 
Congestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentationCongestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentationdeepaannamalai16
 

Kürzlich hochgeladen (20)

Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptxDecoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 
Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1
 
Using Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea DevelopmentUsing Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea Development
 
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptxMan or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
 
4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx
 
Mythology Quiz-4th April 2024, Quiz Club NITW
Mythology Quiz-4th April 2024, Quiz Club NITWMythology Quiz-4th April 2024, Quiz Club NITW
Mythology Quiz-4th April 2024, Quiz Club NITW
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...
 
Multi Domain Alias In the Odoo 17 ERP Module
Multi Domain Alias In the Odoo 17 ERP ModuleMulti Domain Alias In the Odoo 17 ERP Module
Multi Domain Alias In the Odoo 17 ERP Module
 
Expanded definition: technical and operational
Expanded definition: technical and operationalExpanded definition: technical and operational
Expanded definition: technical and operational
 
Q-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITWQ-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITW
 
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptxDIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
 
Scientific Writing :Research Discourse
Scientific  Writing :Research  DiscourseScientific  Writing :Research  Discourse
Scientific Writing :Research Discourse
 
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
 
Measures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped dataMeasures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped data
 
prashanth updated resume 2024 for Teaching Profession
prashanth updated resume 2024 for Teaching Professionprashanth updated resume 2024 for Teaching Profession
prashanth updated resume 2024 for Teaching Profession
 
Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptxGrade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
 
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxBIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
 
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and Film
 
Congestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentationCongestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentation
 

Domain Analysis & Data Modeling

  • 1. Domain Analysis & Data Modeling Lecture2 Course IN4308 Eelco Visser Master Computer Science http://eelcovisser.org Delft University of Technology Thursday, February 11, 2010
  • 2. 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
  • 3. Model-Driven Software Development Problem DSL HLL Machine Domain domain-specific models reduce gap between problem domain and implementation Thursday, February 11, 2010
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. “Far better at some key things” Thursday, February 11, 2010
  • 8. How do we make DSLs? Thursday, February 11, 2010
  • 9. Syntax Checks described by Model DSL Editor consists of generate Transformation Software System Generator Thursday, February 11, 2010
  • 10. What makes a DSL? Thursday, February 11, 2010
  • 11. What makes a DSL? The Domain Thursday, February 11, 2010
  • 12. What is a domain? Thursday, February 11, 2010
  • 13. 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
  • 14. Domain Engineering domain domain system family knowledge model architecture Domain Domain Domain Analysis Design Implementation DSLs requirements components generators Requirements Product Integration Analysis Configuration and Test requirements features configuration product Application Engineering Source: Czarnecki & Eisenecker, Generative Programming, 2000 s Thursday, February 11, 2010
  • 15. 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
  • 16. Domain analysis in application engineering implement Problem Solution Domain validate Domain Thursday, February 11, 2010
  • 17. Domain: “A sphere of knowledge, influence, or activity” “The subject to which the user applies a program is the domain of the software” Eric Evans, Domain-Driven Design, 2004 Thursday, February 11, 2010
  • 19. Interaction Design Domain-Driven Design Data Model Design Thursday, February 11, 2010
  • 21. X + Computer = Computer Cognitive Friction Dancing Bearware Thursday, February 11, 2010
  • 22. 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
  • 24. User Personas Goals (not Tasks) Thursday, February 11, 2010
  • 25. 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
  • 26. Interaction Design requires Big Up Front Design Thursday, February 11, 2010
  • 27. How can we integrate interaction design in software engineering? Can programmers be interaction designers? Thursday, February 11, 2010
  • 28. 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
  • 29. Student Course University Guests Management Administration System Lecturer Thursday, February 11, 2010
  • 46. What goals does/should ‘The Department’ support? Thursday, February 11, 2010
  • 48. “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” Eric Evans, Domain-Driven Design, 2004 Thursday, February 11, 2010
  • 49. “A model is a selectively simplified and consiously structured form of knowledge” Eric Evans, Domain-Driven Design, 2004 Thursday, February 11, 2010
  • 50. 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” Eric Evans, Domain-Driven Design, 2004 Thursday, February 11, 2010
  • 52. [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 diagrams Thursday, February 11, 2010
  • 54. 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
  • 55. Binding Students to Submissions - Creating submissions ★ should be enrolled - Can be partner if ★ no active submission ★ #students < limit - Start submission if ★ not part of active submission Thursday, February 11, 2010
  • 56. 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
  • 57. Domain Model = Concepts + Interaction System Domain analysis is more than drawing a class diagram Thursday, February 11, 2010
  • 58. A domain-specific language for domain-driven design Thursday, February 11, 2010
  • 67. From conceptual to physical data model In memory - objects - hash maps Persistent data - Records in RDBS - XML - JSON - Text (csv) Thursday, February 11, 2010
  • 68. 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