Monday, March 15, 2021

Software Development Life Cycle

The SDLC is a process recognized by the industry as a series of activities or steps for developing a new software product or for modifying existing software.

According to Wikipedia, the SDLC is a process for planning, creating, testing, and deploying an information system.

The main function of the software development lifecycle is to indicate the phases, activities, deliverables, and responsibilities of each person involved in the software development process.

Phases of the SDLC

SDLC has five main phases in any of the adopted development models.

1- Requirements phase: this is the first stage of the SDLC process, it shows the minimum requirements, studies the feasibility, and defines the model to be used;

2- Design phase: It involves activities of conception, specification, interface design, prototyping, architecture design;

3- Implementation phase: it enables the translation of product into a programming language of the functionalities defined during the previous phases; 

4- Testing phase: carrying out tests on what was developed according to the requirements;

 5- Production phase: This is the final phase of the SDLC process. It involves the implantation of the final product in production.

These phases can be simplified into three, which are: Definition, development, and operation.

Models of the software development life cycle

There are several models that can be adopted for the software development process. The most popular ones are:

1. Cascading model

It divides the entire software development process into separate and sequential phases where the development moves in only one direction so that the steps cannot be repeated. Only when one phase is completed can the other phase begin.

In this model, no component of the system will be delivered until the final proximity of the project.

2. Spiral model

It is a combination of interactive and sequential models with an emphasis on risk analysis and planning. The software system is delivered in versions, where each version goes through each stage of the development cycle. That way the final product is delivered quickly.

It determines a cycle of activities divided into 4 stages:

It determines objectives, workarounds, and restrictions.

Analyzes the risks of the previous stage

Development phase activities: design, specification, coding, and verification

Revision from previous steps and planning for the next phase

3. Incremental model

It develops several parts of the system in parallel and integrates them when they are complete.

The development is divided into ' increments ' that produce the system incrementally until its final version.

Each increment goes through the entire software development cycle and produces a functional system although it does not meet all requirements.

4. Prototyping

Builds a prototype of the software product to show its functionality in a limited way.

It is used to allow users to evaluate proposals from developers by testing them before final product implementation. It helps to understand specific user requirements that may not have been considered by developers during the product design phase.

5. Agile Methodologies

It uses an incremental and very iterative planning approach.

Each iteration is a mini-project, which usually lasts from 1 to 4 weeks, and includes all phases to implement it such as resource and requirements survey, design, code development, tests, and documentation. At the end of each iteration, there must be delivered to the customer, which includes a set of new features, a new software version. After this delivery, there is a new communication process with the customer and then the new deliveries must be defined.

No comments:

Post a Comment