Lecture 3
Lecture 3
Lecture 4
Iterative Development & the
Rational Unified Process (RUP)
Introduction to UML
History of UML
Intro to UML through an Example
1
Software—A Risky Business
Successful:
The project is completed
on-time and on-budget,
with all features and
functions as initially
specified
Challenged
Source: The project is completed
CHAOS and operational but over-
Report by budget, over the time
The Standish estimate, and offers fewer
Group Report
features and functions
than originally specified
Failed
The project is cancelled
at some point during the
development cycle.!
Faulty Assumption 1:
Requirements can be Fairly Accurate
• Applied Software Measurement, Capers Jones.
• Based on 6,700 systems.
60
Creeping Req's as % of original
50
40
30
20
10
0
10 100 1000 10000 100000
Project Size in Function Points
Faulty Assumption 2:
Requirements are Stable
Iteration Iteration
...
1 2
2 weeks 2 weeks
Benefits of Iterative Development
9
A Popular Iterative Process—The Unified Process
• Warning: The phases are not iterations
Introduction to UML
15
Unified Modeling Language (UML)
• Class diagrams
• Describe the static structure of the system: Objects, attributes,
associations
• Sequence diagrams
• Describe the dynamic behavior between objects of the system
• State diagrams
• Describe the dynamic behavior of an individual object
An Example
• Play a Dice Game use case: Player requests to roll the die. System
presents results: If the die face value totals seven, player wins; otherwise,
player loses
Dice Game
Play a Dice
Game
Player
Define a Domain Model
• Object-oriented analysis is concerned with creating a description of the domain from
the perspective of objects.
• The result can be expressed in a domain model that shows the noteworthy domain
concepts or objects.
Assign Object Responsibilities and Draw
Interaction Diagrams
• Object-oriented design is concerned with defining software objects their
responsibilities and collaborations
• A common notation to illustrate these collaborations is the sequence diagram
(a kind of UML interaction diagram)
• It shows the flow of messages between software objects, and thus the
invocation of methods
Define Design Class Diagrams
• Structure diagrams. A type of diagrams that depict the elements of a specification that
are irrespective of time. This includes Class Diagram, Object Diagram, Component
Diagram, Composite Structure Diagram, Package Diagram, and Deployment Diagram
• Composite Diagram: Shows the internal structure of a class and the collaborations that
this structure makes possible
• Package Diagram: Shows how a system is split up into logical groupings by showing the
dependencies among these groupings (packages that make up a model)
• Use Case Diagram: Shows use cases, actors, and their interrelationships
• State Machine Diagram: Describes the states an object or interaction may be in, as
• Timing Diagram: Depicts the changes in the state of an object over time in
response to external events
• Stereotypes
• Allows to define a new kind of model element based on an
existing one
• Basically adds extra semantics
• Examples
Case Study
minor focus
User Interface
explore how to connect to
other layers
primary focus
of case studies
application Sale Payment
logic layer explore how to
design objects