0% found this document useful (0 votes)
48 views21 pages

Chapter 3-SDLC and Methodologies

Uploaded by

07dkarke
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
48 views21 pages

Chapter 3-SDLC and Methodologies

Uploaded by

07dkarke
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 21

Chapter 3: Software Development Life Cycle and

Methodologies

System Development Life Cycle (SDLC):


SDLC is well defined process by which the system can be planned, developed &
implemented.

Preliminary Investigation and Feasibility Study:


 Primary investigation which is also termed as preliminary system study is
the first stage of system development life cycle.
 During this phase, all the relevant information is collected from the customer
to develop a product as per their expectation.
 Any ambiguities must be resolved in this phase only.
Feasibility Study:
Feasibility study is the study which helps to determine whether the proposed
software project is practicable, workable and cost effective.
There are types of feasibility study.
 Technical Feasibility
 Economic Feasibility
 Operational Feasibility

Analysis or Requirement Gathering:


 System Analysis is the process of studying a proposed system/product in order
to identify its objectives, goals and purposes.
 System(Business) analyst and Project Manager set up a meeting with the
customer/user to gather all the information like what the customer wants to
build, who will be the end-user, what is the purpose of the product.
 Before building a product a core understanding or knowledge of the product
is very important.
 After requirement gathering, an analysis is done to check the feasibility of the
development of a product.
 In case of any ambiguity (unclear/vague requirement), a call is setup for
further discussion.
 When all requirement are clearly understood, the SRS (Software Requirement
 Specification) document is created.
 This document should be thoroughly understood by the developers and also
should be reviewed by the customer for future reference.
System Design:
 It refers to the process of planning for a new system or for replacing the
existing system.
 Systems analysis describes what the system should do whereas system design
focuses on how to achieve the objectives.
 In this phase, the requirement gathered in the SRS document is used as an
input and software architecture that is used for implementing system
development is derived.
 System design has to focus on four important aspects
1. Architecture design
2. Interface design
3. Database design
4. Program design
1. Architecture design: Architecture design focuses on the basic infrastructure
hardware, software & networking infrastructures that the system will use.
2. Interface design: Interface design specifies how the user will move through
the system. It means the navigation methods such as menu, forms, and reports.
3. Database design: The database & file design defines what data will be
stored & where it will be stored.
4. Program design: Program design defines the programs that are required to
be written & exactly what is program will do.
The collection of derivable such architecture design, interface design program
design and file design is the system specification.
Implementation or Coding:
 Implementation/Coding starts once the developer gets the Design document.
 The Software design is translated into source code.
 All the components of the software are implemented in this phase.
Testing:
 Testing gives the guarantee that the software does not fail & it will run
according to the specification and in the way the user expects it.
 Testing starts once the coding is complete and the modules are released for
testing.
 In this phase, the developed software is tested thoroughly and if any defects
are found, they are assigned to developers to get them fixed.
 Retesting, regression testing is done until the point at which the software is as
per the customer's expectation.
 Testers refer SRS document to make sure that the software is as per the
customer's standard.
Deployment:
 Once the product/software is tested, it is deployed in the production
environment or first UAT (User Acceptance testing) is done depending on
the customer expectation.
 In the case of UAT, a replica of the production environment is created and
the customer along with the developers does the testing. If the customer
finds the application as expected, then sign off is provided by the customer
to go live.
Maintenance:
 After the software is deployed, then its maintenance begins.
 Maintenance is a part of SDLC. It includes following tasks:
o Correcting errors
o Resolving necessary changes
o Enhances or modifies the system
System Evaluation/Feedback:
Evaluation is the final check point of the SDLC; it is nothing but feedback of system.
There are three categories of this evaluation:
 Developmental Evaluation: This evaluation verifies whether the system is
developed on time and within budget.
 Operational Evaluation: This evaluation mainly focused on Response Time
of system, user friendliness, Reliability and adequacy of storage capacity.
 User Management Assessment Evaluation: This evaluation, check how
frequently management/user use the system and are satisfied with the system.
Advantages of SDLC:
 Structured Approach: SDLC provides a structured approach to software
development. It enables developers to plan and organize their work more
efficiently. This approach helps to minimize errors, increase productivity, and
ensure the timely delivery of software.
 Enhances teamwork and coordination: SDLC encourages collaboration
among team members. This collaboration helps to clear roles and
responsibilities among developers, designers, business analysts, and project
managers.
 Consistency: SDLC ensures consistency in software development by
providing a standard framework and methodology. This helps to improve the
quality of the software and ensures that the end product meets the client’s
expectations.
 Clearly-defined inputs and outputs from one step to the next.
 Cost-Effective: SDLC helps to reduce development costs by identifying
potential issues early in the development process.
Disadvantages of SDLC:
 Time-Consuming: SDLC can be time-consuming, if the development process
is complex. This can result in delays in the delivery of software, which can be
frustrating for clients.
 Inflexibility: SDLC can be inflexible, if the requirements change during the
development process. This inflexibility can result in a end product that does
not meet the client’s expectations.
 The project may take longer and cost more if the planning is not done
properly.
 Correcting problems in code can sometimes take a long time and cause
deadlines to be missed if there are many of them.
Difference between System Analysis and System Design
System Analysis System Design
System Analysis is the examination of System Design is creation of a system
the problem. which is solution to the problem.
It is related with identifying all the It is related with the co-ordination of
Constraints(conditions) on the data. the activities in order to achieve system
goals.
It deals with data collection and a It deals with detailed design of input,
detailed evaluation of present(current) output, files and procedures. It also
system. deals with program development,
testing and user acceptance.
It gives logical model of the system It provides technical specification and
through Data Flow Diagrams reports with which the problem can be
(DFDs) and Data Dictionary etc. tackled.

Generic Process Model:


IEEE defines, a process model as,
"a framework containing the processes, activities and tasks involved in the
development, operation and maintenance of a software product, covering the
life of the system from the definition of its requirements to the termination of its
use."
Activities of Generic Process Model ( refer chapter 2)
Advantages of Process Model:
Enables Effective Communication: It enhances understanding and provides a
specific basis for process execution.
Facilitates Process Reuse: Process development is a time consuming an expensive
activity. Thus, the software development team utilizes the existing processes for
different projects.
Effective: The process models can be used again and again; re-usable processes
provide an effective means for implementing processes for software development.
Facilitates Process Management: They provide a framework for defining process
status and measures for software development.
Process Flow:
It shows how the framework activities and the actions and tasks that occur within
each activity are organized with respect to sequence and time.
Following are types of process flows in SDLC:
 Linear Process Flow
 Iterative Process Flow
 Evolutionary Process Flow
 Parallel Process Flow
Linear Process Flow:
A linear process flow executes each of the five framework activities in sequence,
beginning with communication and ending with deployment.
Iterative Process Flow:
An iterative process flow repeats one or more of the activities before proceeding to
the next.

Evolutionary Process Flow:


An evolutionary process flow executes the activities in a "circular" manner.

Parallel Process Flow:


A parallel process flow executes one or more activities in parallel with other
activities.
Types of SDLC Process Model:
Software Life Cycle Model is either a descriptive or prescriptive.
Descriptive model:
A descriptive process model is defined as, "a model that describes 'what to do'
according to a certain software process system".
Descriptive models may be used as the basis for understanding and improving
software development process.
Prescriptive model:
 A prescriptive model prescribes how a new software system should be
developed.
 A prescriptive process model defines a distinct set of activities, actions, tasks,
milestones, and work products that are required to engineer high-quality
software.
 The activities may be linear, incremental, or evolutionary.
 There are three types of prescriptive process models. They are:
1. Waterfall model.
2. Incremental process model.
3. Evolutionary process model.
o Prototyping Model
o Spiral Model
Waterfall Model/ Linear-Sequential Life Cycle Model/Classic Life
Cycle Model:
 The waterfall model was the first process model.
 It was introduced in 1970 by Winston Royce.
 In Waterfall Model the process flow is Linear.
Hence it is also referred to as a Linear-Sequential Life Cycle Model. This
means that any phase in the development process begins only if the previous
phase is complete.
 It is defined as, "the model of building in stages, whereby one stage is
completed before the next stage beings."
 Waterfall model is basically used for the project which is small and the
requirements are clear (no uncertain requirements).

Phases of Waterfall Model:


1. Communication:
 In the communication phase the major task performed is requirement
gathering which helps in finding out the exact need of the customer.
 Once, all the needs of the customer are gathered the next step ,planning start.

2. Planning:
 In planning major activities like planning for schedule, keeping track of on
the processes and the estimation related to the project are done.
 Planning is even used to find the types of risks involved throughout the
projects.
 Planning describes how technical tasks are going to take place and what
resources are needed and how to use them.
3. Modelling:
 This is one the important phases as the architecture of the system is
designed in this phase.
 Analysis is carried out and depending on the analysis a software model is
designed.
 Different models for developing software are created depending on the
requirements gathered in the first phase and the planning done in the
second phase.
4. Construction:
 The actual coding of the software is done in this phase.
 This coding is done on the basis of the model designed in the modelling
phase. So in this phase software is actually developed and tested.
5. Deployment:
 In this last phase the product is actually delivered and installed at
customer's end and support is given if required.
 A feedback is taken from the customer to ensure the quality of the product.

Advantages of Waterfall Model:


1. The way of structuring different activities in a software project with the
waterfall model appears simple, easy and logical.
2. Every stage in this model produces a concrete deliverable such as requirement
documents, code etc.
3. It provides a simple measure of the development status. Progress from one
phase to the next indicates achievement of an important milestone.
4. It arranges tasks easy and simple.
5. The amount of resources required to implement this model is very minimal.
Disadvantages of Waterfall Model:
1. In the waterfall model, there is the difficulty of accommodating change after
the process is underway. Does not support iteration, so changes can cause
confusion.
2. It has a high amount of risks and uncertainty.
3. Requires customer patience because a working version of the program does
not occur until the final phase.
4. It is a poor model for long and ongoing projects.

V-V Model:
 V-Model also referred to as the Verification and Validation Model.
 This is an extension/variant of the Waterfall model.
 In this, each phase of SDLC must complete before the next phase starts.
 It follows a sequential design process same as the waterfall model.
 Testing of product is planned in parallel with a corresponding phase of
development.
 The phases of testing is called as "Validation Phase" and that of development
is called as "Verification Phase".
 Therefore for each phase of development there's a corresponding test activity
planned in advance.

Developers Life Cycle Testers Life Cycle

Validation Phase
Verification Phase
Phases of V-V Model:
Phases of Verification Phase:
Requirement Analysis: This phase contains detailed communication with the
customer to understand their requirements and expectations. This stage is known as
Requirement Gathering.
System Design: This phase contains the system design and the complete hardware
and communication setup for developing product.
Architectural Design: System design is broken down further into modules taking
up different functionalities.
The data transfer and communication between the internal modules and with the
outside world (other systems) is clearly understood.
Module Design: In this phase the system is broken down into small modules. The
detailed design of modules is specified, also known as Low-Level Design (LLD).
Phases of Validation Phase:
Unit Testing: Unit Test Plans (UTPs) are developed during module design phase.
These Unit Test Plans are executed to eliminate bugs at code or unit level.
Integration testing: After completion of unit testing Integration testing is
performed. In integration testing, the modules are integrated and the system is
tested. Integration testing is performed on the Architecture design phase. This test
verifies the communication of modules among themselves.
System Testing: System testing test the complete application with its functionality,
inter dependency, and communication. It tests the functional and non-functional
requirements of the developed application.
User Acceptance Testing (UAT): UAT is performed in a user environment that
resembles the production environment. UAT verifies that the delivered system meets
user’s requirement and system is ready for use in real world.
When to use V-V Model?
 When the requirement is well defined and not ambiguous.
 The V-shaped model should be used for small to medium-sized projects where
requirements are clearly defined and fixed.
 The V-shaped model should be chosen when sample technical resources are
available with essential technical expertise.
Advantages of V-V Model:
 Easy to Understand.
 Works well for small plans where requirements are easily understood.
 Testing Methods like planning, test designing happens well before coding.
 This model avoids the downward flow of the defects.
 This saves a lot of time. Hence a higher chance of success over the waterfall
model.
Disadvantages of V-V Model:
 Very rigid and least flexible.
 Not a good for a complex project.
 If any changes happen in the midway, then the test documents along with the
required documents, has to be updated.
 Software is developed during the implementation stage, so no early prototypes
of the software are produced.
Incremental Process Model:
Incremental model was developed by Mills Et al. in 1980.
The incremental model is defined as, "a model of software development where the
product is designed, implemented and tested incrementally (module by module) (i.e.
a little more is added each time) until the product is finished."
Working:
 In the incremental model the entire requirement is divided into various builds.
 In the incremental model multiple independent deliveries (modules) are
identified.
 Each increment builds the product and submits it to the customer for any
suggested modifications.
 The next increment implements the customer's suggestions and adds
additional requirements in the previous increment.
 This process is repeated until the product is finished.
 In incremental model, multiple development cycles are there so the software
life cycle is a multi-waterfall. In this model, cycles are divided up into
smaller, more easily managed modules.
 The work flow is in a linear (sequential) fashion, Iterative in nature and
Evolutionary.
 The incremental model provides a needed set of functionality sooner while
delivering optional components later.
Phases in Incremental Process Model:

Advantages of Incremental Process Model:


 Generates working software quickly and early during the software life cycle.
 Incremental development is particularly useful when staffing is unavailable
for a complete implementation.
 This model is more flexible to change scope and requirements.
 It is easier to test and debug during a smaller iteration.
 In this model, customer can respond to each built.
 Lowers initial delivery cost.
 Easier to manage risk because risky pieces are identified and handled during
iteration.
Disadvantages of Incremental Process Model:
 Needs good planning and design.
 Needs a clear and complete definition of the whole system before it can be
broken down and built incrementally.
 Total cost is higher than waterfall model.
Prototyping Model:
Prototype: Dummy Model/Replica/ Specimen/Toy Implementation of a System.
 Prototyping is the system development methodology which enables the
developer to construct a working model of the final system.
 Prototype gives just the idea about the final system and it does not contain all
the features or perform all the necessary functions.
 Customer or user evaluates the prototype and they suggest, what is to be added
or modified.
 Prototyping is an iterative process as it is revised to satisfy the needs of the
customer until the satisfactory design is evolved.
 Prototyping follows evolutionary and iterative process model.
Need of Prototyping:
 The user is not clear about the requirements (difficult to specify in advance).
 If there is possibility of changing the requirements during the development.
 A totally novel (new) system is proposed.
Phases of Prototyping Model:
Requirement gathering:
 In this phase product requirements are gathered.
 Developer and customer meet and discuss overall objectives of the software.
 Identify those requirements which are known.
 Detailed design like performance and security are not discussed in this step.
Quick Design:
 Quick design of system is created when requirements are known.
 In this phase, a simple design of the system is created. It is not a complete
design. It gives a brief idea of the system to the user.
 The quick design focuses on the representation of those aspects of the software
that are visible to the customer/user (e.g., input approaches and output
formats.) rather than detailed design plan.
 The quick design helps in developing the prototype
Building Prototype:
 In this phase, an actual prototype is designed based on the information
gathered from quick design.
 A prototype is constructed using several tools.
 It is a small working model of the required system.
 Prototypes are prepared to represent input screen and output formats.
Customer/User Evaluation:
 In this phase, the prototype of system is presented to the client for an initial
evaluation.
 Evaluation of prototype helps to find out its strengths and weaknesses like
what is to be added or removed.
 User gives comments and suggestions which in turn are provided to the
developer.
Refining prototype:
 If the user is not satisfied with the current prototype then you need to refine
the prototype according to the user’s feedback and suggestions.
 New prototype is evaluated like previous prototype and the process continues
until all requirements are met.
 When the user is satisfied with the developed prototype, a final system is
developed on the basis of final prototype.
Implementation, Testing and Maintenance of Product:
 When the final system is developed based on the final prototype, it is
thoroughly tested and deployed to production.
 The system undergoes regular maintenance for preventing its failures.
Types of Prototyping Models:
1. Rapid Throwaway Prototyping:
 In this method, the prototype is developed rapidly based on the initial
requirements and given to the client for review.
 Once the client provides feedback, final requirements are updated and
work on the final product begins.
 As the name suggests, the developed prototype is discarded, and it will not
be part of the final product.
 It is also known as close-ended prototyping.
2. Evolutionary Prototyping:
 In this method, a prototype is made, and the client feedback is received.
 The prototype developed is incrementally refined based on customer’s
feedback until it is finally accepted.
 It follows an incremental development approach and saves time
compared to the rapid throwaway prototyping method.
 It is also known as breadboard prototyping.
3. Incremental Prototyping:
 In this type of prototype model, final product requirements are break into
smaller parts and each part is developed as a separate prototype.
 In the end, all the parts (prototypes) are merged which becomes a final
product.
4. Extreme Prototyping:
 This type of prototyping model is mainly used for web applications.
 It is divided into three phases:
Phase I: Static Pages with HTML
First basic prototype with static pages is created, it consists of
HTML pages.
Phase II: Functional Screens.(Simulated data processing)
Using a prototype service layer, data processing is simulated.
Phase III: In the last phase, services are implemented.
Advantages of Prototyping Model:
 The customers get to see the partial product early in the life cycle. This ensures
a greater level of customer satisfaction and comfort.
 In development process of this model users are actively involved.
 Gives quick user feedback for better solutions.
 New requirements can be easily accommodated as there is scope for
refinement.
 Missing functionalities can be easily figured out.
 Errors can be detected much earlier thereby saving a lot of effort and cost.
Disadvantages of Prototyping Model:
 Costly with respect to time as well as money.
 There may be too much variation in requirements each time the prototype is
evaluated by the customer.
 Many changes can disturb the rhythm of the development team.
 Poor Documentation due to continuously changing customer requirements.
Spiral Model:
 Spiral model was invented by Dr. Barry Boehm in 1988.
 It is an evolutionary and iterative software process model.
 Each phase in spiral model begins with a design goal and ends with the client
reviewing the progress.
 Inner spirals focus on identifying software requirements and project risks;
may also incorporate prototyping.
Definition: IEEE defines the spiral model as
“a model of the software development process in which the basic activities like
requirements analysis, preliminary and detailed design, coding, integration, and
testing, are performed iteratively until the software is complete”.
Phases of Spiral Model:
 A spiral model is divided into a number of framework activities/task/phases.
 Spiral model contains six phases:

Customer communication:
It includes tasks required to establish effective communication between developer
and customer.
Planning:
It includes tasks required to define resources, timelines, and other project related
information.
Risk analysis:
It includes tasks required to assess both technical and management risks.
Engineering:
It includes tasks required to build one or more representations of the application.
Construction and Release:
It includes tasks required to construct, test, install, and provide user support (e.g.,
documentation and training)
Customer evaluation:
It includes tasks required to obtain customer feedback based on evaluation of the
software representations created during the engineering stage and implemented
during the installation stage.
Advantages of Spiral Model:
 The spiral model accommodates life-cycle evaluation, growth and
requirement changes.
 It focuses on early error detection and design flaws.
 It incorporates prototyping as a risk-reduction strategy.
 The spiral model incorporates software quality objectives into the product.
Disadvantages of Spiral Model:
 Spiral model can be a costly model to use.
 It is not suitable for low risk projects.
 Risk analysis in this model requires highly specific expertise.
BASIS FOR
WATERFALL MODEL SPIRAL MODEL
COMPARISON
Definition It is a software development process It is an evolutionary method of
model that follows a linear sequential SDLC.
flow.

Ease to learn It is simple and easy. It is more complex.

Working It works in a sequential method. It works in an evolutionary method.

Requirement Needs a thorough understanding of Requirements can be added up in


requirements from the beginning. the new iterations if required.
Risk management Risks can only be detected during the Risks are identified and rectified
completion of the model. earlier.
Working model of Can only be generated in the end. Each iteration produces a working
the product model.
Maintenance It needs less maintenance. It needs high maintenance.

Testing Testing is performed after the coding Testing is performed in each spiral
phase in the SDLC. after the engineering phase in the
SDLC.

Customer Customer involvement is less in this Customer involvement is high in


Involvement model. this model

Preferred by It is mainly utilized by customers/ users. It is mainly utilized by developers.

Suitable for It is suitable for small projects with It is suitable for larger, more
clear goals. complicated projects.

Flexibility It is not flexible. It is flexible.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy