Approaches to software development
◄Previous: A standard notation

# 3.2 Models illustrate points of view

To understand the architecture of a software system, you will need a number of complementary and related views. If the main influence is the users, a view that expresses their requirements is essential. This is quite normal. Every development process you will encounter will encompass one or more views of the software systems within its scope.

During software development, you will be interested in different aspects or views of the problem, and its solution at different times. It follows that you will construct different models to suit those aspects. As mentioned above, it is unrealistic to expect to put everything into just one model. Too much detail in a model can only be a distraction.

When it comes to the development of an object-oriented software system, there are two distinct kinds of model:

- structural (or static) models, which describe the objects in the real world or in a (software) system and their relationships to other objects
- behaviour (or dynamic) models, which describe the behaviour in the real world or of a (software) system over time.

In practice, such a simple partition of a software system is not enough. For example, in a distributed system a developer must also consider the potential location of the modules (or classes). So the overall process of software development takes a number of different views into account. When developing the software architecture you will be identifying the differing views. In practice, the developers are likely to produce a system architecture for the software system during certain project activities such as analysis or design. Each view can be thought of as a model that expresses a particular aspect of the overall system – each one is an abstraction. The views interact with each other.

## Activity 13 Models

Allow approximately 15 minutes.

1. Should you try to capture everything about a design in a single model?
2. What is the difference between a structural and a behaviour model?
3. Do the models used in a given development project need to be consistent?

## Answer

1. No, because you will be interested in different aspects of a design at different times, and different models of your design will be built to reflect your interpretations of users’ needs.
2. A structural model describes the elements of the system and their relationships to other elements. A behaviour model describes the behaviour of a system over a period of time.
3. Yes, the whole set of diagrams should contain the different aspects of a single software system, so they should not contradict one another. For example, there must be some consistency checking between the static and dynamic models. This can be automated by a suitable tool.

◄Contents►Next: 3.3 Introducing the Unified Process

OpenLearn - Approaches to software development
Except for third party materials and otherwise, this content is made available under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 Licence, full copyright detail can be found in the acknowledgements section. Please see full copyright statement for details.