Unit-2:Project Approach
Software Development Life Cycle Models:
Software development life cycle (SDLC) is a series of phases that provide a common
understanding of the software building process. How the software will be realized and
developed from the business understanding and requirements elicitation phase to convert
these business ideas and requirements into functions and features until its usage and operation
to achieve the business needs. The good software engineer should have enough knowledge on
how to choose the SDLC model based on the project context and the business requirements.
Therefore, it may be required to choose the right SDLC model according to the specific
concerns and requirements of the project to ensure its success.
Types of Software developing life cycles (SDLC)
 Waterfall Model
 V-Shaped Model
 Evolutionary Prototyping Model
 Spiral Method (SDM)
 Iterative and Incremental Method
 Agile development
Waterfall Model:
The Waterfall Model is a linear sequential flow. In which progress is seen as flowing steadily
downwards (like a waterfall) through the phases of software implementation. This means that any
phase in the development process begins only if the previous phase is complete. The waterfall
approach does not define the process to go back to the previous phase to handle changes in
requirement. The waterfall approach is the earliest approach and most widely known that was used
for software development.
The usage
Projects which not focus on changing the requirements, for example, projects initiated from a
request for proposals (RFPs), the customer has a very clear documented requirements
Advantages:
 Easy to explain to the users.
 Structured approach.
 Stages and activities are well defined.
 Helps to plan and schedule the project.
 Verification at each stage ensures early detection of errors/misunderstanding.
 Each phase has specific deliverables.
Disadvantages
 Assumes that the requirements of a system can be frozen.
 Very difficult to go back to any stage after it finished.
 A little flexibility and adjusting scope is difficult and expensive.
 Costly and required more time, in addition to the detailed plan
V-Shaped Model
It is an extension of the waterfall model, Instead of moving down in a linear way, the process
steps are bent upwards after the implementation and coding phase, to form the typical V
shape. The major difference between the V-shaped model and waterfall model is the early
test planning in the V-shaped model.
The usage
 Software requirements clearly defined and known
 Software development technologies and tools are well-known
Advantages
 Simple and easy to use
 Each phase has specific deliverables.
 Higher chance of success over the waterfall model due to the development of test plans
early on during the life cycle.
 Works well for where requirements are easily understood.
 Verification and validation of the product in the early stages of product development.
Disadvantages
 Very inflexible, like the waterfall model.
 Adjusting scope is difficult and expensive.
 The software is developed during the implementation phase, so no early prototypes of the
software are produced.
 The model doesn’t provide a clear path for problems found during testing phases.
 Costly and required more time, in addition to a detailed plan
Prototyping Model
It refers to the activity of creating prototypes of software applications, for example, incomplete
versions of the software program being developed. It is an activity that can occur in software
development and It used to visualize some component of the software to limit the gap of
misunderstanding the customer requirements by the development team. This also will reduce
the iterations may occur in the waterfall approach and hard to be implemented due to the
inflexibility of the waterfall approach. So, when the final prototype is developed, the
requirement is considered to be frozen.
It has some types, such as:
 Throwaway prototyping: Prototypes that are eventually discarded rather than becoming a
part of the finally delivered software
 Evolutionary prototyping: prototypes that evolve into the final system through an iterative
incorporation of user feedback.
 Incremental prototyping: The final product is built as separate prototypes. In the end, the
separate prototypes are merged in an overall design.
 Extreme prototyping: used in web applications mainly. Basically, it breaks down web
development into three phases, each one based on the preceding one. The first phase is a
static prototype that consists mainly of HTML pages. In the second phase, the screens are
programmed and fully functional using a simulated services layer. In the third phase, the
services are implemented
The usage
 This process can be used with any software developing life cycle model. While this shall
be chosen when you are developing a system has user interactions. So, if the system does
not have user interactions, such as a system does some calculations shall not have
prototypes.
Advantages
 Reduced time and costs, but this can be a disadvantage if the developer loses time in
developing the prototypes.
 Improved and increased user involvement.
Disadvantages
 Insufficient analysis. User confusion of prototype and finished system.
 Developer misunderstanding of user objectives.
 Excessive development time of the prototype.
 It is costly to implement the prototypes
Spiral Model (SDM):
It is combining elements of both design and prototyping-in-stages, in an effort to combine
advantages of top-down and bottom-up concepts. This model of development combines the
features of the prototyping model and the waterfall model. The spiral model is favored for
large, expensive, and complicated projects. This model uses many of the same phases as the
waterfall model, in essentially the same order, separated by planning, risk assessment, and the
building of prototypes and simulations.
The usage
It is used in the large applications and systems which built-in small phases or segments.
Advantages
 Estimates (i.e. budget, schedule, etc.) become more realistic as work progressed because
important issues are discovered earlier.
 Early involvement of developers.
 Manages risks and develops the system into phases.
Disadvantages
 High cost and time to reach the final product.
 Needs special skills to evaluate the risks and assumptions.
 Highly customized limiting re-usability
Iterative and Incremental Model
It is developed to overcome the weaknesses of the waterfall model. It starts with an initial
planning and ends with deployment with the cyclic interactions in between. The basic idea
behind this method is to develop a system through repeated cycles (iterative) and in smaller
portions at a time (incremental), allowing software developers to take advantage of what was
learned during the development of earlier parts or versions of the system. It can consist of
mini waterfalls or mini V-Shaped model
The usage
It is used in shrink-wrap application and large system which built-in small phases or
segments. Also, can be used in a system has separated components, for example, ERP
system. Which we can start with the budget module as a first iteration and then we can start
with the inventory module and so forth.
Advantages
 Produces business value early in the development lifecycle.
 Better use of scarce resources through proper increment definition.
 Can accommodate some change requests between increments.
 More focused on customer value than the linear approaches.
 We can detect project issues and changes earlier.
Disadvantages
 Requires heavy documentation.
 Follows a defined set of processes.
 Defines increments based on function and feature dependencies.
 Requires more customer involvement than the linear approaches.
 Partitioning the functions and features might be problematic.
 Integration between the iterations can be an issue if it is not considered during the
development and project planning.
Agile Model
It is based on iterative and incremental development, where requirements and solutions
evolve through collaboration between cross-functional teams.
The usage
It can be used with any type of the project, but it needs more engagement from the customer
and to be interactive. Also, we can use it when the customer needs to have some functional
requirement ready in less than three weeks and the requirements are not clear enough. This
will enable more valuable and workable piece for software early which also increase the
customer satisfaction.
Advantages
 Decrease the time required to avail some system features.
 Face to face communication and continuous inputs from customer representative leaves no
space for guesswork.
 The end result is the high-quality software in the least possible time duration and satisfied
customer.
Disadvantages
 Scalability.
 The ability and collaboration of the customer to express user needs.
 Documentation is done at later stages.
 Reduce the usability of components.
 Needs special skills for the team
Life cycle phases
Characteristic of a successful software development process is the well-defined separation
between "research and development" activities and "production" activities. Most unsuccessful
projects exhibit one of the following characteristics:
 An overemphasis on research and development
 An overemphasis on production.
Successful modern projects-and even successful projects developed under the conventional
process-tend to have a very well-defined project milestone when there is a noticeable
transition from a research attitude to a production attitude. Earlier phases focus on achieving
functionality. Later phases revolve around achieving a product that can be shipped to a
customer, with explicit attention to robustness, performance, and finish.
A modern software development process must be defined to support the following:
 Evolution of the plans, requirements, and architecture, together with well
defined synchronization points
 Risk management and objective measures of progress and quality
 Evolution of system capabilities through demonstrations of increasing
functionality
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
2. The production stage, driven by more predictable but larger teams doing
construction, test, and deployment activities
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
below
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)
ESSENTIAL ACTIVITIES:
 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.
PRIMARY EVALUTION 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
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.
PRIMARY EVALUATION CRITERIA
 Is the vision stable?
 Is the architecture stable?
 Does the executable demonstration show that the major risk elements have been
addressed and credibly resolved?
 Is the construction phase plan of sufficient fidelity, and is it backed up with a
credible basis of estimate?
 Do all stakeholders agree that the current vision can be met if the current plan is
executed to develop the complete system in the context of the current architecture?
 Are actual resource expenditures versus planned expenditures acceptable?
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.
PRIMARY EVALUATION CRITERIA
 Is this product baseline mature enough to be deployed in the user
community? (Existing defects are not obstacles to achieving the purpose of
the next release.)
 Is this product baseline stable enough to be deployed in the user
community? (Pending changes are not obstacles to achieving the purpose of
the next release.)

 Are the stakeholders ready for transition to the user community?
 Are actual resource expenditures versus planned expenditures acceptable?
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:
1. Beta testing to validate the new system against user expectations
2. Beta testing and parallel operation relative to a legacy system it is replacing
3. Conversion of operational databases
4. Training of users and maintainers
The transition phase concludes when the deployment baseline has achieved the complete
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
 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?
Process Artifacts
THE ARTIFACT SETS
To make the development of a complete software system manageable, distinct collections of
information are organized into artifact sets. Artifact represents cohesive information that
typically is developed and reviewed as a single entity.
Life-cycle software artifacts are organized into five distinct sets that are roughly
partitioned by the underlying language of the set: management (ad hoc textual formats),
requirements (organized text and models of the problem space), design (models of the
solution space), implementation (human-readable programming language and associated
source files), and deployment (machine-process able languages and associated files). The
artifact sets are shown in Figure below
THE MANAGEMENT SET
The management set captures the artifacts associated with process planning and
execution. These artifacts use ad hoc notations, including text, graphics, or whatever
representation is required to capture the "contracts" among project personnel (project
management, architects, developers, testers, marketers, administrators), among stakeholders
(funding authority, user, software project manager, organization manager, regulatory agency),
and between project personnel and stakeholders. Specific artifacts included in this set are the
work breakdown structure (activity breakdown and financial tracking mechanism), the
business case (cost, schedule, profit expectations), the release specifications (scope, plan,
objectives for release baselines), the software development plan (project process instance),
the release descriptions (results of release baselines), the status assessments (periodic
snapshots of project progress), the software change orders (descriptions of discrete baseline
changes), the deployment docu-ments (cutover plan, training course, sales rollout kit), and the
environment (hardware and software tools, process automation, & documentation).
Management set artifacts are evaluated, assessed, and measured through a combination of the
following:
 Relevant stakeholder review
 Analysis of changes between the current version of the artifact and previous
versions
 Major milestone demonstrations of the balance among all artifacts and, in
particular, the accuracy of the business case and vision artifacts
THE ENGINEERING SETS
The engineering sets consist of the requirements set, the design set, the
implementation set, and the deployment set.
Requirements Set
Requirements artifacts are evaluated, assessed, and measured through a combination of the
following:
 Analysis of consistency with the release specifications of the management set
Analysis of consistency between the vision and the requirements models
 Mapping against the design, implementation, and deployment sets to
evaluate the consistency and completeness and the semantic balance
between information in the different sets
 Analysis of changes between the current version of requirements
artifacts and previous versions (scrap, rework, and defect elimination
trends)

 Subjective review of other dimensions of quality
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
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
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.
ARTIFACT EVOLUTION OVER THE LIFE CYCLE
Each state of development represents a certain amount of precision in the final system
description. Early in the life cycle, precision is low and the representation is generally high.
Eventually, the precision of representation is high and everything is specified in full detail.
Each phase of development focuses on a particular artifact set. At the end of each phase, the
overall system state will have progressed on all sets, as illustrated in Figure 6-3.
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 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.
Software Development Plan
The software development plan (SDP) elaborates the process framework into a fully
detailed plan. Two indications of a useful SDP are periodic updating (it is not stagnant
shelfware) and understanding and acceptance by managers and practitioners alike.
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 manager must
have insight into project costs and how they are expended. The structure of cost
accountability is a serious project planning constraint.
Software Change Order Database
Managing change is one of the fundamental primitives of an iterative development process.
With greater change freedom, a project can iterate more productively.
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).
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.
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.
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.
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.
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.
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.
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.
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:
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.
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 scepticism because of their inherent
volatility.
Workflows:
 The term workflow is used to mean a thread of cohesive and mostly sequential
activities.
 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
Relative Levels of Efforts:
phases
Fig:Activity Levels across life cycle phases.
Iteration Workflows:
“An iteration consists of a loosely sequential set of activities in various proportions
depending on where the iteration is located in the development cycle.”
Contents of an iteration is determined by ‘iteration planning’ based on critical use cases
and high risk items – decreasing in priority as we progress across the development
cycle.
Emphasis on Different Activities Across Life Cycle

Software Project Management_Unit_2_Notes_.doc

  • 1.
    Unit-2:Project Approach Software DevelopmentLife Cycle Models: Software development life cycle (SDLC) is a series of phases that provide a common understanding of the software building process. How the software will be realized and developed from the business understanding and requirements elicitation phase to convert these business ideas and requirements into functions and features until its usage and operation to achieve the business needs. The good software engineer should have enough knowledge on how to choose the SDLC model based on the project context and the business requirements. Therefore, it may be required to choose the right SDLC model according to the specific concerns and requirements of the project to ensure its success. Types of Software developing life cycles (SDLC)  Waterfall Model  V-Shaped Model  Evolutionary Prototyping Model  Spiral Method (SDM)  Iterative and Incremental Method  Agile development Waterfall Model: The Waterfall Model is a linear sequential flow. In which progress is seen as flowing steadily downwards (like a waterfall) through the phases of software implementation. This means that any phase in the development process begins only if the previous phase is complete. The waterfall approach does not define the process to go back to the previous phase to handle changes in requirement. The waterfall approach is the earliest approach and most widely known that was used for software development. The usage Projects which not focus on changing the requirements, for example, projects initiated from a request for proposals (RFPs), the customer has a very clear documented requirements Advantages:  Easy to explain to the users.  Structured approach.  Stages and activities are well defined.  Helps to plan and schedule the project.  Verification at each stage ensures early detection of errors/misunderstanding.  Each phase has specific deliverables.
  • 2.
    Disadvantages  Assumes thatthe requirements of a system can be frozen.  Very difficult to go back to any stage after it finished.  A little flexibility and adjusting scope is difficult and expensive.  Costly and required more time, in addition to the detailed plan V-Shaped Model It is an extension of the waterfall model, Instead of moving down in a linear way, the process steps are bent upwards after the implementation and coding phase, to form the typical V shape. The major difference between the V-shaped model and waterfall model is the early test planning in the V-shaped model. The usage  Software requirements clearly defined and known  Software development technologies and tools are well-known Advantages  Simple and easy to use  Each phase has specific deliverables.  Higher chance of success over the waterfall model due to the development of test plans early on during the life cycle.  Works well for where requirements are easily understood.  Verification and validation of the product in the early stages of product development. Disadvantages  Very inflexible, like the waterfall model.  Adjusting scope is difficult and expensive.  The software is developed during the implementation phase, so no early prototypes of the software are produced.  The model doesn’t provide a clear path for problems found during testing phases.  Costly and required more time, in addition to a detailed plan
  • 3.
    Prototyping Model It refersto the activity of creating prototypes of software applications, for example, incomplete versions of the software program being developed. It is an activity that can occur in software development and It used to visualize some component of the software to limit the gap of misunderstanding the customer requirements by the development team. This also will reduce the iterations may occur in the waterfall approach and hard to be implemented due to the inflexibility of the waterfall approach. So, when the final prototype is developed, the requirement is considered to be frozen. It has some types, such as:  Throwaway prototyping: Prototypes that are eventually discarded rather than becoming a part of the finally delivered software  Evolutionary prototyping: prototypes that evolve into the final system through an iterative incorporation of user feedback.  Incremental prototyping: The final product is built as separate prototypes. In the end, the separate prototypes are merged in an overall design.
  • 4.
     Extreme prototyping:used in web applications mainly. Basically, it breaks down web development into three phases, each one based on the preceding one. The first phase is a static prototype that consists mainly of HTML pages. In the second phase, the screens are programmed and fully functional using a simulated services layer. In the third phase, the services are implemented The usage  This process can be used with any software developing life cycle model. While this shall be chosen when you are developing a system has user interactions. So, if the system does not have user interactions, such as a system does some calculations shall not have prototypes. Advantages  Reduced time and costs, but this can be a disadvantage if the developer loses time in developing the prototypes.  Improved and increased user involvement. Disadvantages  Insufficient analysis. User confusion of prototype and finished system.  Developer misunderstanding of user objectives.  Excessive development time of the prototype.  It is costly to implement the prototypes Spiral Model (SDM): It is combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. This model of development combines the features of the prototyping model and the waterfall model. The spiral model is favored for large, expensive, and complicated projects. This model uses many of the same phases as the
  • 5.
    waterfall model, inessentially the same order, separated by planning, risk assessment, and the building of prototypes and simulations. The usage It is used in the large applications and systems which built-in small phases or segments. Advantages  Estimates (i.e. budget, schedule, etc.) become more realistic as work progressed because important issues are discovered earlier.  Early involvement of developers.  Manages risks and develops the system into phases. Disadvantages  High cost and time to reach the final product.  Needs special skills to evaluate the risks and assumptions.  Highly customized limiting re-usability Iterative and Incremental Model It is developed to overcome the weaknesses of the waterfall model. It starts with an initial planning and ends with deployment with the cyclic interactions in between. The basic idea behind this method is to develop a system through repeated cycles (iterative) and in smaller portions at a time (incremental), allowing software developers to take advantage of what was learned during the development of earlier parts or versions of the system. It can consist of mini waterfalls or mini V-Shaped model
  • 6.
    The usage It isused in shrink-wrap application and large system which built-in small phases or segments. Also, can be used in a system has separated components, for example, ERP system. Which we can start with the budget module as a first iteration and then we can start with the inventory module and so forth. Advantages  Produces business value early in the development lifecycle.  Better use of scarce resources through proper increment definition.  Can accommodate some change requests between increments.  More focused on customer value than the linear approaches.  We can detect project issues and changes earlier. Disadvantages  Requires heavy documentation.  Follows a defined set of processes.  Defines increments based on function and feature dependencies.  Requires more customer involvement than the linear approaches.  Partitioning the functions and features might be problematic.  Integration between the iterations can be an issue if it is not considered during the development and project planning. Agile Model It is based on iterative and incremental development, where requirements and solutions evolve through collaboration between cross-functional teams.
  • 7.
    The usage It canbe used with any type of the project, but it needs more engagement from the customer and to be interactive. Also, we can use it when the customer needs to have some functional requirement ready in less than three weeks and the requirements are not clear enough. This will enable more valuable and workable piece for software early which also increase the customer satisfaction. Advantages  Decrease the time required to avail some system features.  Face to face communication and continuous inputs from customer representative leaves no space for guesswork.  The end result is the high-quality software in the least possible time duration and satisfied customer. Disadvantages  Scalability.  The ability and collaboration of the customer to express user needs.  Documentation is done at later stages.  Reduce the usability of components.  Needs special skills for the team
  • 8.
    Life cycle phases Characteristicof a successful software development process is the well-defined separation between "research and development" activities and "production" activities. Most unsuccessful projects exhibit one of the following characteristics:  An overemphasis on research and development  An overemphasis on production. Successful modern projects-and even successful projects developed under the conventional process-tend to have a very well-defined project milestone when there is a noticeable transition from a research attitude to a production attitude. Earlier phases focus on achieving functionality. Later phases revolve around achieving a product that can be shipped to a customer, with explicit attention to robustness, performance, and finish. A modern software development process must be defined to support the following:  Evolution of the plans, requirements, and architecture, together with well defined synchronization points  Risk management and objective measures of progress and quality  Evolution of system capabilities through demonstrations of increasing functionality 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 2. The production stage, driven by more predictable but larger teams doing construction, test, and deployment activities
  • 9.
    The transition betweenengineering 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 below 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)
  • 10.
    ESSENTIAL ACTIVITIES:  Formulatingthe 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. PRIMARY EVALUTION 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 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
  • 11.
     Baselining ahigh-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. PRIMARY EVALUATION CRITERIA  Is the vision stable?  Is the architecture stable?  Does the executable demonstration show that the major risk elements have been addressed and credibly resolved?  Is the construction phase plan of sufficient fidelity, and is it backed up with a credible basis of estimate?  Do all stakeholders agree that the current vision can be met if the current plan is executed to develop the complete system in the context of the current architecture?  Are actual resource expenditures versus planned expenditures acceptable? 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
  • 12.
     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 EVALUATION CRITERIA  Is this product baseline mature enough to be deployed in the user community? (Existing defects are not obstacles to achieving the purpose of the next release.)  Is this product baseline stable enough to be deployed in the user community? (Pending changes are not obstacles to achieving the purpose of the next release.)   Are the stakeholders ready for transition to the user community?  Are actual resource expenditures versus planned expenditures acceptable? 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: 1. Beta testing to validate the new system against user expectations 2. Beta testing and parallel operation relative to a legacy system it is replacing 3. Conversion of operational databases 4. Training of users and maintainers The transition phase concludes when the deployment baseline has achieved the complete vision. PRIMARY OBJECTIVES  Achieving user self-supportability
  • 13.
     Achieving stakeholderconcurrence 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  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? Process Artifacts THE ARTIFACT SETS To make the development of a complete software system manageable, distinct collections of information are organized into artifact sets. Artifact represents cohesive information that typically is developed and reviewed as a single entity. Life-cycle software artifacts are organized into five distinct sets that are roughly partitioned by the underlying language of the set: management (ad hoc textual formats), requirements (organized text and models of the problem space), design (models of the solution space), implementation (human-readable programming language and associated source files), and deployment (machine-process able languages and associated files). The artifact sets are shown in Figure below
  • 14.
    THE MANAGEMENT SET Themanagement set captures the artifacts associated with process planning and execution. These artifacts use ad hoc notations, including text, graphics, or whatever representation is required to capture the "contracts" among project personnel (project management, architects, developers, testers, marketers, administrators), among stakeholders (funding authority, user, software project manager, organization manager, regulatory agency), and between project personnel and stakeholders. Specific artifacts included in this set are the work breakdown structure (activity breakdown and financial tracking mechanism), the business case (cost, schedule, profit expectations), the release specifications (scope, plan, objectives for release baselines), the software development plan (project process instance), the release descriptions (results of release baselines), the status assessments (periodic snapshots of project progress), the software change orders (descriptions of discrete baseline changes), the deployment docu-ments (cutover plan, training course, sales rollout kit), and the environment (hardware and software tools, process automation, & documentation). Management set artifacts are evaluated, assessed, and measured through a combination of the following:  Relevant stakeholder review  Analysis of changes between the current version of the artifact and previous versions  Major milestone demonstrations of the balance among all artifacts and, in particular, the accuracy of the business case and vision artifacts THE ENGINEERING SETS The engineering sets consist of the requirements set, the design set, the implementation set, and the deployment set. Requirements Set Requirements artifacts are evaluated, assessed, and measured through a combination of the following:  Analysis of consistency with the release specifications of the management set Analysis of consistency between the vision and the requirements models  Mapping against the design, implementation, and deployment sets to evaluate the consistency and completeness and the semantic balance between information in the different sets  Analysis of changes between the current version of requirements artifacts and previous versions (scrap, rework, and defect elimination trends)   Subjective review of other dimensions of quality 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:
  • 15.
     Analysis ofthe 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 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)
  • 16.
     Testing againstthe 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 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.
  • 17.
    ARTIFACT EVOLUTION OVERTHE LIFE CYCLE Each state of development represents a certain amount of precision in the final system description. Early in the life cycle, precision is low and the representation is generally high. Eventually, the precision of representation is high and everything is specified in full detail. Each phase of development focuses on a particular artifact set. At the end of each phase, the overall system state will have progressed on all sets, as illustrated in Figure 6-3. 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 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. Software Development Plan The software development plan (SDP) elaborates the process framework into a fully detailed plan. Two indications of a useful SDP are periodic updating (it is not stagnant shelfware) and understanding and acceptance by managers and practitioners alike.
  • 18.
    Work Breakdown Structure Workbreakdown structure (WBS) is the vehicle for budgeting and collecting costs. To monitor and control a project's financial performance, the software project manager must have insight into project costs and how they are expended. The structure of cost accountability is a serious project planning constraint. Software Change Order Database Managing change is one of the fundamental primitives of an iterative development process. With greater change freedom, a project can iterate more productively. 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). 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. 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. 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. 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. 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.
  • 19.
    Vision Document The visiondocument 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. 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. 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. 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: 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. 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 scepticism because of their inherent volatility.
  • 20.
    Workflows:  The termworkflow is used to mean a thread of cohesive and mostly sequential activities.  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 Relative Levels of Efforts: phases Fig:Activity Levels across life cycle phases. Iteration Workflows: “An iteration consists of a loosely sequential set of activities in various proportions depending on where the iteration is located in the development cycle.” Contents of an iteration is determined by ‘iteration planning’ based on critical use cases and high risk items – decreasing in priority as we progress across the development cycle.
  • 21.
    Emphasis on DifferentActivities Across Life Cycle