Professional Documents
Culture Documents
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
• Technology is understood.
Software process models- Agile models-SDLC(Software Development Life Cycle)
Following are the phases in the Agile model are as follows: • Lean Software Development
Software process models- Agile models-SDLC(Software Development Life Cycle)
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.
SDLC Models
• 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.