0% found this document useful (0 votes)
122 views

Software Life Cycle Models

The systems development life cycle (SDLC), also referred to as the application development life-cycle, is a term used in systems engineering, information systems and software engineering to describe a process for planning, creating, testing, and deploying an information system.[1] The systems development lifecycle concept applies to a range of hardware and software configurations, as a system can be composed of hardware only, software only, or a combination of both.[2] There are usually six stages in this cycle: analysis, design, development and testing, implementation, documentation, and evaluation.

Uploaded by

umang patel
Copyright
© © All Rights Reserved
0% found this document useful (0 votes)
122 views

Software Life Cycle Models

The systems development life cycle (SDLC), also referred to as the application development life-cycle, is a term used in systems engineering, information systems and software engineering to describe a process for planning, creating, testing, and deploying an information system.[1] The systems development lifecycle concept applies to a range of hardware and software configurations, as a system can be composed of hardware only, software only, or a combination of both.[2] There are usually six stages in this cycle: analysis, design, development and testing, implementation, documentation, and evaluation.

Uploaded by

umang patel
Copyright
© © All Rights Reserved
You are on page 1/ 15

2IT602-Software EngineeringPractical No.

: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

1. Requirement Gathering and analysis − All possible requirements of the system to


be developed are captured in this phase and documented in a requirement
specification document.
2. System Design − The requirement specifications from first phase are studied in this
phase and the system design is prepared. This system design helps in specifying
hardware and system requirements and helps in defining the overall system
architecture.

Bansari Patel[15012021024] Page 1


2IT602-Software EngineeringPractical No.:3

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.

 When to use Model?:-


1. This model is used only when the requirements are very well known, clear and fixed.
2. Product definition is stable.
3. Technology is understood.
4. There are no ambiguous requirements
5. Ample resources with required expertise are available freely

Bansari Patel[15012021024] Page 2


2IT602-Software EngineeringPractical No.:3

6. The project is short.

2. Incremental Process Model

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

Bansari Patel[15012021024] Page 3


2IT602-Software EngineeringPractical No.:3

12. It supports changing requirements.


13. Initial Operating time is less.
14. Better suited for large and mission-critical projects.
15. During the life cycle, software is produced early which facilitates customer evaluation
and feedback.
 Disadvantages:-
1. More resources may be required.
2. Although cost of change is lesser, but it is not very suitable for changing requirements.
3. More management attention is required.
4. System architecture or design issues may arise because not all requirements are gathered
in the beginning of the entire life cycle.
5. Defining increments may require definition of the complete system.
6. Not suitable for smaller projects.
7. Management complexity is more.
8. End of project may not be known which is a risk.
9. Highly skilled resources are required for risk analysis.
10. Projects progress is highly dependent upon the risk analysis phase.
 When to use Model?

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

Bansari Patel[15012021024] Page 4


2IT602-Software EngineeringPractical No.:3

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

Bansari Patel[15012021024] Page 5


2IT602-Software EngineeringPractical No.:3

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

1. High amount of risk analysis hence, avoidance of Risk is enhanced.


2. Good for large and mission-critical projects.
3. Strong approval and documentation control.
4. Additional Functionality can be added at a later date.
5. Software is produced early in the software life cycle.

Bansari Patel[15012021024] Page 6


2IT602-Software EngineeringPractical No.:3

 Disadvantages:-

1. Can be a costly model to use.


2. Risk analysis requires highly specific expertise.
3. Project’s success is highly dependent on the risk analysis phase.
4. Doesn’t work well for smaller projects.

 When to use Spiral model:

1. When costs and risk evaluation is important


2. For medium to high-risk projects
3. Long-term project commitment unwise because of potential changes to economic
priorities
4. Users are unsure of their needs
5. Requirements are complex
6. New product line
7. Significant changes are expected (research and exploration)

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

Bansari Patel[15012021024] Page 7


2IT602-Software EngineeringPractical No.:3

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

1. Agile scrum helps the company in saving time and money.


2. Scrum methodology enables project’s where the business requirements
documentation is hard to quantify to be successfully developed.
3. Fast moving, cutting edge developments can be quickly coded and tested using this
method, as a mistake can be easily rectified.
4. It is a lightly controlled method which insists on frequent updating of the progress in
work through regular meetings. Thus there is clear visibility of the project
development.
5. Like any other agile methodology, this is also iterative in nature. It requires continuous
feedback from the user.
6. Due to short sprints and constant feedback, it becomes easier to cope with the changes.
7. Daily meetings make it possible to measure individual productivity. This leads to the
improvement in the productivity of each of the team members.
8. Issues are identified well in advance through the daily meetings and hence can be
resolved in speedily
9. It is easier to deliver a quality product in a scheduled time.
10. Agile Scrum can work with any technology/ programming language but is particularly
useful for fast moving web 2.0 or new media projects.

Bansari Patel[15012021024] Page 8


2IT602-Software EngineeringPractical No.:3

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.

6.Agile process model

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.

Bansari Patel[15012021024] Page 9


2IT602-Software EngineeringPractical No.:3

1. Individuals and interactions - in agile development, self-organization and motivation


are important, as are interactions like co-location and pair programming.
2. Working software - Demo working software is considered the best means of
communication with the customer to understand their requirement, instead of just
depending on documentation.
3. Customer collaboration - As the requirements cannot be gathered completely in the
beginning of the project due to various factors, continuous customer interaction is very
important to get proper product requirements.
4. Responding to change - agile development is focused on quick responses to change and
continuous development.

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

Bansari Patel[15012021024] Page 10


2IT602-Software EngineeringPractical No.:3

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

 When to use Model:


1. When new changes are needed to be implemented. The freedom agile gives to change is very
important. New changes can be implemented at very little cost because of the frequency of new
increments that are produced.
2. To implement a new feature the developers need to lose only the work of a few days, or even only
hours, to roll back and implement it.
3. Unlike the waterfall model in agile model very limited planning is required to get started with the
project. Agile assumes that the end users’ needs are ever changing in a dynamic business and IT
world. Changes can be discussed and features can be newly affected or removed based on
feedback. This effectively gives the customer the finished system they want or need.

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:

(1) the problem is well understood (requirements are well-defined);

(2) the delivery date is realistic;

(3) it's unlikely that major changes in requirements will be requested as the project proceeds.

Example is:

(1) a well understood modification to an existing program;

Bansari Patel[15012021024] Page 11


2IT602-Software EngineeringPractical No.:3

(2) a straightforward implementation of a numerical calculation or business rule, even if it's


complex;

(3) a constrained enhancement to an existing program

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

Requirement Beginning Frequently Beginning Time box Beginning


Specification Changed Released

Cost Low High Low Low Expensive

Guarantee Of Less Good High Good High


Success

Simplicity Simple Simple Intermediate Very Intermediate


Simple

Overlapping No Yes No No Yes


Phases
overlapping

Risk High Low Easily Manage Very Low Low

Bansari Patel[15012021024] Page 12


2IT602-Software EngineeringPractical No.:3

Involvement

Expertise High Medium High Medium High


Required

Change Difficult Easy Easy Easy Easy


Incorporated

User At High Intermediate High High


Involvement Beginning

Flexibility Rigid Highly Less Flexible High Flexible

flexible

Maintenance Least Routine Promoted Easily Typical

Glamorous Maintenance maintainability Maintained

Integrity & Least Weak Robust Vital High

Security

Reusability Limited Weak Yes High High

Documentation Vital Weak Yes Yes Yes

& Training

sssRequired

Time Frame Long Short Very Long Short Long

4) Which model is more suitable for your mini project? Why?

 My mini project is: Hostel gate pass allotment system.


Waterfall model is suitable for this mini project because at the time of requirement analysis we
get all the requirements.

For our mini project no iterative nature is required.

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

Bansari Patel[15012021024] Page 13


2IT602-Software EngineeringPractical No.:3

 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?

 Is the SDLC appropriate for the type of projects we do?

 Is the SDLC appropriate for our engineering capability?

What are the criteria?

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

Reliable system Good Good Poor Excellent Good Good

Short Time
Schedule Poor Poor Good Excellent Excellent Excellent

Bansari Patel[15012021024] Page 14


2IT602-Software EngineeringPractical No.:3

Strong Project
Management Excellent Excellent Excellent Excellent Excellent Excellent

Cost limitation Poor Poor Poor Poor Excellent Excellent

Visibility of
Stakeholders Good Good Excellent Excellent Good Excellent

Skills limitation Good Good Poor Poor Good Poor

Documentations Excellent Excellent Good Good Excellent Poor

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.

Bansari Patel[15012021024] Page 15

You might also like