ITEE ITEE-1 | Page 133

Reference Precautions about the waterfall model Since it is impossible to advance different processes in parallel, it is necessary to shorten the time period of the processes themselves by working on the components of a single process that can be performed in parallel. However, in such cases, people and time are required to coordinate the parallel work, and costs tend to be higher than when parallel work is not carried out. Reference 2 Software development models The typical software development models are summarized below. Model Description Characteristics Waterfall model A development model that advances each process in sequence without backtracking, similar to the flow of a waterfall. Also, dividing the system into a number of subsystems and repeatedly carrying out requirements analysis, design, development, testing, and implementation is called an “incremental model.” This is the most common development model. Costs can be estimated relatively easily, and this model is often used in large scale developments. However, the amount of work that must be repeated if the system specifications change is extremely large. Spiral model A development model that divides the system into a number of subsystems and repeats the cycle from “requirements analysis” to “operation” for each subsystem. It develops the system by allowing it to evolve as it grows. It can shorten the period until the first subsystem is operated. Each subsystem is verified by the user (system user department), making it possible to incorporate their opinions into the next cycle. Prototyping model A development model that creates prototypes from an early stage of system development and obtains confirmation from the user (system user department) as development advances. It can identify any potential misunderstandings about the system between the user (system user department) and the developer at an early stage. It also has the effect of raising the awareness of the user (system user department) regarding the system. However, if prototypes are created repeatedly, cost management can become an issue. RAD “RAD” is a type of development that divides the system to be developed into a number of subsystems, and proceeds to develop them starting from the items with the highest priority. The goal is to develop the system in a short time and at low cost using sophisticated software development tools. RAD is often used in a prototyping model. Abbreviation for “Rapid Application Development.” Reference Reverse engineering “Reverse engineering” is a technique for creating new software by breaking down and analyzing existing software. It may include studying the relationship between modules and analyzing the system’s basic specifications. It is often carried out to maintain compatibility with the existing software. Waterfall model Requirements definition Systems architecture design Software architecture design Software detailed design Development (Programming) Testing Operation and maintenance 127