Chap1 3
Chap1 3
Chap1 3
2
Use Cases
3
Design
4
Object-Oriented Analysis and Design
(OOA/D)
• During OOA, the emphasis is on finding and
describing the objects (or concepts) in the
problem domain, i.e., domain objects.
5
The Unified Process (UP)
6
Unified Modeling Language (UML)
7
Fig. 1.6 Different perspectives with UML
Conceptual Perspective
DiceGame Die (domain model)
1 Includes 2
faceValue Raw UML class diagram
notation used to visualize
real-world concepts.
Specification or
DiceGame Die Implementation
Perspective
die1 : Die 2 faceValue : int (design class diagram)
die2 : Die
getFaceValue() : int Raw UML class diagram
play() roll() notation used to visualize
software elements.
9
Define Use Cases
Use Case: Play a Dice Game
10
A Short Example
11
Define a Domain Model
Fig. 1.3 Partial domain model (conceptual object model) of the dice game
Player Die
1 Rolls 2
name faceValue
1 2
Plays
1
DiceGame
1 Includes
Domain model shows the noteworthy domain concepts as objects, their attributes, and
associations.
12
Define Object Responsibilities and Draw Interaction Diagrams
Fig. 1.4 Sequence diagram illustrating messages between software objects
13
Fig. 1.4 Sequence diagram illustrating messages between software objects
play()
roll()
fv1 := getFaceValue()
roll()
fv2 := getFaceValue()
DiceGame Die
A static view of the class (including its attributes and methods) definitions is usefully
shown with a UML class diagram.
15
Chapter 2
ITERATIVE, EVOLUTIONARY, AND AGILE
Objectives
• Provide motivation for the content and order of the
book
• Define an iterative and agile process
• Define fundamental concepts in the Unified Process.
16
Waterfall (sequential) Lifecycle
17
Why the waterfall lifecycle fails?
18
Dr. Kivanc Dincer CS319 Week 1 - Sept.12,2005 19
Dr. Kivanc Dincer CS319 Week 1 - Sept.12,2005 20
Dr. Kivanc Dincer CS319 Week 1 - Sept.12,2005 21
Iterative and Evolutionary Development
• involves early programming and testing of a partial system,
in repeating cycles.
22
Dr. Kivanc Dincer CS319 Week 1 - Sept.12,2005 23
Fig. 2.2 Iterative feedback and evolution leads towards the desired system. The
requirements and design instability lowers over time.
24
Timeboxing
25
Fig. 2.1 Iterative and Evolutionary Development (also known as iterative and
inceremental development; spiral development and evolutionary development)
3 weeks(for example)
The system
Iterations are fixed in grows
.
incrementally
length or timeboxed.
26
Fig. 2.4 Evolutionary analysis and design – the majority in early iterations.
1 2 3 4 5 ... 20
requirements workshops
requirements
requirements
software
software
In evolutionary iterative
development , the
requirements evolve
over a set of the early
iterations , through a
series of requirements
90 % 90 %
workshops (for
example ). Perhaps
after four iterations and
50 %
workshops , 90 % of the
requirements are 30 %
defined and refined . 20 % 20 %
5% 8% 10 %
Nevertheless , only 2%
10 % of the software is
Iteration 1 a 3- Iteration 2 Iteration 3 Iteration 4 Iteration 5
built .
week iteration
week 2 week 3
week 1T W Th F M T W Th F M T W Th F
M
kickoff meeting team agile start de-scope final check-in demo and next
clarifying iteration modeling& coding& iteration and code- 2-day iteration
goals with the team . design, testing goals if freeze for the requirements planning
1 hour UML too much iteration workshop meeting;
whiteboard work baseline 2 hours
sketching.
5 hours Most OOA/D and
Use-case modeling
applying UML during
during the workshop
this period
27
Build-Feedback-Adapt Cycles
28
Benefits to Iterative Development
• Managed complexity;
– the team is not overwhelmed by “analysis paralysis” or very
long and complex steps
• The learning within an iteration can be methodically used to
improve the development process itself, iteration by
iteration.
29
The Unified Process (UP)
“People are more important than any process. Good people with a good
process will outperform good people with no process any time.”
– Grady Booch
30
Unified Process (UP)
31
Advantages of UP
The main focus remains the software product itself, and its
quality.
32
Fig. 2.6 Schedule-oriented terms in the UP
development cycle
iteration phase
33
Agile Methods and Attitudes
Agile Modeling
Pragmatic Programming
35
The Agile Manifesto
36
The Agile Principles
1. Our highest priority is to satisfy the customer through
early and continuous delivery of valuable software.
2. Welcome changing requirements, even late in development.
Agile processes harness change for the customer’s
competitive advantage.
3. Deliver working software frequently, from a couple of
weeks to a couple of months, with a preference to the
shorter time scale.
4. Business people and developers must work together daily
throughout the project.
5. Build projects around motivated individuals. Give them the
environment and support they need, and trust them to get
the job done.
6. The most efficient and effective method of conveying info
to and within a development team is face-to-face
conversation.
37
The Agile Principles
38
Agile Modeling
39
Agile Modeling Principles and Values
(Ambler, 2002)
• Adopting an agile method does not mean avoiding any modeling.
40
Agile Modeling Principles and Values (2)
• Know that all models will be inaccurate, and the final code or
design different – than the model. Only tested code
demonstrates the true design.
41
Agile UP
• Prefer a small set of UP activities and artifacts.
42
UP Best Practices
43
UP Phases
1 Inception
Inception is not a requirements phase; rather a feasibility
phase, where just enough investigation is done to support a
decision to continue or stop.
The life-cycle objectives of the project are stated, so that the
needs of every stakeholder are considered. Scope and
boundary conditions, acceptance criteria and some
requirements are established.
Approximate vision, business case, scope, vague estimates.
2 Elaboration
An analysis is done to determine the risks, stability of vision of
what the product is to become, stability of architecture and
expenditure of resources.
Refined vision, iterative implementation of core architecture,
resolution of high risks, identification of most requirements
and scope, more realistic estimates.
44
UP Phases (2)
3 Construction
– The Construction phase is a manufacturing process. It
emphasizes managing resources and controlling operations to
optimize costs, schedules and quality. This phase is broken into
several iterations.
– Iterative implementation of the remaining lower risk and easier
elements, and preparation for deployment.
4 Transition
– The transition phase is the phase where the product is put in
the hands of its end users. It involves issues of marketing,
packaging, installing, configuring, supporting the user-
community, making corrections, etc.
– Beta tests, deployment.
45
Fig. 2.7 UP disciplines
Test
Deployment
Project Management
Environment
48
Requirements Discipline
49