The final goal of a system development project is to produce an organized set of components that work together to meet needs of the system's clients (users). Our interest is in the development of systems that utilize computer hardware and software.
As shown in Figure 1, system development generally involves three different types of activities or tasks. The analysis task determines what must be done, the design task specifies how it should be done, and the build task generates code for the working system.
There are a large number of methods that have been proposed to help guide and manage system development. At one extreme are those who try to sequentially do all of the analysis, then all of the design, then all of the building. At that other extreme are those who try to iteratively do some analysis, then some design, then some building. Then there are those who advocate methods that are somewhere between these two extremes. Although these methods differ in the emphasis and details, they all analyze, design, and build.
Analysis generally begins when a request is received to develop a new system or correct a problem in an existing system. Analysis is the process of understanding the true nature of the request. It is also a process that must identify and document abstractions that are relevant to the problem that must be solved. The output of analysis should be a set of requirements that state what the system must be able to do without regard to the technology that might be used when the system is built. In other words, the main goal of analysis is to identify and document the essential requirements that the system must satisfy. These requirements should capture the essense of the system.
Since most development projects encounter resource limits and organizational mandates that constrain the choice of technologies that can be used to build the system, another goal of analysis is to identify and document these constraints.
Design is the process of developing a strategy to solve the problem. The input to design should be the essential requirements and constraints that were identified during analysis. The output of design is the specifications for a system that meets the requirements. The specifications should identify technologies, model the system architecture, and describe system components. In other words, the main goal of design is to map the essential requirements into practical requirements that the system, when built with the chosen technologies, must satisfy.
Building the system is the process of converting the practical requirements into manual procedures and automated programs that interact to form a working system. Building includes acquiring hardware and software, configuring networks, writing and testing programs, and creating user documentation.
Prepared by David L. March -- Last Revised on March 10, 2003
COPYRIGHT © 2003 BY DAVID L. MARCH