El diagrama de
componentes describe la descomposición física del sistema de
software en componentes, muestra un conjunto de componentes y sus
relaciones de manera gráfica a través del uso de nodos y arcos
entre estos.
Los diagramas de
componentes se utilizan para modelar la vista estática de un
sistema, consiste en mostrar la organización y las dependencias
entre un conjunto de componentes. No es necesario que un diagrama
incluya todos los componentes del sistema, normalmente se realiza por
partes, cada diagrama describe un apartado del sistema.
Dependencia
El diagrama de
componentes se genera a partir del diagrama de clases o también
llamados paquetes, a partir de él tenemos el diagrama de despliegue
en los cuales se mostrara la implementación del proyecto.
Características
* Un diagrama de
componentes se representa como un grafo de componentes software
unidos por medio de relaciones de dependencia.
* Los componentes
empaquetan el código que implementa la funcionalidad de un sistema,
y algunas de sus propias instancias de objetos que constituyen el
estado del sistema.
Estereotipos
UML define cinco
estereotipos estándar que se aplican a los componentes:
* Executable: Especifica un componente que se puede ejecutar
en un nodo.
* Library: Especifica una biblioteca de objetos estática o
dinámica.
* File: Especifica un componente que representa un documento
que contiene código fuente o datos.
* Document: Especifica un componente que representa un
documento.
Interfaces
Es el lazo de unión
entre varios componentes.
Las interfaces pueden
representarse de varias formas, como se ve en la imagen:
Pasos para la
implementación de un diagrama de componentes:
- Diagrama de casos de uso.
- Diagrama de clases.
- Análisis detallado de cada clase, como componentes.
- Transformación de clase-componente, con sus respectivas clases.
- Dependencia de sus clases.
- Diagrama de componentes.
Pasos para la
elaboración de un diagrama de componentes:
- Previamente al diagrama de componentes debemos de tener hecho el diagrama de clases.
- Se debe identificar a todas las clases que participaran en el sistema o subsistema a desarrollar.
- Una vez identificado las clases, se procede a identificar sus métodos.
- Estos métodos pasaran a ser módulos con líneas de código independientes.
- Estos componentes se relacionan entre sí por medio de sus interfaces.