Software Life Cycle Models
Software Life Cycle Models
:3
PRACTICAL - 3
AIM: Study about various Software Life cycle models.
1. Classical Waterfall Model
Phases:-
1.Feasibility study
2.Requirement analysis and specification
3.Design
4.Coding and unit testing
5.Integration and system testing
6.Maintenance
3. Implementation − With inputs from the system design, the system is first developed
in small programs called units, which are integrated in the next phase. Each unit is
developed and tested for its functionality, which is referred to as Unit Testing.
4. Integration and Testing − All the units developed in the implementation phase are
integrated into a system after testing of each unit. Post integration the entire system is
tested for any faults and failures.
5. Deployment of system − Once the functional and non-functional testing is done; the
product is deployed in the customer environment or released into the market.
6. Maintenance − There are some issues which come up in the client environment. To
fix those issues, patches are released. Also to enhance the product some better
versions are released. Maintenance is done to deliver these changes in the customer
environment.
Advantages:-
1. Simple and easy to understand and use
2. Easy to manage due to the rigidity of the model. Each phase has specific deliverables
and a review process.
3. Phases are processed and completed one at a time.
4. Works well for smaller projects where requirements are very well understood.
5. Clearly defined stages.
6. Well understood milestones.
7. Easy to arrange tasks.
8. Process and results are well documented.
Disadvantages:-
1. No working software is produced until late during the life cycle.
2. High amounts of risk and uncertainty.
3. Not a good model for complex and object-oriented projects.
4. Poor model for long and ongoing projects.
5. Not suitable for the projects where requirements are at a moderate to high risk of
changing. So, risk and uncertainty is high with this process model.
6. It is difficult to measure progress within stages.
7. Cannot accommodate changing requirements.
8. Adjusting scope during the life cycle can end a project.
Advantages:-
1. Some working functionality can be developed quickly and early in the life cycle.
2. Results are obtained early and periodically.
3. Parallel development can be planned.
4. Progress can be measured.
5. Less costly to change the scope/requirements.
6. Testing and debugging during smaller iteration is easy.
7. Risks are identified and resolved during iteration; and each iteration is an easily managed
milestone.
8. Easier to manage risk - High risk part is done first.
9. With every increment, operational product is delivered.
10. Issues, challenges and risks identified from each increment can be utilized/applied to the
next increment.
11. Risk analysis is better.
1. This model can be used when the requirements of the complete system are clearly defined
and understood.
2. Major requirements must be defined; however, some details can evolve with time.
3. There is a need to get a product to the market early.
4. A new technology is being used
5. Resources with needed skill set are not available
6. There are some high risk features and goals.
3. Prototype Model:-
Advantages:
1. Increased user involvement in the product even before its implementation.
2. Since a working model of the system is displayed, the users get a better understanding
of the system being developed.
3. Reduces time and cost as the defects can be detected much earlier.
4. Quicker user feedback is available leading to better solutions.
5. Missing functionality can be identified easily.
6. Confusing or difficult functions can be identified.
Disadvantages:
1. Risk of insufficient requirement analysis owing to too much dependency on the
prototype.
2. Users may get confused in the prototypes and actual systems.
3. Practically, this methodology may increase the complexity of the system as scope of
the system may expand beyond original plans.
4. Developers may try to reuse the existing prototypes to build the actual system, even
when it is not technically feasible.
5. The effort invested in building prototypes may be too much if it is not monitored
properly.
4. Spiral Model:-
Phases:-
1. Planning Phase: Requirements are gathered during the planning phase.
Requirements like ‘BRS’ that is ‘Bussiness Requirement Specifications’ and ‘SRS’
that is ‘System Requirement specifications’.
2. Risk Analysis: In the risk analysis phase, a process is undertaken to identify risk and
alternate solutions. A prototype is produced at the end of the risk analysis phase. If
any risk is found during the risk analysis then alternate solutions are suggested and
implemented.
3. Engineering Phase: In this phase software is developed, along with testing at the end
of the phase. Hence in this phase the development and testing is done.
4. Evaluation phase: This phase allows the customer to evaluate the output of the
project to date before the project continues to the next spiral.
Advantages:-
Disadvantages:-
5.Scrum model:-
Scrum 3 rules:-
1.Software owner
2.Scrum master
3.Team member
1. Software Owner: The Product Owner should be a person with vision, authority, and
availability. The Product Owner is responsible for continuously communicating the
vision and priorities to the development team.
It’s sometimes hard for Product Owners to strike the right balance of involvement.
Because Scrum values self-organization among teams, a Product Owner must fight the urge to
micro-manage. At the same time, Product Owners must be available to answer questions from
the team.
2. Scrum Master: The Scrum Master acts as a facilitator for the Product Owner and the
team. The Scrum Master does not manage the team. The Scrum Master works to remove
any impediments that are obstructing the team from achieving its sprint goals. This helps
the team remain creative and The Example Scrum productive while making sure its
successes are visible to the Product Owner. Master’s Checklist The Scrum Master also
works to advise the Product Owner about how to maximize ROI for the team.
3. Team member: According to Scrum’s founder, “the team is utterly self managing.” The
development team is responsible for self organizing to complete work. A Scrum
development team contains about seven fully dedicated members (officially 3-9), ideally
in one team room protected from outside distractions. For software projects, a typical
team includes a mix of software engineers, architects, programmers, analysts, QA
experts, testers, and UI designers. Each sprint, the team is responsible for determining
how it will accomplish the work to be completed. The team has autonomy and
responsibility to meet the goals of the sprint.
Advantages:-
11. The overhead cost in terms of process and management is minimal thus leading to a
quicker, cheaper result.
Disadvantages:-
1. Agile Scrum is one of the leading causes of scope creep because unless there is a definite
end date, the project management stakeholders will be tempted to keep demanding new
functionality is delivered.
2. If a task is not well defined, estimating project costs and time will not be accurate. In
such a case, the task can be spread over several sprints.
3. If the team members are not committed, the project will either never complete or fail.
4. It is good for small, fast moving projects as it works well only with small team.
5. This methodology needs experienced team members only. If the team consists of people
who are novices, the project cannot be completed in time.
6. Scrum works well when the Scrum Master trusts the team they are managing. If they
practice too strict control over the team members, it can be extremely frustrating for
them, leading to demoralisation and the failure of the project.
7. If any of the team members leave during a development it can have a huge inverse effect
on the project development
8. Project quality management is hard to implement and quantify unless the test team are
able to conduct regression testing after each sprint.
Agile SDLC model is a combination of iterative and incremental process models with focus
on process adaptability and customer satisfaction by rapid delivery of working software product.
Agile Methods break the product into small incremental builds. These builds are provided in
iterations. Each iteration typically lasts from about one to three weeks. Every iteration involves
cross functional teams working simultaneously on various areas like planning, requirements
analysis, design, coding, unit testing, and acceptance testing.
Advantages:
1. Is a very realistic approach to software development
2. Promotes teamwork and cross training.
3. Functionality can be developed rapidly and demonstrated.
4. Resource requirements are minimum.
5. Suitable for fixed or changing requirements
6. Delivers early partial working solutions.
7. Good model for environments that change steadily.
Disadvantages:
1. Not suitable for handling complex dependencies.
2. More risk of sustainability, maintainability and extensibility.
3. An overall plan, an agile leader and agile PM practice is a must without which it will not
work.
4. Strict delivery management dictates the scope, functionality to be delivered, and
adjustments to meet the deadlines.
5. Depends heavily on customer interaction, so if customer is not clear, team can be driven
in the wrong direction.
6. There is very high individual dependency, since there is minimum documentation
generated.
7. Transfer of technology to new team members may be quite challenging due to lack of
documentation.
Questions:
1) Write one example of software project that would be amenable to the classical
waterfall model.
The waterfall model is appropriate for projects with the following characteristics:
(3) it's unlikely that major changes in requirements will be requested as the project proceeds.
Example is:
2) What is the difference between incremental process model and evolutionary process
model?
Increment Model:
Incremental Development is a practice where the system functionalities are sliced into
increments (small portions).
In each increment, a vertical slice of functionality is delivered by going through all the
activities of the software development process, from the requirements to the deployment.
Incremental Development (adding) is often used together with Iterative Development
(redo) in software development.
Requirement are develop need wise.
Model is usefull for customer.
RAD model is example of it.
Evolutionary Model:
Evolutionary iterative development implies that the requirements, plan, estimates, and
solution.
Evolutionary methods are consistent with the pattern of unpredictable discovery and
change in new product development.
Requirements are develope category wise.
Every Modal is not usefull for the customer.
Prototype and spiral model are example of it.
3) Give the comparison of all life cycle models.
Features Waterfall Prototyping Incremental RAD Spiral
Involvement
flexible
Security
& Training
sssRequired
5) State the parameters to choose suitable life cycle model for any system.
Selecting a Software Development Life Cycle (SDLC) methodology is a challenging task for
many organizations. What tends to make it challenging is the fact that few organizations know
what criteria to use in selecting a methodology to add value to the organization. Fewer still
understand that a methodology might apply to more than one Lifecycle Model.
How to select the right SDLC
Selecting the right SDLC is a process in itself that organization can implement internally or
consult for. There are some steps to get the right selection:
STEP 1: Learn the about SDLC Models
SDLCs are the same in their usage, advantages, and disadvantages. In order to select the right
SDLC, one must have experience and be familiar with the SDLCs that will be chosen.
STEP 2: Assess the needs of Stakeholders
We must study the business domain, user requirements, business priorities, and technology
constraints to be able to choose the right SDLC against their selection criteria.
STEP 3: Define the criteria
Some of the selection criteria or questions that you may use to select an SDLC are:
Is the SDLC appropriate for the size of our team and their skills?
Is the SDLC appropriate with the selected technology we use for implementing the solution?
Is the SDLC appropriate with client and stakeholders need and priorities
Is the SDLC appropriate for the geographical situation (co-located or geographically dispersed)?
Is the SDLC appropriate for the size and complexity of our software?
Iterative
V- Evolutionary and Agile
Factors Waterfall Shaped Prototyping Spiral Incremental Methodologies
Unclear User
Requirement Poor Poor Good Excellent Good Excellent
Unfamiliar
Technology Poor Poor Excellent Excellent Good Poor
Complex
System Good Good Excellent Excellent Good Poor
Short Time
Schedule Poor Poor Good Excellent Excellent Excellent
Strong Project
Management Excellent Excellent Excellent Excellent Excellent Excellent
Visibility of
Stakeholders Good Good Excellent Excellent Good Excellent
Component
reusability Excellent Excellent Poor Poor Excellent Poor
6) Which life cycle model is/are widely used in software industry nowadays?
Now a days most Widely Used SDLC Model in Industries is Agile Model. In Agile Model there
is a Story, Scrums. This model is used for short release like release in 15 -20 days. Requirement
can be changes at any phase. No more Documentation in that.