Object-Oriented and Classical Software Engineering: Stephen R. Schach
Object-Oriented and Classical Software Engineering: Stephen R. Schach
Object-Oriented and Classical Software Engineering: Stephen R. Schach
Classical Software
Engineering
Seventh Edition, WCB/McGraw-Hill, 2007
Stephen R. Schach
srs@vuse.vanderbilt.edu
CHAPTER 3
SOFTWARE
PROCESS
2
Overview
3
Overview (contd)
• Postdelivery maintenance
• Retirement
• The phases of the Unified Process
• One- versus two-dimensional life-cycle models
• Improving the software process
• Other software process improvement initiatives
• Costs and benefits of software process improvement
4
The Unified Process (contd)
• The Unified Process is not a series of steps for
constructing a software product
– No such single “one size fits all” methodology could exist
– There is a wide variety of different types of software
5
The Unified Process (contd)
UML is graphical
A picture is worth a thousand words
6
3.3 The Requirements Workflow
The aim of the requirements workflow
To determine the client’s needs
7
Overview of the Requirements Workflow
First, gain an understanding of the application domain (or
domain, for short)
That is, the specific business environment in which the software
product is to operate
8
Overview of the Requirements Workflow
(contd)
• It is vital to determine the client’s constraints
– Deadline
• Nowadays, software products are often mission critical
– Parallel running
– Portability
– Reliability
– Rapid response time
– Cost
• The client will rarely inform the developer how much money is
available
• A bidding procedure is used instead
9
Overview of the Requirements Workflow
(contd)
The aim of this concept exploration is to determine
What the client needs
Not what the client wants
10
3.4 The Analysis Workflow
• The aim of the analysis workflow
– To analyze and refine the requirements
11
The Analysis Workflow (contd)
Two separate workflows are needed
The requirements artifacts must be expressed in the language of
the client
The analysis artifacts must be precise, and complete enough for
the designers
12
The Specification Document (contd)
• Specification document (“specifications”)
– It constitutes a contract
– It must not have imprecise phrases like “optimal,” or “98%
complete”
13
The Specification Document (contd)
The specification document must not have
Contradictions
Ambiguity
Incompleteness
14
Software Project Management Plan
• Once the client has signed off the specifications, detailed
planning and estimating begins
15
3.5 The Design Workflow
The aim of the design workflow is to refine the analysis
workflow until the material is in a form that can be
implemented by the programmers
Many nonfunctional requirements need to be finalized at this
time, including
Choice of programming language
Reuse issues
Portability issues
16
Classical Design
Architectural design
Decompose the product into modules
Detailed design
Design each module:
Data structures
Algorithms
17
The Design Workflow (contd)
Retain design decisions
For when a dead-end is reached
To prevent the maintenance team reinventing the wheel
18
3.6 The Implementation Workflow
The aim of the implementation workflow is to implement
the target software product in the selected implementation
language
A large software product is partitioned into subsystems
The subsystems consist of components or code artifacts
19
3.7 The Test Workflow
The test workflow is the responsibility of
Every developer and maintainer, and
The quality assurance group
20
3.7.1 Requirements Artifacts
Every item in the analysis artifacts must be traceable to an
item in the requirements artifacts
Similarly for the design and implementation artifacts
21
3.7.2 Analysis Artifacts
The analysis artifacts should be checked by means of a
review
Representatives of the client and analysis team must be present
22
3.7.3 Design Artifacts
Design reviews are essential
A client representative is not usually present
23
3.7.4 Implementation Artifacts
• Each component is tested as soon as it has been
implemented
– Unit testing
• At the end of each iteration, the completed components
are combined and tested
– Integration testing
• When the product appears to be complete, it is tested as a
whole
– Product testing
• Once the completed product has been installed on the
client’s computer, the client tests it
– Acceptance testing
24
Implementation Artifacts (contd)
COTS software is released for testing by prospective
clients
Alpha release
Beta release
25
3.8 Postdelivery Maintenance
Postdelivery maintenance is an essential component of
software development
More money is spent on postdelivery maintenance than on all
other activities combined
26
Postdelivery Maintenance (contd)
Two types of testing are needed
Testing the changes made during postdelivery maintenance
Regression testing
27
3.9 Retirement
• Software can be unmaintainable because
– A drastic change in design has occurred
– The product must be implemented on a totally new
hardware/operating system
– Documentation is missing or inaccurate
– Hardware is to be changed — it may be cheaper to rewrite the
software from scratch than to modify it
28
Retirement (contd)
True retirement is a rare event
29
3.10 The Phases of the Unified Process
Figure 3.1
The Phases of the Unified Process (contd)
The four increments are labeled
Inception phase
Elaboration phase
Construction phase
Transition phase
31
The Phases of the Unified Process (contd)
• In theory, there could be any number of increments
– In practice, development seems to consist of four increments
32
The Phases of the Unified Process (contd)
Workflow
Technical context of a step
Phase
Business context of a step
33
3.10.1 The Inception Phase
The aim of the inception phase is to determine whether the
proposed software product is economically viable
Obtaining the initial version of the business case is the
overall aim of the inception phase
34
The Inception Phase: Documentation
• The deliverables of the inception phase include:
– The initial version of the domain model
– The initial version of the business model
– The initial version of the requirements artifacts
– A preliminary version of the analysis artifacts
– A preliminary version of the architecture
– The initial list of risks
– The initial ordering of the use cases (Chapter 10)
– The plan for the elaboration phase
– The initial version of the business case
35
3.10.2 Elaboration Phase
• The aim of the elaboration phase is to refine the initial
requirements
– Refine the architecture
– Monitor the risks and refine their priorities
– Refine the business case
– Produce the project management plan
36
The Elaboration Phase: Documentation
• The deliverables of the elaboration phase include:
– The completed domain model
– The completed business model
– The completed requirements artifacts
– The completed analysis artifacts
– An updated version of the architecture
– An updated list of risks
– The project management plan (for the rest of the project)
– The completed business case
37
3.10.3 Construction Phase
The aim of the construction phase is to produce the first
operational-quality version of the software product
This is sometimes called the beta release
38
The Tasks of the Construction Phase
The emphasis in this phase is on
Implementation and
Testing
Unit testing of modules
Integration testing of subsystems
Product testing of the overall system
39
The Construction Phase: Documentation
• The deliverables of the construction phase include:
– The initial user manual and other manuals, as appropriate
– All the artifacts (beta release versions)
– The completed architecture
– The updated risk list
– The project management plan (for the remainder of the project)
– If necessary, the updated business case
40
3.10.4 The Transition Phase
• The aim of the transition phase is to ensure that the
client’s requirements have indeed been met
– Faults in the software product are corrected
– All the manuals are completed
– Attempts are made to discover any previously unidentified risks
41
The Transition Phase: Documentation
The deliverables of the transition phase include:
All the artifacts (final versions)
The completed manuals
42
3.11 One- and Two-Dimensional Life-Cycle
Models
43 Figure 3.2
Why a Two-Dimensional Model?
• A traditional life cycle is a one-dimensional model
– Represented by the single axis on the previous slide
• Example: Waterfall model
44
Why a Two-Dimensional Model? (contd)
In reality, the development task is too big for this
45
Why a Two-Dimensional Model? (contd)
• At the beginning of the process, there is not enough
information about the software product to carry out the
requirements workflow
– Similarly for the other core workflows
46
Why a Two-Dimensional Model? (contd)
• The Unified Process handles the inevitable changes well
– The moving target problem
– The inevitable mistakes
47