Title: Unified Modelling Language OOA/OOD a summary of the book: Applying UML and Patterns, Craig Larman
1Unified Modelling LanguageOOA/OODa summary of
the bookApplying UML and Patterns, Craig Larman
- D. Dranidis
- October 2000
- CITY College
2Introduction
- Owing a hammer doesnt make one an architect
- Analysing and designing a system from an object
perspective is critical - UML
- ... a language for specifying, visualising and
constructing the artefacts of software
systems... BJR97 - a mainly diagrammatic notation for modelling
systems using object-oriented concepts. - Patterns
- Problem-solution formulas that codify exemplary
design principles - Development process
- order of activities in a development life-cycle
- Study of a simple case study
3Object oriented Analysis and Design
- Analysis
- investigation of the problem what the problem is
about and what the system must do. - OOA
- finding and describing objects (concepts) in the
problem domain. - Design
- logical solution how the system fulfils the
requirements - OOD
- defining logical software objects with attributes
and methods
4What is UML?
- G. Booch and J. Rumbaugh (1994) and later I.
Jacobson - Booch method
- OMT (Object Modelling Technique)
- OOSE (OO Software Engineering)
- De facto approval in industry
- Modelling language
- DOES NOT define a standard methodology process
5Sample Development Activities
- Disadvantages of Waterfall Life-cycle
- complexity overload
- delayed feedback
- frozen specifications, while business environment
changes - Recommended development process Booch96
- iterative and incremental
- use case driven
- early emphasis on defining the architecture high
level structure of subsystems and components - Iterative
- planned process of revisiting an area, each time
enhancing the system - Incremental
- add functionality to a system during several
release cycles - An incremental release is composed of multiple
iterative development cycles - Time-boxing a Development cycle (between 2 weeks
and two months).
6Case Study Point-of-Sale-Terminal (POST)
- Computerised system used to record sales and
handle payments. - HW components computer and bar code scanner
- Architectural layers
- Presentation GUI
- Application Logic Problem Domain Objects
- Application Logic Service Objects - non problem
domain objects, such as interfaces to a database - Storage persistent storage mechanism.
- Iterative development strategy
- 1st development cycle simple core-functions
application - 2nd development cycle expansion of the
functionality
7Use Cases
- Use cases are dependent on having at least
partial understanding of the requirements of the
system. - Use case
- narrative document that describes the sequence of
events of an actor (external agent) using a
system to complete a process. - story of using a system
- illustrates and implies requirements in the story
it tells - Actors
- external entities to the system who participate
in the story of a use case - roles that humans play, computer systems, devices
8Use Cases within a Development Process
- Plan and Elaborate Phase
- Define system boundary. Identify actors and use
cases - Write high-level use cases
- Draw a use-case diagram
- Write expanded use cases for the most critical,
influential or risky use cases. Defer rest use
cases. - Rank use-cases
9Identifying Use Cases
- Identify actors related to a system
- Cashier
- Customer
- For each actor, identify the processes they
initiate or participate in - Log In, Cash Out,
- Buy Items, Refund Items
- All system functions identified during the
requirements specification should be allocated to
use cases
10Example of a High-level Use Case Buy Items
- Use Case Buy Items
- Actors Customer, Cashier
- Type primary
- Description
- A Customer arrives at a checkout with items to
purchase. The Cashier records the purchase items
and collects payment. On completion, the Customer
leaves with the items.
11Example of an Expanded Use Case Buy Items
- Use Case Buy Items
- Actors Customer (initiator), Cashier
- Purpose Capture a sale and its payment
- Type primary
- Overview
- A Customer arrives at a checkout with items to
purchase. The Cashier records the purchase items
and collects a payment, which may be authorised.
On completion, the Customer leaves with the
items. - Cross References
- Functions R1.1, R1.2, etc
- Use cases Cashier must have completed the Log In
use case. - continues...
12Typical Course of Events
- Actor Action
- 1. This use case begins when a Customer arrives
at the POST checkout with items to purchase. - 2. The cashier records each item.If there is
more than one of an item, the Cashier can enter
the quantity as well. - 4. On completion of item entry, the Cashier
indicates to the POST that item entry is
complete. - 6. The Cashier tells the Customer the total.
- 7. Customer chooses payment type
- a. If cash payment initiate Pay by Cash.
- b. if credit payment initiate Pay by Credit.
- 11. The Cashier gives the receipt to the
Customer. - 12. The Customer leaves with the items purchased.
- System Response
- 3. Determines the item price and adds the item
information to the running sales transaction.The
description and price of the current item are
presented. - 5. Calculates and presents the sale total.
- 8. Logs the completed sale.
- 9. Updates inventory levels.
- 10. Generates a receipt.
Alternative courses Line 2 Invalid item
identifier entered. Indicate error. Line 7
Customer could not pay. Cancel sales transaction.
13Use Case Diagram
POST
Log In
Cashier
Customer
Buy Items
Pay By Credit
Pay By Cash
14Allocation of use cases to development cycles
- Buy Items version 1 is a simplified version of
the original use case. - Each development cycle consists of
- Planning, Analysis, Design, Construction, Testing
Development Cycle 1
Development Cycle 2
Development Cycle 3
Buy Items version 1
Buy Items version 2
Refund
Log In
15Building a Conceptual Model
Analysis
- Representation of concepts in a problem domain
of real-world things, not of software components - Static structure diagrams (no operations)
- concepts
- associations between concepts
- attributes of concepts
- It is better to overspecify a conceptual model
with lots of fine-grained concepts, than to
underspecify it! - A good conceptual model
- captures the essential abstractions and
information required to understand the domain in
the context of the current requirements, and - aids people in understanding the domain -- its
concepts, terminology, and relationships
16Finding Concepts
Analysis
- List of candidate concepts from Concept Category
List - physical objects (POST),
- specifications (ProductSpecification),
- places (Store),
- transactions (Sale, Payment),
- transaction line items (SalesLineItem),
- roles of people (Cashier, Customer),
- List of candidate concepts from Noun
Identification - Use cases can be used
- List Customer, POST, checkout, items, Cashier,
item, quantity, item price, sales transaction,
description, price, ...
- containers (Store, Bin),
- things in a container (Item),
- organizations (SalesDepartment),
- events (Sale),
- catalogs (ProductCatalog),...
17Adding associations
Analysis
- Associations
- relationships between concepts that indicate some
meaningful and interesting connection - structural relationships between objects of
different types. - Finding associations from common associations
list - A is a physical (or logical) part of B
- A is physically (or logically) contained in/on B
- A is recorded in B
- A is a description for B
- A is a member of B
- A uses or manages or communicates or is related
to B - Finding concepts is much more important than
finding associations - Focus on
- need-to-know associations (knowledge of the
relationship needs to be preserved for some
duration) - Avoid redundant or derivable associations
18Adding Attributes
Analysis
- Attribute logical data value of an object
- Include those attributes suggested by the use
cases. - for example Sale needs a date and time attribute
- Attributes should be pure data values (value
objects number, string, Boolean, date, time) - otherwise represent as associations
- Relate concepts with an association, not with an
attribute!
19Conceptual model
Analysis
Records-sale-of
Described-by
1
1
0..1
0..1
Contains
Product Specification
Product Catalog
1
Sales LineItem
description
1..
1..
quantity
price
1
1
UPC
Used By
1..
1
Describes
Store
1
Stocks
address
Item
Logs-completed
name
Contained-in
1
1
1
1
1
1
Houses
1
1..
1..
Sale
Records-sales-on
POST
Captured-on
date
time
1
1
1
1
1
1
1
1
1
Paid-by
1
1
1
1
Customer
1
1
Cashier
Payment
Initiated-by
amount
20System sequence diagrams
Analysis
- Define the behaviour of a system as a black box
what the system does, without explaining how. - System sequence diagram is a picture that shows
the events that external actors generate, their
order and intersystem events (for a particular
scenario of a use case) - System sequence diagrams are strongly related to
use cases
21System Behaviour - Contracts
Analysis
- Contracts are created for each system operation
- Contracts describe the effect of operations upon
the system by defining pre- and postconditions of
operations. - Contracts are declarative in style, emphasising
what will happen rather than how it will be
achieved. - Example
- Name enterItem ( upc number, quantity integer
) - Responsibilities Enter sale of an item, add it
to the sale, display the item description and
price. - Pre-conditions upc is known to the system
- Post-conditions
- if a new sale, a Sale was created and was
associated with the POST - A SalesLineItem was created and associated with
the Sale - Attribute SalesLineItem.quantity was set to
quantity - The SalesLineItem was associated with a
ProductSpecification, based on UPC match
22From Analysis to Design
- Use Cases What are the domain processes?
- Conceptual Model What are the concepts, terms?
- System sequence diagrams What are the system
events and operations? - Contracts What do the system operations do?
23Collaboration Diagrams
Design
- Contracts do not show a solution of how software
objects are going to fulfil the post-conditions. - Interaction diagrams illustrate how objects
interact via messages to fulfils tasks. - Starting point for the interactions is the
fulfilment of the post-conditions of the
operation contracts. - Use cases may provide additional guidance
- Objects are chosen from the conceptual model.
24Choosing the Controller Class
Design
- The first design decision involves choosing a
controller for each system operation. - Controller pattern
- assign the responsibility for handling a system
event message to a class representing one of the
following choices - the overall system
- the overall business or organisation
- something in the real world that is active (the
role of a person) - an artificial handler of all system events of a
use case - Possible choices for enterItem
- POST
- Store
- Cashier
- BuyItemsHandler
25Creating a new sale
Design
- if a new sale, a Sale was created and was
associated with the POST - Creator Pattern
- assign the responsibility for creation to a class
that aggregates, contains or records the class to
be created - Candidate POST
- POST creates Sale, and
- Sale is easily associated to POST since POST
keeps a reference to created Sale - Sale must create an empty collection to record
all the future SalesLineItem instances that will
be added
1 new sale create()
enterItem(upc, qty)
POST
Sale
1.1 create()
Sales LineItem
26Creating a new SalesLineItem
Design
- A SalesLineItem was created and associated with
the Sale - By Creator
- Sale creates SalesLineItem
- SalesLineItem is easily associated to Sale (by
storing the new instance in its collection) - Attribute SalesLineItem.quantity was set to
quantity - POST must pass the quantity along to Sale, which
must pass it along as a parameter in the create
message - The SalesLineItem was associated with a
ProductSpecification, based on UPC match - Who is responsible for knowing a
ProductSpecification based on a UPC match? - Expert Pattern
- assign the responsibility to the object that has
the information required to fulfil it. - Candidate ProductCatalog
- POST should ask ProductCatalog for
ProductSpecification (Visibility)
27enterItem Collaboration Diagram
Design
by Creator
1 new sale create()
3 makeLineItem(spec, qty)
enterItem(upc, qty)
3.1 create(spec, qty)
POST
Sale
2 spec specification(upc)
1.1 create()
sl Sales LineItem
Product Catalog
By Expert
3.2 add(sl)
2.1 spec find(upc)
Product Specification
Sales LineItem
28Design Class Diagrams
Design
- A design class diagram illustrates the
specifications for software classes and
interfaces in an application - classes, associations and attributes
- methods
- navigability
- dependencies
- The creation of design class diagrams is
dependent upon the prior creation of - Interaction diagrams the designer identifies
the software classes that participate in the
solution, plus the methods of classes - Conceptual model the designer adds details to
the class definitions.
29Design Class Diagram
Design
Store
address
Uses
name
addSale()
ProductCatalog
Product Specification
Looks-in
description
Contains
specification( )
price
UPC
1..
1..
Houses
Describes
Sale
date
POST
time
SalesLineItem
Captures
Contains
quantity Integer
becomeComplete( )
endSale( )
makeLineItem( )
enterItem( )
1..
1..
makePayment( )
makePayment()
total( )
Paid-by
Payment
Logs-completed
amount Quantity
30Organising and refining the conceptual model
- Organising in Packages
- used to partition the conceptual model
- organise elements depending on their
- subject area
- type hierarchy
- use cases participation
- strong associations
- Refining associations
- associative types
- aggregation and composition
- association role names
31State Diagrams
- Usage for concepts and use cases
- Illustrate interesting events and states of an
object, and the behaviour of an object in
reaction to an event - Use case state diagrams
- describe the legal sequence of external system
events - State diagrams for state-dependent types
- Features
- transition actions
- transition guard conditions
- nested states