0% found this document useful (0 votes)
20 views16 pages

SPM Unit 2

Uploaded by

classysniper99
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views16 pages

SPM Unit 2

Uploaded by

classysniper99
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 16

UNIT 2

Project Approach: Lifecycle models, Agile model, Choosing Technology, Prototyping Iterative
& incremental Process Framework: Lifecycle phases, Process Artifacts, Process workflows.

Lifecycle Models:

1. Software Development Life Cycle (SDLC):-

 Software development process contains so many activities.


 The starting of life cycle phase is done with requirements analysis and it ends with product
release.
 SDLC contains 5 life cycle phases
1. Requirement Analysis:

 Gathering all the requirements by communicating with the customer.


 Making analysis on the gathered requirements.
 Prepare a set of requirements (SRS).
 Prepare documentation on the total requirements analysis process.
2. Designing:

 Designing means diagrammatic/architectural/graphical representation of a system.


 Design is done by using a modeling language.
 Based on SRS, here the designer team will prepare a design which represents the total system.
 Prepares a document on total designing process.
3. Coding:

 Coding is done by using a proper programming language


 Based on the design, from the previous phase, here the developer will write a code which is
executable.
 Prepare a document on total coding process.
4. Testing:

 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

 It is more advanced model.


 It gives efficient development in incremental model.
 It includes an activity called risk analysis and it is used to find out the risks and find out the
alternative way to remove the risks.
 In spiral model, customer is involved in each and every phase so that the quality and satisfaction
levels of customer are maintained in each phase.
1. Communication: By communicating with customer, we can gather all the requirements.

2. Planning: It defines work schedule and takes decisions on budgets and persons in the team.

3. Modeling: It is a design or diagrammatic representation of the system.

4. Construction: Based on the design, a code is developed and it is tested.

5. Deployment :The product is given to customer and feedback is taken

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

5. Incremental Process model

 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:

AGILE methodology is a practice that promotes continuous iteration of development and


testing throughout the software development lifecycle of the project. In the Agile model, both
development and testing activities are concurrent, unlike the Waterfall model.
Agile is a term used to describe software development approaches that employ continual
planning, learning, improvement, team collaboration, evolutionary development, and early
delivery. It encourages flexible responses to change.
The agile software development emphasizes on four core values.
1. Individual and team interactions over processes and tools
2. Working software over comprehensive documentation
3. Customer collaboration over contract negotiation
4. Responding to change over following a plan
Agile Model Vs Waterfall Model

Agile Model Waterfall Model


It takes an Iterative approach. It takes Sequential approach.
It works well when the scope of the project It works well when the scope of the project is
is unknown. known beforehand.
It allows changes to be made as it starts
The contract team won’t allow changes to be
with a simple design which is divided into
made as the process is sequential.
small modules.
Customer availability is important through Customer availability is required only at set
the entire project. milestones.
Testers and developers work together. Testers work separately from developers.
Products are tested thoroughly for bugs Testing cannot be done during development
and errors during the development cycle. cycle, but only at the end.
At the end of every sprint, user acceptance User acceptance is performed at the end of the
is performed. project.

In agile testing when an iteration end,


All features developed are delivered at once
shippable features of the product is
after the long implementation phase.
delivered to the customer.
Agile Process

Agile process model to deliver successful systems quickly

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:

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.
Artifacts of the life-cycle of software are generally organized and divided into two sets:
Management set and Engineering set. Further these sets are divided / partitioned into five distinct
sets: Management, Requirements, Design, Implementation, and Deployment. The artifact
sets are shown in Figure.
• Management Set: The management set captures the artifacts associated with process planning
and execution. Management artifacts are evaluated, assessed and measured through a
combination of :
1. Relevant Stakeholder Review
2. Analysis of changes between the current version artifact and previous version artifact
3. Major milestones demonstrations of the balance among all artifacts
• Engineering Set: The engineering sets consist of the requirements set, the design set, the
implementation set, and the deployment set.
1. Requirement Set: This set is primarily used for evaluating other three artifact sets of
engineering set and basis of test cases. Artifacts of this set are evaluated, checked, and
measured through combination of following:
 Analysis of consistency among present vision and requirements models.
 Analysis of consistency with supplementary specifications of management set.
 Analysis of consistency among requirement models.

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:

1. Management Workflow: Some of the essential steps of controlling process are


carried out in management workflow.

2. Environment Workflow: Automating the process to coordinate and integrate tools


and people with process through workflow which in terms reduces human errors and enables
faster development with faster resource allocation and response to the issues.

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.

5. Implementation Workflow: In this workflow the implementation of the designs and


architectures are done by programming the components.

6. Assessment Workflow: Product quality assessment is carried here by analyzing quality


attributes of the product and defect management of the product.

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.

You might also like