Advantages of waterfall model:This model is simple and easy to understand and use.
each phase has specific deliverables and a review process
It is easy to manage due to the rigidity of the model
Disadvantages of waterfall model:
Once an application is in the testing stage, it is very difficult to go back and change something that was not well-thought out in the concept stage.
When to use the waterfall model:
This model is used only when the requirements are very well known, clear and fixed.
Product definition is stable.
Technology is understood.
Example: employee pay roll,car manufac
Advantages of
V-model:
Testing activities like planning, test designing happens well before coding.
This saves a lot of time.
Disadvantages of
V-model:
Very rigid and least flexible.
No early prototypes of the software are produced.
In the diagram above when we work iteratively we create rough product or product piece in one iteration, then review it and improve it in next iteration and so on until it’s finished. As shown in the image above, in the first iteration the whole painting is sketched roughly, then in the second iteration colors are filled and in the third iteration finishing is done. Hence, in iterative model the whole product is developed step by step.
Advantages of
Iterative model:
create a high-level design of the application
avoids the downward flow of the defects.
we can get the reliable user feedback
less time is spent on documenting and more time is given for designing.
Disadvantages of Iterative model:
Costly system architecture or design issues may arise because not all requirements are gathered up front for the entire lifecycle
Advantages of
Spiral model:
High amount of risk analysis
Good for large and mission-critical projects.
Strong approval and documentation control.
Disadvantages of Spiral model:
Can be a costly model to use.
Risk analysis requires highly specific expertise.
Doesn’t work well for smaller projects.
example:Windows 3.1 to windows 2003.
It is based on iterative and incremental development, where requirements and solutions evolve through collaboration between cross-functional teams.Software is developed in incremental, rapid cycles. This results in small incremental releases with each release building on previous functionality. Each release is thoroughly tested to ensuresoftware quality is maintained.
Advantages of
Agile model:
People and interactions are emphasized rather than process and tools.
Regular adaptation to changing circumstances.
Disadvantages of Agile model:
The project can easily get taken off track if the customer representative is not clear
There is lack of emphasis on necessary designing and documentation.
http://istqbexamcertification.com/what-is-agile-methodology-examples-when-to-use-it-advantages-and-disadvantages/
rapid application development (RAD) model are:
Business modeling: The information flow is identified between various business functions.Data modeling: Information gathered from business modeling is used to define data objects that are needed for the business.Process modeling: Data objects defined in data modeling are converted to achieve the business information flow to achieve some specific business objective. Description are identified and created for CRUD of data objects.Application generation: Automated tools are used to convert process models into code and the actual system.Testing and turnover: Test new components and all the interfaces.
Advantages of the RAD model:
Reduced development time.
Increases reusability of components
Quick initial reviews occur
Disadvantages of RAD model:
Depends on strong team and individual performances for identifying business requirements.
Advantages of Incremental model:
Generates working software quickly and early during the software life cycle.
This model is more flexible – less costly to change scope and requirements.
It is easier to test and debug during a smaller iteration.
Easier to manage risk because risky pieces are identified and handled during it’d iteration.
Disadvantages of Incremental model:
Needs good planning and design.
Needs a clear and complete definition of the whole system before it can be broken down and built incrementally.
Total cost is higher than waterfall.
When to use the Incremental 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.
https://www.sdlc.ws/incremental-model/
design, implementation and analysis. During the design phase of the first increment, the functionality with topmost priority from the project activity list is selected and the design is prepared. In the implementation phase, the design is implemented and tested. In the analysis phase, the functional capability of the partially developed product is analyzed. The development process is repeated until all the functions of the project are implemented.
Example:You can implement the incremental approach to develop the banking software. In the first increment, you can implement the personal banking feature and deliver it to the customer. In the later increments, you can implement the insurance services, home loans, and automobile loans features of the bank.
Software Prototyping
The Software Prototyping refers to building software application prototypes which display the functionality of the product under development but may not actually hold the exact logic of the original software
stepwise approach to design a software prototype:
Basic Requirement Identification: This step involves understanding the very basics product requirements especially in terms of user interface.
Developing the initial Prototype: The initial Prototype is developed in this stage, where the very basic requirements are showcased and user interfaces are provided.
Review of the Prototype:The prototype developed is then presented to the customer and the other important stakeholders in the project.
Revise and enhance the Prototype: The feedback and the review comments are discussed during this stage and some negotiations happen with the customer based on factors like , time and budget constraints and technical feasibility of actual implementation.