Click here to load reader
Post on 01-Dec-2014
Embed Size (px)
- 1. Harsh Jegadeesans CLASSROOM DOMAIN MODELING BITS Pilani Off-Campus Work-Integrated Learning Programmes
- 2. AGENDA Visualization Adding Association Adding Attributes
- 3. SETTING DIRECTION Now that we are starting to look at diagrams, I want to emphasize that this is a class on analysis and design, not diagramming. While it may look good on your resume that you can use UML, your career depends on being able to translate ideas into good systems. That is much more difficult. All the best!
- 4. DOMAIN MODEL RELATIONSHIPS Business Model Domain Model Classes, attributes, Elaboration on some terms associations Domain Glossary Use Case Model objects Requirements Interaction Diagrams Design
- 5. WHAT IS A DOMAIN MODEL ? A domain model: Illustrates meaningful conceptual classes in a problem domain. Is a representation of real-world concepts, not software components. Is NOT a set of diagrams describing software classes, or software objects and their responsibilities.
- 6. A DOMAIN MODEL IS THE MOST IMPORTANT OO ARTIFACT Its development entails identifying a rich set of conceptual classes, and is at the heart of object oriented analysis. It is a visual representation of the decomposition of a domain into individual conceptual classes or objects. It is a visual dictionary of noteworthy abstractions.
- 7. DOMAIN MODEL UML NOTATION Illustrated using a set of class diagrams for which no operations are defined. It may contain: Domain Objects or Conceptual Classes Associations between conceptual classes Attributes of conceptual classes
- 8. AD M S ARTIFACT A Conceptual class: Software Artifacts: Sale SalesDatabase Date vs. Time Sale Date Time Print()
- 9. THINK OF CONCEPTUAL CLASSES IN TERMS OF: Symbols words or images Intensions its definition Extensions the set of examples to which it applies Symbols and Intensions are the practical considerations when creating a domain model.
- 10. DECOMPOSITION: A central distinction between Object-oriented analysis and structured analysis is the division by objects rather than by functions during decomposition. During each iteration, only objects in current scenarios are considered for addition to the domain model.
- 11. CONCEPTUAL CLASS IDENTIFICATION: It is better to over-specify a domain with lots of fine- grained conceptual classes than it is to under-specify it. Discover classes up front rather than later. Unlike data modeling, it is valid to include concepts for which there are no attributes, or which have a purely behavioral role rather than an informational role.
- 12. IDENTIFY CONCEPTUAL CLASSES BY CATEGORY LIST: Common Candidates for classes include: Tangible objects, Descriptions, Roles, Places, Transactions, Containers, Systems, Abstract nouns, Rules, Organizations, Events, Processes, Written Materials, Catalogs, Records, Financial Instruments and Services
- 13. IDENTIFY CONCEPTUAL CLASSES BY NOUN PHRASE: Identify Nouns and Noun Phrases in textual descriptions of the domain. Fully dressed Use Cases are good for this type of linguistic analysis. Its not strictly a mechanical process: Words may be ambiguous Different phrases may represent the same concepts.
- 14. SALES DOMAIN EXAMPLE PURCHASE ITEMS USE CASE We find concepts such as Register, Sale, Item, Customer, Receipt etc. in this use case. Should we include Receipt in the Model? Con: As a report of a sale, its duplicate info. Pro: Business Rules for a Return require that the customer has a receipt. Suggestion: Include it in the iteration where the Return Use Case is covered.
- 15. STEPS TO CREATE A DOMAIN MODEL Identify Candidate Conceptual classes Draw them in a Domain Model Add associations necessary to record the relationships that must be retained Add attributes necessary for information to be preserved Apply existing Analysis Patterns
- 16. APPLY THE MAPMAKER STRATEGY Use existing names for things, the vocabulary of the domain Exclude irrelevant features Do not add things that are not there
- 17. A COMMON MISTAKE - CLASSES AS ATTRIBUTES Rule: If we do not think of a thing as a number or text in the real world, then it is probably a conceptual class. If it takes up space, then it is likely a conceptual class. Examples: A Store is not an attribute of a Sale A Destination is not an attribute of a flight
- 18. SPECIFICATION OR DESCRIPTION CONCEPTUAL CLASSES A Class that records information about an item. Even if all Instances of the item are sold out, the description remains. Avoids duplication of recording the descriptive information with each instance of the item.
- 19. DESCRIPTION OF A SERVICE EXAMPLE (FLIGHT) Flight Date Flies-to Airport Time Name Number vs. Flight FlightDesc Airport Described Describes Date -by Date -flights-to Name Time Time
- 20. MONOPOLY CONCEPTS (CANDIDATES) Monopoly Game Player Piece Die Board Square
- 21. AGENDA Visualization Adding Association Adding Attributes
- 22. OBJECTIVES Identify associations for a domain model. Distinguish between need-to-know and comprehension-only associations.
- 23. INTRODUCTION Identify associations of conceptual classes needed to satisfy the information requirements of current scenarios. Also identify the aid in comprehending the domain model.
- 24. ASSOCIATIONS An association is a relationship between instances of types that indicates some meaningful and interesting connection