MSc-IT Study Material
January 2011 Edition

Computer Science Department, University of Cape Town
| MIT Notes Home | Edition Home |

Introduction

The previous chapters have hopefully shown you that unless software systems are well thought out and developed using a systematic approach, they can easily become catastrophic failures. Software process models have evolved to solve this, guiding the management of software projects. This chapter discusses system analysis and system design, which are used during the generic framework activities of communication and modelling (although they may be found in the others). Analysis and design helps us to understand the problem domain the software must solve, as well as the software itself.

System analysis

The previous chapter — Chapter 3, Requirements Engineering — discussed requirements engineering, which is concerned with what the software is required to do. Analysis is a tool to help with this: the analyst must determine — from the problem descriptions and incomplete and informal requirements — what it is that the software should do. This is can be an exciting and often challenging task, and focuses on describing what the problem is, rather than on how it will be solved.

In many cases, analysts build models of the existing system to help software engineers understand how the customers requesting the software are currently dealing with the problem the software should solve.

The result of the analysis is a system specification, a detailed, logical description of either the existing system, or of the new system. For the new system, this specification must satisfy the software requirements. This description must aim to fill in any gaps or ambiguities and make explicit any assumptions in the requirements.

System design

The software / system designer uses the system's specification as a starting point to determine how the system should achieve its requirements. Once a particular solution has been adopted, the specification is expanded and modified to clarify what must still be defined in order to be able to achieve the requirements.

The product of this activity is a complete, detailed software design.

The relation between analysis and design

Analysis and design are related activities. As such they may be thought of as two parts of the single process of converting requirements into a clear, complete and coherent software system. Thus, many of the special techniques (and computer-based tools) used during analysis carry through into design. It is for this reason that the two activities are studied together.

The following chapters of this module introduce several techniques needed for software analysis and design. These are embodied in the idea of models.