Software Engineering
Project Lifecycles
The phases Data gathering and Problem redefinition are concerned with understanding what the problem is about; the Finding ideas phase attempts to identify ideas that help us to understand more about the nature of the problem and possible solutions. Finding solutions is concerned with providing a solution to the problem and Implementation puts the solution into practice. This approach to problem solving divides a task into subtasks, each with a particular focus and objective.
The information systems development process may be subdivided simply into three main tasks: understanding the problem, choosing and designing a solution, and finally building the solution.
There are many other ways of subdividing an information systems project but they all include an analysis activity that identifies what the system should do, a design activity that determines how best to do it and some construction activity that builds the system according to the design. The phases that contain these activities are given various names but the core activities remain the same.
Subdividing the development process produces smaller tasks that can be managed more easily. This helps achieve the appropriate quality standards and makes project management and budgetary control easier. We have already alluded to the benefits to be gained from managing the software development process effectively and have explicitly identified poor project management as a source of many of the problems. Building a software system is very different from building almost any other human artefact. Software is intangible, it cannot be weighed, its strength cannot be measured, its durability cannot be assessed, and its resistance to physical stress cannot be gauged. Of course we try to find (with some success) measures of a software system that enable us to make judgements about its size, its complexity, the resource required to build it, and so on. But these measures are much less well understood than their counterparts in the design and construction of tangible artefacts such as buildings.
Waterfall lifecycle model
Just as an animal goes through a series of developmental stages from its conception to its demise so, it is argued, does a computerized information system. Various lifecycle models can be applied to computerized information systems development.
Figure 3.3 shows one version of the waterfall lifecycle. Strictly speaking this does not cover the complete lifecycle as there is no stage concerned with the retirement or decommissioning of the information system. Some lifecycle models are more comprehensive than others.
Earlier in Section 3.2 we identified strategic information systems planning and business modelling as important precursors to information systems development, and these could be viewed as two preliminary stages. The successful completion of these activities should ensure that the information system that is developed is appropriate to the organization. It can be argued that these are part of the information systems development lifecycle. However, their focus is not on computerization, per se, but rather the identification of organizational requirements. Their importance is almost universally accepted for commercially oriented computer systems development. There is a distinction to be made between systems development, where a system may incorporate human, software and hardware elements, and software development that focuses primarily on software construction, although it involves the human users and the hardware upon which it executes. It is perhaps a matter of perspective. Thus a software development Project is, by definition, focused solely on producing a software system that will satisfy the user requirements, whereas strictly speaking a systems development project has a wider scope and may not even include software as part of the solution.
Phase | Output deliverables |
---|---|
System engineering | High-level architectural specification |
Requirements analysis | Requirements specification Functional specification Acceptance test specification |
Design | Software architecture specification System test specification Design specification Subsystem test specification Unit test specification |
Construction | Program code |
Testing | Unit test report Subsystem test report System test report Acceptance test report Completed system |
Installation | Installed system |
Maintenance | Change requests Change request report |
These products can be used to monitor productivity and the quality of the activity Performed. Several phases have more than one deliverable. If we need to show a finer level of detail to assist in the monitoring and control of the project, phases can be split so that each sub-phase has only one deliverable. Alternatively, a phase may be viewed as comprising a series of activities, each of which has a single deliverable and can be managed individually. Different types of project and different styles of organization may suit different styles of project lifecycle. When an organization embarks upon a systems development project it should specify the stages in the systems development process, their associated deliverables and the type of lifecycle to be used in a way that is applicable to its organizational context and the nature of the systems being developed.
Comments
Post a Comment