400 likes | 558 Views
Chapter 9. Domain Models The classic OOAD model. Fig. 9.1. Domain Model. Representation of real-situation conceptual classes Not software objects! Model: Domain objects (conceptual classes) Associations Attributes of conceptual classes. Things not in a Domain Model. Software artifacts
E N D
Chapter 9 Domain Models The classic OOAD model
Domain Model • Representation of real-situation conceptual classes • Not software objects! • Model: • Domain objects (conceptual classes) • Associations • Attributes of conceptual classes
Things not in a Domain Model • Software artifacts • Responsibilities or methods • Data Model
Why? • Understand key concepts of domain • Key concepts • Vocabulary • Lower the gap between representations
How? • Reuse an existing model • Easier • Less error prone • Many problems are not new • Category list • Text has a table of common categories (table 9.1) • Noun phrases • Use with care!
Examples using concept list • Fig 9.7 is POS domain • Fig 9.8 is Monopoly
Guidelines • Report objects • Think like a mapmaker • Modeling the unreal world • Attributes vs. classes • Description classes
Associations • Things that need to be remembered • Use with care • May or may not be implemented in software • Naming: • className-verbPhrase-className
Attributes • Information that needs to be remembered
Datatypes • Use simple types • Define complex types where needed • Subparts • Needs operations • Has attributes (e.g. start date) • Units • Polymorphic types
Summary – Domain Models • A domain model is used to understand the domain • It is an artifact that is developed iteratively in Agile