Presentation is loading. Please wait.

Presentation is loading. Please wait.

SYS466: Analysis and Design Using OO Models Domain Class Diagram.

Similar presentations


Presentation on theme: "SYS466: Analysis and Design Using OO Models Domain Class Diagram."— Presentation transcript:

1 SYS466: Analysis and Design Using OO Models Domain Class Diagram

2 Where are we going? Analyze Requirements as per Use Case Model Analyze Requirements as per Use Case Model System Sequence Diagrams System Sequence Diagrams Domain Model (Conceptual Class Diagram) Domain Model (Conceptual Class Diagram) Interaction (Sequence) Diagrams Interaction (Sequence) Diagrams Design Class Diagram Design Class Diagram

3 Requirements Gathering (Specification) Use Case Analysis Interaction Modeling Coding 1. Refine Use Case Description – Scenarios 2. Model system input and output events (Systems Sequence Diagram - SSD) 3. Noun filtering - Domain Class Diagram (conceptual classes) - Identify attributes of conceptual classes - Identify relationships between conceptual classes (associations and composition) 1. Model object interaction & definition of operations using Sequence Diagrams 2. Design Class Diagram – show final relationships (associations, composition, inheritance) Testing SYS366 SYS466 PRJ666 1. Business and System Use Case Diagrams 2. Business and System Use Case Descriptions ** PRJ566 – encompasses SYS366, SYS466, DBS201 and DBS301

4 Domain Model Major object oriented analysis step: decomposition of a domain into noteworthy concepts or objects Major object oriented analysis step: decomposition of a domain into noteworthy concepts or objects A visual representation of conceptual classes or real-situation objects in a domain - a conceptual model A visual representation of conceptual classes or real-situation objects in a domain - a conceptual model Focuses on a domain versus the entire business Focuses on a domain versus the entire business  i.e. a business area

5 Domain Model Not a data model however for SYS466, we will focus on the data that is important to a business domain. We will not show software artifacts (i.e. a window or a database) Not a data model however for SYS466, we will focus on the data that is important to a business domain. We will not show software artifacts (i.e. a window or a database) Shows: Shows:  Domain objects or conceptual classes  Associations between conceptual classes  Attributes of conceptual classes  Does not show operations

6 Domain Model What is a class? What is a class?  A software or a conceptual element  Contains attributes and behaviour  Classes have relationships to other classes Syntax for attribute and operation names: first letter is a small letter, no spaces between names and each subsequent word is capitalized!

7 Domain Class Diagram Sample Relationship description multiplicity relationship

8 Domain Model How to discover conceptual classes How to discover conceptual classes  Reuse or modify existing models (patterns!)  Use a category list (a lot of analysis)  Identify from the data used in the use case specification

9 Existing Data Models Already published and can be re-used Already published and can be re-used Retrieved from: http://www.databaseanswers.org/data_models/bank_and_branches/index.htm

10 Category List Focuses on a list of common categories which emphasis business information system needs Focuses on a list of common categories which emphasis business information system needs i.e. i.e. Conceptual Class CategoryExamples Business Transactions Guidelines: These are critical. Sale, Payment Transaction Line items Guidelines: These are the line items associated with transactions. SalesLineItem Product or service related to a transaction or a transaction line item Guidelines: Transactions are for something (a product or service) Item Roles of people or organizations related to the transaction; actors in the use case Guidelines: We usually need to know about the parties involved in a transactions Cashier, Customer

11 Drawing Domain Class Diagram Don’t be concerned if you miss significant conceptual classes during early domain modeling Don’t be concerned if you miss significant conceptual classes during early domain modeling Domain model communicates a rough approximation of the key concepts Domain model communicates a rough approximation of the key concepts Do not add things that should not be there Do not add things that should not be there

12 Drawing Domain Class Diagram Drawn in the Logical View of Rational Rose Drawn in the Logical View of Rational Rose Class diagram Tool Bar

13 Dry Cleaner’s Example Use Case Spec Use Case Spec Use Case Spec Use Case Spec

14 Dry Cleaner’s Example Rose Model Rose Model

15 Attribute A logical data value of an object A logical data value of an object Should be primitive data types such as numbers and Booleans Should be primitive data types such as numbers and Booleans Common data types: Common data types:  Date or dateTime  Number  Character  String (text)  Time

16 Attribute vs Class Is it an attribute or a class? Is it an attribute or a class?  Does category name describe an item (therefore an attribute) or is category name something more significant?  Therefore, make category a class  Does department describe an employee (therefore an attribute) or is department something more significant?  Therefore make department a class  Does store describe sale (therefore an attribute ) or is store something more significant?  Therefore make store a class

17 Attribute vs Class Is it an attribute or a class? Is it an attribute or a class?  Does the attribute have other attributes?  i.e. a promotional price for a product would have a start and end date  Therefore make promo price another class  Does the attribute have quantity with a unit?  i.e. payment amount may have a unit of currency  Therefore make Payment another class  Does the attribute refer to data that is found in other classes?  i.e. report or receipt?  Make receipt a class – it has significance to the business.  Do not make report a class

18 Attribute vs Class Is it an attribute or a class? Is it an attribute or a class?  Does the attribute contain information that describes something else?  This is referred to as a description class  i.e. a Product class has attributes such as price, picture, text description, quantity on hand, minimum order quantity, etc. If we delete ‘product’ we may not want to lose the price, picture and text description  Therefore, create a Product Description class which will contain price, picture, text description.

19 Attribute vs Class Use description classes when deleting instances of them results in loss of information that needs to be maintained. Use description classes when deleting instances of them results in loss of information that needs to be maintained.

20 Attribute Show attributes when Show attributes when  They are suggested by the use case (and discovered through noun filtering)  Imply a need to remember information (don’t get carried away with this – maybe they should have been described in the scenario)  i.e. rental transaction has a date and time


Download ppt "SYS466: Analysis and Design Using OO Models Domain Class Diagram."

Similar presentations


Ads by Google