1. Dr. Francisco José García Peñalvo / fgarcia@usal.es
Alicia García Holgado / aliciagh@usal.es
Andrea Vázquez Ingelmo / andreavazquez@usal.es
Departamento de Informática y Automática
Universidad de Salamanca
MODELO C4
INGENIERÍA DE SOFTWARE I
2º DE GRADO EN INGENIERÍA INFORMÁTICA
CURSO 2020/2021
2. ÍNDICE
• La brecha entre los modelos y el código
• El modelo C4
• Nivel de contexto
• Nivel de contenedores
• Nivel de componentes
• Nivel de código
• Notación
• C4 y los casos de uso
2
Ingeniería de Software I – El modelo C4
3. LA BRECHA ENTRE LOS
MODELOS Y EL CÓDIGO
La descripción de una arquitectura software está compuesta por
muchas vistas
Separación entre vistas lógicas y de desarrollo
Problemas a la hora de reflejar y trazar de forma precisa las
entidades modeladas en el código
La estructura del código debería reflejar la
arquitectura de nuestro sistema
Ingeniería de Software I – El modelo C4
3
4. LA BRECHA ENTRE LOS
MODELOS Y EL CÓDIGO
4
¿?
¿?
Ingeniería de Software I – El modelo C4
5. EL MODELO C4
Surge como solución para aliviar la brecha entre modelo y código
Permite comunicar la arquitectura de un sistema en función del detalle
que se quiera proporcionar
Está basado en cuatro niveles que describen el sistema con distintos
grados de granularidad
• El nivel de contexto
• El nivel de contenedores
• El nivel de componentes
• El nivel de código
5
Ingeniería de Software I – El modelo C4
7. Nos permite tener una imagen
genérica de nuestro sistema y
sus interacciones con el
exterior
En este nivel podemos
especificar los sistemas
externos con los que interactúa
nuestro propio sistema
El sistema que modelamos se
considera una “caja negra”,
solo nos interesan sus
relaciones externas
También permite identificar los
usuarios finales que harán uso
de la funcionalidad de nuestro
software
Ingeniería de Software I – El modelo C4
7
NIVEL DE CONTEXTO
https://c4model.com/
8. Los contenedores referencian
cualquier entidad que ejecuta
código o almacena datos
Pueden verse como unidades
desplegables o ejecutables
Ejemplos de contenedores:
• Aplicaciones web
• Servicios web
• Aplicaciones de escritorio
• Bases de datos
• Sistema de ficheros
Ingeniería de Software I – El modelo C4
8
NIVEL DE CONTENEDORES
https://c4model.com/
9. Dentro de cada contenedor
podemos encontrar diversos
componentes
Los componentes representan
un grupo de funcionalidades
Los componentes pueden tener
relaciones entre sí y entre los
usuarios finales
Muestra la responsabilidad de
cada componente a alto nivel,
así como los detalles de
implementación (tecnología
utilizada, etc.)
Ingeniería de Software I – El modelo C4
9
NIVEL DE COMPONENTES
https://c4model.com/
10. En este nivel se muestran detalles de la implementación de cada componente
Se pueden utilizar diagramas de clase, de entidad relación, o similares
Ingeniería de Software I – El modelo C4
10
NIVEL DE CÓDIGO
https://c4model.com/
12. C4 Y LOS CASOS DE USO
Los casos de uso de UML también nos sirven para especificar el
contexto del sistema y los actores que interactúan con los diversos
bloques funcionales
Es posible transformar los diagramas de casos de uso al modelo C4
Se propone especificar mediante los niveles de contexto y
contenedores la solución al taller de casos de uso
(evaluación continua)
12
Ingeniería de Software I – El modelo C4
13. Ingeniería de Software I – El modelo C4
13
BIBLIOGRAFÍA
• Software Architecture for Developers: Volume 2 – Visualise, document
and explore your software architecture. Simon Brown.
• https://c4model.com
• https://medium.com/@javiervivanco/el-modelo-c4-de-
documentaci%C3%B3n-para-la-arquitectura-de-software-
424704528390
14. Dr. Francisco José García Peñalvo / fgarcia@usal.es
Alicia García Holgado / aliciagh@usal.es
Andrea Vázquez Ingelmo / andreavazquez@usal.es
Departamento de Informática y Automática
Universidad de Salamanca
MODELO C4
INGENIERÍA DE SOFTWARE I
2º DE GRADO EN INGENIERÍA INFORMÁTICA
CURSO 2020/2021