I am learning how to write a System Requirements Specifications, and most of templates I have seen talk of a Context Diagram.
What exactly is a Context Diagram?
A Context diagram is used to depict the “environment” in which the system under design has to operate. It is usually drawn as a bubble for the system and the entities that interact with the system (both human and computers) around it, connected to the system with lines.
Sometimes, the context diagram also shows (in keywords) what kind of interaction there is between the system and an external entity (for example, that a Customer might ‘place an order’).
In the Data Flow Diagram(DFD) Context Diagram is an abstract view of the system is represented. The entire system is shown as a single process, labeled with the name of the system.
Context Diagram Can Contain:
- One process(Represents the entire system).
- All external entities(data sources/sinks).
- External data flows from/to external entities(inputs / outputs).
Furthermore, after drawing/creating Context Diagram(Abstract view of the system) you can decompose it into major functions in the system as levels.
Note: Only one process(buble) and no data stores.
As a example:
Here 0 means Context Diagram(not a decomposed level) and asterisk(*) means this Context Diagram decompsed further(have levels).
Levels are:
Level 1 – Describe the overall processing of the system.
Level 2 – Identify processes that need Decomposition(factoring/exploding).
If you can decompose further you can go to Level 3, Level 4, … But keep remeber when you decompose to another level you have to identify at least 3 processes to include.
Further references: wikipedia Context Diagram, wikipedia DFD and you can read “Ian Sommerville software engineering 10th edition”