Introduction
A model is a pictorial generalization (abstract) including a group of logical and quantitative relationships between the Members of a group of variables or primitives. An essential reason behind constructing a model is that
Software process models
Waterfall model
The waterfall model or the classic life cycle is occasionally called the linear sequential model.
It indicates a systematic approach to software development that starts at the system level and passes through analysis, design, coding, testing and support .
The development stages of software model
Requirements Analysis and Definition - The system's constraints, services and goals are influenced by discussion with system users. After that they are defined and work as a system specification.
System and Software Design - The needs are divided by the system design process to moreover hardware or software systems. The system design process creates an overall process architecture. Software design contains identifying and describing the basic software system abstractions and their relationships.
Implementation and Unit Testing - In this phase the software design is thought to be a set of programs or program units. Unit testing includes verifying that each unit Satisfies its details.
Integration and System Testing - The single program units or programs are united and tested as a complete system to assure that the software requirements have been fulfilled. The software system is delivered to the customer after testing.
Operation and Maintenance - This is the longest life-cycle stage of development. In this phase the system is installed and used practically. Maintenance contains fixing errors which were not found in earlier stages of the life cycle, upgrading the implementation of system units and enhancing the system's service as new requirements are found.
Advantages of waterfall model
- Quite easy to understand the model.
- Each stage of the development proceeds in sequence.
- Approves administrative control where a schedule with deadlines is set for each stage of development.
- Assists in controlling schedules , budgets and documentation.
Disadvantages of waterfall model
- Requirements of client need to be prescribed before the development proceedings.
- Changes of requirements in successive phases of the waterfall model cannot be done. This means that once an application is in the testing phase, it is complicated to join changes.
- No user participation and a working version of the software is available when the software is developed.
- Does not involve risk management.
Prototype Model
The main objective of the prototype model is to challenge the limitations of the waterfall model.
The basic idea of a prototype model is in place of freezing the requirements before any design or coding can proceed, a circular prototype is built to help to understand the requirements. The prototype model begins with requirements collecting. Developer and client come together and create the objectives of the software, identify the requirements known and outline areas where additional definition is necessary.
A "quick design " then happens. The quick design highlights on a representation of those Features of the software that Will be visible to the client or user. The quick design guides to the construction of a prototype model . Then , the client analyzes the prototype and clarifies requirements for the software to be developed.
The prototype model works as a procedure for identifying software requirements. If a working prototype is made, the developer tends to use existing program fragments or applies tools that enable working programs to be produced instantly.
Despite the fact that it has some difficulties in its implementation, prototyping can be an effective model for software engineering. As a result of its effectiveness, one should define the rules in the commencement (starting) . For instance, both the customer and the developer must acknowledge that the prototype is created as a mechanism for defining requirements.
Prototyping is usually not used, because it is believed that development costs may be high.
Advantages of prototype model
- Prototype model offers a working model to the user at the initial stage, allowing early assessment and boosting user confidence.
- Prototype models help to classify requirements, as a result reducing ambiguity and improving communication between the developer and the user.
- Prototype models assist in minimizing the risk associated with the project.
- Extensive involvement of users in software development.
Disadvantages of prototype model
- The developer lost concentration of the actual purpose of the prototype and the quality of the products.
- If the user is dissatisfied with the developed prototype, then a new prototype is developed. this process continues until an acceptable prototype.
- The main aim of Prototyping is fast development. Thus the design of the system can be affected as it is built in a series of layers without considering the union of all other components.
RAD model
The full form of RAD is Rapid application development. RAD is an incremental software development process model that has a very short development cycle. It is a high-speed edition of the linear Sequential model (waterfall model) where fast development is achieved by the use of component-based construction.
If requirements are renowned and scope of the project is restricted, the RAD method allows a development team to give a fully functional system within 60 to 90 days.
Advantages of RAD model
- The RAD model gives greater freedom as redesign is done as stated by the developer.
- Promotes user involvement.
- Chance of minor defects due to prototyping in nature.
Disadvantages of RAD model
- The RAD model is only useful for larger projects.
- RAD projects collapse if there is lack of engagement by the developers or the user to get the software completed on time.
- Not good enough when technical risks are high. It happens when the new application uses new technology or when new software demands a high degree of compatibility with the existing system.
Incremental model
The incremental model decreases rework and offers the customer a chance to hold up their detailed requirements until they have had certain experience with the system.
Advantages of incremental model
- Avoid the need to follow a Risk-driven approach in the software.
- Accomplish Cost-benefit analysis before strengthening software with capabilities.
- Not in any way involve a high complexity rate.
Disadvantages of incremental model
- Demands planning at the management and technical level.
- Lose validity when there is a time constraint in the project schedule or when the users cannot approve the phase output.
Spiral model
The complication with traditional software models is that they do not resolve enough with the ambiguity, which is essential to software projects. Crucial software projects have been unsuccessful because project risks were ignored and no one was ready when something unexpected happened. Boehm considered a recent model for the software development process named the spiral-model. All the activities of this model can be structured as a spiral which has many cycles.
Advantages of spiral model
- Avoid issues such as the risk-driven approach in the software.
- Define a system for software quality assurance activities.
Disadvantages of spiral model
- Analysis of project risks and its resolution is not an easy task.
- Tough to judge budget and schedule in the beginning , as some of the research is not done until the design of the software is developed.
Conclusion
In this article, we are going to learn about the role of software process models in the development of the software . Each and every model had advantages and disadvantages for the development of software, for this reason each model aims to remove the disadvantages of the previous model.