You are on page 1of 8

Software process models- Agile models-SDLC(Software Development Life Cycle)

Software Engineering
Software process models- Agile models-SDLC(Software Development Life Cycle)

Sruthi Rajendran
Msc Computer Science 2nd Semester
Center For Computer Science and
Information Technology
Vatakara, India
sruthirajendran20@gmail.com

Abstract—Software engineering works on different models. • The sashimi formation is a way of organizing a
Models plays most important role while developing any waterfall with feedback.
software. Models may be considered as a skeleton of the • Boehm's spiral Model example uses prototyping as the
software.. There are many development life cycle models that Model for each cycle, and portions of a waterfall Model for
have been developed in order to achieve different required
objectives. The models specify the various stages of the process
the delivered system stage of the prototyping Model
and the order in which they are carried out. Further detail . • An incremental formation often uses a sashimi formation
description of each model is carried out in this paper by for its Produce a build stage. Following is the classification
explaining its importance and pros and cons of the models. of different Software Formation Model.
There are models like waterfall model, Incremental models and 1. Waterfall Model
Evolutionary models. Agile methodology that utilizes iterative 2. Incremental Formation Model
development and prototyping are widely used in variety of 2.1 Incremental Model
industry projects as a light weight development method which 2.2 RAD Model
can satisfy to the changes of requirements. Traditional 3. Evolutionary Formation Model
software development processes are not much efficient to
manage the rapid change in requirements. Despite the
3.1 Prototyping
advantages of Agile, criticism on agile methodology states that 3.2 Spiral Model
it fails to pay attention to architectural and design issues and 3.3 Concurrent Model
therefore is bound to produce small design-decisions. Here, in Agile Methodologies are a group of software development
this paper we identify the impacts that agile methodology has methods that are based on iterative and incremental
on software development processes with respect to quality development. The four major characteristics that are
within the organizational, methodical, and cultural framework. fundamental to all agile methodologies are: adaptive
The software development life cycle (SDLC) is used to design, planning, iterative & evolutionary development, rapid and
develop and produce high quality, reliable, cost effective and flexible response to change and promote communication
within time software products in the software industry. This is
also called software development process model. There are
[1, 2]. Its main emphasis is in obeying the principles of
different SDLC process models are available. The main “Light but sufficient” and being people-oriented and
purpose of this paper is to explain some of important SDLC communication-centered. As it is named as lightweight
models like Waterfall Model, Iterative Model, Spiral Model, V- process, it is more suitable for the development of small
Model, Big Bang Model, Agile Model, Rapid Application projects [3]. Agile software development takes the view
Development Model and Software Prototype. The main that production teams should start with simple and
purpose of this paper is to explain advantages and predictable approximations to the final requirement and
disadvantages of these SDLC models. then continue to increment the detail of these requirements
throughout the life of the development. This incremental
Keywords— Software Models, Waterfall Model, Incremental
Models, Evolutionary models, Agile Model, RAD, Software requirements refinement further refines the design, coding
Prototype, Agile Alliance, Agile Methodology, Crystal Method, and testing at all stages of production activity. In this way,
Extreme Programming, Feature Driven Development, Scrum, the requirements work product is as accurate and useful as
Test Driven Development. the final software itself [4].
All SDLC processes consist of a set of finite activities which
I. INTRODUCTION are used to develop a software product. A SDLC process
contains a complete plan for describing how to design,
A system too large for one person to build is usually also develop, maintain and increase the efficiency of a software
too large to build without an overall plan that coordinates product [5]. The SDLC process describes the methodologies
the people working on it, the tasks that need to be done, and which improves overall software quality and development
the artifacts that are produced. Researchers and practitioners process [6].
have identified a number of software development
formation Models for this coordination. Here are some of 1.WATER FALL MODEL
the main ones. These formation Models are alternatives, but The Waterfall Model was first Process Model to be
not exclusive ones: most describe different aspects of a introduced. It is also referred to as a linear-sequential life
formation, and it is common for a development group to be cycle model. It is very simple to understand and use. In a
following two or more simultaneously. For example, waterfall model, each phase must be completed fully before
Software process models- Agile models-SDLC(Software Development Life Cycle)

the next phase can begin. This type of model is basically • There are no ambiguous requirements
used for the for the project which is small and there are no
uncertain requirements. At the end of each phase, a review • Ample resources with required expertise are
takes place to determine if the project is on the right path available freely
and whether or not to continue or discard the project. In this
model the testing starts only after the development is • The project is short.
complete. In waterfall model phases do not overlap [7].
2. INCREMENTAL FORMATION MODEL

2.1 Incremental Model:-


The model is a method of software development where the
model is designed, implemented and tested incrementally (a
little more is added each time) until the product is finished.
It involves both development and maintenance. The product
is defined as finished when it satisfies all of its
requirements. This model combines the elements of the
waterfall model with the iterative philosophy of prototyping
[10]. The product is decomposed into a number of
components, each of which are designed and built separately
Figure1.Waterfall-model[Adapted from Google image] (termed as builds). Each component is delivered to the client
1.1 Benefit of waterfall model: when it is complete. This allows partial utilization of
• It is simple and easy to understand and use product and avoids a long development time. It also creates
• It is easy to manage due to the rigidity of the a large initial capital outlay with the subsequent long wait
model each phase has specific deliverables avoided. This model of development also helps ease the
and a review process. traumatic effect of introducing completely new system all at
once.
• In this model phases are processed and
complete done at a time. Phases do not
overlap.
• Waterfall model works well for smaller
projects where requirements are very well
understood.
1.2 Shortfalls of waterfall model:
• Once an application is in the testing stage, it is
very difficult to go back and change something Figure2.Incremental-Model[Adapted from Google image]
that was not well-thought out in the concept 2.1.1 Benefit of Incremental Model
stage. • Generates working software quickly and early
• No working software is produced until late during the software life cycle.
during the life cycle. • More flexible – less costly to change scope and
• High amounts of risk and uncertainty. requirements.
• Not a good model for complex and object- • Easier to test and debug during a smaller iteration.
oriented projects. • Easier to manage risk because risky pieces are
• Poor model for long and ongoing projects. identified and handled during its iteration.
• Not suitable for the projects where • Each iteration is an easily managed milestone
requirements are at a moderate to high risk of 2.1.2 Shortfalls of Incremental Model
changing. • Each phase of an iteration is rigid and do not
1.3 When to use the waterfall model: overlap each other.
• Problems may arise pertaining to system
architecture because not all requirements are
• This model is used only when the requirements gathered up front for the entire software life
are very well known, clear and fixed cycle

• Product definition is stable.

• Technology is understood.
Software process models- Agile models-SDLC(Software Development Life Cycle)

2.1.3 When to use Incremental Model • Requires highly skilled


developers/designers.
• Such models are used where requirements are • High dependency on modeling skills
clear and can implement by phase wise. From 2.2.3 When to use RAD model:
the figure it‟s clear that the requirements ® is • RAD should be used when there is a need
divided into R1, R2 to Rn and delivered to create a system that can be modularized in
accordingly. 2-3 months of time.
• It should be used if there‟s high
• Mostly such model is used in web applications
availability of designers for modeling and
and product based companies.
the budget is high enough to afford their cost
2.2 RAD Model along with the cost of automated code
generating tools.
RAD model is Rapid Application Development model. It is
a type of incremental model. In RAD model the components • RAD SDLC model should be chosen only
or functions are developed in parallel as if they were mini if resources with high business knowledge are
projects. The developments are time boxed, delivered and available and there is a need to produce the
then assembled into a working prototype. This can quickly system in a short span of time (2-3 months).
give the customer something to see and use and to provide
feedback regarding the delivery and their requirements. 3. EVOLUTIONARY SOFTWARE FORMATION
MODEL
This approach is based on the idea of rapidly developing an
initial software implementation from very abstract
specifications and modifying this according to your
appraisal. Each program version inherits the best features
from earlier versions. Each version is refined based upon
feedback from yourself to produce a system which satisfies
your needs. At this point the system may be delivered or it
may be reimplemented using a more structured approach to
enhance robustness and maintainability. Specification,
development and validation activities are concurrent with
strong feedback between each. Evolutionary Software
Formation Model of following types of Models
3.1 Prototyping Model
Figure3. RAD Model[Adapted from Google image] The basic idea here is that instead of freezing the
Business modeling: The information flow is identified requirements before a design or coding can proceed, a
between various business functions. throwaway prototype is built to understand the
Data modeling: Information gathered from business requirements. This prototype is developed based on the
modeling is used to define data objects that are needed for currently known requirements. By using this prototype, the
the business. client can get an “actual feel” of the system, since the
Process modeling: Data objects defined in data modeling interactions with prototype can enable the client to better
are converted to achieve the business information flow to understand the requirements of the desired system.
achieve some specific business objective. Description are Prototyping is an attractive idea for complicated and large
identified and created for CRUD of data objects. systems for which there is no manual formation or existing
Application generation: Automated tools are used to system to help determining the requirements. The prototypes
convert process models into code and the actual system. are usually not complete systems and many of the details are
Testing and turnover: Test new components and all the not built in the prototype. The goal is to provide a system
interfaces with overall functionality [8]
2.2.1 Benefit of the RAD model:
• Reduced development time.
• Increases reusability of components
• Quick initial reviews occur
• Encourages customer feedback
• Integration from very beginning solves a
lot of integration issues.
2.2.2 Shortfalls of RAD model:
• Depends on strong team and individual Figure 4.Prototype-Model[Adapted from Google image]
performances for identifying business 3.1.1 Fringe Benefit of Prototype Model:
requirements.
• Users are actively involved in the development
• Only system that can be modularized can
• Since in this methodology a working Model of the
be built using RAD
system is provided, the users get a better
understanding of the system being developed.
Software process models- Agile models-SDLC(Software Development Life Cycle)

• Errors can be detected much earlier.


• Quicker user feedback is available leading to better
solutions.
• Missing functionality can be identified easily
• Confusing or difficult functions can be identified
Requirements validation, Quick implementation of
incomplete application.
3.1.2 Shortfalls of Prototype Model:
• Leads to implementing and then repairing way of
building systems.
• Practically, this methodology may increase the
complexity of the system as scope of the system may
expand beyond original plans. Figure5.Spiral-Model [Adapted from Google
• Incomplete application may cause application not image]
to be used as the full system was designed A Spiral Model, combines the iterative nature
Incomplete or inadequate problem analysis. of prototyping with the controlled and
systematic aspects of the Waterfall Model,
3.1.3 When to use Prototype Model: therein providing the potential for rapid
• Prototype Model should be used when the development of incremental versions of the
desired system needs to have a lot of software. A Spiral Model is divided into a
interaction with the end users. number of framework activities, also called task
• Typically, online systems, web interfaces regions. These task regions could vary from 3-6
have a very high amount of interaction in number and they are:
with end users, are best suited for 3.2.1 Benefit of the Spiral Model:-
Prototype Model. It might take a while for • Realistic approach to the development
a system to be built that allows ease of use because the software evolves as the formation
and needs minimal training for the end progresses. In addition, the developer and the
user. client better understand and react to risks at
• Prototyping ensures that the end users each evolutionary level.
constantly work with the system and • The Model uses prototyping as a risk
provide a feedback which is incorporated reduction mechanism and allows for the
in the prototype to result in a useable development of prototypes at any stage of the
system. They are excellent for designing evolutionary development.
good human computer interface systems • It maintains a systematic stepwise approach,
3.2 The Spiral Model like the classic waterfall Model, and also
The Spiral Model is an evolutionary Software incorporates into it an iterative framework
Formation Model that couples the iterative that more reflect the real world
nature of prototyping with the controlled and 3.2.2 Shortfalls of the Spiral Model :-
systematic aspects of the Linear Sequential • One should possess considerable risk-
Model. Using the Spiral Model the software assessment expertise
is developed in a series of incremental • It has not been employed as much proven
releases. Unlike the Iteration Model where in Models (e.g. the Waterfall Model) and hence
the first product is a core product, in the may prove difficult to „sell‟ to the client.
Spiral Model the early iterations could result 3.3 Concurrent Development
in a paper Model or a prototype. However, Model The concurrent development Model - called
during later iterations more complex concurrent engineering. It provides an accurate state
functionalities could be added [9]. of the current state of a project. Focus on concurrent
engineering activities in a software engineering
formation such as prototyping, analysis Modeling,
requirements specification and design. Represented
schematically as a series of major technical activities,
tasks and their associated states. Defined as a series
of events that trigger transitions from state to state for
each of the software engineering activities. Often
used as the paradigm for the development of
client/server applications. A client/server system is
composed of a set of functional components. When
applied to client/server, the concurrent formation
Model defines activities in two dimensions :
Software process models- Agile models-SDLC(Software Development Life Cycle)

(i) System dimension -System level issues are 1. Requirements gathering


addressed using three activities: design, assembly,
and use. 2. Design the requirements
(ii) The component dimension is addressed with two 3. Construction/ iteration
activities: design and realization.
Two ways to achieve the concurrency: 4. Testing/ Quality assurance
System and component activities occur
simultaneously and can be modeling using the state- 5. Deployment
oriented approach 6. Feedback

Figure7 Agile Model [Adapted from Google image]


Figure6.Concurrency-Model[Adapted from Google
image] 1. Requirements gathering: In this phase, you must define
A typical client/server application is implemented the requirements. You should explain business opportunities
with many components, each can be designed and and plan the time and effort needed to build the project.
realized concurrently. The concurrent formation Based on this information, you can evaluate technical and
Model is applicable to all types of software economic feasibility.
development and provides an accurate picture of the
current state of a project. Rather than confining 2. Design the requirements: When you have identified the
software engineering activities to a sequence of project, work with stakeholders to define requirements. You
events, it defines a network of activities. Each can use the user flow diagram or the high-level UML
activity on the network exists simultaneously with diagram to show the work of new features and show how it
other activities. Events generated within a given will apply to your existing system.
activity or at some other place in the activity network
trigger transitions among the states of an activity[10]. 3. Construction/ iteration: When the team defines the
requirements, the work begins. Designers and developers
II.AGILE MODELS start working on their project, which aims to deploy a
working product. The product will undergo various stages of
The meaning of Agile is swift or versatile."Agile process improvement, so it includes simple, minimal functionality.
model" refers to a software development approach based on
iterative development. Agile methods break tasks into 4. Testing: In this phase, the Quality Assurance team
smaller iterations, or parts do not directly involve long term examines the product's performance and looks for the bug.
planning. The project scope and requirements are laid down
at the beginning of the development process. Plans 5. Deployment: In this phase, the team issues a product for
regarding the number of iterations, the duration and the the user's work environment.
scope of each iteration are clearly defined in advance.
6. Feedback: After releasing the product, the last step is
Each iteration is considered as a short time "frame" in the feedback. In this, the team receives feedback about the
Agile process model, which typically lasts from one to four product and works through the feedback.
weeks. The division of the entire project into smaller parts
helps to minimize the project risk and to reduce the overall Agile Testing Methods:
project delivery time requirements. Each iteration involves a
team working through a full software development life cycle • Scrum
including planning, requirements analysis, design, coding,
• Crystal
and testing before a working product is demonstrated to the
client.[11] • Dynamic Software Development Method(DSDM)

Phases of Agile Model: • Feature Driven Development(FDD)

Following are the phases in the Agile model are as follows: • Lean Software Development
Software process models- Agile models-SDLC(Software Development Life Cycle)

• eXtreme Programming(XP) 4) Feature Driven Development(FDD):


1) Scrum This method focuses on "Designing and Building" features.
In contrast to other smart methods, FDD describes the small
SCRUM is an agile development process focused primarily
steps of the work that should be obtained separately per
on ways to manage tasks in team-based development
function.
conditions.
5) Lean Software Development:
There are three roles in it, and their responsibilities are:
Lean software development methodology follows the
• Scrum Master: The scrum can set up the master principle "just in time production." The lean method
team, arrange the meeting and remove obstacles for indicates the increasing speed of software development and
the process reducing costs. Lean development can be summarized in
seven phases.
• Product owner: The product owner makes the
product backlog, prioritizes the delay and is 1. Eliminating Waste
responsible for the distribution of functionality on 2. Amplifying learning
each repetition.
3. Defer commitment (deciding as late as possible)
• Scrum Team: The team manages its work and
organizes the work to complete the sprint or cycle. 4. Early delivery

2) Crystal: 5. Empowering the team


There are three concepts of this method- 6. Building Integrity
1. Chartering: Multi activities are involved in this 7. Optimize the whole
phase such as making a development team,
6) eXtreme Programming(XP)
performing feasibility analysis, developing plans,
etc. This type of methodology is used when customers are
constantly changing demands or requirements, or when they
2. Cyclic delivery: under this, two more cycles are not sure about the system's performance.
consist, these are:
A. Team updates the release plan. When to use the Agile Model?
B. Integrated product delivers to the users. • When frequent changes are required.

3. Wrap up: According to the user environment, this • When a highly qualified and experienced team is
phase performs deployment, post-deployment. available.
3) Dynamic Software Development Method(DSDM): • When a customer is ready to have a meeting with a
DSDM is a rapid application development strategy for software team all the time.
software development and gives an agile project distribution • When project size is small.
structure. The essential features of DSDM are that users
must be actively connected, and teams have been given the
right to make decisions. The techniques used in DSDM are: Advantage(Pros) of Agile Method:
1. Frequent Delivery
1. Time Boxing
2. Face-to-Face Communication with clients.
2. MoSCoW Rules
3. Efficient design and fulfils the business
3. Prototyping
requirement.
The DSDM project contains seven stages: 4. Anytime changes are acceptable.
1. Pre-project 5. It reduces total development time.
2. Feasibility Study
Disadvantages(Cons) of Agile Model:
3. Business Study
1. Due to the shortage of formal documents, it creates
4. Functional Model Iteration
confusion and crucial decisions taken throughout
5. Design and build Iteration
various phases can be misinterpreted at any time by
6. Implementation different team members.
7. Post-project
Software process models- Agile models-SDLC(Software Development Life Cycle)

2. Due to the lack of proper documentation, once the information is then used to plan the basic project approach
and to conduct product feasibility study in the economical,
project completes and the developers allotted to operational and technical areas.
another project, maintenance of the finished project
can become a difficulty. Planning for the quality assurance requirements and
identification of the risks associated with the project is also
III.SDLC (Software Development Life Cycle) done in the planning stage. The outcome of the technical
feasibility study is to define the various technical
Software Development Life Cycle (SDLC) is a process used approaches that can be followed to implement the project
by the software industry to design, develop and test high successfully with minimum risks.
quality software. The SDLC aims to produce a high-quality
software that meets or exceeds customer expectations, Stage 2: Defining Requirements
reaches completion within times and cost estimates.[12] Once the requirement analysis is done the next step is to
clearly define and document the product requirements and
• SDLC is the acronym of Software Development
get them approved from the customer or the market analysts.
Life Cycle.
This is done through an SRS (Software Requirement
• It is also called as Software Development Process. Specification) document which consists of all the product
• SDLC is a framework defining tasks performed at requirements to be designed and developed during the
each step in the software development process. project life cycle.
• ISO/IEC 12207 is an international standard for
software life-cycle processes. It aims to be the Stage 3: Designing the Product Architecture
standard that defines all the tasks required for
SRS is the reference for product architects to come out with
developing and maintaining software.
the best architecture for the product to be developed. Based
What is SDLC? on the requirements specified in SRS, usually more than one
design approach for the product architecture is proposed and
SDLC is a process followed for a software project, within a documented in a DDS - Design Document Specification.
software organization. It consists of a detailed plan
describing how to develop, maintain, replace and alter or This DDS is reviewed by all the important stakeholders and
enhance specific software. The life cycle defines a based on various parameters as risk assessment, product
methodology for improving the quality of software and the robustness, design modularity, budget and time constraints,
overall development process[7]. the best design approach is selected for the product.

The following figure is a graphical representation of the A design approach clearly defines all the architectural
various stages of a typical SDLC modules of the product along with its communication and
data flow representation with the external and third party
modules (if any). The internal design of all the modules of
the proposed architecture should be clearly defined with the
minutest of the details in DDS.
Stage 4: Building or Developing the Product
In this stage of SDLC the actual development starts and the
product is built. The programming code is generated as per
DDS during this stage. If the design is performed in a
detailed and organized manner, code generation can be
accomplished without much hassle.

Developers must follow the coding guidelines defined by


their organization and programming tools like compilers,
interpreters, debuggers, etc. are used to generate the code.
Different high level programming languages such as C,
Figure 8. SDLC [Adapted from Google image] C++, Pascal, Java and PHP are used for coding. The
programming language is chosen with respect to the type of
A typical Software Development Life Cycle consists of the software being developed.
following stages −
Stage 5: Testing the Product
Stage 1: Planning and Requirement Analysis This stage is usually a subset of all the stages as in the
Requirement analysis is the most important and fundamental modern SDLC models, the testing activities are mostly
stage in SDLC. It is performed by the senior members of the involved in all the stages of SDLC. However, this stage
team with inputs from the customer, the sales department, refers to the testing only stage of the product where product
market surveys and domain experts in the industry. This
Software process models- Agile models-SDLC(Software Development Life Cycle)

defects are reported, tracked, fixed and retested, until the


product reaches the quality standards defined in the SRS.
Stage 6: Deployment in the Market and Maintenance
Once the product is tested and ready to be deployed it is
released formally in the appropriate market. Sometimes
product deployment happens in stages as per the business
strategy of that organization. The product may first be
released in a limited segment and tested in the real business
environment (UAT- User acceptance testing).

Then based on the feedback, the product may be released as


it is or with suggested enhancements in the targeting market
segment. After the product is released in the market, its
maintenance is done for the existing customer base.

SDLC Models

There are various software development life cycle models


defined and designed which are followed during the
software development process. These models are also
referred as Software Development Process Models". Each
process model follows a Series of steps unique to its type to
ensure success in the process of software development[4]

Following are the most important and popular SDLC


models followed in the industry −

• Waterfall Model
• Iterative Model
• Spiral Model
• V-Model
• Big Bang Model
Other related methodologies are Agile Model, RAD Model,
Rapid Application Development and Prototyping
Models.[1,2,3]

REFERENCES
[1] Pankaj Jalote, An Integrated Approach to Software
Engineering, 3rd Edition, Narosa Publishing
House, ISBN: 9788173197024..
[2] Rajib Mall, Fundamentals of Software Engineering,
3rd Edition, PHI Learning Pvt Ltd, ISBN:
9788120338197.
[3] . . Rohit Khurana, Software Engineering: Principles
and Practices, 2nd Edition, Vikas Publishing House
Pvt Ltd, ISBN: 8125939466
[4] https://aws.amazon.com/what-
is/sdlc/#:~:text=The%20software%20development
%20lifecycle%20(SDLC,expectations%20during%
20production%20and%20beyond.
[5] www.1000sourcecodes.com/2012/05/software-
engineering-incremental-model.html
[7] National Instruments Corporation, "Lifecycle
Models", 2006 , http://zone.ni.com.

You might also like