Software Development process Model
For the software development process, the goal is to produce a high-quality software product.It therefore focuses on activities directly related to production of the software, for example, design, coding, and testing. As the development process specifies the major development and quality control activities that need to be performed in the project, it forms the core of the software process. The management process is often decided based on the development process.
A project’s development process defines the tasks the project should per-form, and the order in which they should be done.Due to the importance of the development process, various models have been proposed. In this Post we will discuss Waterfall model.
Waterfall Model
The simplest process model is the waterfall model, which states that the phases are organized in a linear order. The model was originally proposed by Royce.
In this model, a project begins with feasibility analysis. Upon successfully demonstrating the feasibility of a project, the requirements analysis and project planning begins. The design starts after the requirements analysis is complete, and coding begins after the design is complete. Once the programming is completed, the code is integrated and testing is done. Upon successful completion of testing, the system is in-stalled. After this, the regular operation and maintenance of the system takes place.
By doing this, the large and complex task of building the software is broken into smaller tasks (which, by themselves, are still quite complex) of specifying requirements, doing design, etc. Separating the concerns and focusing on a select few in a phase gives a better handle to the engineers and managers in dealing with the complexity of the problem.
The requirements analysis:
The requirements analysis phase is mentioned as "analysis and planning". Planning is a critical activity in software development. A good plan is based on the requirements of the system and should be done before later phases begin. However, in practice, detailed requirements are not necessary for planning. Consequently, planning usually overlaps with the requirements analysis, and a plan is ready before the later phases begin. This plan is an additional input to all the later phases.
The following documents generally form a reasonable set that should be produced in each project:
– Requirements document
– Project plan
– Design documents (architecture, system, detailed)
– Test plan and test reports
– Final code
– Software manuals (e.g., user, installation, etc.)
Recommended to Read: SDLC
Advantages:
One of the main advantages of the waterfall model is its simplicity. It is conceptually straightforward and divides the large task of building a software system into a series of cleanly divided phases, each phase dealing with a separate logical concern.
Limitations:
The waterfall model, although widely used, has some strong limitations. Some of the key limitations are:
1. It assumes that the requirements of a system can be frozen (i.e., baselined) before the design begins. This is possible for systems designed to automate an existing manual system. But for new systems, determining the require-ments is difficult as the user does not even know the requirements. Hence, having unchanging requirements is unrealistic for such projects.
2. Freezing the requirements usually requires choosing the hardware .A large project might take a few years to complete. If the hardware is selected early, then due to the speed at which hardware technology is changing, it is likely that the final software will use a hardware technology on the verge of becoming obsolete.
3. It encourages ―requirements bloating‖. Since all requirements must be specified at the start and only what is specified will be delivered.
4. It is a document-driven process that requires formal documents at the end of each phase.
I hope you enjoy this post,let me know your comments on this post and keep follow me for latest updates.
A project’s development process defines the tasks the project should per-form, and the order in which they should be done.Due to the importance of the development process, various models have been proposed. In this Post we will discuss Waterfall model.
Waterfall Model
The simplest process model is the waterfall model, which states that the phases are organized in a linear order. The model was originally proposed by Royce.
In this model, a project begins with feasibility analysis. Upon successfully demonstrating the feasibility of a project, the requirements analysis and project planning begins. The design starts after the requirements analysis is complete, and coding begins after the design is complete. Once the programming is completed, the code is integrated and testing is done. Upon successful completion of testing, the system is in-stalled. After this, the regular operation and maintenance of the system takes place.
By doing this, the large and complex task of building the software is broken into smaller tasks (which, by themselves, are still quite complex) of specifying requirements, doing design, etc. Separating the concerns and focusing on a select few in a phase gives a better handle to the engineers and managers in dealing with the complexity of the problem.
The requirements analysis:
The requirements analysis phase is mentioned as "analysis and planning". Planning is a critical activity in software development. A good plan is based on the requirements of the system and should be done before later phases begin. However, in practice, detailed requirements are not necessary for planning. Consequently, planning usually overlaps with the requirements analysis, and a plan is ready before the later phases begin. This plan is an additional input to all the later phases.
The following documents generally form a reasonable set that should be produced in each project:
– Requirements document
– Project plan
– Design documents (architecture, system, detailed)
– Test plan and test reports
– Final code
– Software manuals (e.g., user, installation, etc.)
Recommended to Read: SDLC
Advantages:
One of the main advantages of the waterfall model is its simplicity. It is conceptually straightforward and divides the large task of building a software system into a series of cleanly divided phases, each phase dealing with a separate logical concern.
Limitations:
The waterfall model, although widely used, has some strong limitations. Some of the key limitations are:
1. It assumes that the requirements of a system can be frozen (i.e., baselined) before the design begins. This is possible for systems designed to automate an existing manual system. But for new systems, determining the require-ments is difficult as the user does not even know the requirements. Hence, having unchanging requirements is unrealistic for such projects.
2. Freezing the requirements usually requires choosing the hardware .A large project might take a few years to complete. If the hardware is selected early, then due to the speed at which hardware technology is changing, it is likely that the final software will use a hardware technology on the verge of becoming obsolete.
3. It encourages ―requirements bloating‖. Since all requirements must be specified at the start and only what is specified will be delivered.
4. It is a document-driven process that requires formal documents at the end of each phase.
I hope you enjoy this post,let me know your comments on this post and keep follow me for latest updates.
No comments:
Post a Comment