The Unified Process & Domain Modeling 中国科学技术大学软件学院 孟宁 2011 年 10 月.

Slides:



Advertisements
Similar presentations
From use cases to classes (in UML). A use case for writing use cases Use case: writing a use case Actors: analyst, client(s) Client identifies and write.
Advertisements

ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
Chapter 4 - Object-Oriented Analysis and Design in a Nutshell1 Chapter 4 Object-Oriented Analysis and Design in a Nutshell.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall A.1.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Introduction To System Analysis and Design
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
1 Lecture 2: Elaboration Tasks and Domain Modeling.
Rational Worldwide Software Symposium
C++ Training Datascope Lawrence D’Antonio Lecture 11 UML.
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
Copyright W. Howden1 Lecture 2: Elaboration Tasks and Domain Modeling.
2Object-Oriented Analysis and Design with the Unified Process Events and Use Cases  Use case  Activity the system carries out  Entry point into the.
1 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2002] January 26, 2006.
Introduction To System Analysis and design
PowerPoint Presentation for Dennis, Wixom, & Tegarden Systems Analysis and Design with UML, 3rd Edition Copyright © 2009 John Wiley & Sons, Inc. All rights.
Software Development Process
What is UML? What is UP? [Arlow and Neustadt, 2005] January 23, 2014
Use Cases Yonglei Tao.
From Problem Statement to Design
Systems Analysis and Design in a Changing World, Fifth Edition
Domain Modeling 中国科学技术大学软件学院 孟宁 2012 年 10 月 Domain Modeling ♦What: A process performed by the development teams to acquire domain knowledge. ♦Why: –Because.
Rational Unified Process (Part 1) CS3300 Fall 2015.
OBJECT ORIENTED PROGRAMMING CONCEPTS ISC 560. Object-oriented Concepts  Objects – things names with nouns  Classes – classifications (groups) of similar.
The Unified Process Object Interaction Modeling and Design Class Diagram 中国科学技术大学软件学院 孟宁 2012年10月.
Chapter 8: Actor-System Interaction Modeling
Use Case Modeling 中国科学技术大学软件学院 孟宁 2011年9月.
Introduction To System Analysis and Design
Software development process ธนวัฒน์ แซ่ เอียบ. The development process Process –set of rules which define how a development project. Methodology and.
Key Takeaway Points A use case is a business process; it begins with an actor, ends with the actor, and accomplishes a business task for the actor. Use.
CSC 395 – Software Engineering Lecture 13: Object-Oriented Analysis –or– Let the Pain Begin (At Least I’m Honest!)
Object-Oriented Software Development F Software Development Process F Analyze Relationships Among Objects F Class Development F Class Design Guidelines.
Lecture 3 Uses Cases Topics UML Use Cases pop quiz Readings: Chapter 3 January 24, 2008 CSCE 492 Software Engineering.
CS3773 Software Engineering Lecture 04 UML Class Diagram.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
UML Use Case Diagramming Guidelines. What is UML? The Unified Modeling Language (UML) is a standard language for specifying, visualizing, constructing,
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Domain Model Classes and Objects Association Structure Requirement Specification Domain Model.
Lecture 6: Structural Modeling
5 Systems Analysis and Design in a Changing World, Fifth Edition.
1 The Unified Modeling Language. 2 The Unified Modeling Language (UML) is a standard language for writing software blueprints. The UML may be used to.
Design Model Lecture p6 T120B pavasario sem.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
Domain Modeling Yonglei Tao.
Introduction to OOAD and the UML
OOP Review CS 124.
Lecture 14 22/10/15. The Object-Oriented Analysis and Design  Process of progressively developing representation of a system component (or object) through.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
Introduction to Unified Modeling Language (UML) By Rick Mercer with help from The Unified Modeling Language User Guide, Grady Booch, James Rumbaugh, Ivar.
Elaboration popo.
ATM OO Design and Implementation Case Study
What is UML? What is UP? [Arlow and Neustadt, 2005] October 5, 2017
Introduction to Unified Modeling Language (UML)
SNSCT_CSE_PROGRAMMING PARADIGM_CS206
Software Engineering System Modeling Chapter 5 (Part 2) Dr.Doaa Sami
Software Engineering System Modeling Chapter 5 (Part 2) Dr.Doaa Sami
Rational Worldwide Software Symposium
The Unified Modeling Language
Introduction to Unified Modeling Language (UML)
Rational Worldwide Software Symposium
Software Construction Lecture 2
Software Design Lecture : 15.
Copyright 2007 Oxford Consulting, Ltd
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Rational Worldwide Software Symposium
Chapter 5: Domain Modeling Part 1 – UML Class Diagram
Introduction to OOAD and the UML
Chapter 8: Actor-System Interaction Modeling
Presentation transcript:

The Unified Process & Domain Modeling 中国科学技术大学软件学院 孟宁 2011 年 10 月

The Unified Process Requirements Test Design Code Deploy Time The waterfall process Requirements Test Design Code Deploy TIME Increment 1 Increment 2 Increment 3 time The unified process

The Agile Unified Process ♦Before the iterations, there is a "plan and elaborate" phase –motivation, business needs, alternatives –requirements elicitation and specification –feasibility study –use cases and use case diagrams –requirements and use cases traceability matrix –draft conceptual model –schedule, resources, budget

Steps of the Unified Process 1) Identifying requirements 2) Deriving use cases to satisfy the requirements 3) Allocating use cases to increments 4) Carrying out each increment

Carrying out each increment 4) Carry out each increment 4.1) Use case modeling 4.2) Domain modeling 4.3) Interaction modeling 4.4) Derive design class diagram 4.5) Implementation and deployment

Steps of the Agile Unified Method Use Case Modeling Requirements Engineering Domain Modeling Object Interaction Modeling & Design requirements Design Class Diagram Implementation requirements abstract, high level & expanded use cases, use case diagrams, UI prototypes domain model sequence diagrams DCD & implementation order domain knowledge data flow control flow

The Unified Process ♦Use case driven –each iteration is driven by the use cases allocated to the iteration ♦Architecture centric –“a system's architecture is used as a primary artifact for conceptualizing, constructing, managing, and evolving the system under development." --- Grady Booch ♦Incremental ♦Iterative

Domain Modeling ♦What: A process performed by the development teams to acquire domain knowledge. ♦Why: –Because software engineers need to work in different domains or different projects. They need domain knowledge to develop the system. –Software engineers come from different background. This may affect their perception of the application domain. ♦How: –Collect domain information, perform team brainstorming and classification, and visualize the domain knowledge using UML class diagram –Detail is given in the next slide

Steps for Domain Modeling 3. Classification 4. Visualization 1. Collecting application domain information 2. Brainstorming

Object and Attribute ♦A noun/noun phrase can be a class or an attribute, how do we distinguish? ♦This is often a challenge for beginners. ♦Rules to apply: –An object has an "independent existence" in the application/application domain, an attribute does not (have). –Example: "Number of seats", class or attribute? –Attribute, because "number of seats" cannot exist without referring to a car, airplane, or classroom as in "number of seats of a car" , "number of seats of a classroom"

Object and Attribute ♦Rules to apply: –attributes describe objects or store state information of objects –objects must be created by invoking a constructor (explicitly or implicitly)

Inheritance Relationship ♦Inheritance relationships –express the generalization/specialization relations between concepts –one concept is more general/specialized than the other –example: vehicle is a generalization of car, car is a specialization of vehicle –also called IS-A relation Vehicle model# horse power manufacturer start() drive() Car drive() Bus drive()

Aggregation Relationship ♦Aggregation relationships – express the fact that one object is part of another object – engine is part of a car – also called part-of relationships Car model# horse power manufacturer start() stop() Engine model# horse power manufacturer start() stop() part-of relationship

Association Relationship ♦Association relationships –expressing general relationships other than inheritance and aggregation –these can be application specific relationships between two concepts –example: "instructor teach course", "user has account" Professor name phone teach(...) Retirement Plan enroll Neither inheritance nor aggregation can apply.

Steps for Domain Modeling ♦1) Collect application domain information –focus on the functional requirements –also consider other requirements and documents ♦2) Brainstorming –listing important application domain concepts –listing their properties/attributes –listing their relationships to each other ♦3) Classifying the domain concepts into: –classes –attributes / attribute values –relationships association, inheritance, aggregation ♦4) Document result using UML class diagram

Brainstorming: Rules to Apply ♦The team members get together to identify & list –nouns / noun phrases –"X of Y" expressions (e.g., color of car) –transitive verbs –adjectives –numeric –possession expressions (has/have, possess, etc.) –"constituents / part of" expressions –containment / containing expressions –"X is a Y" expressions

Example Functional requirement: [PFR1] The web-based application must provide a search capability for overseas exchange study programs using a variety of search criteria. domain specific transitive verb domain specific noun/noun phrase Brainstorming result: nouns/noun phrases programs search criteria transitive verbs search for adjective, but not domain specific nouns but not domain specific

Classifying Brainstorming Result ♦nouns/noun phrases ♦"X of Y" expressions ♦transitive verbs ♦adjectives ♦numeric ♦possession expressions (has/have, possess, etc.) ♦"consist of/part of" expression ♦containment / containing expressions ♦"X is a Y" expressions  class or attributes  X is an attribute of Y  X is a role in an association  association relationships  attribute values  attribute / multiplicity values  aggregation relationships or attributes  aggregation relationships  association or aggregation relationships  inheritance Objects have independent existence, attributes do not.

Example program search criteria user Domain specific nouns/noun phrases search for (programs) transitive verbs Rule: transitive verbs  association relationships Rule: noun/noun phrase  class or attribute (c) search for Because they can exist independently.

Example A car has a make, model, horse power, number of seats... (c) car (a) make (a) model (a) horse power (a) number of seats A customer can rent one or more cars... (c) customer (c) car rent 1+ Car has independent existence. Make, model, horse power, and number of seats do not.

Class Exercise ♦Do the following for your team project or the vending machine. ♦Identify the concepts that exist in the application domain. ♦Classify the concepts in terms of –classes –attributes of classes –relationships between the classes inheritance aggregation and association

Class Exercise: The Vending Machine ♦The Vending Machine has a display, an alphanumeric keypad, a coin insertion slot, and an item dispenser. The display shows the vending items like chocolates, candies, potato chips, Coke, sprite, etc. Each type of item has a price and a label consisting of a letter A, B, C,... and a digit 1, 2,... A customer inserts coins through the coin slot. Each time a coin is inserted an LCD displays the total amount. The customer can press a letter and a digit to enter his selection after enough coins have been inserted. If the total amount is greater than or equals to the item selected, the vending machine dispenses the item and returns the change to the customer. A customer can change his mind and request that the coins be returned by pressing the return button.

Association Class An association class defines properties and operations for an association between two classes. Enroll grade: char getGrade() setGrade(grade:char) Students enroll in courses StudentCourse enroll and receive grades. indicate Enroll class is a class for the association

Understand Association Class Alex got an “ A ” and Eric got a “ B ” for OOSE. :Enroll ‘ A ’ : char getGrade() setGrade() Alex:StudentOOSE:Course enroll :Enroll ‘ B ’ : char getGrade() setGrade() Eric:StudentOOSE:Course enroll :Enroll ‘ A ’ : char getGrade() setGrade() Alex:StudentAI:Course enroll Alex also got an “ A ” for AI. object identifier type an instance of Course indicated by underline

Understand Association Class Enroll grade: char getGrade() setGrade(grade:char) StudentCourse enroll Student *alex=new Student(... ); Course *oose=new Course (... );... Enroll *e=new Enroll(alex, oose); e->setGrade( ‘ A ’ ); class Student {... } class Course {...} class Enroll { private: char grade; Student* student; Course* course; public: Enroll (Student* s, Course* c); char getGrade(); void setGrade(char grade); } Enroll::Enroll(Student* s, Course* c) { student=s; course=c; } Design Implementation

Understand Association Class Enroll grade: char getGrade() setGrade(grade:char) StudentCourse enroll Student Course sid phone... name cn desc title... Enroll sid grade cn... OO Realm RDB Realm Alex Eric c1... oose c2... AI 001 A... c1 001 A... c2 002 B... c1

Tip for Domain Modeling 4) Have a member or two to convert the result to UML class diagram. 6) Modify the diagram to reflect corrections and comments. Do not do brainstorming and drawing at the same time. The result could be very poor. 1) List the concepts, and then classify them on a whiteboard. 2) Take a picture(s) of the whiteboard using a digital camera. 3) the digital images to team members. 5) the UML class diagram to all members to review.

谢谢大家! References Dr. David Kung University of Texas Arlington May 2010