Software Engineering: Software Development Lifecycle (SDLC)

2020-12-03 22:37:43
philip
Original 11895
Summary : SDLC is a continuous process, which starts from the moment when the project is decided to start and ends when it is completely removed from development. They are divided into major process groups, each with its own strengths and weaknesses.

Software Engineering: Software Development Lifecycle (SDLC)

One of the basic concepts of software construction -- software development life cycle model, SDLC. SDLC is a continuous process, which starts from the moment when the project is decided to start and ends when it is completely removed from development. They are divided into major process groups, each with its own strengths and weaknesses.


Stage 1. Planning and requirement analysis

Each software development life cycle model starts with analysis, and stakeholders in the process discuss the requirements for the final product. The goal of this phase is to define the system requirements in detail. In addition, you need to ensure that all process participants clearly understand the task and how each requirement will be implemented. Usually, the discussion involves quality experts, who can even intervene in the process of adding if necessary during the development phase.


Phase 2. Design project architecture

In the second phase of the software development lifecycle, developers are actually designing the architecture. All stakeholders (including customers) will discuss all the different technical issues that may arise at this stage. In addition, it defines the techniques used in the project, team load, constraints, time frame, and budget. The most appropriate project decision is made according to the requirements of the definition.


Stage 3. Development and coding

After the requirements are approved, the process moves on to the next stage - actual development. This is where programmers start writing source code, keeping in mind the previously defined requirements. The system administrator adjusts the software environment, the front-end programmer develops the user interface of the program and the logic of interaction with the server.

There are four stages of programming itself


  • Algorithm development
  • Source code writing
  • assembly
  • Testing and commissioning


Stage 4. Testing

The test phase includes the debugging process. All code defects missed during development are detected here, recorded and sent back to the developer for repair. Repeat the testing process until all critical issues are removed and the software workflow is stable.


Phase 5. Deployment

When the program is finalized and there are no critical issues - it's time to start it for the end user. After the release of the new program version, the technical support team joined. The Department provides user feedback; consults and supports users during utilization. In addition, this phase also includes updates to selected components to ensure that the software is up-to-date and not affected by security vulnerabilities.


SDLC model (software development lifecycle model)

Evolved from the first and oldest "waterfall" SDLC model, their variety has expanded significantly. The diversity of SDLC models is predetermined by many product types - from simple websites to complex medical software. If you use one of the SDLC models mentioned below as a basis - in any case, it should be tailored to the characteristics of the product, project and company. The most common, popular and important SDLC models are given below:


  • Waterfall Model
  • Iterative Model
  • Spiral Model
  • V-Shape Model
  • Agile Model


Waterfall SDLC model

Waterfall - is a cascaded SDLC model in which the development process looks like a process, step by step analysis, prediction, implementation, test, implementation and support phases. The SDLC model includes full step-by-step execution of each phase. The process is strictly documented and pre-defined, and has the expected functions at each stage of the software development lifecycle model.




Strengths

Weakness

Easy to use and understand

Only at the end of the last phase will the software be ready

Due to its rigidity, management is simple: each stage has a clear result and process review

High risk and uncertainty

The development stages are carried out one by one

Not the best choice for complex and object-oriented projects

Applicable to small or medium-sized projects with clear and ambiguous requirements

Not suitable for long term projects

Easy to identify key points in the development cycle

The progress of the stage is difficult to measure, but it is still in the development stage

Easy to classify and prioritize tasks

Integration is done at the end, and there is no option to identify problems in advance

Use case of waterfall SDLC model:


  • These requirements are accurately documented
  • Stable product definition
  • The technology stack is predefined, which makes it not dynamic
  • There is no ambiguity
  • The project is short


Iterative SDLC model

The iterative SDLC model does not require a complete list of requirements before the project starts. The development process can start with the requirements for features and can be extended later. The process is repetitive, allowing new versions of the product to be made for each cycle. Each iteration (lasting two to six weeks) includes developing a separate component of the system, which is then added to the previously developed functionality. In mathematical terms, an iterative model is the implementation of a sequential approximation method; this means gradually approaching the planned final product shape.



Strengths

Weakness

Some features can be developed quickly at the beginning of the development lifecycle

Iterative model needs more resources than waterfall model

Parallel development can be applied

Need continuous management

Progress is easy to measure

Architectural or design issues may arise as all requirements are not foreseen at the short-term planning stage

Shorter iterations are - easier testing and debugging phases

Bad choices for small projects

It is easier to control the risk because the high-risk task is completed first

This process is difficult to manage

Problems and risks defined in an iteration can be prevented in the next sprint - even at the end of the project, the risks may not be fully determined

Even in the final stages of a project, the risks may not be fully determined

Flexibility and readiness for change requirements

Risk analysis needs the participation of high-quality experts

Use cases of iterative model:


  • The requirements for the final product are strictly predefined
  • Suitable for large projects
  • The main tasks are predefined, but the details may advance over time


Spiral SDLC model

Spiral model - SDLC model, which combines architecture and prototype in phases. It is a combination of iterative and waterfall SDLC models, and has an important risk analysis focus. The main problem of spiral model is to determine the right time to enter the next stage. It is suggested that the initial set time range should be taken as the solution to this problem. Even if the work of the previous phase has not been completed, the transition to the next phase will be completed according to the plan. The plan was introduced based on statistics and could be received in previous projects, even from the experience of individual developers.



Strengths

Weakness

The life cycle is divided into small parts. If the risk concentration is high, the stage can be completed in advance to solve the problem

It can be quite expensive

The development process is accurately recorded and can be expanded according to changes

Risk control requires the participation of highly skilled professionals

Scalability allows changes to be made and new features added at a relatively late stage

May not work on small projects

Early work prototypes have been completed - users can point out these defects more quickly

A large number of intermediate stages require too much documentation

Use case of spin model


  • Customer uncertainty requirements
  • Significant editing is expected during the development cycle
  • These projects are very important to prevent intermediate risks
  • New products should be released in several stages to get enough customer feedback


Agile SDLC model

In the agile method after each development iteration, the customer can see the results and understand whether he is satisfied or not. This is one of the advantages of agile software development lifecycle model. One of its disadvantages is that it is difficult to estimate resources and development costs due to the lack of clear requirements. Extreme programming is one of the practical applications of agile model. The basis for this model includes short weekly meetings - sprint is part of the scrum approach.



Strengths

Weakness

The correction of functional requirements is implemented into the development process to provide competitiveness

The final cost cannot be measured due to permanent changes

Projects are divided into short and transparent iterations

The team should be highly professional and customer oriented

Flexible change process minimizes risk

The new requirements may conflict with the existing architecture

Quick release of the first product release

With all corrections and changes, the project may exceed the expected time


  • Use cases of agile model:
  • Dynamic change of user demand
  • Because of many iterations, the implemented changes are cheaper
  • Unlike the waterfall model, it only needs an initial plan to start the project


Write a Comment
Comment will be posted after it is reviewed.