Pages

Friday, 27 March 2020

Software Engineering Process Models:- V Model:

VModel :

            V-model is also known as Verification and Validation (V&V) model. In this each phase of SDLC must be completed before the next phase starts. It follows a sequential design process same like waterfall model.

            It overcomes the disadvantages of waterfall model. In the waterfall model, we have seen that testers involve in the project only at the last phase of the development process.

        In this, test team involves in the early phases of SDLC. Testing starts in early stages of product development which avoids downward flow of defects which in turns reduces lot of re-work. Both teams (test and development) work in parallel. The test team works on various activities like preparing test strategy, test plan and test cases/scripts while the development team works on SRS, Design and Coding. Once the requirements were received, both the development and test team start their activities.

            Documentation is parallel in this model. While, developers are working on SRS (System Requirement Specification), testers work on BRS (Business Requirement Specification) and prepare ATP(Acceptance Test Plan) and ATC (Acceptance Test Cases) and so on.

            Testers will be ready with all the requirements such as Test Plan, Test Cases - by the time developers release the finished product. It saves lots of time.

            Let’s see how the development team and test team involves in each phase of SDLC in V Model.

               

1.   Once client sends BRS(Business Requirement Specification),both the teams (test and development) start their activities. The developers translate the BRS to SRS. The test team involves in reviewing the BRS to find the missing or wrong requirements and writes acceptance test plan and acceptance test cases.


2.   In the next stage, the development team sends the SRS the testing team for review and the developers start building the HLD (High Level Design Document) of the product. The test team involves in reviewing the SRS against the BRS and writes system test plan and test cases.


3.   In the next stage, the development team starts building the LLD (Low Level Design) of the product. The test team involves in reviewing the HLD (High Level Design) and writes Integration test plan and integration test cases.


4.   In the next stage, the development team starts with the coding of the product. The test team involves in reviewing the LLD and writes functional test plan and functional test cases.


5.   In the next stage, the development team releases the build to the test team once the unit testing was done. The test team carries out functional testing, integration testing, system testing and acceptance testing on the release build step by step.


Advantages:
·  Testing starts in early stages of product development which avoids downward flow of defects and helps to find the defects in the early stages

·      Test team will be ready with the test cases by the time developers release the software which in turns saves a lot of time


·      Testing is involved in every stage of product development. It gives a quality product.


·      Total investment is less due to less or no rework.
Disadvantages:
· Initial investment is more because test team involves right from the early stage.


· Whenever there is change in requirement, the same procedure continues. It leads more documentation work.


Software Engineering Process Models:-Spiral Model:

Models/Factors

Waterfall

Prototype

Incremental

Spiral

Agile

Requirement Specification

Fixed

Dynamic

Fixed but large

Fixed

Serum sprint fixed

Customer Involvement

Nil/low

High

Low/High

High

Moderate

Duration

small

small

large

large

Large

Expertise

High

Moderate

High

Very High

High

Example

Ice cream

Big Project

It is done Part by Part

Every part    needs to be checked ex:maggi

 



Spiral Model:
Spiral Model was first described by Barry W. Boehm(American Software Engineer) in 1986. Spiral model works in an iterative nature. It is a combination of both Prototype development process and linear development process (waterfall model). This model place more emphasis on risk analysis. Mostly this model adopts to the large and complicated projects where risk is high. Every Iteration starts with a planning and ends with the product evaluation by client.
Let’s take an example of a product development team (like Microsoft). They know that there will be a high risk and they face lots of difficulties in the journey of developing and releasing the product and also they know that they will release next version of product when the current version is in existence. They prefer Spiral Model to develop the product in an iterative nature. They could release one version of the product to the end user and start developing next version which includes new enhancements and improvements on previous version (based on the issues faced by the user in the previous version). Like Microsoft released Windows 8 and improved it based on user feedback and released the next version (Windows 8.1).

Spiral Model undergoes 4 phases.
Planning Phase – Requirement Gathering, Cost Estimation, Resource Allocation
Risk Analysis Phase – Strengths and weaknesses of the project
Design Phase – Coding, Internal Testing and deployment

Evaluation Phase – Client Evaluation (Client side Testing) to get the feedback

Advantages:

·       It allows requirement changes
·       Suitable for large and complicated projects
·       It allows better risk analysis
·       Cost effective due to good risk management

Disadvantages:

·       Not suitable for small projects
·       Success of the project depends on risk analysis phase
·       Have to hire more experienced resource especially for risk analysis


When to use spiral process model?

·       When costs and risk evaluation is important for medium to high-risk projects.
·       Long-term project commitment unwise because of potential changes to economic priorities
·       Users are unsure of their needs.
·       Requirements are complex
·       New product line Significant changes are expected (research and exploration)

Software Engineering Process Models:-Waterfall Model:

Models/Factors

Waterfall

Prototype

Incremental

Spiral

Agile

Requirement Specification

Fixed

Dynamic

Fixed but large

Fixed

Serum sprint fixed

Customer Involvement

Nil/low

High

Low/High

High

Moderate

Duration

small

small

large

large

Large

Expertise

High

Moderate

High

Very High

High

Example

Ice cream

Eye Testing

It is done Part by Part

Every part    needs to be checked ex:maggi 

 




Waterfall Model:

                           Waterfall Model is a traditional model. It is also called as Sequential Design Process, often used in SDLC, in which the progress is seen as flowing downwards like a waterfall, through the different phases such as Requirement Gathering, Feasibility Study/Analysis, Design, Coding, Testing, Installation and Maintenance. Every next phase is begun only once the goal of previous phase is completed. This methodology is preferred in projects where quality is more important as compared to schedule or cost. This methodology is best suitable for short term projects where the requirements will not change. (E.g. Calculator, Attendance Management).

Advantages:


·       Requirements do not change nor does design and code, so we get a stable product.This model is simple to implement. Requirements are finalized


·       earlier in the life cycle. So there won’t be any chaos in the next phases.


·       Required resources to implement this model are minimal compared to other methodologies


·       Every phase has specific documentation. It gives high visibility to the project manager and clients about the progress of the project. 


Disadvantages:
·       Backtracking is not possible i.e., we cannot go back and change requirements once the design stage is reached.


·       Change in requirements leads to change in design and code which results defects in the project due to overlapping of phases.


·       Customer may not be satisfied, if the changes they required are not incorporated in the product.


·       The end result of waterfall model may not be a flexible product


·       In terms of testing, testers involve only in the testing phase. Requirements are not tested in the requirement phase. It can’t be modified even though we identify that there is a bug in the requirement in the testing phase. It goes on till the end and leads to lot of re-work.


·       It is not suitable for long term projects where requirements may change time to time.


·       Waterfall model can be used only when the requirements are very well known and fixed.


When to use waterfall model?


·       This model can be used when the requirements of the complete system are clearly defined and understood.


·       Major requirements must be defined; however, some details can evolve with time.


·       There is a need to get a product to the market early.


·       A new technology is being used.


·       Resources with needed skill set are not available.


·       There are some high risk features and goals.