UNIT - II SPPM Notes
UNIT - II SPPM Notes
Coding
3. Since the testing phase is at the end of the development cycle in the
waterfall model, it may be risky and invites failure.
Five necessary improvements for waterfall model are:-
There are five improvements to the basic waterfall model that would eliminate most of
the development risks are as follows;
The relationships among these parameters and the estimated cost can be written as
follows:
Effort = (Personnel) (Environment) (Quality) (Size process)
Project Size as team strength could be:
Minor Project Size: 1 person
Small Project Size: 5 people
Moderate Project Size: 25 people
Large Project Size: 125 people
Huge Project Size: 625 people
The more the size, the greater are the costs of management overhead, communication,
synchronizations among various projects or modules, etc.
Requirements Analysis of Project Size:-
Design
Review of requirements, design and code
Test Planning and preparation
Testing
Regression testing
Coding takes around 15% of development cost.
Pragmatic Software Estimation:-
If there are no proper well-documented case studies then it is difficult to
estimate the cost of the software. It is one of the critical problems in
software cost estimation.
But the cost model vendors claim that their tools are well suitable for estimating.
Iterative development projects.
In order to estimate the cost of a project the following three topics should be
considered.
1) Which cost estimation model to use?
GUI technology is a good example of tools enabling a new and different process. GUI
builder tools permitted engineering teams to construct an executable user interface
faster and less cost.
Five basic parameters of the software cost model are:
1. Reducing the size or complexity of what needs to be developed.
2. Improving the development process.
3. Using more-skilled personnel and better teams (not necessarily the same thing).
4. Using better environments (tools to automate the process).
5. Trading off or backing off on quality thresholds.
The principle of job matching: Fit the tasks to the skills and motivation of the
people available
The principle of career progression: An organization does best in the long run
by helping its people to self-actualize.
The principle of team balance: Select people who will complement and
synchronize with one another.
If people are already available but do not have the required skills, re-train them
If you are not able to recruit skilled people, recruit and train people
Important Project Manager Skills:-
Hiring skills
Customer-interface skill
Decision-making skill
Team-building skill
Selling skill.
The tools and environment used in the software process generally have a linear effect
on the productivity of the process. Planning tools, requirements management tools,
visual modeling tools, compilers, editors, debuggers, quality assurance analysis tools,
test tools, and user interfaces provide crucial automation support for evolving the
software engineering artifacts. Automation of the design process provides payback in
quality, the ability to estimate costs and schedules, and overall productivity using a
smaller team.
The Old way and the New way:-
Over the past two decades software development is a re-engineering
process. Now it is replaced by advanced software engineering
technologies.
This transition is motivated by the unsatisfactory demand for the
software and reduced cost.
1) Make quality #1
Evolution of the plans, requirements, and architecture, together with well defined
synchronization points.
Risk management and objective measures of progress and quality.
Evolution of system capabilities through demonstrations of increasing
functionality.
ENGINEERING AND PRODUCTION STAGES:-
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.
This stage is decomposed into two distinct phase’s inception and elaboration.
2. The Production stage, driven by more predictable but larger teams doing
construction, test, and deployment activities.
This stage is also decomposed into two distinct phase’s construction and
transition.
These four phases of lifecycle process are loosely mapped to the conceptual framework
of the spiral model is as shown in the following figure.
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:
1. INCEPTION PHASE:-
The main goal of this phase is to achieve agreement among stakeholders on
the life-cycle objectives for the project.
PRIMARY OBJECTIVES:-
1) Establishing the project’s scope and boundary conditions.
2) Distinguishing the critical use cases of the system and the primary scenarios of
operation.
3) Demonstrating at least one candidate architecture against some of the primary
scenarios.
4) Estimating cost and schedule for the entire project.
ESSENTIAL ACTIVITIES:-
1) Formulating the scope of the project
2. ELABORATION PHASE:-
At most of the time the process may accommodate changes, the elaboration phase
activities must ensure that the architecture, requirements, and plans are stable. And also
the cost and schedule for the completion of the development can be predicted within an
acceptable range.
PRIMARY OBJECTIVES:-
1) Base lining the architecture as rapidly as practical
4) Demonstrating that the baseline architecture will support the vision at a reasonable
cost in a reasonable time.
ESSENTIAL ACTIVITIES:-
1) Elaborating the vision
2) Elaborating the process and infrastructure
3) Elaborating the architecture and selecting components
3. CONSTRUCTION PHASE:-
During this phase all the remaining components and application features are developed
software is integrated where ever required. If it is a big project then parallel
construction increments are generated.
PRIMARY OBJECTIVES:-
1) Minimizing development costs.
2) Achieving adequate quality as rapidly as practical.
3) Achieving useful version (alpha, beta, and other releases) as rapidly as practical.
ESSENTIAL ACTIVITIES:-
1) Resource management, control, and process optimization
2) Complete component development and testing evaluation criteria
3) Assessment of product release criteria of the vision
4. 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.
ESSENTIAL ACTIVITIES:-
1) Synchronization and integration of concurrent construction increments into
consistent deployment baselines.
2) Deployment-specific engineering.
3) Assessment of deployment baselines against the complete vision and acceptance
criteria in the requirement set.
Management set artifacts are evaluated, assessed, and measured through a combination
of the following:
1) Requirement Set:-
Requirements artifacts are evaluated, assessed, and measured through a combination of
the following:
1) Analysis of consistency with the release specifications of the management set
2) 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:
1) Analysis of the internal consistency and quality of the design model
2) Analysis of consistency with the requirements models
3) Analysis of changes between the current versions of the design model
4) Translation into implementation and deployment sets and notations
5) Subjective review of other dimensions of quality
3) 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:
1) Analysis of consistency with the design models
2) Translation into deployment set notations
3) Translation into implementation and deployment sets and notations
4) Subjective review of other dimensions of quality
4) 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:
1) Testing against the usage scenarios and quality attributes.
2) Testing the partitioning, replication, and allocation strategies in mapping components.
3) Testing against the defined usage scenarios in the user manual.
4) Analysis of changes between the current version of the deployment set.
The WBS is the architecture of project plan. It encapsulates change and evolves with
appropriate level of details. A WBS is simply a hierarchy of elements that decomposes
the project plan into discrete work task.
Business Case
Software Development Plan
Work Breakdown Structure
Software Change Order Database
Release Specifications
Release Descriptions
Status Assessments
Work Environment
Management Artifact Sequences
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:
1). Vision Document.
2). Architecture Description.
3). S/W User Manual.
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. Figure 6-10 provides a
default outline for an architecture description.
Pragmatic Artifacts:-
Pragmatic Artifacts is the conventional document-driven approach that generally
squandered unbelievable amounts of engineering time simply given on development,
polish, format, review, update, modify and distribute documents. It is an approach that
redirects this effort of documentation to simply improve rigor and easily
understanding of source of data or information.
Pragmatic Meaning is dealing with things sensibly and realistically in a way that is
based on practical rather than theoretical considerations.
People want to review information but don’t understand the language of the artifact.
People want to review the information but don’t have access to the tools.
Human readable engineering artifacts should use rigorous notations that are complete,
consistent and used in a self documenting manner.
Useful documentation is self defining: It is documentation that gets used.
Paper is tangible (perceptible by touch): electronic artifacts are too easy to change.
2. An Architecture baseline
3. An Architectural description
Prepared by,
Dr. N. RAMANA REDDY
M.Tech(CSE), MBA, Ph.D
Associate Professor & HOD
Ph. No: 9640 789 300