When it comes to SDLC models there are many types of models in software development life cycle, mostly designed and defined followed during the software development process. Especially these models are referred as software development process models. Each model follows a series of steps unique to its type to ensure success in the process of software development.
The linear sequential model defines the following activities like:
- Requirement analysis
This process is mainly focused on the software requirements to understand the nature of the programs which is built. Any software analyst must understand the information domain for the software as well -Requirement functions, behaviour, performances and interfaces.
- Design
It is a multi-step procedure which focuses on four attributes data structure, software architecture, interface representation, procedural details.
- Code generation
The design must be translated into machine understandable or readable format.
- Testing
Conducting tests shows the error and makes sure that defined input will produce actual results that agree with required results.
- Support
When errors are encountered then only the change will occur.
Sometimes the linear sequential models fail, because of reasons like changes cause the confusion as the project team proceeds. It will be difficult for the customer to state all requirements explicitly. The linear sequential model requires all information about the project explicitly. A big blunder undetected until the working program is reviewed can be disastrous.
WATERFALL MODEL:
Sequential models such as waterfall model depend on intensive periods of collecting and refining the requirements for a product before design and development activity which will take place. The products which are developed using these models are planned to complete when released to customers.
The waterfall model is the first process model to be introduced. It is very simple and easy to understand and also to use. In this model each phase will be completed fully before the next phase. This type of software model is used for small projects and also which have doubtful or uncertain requirements.
There are different phases of waterfall model
Let us understand the phases by an example consider a government organisation application. We will consider that a government organisation is planning to build a new application and approaches a software organisation and discuss with team about the project.
Requirements gathering, plan and Requirement Analysis:
This is the first and most important phase where requirements are collected by the business analyst and analysed by the team. During this phase the requirements are documented and whatever the clarifications are required, they are gathered. The project team has to answer some questions like:
Whether the application will be used in more than one country? Does it has to support multiple languages? How many users are going to use it?
System design:
The architect and the senior team members will start working on the design, the high level and low level designs for the project. The architect creates architecture diagrams in high level and low level design document.
Implementation:
The development team works on developing the code for the project. They take the design and make sure that the solution follows the design chosen by the architect. The application includes many security features and audit logging features.
Testing:
The team tests the complete application and tries to identify any defects. These defects will be fixed by the developers and the testing team tests to makes sure that the defect is fixed.
Deployment:
The team builds as well as installs the application in the servers. Some of the high level activities include installing OS in servers, security patches, installing web servers and application servers and databases.
Maintenance:
During this phase, the team focuses on smoothly running of the application on the servers without any downtime.
Advantages:
- This model is very simple to use and understand.
- It is very easy to manage because of its rigidity each phase has specific deliverables and also review process.
Disadvantages:
- No working software is developed until late during the life cycle.
- It has high amount of risks and uncertainty.
V-MODEL:
V-model is considered as a highly disciplined SDLC model where there is a testing phase corresponding to each development phase. It is called as an extension to waterfall model. Here testing at each development stage is done through sequential way. It is called as verification model.
Consider an example, assume you are assigned a task to develop custom software for the client. Apart from your technical background, what sequence of steps you follow to achieve that task can be explained as:
Requirement gathering– we can collect much information and details about the specific software.
Design stage– we try to plan possible programming language and database language like oracle suitable for the project and also some functions and architecture.
Build stage– After design we start building the software or developing the software with suitable codes.
Test stage– we test the software and verify it for the defects and fix it.
Deployment stage– Irrespective of the environment we deploy the application.
Maintenance stage– Once the system is ready to use we may change the code as per the customer request later.
Advantages:
- Simple to learn and use.
- Avoids the downward flow of the defects.
Disadvantages
- It is very rigid and not flexible.
- If any changes have to be done in the middle then documentsand requirement document need to be updated.