Los conceptos fundamentales de modelado ( FMC ) proporcionan un marco para describir sistemas intensivos en software. Hacen especial hincapié en la comunicación sobre sistemas intensivos en software mediante el uso de una notación gráfica semiformal que se puede entender fácilmente.
FMC distingue tres perspectivas para mirar un sistema de software:
FMC define un tipo de diagrama dedicado para cada perspectiva. Los diagramas FMC utilizan una notación simple y ágil. El propósito de los diagramas FMC es facilitar la comunicación sobre un sistema de software, no solo entre expertos técnicos, sino también entre expertos técnicos y expertos comerciales o del dominio. La comprensibilidad de los diagramas FMC los ha hecho famosos entre sus seguidores.
El enfoque habitual al trabajar con FMC es comenzar con un diagrama de alto nivel de la estructura compositiva de un sistema. Este diagrama de “visión general” sirve como referencia en la comunicación con todas las partes interesadas involucradas en el proyecto. Más adelante, el diagrama de alto nivel se perfecciona de manera iterativa para modelar los detalles técnicos del sistema. Según sea necesario, se introducen diagramas complementarios para los procesos observados en el sistema o los dominios de valor encontrados en el sistema.
FMC utiliza tres tipos de diagramas para modelar diferentes aspectos de un sistema:
Todos los diagramas FMC son grafos bipartitos. Cada grafo bipartito consta de dos conjuntos de vértices disjuntos con la condición de que ningún vértice esté conectado a otro vértice del mismo conjunto. En los diagramas FMC, los miembros de un conjunto se representan mediante formas angulares y los miembros del otro conjunto se representan mediante formas curvas. Cada elemento de un diagrama FMC se puede refinar mediante otro diagrama del mismo tipo, siempre que el grafo combinado también sea bipartito. Este mecanismo permite modelar todas las capas relevantes de abstracción con la misma notación.
Los diagramas de estructura compositiva representan la estructura estática de un sistema y las relaciones entre los componentes del sistema. Los componentes del sistema pueden ser activos o pasivos. Los agentes son componentes activos del sistema. Realizan actividades en el sistema. Los almacenamientos y canales son componentes pasivos que almacenan o transmiten información.
La imagen de la derecha es un ejemplo de un diagrama de estructura compositiva. Contiene los agentes Procesador de pedidos , Gerente de proveedores , Proveedor , Tienda en línea y un agente humano sin nombre . Los agentes están representados por rectángulos. Los puntos y la sombra del agente Proveedor indican que este agente tiene múltiples instancias, es decir, el Gerente de proveedores se comunica con uno o varios proveedores. El llamado agente humano representa a un usuario que interactúa con el sistema.
El diagrama contiene los almacenes Pedidos , Orden de compra y Catálogo de productos . Los almacenes están representados por formas curvas. Los agentes pueden leer desde los almacenes, escribir en los almacenes o modificar el contenido de los mismos. Las direcciones de las flechas indican qué operación realiza un agente. En el diagrama, el Gerente de proveedores puede modificar el contenido del Catálogo de productos , mientras que el Procesador de pedidos solo puede leer el contenido del Catálogo de productos .
Los agentes se comunican a través de canales. La dirección del flujo de información se indica mediante flechas (no se muestran en la imagen), mediante un símbolo de solicitud-respuesta (por ejemplo, entre el gerente de proveedores y el proveedor ) o se omite (por ejemplo, entre el procesador de pedidos y el gerente de proveedores ).
Las estructuras dinámicas se derivan de redes de Petri .
Los diagramas de estructura de rango de valores (también conocidos como diagramas de relación de entidad FMC) se pueden comparar con el modelo de relación de entidad .