You are on page 1of 16

SOFTWARE ENGINEERING

LAB -2
Date: 02/09/2022
Name: - AKANSHA CHAUHAN
Enrollment no: - A20405220187
Section: - A Semester: - 5th
Batch: A2

Objective:1 - Briefly explain what do you understand by software


development life cycle (SDLC) and also state its features.
The software development life cycle (SDLC) explains the different stages of software
development. The software development lifecycle (SDLC) is a framework that development
teams use to produce high-quality software in a systematic and cost-effective way. Both large
and small software organizations use the SDLC methodology. The software development
lifecycle gives organizations a systematic, step-by-step approach to developing successful
software from gathering the initial requirements for a new product.

Phases of the Software Development Life Cycle

Fig.1.SDLC
Phase -1: - Requirement collection or Planning Phase
The prime focus of this phase is to gather the essential requirements from the customer. This information
gets collected by the business analyst from their target customer(s) and plans the BRS (Business
requirement Specification) for the development of the product. 

Phase -2: - Defining


When the BRS documentation is done, there are another set of employees like Human Resource (HR),
Finance Analyst, Architect, a Business analyst as well as Project manager will sit jointly discuss as well as
analyze how to proceed and whether it is feasible and possible in the allotted budget.

Phase -3: - Designing


This phase is when the design specification is organized from the prerequisite document when the project is
approved to go further. This phase contributes to the next phase for development. This phase portrays a
blueprint of the product, which helps to specify the hardware and requirements of your system as well as
assist in crafting a significant architecture of your system.

Phase -4: -Building


As you are preparing with the design document, this phase deals with the developers to start writing the
code or prepare for the engineering so that a prototype of the product can be created using some specific
tools and techniques. This is considered the longest phase of SDLC.

Phase -5: -Testing phase


As your product is prepared for deployment, it needs a prior testing environment by the test engineers to
check for bugs and run-time errors, and they check in this phase whether the functionality of the product is
working as per the requirement or not.

Phase -6: -Deployment


Once your prototype or product is developed, tested, and completely in working form as per the
requirement, and then it is installed or deployed in the customer's workplace or system for their
use.

Phase -6: - Maintenance


This is an additional phase, and in many cases, this phase does not come under the count of SDLC, when
your customer(s) begin using your product and encounter with some issues which they want us (as
developers) to fix from time to time. The developer fixes the issue, and software testers test the product and
hand it over the back to the customer.
Features of SDLC
Following are the features of SDLC -
1. It is broken down the entire life cycle of software development that makes it easier to
evaluate each part of software development and makes it's easier for programmers to
work concurrently on each stage.
2. It's a Sequence of Activities carried out by developers to designed and developed high-
quality software.
3. Increased the speed and Perfection of Development.
4. Save Cost and Time.

Objective: 2 – Write a short note on the following: -


 Waterfall model
 Evolutionary model
 Prototype model
 V-model

i) Waterfall model
The waterfall model is a linear process model that divides development processes into
successive project phases. The waterfall Model illustrates the software development process in
a linear sequential flow. This means that any phase in the development process begins only if
the previous phase is complete. In this waterfall model, the phases do not overlap.
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
Fig. 2: Waterfall Model

Phases Of Waterfall Model


 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.

 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.

 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.

 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.

 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.

 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.
Application Of Waterfall Model
Some situations where the use of Waterfall model is most appropriate are −
 Requirements are very well documented, clear and fixed.
 Product definition is stable.
 Technology is understood and is not dynamic.
 There are no ambiguous requirements.
 Ample resources with required expertise are available to support the product.
 The project is short.

ii) Evolutionary model

Evolutionary model is also referred to as the successive versions model and sometimes as
the incremental model. In Evolutionary model, the software requirement is first broken down
into several modules (or functionality) that can be incrementally constructed and delivered.

In the evolutionary model, all work divided into smaller chunks. These chunks present to the
customer one by one. The confidence of the customer increased. This model also allows for
changing requirements as well as all development done into different pieces and maintains all the
work as a chunk.

Fig 3: Evolutionary Model


Application Of Evolutionary Model
1. It is used in large projects where you can easily find modules for incremental
implementation. Evolutionary model is commonly used when the customer wants to
start using the core features instead of waiting for the full software.
2. Evolutionary model is also used in object-oriented software development because the
system can be easily portioned into units in terms of object.

iii) Prototype Model

The Prototyping Model is one of the most popularly used Software Development Life Cycle
Models (SDLC models). This model is used when the customers do not know the exact project
requirements beforehand. In this model, a prototype of the end product is first developed, tested
and refined as per customer feedback repeatedly till a final acceptable prototype is achieved
which forms the basis for developing the final product. The prototype model requires that before
carrying out the development of actual software, a working prototype of the system should be
built.
Phases of Prototype Model –
1. Requirements-gathering-and-analysis:
A requirement analysis is the first step in developing a prototyping model. During this
phase, the system’s desires are precisely defined. During the method, system users are
interviewed to determine what they expect from the system.

2. Quick design:
The second phase could consist of a preliminary design or a quick design. During this
stage, the system’s basic design is formed. However, it is not a complete design. It
provides the user with a quick overview of the system. The rapid design aids in the
development of the prototype.

3. Build-Prototype:
During this stage, an actual prototype is intended to support the knowledge gained from
quick design. It is a small low-level working model of the desired system.

4. Initial-user-evaluation:
The proposed system is presented to the client for preliminary testing at this stage. It is
beneficial to investigate the performance model’s strengths and weaknesses. Customer
feedback and suggestions are gathered and forwarded to the developer.

5. Refining-prototype:
If the user is dissatisfied with the current model, you may want to improve the type that
responds to user feedback and suggestions. When the user is satisfied with the upgraded
model, a final system based on the approved final type is created.

6. Implement-Product-and-Maintain:
The final system was fully tested and distributed to production after it was developed to
support the original version. To reduce downtime and prevent major failures, the
programmer is run on a regular basis.

Application of Prototyping Model

 Prototype model should be used when the desired system needs to have a lot of
interaction with the end users.
 Typically, online systems, web interfaces have a very high amount of interaction with
end users, are best suited for Prototype model. It might take a while for a system to be
built that allows ease of use and needs minimal training for the end user.
 Prototyping ensures that the end users constantly work with the system and provide
feedback which is incorporated in the prototype to result in a useable system. They are
excellent for designing good human computer interface systems.
V Model
The V-model is a type of SDLC model where process executes in a sequential manner in V-
shape. It is also known as Verification and Validation model. The V-Model is an extension of the
waterfall model and is based on the association of a testing phase for each corresponding
development stage. This means that for every single phase in the development cycle, there is a
directly associated testing phase. This is a highly disciplined model, and the next phase starts
only after completion of the previous phase.

Fig 5: V Model
Phases Of V Model
1. Business Requirement Analysis: This is the first phase in the development cycle where
the product requirements are understood from the customer’s perspective. This phase
involves detailed communication with the customer to understand his expectations and
exact requirement.
2. System Design: The system design will have the understanding and detailing the
complete hardware and communication setup for the product under development.
3. Architectural Design: Architectural specifications are understood and designed in this
phase. Usually more than one technical approach is proposed and based on the
technical and financial feasibility the final decision is taken. The system design is broken
down further into modules taking up different functionality. This is also referred to as
High Level Design (HLD).

4. Module Design: In this phase, the detailed internal design for all the system modules is
specified, referred to as Low Level Design (LLD). It is important that the design is
compatible with the other modules in the system architecture and the other external
systems. The unit tests are an essential part of any development process and helps
eliminate the maximum faults and errors at a very early stage. These unit tests can be
designed at this stage based on the internal module designs.

5. Coding Phase: The actual coding of the system modules designed in the design phase is
taken up in the Coding phase. The best suitable programming language is decided based
on the system and architectural requirements.

6. Unit Testing: Unit tests designed in the module design phase are executed on the code
during this validation phase. Unit testing is the testing at code level and helps eliminate
bugs at an early stage, though all defects cannot be uncovered by unit testing.

7. Integration Testing: Integration testing is associated with the architectural design


phase. Integration tests are performed to test the coexistence and communication of
the internal modules within the system.

8. System Testing: System testing is directly associated with the system design phase.
System tests check the entire system functionality and the communication of the system
under development with external systems. Most of the software and hardware
compatibility issues can be uncovered during this system test execution.

9. Acceptance Testing: Acceptance testing is associated with the business requirement


analysis phase and involves testing the product in user environment. Acceptance tests
uncover the compatibility issues with the other systems available in the user
environment. It also discovers the non-functional issues such as load and performance
defects in the actual user environment.
Application Of V Model

The following pointers are some of the most suitable scenarios to use the V-Model application.
 Requirements are well defined, clearly documented and fixed.
 Product definition is stable.
 Technology is not dynamic and is well understood by the project team.
 There are no ambiguous or undefined requirements.
 The project is short.
 .

You might also like