OO Domain Modeling With UML Class Diagrams and CRC Cards

Slides:



Advertisements
Similar presentations
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Advertisements

Ch 12: Object-Oriented Analysis
Assignment I, part 1. Groups of three students. Specify one as group leader. group names to TA and me. Create an object-oriented conceptualization.
Use Cases & Requirements Analysis By: Mostafa Elbarbary.
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.
Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH 1 Object-Oriented Analysis and Design - CDT309 Period 4, Spring 2008 More on use cases System sequence.
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.
9/18/011 Software Requirements Analysis and Design (Continued)
Domain Modeling Chandan R. Rupakheti and Steve Chenoweth Week 5, Day 1.
How to Make a Domain Model Tutorial
Chapter 9 Domain Models. Domain Model in UML Class Diagram Notation A “visual dictionary”
OO Analysis and Design CMPS OOA/OOD Cursory explanation of OOP emphasizes ▫ Syntax  classes, inheritance, message passing, virtual, static Most.
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’
Glenn David Blank Computer Science & Engineering Department Lehigh University, Bethlehem, PA, USA With support from the National Science Foundation (Grants.
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.
5 Systems Analysis and Design in a Changing World, Fourth Edition.
UML Diagrams: Class Diagrams The Static Analysis Model Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
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.
USE CASE Bayu Adhi Tama, MTI Faculty of Computer Science, University of Sriwijaya Slides are adapted from Petrus Mursanto
Review ♦ System sequence diagram ♦ Domain model
Structural Modeling. Objectives O Understand the rules and style guidelines for creating CRC cards, class diagrams, and object diagrams. O Understand.
Behavioral Modeling: Sequence and Communication Diagrams Copyright © 2009 John Wiley & Sons, Inc. Copyright © 2005 Pearson Education Copyright © 2009 Kannan.
CS3773 Software Engineering Lecture 04 UML Class Diagram.
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
SYS466: Analysis and Design Using OO Models Domain Class Diagram.
Lecture 6: Structural Modeling
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
Design Model Lecture p6 T120B pavasario sem.
BTS430 Systems Analysis and Design using UML Domain Model—Part 2: Associations and Attributes.
CS212: Object Oriented Analysis and Design Lecture 32: Use case and Class diagrams.
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.
Summary from previous lectures
Object-Oriented Software Engineering Practical Software Development using UML and Java Modelling with Classes.
OO DomainModeling With UML Class Diagrams and CRC Cards Chapter 6 Princess Nourah bint Abdulrahman University College of Computer and Information Sciences.
5 Systems Analysis and Design in a Changing World, Fourth Edition.
Elaboration popo.
UML Diagrams: Class Diagrams The Static Analysis Model
Chapter 9 Domain Models.
CMPE 280 Web UI Design and Development August 29 Class Meeting
ATM OO Design and Implementation Case Study
Chapter 5 – System Modeling
Domain Model: Visualizing concepts
Conceptual Model.
Use Case Model.
System Modeling Chapter 4
Software Engineering System Modeling Chapter 5 (Part 2) Dr.Doaa Sami
Software Engineering System Modeling Chapter 5 (Part 2) Dr.Doaa Sami
OO Domain Modeling With UML Class Diagrams and CRC Cards
Introduction to UML Introduction to UML Shiyuan Jin September,23,2002
Princess Nourah bint Abdulrahman University
Princess Nourah bint Abdulrahman University
Relating Use Cases popo.
Analysis models and design models
Software Design Lecture : 15.
Group Members Muhammad Zeeshan ( 16) Adnan Akhtar (4)
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
Object Oriented Analysis and Design Conceptual Model.
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Chapter 4 System Modeling.
Object Oriented Analysis
Domain Model: Visualizing Concepts
Presentation transcript:

OO Domain Modeling With UML Class Diagrams and CRC Cards Chapter 6 Princess Nourah bint Abdulrahman University College of Computer and Information Sciences Department of Computer Science Dr. Doaa Sami Khafaga

Objectives The main objective of this chapter is to know: how to properly use the most essential features of UML class diagrams, and the typical problems you will encounter when modeling with class diagrams. In this chapter we: Introduce the evolutionary approach for building classes Explain how to identify objects and attributes of classes Describe the technique of CRC ‘Class Responsibility and Collaborator’ Explain how classes are related in a class diagram Explain generalization, association, aggregation and composition Introduce object diagrams Software Engineering OO Domain Modeling

What is a Domain Model? Use cases looked at the system’s environment (actors) and the system’s external behavior. Use cases consider the system as a black box and help us understand how the system as a whole interacts with the outside word. Now we turn to consider the inside of the system. We do this by building the domain model, which shows what the black box (the system) encloses. uses cases elaborate the system’s behavioral characteristics (sequence of stimulus-response steps), domain model gives details of the systems structural characteristics (system parts and their arrangement) Software Engineering OO Domain Modeling

What is a Domain Model? uses cases elaborate the system’s behavioral characteristics (sequence of stimulus-response steps), domain model gives details of the systems structural characteristics (system parts and their arrangement) The next step is to model the inside of the system. We do this by building the domain model, which shows what the black box (the system) encloses. Software Engineering OO Domain Modeling

What is a Domain Model? Illustrates meaningful concepts in the problem domain. Usually expressed in the form of static diagrams (in Rational this implies a high-level class diagram). Is a representation of real-world things; not software components (of the system under development). No operations are defined or specified in the conceptual model. Should show concepts, associations between concepts, and attributes of concepts. Serves as a source of software objects. S.H 2009 Software Engineering OO Domain Modeling

What is a Domain Model? Objectives identify concepts related to current development cycle requirements create initial conceptual model Identify attributed add specification concepts Software Engineering OO Domain Modeling

What is a Domain Model? Software Engineering OO Domain Modeling

What constitutes a good model? A model should use a standard notation be understandable by clients and users lead software engineers to have insights about the system provide abstraction. Models are used: to help create designs to permit analysis and review of those designs as the core documentation describing the system. Software Engineering OO Domain Modeling

From Use Cases to: Objects, Attributes, Operations (methods) -“evolutionary ” Software Engineering OO Domain Modeling

Building the Domain Model A useful strategy for building a domain model is to start with: the “boundary” concepts that interact directly with the actors and then identify the internal concepts Software Engineering OO Domain Modeling

Domain Model Relationships Conceptual Class Diagram Classes, attributes, associations Domain objects Use Case Model Functional Requirements Domain Model Define terms Glossary Interaction Diagrams Dynamic Behavior Software Engineering OO Domain Modeling

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 Software Engineering OO Domain Modeling

Find conceptual classes Software Engineering OO Domain Modeling

Use a category list Finding concepts using the concept category list : Physical objects: register, airplane, blood pressure monitor Places: airport, hospital Catalogs: Product Catalog Transactions: Sale, Payment, reservation Software Engineering OO Domain Modeling

Identify conceptual classes from noun phrases Finding concepts using Noun Phrase identification in the textual description of the domain . Noun phrases may also be attributes or parameters rather than classes: If it stores state information or it has multiple behaviors, then it’s a class If it’s just a number or a string, then it’s probably an attribute Software Engineering OO Domain Modeling

Identifying objects Software Engineering OO Domain Modeling

Identifying Operations ‘methods’ Software Engineering OO Domain Modeling

Objects Software Engineering OO Domain Modeling

Example: Identify conceptual classes from noun phrases Consider the following problem description, analyzed for Subjects, Verbs, Objects: The ATM verifies whether the customer's card number and PIN are correct. SC V R O O A O A If it is, then the customer can check the account balance, deposit cash, and withdraw cash. S R V O A V O A V O A Checking the balance simply displays the account balance. S M O A V O A Depositing asks the customer to enter the amount, then updates the account balance. M S V O R V OA V OA Withdraw cash asks the customer for the amount to withdraw; if the account has enough cash, S M A O V O R OA V S C V O A the account balance is updated. The ATM prints the customer’s account balance on a receipt. O A V C S V O A O Analyze each subject and object as follows: Does it represent a person performing an action? Then it’s an actor, ‘R’. Is it also a verb (such as ‘deposit’)? Then it may be a method, ‘M’. Is it a simple value, such as ‘color’ (string) or ‘money’ (number)? Then it is probably an attribute, ‘A’. Which NPs are unmarked? Make it ‘C’ for class. Verbs can also be classes, for example: Deposit is a class if it retains state information Software Engineering OO Domain Modeling

Mapping parts of speech to object model components [Abbott, 1983] Part of Speech Model Component Examples Proper noun Instance Ali Common noun Class Student, Customer,.. Doing verb Operation Buy, check,.. Being verb Inheritance Is a kind of, is one of either Having verb Aggregation (Composition) Has, consists of, includes Modal verb Constraints Must be Adjective attributes Attributes 3 years old Software Engineering OO Domain Modeling

Example: a typical description Software Engineering OO Domain Modeling

Mapping parts of speech to object model components Software Engineering OO Domain Modeling

Identify conceptual classes from noun phrases: POS Examine use case descriptions. Example: Process Sale use case: Main success scenario: Customer arrives at a POS checkout counter. Cashier starts a new sale. Cashier enters an item ID. System records sale line item. It then presents a description of the item, its price, and a running total. ● …. Possible source of confusion: Is it an attribute or a concept? If X is not a number or a text then it probably is a conceptual class. Software Engineering OO Domain Modeling

Example: Initial POS domain model SalesLineItem Register Item Store Sale Payment Software Engineering OO Domain Modeling

Class and Class diagram Class naming: Use singular names because each class represents a generalized version of a singular object. Class diagrams are at the core of OO Engineering. Things naturally fall into categories (computers, automobiles, trees...). We refer to these categories as classes. An object class is an abstraction over a set of objects with common: attributes (states) and the services (operations) (methods) provided by each object Class diagrams provide the representations used by the developers. Software Engineering OO Domain Modeling

Example: Initial POS domain model Software Engineering OO Domain Modeling

Example: Initial Domain model of the Monopoly Game Software Engineering OO Domain Modeling

Example: Domain model of the Monopoly Game Software Engineering OO Domain Modeling

Agile modeling style Software Engineering OO Domain Modeling

Software Engineering OO Domain Modeling

Software Engineering OO Domain Modeling

Software Engineering OO Domain Modeling

Software Engineering OO Domain Modeling

Software Engineering OO Domain Modeling

Software Engineering OO Domain Modeling

Software Engineering OO Domain Modeling

Software Engineering OO Domain Modeling

Class or Attributes Software Engineering OO Domain Modeling

Class or Attributes Software Engineering OO Domain Modeling

Description Class Software Engineering OO Domain Modeling

Associations Software Engineering OO Domain Modeling

Associations Software Engineering OO Domain Modeling

Association, aggregation and composition Software Engineering OO Domain Modeling

Association between classes Who does What Software Engineering OO Domain Modeling

When to show association Software Engineering OO Domain Modeling

Associations and implementation Software Engineering OO Domain Modeling

Association Notation Software Engineering OO Domain Modeling

Association Notation Software Engineering OO Domain Modeling

Naming association Software Engineering OO Domain Modeling

Applying UML: multiplicity Software Engineering OO Domain Modeling

Multiplicity values Software Engineering OO Domain Modeling

Applying UML: multiplicity Software Engineering OO Domain Modeling

Applying UML: multiplicity Software Engineering OO Domain Modeling

Multiple association between two classes Software Engineering OO Domain Modeling

Find association Software Engineering OO Domain Modeling

Find association High priority associations A is a physical or logical part of B A is physically or logically contained in/on B A is recorded in B Other associations A uses or manages or controls B (Pilot -airplane) A owns B (Airline -airplane) Each of the two ends of an association is called a role. Roles have name multiplicity expression navigability Software Engineering OO Domain Modeling

Example: POS Domain Model Software Engineering OO Domain Modeling

Example: Monopoly Game Partial Domain Model Software Engineering OO Domain Modeling

Attributes Attribute - is a logical data value of an object Include the following attributes in a conceptual model those for which the requirements suggest or imply a need to remember information For example: Sale needs a dateTime attribute Store needs a name and address. Software Engineering OO Domain Modeling

Attributes: UML Notation Software Engineering OO Domain Modeling

Suitable attribute types Software Engineering OO Domain Modeling

Data types as attributes Software Engineering OO Domain Modeling

Attributes are NOT foreign keys Software Engineering OO Domain Modeling

Generalization Software Engineering OO Domain Modeling