Elaboration Iteration 1- Part 1

Slides:



Advertisements
Similar presentations
Object-Oriented Analysis and Design CHAPTERS 8, 9: BASICS, INTRO TO DOMAIN MODELS 1.
Advertisements

Object Design Examples with GRASP
Jan 15, Ron McFadyen1 Ch 9. Use-case model: drawing System Sequence Diagrams Iteration: a simple cash-only success scenario of Process Sale.
Jan 16, Ron McFadyen1 Ch 9. Use-case model: drawing System Sequence Diagrams Iteration 1: a simple cash-only success scenario of Process Sale.
Jan Ron McFadyen1 Consider a simple cash-only Process Sale scenario 1. Customer arrives at a POS checkout with goods and/or services to purchase.
January Ron McFadyen1 Ch 9. Use-case model: drawing System Sequence Diagrams Elaboration Iteration 1: a simple cash-only success scenario of.
Chapter 9 DOMAIN MODELS Objectives
Fall 2009ACS-3913 Ron McFadyen1 Use Cases Used to capture functional requirements – there are other requirements categories such as usability, reliability,
Solving the Problem Analysis & Design.
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.
Object-Oriented Analysis and Design
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.
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
TK2023 Object-Oriented Software Engineering CHAPTER 6 SYSTEM SEQUENCE DIAGRAMS.
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
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’
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.
Object Oriented Analysis and Design System Events & Contracts.
Chapter 6 Use Cases. Use Cases: –Text stories Some “actor” using system to achieve a goal –Used to discover and record requirements –Serve as input to.
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.
Domain Modelling Presented By Dr. Shazzad Hosain.
Sept Ron McFadyen1 Section 10.1 Domain Models Domain Model: a visual representation of conceptual classes or real-world objects in a domain.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 20. Review Software Requirements Requirements Engineering Process.
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)
Conceptual Modeling Modeling the Problem Domain. Conceptual Modeling Decompose problem space into comprehensible concepts. Clarify the terminology or.
DOMAIN MODEL- VISUALIZING CONCEPTS Identify conceptual classes related to the current iteration requirements. Create an initial domain model. Distinguish.
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.
5 Systems Analysis and Design in a Changing World, Fifth Edition.
Chapter 1 Applying UML and Patterns. The Need for Software Blueprints Knowing an object-oriented language and having access to a library is necessary.
COMP-350 Object-Oriented Analysis and Design Drawing System Sequence Diagrams Reference: Larman, Chapter 9.
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.
BTS430 Systems Analysis and Design using UML Domain Model—Part 2: Associations and Attributes.
January Ron McFadyen1 Domain Models Domain Model: a visual representation of conceptual classes or real-world objects in a domain of interest.
Chapter 9: Domain Models.  The problem domain is modelled using a UML domain model: This is the first OO model that we will see (Use Cases are very useful.
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.
OO Methodology Elaboration Phase Iteration 1- Part 3.
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.
1 Object Oriented Analysis and Design System Events & Contracts.
Jan Ron McFadyen1 Use Cases Used to capture functional requirements – there are other requirements categories such as usability, reliability,
Elaboration popo.
Chapter 9 Domain Models.
System Sequence Diagrams and Operation Contracts
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
Group Members Muhammad Zeeshan ( 16) Adnan Akhtar (4)
Object Oriented Analysis and Design Conceptual Model.
Object Oriented Analysis
Domain Model: Visualizing Concepts
Presentation transcript:

Elaboration Iteration 1- Part 1 OO Methodology Elaboration Iteration 1- Part 1

Table of Contents Use-case model: System Sequence Diagrams Domain Model: Visualizing Concepts Domain Model: Adding Associations Domain Model: Adding Attributes Use-Case Model: Adding Detail with Operation Contracts From Requirements to Design Interaction Diagram Notations GRASP: Designing Objects with Responsibilities Design Model: Use-case Realizations Design Model: Determining Visibilities Design Model: Creating Design Class Diagrams Implementation Model

Use-Case Model

Use Case: Process Sale Primary Actor: Cashier Stakeholders and Interests: ... Preconditions: ... Postcondtions: ... Main Success Scenario: Customer arrives at POS checkout with goods adn/or services to purchase Cashier starts a new sale Cashier enters item identifier System records sale line item and presents item description, prices, and running total. Cashier repeats steps 3-4 until indicates done System presents total with taxes calculated Cashier tells Customer the total, and asks for payment System logs completed sale and sends sale and payment information to the external Accounting system and Inventory system System presents receipt Customer leaves with receipt and goods

Requirements Implement a basic, key scenario of the Process Sale use case; entering items and receiving a cash payment Implement a Start Up use case as necessary to support the initialization needs of the iteration No collaboration with external services, such as a tax calculator or product databases No complex pricing rules are applied

Use-case model: System Sequence Diagrams To illustrates input and output events related to the systems under discussion To investigate and define the system behavior as a black box To isolate and illustrate the operations that an external actor requests of a system SSD for Process Sale

Use-case model: System Sequence Diagrams SSDs and Use Cases Naming System Events and Operations To capture the intent of the operation “enterItem” is better that “scanBarcode” To emphasize the command orientation: use verb enter..., end..., make... etc.

UP Artifacts(SSD)

Domain Model: Visualizing Concepts A domain model a representation of real-world conceptual classes, not of software components a visual representation of conceptual classes or real-world objects in a domain of interest also called conceptual model, domain object model, and analysis object model A domain model includes domain objects or conceptual classes association between conceptual classes attributes of conceptual classes An example

Conceptual Class Identification Domain Model and Decomposition Structured analysis : decomposition by functions Object-oriented analysis: decomposition by objects Incremental building a domain model in iterative development General guideline it is better overspecify a domain model with lots of fine-grained conceptual classes than to underspecify it Two techniques to identify conceptual classes Use a conceptual class category list Identify noun phrases

Conceptual Class Identification Conceptual Class Category List physical or tangible objects : Register, Airplane specifications, descriptions : ProductionSpecification FlightDescription places : Store, Airport transactions : Sale, Payment Reservation transaction line items : SaleLineItem roles of people : Cashier, Pilot containers of other things : Store, Bin, Airplane things in a container : Item, Passenger external systems : CreditPaymentAuthori- zationSystem AirTrafficControl abstract noun concepts : Hunger, Acrophobia organizations : SalesDepartment : KoreanAirLine processes : SellingAProduct BookingASeat rules and policies : RefundPolicy CancellationPolicy catalogs : ProductCatalog PartCatalog records of finance, work etc. : Receipt, Ledger, Contract ...

Noun Phrase Identification Consider nouns and noun phrases as candidate conceptual classes or attributes Fully dressed uses cases are an excellent source to draw from Example Main Success Scenario: Customer arrives at POS checkout with goods and/or services to purchase Cashier starts a new sale Cashier enters item identifier System records sale line item and presents item description, prices, and running total. Cashier repeats steps 3-4 until indicates done System presents total with taxes calculated Cashier tells Customer the total, and asks for payment Customer pays and System handles payment System logs completed sale and sends sale and payment information to the external Accounting system and Inventory system System presents receipt Customer leaves with receipt and goods Weakness of this approach imprecision of natural language : goods, services

Candidate Conceptual Classes for the Sales Domain From simplified scenario of Process Sale Register ProductionSpecification Item SalesLineItem Store Cashier Sale Customer Payment Manager (from StartUp use case) ProductCatalog Why Receipt is not included in the model? a receipt is a record of a sale and payment that buyer keeps a receipt has a special role in terms of the business rules: the right to the bearer of the receipt to return bought items it would be considered to include it at Handle Returns use case

Domain Modeling Guidelines How to make a domain model List the candidate conceptual classes Draw them in a domain model Add the associations necessary to record relationships Add the attributes necessary to fulfill the information requirements A common mistake in identifying conceptual classes if we do not think of some conceptual class X as a number or text in the world, X is probably a conceptual class, not an attribute e.g. Should Store be an attribute of Sale or a separate conceptual class or e.g. Should destination be an attribute of Flight or a separate conceptual class Airport If in doubt, make it a separate concept Sale store Sale Store phoneNo Flight destination Flight Airport name

Domain Modeling Guidelines Resolving Similar Conceptual Classes Register vs. POST (point of sale terminal) Specification or Description Conceptual Classes there needs to be a description about an item or service, independent of the current existence of any instances of those items or services deleting instances of things they describe results in a loss of information it reduces redundant or duplicated information Description of Services MultiPack, Na, BiGi, JeJu4DaysTrip etc. as a rule of thumb, a domain model is not absolutely correct or wrong, but more or less useful

UML Notation and Models UML does not superimpose a method or modeling perspective on raw diagrams types, such as class diagrams etc. Rather, a process(such as UP) applies raw UML in the context of models a diagram can be interpreted differently in different models conceptual perspective – conceptual class(class) specification perspective – software abstraction (class) implementation perspective – software implementation(class)

NextGen POS Domain Model Names-only domain model

Domain Model: Adding Associations a relationship between types that indicates some meaningful and interesting connection a semantic relationship between two or more classifiers that involve connections among their instances need-to-know associations : associations for which knowledge of the relationship needs to be preserved for some duration Example do we need to remember what SalesLineItem instances are associated with a Sale instance? do we need to have memory of a relationship between a current Sale and a Manager? UML notation

Domain Model: Adding Associations Common Association List A is a physical part of B Drawer-Register Wing – Airplane A is a logical part of B SalesLineItem – Sale FlightLeg – FlightRoute A is physically contained in B Register – Store Passenger – Airplane A is a description for B ItemDescription – Item FlightDescription– Flight A is a line item of a transaction SalesLineItem – Sale or report B A is known/logged/recorded/ Sale – Register reported/captured in B Reservation - FlightManifest A is a member of B Cashier – Store Pilot – Airline A is an organizational subunit of B Department – Store A uses or manages B Cashier – Register Pilot – Airplane A communicate with B Customer – Cashier Reservation Agent – Passenger A is related to a transaction Customer – Payment etc

Domain Model: Adding Associations Association Guidelines focus on those associations for which knowledge of the relationship needs to be preserved for some duration it is more important to identify conceptual classes than to identify associations Too many associations tend to confuse a domain model Avoid showing redundant or derivable associations Multiplicity defines how many instances of a class A can be associated with one instance of a class B at a particular moment 1 0..* 1..* 1..5 3,5,8 Roles in an Association an association can have roles connected to each class involved in the association a role indicates the role played by the class in terms of the association Navigability : directional or bidirectional

Domain Model: Adding Associations Multiple associations between two types N-ary Association more than two classes can be associated Association Class Modeling an association as a class Project Language Person 0..* Job 1..* Company Person Job salary job title

Domain Model: Adding Associations Aggregation is the “part-whole” or “a-part-of” relationship a special form of association Composite aggregation is a strong form of aggregation requires that a part instance be included in at most one composite at a time requires that the composite object has sole responsibility for the disposition of its parts * * Store Cashier * Text Window 1 3 Button Menu 1

NextGen POS Domain Model Associations

Need-to-know Associations

Domain Model: Adding Attributes An attribute is a logical data value of an object those for which the requirements imply a need to remember information e.g.Sale class needs a date and time attribute Valid attribute types some things should be represented as associations the attributes in a domain model should be simple attributes or data types Numbers, Date, String, Boolean, Address, Color, PhoneNo. etc. do not model a complex domain concept as an attribute

Domain Model: Adding Attributes Data types vs Non-primitive data type classes objects in data types(in UML term) are value objects(id is not important) primitive-like attribute(such as string, number etc) may be considered as non-primitive class has separate sections (phone number, person name etc) has associated operations has attributes A domain model is a tool of communication Not attributes as foreign keys

Domain Model Conclusion

UP Artifacts: Domain Model