180 likes | 194 Views
BTS430 Systems Analysis and Design using UML. Domain Model Part 1—Finding Conceptual Classes. Logical Architecture. Large-scale organization of the software classes into packages, subsystems, and layers.
E N D
BTS430 Systems Analysis and Design using UML Domain Model Part 1—Finding Conceptual Classes
Logical Architecture • Large-scale organization of the software classes into packages, subsystems, and layers. • Layer is a very coarse-grained grouping of classes, packages or subsystems that has cohesive responsibility for a major aspect of the system. * *Larman, page 199
Typical layers in OO system • User Interface • Application Logic and Domain Objects • Technical Services * *Larman, pages 199 - 200
Domain Layer • Key concept in OO design • Create software objects with names and information similar to the real-world domain and assign application logic responsibilities to them • for example, a Sale object being able to calculate its total. * *Larman, page 206
Connection between SSDs, System Operations and Architectural Layers • SSDs identify input events from external actors into the system, calling upon system operations such as makeNewSale. • SSDs hide the specific UI objects *Larman, page 207
Connection between SSDs, System Operations and Architectural Layers • objects in the UI layer of the system capture system operation requests. • The UI layer objects will forward or delegate the request from the UI layer onto the domain layer for handling. *Larman, page 207
Connection between SSDs, System Operations and Architectural Layers • Messages sent from the UI layer to the domain layer will be the messages illustrated on the SSDs, such as makeNewSale. *Larman, page 207
Relationship of Architecture to SSDs Text, Figure 13.8
The Relationship between Domain Model and Domain Layer • The Domain Model provides inspiration for the names of classes in the Domain Layer • Domain layer is part of the software and the domain model is part of the conceptual-perspective analysis * * Larman, page 207
The Relationship between Domain Model and Domain Layer • By creating a domain layer with inspiration from the domain model, the representational gap between how stakeholders conceive the domain and its representation in software has been lowered. * *Larman, page 207
What is a Domain Model? • “a visual representation of conceptual classes or real situation objects in a domain” * • NOT software classes • A specialization of the Business Object Model • A set of conceptual class diagrams that typically include associations and attributes • But NOT operations *Larman, page 134
Domain Model • Visual Dictionary of the noteworthy abstractions, domain vocabulary and information content of the domain * *Larman, page 135
Types of Classes • Conceptual class - real world concept or thing • Software class – a class representing a specification or implementation perspective of a software component, regardless of the process or method • Implementation class – a class implemented in a specific OO language such as Java * *Larman, page 14
Conceptual versus Software Conceptual Software
Creating a Domain Model • Find conceptual classes • Create domain class diagram • Add associations and attributes
Creating a Domain Model • Find conceptual classes • Reuse existing models if possible • Use category list (pp.140 - 141) • Noun phrase identification (p. 142)
Noun Phrase Identification • Find all nouns • Identify those that are candidates for conceptual classes • BUT NO UI PLEASE • Also identify attributes