2-Spiral Models, SDLC Comparison, Database Models-23-01-2024
2-Spiral Models, SDLC Comparison, Database Models-23-01-2024
(BECE352E)
Module-1
Data Models
02-02-2024 2
*The life cycle of a software represents the series of identifiable stages
through which it evolves during its life time.
A software development life cycle (SDLC) model (also called software life cycle
model and software development process model) describes the different activities
that need to be carried out for the software to evolve in its life cycle.
*software development life cycle (SDLC)/ software development process are used interchangeably.
02-02-2024 3
SDLC - Overview
➢ Software Development Life Cycle (SDLC) is a process used by the
software industry to design, develop and test high quality softwares.
➢ The SDLC aims to produce a high-quality software that meets or
exceeds customer expectations, reaches completion within times and
cost estimates.
▪ It is also called as Software Development Process.
▪ SDLC is a framework defining tasks performed at each step in the
software development process.
▪ ISO/IEC 12207 is an international standard for software life-cycle
processes.
▪ It aims to be the standard that defines all the tasks required for
developing and maintaining software
02-02-2024 4
What is SDLC?
➢SDLC is a process followed for a software project, within a software
organization.
➢It consists of a detailed plan describing how to develop, maintain,
replace and alter or enhance specific software.
➢The life cycle defines a methodology for improving the quality of
software and the overall development process.
02-02-2024 5
The following figure is a graphical representation of the various stages
of a typical SDLC.
Planni
ng
Deploy Definin
ment g
SDLC
Designi
Testing
ng
Buildin
g
02-02-2024 6
Classical Waterfall Model
✓ Classical waterfall model is intuitively the most obvious way to develop
software. It is simple but idealistic.
✓ In fact, it is hard to put this model into use in any non-trivial software
development project, since developers do commit many mistakes during
various development activities many of which are noticed only during a later
phase.
✓ This requires to revisit the work of a previous phase to correct the mistakes,
but the classical waterfall model has no provision to go back to modify the
artifacts produced during an earlier phase.
✓ One might wonder if this model is hard to use in practical development
projects, then why study it at all? The reason is that all other life cycle models
can be thought of as being extensions of the classical waterfall model.
Therefore, it makes sense to first understand the classical waterfall model, in
order to be able to develop a proper understanding of other life cycle models.
02-02-2024 7
02-02-2024 8
On the average, about 60 per cent of the
total effort put in by the development
team in the entire life cycle is spent on the
maintenance activities.
02-02-2024 10
Requirements analysis and specification
The aim of the requirements analysis and specification phase is to understand the
exact requirements of the customer and to document them properly.
✓ Requirements gathering and analysis:
For this, first requirements are gathered from the customer and then the gathered
requirements are analysed. The goal of the requirements analysis activity is to weed
out the incompleteness and inconsistencies in these gathered requirements.
*Note that an inconsistent requirement is one in which some part of the requirement
contradicts some other part. On the other hand, an incomplete requirement is one in
which some parts of the actual requirements have been omitted.
Requirements specification:
✓ After the requirement gathering and analysis activities are complete, the identified
requirements are documented. This document is called a software requirements
specification (SRS) document. The SRS document is written using end-user
terminology. This makes the SRS document understandable to the customer.
✓ The SRS document normally serves as a contract between the development team and
the customer. Any future dispute between the customer and the developers can be
settled by examining the SRS document.
02-02-2024 11
Design
The goal of the design phase is to transform the requirements specified in the SRS
document into a structure that is suitable for implementation in some
programming language. In technical terms, during the design phase the software
architecture is derived from the SRS document.
Procedural design approach:
✓ This traditional design technique is based on data flow modelling. This is
followed by a structured design step where the results of structured analysis are
transformed into the software design.
✓ During structured analysis, the functional requirements specified in the SRS
document are decomposed into subfunctions and the data-flow among these
subfunctions is analysed and represented diagrammatically in the form of
DFDs (Data Flow Design).
✓ Structured design consists of two main activities—architectural design (also
called high-level design) and detailed design (also called Low-level design).
02-02-2024 12
High-level design involves decomposing the system into modules, and
representing the interfaces and the invocation relationships among the
modules. A high-level software design is sometimes referred to as the
software architecture.
During the detailed design activity, internals of the individual modules
such as the data structures and algorithms of the modules are designed
and documented.
02-02-2024 13
Coding and unit testing
✓ The purpose of the coding and unit testing phase is to translate a software
design into source code and to ensure that individually each function is
working correctly.
✓ The coding phase is also sometimes called the implementation phase, since the
design is implemented into a workable solution in this phase.
✓ Each component of the design is implemented as a program module.
✓ The end-product of this phase is a set of program modules that have been
individually unit tested.
✓ The specific activities carried out during unit testing include designing test
cases, testing, debugging to fix problems, and management of test cases.
02-02-2024 14
Integration and system testing
Integration of different modules is undertaken soon after they have
been coded and unit tested. During the integration and system testing
phase, the different modules are integrated in a planned manner.
02-02-2024 15
Maintenance
Many studies carried out in the past confirm this and indicate that the ratio of relative effort
of developing a typical software product and the total effort spent on its maintenance is
roughly 40:60. Maintenance is required in the following three types of situations:
■Corrective maintenance: This type of maintenance is carried out to correct
errors that were not discovered during the product development phase.
■Perfective maintenance: This type of maintenance is carried out to improve
the performance of the system, or to enhance the functionalities of the system
based on customer’s requests.
■Adaptive maintenance: Adaptive maintenance is usually required for porting
the software to work in a new environment. For example, porting may be
required to get the software to work on a new computer platform or with a
new operating system.
02-02-2024 16
Waterfall Model - Advantages
The advantages of waterfall development are that it allows for departmentalization
and control. A schedule can be set with deadlines for each stage of development and
a product can proceed through the development process model phases one by one.
Some of the major advantages of the Waterfall Model are as follows −
➢Simple and easy to understand and use
➢Easy to manage due to the rigidity of the model.
➢Phases are processed and completed one at a time.
➢Works well for smaller projects where requirements are very well understood.
➢Clearly defined stages.
➢Well understood milestones.
➢Easy to arrange tasks.
➢Process and results are well documented.
02-02-2024 17
Waterfall Model - Disadvantages
➢The disadvantage of waterfall development is that it does not allow
much reflection or revision.
➢Once an application is in the testing stage, it is very difficult to go
back and change something that was not well-documented or thought
upon in the concept stage.
➢No working software is produced until late during the life cycle.
➢High amounts of risk and uncertainty.
➢Not a good model for complex and object-oriented projects.
02-02-2024 18
Waterfall Model - Disadvantages
➢Poor model for long and ongoing projects.
➢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.
➢It is difficult to measure progress within stages.
➢Cannot accommodate changing requirements.
02-02-2024 19
Iterative Waterfall Model
–In practice:
• Defects do get introduced in almost every phase of the life cycle.
Iterative Waterfall Model (CONT.)
–The later the phase in which the defect gets detected, the
more expensive is its removal.
Iterative Waterfall Model (CONT.)
little.
Methodology
modules.
For Which Applications RAD is Unsuitable?
In prototyping model:
• The developed prototype is primarily used to gain insights into
the solution
• Choose between alternatives
• Elicit customer feedback.
34
Identify &
Determine Resolve Risks
Objectives
M o d e ling
P h o n e
O p t i o n s
co n v e rs a tion
V i d e ota p e
E m a i l
c o n v e r s a t i o n
A u d i o t a p e
D o c u m e nta tion
O p t i o n s
P a p e r
54
C o l d H ot
R i c h n e s s of C o m m u n i c a t i o n C h a n n e l
C o p y r i g h t 2 0 0 2 - 2 0 0 5 Scott W . A m b l e r
Original D i a g r a m C o p y r i g h t 2 0 0 2 Alistair C o c k b u r n
Agile Model: Principles
E a c h n e w r e q u i r e m e n t is
p r i o r i t i z e d a n d a d d e d t o
t h e s t a c k
R e q u i r e m e n t s m a y b e
r e p r i o r i t i z e d a t a n y t i m e
R e q u i r e m e n t s m a y b e
r e m o v e d a t a n y t i m e
L o w
P r io r ity
R e q u ir e m e n ts
Adoption Detractors
• As regards to similarity:
– We can say that Agile teams use thewaterfall model on
a small scale.
Agile versus RAD Model