SPM Unit 2
SPM Unit 2
Project Approach: Lifecycle models, Agile model, Choosing Technology, Prototyping Iterative
& incremental Process Framework: Lifecycle phases, Process Artifacts, Process workflows.
Lifecycle Models:
The program or set of programs are tested here and it checks whether the written code in the
above phase is giving exact output and software satisfies user requirements or not.
Prepare documentation on total procedure of testing.
5. Implementation:
It is product delivery and maintenance phase.
We have to maintain the product after delivery to the customer for getting better feedback.
This phase is responsible for making decisions like when to release the product and where to
release the product.
Prepare a final document on total procedure.
2. The Waterfall Model
The waterfall model is also called as 'Linear sequential model' or 'Classic life cycle model'.
In this model, each phase is fully completed before the beginning of the next phase.
This model is used for the small projects.
In this model, feedback is taken after each phase to ensure that the project is on the right path.
Testing part starts only after the development is complete.
NOTE: The description of the phases of the waterfall model is same as that of the Generic
process model.
An alternative design for 'linear sequential model' is as follows:
Advantages of waterfall model
The waterfall model is simple and easy to understand, implement, and use.
All the requirements are known at the beginning of the project; hence it is easy to manage.
It avoids overlapping of phases because each phase is completed at once.
This model works for small projects because the requirements are understood very well.
This model is preferred for those projects where the quality is more important as compared to
the cost of the project.
Disadvantages of the waterfall model
This model is not good for complex and object oriented projects.
Customer is involved only at beginning of the development process, so, he does not know about
the status and quality of work product in later development phases.
Once the process is started and moves on, we cannot take a step back in the development
process.
The problems with this model are uncovered, until the software testing.
The amount of risk is high.
3. Evolutionary Prototyping Model:
In this model, after communication with the customer, a quick design is developed and it is
given to customer evolution.
If customer is satisfied with quick design then the development process moves forward
otherwise a step back is taken and all the requirements are refined then again a quick design is
developed.
This process of developing a quick design until the customer satisfies is known as prototyping
technology.
1. Communication: In this phase, developer and customer meet and discuss the overall objectives
of the software.
2. Quick design: Quick design is implemented when requirements are known. It includes only the
important aspects i.e. input and output format of the software. It focuses on those aspects which
are visible to the user rather than the detailed plan. It helps to construct a prototype.
3. Build prototype: This phase gives the clear idea about the development of software as the
software is now constructed. It allows the developer to better understand the exact requirements.
4. User valuation of prototype: The prototype is evaluated by the customer. If the user is not
satisfied with current prototype then it is refined according to the requirements of the user. The
process of refining the prototype is repeated till all the requirements of users are met.
When the users are satisfied with the developed prototype then the system is developed on
the basis of final prototype.
4. Spiral Model
2. Planning: It defines work schedule and takes decisions on budgets and persons in the team.
Advantages Disadvantages
It is good for large and critical projects High cost and time to reach the final product.
Risks are identified and removed easily Needs special skills to evaluate the risks and
assumptions.
Manages risks and develops the system into phases. More complex than other SDLC models
Requirements can be captured more accurately It is not suitable for low risk projects
The incremental model combines the elements of waterfall model and they are applied in an
iterative fashion.
Each increment builds the product and submits it to the customer for any suggested
modifications.
The next increment implements on the customer's suggestions and add additional requirements
in the previous increment.
This process is repeated until the product is finished.
Advantages of incremental model
This model is flexible because the cost of development is low and initial product delivery is
faster.
It is easier to test and debug during the smaller iteration.
The working software generates quickly and early during the software life cycle.
The customers can respond to its functionalities after every increment.
Disadvantages of the incremental model
The cost of the final product may cross the cost estimated initially.
This model requires a very clear and complete planning.
The planning of design is required before the whole system is broken into small increments.
The demands of customer for the additional functionalities after every
increment causes problem during the system architecture.
6. Agile Model:
Scrum
SCRUM is an agile development method which concentrates specifically on how to
manage tasks within a team-based development environment.
Scrum Master
Master is responsible for setting up the team, sprint meeting and removes obstacles to
progress.
Product owner
The Product Owner creates product backlog, prioritizes the backlog and is responsible for
the delivery of the functionality at each iteration.
Scrum Team
Team manages its own work and organizes the work to complete the sprint or cycle.
Product Backlog
This is a repository where requirements are tracked with details on the no of requirements
(user stories) to be completed for each release. It should be maintained and prioritized by Product
Owner, and it should be distributed to the scrum team. Team can also request for a new requirement
addition or modification or deletion.
Process flow of Scrum Methodologies:
Process flow of scrum testing is as follows:
Each iteration of a scrum is known as Sprint
Product backlog is a list where all details are entered to get the end-product
During each Sprint, top user stories of Product backlog are selected and turned into Sprint
backlog
Team works on the defined sprint backlog
Team checks for the daily work
At the end of the sprint, team delivers product functionality
Crystal Methodologies
Crystal Methodology is based on three concepts
1. Chartering: Various activities involved in this phase are creating a development team,
performing a preliminary feasibility analysis, developing an initial plan and fine-tuning the
development methodology
2. Cyclic delivery: The main development phase consists of two or more delivery cycles, during
which the
1. Team updates and refines the release plan
2. Implements a subset of the requirements through one or more program test integrate iterations
3. Integrated product is delivered to real users
4. Review of the project plan and adopted development methodology
3. Wrap Up: The activities performed in this phase are deployment into the user environment, post-
deployment reviews and reflections are performed.
Dynamic Software Development Method (DSDM)
DSDM is a Rapid Application Development (RAD) approach to software development and
provides an agile project delivery framework. The important aspect of DSDM is that the users are
required to be involved actively, and the teams are given the power to make decisions. Frequent
delivery of product becomes the active focus with DSDM. The techniques used in DSDM are
1. Time Boxing
2. MoSCoW Rules
3. Prototyping
The DSDM project consists of 7 phases
1. Pre-project
2. Feasibility Study
3. Business Study
4. Functional Model Iteration
5. Design and build Iteration
6. Implementation
7. Post-project
Feature Driven Development (FDD)
This method is focused around "designing & building" features. Unlike other agile methods,
FDD describes very specific and short phases of work that has to be accomplished separately per
feature. It includes domain walkthrough, design inspection, promote to build, code inspection and
design. FDD develops product keeping following things in the target :
1. Domain object Modeling
2. Development by feature
3. Component/ Class Ownership
4. Feature Teams
5. Inspections
6. Configuration Management
7. Regular Builds
8. Visibility of progress and results
Lean Software Development
Lean software development method is based on the principle "Just in time production". It
aims at increasing speed of software development and decreasing cost. Lean development can be
summarized in seven steps.
1. Eliminating Waste
2. Amplifying learning
3. Defer commitment (deciding as late as possible)
4. Early delivery
5. Empowering the team
6. Building Integrity
7. Optimize the whole
eXtreme Programming (XP)
Extreme Programming technique is very helpful when there is constantly changing
demands or requirements from the customers or when they are not sure about the functionality of
the system. It advocates frequent "releases" of the product in short development cycles, which
inherently improves the productivity of the system and also introduces a checkpoint where any
customer requirements can be easily implemented. The XP develops software keeping customer
in the target.
Business requirements are gathered in terms of stories. All those stories are stored in a
place called the parking lot.
Phases of eXtreme programming:
There are 6 phases available in Agile XP method, and those are explained as follows:
Planning
Identification of stakeholders and sponsors
Infrastructure Requirements
Security related information and gathering
Service Level Agreements and its conditions
Analysis
Capturing of Stories in Parking lot
Prioritize stories in Parking lot
Scrubbing of stories for estimation
Define Iteration SPAN(Time)
Resource planning for both Development and QA teams
Design
Break down of tasks
Test Scenario preparation for each task
Regression Automation Framework
Execution
Coding
Unit Testing
Execution of Manual test scenarios
Defect Report generation
Conversion of Manual to Automation regression test cases
Mid Iteration review
End of Iteration review
Wrapping
Small Releases
Regression Testing
Demos and reviews
Develop new stories based on the need
Process Improvements based on end of iteration review comments
Closure
Pilot Launch
Training
Production Launch
SLA Guarantee assurance
Review SOA strategy
Production Support
There are two storyboards available to track the work on a daily basis, and those are listed
below for reference.
Story Cardboard
This is a traditional way of collecting all the stories in a board in the form of stick notes
to track daily XP activities. As this manual activity involves more effort and time, it is better to
switch to an online form.
Online Storyboard
Online tool Storyboard can be used to store the stories. Several teams can use it for
different purposes.
Process Framework:
Software process (also known as software methodology) is a structured set of related
activities that leads to the production of the software. These activities may involve the
development of the software from the scratch, or, modifying an existing system.
Lifecycle Phases:
Any software process must include the following activities:
1. Communication:
The software development starts with the communication between customer and
developer. The developer has to communicate with customer to gather all the requirements.
2. Planning:
It consists of complete estimation, scheduling for project development and tracking. It
defines work schedule and takes decisions on budgets and persons in the team. Describes
technical tasks, risks, resources, work product, and work schedule.
3. Modelling:
Modelling consists of complete requirement analysis and the design of the project like
algorithm, flowchart etc. The algorithm is the step-by-step solution of the problem and the flow
chart shows a complete flow diagram of a program. Modelling is a design or diagrammatic
representation of the system.
4. Construction:
Construction consists of code generation and the testing part. Coding part implements the
design details using an appropriate programming language. Testing is to check whether the flow
of coding is correct or not. Testing also checks that the program provides desired output.
5. Deployment:
Deployment step consists of delivering the product to the customer and take feedback
from them. If the customer wants some corrections or demands for the additional capabilities,
then the change is required for improvement in the quality of the software.
Process Artifacts:
2. Design Set: Tools that are used are visually modeling tools. To engineer design model,
UML (Unified Modeling Language) notations are used. This set simply contains many
different levels of abstractions. Design model generally includes all structural and behavioral
data or information to ascertain bill of material. These set artifacts mostly include test models,
design models, software architecture descriptions.
3. Implementation Set: Tools that are used are debuggers, compilers, code analyzers, tools for
test management. This set generally contains source code as implementation of components,
their form, interfaces, and executables that are necessary for stand-alone testing of
components.
4. Deployment Set: Tools that are used are network management tools, test coverage, and test
automation tools, etc. To simply use end result or product in its environment where it is
supposed to be used, these set generally contains executable software’s, build scripts, ML
notations, installation scripts.
Process Workflows:
Workflow refers to the series of sequential tasks those are performed to achieve certain
goal. Each workflow step is defined by three parameters, that is input, transformation, and
output. In workflow process a series of actions are performed to achieve a business outcome.
There are top 7 Software Process Workflows in Software Project Management. They are:
3. Requirements Workflow: This workflow analyzes the problem space for identifying /
understanding the problems and finds a solution.
4. Design Workflow: In this workflow modelling the software is done to express the software
design where Software modeling will address the entire software design.
7. Deployment Workflow: In this workflow the process of delivering the end products to the
user is carried or preparing the software application/product to run and operate in a specific
environment is done.