Software Engineering: Software Development Lifecycle (SDLC)
- 2020-12-03 22:37:43
- philip
- Original 3000
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
Products
- ZDOO
- ZDOO Cloud
Support
- Request Demo
- Tech Forum
- GitHub
- SourceForge
About Us
- Company
- Private Policy
- Blogs
- Partners
Contact Us
- Google Groups
- Leave a Message
- Email: philip@easycorp.ltd
- Skype: philip517