I define a context diagram as a simple, diagrammatic view of a system and its environment. First, I show the system boundary. Then, I show all neighboring systems and actors. After that, I show the interfaces between them. In short, I capture who interacts with the system and what data moves across the boundary.
I use the context diagram to clarify scope. Therefore, I focus on inputs and outputs. For example, I list data that comes into the system. Likewise, I list data that leaves the system. As a result, I identify all external interfaces. Consequently, stakeholders see what the system must accept and deliver.
I rely on three basic elements. First, I represent the system under development. I often draw it as a circle, a box, or a cloud. Second, I represent neighboring systems and actors. I show people, roles, IT systems, and equipment that interact with the system. Third, I draw arrows for the logical interfaces. The arrow direction shows the flow of information.
I use context diagrams in different notations. For example, I use data flow diagrams (DFD) in Structured Analysis. I also use SysML block diagrams today. In addition, I can use a UML use case diagram or a component diagram. Moreover, I can substitute a clear table when needed. However, I keep the same basic elements in all formats.
I follow a short process when I create a context diagram. First, I define the system boundary clearly. Next, I list all actors and neighboring systems. Then, I identify the data that each actor sends or receives. After that, I draw arrows to show the data flows. Finally, I label each flow with clear, concise names. Thus, I keep the diagram easy to read and translate.
I apply context diagrams to many examples. For example, I map an early warning system for mining. Similarly, I show a bank account application portal and the relationships between customer, portal, and banking systems. Also, I model an automated machine for cylinder head production using a SysML context diagram. These examples show how context diagrams reveal external interfaces in practical systems.
I use context diagrams for communication and requirements. First, they help me discuss scope with stakeholders. Second, they help me identify interface requirements. Third, they reduce ambiguity about responsibilities. Therefore, I use context diagrams as a base for writing clear requirements. Consequently, teams avoid gaps and misunderstandings.
I give some practical advice. First, I keep the diagram abstract. Do not show internal processes. Second, I name flows with verbs and objects. For example, “send application data” is clear. Third, I make the system boundary explicit for all relevant stakeholders. Fourth, I update the diagram when new interfaces appear.
In summary, I use context diagrams to document the system, the context, and their relationships. Because they focus on data flows and interfaces, they serve as the most abstract form of a data flow diagram. Therefore, I rely on them early and often to define scope and to drive accurate requirements.

