Fundamental modeling concepts
Fundamental modeling concepts provide a framework to describe software-intensive systems. It strongly emphasizes the communication about software-intensive systems by using a semi-formal graphical notation that can easily be understood.
Introduction
FMC distinguishes three perspectives to look at a software system:- Structure of the system
- Processes in the system
- Value domains of the system
The common approach when working with FMC is to start with a high-level diagram of the compositional structure of a system. This “big picture” diagram serves as a reference in the communication with all involved stakeholders of the project. Later on, the high-level diagram is iteratively refined to model technical details of the system. Complementary diagrams for processes observed in the system or value domains found in the system are introduced as needed.
Diagram Types
FMC uses three diagram types to model different aspects of a system:- Compositional Structure Diagram depicts the static structure of a system. This diagram type is also known as FMC Block Diagram
- Dynamic Structure Diagram depicts processes that can be observed in a system. This diagram type is also known as FMC Petri-net
- Value Range Structure Diagram depicts structures of values found in the system. This diagram type is also known as FMC E/R Diagram
Compositional Structure Diagram
Compositional structure diagrams depict the static structure of a system, and the relationships between system components. System components can be active or passive. Agents are active system components. They perform activities in the system. Storages and channels are passive components which store or transmit information.The image to the right is an example of a compositional structure diagram. It contains the agents Order Processor, Supplier Manager, Supplier, Online Shop and an unnamed human agent. Agents are represented by rectangles. The dots and the shadow of the agent Supplier indicate that this agent has multiple instances, i.e. the Supplier Manager communicates with one or many suppliers. The so-called human agent represents a user interacting with the system.
The diagram contains the storages Orders, Purchase Order and Product Catalog. Storages are represented by curved shapes. Agents can read from storages, write to storages or modify the content of storages. The directions of the arrows indicate which operation is performed by an agent. In the diagram, the Supplier Manager can modify the content of the Product Catalog, whereas the Order Processor can only read the content of the Product Catalog.
Agents communicate via channels. The direction of information flow is either indicated by arrows, by a request-response-symbol or omitted.