SPM Lecture Notes 2023 (R20 III-I)
SPM Lecture Notes 2023 (R20 III-I)
SPM Lecture Notes 2023 (R20 III-I)
Conventional Software Management: The waterfall model, conventional software Management performance.
Evolution of Software Economics: Software Economics, pragmatic software cost estimation
1. Conventional software management
Conventional software management practices are sound in theory, but practice is still tied to archaic (outdated)
technology and techniques.
Conventional software economics provides a benchmark of performance for conventional software manage-
ment principles.
The best thing about software is its flexibility: It can be programmed to do almost anything.
The worst thing about software is also its flexibility: The "almost anything" characteristic has made it difficult
to plan, monitors, and control software development.
Three important analyses of the state of the software engineering industry are
1. Software development is still highly unpredictable. Only about 10% of software projects are
delivered successfully within initial budget and schedule estimates.
2. Management discipline is more of a discriminator in success or failure than are technology advances.
3. The level of software scrap and rework is indicative of an immature process.
All three analyses reached the same general conclusion: The success rate for software projects is very low.
The three analyses provide a good introduction to the magnitude of the software problem and the current
norms for conventional software management performance.
Analysis
Design
Coding
1 © www.jntumaterials.co.in
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
that is relatively small with respect to the overall effort. In the first version, the team must have a special
broad competence where they can quickly sense trouble spots in the design, model them, model alternatives,
forget the straightforward aspects of the design that aren't worth studying at this early point, and, finally,
arrive at an error-free program.
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
2 © www.jntumaterials.co.in
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".
1.1.2 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.
3 © www.jntumaterials.co.in
In the conventional model, the entire system was designed on paper, then implemented all at once, then
integrated. Table 1-1 provides a typical profile of cost expenditures across the spectrum of software activities.
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.
4 © www.jntumaterials.co.in
Requirements-Driven Functional Decomposition: This approach depends on specifying requirements com-
pletely and unambiguously before other development activities begin. It naively treats all requirements as
equally important, and depends on those requirements remaining constant over the software development life
cycle. These conditions rarely occur in the real world. Specification of requirements is a difficult and important
part of the software development process.
Another property of the conventional approach is that the requirements were typically specified in a
functional manner. Built into the classic waterfall process was the fundamental assumption that the software
itself was decomposed into functions; requirements were then allocated to the resulting components. This
decomposition was often very different from a decomposition based on object-oriented design and the use of
existing components. Figure 1-4 illustrates the result of requirements-driven approaches: a software structure
that is organized around the requirements specification structure.
5 © www.jntumaterials.co.in
The conventional process tended to result in adversarial stakeholder relationships, in large part because of the
difficulties of requirements specification and the exchange of information solely through paper documents that
captured engineering information in ad hoc formats.
The following sequence of events was typical for most contractual software efforts:
1. The contractor prepared a draft contract-deliverable document that captured an intermediate artifact
and delivered it to the customer for approval.
2. The customer was expected to provide comments (typically within 15 to 30 days).
3. The contractor incorporated these comments and submitted (typically within 15 to 30 days) a final
version for approval.
This one-shot review process encouraged high levels of sensitivity on the part of customers and contractors.
Barry Boehm's "Industrial Software Metrics Top 10 List” is a good, objective characterization of the state of
software development.
1. Finding and fixing a software problem after delivery costs 100 times more than finding and fixing the
problem in early design phases.
2. You can compress software development schedules 25% of nominal, but no more.
6 © www.jntumaterials.co.in
3. For every $1 you spend on development, you will spend $2 on maintenance.
4. Software development and maintenance costs are primarily a function of the number of source lines
of code.
5. Variations among people account for the biggest differences in software productivity.
6. The overall ratio of software to hardware costs is still growing. In 1955 it was 15:85; in 1985, 85:15.
7. Only about 15% of software development effort is devoted to programming.
8. Software systems and products typically cost 3 times as much per SLOC as individual software
programs. Software-system products (i.e., system of systems) cost 9 times as much.
9. Walkthroughs catch 60% of the errors
10. 80% of the contribution comes from 20% of the contributors.
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
7 © www.jntumaterials.co.in
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.
8 © www.jntumaterials.co.in
Organizations are achieving better economies of scale in successive technology eras-with very large projects
(systems of systems), long-lived products, and lines of business comprising multiple similar projects. Figure 2-2
provides an overview of how a return on investment (ROI) profile can be achieved in subsequent efforts across
life cycles of various domains.
9 © www.jntumaterials.co.in
2.2 PRAGMATIC SOFTWARE COST ESTIMATION
One critical problem in software cost estimation is a lack of well-documented case studies of projects that used
an iterative development approach. Software industry has inconsistently defined metrics or atomic units of
measure, the data from actual projects are highly suspect in terms of consistency and comparability. It is hard
enough to collect a homogeneous set of project data within one organization; it is extremely difficult to homog-
enize data across different organizations with different processes, languages, domains, and so on.
There have been many debates among developers and vendors of software cost estimation models and tools.
Three topics of these debates are of particular interest here:
10 © www.jntumaterials.co.in
There are several popular cost estimation models (such as COCOMO, CHECKPOINT, ESTIMACS,
KnowledgePlan, Price-S, ProQMS, SEER, SLIM, SOFTCOST, and SPQR/20), CO COMO is also one of the
most open and well-documented cost estimation models. The general accuracy of conventional cost models
(such as COCOMO) has been described as "within 20% of actuals, 70% of the time."
Most real-world use of cost models is bottom-up (substantiating a target cost) rather than top-down
(estimating the "should" cost). Figure 2-3 illustrates the predominant practice: The software project manager
defines the target cost of the software, and then manipulates the parameters and sizing until the target cost can
be justified. The rationale for the target cost maybe to win a proposal, to solicit customer funding, to attain
internal corporate funding, or to achieve some other goal.
The process described in Figure 2-3 is not all bad. In fact, it is absolutely necessary to analyze the cost risks and
understand the sensitivities and trade-offs objectively. It forces the software project manager to examine the
risks associated with achieving the target costs and to discuss this information with other stakeholders.
A good software cost estimate has the following attributes:
It is conceived and supported by the project manager, architecture team, development team, and test
team accountable for performing the work.
It is accepted by all stakeholders as ambitious but realizable.
It is based on a well-defined software cost model with a credible basis.
It is based on a database of relevant project experience that includes similar processes, similar
technologies, similar environments, similar quality requirements, and similar people.
It is defined in enough detail so that its key risk areas are understood and the probability of success is
objectively assessed.
Extrapolating from a good estimate, an ideal estimate would be derived from a mature cost model with an
experience base that reflects multiple similar projects done by the same team with the same mature processes
and tools.
===THE END===
11 © www.jntumaterials.co.in
12 © www.jntumaterials.co.in
© www.jntumaterials.co.in
UNIT – II
Improving Software Economics: Reducing Software product size, improving software processes,
improving team effectiveness, improving automation, Achieving required quality, peer inspections.
The old way and the new: The principles of conventional software Engineering, principles of modern
software management, transitioning to an iterative process.
3.1.1 LANGUAGES
Universal function points (UFPs1) are useful estimators for language-independent, early life-cycle estimates.
The basic units of function points are external user inputs, external outputs, internal logical data groups,
external data interfaces, and external inquiries. SLOC metrics are useful estimators for software after a
candidate solution is formulated and an implementation language is known. Substantial data have been
documented relating SLOC to function points. Some of these results are shown in Table 3-2.
Languages expressiveness of some of today’s popular languages
LANGUAGES SLOC per UFP
Assembly 320
C 128
FORTAN77 105
COBOL85 91
Ada83 71
C++ 56
Ada95 55
Java 55
Visual Basic 35
Table 3-2
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.
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.
Abdul Majeed (Associate Professor) 2 LORDS Institute of Engg & Tech
© www.jntumaterials.co.in
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. 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.
3.1.3 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:
In a perfect software engineering world with an immaculate problem description, an obvious solution
space, a development team of experienced geniuses, adequate resources, and stakeholders with common
goals, we could execute a software development process in one iteration with almost no scrap and rework.
Abdul Majeed (Associate Professor) 4 LORDS Institute of Engg & Tech
© www.jntumaterials.co.in
Because we work in an imperfect world, however, we need to manage engineering activities so that scrap
and rework profiles do not have an impact on the win conditions of any stakeholder. This should be the
underlying premise for most process improvements.
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
Conventional development processes stressed early sizing and timing estimates of computer program
resource utilization. However, the typical chronology of events in performance assessment was as
follows
Project inception. The proposed design was asserted to be low risk with adequate performance
margin.
Initial design review. Optimistic assessments of adequate design margin were based mostly on
paper analysis or rough simulation of the critical threads. In most cases, the actual application
algorithms and database sizes were fairly well understood.
Mid-life-cycle design review. The assessments started whittling away at the margin, as early
benchmarks and initial tests began exposing the optimism inherent in earlier estimates.
Integration and test. Serious performance problems were uncovered, necessitating fundamental
changes in the architecture. The underlying infrastructure was usually the scapegoat, but the real
culprit was immature use of the infrastructure, immature architectural solutions, or poorly under-
stood early design trade-offs.
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
Abdul Majeed (Associate Professor) 7 LORDS Institute of Engg & Tech
© www.jntumaterials.co.in
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.
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.)
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.
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.
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.
5. Enhance change freedom through tools that support round-trip engineering. Round-trip
engineering is the environment support necessary to automate and synchronize
engineering information in different formats(such as requirements specifications, design models,
source code, executable code, test cases).
6. Capture design artifacts in rigorous, model-based notation. A model based approach (such as
UML) supports the evolution of semantically rich graphical and textual design notations.
7. Instrument the process for objective quality control and progress assessment. Life-cycle
assessment of the progress and the quality of all intermediate products must be integrated into the process.
8. Use a demonstration-based approach to assess intermediate artifacts.
9. Plan intermediate releases in groups of usage scenarios with evolving levels of detail. It is
essential that the software management process drive toward early and continuous demonstrations
within the operational context of the system, namely its use cases.
10. Establish a configurable process that is economically scalable. No single process is suitable
for all software developments.
Table 4-1 maps top 10 risks of the conventional process to the key attributes and principles of a modern
process
Modern software development processes have moved away from the conventional waterfall model, in which
each stage of the development process is dependent on completion of the previous stage.
The economic benefits inherent in transitioning from the conventional waterfall model to an iterative
development process are significant but difficult to quantify. As one benchmark of the expected economic
impact of process improvement, consider the process exponent parameters of the COCOMO II model.
(Appendix B provides more detail on the COCOMO model) This exponent can range from 1.01 (virtually no
diseconomy of scale) to 1.26 (significant diseconomy of scale). The parameters that govern the value of the
process exponent are application precedentedness, process flexibility, architecture risk resolution, team
cohesion, and software process maturity.
The following paragraphs map the process exponent parameters of CO COMO II to my top 10
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 elab-
orated 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
Abdul Majeed (Associate Professor) 11 LORDS Institute of Engg & Tech
© www.jntumaterials.co.in
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 automa-
tion to instrument the process for objective quality control.
Important questions
Explain briefly Waterfall model. Also explain Conventional s/w management performance?
1.
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
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
UNIT - IV
Model based software architectures: A Management perspective and technical perspective.
Work Flows of the process: Software process workflows, Iteration workflows.
7. Model based software architecture
7.1ARCHITECTURE: A MANAGEMENT PERSPECTIVE
The most critical technical product of a software project is its architecture: the infrastructure,
control, and data interfaces that permit software components to cooperate as a system and
software designers to cooperate efficiently as a team.When the communications media
include multiple languages and intergroup literacy varies, the communications problem can
become extremely complex and even unsolvable. If a software development team is to be
successful, the inter project communications, as captured in the software architecture, must
be both accurate and precise
From a management perspective, there are three different aspects of architecture.
1. An architecture (the intangible design concept) is the design of a software system
this includes all engineering necessary to specify a complete bill of materials.
2. An architecture baseline (the tangible artifacts) is a slice of information across the
engineering artifact sets sufficient to satisfy all stakeholders that the vision
(function and quality) can be achieved within the parameters of the business case
(cost, profit, time, technology, and people).
3. An architecture description (a human-readable representation of an architecture,
which is one of the components of an architecture baseline) is an organized subset
of information extracted from the design set model(s). The architecture
description communicates how the intangible concept is realized in the tangible
artifacts.
The number of views and the level of detail in each view can vary widely.
The importance of software architecture and its close linkage with modern software
development processes can be summarized as follows:
Achieving a stable software architecture represents a significant project milestone
at which the critical make/buy decisions should have been resolved.
Architecture representations provide a basis for balancing the trade-offs between
the problem space (requirements and constraints) and the solution space (the
operational product).
The architecture and process encapsulate many of the important (high-payoff or
high-risk) communications among individuals, teams, organizations, and
stakeholders.
Poor architectures and immature processes are often given as reasons for project
failures.
A mature process, an understanding of the primary requirements, and a
demonstrable architecture are important prerequisites for predictable planning.
Architecture development and process definition are the intellectual steps that map
the problem to a solution without violating the constraints; they require human
innovation and cannot be automated.
1 © www.jntumaterials.co.in
process, component, and deployment. The purposes of these views are as follows:
Design: describes architecturally significant structures and functions of the design
model
Process: describes concurrency and control thread relationships among the design,
component, and deployment views
Component: describes the structure of the implementation set
Deployment: describes the structure of the deployment set
Figure 7-1 summarizes the artifacts of the design set, including the architecture views and
architecture description.
The requirements model addresses the behavior of the system as seen by its end users,
analysts, and testers. This view is modeled statically using use case and class diagrams, and
dynamically using sequence, collaboration, state chart, and activity diagrams.
The use case view describes how the system's critical (architecturally significant)
use cases are realized by elements of the design model. It is modeled statically
using use case diagrams, and dynamically using any of the UML behavioral
diagrams.
The design view describes the architecturally significant elements of the design
model. This view, an abstraction of the design model, addresses the basic structure
and functionality of the solution. It is modeled statically using class and object
diagrams, and dynamically using any of the UML behavioral diagrams.
The process view addresses the run-time collaboration issues involved in executing
the architecture on a distributed deployment model, including the logical software
network topology (allocation to processes and threads of control), interprocess
communication, and state management. This view is modeled statically using
deployment diagrams, and dynamically using any of the UML behavioral
diagrams.
The component view describes the architecturally significant elements of the
implementation set. This view, an abstraction of the design model, addresses the
software source code realization of the system from the perspective of the project's
integrators and developers, especially with regard to releases and configuration
management. It is modeled statically using component diagrams, and dynamically
using any of the UML behavioral diagrams.
The deployment view addresses the executable realization of the system, including
the allocation of logical processes in the distribution view (the logical software
topology) to physical resources of the deployment network (the physical system
topology). It is modeled statically using deployment diagrams, and dynamically
using any of the UML behavioral diagrams.
Generally, an architecture baseline should include the following:
Requirements: critical use cases, system-level quality objectives, and priority
relationships among features and qualities
Design: names, attributes, structures, behaviors, groupings, and relationships of
significant classes and components
Implementation: source component inventory and bill of materials (number, name,
purpose, cost) of all primitive components
Deployment: executable components sufficient to demonstrate the critical use
cases and the risk associated with achieving the system qualities
2 © www.jntumaterials.co.in
8. Workflow of the process
3 © www.jntumaterials.co.in
8.1 SOFTWARE PROCESS WORKFLOWS
The term WORKFLOWSis used to mean a thread of cohesive and mostly sequential activi-
ties. Workflows are mapped to product artifacts There are seven top-level workflows:
1. Management workflow: controlling the process and ensuring win conditions for all
stakeholders
2. Environment workflow: automating the process and evolving the maintenance
environment
3. Requirements workflow: analyzing the problem space and evolving the
requirements artifacts
4. Design workflow: modeling the solution and evolving the architecture and design
artifacts
5. Implementation workflow: programming the components and evolving the
implementation and deployment artifacts
6. Assessment workflow: assessing the trends in process and product quality
7. Deployment workflow: transitioning the end products to the user
Figure 8-1 illustrates the relative levels of effort expected across the phases in each of the
top-level workflows.
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.
4 © www.jntumaterials.co.in
8.2 ITERATION WORKFLOWS
5 © www.jntumaterials.co.in
Iteration consists of a loosely sequential set of activities in various proportions, depending on
where the iteration is located in the development cycle. Each iteration is defined in terms of a
set of allocated usage scenarios. An individual iteration's workflow, illustrated in Figure 8-2,
generally includes the following sequence:
Management: iteration planning to determine the content of the release and develop
the detailed plan for the iteration; assignment of work packages, or tasks, to the
development team
Environment: evolving the software change order database to reflect all new
baselines and changes to existing baselines for all product, test, and environment
components
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
Implementation: developing or acquiring any new components, and enhancing or
modifying any existing components, to demonstrate the evaluation criteria
allocated to this iteration; integrating and testing all new and modified
components with existing baselines (previous versions)
6 © www.jntumaterials.co.in
Assessment: evaluating the results of the iteration, including compliance with the
allocated evaluation criteria and the quality of the current baselines; identifying
any rework required and determining whether it should be performed before
deployment of this release or allocated to the next release; assessing results to
improve the basis of the subsequent iteration's plan
Deployment: transitioning the release either to an external organization (such as a
user, independent verification and validation contractor, or regulatory agency) or
to internal closure by conducting a post-mortem so that lessons learned can be
captured and reflected in the next iteration
Iterations in the inception and elaboration phases focus on management. Requirements, and
design activities. Iterations in the construction phase focus on design, implementation, and
assessment. Iterations in the transition phase focus on assessment and deployment. Figure 8-
3 shows the emphasis on different activities across the life cycle. An iteration represents the
state of the overall architecture and the complete deliverable system. An increment
represents the current progress that will be combined with the preceding iteration to from the
next iteration. Figure 8-4, an example of a simple development life cycle, illustrates the
differences between iterations and increments.
7 © www.jntumaterials.co.in
8 © www.jntumaterials.co.in
UNIT - V
Checkpoints of the process: Major mile stones, Minor Milestones, Periodic status
assessments.
Iterative Process Planning: Work breakdown structures, planning guidelines, cost and
schedule estimating, Iteration planning process, Pragmatic planning.
1. Major milestones. These system wide events are held at the end of each
development phase. They provide visibility to system wide issues, synchro-
nize 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 fre-
quent and regular insight into the progress being made.
1 © www.jntumaterials.co.in
9.1 MAJOR MILESTONES
The four major milestones occur at the transition points between life-cycle phases.
They can be used in many different process models, including the conventional
waterfall model. Inan iterative model, the major milestones are used to achieve
concurrence among all stakeholders on the current state of the project. Different
stakeholders have very different concerns:
2 © www.jntumaterials.co.in
Life-Cycle Objectives Milestone
The life-cycle objectives milestone occurs at the end of the inception phase. The goal
is to present to all stakeholders a recommendation on how to proceed with develop-
ment, including a plan, estimated cost and schedule, and expected benefits and cost
savings. A successfully completed life-cycle objectives milestone will result in
authorization from all stakeholders to proceed with the elaboration phase.
Life-Cycle Architecture Milestone
The life-cycle architecture milestone occurs at the end of the elaboration phase. The
primary goal is to demonstrate an executable architecture to all stakeholders. The
baseline architecture consists of both a human-readable representation (the archi-
tecture document) and a configuration-controlled set of software components
captured in the engineering artifacts. A successfully completed life-cycle architecture
milestone will result in authorization from the stakeholders to proceed with the
construction phase.
3 © www.jntumaterials.co.in
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.
4 © www.jntumaterials.co.in
Initial Operational Capability Milestone
The initial operational capability milestone occurs late in the construction phase. The
goals are to assess the readiness of the software to begin the transition into
customer/user sites and to authorize the start of acceptance testing. Acceptance testing
can be done incrementally across multiple iterations or can be completed entirely
during the transition phase is not necessarily the completion of the construction phase.
Product Release Milestone
The product release milestone occurs at the end of the transition phase. The goal is to
assess the completion of the software and its transition to the support organization, if
any. The results of acceptance testing are reviewed, and all open issues are addressed.
Software quality metrics are reviewed to determine whether quality is sufficient for
transition to the support organization.
5 © www.jntumaterials.co.in
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.
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.
6 © www.jntumaterials.co.in
The default content of periodic status assessments should include the topics identified
in Table 9-2.
7 © www.jntumaterials.co.in
flaws.
8 © www.jntumaterials.co.in
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
Requirements
Design
Code
Test
Documentation
…(similar structures for other components)
ComponentMN
Requirements
Design
Code
Test
Documentation
Integration and test
Test planning
Test procedure preparation
Testing
Test reports
Other support areas
Configuration control
Quality assurance
System administration
9 © www.jntumaterials.co.in
10.1.2 EVOLUTIONARY WORK BREAKDOWN STRUCTURES
An evolutionary WBS should organize the planning elements around the process
framework rather than the product framework. The basic recommendation for the
WBS is to organize the hierarchy as follows:
10 © www.jntumaterials.co.in
Figure 10-2 Default work breakdown structure
A Management
AA Inception phase management
AAA Business case development
AAB Elaboration phase release specifications
AAC Elaboration phase WBS specifications
AAD Software development plan
AAE Inception phase project control and status assessments
AB Elaboration phase management
ABA Construction phase release specifications
ABB Construction phase WBS baselining
ABC Elaboration phase project control and status assessments
AC Construction phase management
ACA Deployment phase planning
ACB Deployment phase WBS baselining
ACC Construction phase project control and status assessments
AD Transition phase management
ADA Next generation planning
ADB Transition phase project control and status assessments
B Environment
BA Inception phase environment specification
BB Elaboration phase environment baselining
BBA Development environment installation and administration
BBB Development environment integration and custom toolsmithing
BBC SCO database formulation
BC Construction phase environment maintenance
BCA Development environment installation and administration
BCB SCO database maintenance
BD Transition phase environment maintenance
BDA Development environment maintenance and administration
BDB SCO database maintenance
BDC Maintenance environment packaging and transition
C Requirements
CA Inception phase requirements development
CCA Vision specification
CAB Use case modeling
CB Elaboration phase requirements baselining
CBA Vision baselining
11 © www.jntumaterials.co.in
CBB Use case model baselining
CC Construction phase requirements maintenance
CD Transition phase requirements maintenance
D Design
DA Inception phase architecture prototyping
DB Elaboration phase architecture baselining
DBA Architecture design modeling
DBB Design demonstration planning and conduct
DBC Software architecture description
DC Construction phase design modeling
DCA Architecture design model maintenance
DCB Component design modeling
DD Transition phase design maintenance
E Implementation
EA Inception phase component prototyping
EB Elaboration phase component implementation
EBA Critical component coding demonstration integration
EC Construction phase component implementation
ECA Initial release(s) component coding and stand-alone testing
ECB Alpha release component coding and stand-alone testing
ECC Beta release component coding and stand-alone testing
ECD Component maintenance
F Assessment
FA Inception phase assessment
FB Elaboration phase assessment
FBA Test modeling
FBB Architecture test scenario implementation
FBC Demonstration assessment and release descriptions
FC Construction phase assessment
FCA Initial release assessment and release description
FCB Alpha release assessment and release description
FCC Beta release assessment and release description
FD Transition phase assessment
FDA Product release assessment and release description
G Deployment
GA Inception phase deployment planning
GB Elaboration phase deployment planning
GC Construction phase deployment
GCA User manual baselining
GD Transition phase deployment
GDA Product transition to user
12 © www.jntumaterials.co.in
Figure 10-3 Evolution of planning fidelity in the WBS over the life cycle
Inception Elaboration
Transition Construction
13 © www.jntumaterials.co.in
10-1 Web budgeting defaults
First Level WBS Element Default Budget
Management 10%
Environment 10%
Requirement 10%
Design 15%
Implementation 25%
Assessment 25%
Deployment 5%
Total 100%
14 © www.jntumaterials.co.in
stones.
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 stabil-
ity 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 the bottom-up planning perspective will dominate. Top-down approach should
be well tuned to the project-specific parameters, so it should be used more as a global
assessment technique. Figure 10-4 illustrates this life-cycle planning balance.
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
15 © www.jntumaterials.co.in
10.4 THE ITERATION PLANNING PROCESS
Planning is concerned with defining the actual sequence of intermediate results. An
evolutionary build plan is important because there are always adjustments in build
content and schedule as early conjecture evolves into well-understood project
circumstances. Iteration is used to mean a complete synchronization across the
project, with a well-orchestrated global assessment of the entire project baseline.
Inception iterations. The early prototyping activities integrate the foundation
components of a candidate architecture and provide an executable
framework for elaborating the critical use cases of the system. This frame-
work includes existing components, commercial components, and custom
prototypes sufficient to demonstrate a candidate architecture and sufficient
requirements understanding to establish a credible business case, vision, and
software development plan.
Elaboration iterations. These iterations result in architecture, including a complete
framework and infrastructure for execution. Upon completion of the architecture
iteration, a few critical use cases should be demonstrable: (1) initializing the
architecture, (2) injecting a scenario to drive the worst-case data processing flow
through the system (for example, the peak transaction throughput or peak load
scenario), and (3) injecting a scenario to drive the worst-case control flow
through the system (for example, orchestrating the fault-tolerance use cases).
Construction iterations. Most projects require at least two major construction
iterations: an alpha release and a beta release.
Transition iterations. Most projects use a single iteration to transition a beta
release into the final product.
The general guideline is that most projects will use between four and nine iterations.
The typical project would have the following six-iteration profile:
One iteration in inception: an architecture prototype
Two iterations in elaboration: architecture prototype and architecture
baseline
Two iterations in construction: alpha and beta releases
One iteration in transition: product release
A very large or unprecedented project with many stakeholders may require
additional inception iteration and two additional iterations in construction, for a total
of nine iterations.
16 © www.jntumaterials.co.in
cultures and encourage teamwork.
17 © www.jntumaterials.co.in
Software Project ManagementFaculty: Mr. Abdul Majeed
UNIT - VI
Project Organizations and Responsibilities: Line-of-Business Organizations, Project Organizations,
evolution of Organizations.
Process Automation: Automation Building blocks, The Project Environment.
1) Line-Of-Business Organizations:
The main features of default organization are as follows:
• Responsibility for process definition & maintenance is specific to a cohesive line of
business.
• Responsibility for process automation is an organizational role & isequal in
importance to the process definition role.
• Organizational role may be fulfilled by a single individual or several different teams.
___________________________________________________________________________________
IV B.Tech. I Sem(CSE/IT) © www.jntumaterials.co.in - 1-
Software Project ManagementFaculty: Mr. Abdul Majeed
Software Management
Artifacts Activities
___________________________________________________________________________________
IV B.Tech. I Sem(CSE/IT) © www.jntumaterials.co.in - 2-
Software Project ManagementFaculty: Mr. Abdul Majeed
• 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.
• 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%
___________________________________________________________________________________
IV B.Tech. I Sem(CSE/IT) © www.jntumaterials.co.in - 3-
Software Project ManagementFaculty: Mr. Abdul Majeed
Software development: 50% Software development: 35%
Software Assessment Software Assessment
(measurement/evaluation):30% (measurement/evaluation):50%
___________________________________________________________________________________
IV B.Tech. I Sem(CSE/IT) © www.jntumaterials.co.in - 4-
Software Project ManagementFaculty: Mr. Abdul Majeed
___________________________________________________________________________________
IV B.Tech. I Sem(CSE/IT) © www.jntumaterials.co.in - 5-
Software Project ManagementFaculty: Mr. Abdul Majeed
As the software industry moves into maintaining different information sets for the engineering
artifacts, more automation support is needed to ensure efficient & error free transition of data
from one artifacts to another.
Round-trip engineering is the environment support necessary to maintainConsistency among the
engineering artifacts.
Change Management
Change management must be automated & enforced to manage multiple iterations & to enable
change freedom.
Change is the fundamental primitive of iterative Development.
I. Software Change Orders
The atomic unit of software work that is authorized to create,modify or obsolesce components
within a configuration baseline is called a software change orders ( SCO )
The basic fields of the SCO are Title, description, metrics, resolution, assessment & disposition
___________________________________________________________________________________
IV B.Tech. I Sem(CSE/IT) © www.jntumaterials.co.in - 6-
Software Project ManagementFaculty: Mr. Abdul Majeed
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
1. Major release (N)
2. Minor Release (M)
3. Interim (temporary) Release (X)
Major release represents a new generation of the product or project
___________________________________________________________________________________
IV B.Tech. I Sem(CSE/IT) © www.jntumaterials.co.in - 7-
Software Project ManagementFaculty: Mr. Abdul Majeed
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 othercategories.
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 Stakeholderswho are integral to the maintenance of the controlled software
delivery system?
Infrastructure
The organization infrastructure provides the organization’s capitalassets including two key
artifacts - Policy & Environment
I Organization Policy:
A Policy captures the standards for project software developmentprocesses
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
___________________________________________________________________________________
IV B.Tech. I Sem(CSE/IT) © www.jntumaterials.co.in - 8-
Software Project ManagementFaculty: Mr. Abdul Majeed
Infrastructure
II Organization Environment
The Environment that captures an inventory of tools which are building blocks from which
project environments can be configuredefficiently & economically
Stakeholder Environment
Many large scale projects include people in external organizationsthat represent other
stakeholders participating in the development processthey 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 stakeholdersallow 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
___________________________________________________________________________________
IV B.Tech. I Sem(CSE/IT) © www.jntumaterials.co.in - 9-
Software Project ManagementFaculty: Mr. Abdul Majeed
___________________________________________________________________________________
IV B.Tech. I Sem(CSE/IT) © www.jntumaterials.co.in - 10-