SPM Unit 3
SPM Unit 3
Life cycle phases: Engineering and production stages, inception, Elaboration, construction, transition
phases.
Artifacts of the process: The artifact sets, Management artifacts, Engineering artifacts, programmatic
artifacts.
5. Life cycle phases
Characteristic of a successful software development process is the well-defined separation between
"research and development" activities and "production" activities. Most unsuccessful projects exhibit
one of the following characteristics:
An overemphasis on research and development
An overemphasis on production.
Successful modern projects-and even successful projects developed under the conventional process-tend
to have a very well-defined project milestone when there is a noticeable transition from a research
attitude to a production attitude. Earlier phases focus on achieving functionality. Later phases revolve
around achieving a product that can be shipped to a customer, with explicit attention to robustness,
performance, and finish.
A modern software development process must be defined to support the following:
Evolution of the plans, requirements, and architecture, together with well defined
synchronization points
Risk management and objective measures of progress and quality
Evolution of system capabilities through demonstrations of increasing functionality
To achieve economies of scale and higher returns on investment, we must move toward a software
manufacturing process driven by technological improvements in process automation and component-
based development. Two stages of the life cycle are:
1. The engineering stage, driven by less predictable but smaller teams doing design and
synthesis activities
2. The production stage, driven by more predictable but larger teams doing construction, test,
and deployment activities
1 © www.jntumaterials.co.in
The transition between engineering and production is a crucial event for the various
stakeholders. The production plan has been agreed upon, and there is a good enough understanding of
the problem and the solution that all stakeholders can make a firm commitment to go ahead with
production.
Engineering stage is decomposed into two distinct phases, inception and elaboration, and the
production stage into construction and transition. These four phases of the life-cycle process are loosely
mapped to the conceptual framework of the spiral model as shown in Figure 5-1
PRIMARY OBJECTIVES
Establishing the project's software scope and boundary conditions, including an operational
concept, acceptance criteria, and a clear understanding of what is and is not intended to be in
the product
Discriminating the critical use cases of the system and the primary scenarios of operation that
will drive the major design trade-offs
Demonstrating at least one candidate architecture against some of the primary scenanos
Estimating the cost and schedule for the entire project (including detailed estimates for the
elaboration phase)
Estimating potential risks (sources of unpredictability)
ESSENTIAL ACTMTIES
Formulating the scope of the project. The information repository should be sufficient to
define the problem space and derive the acceptance criteria for the end product.
Synthesizing the architecture. An information repository is created that is sufficient to
demonstrate the feasibility of at least one candidate architecture and an, initial baseline of
make/buy decisions so that the cost, schedule, and resource estimates can be derived.
Planning and preparing a business case. Alternatives for risk management, staffing, iteration
plans, and cost/schedule/profitability trade-offs are evaluated.
2 © www.jntumaterials.co.in
PRIMARY EVALUATION CRITERIA
Do all stakeholders concur on the scope definition and cost and schedule estimates?
Are requirements understood, as evidenced by the fidelity of the critical use cases?
Are the cost and schedule estimates, priorities, risks, and development processes credible?
Do the depth and breadth of an architecture prototype demonstrate the preceding criteria?
(The primary value of prototyping candidate architecture is to provide a vehicle for
understanding the scope and assessing the credibility of the development group in solving the
particular technical problem.)
Are actual resource expenditures versus planned expenditures acceptable
At the end of this phase, the "engineering" is considered complete. The elaboration phase activities
must ensure that the architecture, requirements, and plans are stable enough, and the risks sufficiently
mitigated, that the cost and schedule for the completion of the development can be predicted within
an acceptable range. During the elaboration phase, an executable architecture prototype is built in one
or more iterations, depending on the scope, size, & risk.
PRIMARY OBJECTIVES
Baselining the architecture as rapidly as practical (establishing a configuration-managed snapshot in
which all changes are rationalized, tracked, and maintained)
Baselining the vision
Baselining a high-fidelity plan for the construction phase
Demonstrating that the baseline architecture will support the vision at a reasonable cost in a
reasonable time
ESSENTIAL ACTIVITIES
Elaborating the vision.
Elaborating the process and infrastructure.
Elaborating the architecture and selecting components.
3 © www.jntumaterials.co.in
application, and all features are thoroughly tested. Newly developed software is integrated where required. The
construction phase represents a production process, in which emphasis is placed on managing resources and
controlling operations to optimize costs, schedules, and quality.
PRIMARY OBJECTIVES
Minimizing development costs by optimizing resources and avoiding unnecessary scrap and
rework
Achieving adequate quality as rapidly as practical
Achieving useful versions (alpha, beta, and other test releases) as rapidly as practical
ESSENTIAL ACTIVITIES
Resource management, control, and process optimization
Complete component development and testing against evaluation criteria
Assessment of product releases against acceptance criteria of the vision
PRIMARY OBJECTIVES
Achieving user self-supportability
Achieving stakeholder concurrence that deployment baselines are complete and consistent
with the evaluation criteria of the vision
Achieving final product baselines as rapidly and cost-effectively as practical
ESSENTIAL ACTIVITIES
4 © www.jntumaterials.co.in
Synchronization and integration of concurrent construction increments into consistent
deployment baselines
Deployment-specific engineering (cutover, commercial packaging and production, sales
rollout kit development, field personnel training)
Assessment of deployment baselines against the complete vision and acceptance criteria in the
requirements set
EVALUATION CRITERIA
Is the user satisfied?
Are actual resource expenditures versus planned expenditures acceptable ?
Requirements Set
Requirements artifacts are evaluated, assessed, and measured through a combination of the
following:
Design Set
UML notation is used to engineer the design models for the solution. The design set contains
varying levels of abstraction that represent the components of the solution space (their identities,
attributes, static relationships, dynamic interactions). The design set is evaluated, assessed, and
measured through a combination of the following:
Analysis of the internal consistency and quality of the design model
Analysis of consistency with the requirements models
Translation into implementation and deployment sets and notations (for example,
traceability, source code generation, compilation, linking) to evaluate the consistency and
completeness and the semantic balance between information in the sets
Analysis of changes between the current version of the design model and previous versions
(scrap, rework, and defect elimination trends)
Subjective review of other dimensions of quality
6 © www.jntumaterials.co.in
Implementation set
The implementation set includes source code (programming language notations) that represents the
tangible implementations of components (their form, interface, and dependency relationships)
Implementation sets are human-readable formats that are evaluated, assessed, and measured
through a combination of the following:
Analysis of consistency with the design models
Translation into deployment set notations (for example, compilation and linking) to evaluate
the consistency and completeness among artifact sets
Assessment of component source or executable files against relevant evaluation criteria
through inspection, analysis, demonstration, or testing
Execution of stand-alone component test cases that automatically compare expected results
with actual results
Analysis of changes between the current version of the implementation set and previous
versions (scrap, rework, and defect elimination trends)
Subjective review of other dimensions of quality
Deployment Set
The deployment set includes user deliverables and machine language notations, executable software,
and the build scripts, installation scripts, and executable target specific data necessary to use the
product in its target environment.
Deployment sets are evaluated, assessed, and measured through a combination of the following:
Testing against the usage scenarios and quality attributes defined in the requirements set to
evaluate the consistency and completeness and the~ semantic balance between information in
the two sets
Testing the partitioning, replication, and allocation strategies in mapping components of the
implementation set to physical resources of the deployment system (platform type, number,
network topology)
Testing against the defined usage scenarios in the user manual such as installation, user-
oriented dynamic reconfiguration, mainstream usage, and anomaly management
Analysis of changes between the current version of the deployment set and previous versions
(defect elimination trends, performance changes)
Subjective review of other dimensions of quality
Each artifact set is the predominant development focus of one phase of the life cycle; the other sets
take on check and balance roles. As illustrated in Figure 6-2, each phase has a predominant focus:
Requirements are the focus of the inception phase; design, the elaboration phase; implementation, the
construction phase; and deployment, the transition phase. The management artifacts also evolve, but
at a fairly constant level across the life cycle.
Most of today's software development tools map closely to one of the five artifact sets.
1. Management: scheduling, workflow, defect tracking, change management,
documentation, spreadsheet, resource management, and presentation tools
2. Requirements: requirements management tools
3. Design: visual modeling tools
7 © www.jntumaterials.co.in
4. Implementation: compiler/debugger tools, code analysis tools, test coverage analysis tools,
and test management tools
5. Deployment: test coverage and test automation tools, network management tools, commercial
components (operating systems, GUIs, RDBMS, networks, middleware), and installation tools.
8 © www.jntumaterials.co.in
The inception phase focuses mainly on critical requirements usually with a secondary focus on an initial
deployment view. During the elaboration phase, there is much greater depth in requirements, much
more breadth in the design set, and further work on implementation and deployment issues. The main
focus of the construction phase is design and implementation. The main focus of the transition phase is
on achieving consistency and completeness of the deployment set in the context of the other sets.
Management set. The release specifications and release descriptions capture the objectives,
evaluation criteria, and results of an intermediate milestone. These artifacts are the test plans
and test results negotiated among internal project teams. The software change orders capture
test results (defects, testability changes, requirements ambiguities, enhancements) and the
9 © www.jntumaterials.co.in
closure criteria associated with making a discrete change to a baseline.
Requirements set. The system-level use cases capture the operational concept for the system
and the acceptance test case descriptions, including the expected behavior of the system and
its quality attributes. The entire requirement set is a test artifact because it is the basis of all
assessment activities across the life cycle.
Design set. A test model for nondeliverable components needed to test the product baselines
is captured in the design set. These components include such design set artifacts as a seismic
event simulation for creating realistic sensor data; a "virtual operator" that can support
unattended, after-hours test cases; specific instrumentation suites for early demonstration of
resource usage; transaction rates or response times; and use case test drivers and component
stand-alone test drivers.
Implementation set. Self-documenting source code representations for test components and
test drivers provide the equivalent of test procedures and test scripts. These source files may
also include human-readable data files representing certain statically defined data sets that are
explicit test source files. Output files from test drivers provide the equivalent of test reports.
Deployment set. Executable versions of test components, test drivers, and data files are
provided.
10 © www.jntumaterials.co.in
Work Breakdown Structure
Work breakdown structure (WBS) is the vehicle for budgeting and collecting costs. To monitor and
control a project's financial performance, the software project man1ger must have insight into project
11 © www.jntumaterials.co.in
costs and how they are expended. The structure of cost accountability is a serious project planning
constraint.
Release Specifications
The scope, plan, and objective evaluation criteria for each baseline release are derived from the vision
statement as well as many other sources (make/buy analyses, risk management concerns, architectural
considerations, shots in the dark, implementation constraints, quality thresholds). These artifacts are
intended to evolve along with the process, achieving greater fidelity as the life cycle progresses and
requirements understanding matures. Figure 6-6 provides a default outline for a release specification
Release Descriptions
Release description documents describe the results of each release, including performance against each
of the evaluation criteria in the corresponding release specification. Release baselines should be
accompanied by a release description document that describes the evaluation criteria for that
configuration baseline and provides substantiation (through demonstration, testing, inspection, or
analysis) that each criterion has been addressed in an acceptable manner. Figure 6-7 provides a default
outline for a release description.
Status Assessments
Status assessments provide periodic snapshots of project health and status, including the software
project manager's risk assessment, quality indicators, and management indicators. Typical status
assessments should include a review of resources, personnel staffing, financial data (cost and revenue),
top 10 risks, technical progress (metrics snapshots), major milestone plans and results, total project or
product scope & action items
12 © www.jntumaterials.co.in
Environment
An important emphasis of a modern approach is to define the development and maintenance
environment as a first-class artifact of the process. A robust, integrated development environment must
support automation of the development process. This environment should include requirements
management, visual modeling, document automation, host and target programming tools, automated
regression testing, and continuous and integrated change management, and feature and defect tracking.
Deployment
A deployment document can take many forms. Depending on the project, it could include several
document subsets for transitioning the product into operational status. In big contractual efforts in
which the system is delivered to a separate maintenance organization, deployment artifacts may
include computer system operations manuals, software installation manuals, plans and procedures for
cutover (from a legacy system), site surveys, and so forth. For commercial software products, deploy-
ment artifacts may include marketing plans, sales rollout kits, and training courses.
13 © www.jntumaterials.co.in
14 © www.jntumaterials.co.in
6.3 ENGINEERING ARTIFACTS
Most of the engineering artifacts are captured in rigorous engineering notations such as UML,
programming languages, or executable machine codes. Three engineering artifacts are explicitly
intended for more general review, and they deserve further elaboration .
Vision Document
The vision document provides a complete vision for the software system under development and.
supports the contract between the funding authority and the development organization. A project
vision is meant to be changeable as understanding evolves of the requirements, architecture, plans, and
technology. A good vision document should change slowly. Figure 6-9 provides a default outline for a
vision document.
Architecture Description
The architecture description provides an organized view of the software architecture under
development. It is extracted largely from the design model and includes views of the design,
implementation, and deployment sets sufficient to understand how the operational concept of the
requirements set will be achieved. The breadth of the architecture description will vary from project to
project depending on many factors. Figure 6-10 provides a default outline for an architecture
description.
15 © www.jntumaterials.co.in
Software User Manual
The software user manual provides the user with the reference documentation necessary to support the
delivered software. Although content is highly variable across application domains, the user manual
should include installation procedures, usage procedures and guidance, operational constraints, and a
user interface description, at a minimum. For software products with a user interface, this manual
should be developed early in the life cycle because it is a necessary mechanism for communicating and
stabilizing an important subset of requirements. The user manual should be written by members of the
test team, who are more likely to understand the user's perspective than the development team.
17 © www.jntumaterials.co.in