The software process model framework is specific to the project. Thus, it is essential to select the software process model according to the software which is to be developed. The software project is considered efficient if the process model is selected according to the requirements. It is also essential to consider time and cost while choosing a process model as cost and/ or time constraints play an important role in software development. The basic characteristics required to select the process model are project type and associated risks, requirements of the project, and the users.
One of the key features of selecting a process model is to understand the project in terms of size, complexity, funds available, and so on. In addition, the risks which are associated with the project should also be considered. Note that only a few process models emphasize risk assessment. Various other issues related to the project and the risks are listed in Table.
Table Selections on the Basis of the Project Type and Associated Risks
Project Type and Associated Risks | Waterfall | Prototype | Spiral | RAD | Formal Methods |
Reliability requirements | No | No | Yes | No | Yes |
Stable funds | Yes | Yes | No | Yes | Yes |
Reuse components | No | Yes | Yes | Yes | Yes |
Tight project schedule | No | Yes | Yes | Yes | No |
Scarcity of resources | No | Yes | Yes | No | No |
The most essential feature of any process model is to understand the requirements of the project. In case the requirements are not clearly defined by the user or poorly understood by the developer, the developed software leads to ineffective systems. Thus, the requirements of the software should be clearly understood before selecting any process model. Various other issues related to the requirements are listed in Table.
Table Selection on the Basis of the Requirements of the Project
Requirements of the Project | Waterfall | Prototype | Spiral | RAD | Formal Methods |
Requirements are defined early in SDLC | Yes | No | No | Yes | No |
Requirements are easily defined and understandable | Yes | No | No | Yes | Yes |
Requirements are changed frequently | No | Yes | Yes | No | Yes |
Requirements indicate a complex System | No | Yes | Yes | No | No |
Software is developed for the users. Hence, the users should be consulted while selecting the process model. The comprehensibility of the project increases if users are involved in selecting the process model. It is possible that a user is aware of the requirements or has a rough idea of the requirements. It is also possible that the user wants the project to be developed in a sequential manner or an incremental manner (where a part is delivered to the user for use). Various other issues related to the user’s satisfaction are listed in Table.
Table Selection on the Basis of the Users
User Involvement | Waterfall | Prototype | Spiral | RAD | Formal Methods |
Requires Limited User Involvement | Yes | No | Yes | No | Yes |
User participation in all phases | No | Yes | No | Yes | No |
No experience of participating in similar projects | No | Yes | Yes | No | Yes |