Sppm Notes 24 25
Sppm Notes 24 25
Sppm Notes 24 25
IT – II Sem L T/P/D C
4 ‐ /‐ / ‐ 4
SOFTWARE PROCESS AND PROJECT MANAGEMENT
(Core Elective‐V)
Objectives:
The Main goal of software development projects is to create a software system with a
predetermined functionality and quality in a given time frame and with given costs. For
achieving this goal, models are required for determining target values and for continuously
controlling these values. This course focuses on principles, techniques, methods & tools for
model-based management of software projects, assurance of product quality and process
adherence (quality assurance), as well as experience - based creation & improvement of
models (process management). The goals of the course can be characterized as follows:
Understanding the specific roles within a software organization as related to project and
process management
Understanding the basic infrastructure competences (e.g., process modeling and
measurement)
Understanding the basic steps of project planning, project management, quality assurance,
and process management and their relationships
UNIT-I
Conventional Software Management: The waterfall Model, Conventional Software
Management Performance,
Evolution of Software Economics: software Economics. Pragmatic Software Cost Estimation.
Improving Software Economics: Reducing Software Product Size, Improving Software
Processes, Improving Team Effectiveness, Improving Automation, Achieving Required Quality,
Peer Inspections.
UNIT-II
Conventional and Modern Software Management: Principles of Conventional Software
Engineering, Principles of Modern Software Management, Transitioning to an interactive Process.
Life Cycle Phases: Engineering and Production Stages Inception, Elaboration, Construction,
Transition phases.
UNIT-III
Artifacts of the Process: The Artifact Sets. Management Artifacts, Engineering Artifacts,
Programmatic Artifacts.
Model Based Software Architectures: A Management Perspective and Technical Perspective.
UNIT-IV
Flows of the Process: Software Process Workflows. Inter Trans Workflows.
Checkpoints of the Process: Major Mile Stones, Minor Milestones, Periodic Status
Assessments.
Interactive Process Planning: Work Breakdown Structures, Planning Guidelines, Cost and
Schedule Estimating. Interaction Planning Process, Pragmatic Planning.
UNIT-V
Project Organizations and Responsibilities: Line-of-Business Organizations, Project
III
Organizations, and Evolution of Organizations.
Process Automation: Building Blocks, the Project Environment.
Project Control and Process Instrumentation: Server Care Metrics, Management Indicators,
Quality Indicators, Life Cycle Expectations Pragmatic Software
TEXT BOOKS:
Reference Books:
Outcomes:
At the end of the course, the student shall be able to:
Describe and determine the purpose and importance of project management from the
perspectives of planning, tracking and completion of project
Compare and differentiate organization structures and project structures.
Implement a project to manage project schedule, expenses and resource with the
application of suitable project management tools
IV
INDEX
V Process Automation 64 – 69
V
UNIT – I
Conventional Software Management: The waterfall model, conventional software Management performance.
Evolution of Software Economics: Software Economics, pragmatic software cost estimation.
Improving Software Economics: Reducing Software product size, improving software processes, improving team
effectiveness, improving automation, Achieving required quality, peer inspections.
Analysis
Design
Coding
Testing
Operation
3. The basic framework described in the waterfall model is risky and invites failure. The testing phase that
occurs at the end of the development cycle is the first event for which timing, storage, input/output
transfers, etc., are experienced as distinguished from analyzed. The resulting design changes are likely
to be so disruptive that the software requirements upon which the design is based are likely violated.
Either the requirements must be modified or a substantial design change is warranted.
1. Program design comes first. Insert a preliminary program design phase between the software
requirements generation phase and the analysis phase. By this technique, the program designer
assures that the software will not fail because of storage, timing, and data flux (continuous
change). As analysis proceeds in the succeeding phase, the program designer must impose on the
analyst the storage, timing, and operational constraints in such a way that he senses the consequences.
If the total resources to be applied are insufficient or if the embryonic(in an early stage of development)
operational design is wrong, it will be recognized at this early stage and the iteration with requirements
and preliminary design can be redone before final design, coding, and test commences. How is this
program design procedure implemented?
2. Document the design. The amount of documentation required on most software programs is quite a lot,
certainly much more than most programmers, analysts, or program designers are willing to do if left to their own
devices. Why do we need so much documentation? (1) Each designer must communicate with interfacing
designers, managers, and possibly customers. (2) During early phases, the documentation is the design. (3) The
real monetary value of documentation is to support later modifications by a separate test team, a separate
maintenance team, and operations personnel who are not software literate.
3. Do it twice. If a computer program is being developed for the first time, arrange matters so that the version
finally delivered to the customer for operational deployment is actually the second version insofar as critical
design/operations are concerned. Note that this is simply the entire process done in miniature, to a time scale
4. Plan, control, and monitor testing. Without question, the biggest user of project resources-manpower,
computer time, and/or management judgment-is the test phase. This is the phase of greatest risk in terms of
cost and schedule. It occurs at the latest point in the schedule, when backup alternatives are least available, if
at all. The previous three recommendations were all aimed at uncovering and solving problems before entering
the test phase. However, even after doing these things, there is still a test phase and there are still important
things to be done, including: (1) employ a team of test specialists who were not responsible for the original
design; (2) employ visual inspections to spot the obvious errors like dropped minus signs, missing factors of
two, jumps to wrong addresses (do not use the computer to detect this kind of thing, it is too expensive); (3)
test every logic path; (4) employ the final checkout on the target computer.
5. Involve the customer. It is important to involve the customer in a formal way so that he has committed himself
at earlier points before final delivery. There are three points following requirements definition where the insight,
judgment, and commitment of the customer can bolster the development effort. These include a "preliminary
software review" following the preliminary program design step, a sequence of "critical software design reviews"
during program design, and a "final software acceptance review".
IN PRACTICE
Some software projects still practice the conventional software management approach.
It is useful to summarize the characteristics of the conventional process as it has typically been applied,
which is not necessarily as it was intended. Projects destined for trouble frequently exhibit the following
symptoms:
Early success via paper designs and thorough (often too thorough) briefings.
Commitment to code late in the life cycle.
Integration nightmares (unpleasant experience) due to unforeseen implementation issues and interface
ambiguities.
Heavy budget and schedule pressure to get the system working.
Late shoe-homing of no optimal fixes, with no time for redesign.
A very fragile, unmentionable product delivered late.
Late risk resolution A serious issue associated with the waterfall lifecycle was the lack of early risk resolution.
Figure 1.3 illustrates a typical risk profile for conventional waterfall model projects. It includes four distinct
periods of risk exposure, where risk is defined as the probability of missing a cost, schedule, feature, or quality
goal. Early in the life cycle, as the requirements were being specified, the actual risk exposure was highly
unpredictable.
SOFTWARE ECONOMICS
Most software cost models can be abstracted into a function of five basic parameters: size, process, personnel,
environment, and required quality.
1. The size of the end product (in human-generated components), which is typically quantified in terms
of the number of source instructions or the number of function points required to develop the required
functionality
2. The process used to produce the end product, in particular the ability of the process to avoid non- value-
adding activities (rework, bureaucratic delays, communications overhead)
3. The capabilities of software engineering personnel, and particularly their experience with the computer
science issues and the applications domain issues of the project
4. The environment, which is made up of the tools and techniques available to support efficient software
development and to automate the process
5. The required quality of the product, including its features, performance, reliability, and adaptability
The relationships among these parameters and the estimated cost can be written as follows:
One important aspect of software economics (as represented within today's software cost models) is that the
relationship between effort and size exhibits a diseconomy of scale. The diseconomy of scale of software
development is a result of the process exponent being greater than 1.0. Contrary to most manufacturing processes,
the more software you build, the more expensive it is per unit item.
Figure 2-1 shows three generations of basic technology advancement in tools, components, and processes.
The required levels of quality and personnel are assumed to be constant. The ordinate of the graph refers to
software unit costs (pick your favorite: per SLOC, per function point, per component) realized by an organization.
The three generations of software development are defined as follows:
1) Conventional: 1960s and 1970s, craftsmanship. Organizations used custom tools, custom processes, and
virtually all custom components built in primitive languages. Project performance was highly predictable
in that cost, schedule, and quality objectives were almost always underachieved.
2) Transition: 1980s and 1990s, software engineering. Organiz:1tions used more-repeatable processes and off-
the-shelf tools, and mostly (>70%) custom components built in higher level languages. Some of the
components (<30%) were available as commercial products, including the operating system, database
management system, networking, and graphical user interface.
3) Modern practices: 2000 and later, software production. This book's philosophy is
rooted in the use of managed and measured processes, integrated automation environments, and
mostly (70%) off-the-shelf components. Perhaps as few as 30% of the components need to be
custom built
Technologies for environment automation, size reduction, and process improvement are not independent of
one another. In each new era, the key is complementary growth in all technologies. For example, the process
advances could not be used successfully without new component technologies and increased tool automation.
1. An object-oriented model of the problem and its solution encourages a common vocabulary between
the end users of a system and its developers, thus creating a shared understanding of the problem being
solved.
2. The use of continuous integration creates opportunities to recognize risk early and make incremental
corrections without destabilizing the entire development effort.
3. An object-oriented architecture provides a clear separation of concerns among disparate elements of a
system, creating firewalls that prevent a change in one part of the system from rending the fabric of the
entire architecture.
1
Function point metrics provide a standardized method for measuring the various functions of a software application.
The basic units of function points are external user inputs, external outputs, internal logical data groups, external data interfaces, and
external inquiries.
Software Project Management Page 12
Booch also summarized five characteristics of a successful object-oriented project.
1. A ruthless focus on the development of a system that provides a well understood collection of essential
minimal characteristics.
2. The existence of a culture that is centered on results, encourages communication, and yet is not afraid
to fail.
3. The effective use of object-oriented modeling.
4. The existence of a strong architectural vision.
5. The application of a well-managed iterative and incremental development life cycle.
REUSE
Reusing existing components and building reusable components have been natural software engineering activities
since the earliest improvements in programming languages. With reuse in order to minimize development costs
while achieving all the other required attributes of performance, feature set, and quality. Try to treat reuse as a
mundane part of achieving a return on investment.
Most truly reusable components of value are transitioned to commercial products supported by organizations
with the following characteristics:
They have an economic motivation for continued support.
They take ownership of improving product quality, adding new features, and transitioning to new
technologies.
They have a sufficiently broad customer base to be profitable.
The cost of developing a reusable component is not trivial. Figure 3-1 examines the economic trade-offs. The
steep initial curve illustrates the economic obstacle to developing reusable components.
Reuse is an important discipline that has an impact on the efficiency of all workflows and the quality of most
artifacts.
Software project managers need many leadership qualities in order to enhance team effectiveness. The following
are some crucial attributes of successful software project managers that deserve much more attention:
1. Hiring skills. Few decisions are as important as hiring decisions. Placing the right person in the right
job seems obvious but is surprisingly hard to achieve.
2. Customer-interface skill. Avoiding adversarial relationships among stakeholders is a prerequisite for
success.
Decision-making skill. The jillion books written about management have failed to provide a clear
definition of this attribute. We all know a good leader when we run into one, and decision-making skill
seems obvious despite its intangible definition.
Team-building skill. Teamwork requires that a manager establish trust, motivate progress, exploit
eccentric prima donnas, transition average people into top performers, eliminate misfits, and
consolidate diverse opinions into a team direction.
Selling skill. Successful project managers must sell all stakeholders (including themselves) on decisions and
priorities, sell candidates on job positions, sell changes to the status quo in the face of resistance, and sell
achievements against objectives. In practice, selling requires continuous negotiation, compromise, and
empathy
Key practices that improve overall software quality include the following:
Focusing on driving requirements and critical use cases early in the life cycle, focusing on requirements
completeness and traceability late in the life cycle, and focusing throughout the life cycle on a balance
between requirements evolution, design evolution, and plan evolution
Using metrics and indicators to measure the progress and quality of an architecture as it evolves from a
high-level prototype into a fully compliant product
Providing integrated life-cycle environments that support early and continuous configuration control,
change management, rigorous design methods, document automation, and regression test automation
Using visual modeling and higher level languages that support architectural control, abstraction,
reliable programming, reuse, and self-documentation
Early and continuous insight into performance issues through demonstration-based evaluations
Transitioning engineering information from one artifact set to another, thereby assessing the consistency,
feasibility, understandability, and technology constraints inherent in the engineering artifacts
Major milestone demonstrations that force the artifacts to be assessed against tangible criteria in the
context of relevant use cases
Environment tools (compilers, debuggers, analyzers, automated test suites) that ensure representation
rigor, consistency, completeness, and change control
Life-cycle testing for detailed insight into critical trade-offs, acceptance criteria, and requirements
compliance
Change management metrics for objective insight into multiple-perspective change trends and
convergence or divergence from quality and progress goals
Inspections are also a good vehicle for holding authors accountable for quality products. All authors of
software and documentation should have their products scrutinized as a natural by-product of the process.
Therefore, the coverage of inspections should be across all authors rather than across all components.
1. Make quality Quality must be quantified and mechanisms put into place to motivate its achievement
2. High-quality software is possible. Techniques that have been demonstrated to increase quality include
involving the customer, prototyping, simplifying design, conducting inspections, and hiring the best people
3. Give products to customers early. No matter how hard you try to learn users' needs during the requirements
phase, the most effective way to determine real needs is to give users a product and let them play with it
4.Determine the problem before writing the requirements. When faced with what they believe is a problem,
most engineers rush to offer a solution. Before you try to solve a problem, be sure to explore all the alternatives
and don't be blinded by the obvious solution
5. Evaluate design alternatives. After the requirements are agreed upon, you must examine a variety of
architectures and algorithms. You certainly do not want to use” architecture" simply because it was used in the
requirements specification.
6. Use an appropriate process model. Each project must select a process that makes ·the most sense for that project
on the basis of corporate culture, willingness to take risks, application area, volatility of requirements, and the extent
to which requirements are well understood.
7. Use different languages for different phases. Our industry's eternal thirst for simple solutions to complex
problems has driven many to declare that the best development method is one that uses the same notation through-
out the life cycle.
8. Minimize intellectual distance. To minimize intellectual distance, the software's structure should be as close as
software engineer
10. Get it right before you make it faster. It is far easier to make a working program run faster than it is to make a
fast program work. Don't worry about optimization during initial coding
11. Inspect code. Inspecting the detailed design and code is a much better way to find errors than testing
12. Good management is more important than good technology. Good management motivates people to do their
best, but there are no universal "right" styles of management.
Software Project Management Page 19
13. People are the key to success. Highly skilled people with appropriate experience, talent, and training are key.
14. Follow with care. Just because everybody is doing something does not make it right for you. It may be right,
but you must carefully assess its applicability to your environment.
15. Take responsibility. When a bridge collapses we ask, "What did the engineers do wrong?" Even when software
fails, we rarely ask this. The fact is that in any engineering discipline, the best methods can be used to produce awful
designs, and the most antiquated methods to produce elegant designs.
16. Understand the customer's priorities. It is possible the customer would tolerate 90% of the functionality
delivered late if they could have 10% of it on time.
17. The more they see, the more they need. The more functionality (or performance) you provide a user, the more
functionality (or performance) the user wants.
18. Plan to throw one away. One of the most important critical success factors is whether or not a product is
entirely new. Such brand-new applications, architectures, interfaces, or algorithms rarely work the first time.
19. Design for change. The architectures, components, and specification techniques you use must accommodate
change.
20. Design without documentation is not design. I have often heard software engineers say, "I have finished the
design. All that is left is the documentation. "
21. Use tools, but be realistic. Software tools make their users more efficient.
22. Avoid tricks. Many programmers love to create programs with tricks constructs that perform a function
correctly, but in an obscure way. Show the world how smart you are by avoiding tricky code
23. Encapsulate. Information-hiding is a simple, proven concept that results in software that is easier to test
and much easier to maintain.
24. Use coupling and cohesion. Coupling and cohesion are the best ways to measure software's inherent
maintainability and adaptability
25. Use the McCabe complexity measure. Although there are many metrics available to report the inherent
complexity of software, none is as intuitive and easy to use as Tom McCabe's
26. Don't test your own software. Software developers should never be the primary testers of their own
software.
27. Analyze causes for errors. It is far more cost-effective to reduce the effect of an error by preventing it than it
is to find and fix it. One way to do this is to analyze the causes of errors as they are detected
28. Realize that software's entropy increases. Any software system that undergoes continuous change will grow
in complexity and will become more and more disorganized
29. People and time are not interchangeable. Measuring a project solely by person-months makes little sense
30. Expect excellence. Your employees will do much better if you have high expectations for them.
Top 10 principles of modern software management are. (The first five, which are the main themes of my definition of an
iterative process, are summarized in Figure 4-1.)
1. Base the process on an architecture-first approach. This requires that a demonstrable balance be achieved
among the driving requirements, the architecturally significant design decisions, and the life- cycle plans
before the resources are committed for full-scale development.
2. Establish an iterative life-cycle process that confronts risk early. With today's sophisticated software
systems, it is not possible to define the entire problem, design the entire solution, build the software, and
then test the end product in sequence. Instead, an iterative process that refines the problem understanding,
an effective solution, and an effective plan over several iterations encourages a balanced treatment of all
stakeholder objectives. Major risks must be addressed early to increase predictability and avoid expensive
downstream scrap and rework.
3. Transition design methods to emphasize component-based development. Moving from a line-of- code
mentality to a component-based mentality is necessary to reduce the amount of human-generated source
code and custom development.
Table 4-1 maps top 10 risks of the conventional process to the key attributes and principles of a modern
process
Application precedentedness. Domain experience is a critical factor in understanding how to plan and
execute a software development project. For unprecedented systems, one of the key goals is to confront risks
and establish early precedents, even if they are incomplete or experimental. This is one of the primary reasons
that the software industry has moved to an iterative life-cycle process. Early iterations in the life cycle
establish precedents from which the product, the process, and the plans can be elaborated in evolving levels
of detail.
Process flexibility. Development of modern software is characterized by such a broad solution space and so
many interrelated concerns that there is a paramount need for continuous incorporation of changes. These
changes may be inherent in the problem understanding, the solution space, or the plans. Project artifacts must
be supported by efficient change management commensurate with project needs. A configurable process
that allows a common framework to be adapted across a range of projects is necessary to achieve a software
return on investment.
Architecture risk resolution. Architecture-first development is a crucial theme underlying a successful
iterative development process. A project team develops and stabilizes architecture before developing all the
components that make up the entire suite of applications components. An architecture-first and component-
based development approach forces the infrastructure, common mechanisms, and control mechanisms to be
elaborated early in the life cycle and drives all component make/buy decisions into the architecture process.
Team cohesion. Successful teams are cohesive, and cohesive teams are successful. Successful teams and
cohesive teams share common objectives and priorities. Advances in technology (such as programming
languages, UML, and visual modeling) have enabled more rigorous and understandable notations for
communicating software engineering information, particularly in the requirements and design artifacts that
previously were ad hoc and based completely on paper exchange. These model-based formats have also
enabled the round-trip engineering support needed to establish change freedom sufficient for evolving
design representations.
Software process maturity. The Software Engineering Institute's Capability Maturity Model (CMM) is a
well-accepted benchmark for software process assessment. One of key themes is that truly mature processes
are enabled through an integrated environment that provides the appropriate level of automation to
instrument the process for objective quality control.
Explain briefly Waterfall model. Also explain Conventional s/w management performance?
1.
Define Software Economics. Also explain Pragmatic s/w cost estimation?
2.
4. Explain five staffing principal offered by Boehm. Also explain Peer Inspections?
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
INCEPTION PHASE
The overriding goal of the inception phase is to achieve concurrence among stakeholders on the life-cycle
objectives for the project.
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)
ELABORATION PHASE
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.
CONSTRUCTION PHASE
During the construction phase, all remaining components and application features are integrated into the 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
TRANSITION PHASE
The transition phase is entered when a baseline is mature enough to be deployed in the end-user domain. This
typically requires that a usable subset of the system has been achieved with acceptable quality levels and user
documentation so that transition to the user will provide positive results. This phase could include any of the
following activities:
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
EVALUATION CRITERIA
Is the user satisfied?
Are actual resource expenditures versus planned expenditures acceptable?
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
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
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 deploy- ment,
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
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.
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 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.
MANAGEMENT ARTIFACTS
The management set includes several artifacts that capture intermediate results and ancillary information
necessary to document the product/process legacy, maintain the product, improve the product, and improve
the process.
Business Case
The business case artifact provides all the information necessary to determine whether the project is worth
investing in. It details the expected revenue, expected cost, technical and management plans, and backup
data necessary to demonstrate the risks and realism of the plans. The main purpose is to transform the vision
into economic terms so that an organization can make an accurate ROI assessment. The financial forecasts
are evolutionary, updated with more accurate forecasts as the life cycle progresses. Figure 6-4
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
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, deployment artifacts may include marketing plans, sales rollout
kits, and training courses.
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.
PRAGMATIC ARTIFACTS
People want to review information but don't understand the language of the artifact. Many interested
reviewers of a particular artifact will resist having to learn the engineering language in which the artifact is written.
It is not uncommon to find people (such as veteran software managers, veteran quality assurance specialists, or
an auditing authority from a regulatory agency) who react as follows: "I'm not going to learn UML, but I want to
review the design of this software, so give me a separate description such as some flowcharts and text that I can
understand."
People want to review the information but don't have access to the tools. It is not very common for the
development organization to be fully tooled; it is extremely rare that the/other stakeholders have any capability
to review the engineering artifacts on-line. Consequently, organizations are forced to exchange paper documents.
Standardized formats (such as UML, spreadsheets, Visual Basic, C++, and Ada 95), visualization tools, and the
Web are rapidly making it economically feasible for all stakeholders to exchange information
electronically.
Human-readable engineering artifacts should use rigorous notations that are complete, consistent, and
used in a self-documenting manner. Properly spelled English words should be used for all identifiers and
descriptions. Acronyms and abbreviations should be used only where they are well accepted jargon in the context
of the component's usage. Readability should be emphasized and the use of proper English words should be
required in all engineering artifacts. This practice enables understandable representations, browse able formats
(paperless review), more-rigorous notations, and reduced error rates.
Useful documentation is self-defining: It is documentation that gets used.
Paper is tangible; electronic artifacts are too easy to change. On-line and Web-based artifacts can be changed
easily and are viewed with more skepticism because of their inherent volatility.
1. Explain briefly two stages of the life cycle engineering and production.
2. Explain different phases of the life cycle process?
Explain the goal of Inception phase, Elaboration phase, Construction phase and
3.
Transition phase.
4. Explain the overview of the artifact set
Write a short note on
5. (a) Management Artifacts (b) Engineering Artifacts (c) Pragmatic Artifacts
Table 8-1 shows the allocation of artifacts and the emphasis of each workflow in each of the life-cycle phases of
inception, elaboration, construction, and transition.
Requirements: analyzing the baseline plan, the baseline architecture, and the baseline requirements set
artifacts to fully elaborate the use cases to be demonstrated at the end of this iteration and their
evaluation criteria; updating any requirements set artifacts to reflect changes necessitated by results of
this iteration's engineering activities
Design: evolving the baseline architecture and the baseline design set artifacts to elaborate fully the
design model and test model components necessary to demonstrate against the evaluation criteria
allocated to this iteration; updating design set artifacts to reflect changes necessitated by the results of
this iteration's engineering activities
1. Major milestones. These system wide events are held at the end of each development phase. They
provide visibility to system wide issues, synchronize the management and engineering perspectives,
and verify that the aims of the phase have been achieved.
2. Minor milestones. These iteration-focused events are conducted to review the content of an iteration
in detail and to authorize continued work.
3. Status assessments. These periodic events provide management with frequent and regular insight
into the progress being made.
Each of the four phases-inception, elaboration, construction, and transition consists of one or more iterations and
concludes with a major milestone when a planned technical capability is produced in demonstrable form. An
iteration represents a cycle of activities for which there is a well-defined intermediate result-a minor milestone-
captured with two artifacts: a release specification (the evaluation criteria and plan) and a release description (the
results). Major milestones at the end of each phase use formal, stakeholder-approved evaluation criteria and
release descriptions; minor milestones use informal, development-team-controlled versions of these artifacts.
Figure 9-1 illustrates a typical sequence of project checkpoints for a relatively large project.
Customers: schedule and budget estimates, feasibility, risk assessment, requirements understanding,
progress, product line compatibility
Users: consistency with requirements and usage scenarios, potential for accommodating growth,
quality attributes
Architects and systems engineers: product line compatibility, requirements changes, trade-off
analyses, completeness and consistency, balance among risk, quality, and usability
Developers: sufficiency of requirements detail and usage scenario descriptions, . frameworks for
component selection or development, resolution of development risk, product line compatibility,
sufficiency of the development environment
Maintainers: sufficiency of product and documentation artifacts, understandability, interoperability with
existing systems, sufficiency of maintenance environment
Others: possibly many other perspectives by stakeholders such as regulatory agencies, independent
verification and validation contractors, venture capital investors, subcontractors, associate contractors,
and sales and marketing teams
Table 9-1 summarizes the balance of information across the major milestones.
The technical data listed in Figure 9-2 should have been reviewed by the time of the lifecycle architecture
milestone. Figure 9-3 provides default agendas for this milestone.
MINOR MILESTONES
For most iterations, which have a one-month to six-month duration, only two minor milestones are needed: the
iteration readiness review and the iteration assessment review.
Iteration Readiness Review. This informal milestone is conducted at the start of each iteration to
review the detailed iteration plan and the evaluation criteria that have been allocated to this iteration.
Iteration Assessment Review. This informal milestone is conducted at the end of each iteration to
assess the degree to which the iteration achieved its objectives and satisfied its evaluation criteria, to
review iteration results, to review qualification test results (if part of the iteration), to determine the
amount of rework to be done, and to review the impact of the iteration results on the plan for subsequent
iterations.
The format and content of these minor milestones tend to be highly dependent on the project and the
organizational culture. Figure 9-4 identifies the various minor milestones to be considered when a project is
being planned.
The default content of periodic status assessments should include the topics identified in Table 9-2.
Figure 10-1 Conventional work breakdown structure, following the product hierarchy
Management
System requirement and design
Subsystem 1
Component 11
Requirements
Design
Code
Test
Documentation
…(similar structures for other components)
Component 1N
Requirements
Design
Code
Test
Documentation
…(similar structures for other subsystems)
Subsystem M
Component M1
First-level WBS elements are the workflows (management, environment, requirements, design,
implementation, assessment, and deployment).
Second-level elements are defined for each phase of the life cycle (inception, elaboration,
construction, and transition).
Third-level elements are defined for the focus of activities that produce the artifacts of each phase.
A default WBS consistent with the process framework (phases, workflows, and artifacts) is shown in Figure
10-2. This recommended structure provides one example of how the elements of the process framework can
be integrated into a plan. It provides a framework for estimating the costs and schedules of each element,
allocating them across a project organization, and tracking expenditures.
The structure shown is intended to be merely a starting point. It needs to be tailored to the specifics of a
project in many ways.
Scale. Larger projects will have more levels and substructures.
Organizational structure. Projects that include subcontractors or span multiple organizational entities
may introduce constraints that necessitate different WBS allocations.
Degree of custom development. Depending on the character of the project, there can be very different
emphases in the requirements, design, and implementation workflows.
Business context. Projects developing commercial products for delivery to a broad customer base
may require much more elaborate substructures for the deployment element.
Precedent experience. Very few projects start with a clean slate. Most of them are developed as new
generations of a legacy system (with a mature WBS) or in the context of existing organizational
standards (with preordained WBS expectations).
The WBS decomposes the character of the project and maps it to the life cycle, the budget, and the
Software Project Management Page 54
personnel. Reviewing a WBS provides insight into the important attributes, priorities, and structure of the
project plan.
Another important attribute of a good WBS is that the planning fidelity inherent in each element is commensurate
with the current life-cycle phase and project state. Figure 10-3 illustrates this idea. One of the primary reasons
for organizing the default WBS the way I have is to allow for planning elements that range from planning
packages (rough budgets that are maintained as an estimate for future elaboration rather than being decomposed
into detail) through fully planned activity networks (with a well-defined budget and continuous assessment of
actual versus planned expenditures).
Inception Elaboration
Transition Construction
PLANNING GUIDELINES
Software projects span a broad range of application domains. It is valuable but risky to make specific planning
recommendations independent of project context. Project-independent planning advice is also risky. There is the
risk that the guidelines may pe adopted blindly without being adapted to specific project circumstances. Two
simple planning guidelines should be considered when a project plan is being initiated or assessed. The first
guideline, detailed in Table 10-1, prescribes a default allocation of costs among the first-level WBS elements.
The second guideline, detailed in Table 10-2, prescribes the allocation of effort and schedule across the lifecycle
phases.
1. The software project manager (and others) develops a characterization of the overall size, process,
environment, people, and quality required for the project.
2. A macro-level estimate of the total effort and schedule is developed using a software cost estimation
model.
3. The software project manager partitions the estimate for the effort into a top-level WBS using
guidelines such as those in Table 10-1.
4. At this point, subproject managers are given the responsibility for decomposing each of the WBS
elements into lower levels using their top-level allocation, staffing profile, and major milestone dates as
constraints.
The second perspective is a backward-looking, bottom-up approach. We start with the end in mind, analyze the
micro-level budgets and schedules, then sum all these elements into the higher level budgets and intermediate
milestones. This approach tends to define and populate the WBS from the lowest levels upward. From this per-
spective, the following planning sequence would occur:
1. The lowest level WBS elements are elaborated into detailed tasks
2. Estimates are combined and integrated into higher level budgets and milestones.
3. Comparisons are made with the top-down budgets and schedule milestones.
Milestone scheduling or budget allocation through top-down estimating tends to exaggerate the project
management biases and usually results in an overly optimistic plan. Bottom-up estimates usually exaggerate the
performer biases and result in an overly pessimistic plan.
These two planning approaches should be used together, in balance, throughout the life cycle of the project.
During the engineering stage, the top-down perspective will dominate because there is usually not enough depth
of understanding nor stability in the detailed task sequences to perform credible bottom-up planning. During the
production stage, there should be enough precedent experience and planning fidelity that
Macro level task estimation for Micro level task estimation for
production stage artifacts production stage artifacts
Micro level task estimation for Macro level task estimation for
engineering artifacts maintenance of engineering artifacts
Stakeholder concurrence Stakeholder concurrence
Coarse grained variance analysis of Fine grained variance analysis of actual
actual vs planned expenditures vs planned expenditures
Tuning the top down project
independent planning guidelines into
project specific planning guidelines
WBS definition and elaboration
PRAGMATIC PLANNING
Even though good planning is more dynamic in an iterative process, doing it accurately is far easier. While
executing iteration N of any phase, the software project manager must be monitoring and controlling against a
plan that was initiated in iteration N - 1 and must be planning iteration N + 1. The art of good project· management
is to make trade-offs in the current iteration plan and the next iteration plan based on objective results in the
current iteration and previous iterations. Aside from bad architectures and misunderstood requirements,
inadequate planning (and subsequent bad management) is one of the most common reasons for project failures.
Conversely, the success of every successful project can be attributed in part to good planning.
A project's plan is a definition of how the project requirements will be transformed into' a product within the
business constraints. It must be realistic, it must be current, it must be a team product, it must be understood by
the stakeholders, and it must be used. Plans are not just for managers. The more open and visible the planning
process and results, the more ownership there is among the team members who need to execute it. Bad, closely
held plans cause attrition. Good, open plans can shape cultures and encourage teamwork .
Artifacts Activities
• The above figure shows a default project organization and maps project-level roles and
responsibilities.
• The main features of the default organization are as follows:
• The project management team is an active participant, responsible for producing as well as
managing.
Software Project Management Page 63
• The architecture team is responsible for real artifacts and for the integration of components,
not just for staff functions.
• The development team owns the component construction and maintenance activities.
• The assessment team is separate from development.
• Quality is everyone’s into all activities and checkpoints.
• Each team takes responsibility for a different quality perspective.
3) EVOLUTION OF ORGANIZATIONS:
Software Software
Management Management
50% 10%
Inception Elaboration
Software Software
Management Management
10% 10%
Transition Construction
Inception: Elaboration:
Software management: 50% Software management: 10%
Software Architecture: 20% Software Architecture: 50%
Software development: 20% Software development: 20%
Software Assessment Software Assessment
(measurement/evaluation):10% (measurement/evaluation):20%
Construction: Transition:
Software management: 10% Software management: 10%
Software Architecture: 10% Software Architecture: 5%
Software development: 50% Software development: 35%
Software Assessment Software Assessment
(measurement/evaluation):30% (measurement/evaluation):50%
Change management
II. Configuration Baseline
A configuration baseline is a named collection of software components &Supporting documentation that
is subjected to change management & is upgraded, maintained, tested, statuses & obsolesced a unit There
are generally two classes of baselines
External Product Release
Internal testing Release
Three levels of baseline releases are required for most Systems
66
1. Major release (N)
2. Minor Release (M)
3. Interim (temporary) Release (X)
Major release represents a new generation of the product or project
A minor release represents the same basic product but with enhanced features, performance or quality.
Major & Minor releases are intended to be external product releases that are persistent & supported for
a period of time.
An interim release corresponds to a developmental configuration that is intended to be transient.
Once software is placed in a controlled baseline all changes are tracked such that a distinction must be
made for the cause of the change. Change categories are
Type 0: Critical Failures (must be fixed before release)
Type 1: A bug or defect either does not impair (Harm) the usefulness of the system or can be worked
around
Type 2: A change that is an enhancement rather than a response to a defect
Type 3: A change that is necessitated by the update to the environment
Type 4: Changes that are not accommodated by the other categories.
Change Management
III Configuration Control Board (CCB)
A CCB is a team of people that functions as the decision
Authority on the content of configuration baselines
A CCB includes:
1. Software managers
2. Software Architecture managers
3. Software Development managers
4. Software Assessment managers
5. Other Stakeholders who are integral to the maintenance of the controlled software delivery
system?
Infrastructure
The organization infrastructure provides the organization’s capital assets including two key
artifacts - Policy & Environment
I Organization Policy:
A Policy captures the standards for project software development processes
The organization policy is usually packaged as a handbook that defines the life cycles & the process
primitives such as
Major milestones
Intermediate Artifacts
Engineering repositories
Metrics
Roles & Responsibilities
67
Infrastructure
II Organization Environment
The Environment that captures an inventory of tools which are building blocks from which project
environments can be configured efficiently & economically
Stakeholder Environment
Many large scale projects include people in external organizations that represent other stakeholders
participating in the development process they might include
Procurement agency contract monitors
End-user engineering support personnel
Third party maintenance contractors
Independent verification & validation contractors
Representatives of regulatory agencies & others.
These stakeholder representatives also need to access to development resources so that they can
contribute value to overall effort. These stakeholders will be access through on-line
An on-line environment accessible by the external stakeholders allow them to participate in the process
a follows
Accept & use executable increments for the hands-on evaluation.
Use the same on-line tools, data & reports that the development organization uses to manage &
monitor the project
Avoid excessive travel, paper interchange delays, format translations, paper * shipping costs & other
overhead cost
68
PROJECT CONTROL & PROCESS INSTRUMENTATION
INTERODUCTION: Software metrics are used to implement the activities and products of the
software development process. Hence, the quality of the software products and the achievements in
the development process can be determined using the software metrics.
INDICATORS:
An indicator is a metric or a group of metrics that provides an understanding of the software
process or software product or a software project. A software engineer assembles measures and
produce metrics from which the indicators can be derived.
Two types of indicators are:
(i) Management indicators.
(ii) Quality indicators.
69
Management Indicators
The management indicators i.e., technical progress, financial status and staffing progress are
used to determine whether a project is on budget and on schedule. The management indicators that
indicate financial status are based on earned value system.
Quality Indicators
The quality indicators are based on the measurement of the changes occurred in software.
The below figure shows expected progress for a typical project with three major releases
70
Budgeted cost and expenditures
This metric measures cost incurred over time. Budgeted cost is the planned expenditure profile over the life cycle
of the project. To maintain management control, measuring cost expenditures over the project life cycle is always
necessary. Tracking financial progress takes on an organization - specific format. Financial performance can be
measured by the use of an earned value system, which provides highly detailed cost and schedule insight. The
basic parameters of an earned value system, expressed in units of dollars, are as follows:
Expenditure Plan - It is the planned spending profile for a project over its planned schedule. Actual progress -
It is the technical accomplishment relative to the planned progress underlying the spending profile.
Actual cost: It is the actual spending profile for a project over its actual schedule.
Earned value: It is the value that represents the planned cost of the actual progress.
Cost variance: It is the difference between the actual cost and the earned value.
Schedule variance: It is the difference between the planned cost and the earned value. Of all parameters in an
earned value system, actual progress is the most subjective
Assessment: Because most managers know exactly how much cost they have incurred and how much schedule
they have used, the variability in making accurate assessments is centred in the actual progress assessment. The
default perspectives of this metric are cost per month, full-time staff per month and percentage of budget
expended.
Staffing and team dynamics
This metric measures the personnel changes over time, which involves staffing additions and reductions over
time. An iterative development should start with a small team until the risks in the requirements and architecture
have been suitably resolved. Depending on the overlap of iterations and other project specific circumstances,
staffing can vary. Increase in staff can slow overall project progress as new people consume the productive team
of existing people in coming up to speed. Low attrition of good people is a sign of success. The default
perspectives of this metric are people per month added and people per month leaving. These three management
indicators are responsible for technical progress, financial status and staffing progress.
71
QUALITY INDICATORS:
Change traffic and stability:
This metric measures the change traffic over time. The number of software change orders opened and closed over
the life cycle is called change traffic. Stability specifies the relationship between opened versus closed software
change orders. This metric can be collected by change type, by release, across all releases, by term, by
components, by subsystems, etc.
The below figure shows stability expectation over a healthy project’s life cycle
72
LIFE -CYCLE EXPECTATIONS:
There is no mathematical or formal derivation for using seven core metrics properly. However, there were
specific reasons for selecting them:
The quality indicators are derived from the evolving product rather than the artifacts.
They provide inside into the waste generated by the process. Scrap and rework metrics are a standard
measurement perspective of most manufacturing processes.
They recognize the inherently dynamic nature of an iterative development process. Rather than focus on the
value, they explicitly concentrate on the trends or changes with respect to time.
The combination of insight from the current and the current trend provides tangible indicators for management
action.
Table 13-3. the default pattern of life cycle evolution
73
Adaptability Varying Varying Benign. Benign
METRICS AUTOMATION:
Many opportunities are available to automate the project control activities of a software project. A Software
Project Control Panel (SPCP) is essential for managing against a plan. This panel integrates data from multiple
sources to show the current status of some aspect of the project. The panel can support standard features and
provide extensive capability for detailed situation analysis. SPCP is one example of metrics automation approach
that collects, organizes and reports values and trends extracted directly from the evolving engineering artifacts.
SPCP:
To implement a complete SPCP, the following are necessary.
Metrics primitives - trends, comparisons and progressions
A graphical user interface.
Metrics collection agents
Metrics data management server
Metrics definitions - actual metrics presentations for requirements progress, implementation progress,
assessment progress, design progress and other progress dimensions.
Actors - monitor and administrator.
Monitor defines panel layouts, graphical objects and linkages to project data. Specific monitors called roles
include software project managers, software development team leads, software architects and customers.
Administrator installs the system, defines new mechanisms, graphical objects and linkages. The whole display is
called a panel. Within a panel are graphical objects, which are types of layouts such as dials and bar charts for
information. Each graphical object displays a metric. A panel contains a number of graphical objects positioned
in a particular geometric layout. A metric shown in a graphical object is labelled with the metric type, summary
level and insurance name (line of code, subsystem, server1). Metrics can be displayed in two modes – value,
referring to a given point in time and graph referring to multiple and consecutive points in time. Metrics can be
displayed with or without control values. A control value is an existing expectation either absolute or relative that
is used for comparison with a dynamically changing metric. Thresholds are examples of control values.
74
The basic fundamental metrics classes are trend, comparison and progress.
The format and content of any project panel are configurable to the software project manager's preference for
tracking metrics of top-level interest. The basic operation of an SPCP can be described by the following top -
level use case.
i. Start the SPCP
ii. Select a panel preference
iii. Select a value or graph metric
iv. Select to superimpose controls
v. Drill down to trend
vi. Drill down to point in time.
vii. Drill down to lower levels of information
viii. Drill down to lower level of indicators.
10 Mark Questions
1. Define metric. Discuss seven core metrics for project control and process instrumentation
with suitable examples?
2. List out the three management indicators that can be used as core metrics on software
projects. Briefly specify meaning of each?
3. Explain the various characteristics of good software metric. Discuss the metrics Automation
using appropriate example?
4. Explain about the quality indicators that can be used as core metrics on software projects.
5. Explain Management Indicators with suitable example?
6. Define MTBF and Maturity. How these are related to each other?
7. Briefly explain about Quality Indicators?
8. Write short notes on Pragmatic software metrics?
75