You are on page 1of 88

BACS2053 OOAD

CHAPTER 2 – UNIFIED SOFTWARE DEVELOPMENT


PROCESS (USDP)

Reference: Bennett, McRobb and Farmer: Object


Oriented Systems Analysis and Design Using UML,
(4th Edition), Chapter 3 & 5, McGraw Hill, 2010.
Traditional (waterfall) System Development Life Cycle (SDLC)
the Unified Software Development Process (USDP)
How phases relate to workflows in an iterative life cycle
Activity diagram

2
it's a framework for software development in which
development proceeds sequentially through a series of phases,
starting with system requirements analysis and leading up to
product release & maintenance.
Feedback loops exist between each phase, so that as new
information is uncovered or problems are discovered, it is
possible to "go back" a phase and make appropriate
modification.

3
System
Engineering

Requirement
Analysis

Design

Construction

Testing

➢ The traditional life cycle (TLC) for Installation


information systems development is also
known as the waterfall life cycle model.
➢ So called because of the difficulty of Maintenance
returning to an earlier phase. 4
When applying a waterfall approach, lifecycle activities are performed in
a single, linear sequence for all the requirements.
This often results in the discovery, during testing activities when the
different pieces of the system are integrated, of quality-related
problems that have remained hidden during the design and
implementation activities.
Because such problems are discovered late in the development process,
it may be too late to resolve them or they may be too costly to resolve.

5
System
Engineering

High Level
Requirement
Architectural
Analysis
Specification
Design

Construction

Testing

Installation

Maintenance
System
Engineering

Requirement
Analysis
✓ Requirements
Specification
✓ Functional
Design
Specification
✓ Acceptance Test
Specifications Construction

Testing

Installation

Maintenance
System
Engineering

Requirement
Analysis

Design
✓ Software architecture
specification
✓ System test specification Construction
✓ Design specification
✓ Sub-system test
specification Testing
✓ Unit test specification

Installation

Maintenance
System
Engineering

Requirement
Analysis

Design

Construction

Program Code
Testing

Installation

Maintenance
System
Engineering

Requirement
Analysis

Design

Construction

Testing
✓ Unit test report
✓ Sub-system test report
✓ System test report
✓ Acceptance test report Installation
✓ Completed system

Maintenance
System
Engineering

Requirement
Analysis

Design

Construction

Testing

Installation
Installed
System
Maintenance
System
Engineering

Requirement
Analysis

Design

Construction

Testing

✓ Change Installation
requests
✓ Change
request report Maintenance
Tasks in phases may be assigned to specialized teams.
Project progress evaluated at the end of each phase.
Manage projects with high levels of risks. The emphasis on
requirements and design before writing a single line of code ensures
minimal wastage of time and effort and reduces the risk of schedule
slippage, or of customer expectations not being met.
The staged development cycle enforces discipline: every phase has a
defined start and end point, and progress can be conclusively identified
.

13
 Real projects rarely follow such a simple
sequential life cycle.

 Iterations is almost impossible

 Lapsed time between systems engineering


& and the final installation: requirements
might change

BACS2053 OOAD Chapter 2 USDP 14


 Unresponsive to changes during project

 User or business needs / requirements not


addresses

 Modules not integrating

BACS2053 OOAD Chapter 2 USDP 15


 Difficulties with maintenance

 Late discovery of flaws

 Poor quality of end-user experience

BACS2053 OOAD Chapter 2 USDP 16


Symptoms Root Causes Best Practices
Needs not met Insufficient requirements Develop Iteratively
Requirements churn Ambiguous communications Manage
Requirements
Modules do not fit Brittle architectures
Use Component
Modules don’t fit Overwhelming complexity Architectures
Hard to maintain Undetected inconsistencies Model Visually
Late discovery Poor testing (UML)
Poor quality Subjective assessment Continuously Verify
Quality
Poor performance Waterfall development
Manage Change
Colliding developers Uncontrolled change
Build-and-release Insufficient automation
Symptoms Root Causes Best Practices
Needs not met Insufficient requirements Develop Iteratively
Requirements churn Ambiguouscommunications
Ambiguous communications Manage
Requirements
Modules
Modulesdon’t
don’tfitfit Brittle architectures
Use Component
Hard to maintain Overwhelming complexity Architectures
Late discovery Undetected inconsistencies
Undetected inconsistencies Model Visually
Model Visually
Poor quality Poor testing (UML) (UML)
Poor performance Subjective assessment Continuously
Continuous Verify
Verify
QualityQuality
Colliding developers Waterfall development
Manage Change
Build-and-release Uncontrolled change
Insufficient automation
Best Practices

Develop Iteratively

Manage Requirements Ensures users are involved


as requirements evolve

Use Component Architectures Validates architectural decisions


early on

Model Visually (UML) Addresses complexity of


design/implementation incrementally

Continuously Verify Quality Measures quality early and often

Manage Change Evolves baselines incrementally


19
Software architecture needs to be:
Component-based Resilient

✓Reuse or customize ✓ Meets current and future


components requirements

✓Select from commercially ✓ Improves extensibility


available components ✓ Enables reuse
✓Evolve existing software ✓ Encapsulates system
incrementally dependencies

20
Review Questions: Waterfall Lifecycle Stages
System Requirement
Maintenance Testing Engineering Design Construction Analysis installation

Match the below statement with the correct stage.


Description Waterfall Lifecycle stage
a) Program code
b) Change request and report
c) High level architectural
d) Install system
e) Unit and Sub-system test report
f) System test specification
g) Requirements, functional and acceptance test
specifications

Chapter 2 USDP
Unified Process (UP) is a generic software development process for OO analysis &
design.
USDP builds by Jacobson, Booch & Rumbaugh (1991) which is a team that created
UML.
This approach describes the key concepts, the core workflows and the overall
management required for the development of generic software development
processes.
Embodies best practice in system development.
Adopts an iterative & incremental approach with 4 main phases.
Different tasks are captured in a series of workflows.

22
UNIFIED SOFTWARE DEVELOPMENT PROCESS (USDP)

23
BACS2053
Chapter 2 USDP
OOAD

Generic software development


process for OOAD

Describes:
✓key concepts
✓core workflows
✓overall management

Embodies best practices

24
BACS2053
Chapter 2 USDP
OOAD

USDP 4 phases are:


1. Inception
• is concerned with determining the scope and purpose of the project;
2. Elaboration
• focuses requirements capture and determining the structure of the system;
3. Construction
• main aim is to build the software system;
4. Transition
• deals with product installation and rollout.

25
BACS2053
Chapter 2 USDP
OOAD

Project Phases

Inception Elaboration Construction Transition

1 2 3 4 5 6 7 8

Requirements
Workflows

Analysis

Iteration within
Design
a phase

Implementation

Test

Time

26
27
Best Practices
Iterative and incremental development
➢ major requirements → add more functionalities, use prototyping
➢ break the project into small subprojects (the iterations) that delivers system
functionality in increments, leading to a fully functional system.
Component-based development
– built component by component gradually
Requirements-driven development
– users involvement extensive, clear user requirements.

28
Best Practices
Configurability
➢ many releases → need version control mechanism

Architecture-centrism
➢ Structure the system into packages, components, deployment.

Visual modelling techniques


➢ use UML in SAD

29
Milestone Release Increment
A stable executable Final Production Release
An iteration end- The difference
subset of the final At this point, the system is
point when some (delta) between
product. The end of released for production
significant decision the releases of 2
each iteration is a use.
or evaluation subsequent
occurs. minor release iterations

30
Phases, workflows and iteration
Within each phase activities are grouped into workflows.
➢5 core workflows: → Requirements, Analysis, Design, Implementation
& Test (RADIT)
The balance of effort spent in each workflow varies from phase to
phase. Within phases there may be more than 1 iteration involved.

31
Phases, workflows and iteration

32
Iterative Development
When applying an iterative approach, any subsets of the lifecycle activities are
performed several times to better understand the requirements and gradually
develop a more robust system.
Each cycle through these activities is known as an iteration, and a series of iterations
in a step-wise manner eventually results in the final system.
This enables user better understand the requirements and gradually develop a more
appropriate system through successive refinement and incrementally gaining more
detail as more and more iterations

33
Iterative Development

34
USDP uses iterative and incremental development

35
BACS2053
Chapter 2 USDP
OOAD

Benefits of Iterative Development

✓ learning within an iteration

✓ manage complexity

✓ manage changing requirements

36
BACS2053
Chapter 2 USDP
OOAD

Benefits of Iterative Development

✓ provide partial solutions

✓ feedback from users

37
Incremental Development
An iterative process is incremental because we don't simply rework the same
requirements in successive iterations, but address more and more requirements in
successive iterations.

Likewise, activities may occur in parallel within a single iteration when they focus on
different parts of the system and don't conflict. Therefore, an iterative approach
involves a series of iterations wherein the system is developed incrementally.

38
Incremental Development
USDP aims to deliver working, free-standing, useful ‘chunks’ of software, one at a
time.

In its simplest form, each use case may represent one increment of delivered
software

39
ACTIVITY TECHNIQUE DELIVERABLE

➢ Requirements ➢ Requirements ➢ Use Case Models


Capture and Elicitation ➢ Requirements List
Modelling ➢ Use Case Modelling ➢ Prototypes
➢ Prototyping ➢ Glossary

40
ACTIVITY TECHNIQUE DELIVERABLE

➢ Collaboration
➢ Requirements Diagrams
Analysis ➢ Class & Object ➢ Analysis Models
Models
➢ Analysis Modelling

41
ACTIVITY TECHNIQUE DELIVERABLE
➢ Deployment
Modelling
➢ Overview design
➢ Component
➢ Systems Design Modelling and
implementation
➢ Package Modelling
architecture
➢ Architectural
Modelling

42
ACTIVITY TECHNIQUE DELIVERABLE

➢ Class & Object


Modelling
➢ Class Design ➢ Interaction Modelling ➢ Design Models
➢ State Modelling
➢ Design Patterns

43
ACTIVITY TECHNIQUE DELIVERABLE
➢ Class & Object
Modelling
➢ User Interface ➢ Interaction Modelling ➢ Design Models
Design ➢ State Modelling with Interface
➢ Package Modelling Specification
➢ Prototyping
➢ Design Patterns

44
ACTIVITY TECHNIQUE DELIVERABLE

➢ Class & Object


Modelling
➢ Data ➢ Interaction Modelling ➢ Design Models
Management with Database
➢ State Modelling
Design Specification
➢ Package Modelling
➢ Design Patterns

45
ACTIVITY TECHNIQUE DELIVERABLE

➢ Programming ➢ Constructed
➢ Construction ➢ Component reuse System
➢ Database DDL Documentation

46
ACTIVITY TECHNIQUE DELIVERABLE

➢ Programming
➢ Testing ➢ Tested system
➢ Test procedures

➢ Implementation ➢ Installed system

47
True or False?
Statement True or False
a) We can manage complexity by building a system in all at once.

b) One of the USDP main phases is Elaboration


c) Activity: Class Design and the Deliverable: Design model
d) USDP aims to deliver working, free-standing, useful ‘chunks’ of
software, one at a time.

e) There are 6 core workflows in Unified Software Development Process


(USDP)

48
MODELLING CONCEPTS -
ACTIVITY DIAGRAM
MODELLING CONCEPTS

Models Diagrams
• Provide a complete view of a system at a • Illustrate or doc some aspect of a system
particular stage and from a particular • Abstract shapes to represent things or actions
perspective from the real world (follow OMG standards)
• Used to represent something • Reasons:
• Reasons: – Communicate ideas
– Quicker and easier to build – Generate new ideas and possibilities
– Test ideas and make predictions
– Can be used in simulations
– Understand structures and relationships
– Can evolve as we learn
– Represent real or imaginary things from
any domain
Requirements Model
– complete view of requirements
– may include Use Case diagram, Class diagram.
– includes textual description as well as sets of diagrams

51
Behavioural Model
– shows how the system responds to events in the outside world and the
passage of time
– an initial model may just use Communication Diagrams
– Includes collaboration diagram, Sequence Diagrams and State chart.

52
Models in UML:
➢ Unified Modeling Language
➢ UML consist mainly of a graphical language to
represent the concepts that we require in the
development of an object oriented information system

53
Models in UML:
➢ The UML language 2.x supports diagrams:
1. Use case diagram
2. Activity diagram
3. Sequence diagram
4. Collaboration diagram
5. Class diagram
6. Object diagram
7. State chart diagram
8. Component diagram
9. Deployment diagram
54
ACTIVITY DIAGRAM

55
Purposes of activity diagrams
– To model a task.
– To describe a system function represented by a use case.
– To describe the logic of an operation.
– To model activities in the Unified Software Development Process
(USDP).

An activity is a state of doing something: either a real world process or


the execution of a software routine.

56
Components Notation Components Notation
Swim Lane Clerk Manager System Start

Activity End
Display Display
- Either one order order

Transition Synchronization Bars

- to join or to merge

Decision Object flows


- contain guard condition :order :order
to determine which path [New] [existing]
to take
BACS2053 OOAD Chapter 2 USDP 57
Chapter 1 58
Usage 1:
To model business processes at the high level (early stage of
SDLC)
Can be used to model existing system (Manual) or a new
computerized system
Swimlanes – Who(people), where(location), hardware,
department, etc.
Set the context/scope → Give appropriate title to activity
diagram.

59
Customer Staff
Enquiry
Transaction

[Return movie] [Rent movie]


Return video Select video Check customer
stocks stocks status
[new customer] [existing member]

Provide Register a new


customer info member

Check movie status


Pay deposit
at the staff
[not available] [available]

Inform customer Add rental

Update rental
Calculate payment

Make payment

Collect video stock

To model business activities in a video rental shop (swimlanes)


A workflow model of a university scheduling system
Author Reviewer Typesetter Printer

Write Chapter

Review Chapter

Revise Chapter

[book complete]
[book not
complete]
Typeset Book

Correct Proofs

Reset Book

Print Book

Example: To model the tasks involved in producing a book.


Author Reviewer Typesetter Printer

Plan Chapter
Write Chapter

Review Chapter
Produce First
Draft
Revise Chapter

[book complete]
[book not Revise Draft
complete]
Typeset Book

Correct Proofs
Add Exercises
Reset Book
Add References
& Bibliography Print Book

Example: To model the tasks involved in producing a book.


Usage 2:
To describe a system function represented by a use case.
(chapter 3: use case diagram)
It is used in the phase when requirements are elaborated.
To describe a use case (check in)
Customer person Clerk person System

Call RMO Request Customer Profile Display Profile

for every item


Review Customer profile

Request item Verify availability Check availability

A workflow N
Available?

model of a RMO Back order? Y Y


telephone order Add to order

entry system N
End add item

Verify customer credit Check credit

Y Good credit?
Finalize order

N
Refer to management
Usage 3:
To describe the logic of an operation.
It is used at a low level to model the details of how a
particular operation is carried out
advertCollection:getFirst( )

advert:getCost( )

[More advert]

AdvertCollection: getNext()

Activity diagrams with


object operation
campaign: getOverheads() signatures as activities

To model an operation called Campaign:calculateCost( )


advertCollection:getFirst()

advert:getCost()
[More advert]
AdvertCollection: getNext()
Activity
diagrams with
object operation
[No more advert]
signatures as
activities
campaign: getOverheads()

To model an operation called Campaign:calculateCost( )


Usage 4:
To model activities in the Unified Software Development
Process (USDP).

To model the way in which activities of the USDP are


organized and relate to one another in software
development process.
Requirements Team
Use Case Model

Requirements
List

Project Initiation Requirements


capture and modelling Interface
Document
Prototypes

Initial System
Architecture

Glossary

To model “requirements capture and modeling” activity


Requirements Analyst

Project Initiation
Document
Elicit
requirements
Glossary
Candidate
Requirements
Select
requirements
Requirements
List

Develop
use cases
Use Case Model

To show activities involved in “requirements capture and modeling”


Object Flows
Is a dependency between an object (of a class) and an activity
that results in a change to the state (status/condition) of that
object (of a class)
➢NOT necessarily ALL activities would change the state of an object

73
Object Flows
Notation of an object (object creation)

:class name

74
Object Flows

:Stock[old]
Before

Add new stock details

After

:Stock[updated]

75
Synchronization Bars
1. Join: Waiting for all subtasks to finish before proceeding

76
Synchronization Bars
2. Fork: Starting several subtasks in parallel (the sequence
irrelevant)

77
Notations
Start State (black circle)
Transition (arrow)
Add a New Client Activities (rectangle with rounded ends)

Decision point (diamond)


Assign Staff Contact
Guard Conditions (in square brackets)

[No campaign to add]

[Campaign to add]

Add New Campaign

78
Alternative notation for branching

[No campaign to add]


Assign Staff Contact

[Campaign to add]

79
2 ways to show objects Object
Object flow
:Campaign
[Active]
Record Completion of a
Campaign
:Campaign
[Completed]

80
1) Identify activities
➢ What happens when a new
client is added in the Agate Add a New Client

system?
• Add a New Client
Assign Staff Contact
• Add New Campaign
• Assign Staff to Campaign
• Assign Staff Contact Add New Campaign

2) Organise activities in order with


Assign Staff to Campaign
transitions

81
3) Identify alternative
transitions and the
conditions on them Add a New Client

➢ There may/may not be a


new campaign to add for [no campaign to add]
a new client. Assign Staff Contact

➢ There may/may not be [campaign to add]


new staffs assigned to the
campaign. Add New Campaign
[no staff to assign]
[staff to assign]
4) Add transitions and guard Assign Staff to
conditions to the diagram Campaign

82
5) Identify any processes
that are repeated
➢they will want to assign Add a New Client

staff to the campaign


until there are no more [no campaign to add]
Assign Staff Contact
staff to add
[campaign to add]

6) Add transitions and guard Add New Campaign


conditions to the diagram [no staff to assign]
[staff to assign]

Assign Staff to
Campaign [no more staff to assign]

[more staff to assign]

83
7) Are all the activities carried out by the same person,
organization or department? If not, then add swimlanes to
show the responsibilities

8) Name the swimlanes

9) Show each activity in the appropriate swimlane

84
10) Are there any object flows and objects to show?
➢ these can be documents that are created or updated in a business activity
diagram
➢ these can be object instances that change state in an operation or a use
case

11) Add the object flows and objects

85
Administrator Campaign Manager

Add a New Client :Client [New]

[no campaign to add]


Assign Staff Contact

[campaign to add]

:Campaign
Add New Campaign
[Commissioned] [no staff to assign]
[staff to assign]

Assign Staff to
Campaign [no more staff to assign]

[more staff to assign]


In this lecture you have learned about:
What is meant by a model
The distinction between a model and a diagram
The UML concept of a model
How an activity diagram are used in different phases of USDP

87
Construct a complete activity diagram to model the activities involve in online meal ordering and
delivery as described below:
After the customers have log in to the www.onlineMeal.com.my, they browse through the
online meal menu, he/she makes online order for the meal that he/she wishes. He/she need to
enter the delivery details such as recipients’ address, contact number and etc. After all the details
have been entered, then he/she needs to make online payment using credit card. The card is
verified by a communication with the credit card’s authorization party.
Once the ordering transaction is completed, all the order details will view by kitchen staff
immediately. The kitchen staffs will then prepare the food and drinks based on the online order
location. When the order food and drinks are ready, the kitchen staffs will update the order status
from “pending” to “ready”. Once the order status has been changed from “pending” to “ready”, the
delivery boy will collect the delivery items from the kitchen together with the order forms. The
delivery boy will then deliver the orders to the customer and the customer needs to sign on the
orders form to prove that the orders are received. The process ends when the delivery boy returns
the orders form with signature to the company.
You are required to include correct swim lanes, notations and object flows in your activity
diagram.

You might also like