MSc-IT Study Material
January 2011 Edition

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

Information systems and software

Software systems are made up of the following components:

Importantly, we need to consider what software is. Software is typically defined to be instructions that provide desired features, functions, and performance. They contain data structures which allow the software program to manipulate the information contained in an information system. Importantly, software also includes documentation describing how the software performs the actions that it does, and how the software may be used. Notice that some of the documentation is for the software's users, while other portions of the documentation are for its developers and maintainers.

There are some important properties of software that you should consider when thinking of the discipline of software engineering.

The importance of software engineering

Over the last few decades, software systems and the software that run them have become an important component to many aspects of our society, from commerce to medicine, engineering, the sciences and entertainment.

Importantly, the infrastructure of all developed countries rely heavily on software systems. Because of this, it is important that the software we use and rely on are of a high quality and fulfil our requirements of them. Gaining this high quality does not happen randomly or by accident — rather we need to engineer that quality into the software that we use.

When software fails, people may be bankrupted and even killed (consider safety critical systems which run planes, medical equipment, and so on). Because so much depends on software, software has become important to business and the economy. This means that the software engineer is always part of a larger environment, consisting of customers, other software engineers, managers, and so on. It is important that the engineer be able to interact appropriately with all of these individuals, and this, too, is part of software engineering.

Systems

Because information systems are what we build using software, it is important to consider exactly what it is that we are building: what is a system?

The word system is used regularly to refer to a coherent group of elements (or components) that together aim to achieve a certain objective, or to have a specific purpose. A more rigorous definition would describe a system as a group or combination of interrelated, interdependent or interacting elements forming a collective entity (a whole) with a control mechanism that helps the system achieve its goal.

Systems live in environments that are relevant to their existence. They receive inputs from the environment, and produce outputs for the environment. Systems tend to have a boundary that is defined in relation to the external environments in which they reside. The survival of a system relies on a control mechanism that regulates the processes of receiving inputs and producing outputs using feedback.

Figure 1.1, “A diagrammatic representation of a system” illustrates many of the important features of a system:

  • There may be many different inputs

  • There may be many different outputs

  • The system is composed of interconnected components — the components may be of different kinds.

  • Some of the outputs of the system are fed back into the system, so that the system can control itself and make corrective changes when unexpected or undesirable outputs occur

Figure 1.1. A diagrammatic representation of a system

A diagrammatic representation of a system

These components play a role in the software that we create: the inputs to the system will become inputs to the software. The outputs of the software will eventually be the system's outputs.