0% found this document useful (0 votes)
30 views69 pages

CH 2

Uploaded by

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

CH 2

Uploaded by

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

Fundamental of Software

Development

Unit – II

Software Life cycle models

Compiled by :
Amisha D. Patel
Lecturer in Info.Tech.
G. P. Valsad.
Learning Outcomes
After actively interacting with the content, you will be able to:
➢ Explain about SDLC life cycle.
➢ Discuss about waterfall model and Iterative waterfall model.
➢ Discuss about Incremental Model and Prototype Model.
➢ Discuss about RAD Model and Spiral Model.
➢ Discuss about Agile process and principal.
➢ Compare Agile development with traditional models.
➢ Discuss about Extreme programming(XP) Model.
➢ Discuss about Scrum Model.

CO2 : Select appropriate software process model for software project development.
Software Process models
➢ A software process model is a road map that helps you create a
timely, high-quality software.
➢ Aim to produce a high quality software that meets customer
expectation.
➢ Each process model followed the SDLC
“Describing how to develop, maintain, replace and alter or
enhance specific software”
Waterfall Model
➢ Winston Royce introduced the Waterfall Model in 1970.
➢ This model has five phases: Requirements analysis and specification,
design, implementation, and unit testing, integration and system
testing, and operation and maintenance.
➢ The steps always follow in this order and do not overlap. The developer
must complete every phase before the next phase begins.
➢ This model is named "Waterfall Model", because its diagrammatic
representation resembles a cascade of waterfalls.
Waterfall Model
When to use SDLC Waterfall Model?
Some Circumstances where the use of the Waterfall model is most suited are:
➢ When the requirements are constant and not changed regularly.
➢ A project is short
➢ The situation is calm
➢ Where the tools and technology used is consistent and is not changing
➢ When resources are well prepared and are available to use.
Advantages of Waterfall model
➢ simple to implement.
➢ The requirements are simple and explicitly declared; they remain unchanged
during the entire project development.
➢ Stages are well defined.
➢ Verification at each stage ensures early detection of
errors/misunderstanding.
➢ Each phase has specific deliverables.
➢ The release date for the complete product, as well as its final cost, can be
determined before development.
Disadvantages of Waterfall model
➢ Very difficult to go back to any stage after it finished.
➢ This model cannot accept the changes in requirements during development.
➢ This model is not suitable for more significant and complex projects.
➢ A working version of the program will not be available until late in the project
time-span.
Iterative Waterfall Model
➢ In a practical software development project, the classical waterfall model is
hard to use.
➢ So, the Iterative waterfall model can be thought of as incorporating the
necessary changes to the classical waterfall model to make it usable in
practical software development projects.
➢ It is almost the same as the classical waterfall model except some changes
are made to increase the efficiency of the software development.
➢ The iterative waterfall model provides feedback paths from every phase to its
preceding phases, which is the main difference from the classical waterfall
model.
Iterative Waterfall Model
Advantages of Iterative Waterfall Model :
➢ Feedback Path
➢ Simple
➢ Cost-Effective
➢ Well-organized
Drawbacks of Iterative Waterfall Model :
➢ Difficult to incorporate change requests
➢ Incremental delivery not supported
➢ Overlapping of phases not supported
➢ Risk handling not supported
➢ Limited customer interactions
Incremental Model

p3

p4 p2
p1
Incremental Model
✓ All requirement knows
✓ Requirements divided into multiple standalone modules of the software
development cycle.
✓ Each module goes through the requirements, design, implementation and testing
phases.
✓ Every subsequent release of the module adds function to the previous release.
✓ Combines the advantages of both waterfall and prototype models.
✓ System will be delivered in parts
✓ The first increment is often a core Product. That is, basic requirements are addressed
but many supplementary features remain undelivered.
Incremental Model

Can be implemented with fewer people


ADVANTAGES
✓ Generates working software quickly and early during the software life cycle.
✓ This model is more flexible – less costly to change scope and requirements.
✓ It is easier to test and debug during a smaller iteration.
✓ In this model customer can respond to each built.
✓ Lowers initial delivery cost.
✓ Easier to manage risk because risky pieces are identified and handled during
it’d iteration.
DISADVANTAGES
✓ Needs good planning and design.
✓ Needs a clear and complete definition of the whole system before it can be
broken down and built incrementally.
✓ Total cost is higher than waterfall.
Incremental Model
When to use the Incremental model
✓ When the requirements of the complete system are clearly defined and understood.

✓ Major requirements must be defined; however, some details can evolve with time.

✓ There is a need to get a product to the market early.

✓ A new technology is being used Resources with needed skill set are not available

Problem

✓ User inconveniency
Prototype model
• Steps of Prototype Model
1.Requirement Gathering and Analyst
2.Quick Decision
3.Build a Prototype
4.Assessment or User Evaluation
5.Prototype Refinement
6.Engineer Product
Prototype model
Advantage
1. Reduce the risk of incorrect user requirement

2. Good where requirement are changing/uncommitted

3. Regular visible process aids management

4. Support early product marketing

5. Reduce Maintenance cost.

6. Errors can be detected much earlier as the system is made side by side.
Disadvantage
1. An unstable/badly implemented prototype often becomes the final product.
2. Require extensive customer collaboration
1. Costs customer money
2. Needs committed customer
3. Difficult to finish if customer withdraw
4. May be too customer specific, no broad market

3. Difficult to know how long the project will last.


4. Easy to fall back into the code and fix without proper requirement analysis, design, customer
evaluation, and feedback.
5. Prototyping tools are expensive.
6. Special tools & techniques are required to build a prototype.
7. It is a time-consuming process.
RAD model
➢ RAD is a Rapid Application Development model.

➢ Using the RAD model, software product is developed in a short period of time (60 to 90
days).

➢ The initial activity starts with the communication between customer and developer.

➢ Planning depends upon the initial requirements and then the requirements are divided into
groups.

➢ Planning is more important to work together on different modules.


RAD model
RAD model
1. Business Modeling :

✓ Business modeling consist of the flow of information between various functions in the project.

✓ For example what type of information is produced by every function and which are the functions to
handle that information.

2. Data modeling:

✓ The information in the business modeling phase is refined into the set of objects and it is essential
for the business.

✓ The attributes of each object are identified and define the relationship between objects.

3. Process modeling :

✓ The data objects defined in the data modeling phase are changed to fulfil the information flow to
implement the business model.

✓ The process description is created for adding, modifying, deleting or retrieving a data object.
RAD model
4. Application generation :
✓ In the application generation phase, the actual system is built.
✓ To construct the software the automated tools are used.
5. Testing and turnover :
✓ The prototypes are independently tested after each iteration so that the
overall testing time is reduced.
✓ The data flow and the interfaces between all the components are are fully
tested. Hence, most of the programming components are already tested.
When to use RAD Methodology?
➢ When a system needs to be produced in a short span of time (2-3 months)
➢ When the requirements are known
➢ When the user will be involved all through the life cycle
➢ When technical risk is less
➢ When there is a necessity to create a system that can be modularized in 2-3
months of time
➢ When a budget is high enough to afford designers for modeling along with
the cost of automated tools for code generation
Advantages of RAD Model Disadvantages of RAD Model
• Flexible and adaptable to changes • It can’t be used for smaller projects
• It is useful when you have to reduce the overall
• Not all application is compatible with RAD
project risk
• It is adaptable and flexible to changes • When technical risk is high, it is not suitable

• It is easier to transfer deliverables as scripts, high- • If developers are not committed to delivering
level abstractions and intermediate codes are used software on time, RAD projects can fail

• Reduced features due to time boxing, where


• Due to code generators and code reuse, there is a
features are pushed to a later version to finish a
reduction of manual coding
release in short period
• Reduced scalability occurs because a RAD developed
• Due to prototyping in nature, there is a possibility of
application begins as a prototype and evolves into a
lesser defects
finished application
• Progress and problems accustomed are hard to track
• Each phase in RAD delivers highest priority
as such there is no documentation to demonstrate
functionality to client
what has been done
• With less people, productivity can be increased in
• Requires highly skilled designers or developers
short time
Spiral Model
➢ The spiral model was described by Barry Boehm in 1986 is a combination of
iterative development method and sequential improvement model.
➢ Spiral model is a risk driven process model which means the overall project’s
success depends on the risk analysis phase.
➢ The spiral model is one of the oldest types of software development lifecycle
(SDLC), where the development process is carried out, incrementally and
iteratively in a systematic and speedy way.
Architecture diagram of Spiral
Model
Architecture diagram of Spiral
Model
Spiral Model
1. Planning
• This phase includes the planning process, tasks, resource defining, team
planning, timelines and gathering of other project related information.
Planning phase includes the estimating costs, schedule for iteration. Once the
planning finalizes the team proceed to the next step i.e., Risk Analysis.
2. Risk Analysis
• In Risk Analysis phase, the project prototype is put up for the solution. All the
planning which is being planned in planning phase is proceed with the risk
analysis phase to overcome the problems and risks at the beginning stage of
project development. Technical and management risk are the factors that
include in the risk analysis phase.
Spiral Model
3. Engineering & Execution
• In this phase, the execution part is being done by engineers and developers.
The planning and risk analysis once finalized is being proceed in the execution
phase where all the coding, testing and deploying of software takes place.
4. Evaluation
• In evaluation phase, the product is being assessed by the client and provided
with the revert if any changes required from client side. Evaluation phase
includes all the above phases whether it is about planning, risk analysis,
engineering & execution the client goes through each phase for evaluating
the product or software.
Advantages of Spiral Model
➢ Well suited for large, bulky, and complex software/projects which are also handled well
strategically.
➢ Early production of the software in the software life cycle.
➢ There is proper control over all the phases of development.
➢ There is also a proper evaluation of risk.
➢ Additional features are introduced systematically.
➢ There is room for feedback from customers; and if there are any changes, it is quickly
implemented.
➢ The development of the phases is fast.
➢ The model is flexible when specific requirements are needed at the latter stages of the project
development.
➢ Easy estimation of cost because the prototype development can be divided into small pieces.
Disadvantages of Spiral Model
➢ we may not be able to estimate the end of the project as early as required.
➢ There are a large number of intermediate stages which require excessive documentation.
➢ The process is a complex one.
➢ Management is a more complex process.
➢ The model is not suitable for low-risk and small projects because the cost may be high.
➢ The success of the project is highly dependent on the risk assessment protocols.
➢ Difficulty in identifying testable milestones and goals of the project.
When to use Spiral model.
• When costs and risk evaluation is important
• For medium to high-risk projects
• Long-term project commitment unwise because of potential changes to
economic priorities
• Users are unsure of their needs
• Requirements are complex
• New product line
• Significant changes are expected (research and exploration)
Examples of Spiral Model
• The examples of spiral model are that Microsoft used it to develop early
versions of Windows.
• Working on the missiles or satellites is the real time example of a spiral
model. he risk associated and cumulative costs both are the very important
aspect of the missiles.
• The Gantt chart software was also made using spiral model.
• Game development is another industry who uses spiral model to develop the
games. As the gaming industry highly depend upon the early versions, at such
time spiral model is a solid option. With spiral model, the game development
industries can get the feedback from their customers at fast and can develop
the game as per their convenient.
Agile Development
• 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.
• At the end of the iteration a working product is displayed to the customer
and important
stakeholders.
4 values of Agile Manifesto
12 Principles of Agile Manifesto
➢ Customer satisfaction through continuous delivery of the product

➢ Divide large chunks of work into smaller and achievable tasks for quicker
completion and easier integration of changes

➢ Adhere to the decided timeframe for the delivery of a working product

➢ All stakeholders must frequently collaborate to ensure that the project is


going in the correct direction

➢ Create a supportive environment to motivate team members and


encouraging them to get the job done

➢ Prefer face-to-face communication over other methods


12 Principles of Agile Manifesto
➢ Working software is the primary measure of progress

➢ Try to maintain a constant pace of development

➢ Maintain the quality of the product by paying attention to technical details

➢ Maintain simplicity

➢ Promote self-organization in the team

➢ Regularly reflect on your performance for continuous improvement


Advantages
➢ Frequent Delivery
➢ Face-to-Face Communication with clients.
➢ Efficient design and fulfils the business requirement.
➢ Anytime changes are acceptable.
➢ It reduces total development time.
Disadvantages
➢ Depends heavily on customer interaction, so if customer is not clear, team can be driven in
the wrong direction.

➢ Due to the shortage of formal documents, it creates confusion and crucial decisions taken
throughout various phases can be misinterpreted at any time by different team members.

➢ Due to the lack of proper documentation, once the project completes and the developers
allotted to another project, maintenance of the finished project can become a difficulty.

➢ Transfer of technology to new team members may be quite challenging due to lack of
documentation.
When to use the Agile Model?
• When frequent changes are required.
• When a highly qualified and experienced team is available.
• When a customer is ready to have a meeting with a software team all the
time.
• Suitable for small to medium systems and teams. Not suitable for large
systems (except FDD).
Agile Methods
➢ Scrum Model
➢ Crystal
➢ Dynamic Software Development Method(DSDM)
➢ Feature Driven Development(FDD)
➢ Lean Software Development
➢ Extreme Programming(XP)
Extreme programming(XP) Model
• XP is a lightweight, efficient, low-risk, flexible, predictable, scientific, and fun
way to develop a software.
• Small and medium sized teams that work under unclear and rapidly changing
requirements.
• Follows object oriented approach.
Extreme programming(XP) Model
Planning
➢ Start with creation of set of stories.
➢ Describe required features and functionalities.
➢ Customer will give priority to each user story.
➢ XP team will access each story and cost.
➢ Stories with highest priority will be developed first.
Extreme programming(XP) Model
Design
➢ It should be as simple as possible.
➢ CRC(class-responsibility-collaboration) they identify and organize the object
oriented classes relevant to current software increment.
➢ Spike solution: A spike solution is a very simple program to explore potential
solutions. Difficult design should be modeled using prototype.
Extreme programming(XP) Model
Coding
➢ Pair Programming: All production code is written by two programmers sitting
at one machine. Essentially, all code is reviewed as it is written.
➢ Refactoring: Improve the internal structure of the code but external behavior
not affected.
Extreme programming(XP) Model
Testing
Software Testing is a method to check whether the actual software product
matches expected requirements and to ensure that software product is Defect
free.
Extreme programming(XP) Model
Advantages Disadvantages
➢ Fewer documentation required. ➢ Depends heavily on customer
interaction.
➢ Collaboration with customers.
➢ Transfer of technology to new team
➢ Flexibility to developers. members may be quite challenging
➢ Easy to manage. due to lake of documentation.
Scrum Model
• Scrum is an agile development methodology used in the development of
Software based on an iterative and incremental processes.
• Scrum is adaptable, fast, flexible and effective agile framework that is
designed to deliver value to the customer throughout the development of
the project.
• The primary objective of Scrum is to satisfy the customer’s need through an
environment of transparency in communication, collective responsibility and
continuous progress. The development starts from a general idea of ​what
needs to be built, elaborating a list of characteristics ordered by priority
(product backlog) that the owner of the product wants to obtain.
Roles of Scrum
Scrum master Product Owner Development Team
➢ Facilitate daily Scrum meetings •
(also called “daily standups”). ➢ Manage the product backlog ➢ Help in sprint planning and
➢ Lead sprint planning meetings. by ordering work by priority
➢ Conduct “retrospective” goal setting
reviews to see what went well ➢ Set the product vision for ➢ Lend expertise to program,
and what can be improved for the team
the following sprint. design, or improve products
➢ Keep a pulse on team ➢ Communicate with external ➢ Use data to find best
members, through individual stakeholders and translate
meetings or other means of their needs to the team practices for development
communication. ➢ Test products and
➢ Manage obstacles that arise ➢ Make sure the team is
for the team by focused on hitting product prototypes, plus other
communicating with needs through forms of quality assurance
stakeholders outside of the communication and
team. evaluating progress
Phases of Scrum
• The Five Phases of Scrum are:
1. Initiation
2. Planning and estimation
3. Implementation
4. Reviewing
5. Releasing
5 values of Scrum
Scrum principles
• The Six Scrum Principles are:
1. Control over the empirical process
2. Self-organization
3. Collaboration
4. Value-based prioritization
5. Time-boxing
6. Iterative development
Advantages of Scrum
➢ Scrum can help teams complete project deliverables quickly and efficiently
➢ Scrum ensures effective use of time and money
➢ Large projects are divided into easily manageable sprints
➢ Developments are coded and tested during the sprint review
➢ Works well for fast-moving development projects
➢ The team gets clear visibility through scrum meetings
➢ Scrum, being agile, adopts feedback from customers and stakeholders
➢ Short sprints enable changes based on feedback a lot more easily
➢ The individual effort of each team member is visible during daily scrum meetings
Disadvantages of Scrum
➢ Scrum often leads to scope creep, due to the lack of a definite end-date
➢ The chances of project failure are high if individuals aren't very committed or
cooperative
➢ Adopting the Scrum framework in large teams is challenging
➢ The framework can be successful only with experienced team members
➢ Daily meetings sometimes frustrate team members
➢ If any team member leaves in the middle of a project, it can have a huge negative
impact on the project
➢ Quality is hard to implement until the team goes through an aggressive testing
process
Waterfall Iterative Incremental Prototype RAD model Spiral Agile model
Model waterfall model model Model
model
Basic basic Module by User Time and High risk Flexible
Module requirement cost projects
delivery s are not constraints
clear
Rigid Problem is Easy to test No early High user Not for Advanced
well and debug lock on involvement small
understood requirement s projects
s
Inflexible Feedback User High user Reusability No lock of Parallel
path requirement involvement requirement
s lock s
Problem is Reusability Less Process
well Experience divide into
understood person can Sprint
work
Thank You

You might also like