Introduction to Fish Model
Fish model is one of the software development methodologies in which both verification (Review) and validation (Testing) are done parallelly by the separate team in each phase of the model. The structure of this model looks like a fish, hence the name shows fish model. It is a time consuming and expensive model. One can be rest assured that both verification and validation are carried out in parallel by separate teams at each step of the model.
Block Diagram of Fish Model
Phases of Fish Model
It is an SDLC methodology having all phases of the software development life cycle process. All the phases are related to the verification and validation process to complete develop the application. These phases are:
- Project Initiation Phase
- Requirement Gathering Phase
- Analysis Phase
- Design Phase
- Coding Phase
- Testing Phase
- Deployment or Release Phase
- Maintenance Phase
1. Project Initiation Phase
It is the first phase in the Fish model i.e. Project Initiation Node (PIN) or a Contract Sign. Here a service level agreement (SLA) would be signed in between client and organization for the work is going to begin.
2. Requirement Gathering Phase
In this phase, the Business Analyst (BA) will gather all the requirements from the client, to prepare Business Requirement Specifications (BRS) document and a parallelly separate team will allocate to review the document.
3. Analysis Phase
Whatever requirements are gathered from the client, the System Architect(SA) will do the analysis of it, to prepare SRS (Software Requirement Specifications) or FRD(Functional Requirement Document) and this phase also review will be done by a separate team.
4. Design Phase
The Technical Lead or Technical Architect will do the design of a project prototype by using those analyzed requirements and to prepare Technical Design Document (TDD).In this phase both High-level design & Low-level design takes place. Similarly, the review will be done by a separate team.
5. Coding Phase
The developers write the appropriate code using different technologies (like java or .net or python etc.) to develop the application and parallelly to test the individual executable part of the software is called Unit Testing. The units which are developed by developers, to combine all the units are called Integration and to test the interfaces and interaction between units are called Integration Testing. The end to end testing of the developed application by an independent testing team in the attesting environment is called Software Testing.
It is a testing of application done from a business point of view by the client to gain confidence for release and it is fit for purpose, is known as Acceptance Testing or User Acceptance Testing (UAT).it has two types, such as:
- Alpha Testing: It is known as business acceptance testing or factory level testing, which is done by the client in the development organization site.
- Beta Testing: It is known as product verification testing or field testing, which is done by the client in the place where the software is being used.
For some particular project, we need testing more than one system combined, is known as System Integration Testing (SIT). Ex: IRCTC Application with Banking.
6. Deployment or Release Phase
After completion of all types of testing, the application is ready for deployment or release. During this phase, the before release testing is done by the client is called Release Testing.
7. Maintenance Phase
After releasing the application, if any change on the code or technology or environment of the application i.e. called maintenance and related testing process is called Maintenance Testing. It is done by the testing team. In this phase, we go for Impact Analysis.
- It is an SDLC model to develop software with extreme quality.
- It is for more secured projects and also it is more costly.
- Verification (Quality Assurance (QA)): It is a process-oriented to prevent defect and to improve the development process, so design review is part of this. It performed without program execution.
- Validation (Quality Control (QC)): It is product-oriented to finds the defect and improves the product quality, so product testing is part of this. It performed with program execution.
- This model is mainly a parallel combination of quality assurance and quality control.
- This model generates two reports at the end of each model, one for verification and one for validation.
Advantages & Disadvantages of Fish Model
Below are the advantages and disadvantages of Fish Model:
- It is easy to implement.
- Every stage of this model is tested by a separate team for completeness and correctness of application, so it provides a high-quality software product.
- It provides full documentation of the application.
- It is mostly used for secured and complex projects.
- In the model, the review & testing starts from the project initiation node to the maintenance phase, due to this reason the fish model is a costly methodology for development.
- Similarly, it is a time-consuming process to develop the product.
- This model is not preferred for a small project.
- It is an expensive model so the development failure will cause a lot of damage and loss.
- The risks are not identified at the initial stage and it can’t be prevented.
- We can’t change the requirements in the middle of the process.
In this article we specifically discussed with one of the SDLC methodologies is called Fish model. By which we used to develop a big project as a highly risky project with exceptional quality. Nowadays, some software industry uses this model to develop software product like the Health Care sector. This article also provides the pros and cons of the Fish model. For any project, if Quality is a highly essential parameter then choose this model. This model of software development looks like the Waterfall model but, it involves continuous or simultaneous deployment of verification & validation processes.
This is a guide to Fish Model. Here we discuss the Phases of Fish Model like Project Initiation Phase, Requirement Gathering Phase, Analysis Phase, etc. along with Advantages and Disadvantages. You can also go through our other suggested articles to learn more –