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

Slides:



Advertisements
Similar presentations
Database Design – Lecture 11
Advertisements

Object Design Examples with GRASP
Jan 16, Ron McFadyen1 Ch 9. Use-case model: drawing System Sequence Diagrams Iteration 1: a simple cash-only success scenario of Process Sale.
Copyright ©2004 Cezary Z Janikow 1 Domain Model n Visualization of entities and relationships n In UP presented as Class Diagrams – Classes, Relationships,
6/8/991 Analysis Tuesday 09/14/99 Revised: September 11, 2000 (APM)
Domain model: visualizing concepts
NJIT 1 Domain Model Visualizing Concepts Chapter 9 Applying UML and Patterns Craig Larman.
Chapter 9 Domain Models 1CS6359 Fall 2012 John Cole.
חוזים – Contracts 1. Larman – Chapter 10 – SSDs 10.2 What are System Sequence Diagrams? (introduction) Use cases describe how external actors interact.
PRJ566: PROJECT PLANNING AND MANAGEMENT Class Diagrams.
9/18/011 Software Requirements Analysis and Design (Continued)
Domain Modeling Chandan R. Rupakheti and Steve Chenoweth Week 5, Day 1.
Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative Development Part III Elaboration Iteration I – Basic1.
Chapter 9 Domain Models. Domain Model in UML Class Diagram Notation A “visual dictionary”
Systems Analysis and Design in a Changing World, Fifth Edition
INFO 355Week #31 Systems Analysis II Domain Modeling INFO 355 Glenn Booker.
IntellAgile Copyright © 2002 Craig Larman. All rights reserved. Visualizing Concepts with a Domain Model.
What is a domain model? “A domain model captures the most important types of objects in the context of the business. The domain model represents the ‘things’
SOEN 6011 Software Engineering Processes Section SS Fall 2007 Dr Greg Butler
Last lecture. What is a Use Case Use cases are stories (scenarios) of how actors use (interact with) the system to fulfill his goal. Examples Process.
DOMAIN MODEL— PART 2: ATTRIBUTES SYS466. Looking For Potential Classes “Know the business”. Ask Questions Identify business concepts; filter nouns (person,
5 Systems Analysis and Design in a Changing World, Fourth Edition.
Object-Oriented Analysis and Design An Introduction.
Chapter 9 Domain Models. Domain Modeling After you have your requirements you start modeling the domain. You are still modeling the business, not the.
TK2023 Object-Oriented Software Engineering CHAPTER 5 DOMAIN MODELLING.
Sept Ron McFadyen1 Section 10.1 Domain Models Domain Model: a visual representation of conceptual classes or real-world objects in a domain.
DOMAIN MODE: ASSOCIATIONS, MULTIPLICITY AND ATTRIBUTE-TEXT NOTATION SYS466.
Chapter 17 GRASP: Designing Objects with Responsibilities. 1CS6359 Fall 2011 John Cole.
Review ♦ System sequence diagram ♦ Domain model
Lecture 9 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
Jan 21, Ron McFadyen1 Ch 10. Domain Model: Visualizing Concepts Domain model illustrated with a class diagram (with no operations defined)
1 Lecture 6: Operation Contracts. 2 Overview  What is contract ?  The guidelines for writing contracts for the system operations.  Use Case realizations.
Conceptual Modeling Modeling the Problem Domain. Conceptual Modeling Decompose problem space into comprehensible concepts. Clarify the terminology or.
Lecture 13-17, chitkara university.  Gives a conceptual framework of the things in the problem space  Helps you think – focus on semantics  Provides.
Chapter 9 Applying UML and Patterns -Craig Larman
Lecture 6: Structural Modeling
5 Systems Analysis and Design in a Changing World, Fifth Edition.
SYS466: Analysis and Design Using OO Models Domain Class Diagram, Part 1.
Chapter 1 Applying UML and Patterns. The Need for Software Blueprints Knowing an object-oriented language and having access to a library is necessary.
Elaboration Iteration 1- Part 1
BTS430 Systems Analysis and Design using UML Domain Model—Part 2: Associations and Attributes.
Domain Model—Part 2: Attributes.  A logical data value of an object  (Text, p. 158)  In a domain model, attributes and their data types should be simple,
Repetition af Domæne model. Artifact influence emphasizing the Domain Model.
DOMAIN MODEL: ADDING ATTRIBUTES Identify attributes in a domain model. Distinguish between correct and incorrect attributes.
Domain Classes – Part 1.  Analyze Requirements as per Use Case Model  Domain Model (Conceptual Class Diagram)  Interaction (Sequence) Diagrams  System.
SYS466: Analysis and Design Using OO Models Lecture 8 Domain Classes – More on Relationships.
Object-Oriented Analysis and Design Feb 2, 2009.
TK2023 Object-Oriented Software Engineering CHAPTER 12 Introduction to Responsibility-Driven Design.
BTS430 Systems Analysis and Design using UML Domain Model—Part 2A: Attributes.
Domain Model A representation of real-world conceptual classes in a problem domain. The core of object-oriented analysis They are NOT software objects.
BTS430 Systems Analysis and Design using UML Domain Model—Part 2: Associations and Attributes.
Larman chapter 101 Domain Model: Visualizing concepts Larman chapter 10.
1 Chapter 9: Operation Contracts Chapter 13 in Applying UML and Patterns Book.
1 Object Oriented Analysis and Design Conceptual Model.
OO DomainModeling With UML Class Diagrams and CRC Cards Chapter 6 Princess Nourah bint Abdulrahman University College of Computer and Information Sciences.
DOMAIN MODEL—PART 2: ATTRIBUTES BTS430 Systems Analysis and Design using UML.
DOMAIN CLASSES – PART 1 BTS430 Systems Analysis and Design using UML.
5 Systems Analysis and Design in a Changing World, Fourth Edition.
Elaboration popo.
Chapter 9 Domain Models.
Domain Model: Visualizing concepts
Conceptual Model.
OO Domain Modeling With UML Class Diagrams and CRC Cards
OO Domain Modeling With UML Class Diagrams and CRC Cards
SYS466 Domain Classes – Part 1.
Chapter 11: Class Diagram
Object Oriented Analysis and Design Conceptual Model.
System Sequence Diagrams(SSD)
Domain Model: Visualizing Concepts
Chapter 11: Class Diagram
Presentation transcript:

SYS466: Analysis and Design Using OO Models Domain Class Diagram

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

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 PRJ Business and System Use Case Diagrams 2. Business and System Use Case Descriptions ** PRJ566 – encompasses SYS366, SYS466, DBS201 and DBS301

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

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

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!

Domain Class Diagram Sample Relationship description multiplicity relationship

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

Existing Data Models Already published and can be re-used Already published and can be re-used Retrieved from:

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

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

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

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

Dry Cleaner’s Example Rose Model Rose Model

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

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

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

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.

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.

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