El diagrama de componentes explica la relación lógica entre los componentes.
El diagrama de despliegue va un paso más allá, describiendo la topología física del hardware del sistema y el software que se ejecuta en esta estructura.
El diagrama de componentes, también conocido como diagrama de construcción, es un diagrama de modelo utilizado para representar las relaciones entre componentes y entre componentes e interfaces en un sistema. El diagrama de componentes es importante en la modelización de sistemas basados en componentes y puede ayudar a los usuarios a comprender la estructura del sistema.
Funciones del diagrama de componentes:
1. Permite a los probadores y desarrolladores del sistema comprender todos los componentes físicos del sistema en su conjunto;
2. Describe las principales funciones de un sistema desde la perspectiva de la arquitectura de software;
3. Facilita a los miembros del equipo del proyecto comprender la estructura y las funciones del sistema;
4. Favorece la reutilización del software.
Colaboración en tiempo real multiusuario con enlaces compartibles para transferencia instantánea
Genera gráficos automáticamente a partir de texto y mejora estilos
Temas predefinidos con personalización completa
Soporta iconos, imágenes, etiquetas, fórmulas LaTeX, bloques de código, enlaces, adjuntos
Exportar: PNG, VISIO, PDF, SVG | Importar: VISIO, Mermaid
Almacenamiento en nube en tiempo real, sincronización multidispositivo, historial de versiones y seguridad de datos
El diagrama de componentes explica la relación lógica entre los componentes.
El diagrama de despliegue va un paso más allá, describiendo la topología física del hardware del sistema y el software que se ejecuta en esta estructura.
Componente: Un componente es una unidad de implementación física intercambiable con una interfaz bien definida, generalmente representa un objeto físico existente, y se representa con un rectángulo que tiene dos pequeños rectángulos sobresalientes en el lado izquierdo.
Interfaz: La interfaz proporcionada también se llama interfaz exportada, es el conjunto de servicios proporcionados por el componente, se puede representar la relación de implementación entre la interfaz y el componente; la interfaz requerida también se llama interfaz importada, es la interfaz que sigue el componente cuando solicita los servicios correspondientes de otros componentes, se representa mediante una relación de dependencia.
Relación: Entre componentes --> relación de dependencia, si existe una relación de generalización o una relación de uso entre las clases de dos componentes, se puede agregar una dependencia; entre componente e interfaz --> dependencia o implementación.
Diagrama de componentes simple: Organiza las clases que colaboran entre sí en un componente.
Diagrama de componentes anidado: Usa diagramas de componentes anidados para representar la estructura interna de un componente.
Los componentes se conectan a través de puertos, y los puertos se conectan entre sí a través de conectores, aunque generalmente no se usan con frecuencia .
Los conectores se dividen en tres tipos: conectores directos, conectores de interfaz y conectores de delegación.
1, Desarrollo colaborativo de múltiples equipos
2, Arquitectura de microservicios o modular
3, Sistemas con restricciones de interfaz claras
4, Componentes que necesitan despliegue separado (como frontend, backend, base de datos)
1, Enfocarse en la modularidad y el desacoplamiento, ya que el principal valor del diagrama de componentes es mostrar las capas del sistema y las dependencias de manera clara;
2, Usar símbolos estándar y anotaciones de interfaz puede mejorar la legibilidad y consistencia del diagrama;
3, Usarlo junto con diagramas de clases/diagramas de despliegue para proporcionar una vista completa de la estructura, comportamiento y despliegue;
4, Evitar dibujar el diagrama de componentes como un diagrama de clases, el diagrama de componentes expresa la “estructura” del sistema en lugar de los “detalles de implementación”.
El diagrama de componentes responde a "quién hace qué, quién depende de quién", mientras que el diagrama de clases responde a "cómo se hace".
1. La clase representa una abstracción de la entidad, mientras que el componente es una abstracción de los componentes físicos que existen en la computadora.
2. Los componentes pertenecen a módulos de software, no a módulos lógicos, y están en un nivel de abstracción diferente en comparación con las clases.
3. Las clases pueden tener operaciones y atributos directamente, mientras que los componentes solo tienen operaciones accesibles a través de sus interfaces.
Los componentes se clasifican según su rol en el sistema en 3 tipos:
1. Componentes de despliegue: Componentes necesarios para formar un sistema ejecutable.
Por ejemplo, Máquina Virtual Java, Sistema de Gestión de Bases de Datos, archivos EXE, archivos DLL.
2. Componentes de producto de trabajo: Productos intermedios del proceso de desarrollo que no participan directamente en el sistema ejecutable.
Por ejemplo, archivos de código fuente, archivos de datos.
3. Componentes de ejecución: Componentes creados en tiempo de ejecución.
Por ejemplo, Servlets instanciados, objetos COM+, documentos XML.
Componente y componente: relación de dependencia
Componente e interfaz: relación de dependencia o de implementación
Para controlar la granularidad de los componentes de manera adecuada, generalmente se puede configurar un módulo funcional como un componente, no diseñar una sola clase como un componente.
Arrastra "interfaz" desde el área de símbolos a la izquierda hacia el área de trabajo a la derecha, luego haz clic en un extremo del componente y mantén presionado el botón izquierdo del ratón hasta la interfaz correspondiente, suelta el ratón para especificar la interfaz que el componente debe implementar.
No necesariamente, los componentes simples pueden no tener una interfaz explícita.
Proporcionar una interfaz se representa con un círculo, indicando las funciones expuestas por este componente (pueden ser llamadas).
Necesitar una interfaz se representa con un semicírculo, indicando los servicios de los que depende este componente proporcionados por otros componentes.
Sí. Puede haber relaciones de dependencia de uno a muchos, dependencia bidireccional o desacoplamiento a través de un componente mediador entre componentes, usando múltiples líneas discontinuas para representar múltiples relaciones de dependencia.