Software Engineering BCATY) VI Sem
Unit I
Software Development Life Cycles (SDLC) and Methodologies
* Software Development Life Cycle (SDLC):
A software life cyele model (also termed process model) is a pictorial and diagrammatic
representation of the sofiware life cycle. A life eycle model represents all the methods required to
hake a software product transit through its life eycle stages. It also captures the structure in which
nethods are to be undertaker
In other words, « life cycle model maps the various activities performed on a software product
from its inception to retirement, Different life cycle models may plan the necessary development
activities to phases in different ways. Thus, no element which life cycle model is followed, the
essential activities are contained in all life cycle models though the action may be carried out in
distinct orders in different life cycle models. During any life eycle stage, more than one activity may
also be carried out
thes
* Activities of SDLC:
SDLC provides a series of steps to be followed to design and develop @ software product
efficiently. SDLC framework includes the following steps
Communication
Requirement Gathering
Feasibility Study
System Analysis
Software Design
SDLC Coding
Testing
Integration
Implementation
Operations & Maintenance
Disposition
Communication
This is the first step where the user initiates the request for a desired software product. He
contacts the service provider and tries to negotiate the terms. He submits his request to the service
providing organization in writing.
Requirement Gathering
‘This step onwards the software development team works to carry on the project. The team
holds discussions with various stakeholders from problem domain and tries to bring out as much
information as possible on their requirements. ‘The requirements are contemplated and segregated into
user requirements, system requirements and functional requirements. The requirements are collected
using a number of practices as given -
> studying the existing or obsolete system and software,
> conducting interviews of users and developers,
Page 1Software Engineering (BCATY) VI Sem
> referring to the database or
> collecting answers from the questionnaires.
y Study a
‘After requirement gathering, the team comes up with a rough plan of software process. At this
step the team analyz if a software can be made to fulfill all requirements of the user andl there's
any possibility of software being no more usefull, It is found out, if the project is financially,
practically and technologically feasible for the organization to take up. There are many algorithms
available, which help the developers to conclude the feasibility of a software project.
System Analysis ;
‘At this step the developers decide a roadmap of their plan and try to bring up the best software
model suitable for the project. System analysis includes Understanding of software product
Timitations, learning system related problems or changes to be done in existing systems beforehand,
identifying and addressing the impact of project on organization and personnel etc. The project team
analyzes the scope of the project and plans the schedule and resources accordingly
Software Design
Next step is to bring down whole knowledge of requirements and analysis on the desk and
design the software product. The inputs from users and information gathered in requirement gathering
phase are the inputs of this step. The output of this step comes in the form of two designs; logical
design and physical design. Engincers produce meta-data and data dictionaries, logical diagrams, data-
flow diagrams and in some cases pseudo codes.
Coding
This step is also known as programming phase. The implementation of software design starts
in terms of writing program code in the suitable programming language and developing error-free
executable programs efficiently.
Testing
"An estimate says that 50% of whole software development process should be tested. Errors
may ruin the software from critical level to its own removal. Software testing is done while coding by
the developers and thorough testing is conducted by testing experts at various levels of code such as
module testing, program testing, product testing, in-house testing and testing the product at user's end.
Early discovery of errors and their remedy is the key to reliable software.
Integration
Software may need to be integrated with the libraries, databases and other program(s). This
stage of SDLC is involved in the integration of software with outer world entities,
Implementation
This means installing the software on user machines. At times, software needs post-installation
configurations at user end. Software is tested for portability and adaptability and integration related
issues are solved during implementation.
Operation and Maintenance
This phase confirms the software operation in terms of more efficiency and less errors. If
required, the users are trained on, or aided with the documentation on how to operate the software and
how to keep the software operatiénal. The software is maintained timely by updating the code
according to the changes taking place in user end environment or technology. This phase may face
challenges from hidden bugs and real-world unidentified problems. .
Disposition
‘As time elapses, the software may decline on the performance front. It may go completely
obsolete or may need intense upgradation. Hence a pressing need to eliminate a major portion of the
system arises, This phase includes archiving data and required software components, closing down the
system, planning disposition activity and terminating system at appropriate end-of-system time,
ee
Page 2Software Engineering (BCATY) VI Sem
* Generic Process Model:
“The Generic process model is an abstraction of the software development process. It specifies
the stages and order of a process. Generic Process Model will define the following:
Software Proces:
This a set of activities, methods, practices, and transformations that people use to develop and
maintain software and the associated products, As a Software Organization, the software process
becomes better defined and more consistently implemented throughout the organization.
Example: Project plans, Design-Documents, Code, Test cases, and User-manuals
Generic Process Framework Activities:
TL establishes the foundation for a complete software process by identifying a small number of
framework activities, It also includes a set of umbrella activities that are applicable across the entire
software process. Each framework activity is populated by a set of software engineering actions. A
Generic Process Framework for Software Engineering encompasses five activities
os
Sw
ig: Generic Process Mode!
1 Communication: This framework activity involves heavy communication and collaboration with
the customer. It encompasses requirements gathering and other related activities.
2: Planning: This activity establishes a plan for the software engineering work that follows. It
describes the technical tasks which are conduet. The resource requires and the work proxlucts are
producing with a work schedule.
F Modeling: It encompasses the creation of models that allow the developer and the customer. It is
casy to better understand Software requirements and the design that will achieve those requirements.
§ Construction: This activity combines code generation and the testing that is required to uncover
errors in the code.
5. Deployment: The software delivered to the customer who evaluates the delivered product, It also
provides feedback based on the evaluation.
* Prescriptive process models:
Prescriptive process models prescribe a set of framework and other activities, quality assurance
points, and software process-related elements. ‘They define a workflow among these elements that
shows their inter-relationship.
‘The process models described here are,
> Waterfall Model
> Incremental Pro\
+ Evolutionary Proc
ss Model
sss Model.
Eee
Page 3Software Engineering (BCATY) VI Sem
1) The Waterfall Model or Linear Sequential Model or Classic Life Cycle Model: .
The Waterfall model is also known as "Linear sequential model* or *Classic life eycle model
It is used in small projects where requirements are well defined and known before starting the project.
Activities are carried out in a linear and systematic fashion.
>
Communication .
ser
‘ceaury
> Deployment
The process
and recorded.
Then goes to the planning stage where the cost and time constraints are estimated, a schedule is
outlined and project tracking variables are defined.
$ with communication, where requirements are gathered from the customer
Modelling is where a design based on the requirements and keeping the project constraints in
mind is created. After this, code is generated and the actual building of the product is started in
the construction phas
Testing (unit testing, integration testing)’ is done after code completion in this phase.
Deployment is the last stage where the product is delivered, customer feedback is received and,
support and maintenance for the product are provided.
Advantages of the waterfall model
¥ A simple model to use and implement
¥ Easily understandable workflow .
Y Easy to manage since requirements are known prior to the start of the project.
Y Can be applied to projects where quality is preferred over cost
Disadvantages of the waterfall model
It may be difficult for the customer to provide all the specific requirements beforehand,
Cannot be used for complex and object-oriented projects,
Testing
ind customer evaluation are done at the last stages and hence the risk is high.
eration of activities is not promoted which is unavoidable for certain projects
May lead to “blocking states” in which some project team members must wait for other
‘members of the team to complete dependent tasks.
KKK
2) Incremental Process Model or Successive Version Model
The Incremental process model is also known as “Successive version model’. In the
Incremental process model, a series of releases, called increments, are built and delivered to the
customer. First, a simple working system (core product), that addresses. basic requirements, is
delivered. Customer feedback is recorded afier each incremental delivery. Many increments are
delivered, by adding more functions, until the required system is released. This model is used when a
user demands a model of product with limited functionality quickly
Advantages of incremental process model
Flexible to change requirements.
Changes'can be done throughout the development stages
Errors are reduced since the product is tested by the customer in each phase,
Working software available at the early stage of the process.
Easy to test because of small iterations.
‘The initial cost is lower.
KKKKSS
———————
Page 4
qSoftware Enginee g (BCATY) VI Sem
Poring
ete capgnetan —¥ ai
cermnt tne
° rains "> .
emanate —* papoyrent gant
actment
raring a
neers camaro eseryet
‘arene
Disadvantages of incremental process model
Requires good planning and design.
Modules and interfaces should be well defined.
The total cost is high,
Demands a complete planning strategy before commencemet
Refining requirements in each iteration may affect system architecture.
Brea
KKK KS
ing the problem into increments needs skilful management supervising.
3) Evolutionary Process Models
Evolutionary pro
models are opted when the requirements may tend to change and also
when the somplete sophisticated produet delivery cannot be done before a given deadline, but the
delivery of a limited version of itis possible
‘is the incremental model, complete requirements are specified beforehand and these
requirements are refined over time for each increment. The evolutionary model permits requirements,
plans and estimates to evolve over time. Here,we diseuss prototyping and the spiral model
3.1) Prototyping:
Th cates when the requirements are unclear and are likely to change or when the developer is
doubtful about working of an algorithm, solution is to build a prototype and find out what is actually
‘heeded, Hence, in this model, one or more prototypes are made with unrefined currently known
requirements before the actual product is made.
\
{ Boptoyment | | constrction |
Be Bomatac |) | Sfpnstotme
——S——__———————— —
Page Soe Software Engi neering (BCATY) VI Sem
Aquick design is what occurs in a prototype model. The client evaluates the proiotyPe an
ives feedback and other requirements which are incorporated in the next prototype. This is peat
intl the prototype becomes a complete product that is acceptable to the client. Some provokyP:
puilt as “throwaways", others are “evolutionary” in nature as they evolve into the actual system.
Advantages of prototyping
¥ Active involvement of the user
¥ Errors are detected earlier.
Y Feedback after each prototype helps in understanding the
¥ Does not need 10 know detailed processes, input and output from the beginning.
Disadvantages of prototyping
Multiple prototyp n slow down the process.
Frequent changes can increase complexity.
Unsatisfied client leads to multiple throwaways,
The customer may not be interested or satisfied after evaluating the initial prototype.
jem better,
SAK 8
3.2) Spiral Model:
In spiral model, the software is developed through a series of increments. The diagram looks
like a spiral with loops where each loop is a phase. Each phase is split into four sectors/quadrant
‘The first circuit around the spiral might result in the development of product specification.
‘The subsequent passes around the spiral might be used to develop « prototype and then progressively
more mature versions of the software.
Planning is where the objectives, alternatives and other constraints are determined. The
altematives are considered, risks in each alternative are analysed and prototypes are refined in the risk
analysis sector. At the development quadrant level risks are known and it proceeds with developing
and testing the product. In the assessment sector, customer evaluation of product developed is
reviewed and the next phase is planned. This loop continues until acceptable software is built and
deployed.
Hence, the spiral model follows an incremental process methodology and unlike other process
models, it deals with the uncertainty by applying a series of risk analysis strategies throughout the
process. .
—_——$—$—$ ——_ $$
Page 6Software Engineering (BCATY) VI Sem
Advantages of spiral model
¥ Reduces risk
¥ Recommended for complex projects.
¥ Changes can be incorporated at a later stage.
¥ Strong documentation helps in better management,
Disadvantages of spiral model
¥ Costly and not recommended for small projects
¥ Demands risk assessment expertise.
¥ Looping is a complex process
Y Heavy documentation
* Concurrent Model:
The concurrent development model, sometimes called concurrent engineering, allows a
software team to represent iterative and concurrent elements of any of the process models. The
concurrent model is often more appropriate for product engineering projects where different
engineering teams are involved.
These models provides a schematic representation of one sofiware engineering activity withi
the modeling activity using a concurrent modeling approach. The activity modeling may be in any one
of the states noted at any given time. Similarly, other activities, actions, or tasks (communication or
construction) can be represented in an analo
yous manner,
All software engineering activities exist concurrently but reside in different states. Concurrent
modeling defines a series of events that will trigger transitions from state to state for each of the
software engineering activities, actions, or tasks.
This generates the event analysis model correction, P! scriptive Process Model which will
+ the requirements analysis action from the done state into the awaiting changes state.
Concurrent modeling is applicable to all types of software development and provides an
urate picture of the current state of a project. Each activity, action, or task on the network exists
simultaneously with other activities, actions, or tasks. Events generated at one point in the process
network trigger transitions among the states.
tri
ac
Page 7