MSc-IT Study Material
January 2011 Edition

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

Introduction to models

The major artifacts of software analysis and design are models, a model being a representation of one or more aspects of the system.

The most obvious example of such a model is a map. It represents a geographical location and includes important roads, buildings and railway lines. A map does not include all detail for that location — the amount of given detail depends on the scale of a map. A map of Great Britain, for example, is unlikely to show every street in the country. A town map, on the other hand, deliberately shows all streets and street names, but does not show the location of all trees, plants and animals in that town.

Other examples include an architect's drawings for a building; a wiring diagram for a micro-chip; the sheet music representing a score of classical music composition. Models represent important features of the thing they model, and can be used to understand and re-create the object being modelled, the building or chip or music itself.

Models simplify what they model to a level of detail appropriate for its readers to understand. A road map represents enough information for a person to navigate (by car) between points on the map. The trees and plants are left out of the map because that sort of detail is inappropriate and unnecessary when navigating along streets.

This raises an important point. The model used should be appropriate to the problem. Or, rather, different models should be used for different things. A road map is good when travelling by car, but is less useful when walking in the country-side, where information about footpaths, field boundaries and contours is needed. Similarly, a micro-chip wiring diagram does not have the detail necessary to build a whole computer with disk-drives, monitors and stereo sound. A different model is needed to build a computer.

In addition to this, a person may need training before they can understand the model. Maps are reasonably clear, but even then not everyone can use them. Much specialist training is needed to understand an architect's designs; similarly, training is needed to understand the models of different aspects of a software system.

These examples serve to point the way in which we approach models for analysis and design. The main points are:

The method used to produce a model is called a modelling technique. Software which assists us to employ a modelling technique is called a modelling tool.

Definition of the term model

Two definitions of model from various software engineers are:

 

A model is a qualitative or quantitative representation of a process or endeavour that shows the effects of those factors which are significant for the purposes being considered.

 
 -- H. Chestnut, Systems Engineering Tools, Publisher: John Wiley, New York, 1965
 

A model is the explicit interpretation of ones understanding of a situation, or merely of ones ideas about that situation. It can be expressed in mathematics, symbols or words, but it is essentially a description of entities and the relationships between them. It may be prescriptive or illustrative, but above all it must be useful.

 
 -- Brian Wilson, System: Concepts, Methodologies and Applications, p.8, Publisher: John Wiley, New York, 1984