CH 2
CH 2
Development
Unit – II
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
✓ Major requirements must be defined; however, some details can evolve with time.
✓ 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
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
➢ 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.
✓ 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
➢ Divide large chunks of work into smaller and achievable tasks for quicker
completion and easier integration of changes
➢ Maintain simplicity
➢ 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