First thing first what is a process model? Well it is a set of actives which describes the arrangement of the phase and also the dependency of the phases on each other.
Take for instance design specification, testing and ultimately implementation are the most important parts of the model.
Every model has
certain properties
- Order of phase
- Activity associated with each phase
- Time limit
- Team
- Tools and methods
These model are used by organizations for routine works to make the project more robust and flexible. Obviously there is a difference in actual execution for every organization. A lot depends on the skills of the team, size of the company or size of the project.
The process model can also be customized as per customers need and demands.
Think of it as a physical product it is measured by its performance and appearance but the software is judged mainly by its performance. Contradactory to this now many companies are working on performance as well as
appearance or what we know as user-friendly GUI.
Let’s discuss
some most important models and their limitations in industry
Waterfall Model
The waterfall
model is the oldest approach, In this method, project activities have a sequential
order (Linear sequence), which in simple terms is described as one phase does not start until the previous phase has been finished.
This model
shows common engineering practices. This model does not offers flexibility and one cannot add or remove stages as per need. Even if we can it costs a lot of money which of course will reflect in the overall costs. This model works fine in small scale project, but in big projects, this model is time-consuming and not cost effective.
Evolutionary Model
In this model you get a head start with the core of the system that is already clearly defined or the company have had some previous
experience in the field. The customer tests the part and defines his new requirement at every step. Possible iteratations until the customer is satisfied.
Feedback is important in any software model, if the company is getting feedback at every step of development, then it is the easiest and fastest way to track error, and new version developed in this process will most likely be error free.
This is the main disadvantage of the waterfall model.
This model is
most appropriate for small systems or projects with a shorter lifetime. This method
is used when the customer is not sure about their requirement at the starting time of the project. Customer opinion is important at every stage of the development.
Disadvantage
- Due to the uncertain requirements of customers, major parts can be rewritten during the process.
- The code is poorly structured due to continuous changes.
- All these uncertainites definitely increases cost.
Incremental Model
This model
tries to combine the waterfall model and the evolutionary model. As the name suggests this
method of software development is designed, implement, and tested
incrementally.
Customer is
able to use the most essential part of software before delivery. This model is popular
in the present time
Spiral Model:
Each process is in the loop of a spiral. Each loop has four part:
- Objective
- Risk assessment and risk reduction
- Development and validation
- Planning the next phase
Summary:
- The evoluation and incremental model are good for small and medium sized project.
- Waterfall and spiral model are used for large project such as compnay or where more then one person are working.
0 Comments
If you have any doubt and suggestion Please let me know