0% found this document useful (0 votes)
4 views

Unit-2 Software Engineering

The Software Development Life Cycle (SDLC) is a structured process used to design, develop, and maintain software, aiming to deliver high-quality products that meet user requirements. It includes various stages such as requirement gathering, design, coding, testing, and maintenance, with models like Waterfall, Incremental, and Spiral providing different approaches to software development. Each model has its advantages and disadvantages, influencing the choice based on project complexity and requirements.

Uploaded by

oksukalkar
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)
4 views

Unit-2 Software Engineering

The Software Development Life Cycle (SDLC) is a structured process used to design, develop, and maintain software, aiming to deliver high-quality products that meet user requirements. It includes various stages such as requirement gathering, design, coding, testing, and maintenance, with models like Waterfall, Incremental, and Spiral providing different approaches to software development. Each model has its advantages and disadvantages, influencing the choice based on project complexity and requirements.

Uploaded by

oksukalkar
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/ 14

Software Development Life Cycle

2.1 Introduction
Software development life cycle (SDLC) is a structured process that is used to
design,cycle, is a methodology that defines the entire procedure of software
development step-by-step. The goal of the SDLC life cycle model is to deliver
high-quality, maintainable software that meets the user’s requirements. SDLC in
software engineering models outlines the plan for each stage so that each stage of
the software development model can perform its task efficiently to deliver the
software at a low cost within a given time frame that meets users requirements. In
this article we will see Software Development Life Cycle (SDLC) in detail.

What is the Software Development Life Cycle (SDLC)


SDLC is a process followed for software building within a software
organization. SDLC consists of a precise plan that describes how to develop,
maintain, replace, and enhance specific software. The life cycle defines a method
for improving the quality of software and the all-around development process.

2.2 Activities of SDLC:


Software Development Life Cycle (SDLC), as name
suggests, is a blueprint or a process for entire project that is used by the software
industry to design, develop, and test high-quality software. This blueprint or
process includes some common stages like requirement gathering and analysis,
software design, coding and implementation, testing, development, and
maintenance. The main goal of SDLC is to achieve and produce high-quality
software that satisfies customer requirements and expectations.
The ISO (International Organization for Standards) is an international standard
for life cycle process. It aims to define primary standards that define all processes
required for developing and maintaining software systems.
The SDLC activities of are as follows
1. Agreement Processes:

Agreement processes are generally carried out for simply establishing


agreement between two organizations. In this set of processes, many tasks
Notes By:
Mr.Ajit T.Bhosle
Assistant Professor
MGM’S College of Computer Science & IT, Nanded.
are carried out that are important like requirement analysis, defining scope
of system, finding out constraints for system development.

2. Organizational Project Enabling Processes:

Organizational Project Enabling Processes are set of processes that define and
maintain life cycle models and procedures for use by organization with respect to
scope of international standards.

3. Project Processes:

In this phase, project is described concerning planning, assessment, and control.


There are two categories of processes- Project management processes and project
support processes. This is a phase in which decision management processes, risk
management processes, configuration management processes work.

4. Technical Processes:

This is a phase in which a set of processes works to define requirements for


system, to analyses requirements, and to transform requirements into effective
design.

5. Software Implementation Processes:

In this phase, set of processes is used to produce a specified system element


implemented in software. Thus, a software product or service is developed in this
phase.

6. Software Support Processes:

This phase contains a set of processes that include documentation management


process, quality assurance process, software verification process, and so on. These
processes serve as support processes for developed software system.

7. Software Reuse Processes:

Notes By:
Mr.Ajit T.Bhosle
Assistant Professor
MGM’S College of Computer Science & IT, Nanded.
There are certain processes such as domain engineering processes, reuse program
management processes that serve as software reuse processes.

2.3 Generic Process Model:

Generic Process Model is a definitive description of processes. Generic Processes


are designed to run outside a normal component or on an application processor.
These processes are not specific to any particular component, can be used in any
number of applications. Generic Process Model consists of 5 activities which will
be discussed in this article. The software process is a collection of various
activities. These activities include communication, planning, modeling,
construction, and deployment. Each of these activities includes a set of engineering
actions and each action defines a set of tasks that incorporate work products,
project milestones, and SQA, Software Quality Assurance points. Let us dig deeper
into this Generic Process Model and will go through the working process, its
advantages, and disadvantages.

How does the Generic process model work?

Generic Process model includes the below five framework activities,

1. Communication: This is the first step in the software development process


which starts with the communication between the customer and the
developer.

2. Planning: This step consists of a complete estimation of the project,


scheduling for development of the project, and tracking.

3. Modeling: This step consists of complete requirement analysis and project


design like algorithm, flowchart, etc.The algorithm is a step-by-step process
of the problem and the flowchart will show the flow of the program.

Notes By:
Mr.Ajit T.Bhosle
Assistant Professor
MGM’S College of Computer Science & IT, Nanded.
4. Construction: This step consists of code generation and its testing. Coding
will implement the design details using appropriate programming
languages.Testing checks if the program or the code provides expected
output, and also checks whether the flow of the code is correct or not.

5. Deployment: This step consists of delivering the final product to the


customer and take feedback. If there are any suggestions or addition of other
capabilities, then this change is required for improvement in software
quality.

Advantages and Disadvantages of Generic Process model

1. Testing activities like planning of test cases, test designing will be done way
before coding, which saves a lot of time.
2. Based on Waterfall Model, it lacks flexibility, and the delivery of products is
relatively fast.
3. It is useful when there are long-life complex applications being built.
4. It is not cost-effective and is static
5. In the Evolutionary Process model, Incremental developments are possible
and new developments are reflected in the products.
6. It has poor structure and has a high risk of failure in delivering the product
7. In RAD, it supports future development and maintenance users can reuse the
system, and had a low risk of failure with reduced cost.
8. Here, requirements are not always served and is not suitable for all types of
application development.
9. In Agile Model, requirements are delivered in a rapid manner with less risk
and software reliability.

2.4 Perspective Process Model:

Prescriptive process models were originally


proposed to bring order to the software development. Prescriptive process models
define a prescribed set of process elements and a predictable process workflow.

Notes By:
Mr.Ajit T.Bhosle
Assistant Professor
MGM’S College of Computer Science & IT, Nanded.
2.4.1 Waterfall Model

This model has five phases: Requirements analysis and specification, design,
implementation, and unit testing, integration and system testing, and operation and
maintenance. The steps always follow in this order and do not overlap. The
developer must complete every phase before the next phase begins.
Waterfall approach was first SDLC Model to be used widely in Software
Engineering to ensure success of the project. In "The Waterfall" approach, the
whole process of software development is divided into separate phases. In this
Waterfall model, typically, the outcome of one phase acts as the input for the next
phase sequentially.

1. Requirement Gathering and analysis: All possible requirements of the


system to be developed are captured in this phase and documented in a
requirement specification document.
2. System Design: The requirement specifications from first phase are studied
in this phase and the system design is prepared. This system design helps in
specifying hardware and system requirements and helps in defining the
overall system architecture.
Notes By:
Mr.Ajit T.Bhosle
Assistant Professor
MGM’S College of Computer Science & IT, Nanded.
3. Implementation: With inputs from the system design, the system is first
developed in small programs called units, which are integrated in the next
phase. Each unit is developed and tested for its functionality, which is
referred to as Unit Testing.
4. Integration and Testing: All the units developed in the implementation
phase are integrated into a system after testing of each unit. Post integration
the entire system is tested for any faults and failures.
5. Deployment of system: Once the functional and non-functional testing is
done; the product is deployed in the customer environment or released into
the market.
6. Maintenance: There are some issues which come up in the client
environment. To fix those issues, patches are released. Also to enhance the
product some better versions are released. Maintenance is done to deliver
these changes in the customer environment.

Advantage of Waterfall Model


 simple and easy to understand and use
 Easy to manage due to the rigidity of the model. Each phase has specific
deliverables and a review process.
 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.

Disadvantage of Waterfall Model


 No working software is produced until late during the life cycle.

Notes By:
Mr.Ajit T.Bhosle
Assistant Professor
MGM’S College of Computer Science & IT, Nanded.
 High amounts of risk and uncertainty.
 Not a good model for complex and object-oriented projects.
 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.

2.4.2 Incremental Process Model


Incremental Model is a process of software development where requirements
divided into multiple standalone modules of the software development cycle. In
this model, each module goes through the requirements, design, implementation
and testing phases. Every subsequent release of the module adds function to the
previous release. The process continues until the complete system achieved.

Notes By:
Mr.Ajit T.Bhosle
Assistant Professor
MGM’S College of Computer Science & IT, Nanded.
1. Requirement analysis: In the first phase of the incremental model, the product
analysis expertise identifies the requirements. And the system functional
requirements are understood by the requirement analysis team. To develop the
software under the incremental model, this phase performs a crucial role.
2. Design & Development: In this phase of the Incremental model of SDLC, the
design of the system functionality and the development method are finished with
success. When software develops new practicality, the incremental model uses
style and development phase.
3. Testing: In the incremental model, the testing phase checks the performance of
each existing function as well as additional functionality. In the testing phase, the
various methods are used to test the behavior of each task.
4. Implementation: Implementation phase enables the coding phase of the
development system. It involves the final coding that design in the designing and
development phase and tests the functionality in the testing phase. After
completion of this phase, the number of the product working is enhanced and
upgraded up to the final system product

Notes By:
Mr.Ajit T.Bhosle
Assistant Professor
MGM’S College of Computer Science & IT, Nanded.
Advantage of Incremental Model
 Errors are easy to be recognized.
 Easier to test and debug
 More flexible.
 Simple to manage risk because it handled during its iteration.
 The Client gets important functionality early.

Disadvantage of Incremental Model


 Need for good planning
 Total Cost is high.

2.4.3 Evolutionary Process Models


Evolutionary process model resembles the iterative enhancement model. This
model differs from the iterative enhancement model in the sense that this does not
require a useful product at the end of each cycle. In evolutionary development,
requirements are implemented by category rather than by priority.

Phases:
1. Initial Concept
2. Design and implement prototype based on initial concept
3. Refine prototype until it is acceptance
4. Complete and release the prototype

1. Prototyping Model:

The prototype model requires that before carrying out the


development of actual software, a working prototype of the system should
be built. Prototyping is defined as the process of developing a working
replication of a product or system that has to be engineered.

Notes By:
Mr.Ajit T.Bhosle
Assistant Professor
MGM’S College of Computer Science & IT, Nanded.
Steps of Prototype Model
1. Requirement Gathering and Analysis
2. Quick Decision
Notes By:
Mr.Ajit T.Bhosle
Assistant Professor
MGM’S College of Computer Science & IT, Nanded.
3. Build a Prototype
4. Assessment or User Evaluation
5. Prototype Refinement.

Advantage of Prototype Model


 Reduce the risk of incorrect user requirement
 Good where requirement are changing/uncommitted
 Regular visible process aids management
 Support early product marketing
 Reduce Maintenance cost.
 Errors can be detected much earlier as the system is made side by side.

Disadvantage of Prototype Model


 An unstable/badly implemented prototype often becomes the final product.
 Difficult to know how long the project will last.
 Easy to fall back into the code and fix without proper requirement analysis,
design, customer evaluation, and feedback.
 Prototyping tools are expensive.
 Special tools & techniques are required to build a prototype.
 It is a time-consuming process.

2. Spiral Model:
Notes By:
Mr.Ajit T.Bhosle
Assistant Professor
MGM’S College of Computer Science & IT, Nanded.
The spiral model is an evolutionary software process model
that couples the iterative feature of prototyping with the controlled and
systematic aspects of the linear sequential model. It implements the potential
for rapid development of new versions of the software. Using the spiral model,
the software is developed in a series of incremental releases. During the early
iterations, the additional release may be a paper model or prototype. During
later iterations, more and more complete versions of the engineered system are
produced.

1. Objective setting: Each cycle in the spiral starts with the


identification of purpose for that cycle, the various alternatives
that are possible for achieving the targets, and the constraints
that exists.

2. Risk Assessment and reduction: The next phase in the cycle


is to calculate these various alternatives based on the goals and
constraints. The focus of evaluation in this stage is located on
the risk perception for the project.

3. Development and validation: The next phase is to develop


strategies that resolve uncertainties and risks. This process may
include activities such as benchmarking, simulation, and
prototyping.

4. Planning: Finally, the next step is planned. The project is


reviewed, and a choice made whether to continue with if it is
determined to keep, plans are drawn up for the next step of the
project. The development phase depends on the remaining
risks. For example, if performance or user-interface risks are
treated more essential than the program development risks, the
next phase may be an evolutionary development that includes
developing a more detailed prototype for solving the risks.

Notes By:
Mr.Ajit T.Bhosle
Assistant Professor
MGM’S College of Computer Science & IT, Nanded.
Notes By:
Mr.Ajit T.Bhosle
Assistant Professor
MGM’S College of Computer Science & IT, Nanded.
Advantage of Spiral Model
 High amount of risk analysis
 Useful for large and mission-critical projects.

Disadvantage of Spiral Model


 Can be a costly model to use.
 Risk analysis needed highly particular expertise
 Doesn't work well for smaller projects.

Notes By:
Mr.Ajit T.Bhosle
Assistant Professor
MGM’S College of Computer Science & IT, Nanded.

You might also like