So, what is the most important concept of software development? Finding a good process and sticking to it. Several proven software-development process are detailed next.
The Waterfall Model
Probably the most well-known software-development process is the waterfall model. This model operates as the name suggests: Developers are limited to going back only one stage; therefore, the process flows logically from one stage to the next. An advantage of this method is that it provides a sense of order and is easily documented. The primary disadvantage is that it does not work large and complex projects.
The Spiral Model
This model was developed in 1988 by Barry Boehm. Each phase of the spiral model starts with a design goal and ends with the client review. The client can be either internal or external, and is responsible for reviewing the progress. Analysis and engineering efforts are applied at each phase of the project. An advantage of the spiral model is that it takes risk much more seriously. Each phase a of the project contains its own risk assessment. Each time a risk assessment is performed, estimated costs to complete and schedules are revised and then a decision is made to continue or cancel the project. The disadvantage of this method is that it is much slower and takes longer to complete.
Joint Application Development (JAD)
JAD is a process that was developed at IBM in 1977. Its purpose is to accelerate the design of information technology solutions. An advantage of JAD is that it helps developers work effectively with users to develop applications that work. A disadvantage is that it requires users, expert developers, and technical experts to work closely together throughout the entire process. Projects that are good candidates for JAD include some of the following characteristics:
Rapid Application Development (RAD)
RAD is a fast application-development process that was created to deliver fast results. RAD is not suitable for all projects. An advantage of RAD is that it works well for projects that are on strict time limits and must be developed quickly. However, this can also be a disadvantage if the quick decisions lead to poor design and product. That is why you won't see RAD used for things such as shuttle launches or other highly critical systems. Two of the most popular RAD systems for Microsoft Windows are Delphi and Visual Basic.
Computer-Aided Software Engineering (CASE)
CASE enhances the software development life cycle by using software tools and automation to perform systematic analysis, design, development, and implementation of software products. Its advantage is that it is useful for large, complex projects that involve multiple software components and a lot of people. Its disadvantages include that it requires building and maintaining software tools, and training developers to understand how to use the tools effectively. CASE can be used for tasks such as these:
Prototyping is the process of building a proof-of-concept model that can be used to test various aspects of a design and verify its marketability. Prototyping is widely used during the development process.