MSc-IT Study Material
January 2011 Edition

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

Modelling standpoints

Class modelling is a flexible technique with a number of applications. In this it should be contrasted with use case modelling; although the purpose of use case modelling is not specified in the UML, in practice it is usually employed as part of a requirements elicitation exercise (as discussed in previous chapters). Class modelling, on the other hand, is used throughout an object-oriented analysis and design process, from requirements engineering through to programming.

The designer should have in mind at each stage of development what the class model is being used for. Neglect of this principle leads to poor design work. If you believe you have produced a class model that represents the system (whatever the system happens to be), you are quite likely mistaken. A single class model at best represents a particular standpoint on the system.

Design standpoints represent the different uses we make of modelling. We can identify three obvious standpoints.

Although these standpoints are not completely distinct, they do embody differences in how the software system should be modelled. Specifically, you should see that analysis models will be more of a logical standpoint, while design models will, ultimately, be an implementation standpoint.

As design progresses the standpoint of the designers will change. Initially — especially if the system to be developed is replacing some other system or manual process — the designers will be concerned mostly with how the system is currently structured. This existing structure may well not be the most efficient or logical, but it is necessary to understand the operation and context of the existing system before designing a replacement. Later, in the design process, the designers will be concerned with the logical structure of the system. That is, regardless of how an existing system may be implemented, the designers consider what the simplest, most effective, logical organisation of the new system is. Still later, the designers will need to refine the model into a design that can be implemented. Here they will be concerned with specification and implementation standpoints.

The UML provides a set of modelling symbols and terminology and defines the concepts that they embody. The first job of the novice designer is to learn this notation and come to understand the concepts. The UML does not specify how these concepts are to be employed. In other words, it does not provide a different set of symbols for logical and implementation standpoints; it is up to the designer to ensure that his or her intentions are clear.