When describing the architecture of a software system it is useful to show how the system fits in the existing environment (people, systems and external entities with which it interacts). Context view helps us to do this.
Context view of a system defines the relationships, interactions, dependencies between the system and its environment.
The purpose of the context view is to share the big picture to all stackholders. It answers the questions like:
- What does the system actually do from a functional point of view?
- Who and what other systems are using it?
- How is it related to auxiliary systems or services?
Context diagram is the key model within a context view. It is easy to draw. Just place the system in its environment by relating it to the different actors (users and auxiliary systems) that it interacts with. A context diagram contains the below elements:
- System: the system that is going to be designed. Hide it's internal structure, treat it as a "black box"
- External Entities: these are the auxiliary systems, services, people and groups that the system interacts with
- Connections: theses are interfaces, protocols and connectors that link the external entities and the system being designed.
Here is a sample context diagram: