Lecture 2 (Software Life Cycle Models)
Lecture 2 (Software Life Cycle Models)
• Customers are usually not clear about all the required features and describes
vaguely what is needed.
• This stage where the customer feels a need for the software and forms rough
ideas about the required features is know as inception stage.
Recap: Software Development Life Cycle (SDLC)
Model
“A well-defined and ordered set of identifiable activities/stages for software
development.”
An SDLC graphically depicts the different phases through which a software
evolves. It is usually accompanied by a textual description of different activities
that need to carried out during each phase.
This model is considered suitable for use in projects concerned with development of
safety-critical software systems require high reliability
Recap: Prototyping
Model
• This models suggests to build a working
prototype of the system, before development
of the actual software.
• This helps the customer to experiment with
the prototype to clear its requirements.
• Useful for specific types of projects
• GUI part of an application.
• When exact technical solutions are
unclear to the development team.
• Highly optimized and efficient software.
Why waterfall model-based development process is becoming difficult to use in projects in recent times?
According to Capres Jones, on the average 40% of the requirements arrive after the development has already begun.
Waterfall based models discourage to change the requirements after SRS document has been finalized.
Customized applications/softwares (services) are trending which involves reusing most of the parts of existing
applications. Waterfall based models are not suitable for such applications.
Waterfall based models prescribe minimal customer interactions after the requirements are specified. In fact, the
interactions are largely confined to the project initiation and completion stages.
Agile Development Models
• Was proposed in the mid-1990s to overcome the shortcoming of
waterfall model.
Major aim of agile moles is to facilitate quick project completion.
The distinguishing characteristics of the agile models is the frequent delivery of the
software increments to the customer.
Agile model is an umbrella term used to refer to a set of development processes. These
processes share certain common characteristics but do have certain subtle difference among
themselves.
Best suited
for small
projects
Agile model principles (published in agile manifesto 2011)
• Working software over comprehensive documentation.
• Frequent delivery of incremental versions of the software in intervals of few
weeks.
• Requirements changes are encouraged and efficiently incorporated.
• Face-to-face communication is preferable over the formal documents.
• Customer representatives are required to be a part of the development team, thus
facilitating close, daily co-operation between customer and developers.
https://agilemanifesto.org/iso/en/principles.html
Effectiveness of Face-to-face
at whiteboard
Communication Modes Face-to-face
conversation
Communication Effectiveness Video
conversation
Modeling
Phone Options
conversation
Videotape
Email
conversation
Audiotape
Documentation
Options
Paper
Cold Hot
Richness of Communication Channel
Copyright 2002-2005 Scott W. Ambler
Original Diagram Copyright 2002 Alistair Cockburn
Agile Software Requirements Management
High
{ Each iteration implement the highest-
Priority priority requirements
Requirements may be
reprioritized at any time
Requirements may be
removed at any time
Low
Priority
Requirements Copyright 2004 Scott W. Ambler
Rapid Application Development (RAD) Model
• This model is the amalgamation of both prototyping and evolution models.
• In this model
• First prototype is constructed using initial requirements and delivered to the customer.
• Then, the new features are added into the prototype, incrementally to accommodate new customer
requirements.
• Unlike prototype model, the prototype is not thrown away.
• Working of RAD
• Development takes place in a series of short cycles or iterations running for limited time called
timebox.
• During each timebox, a quick enhancement to a functionality of the prototype is performed.
• Customer evaluates the prototype and gives feedback on the enhancement.
• Development team always have a customer representative working with them.
• This model presses more on short-term planning and heavy reuse of existing code to
expedite the product development.
Suitability and Unsuitability of RAD Model
Suitability
• Customized software are developed by adapting an existing software and tailoring
requirements are obtained as customer feedback.
• Non-critical software, where focus is not to develop a performance optimal and reliable
software and scope of reusing is high.
• Highly constrained project schedule with limited development time. Hence, compromises
can be made in documentation and performance aspects.
Unsuitability
• Generic software with wide distribution where optimal performance and reliability are
imperative to sustain in a competitive market.
• Lack of similar products. If a company never developed similar software, it would hardly
be able to reuse much of existing artifacts.
• Monolithic software cannot have their components divided into parts that can be
incrementally developed and delivered.
Scrum Model
Project is divided into small parts of work that can be incrementally developed and
delivered.
• Each sprint typically generally takes only a couple of weeks (sometime months
as well) to complete
• At the end of each sprint, stakeholder and project team members meet to assess
the progress.
• Feedback is obtained to make required changes or to add new functionality.
Scrum Model
• Requirements are captured as items in a list of product backlog.
Daily
Scrum
Sprint Sprint
planning review
Scrum
Sprint
Product backlog backlog
Initiates a sprint by laying our the work Also know as stand-up meeting. Team
to be performed. Other people can be members provide updates on
invited to ask for advise. • What they worked on pervious day?
Used to represent work
• What they plan to do today?
List of all remaining done.
• What issues they encountered?
work for the project.
List of all remaining
work for a sprint.
Sample Product Backlog
Sprint Burn-down Chart
releases)
Expected
Burn down
Sprint
Summary
• Agile model emphasize face-to-face communication over written documents and
are suited to the development of small projects
• Unlike waterfall model, changes in the requirements are encouraged during the
development process.
• In RAD each increment is performed in much short duration to obtain the fast
prototype (or product) with new/improved feature. Whereas, the incremental
functionalities that are developed using evolutionary model are of larger
granularity.
• In Scrum model, the project is divided into small parts of work that can be
incrementally developed and delivered is small sprints.