Diagrama de Componentes Por Equipo 3: Paulo Zamora y Gerardo Castruita
Diagrama de componentes
El diagrama de componentes proporciona una visión física de la construcción del sistema de información.
Muestra la organización de los componentes software, sus interfaces y las dependencias entre ellos. Un componente es un modulo de software que puede ser código fuente, un binario ejecutable o una librería con una interfaz definida.
Una interfaz establece las operaciones externas de un componente, las cuales determinan una parte del comportamiento del mismo. Ademas, se representan las dependencias entre componentes o entre un componente y la interfaz de otro, es decirn cómo uno usa los servicios o facilidades del otro.
Componente
Un componente es simplemente un módulo que forma parte del funcionamiento del sistema. Comúnmente, al hablar de software, se refieren a clases u objetos dentro del código del sistema, sin embargo, pueden ser considerados componentes, por ejemplo, la interfaz gráfica, bases de datos, hardware / circuitos o incluso elementos como proveedores, departamentos del negocio, etc.
Se puede decir que este es una materialización de una o mas clases,
porque es una abstracción con atributos y métodos pueden ser
implementados en los componentes.
Lo ideal es que los componentes estén diseñados de forma que tengan una gran cohesión y un bajo acoplamiento, para favorecer su reutilización.
Se pueden representar de unas cuantas maneras, por ejemplo, como un rectángulo con el estereotipo <<componente>> y el nombre del componente.
Comunmente también se representan como un rectángulo con el icono de un componente en la esquina superior derecha.
A menudo también los podemos encontrar representador por un rectángulo con dos rectángulos pequeños en su costado izquierdo.
Artefacto
Los artefactos son unidades físicas de información (por ejemplo, código fuente, archivo .exe, scripts o documentos) que se generan en el proceso de desarrollo o el tiempo de ejecución de un sistema o son necesarios para estos.
Se representa con el estereotipo «artifact».
El nombre puede ser simple o cualificado.
Se pueden adornar con valores etiquetados o compartimentos adicionales.
Interfaces
Una interfaz contiene una colección de operaciones y se utiliza para especificar los servicios de una clase o de un componente, es decir, son los lazos de unión entre componentes que definen la manera en la que se pueden comunicarse entre ellos.
Las interfaces pueden representarse de varias formas, como vemos en las siguientes imágenes:
Interfaz ofrecida.
Simboliza a la interfaz que provee el componente para comunicarse con el, es decir, este componente ofrece información o funcionalidad a través de esa interfaz.
Es representada por un circulo y una linea recta que lo conecta al componente.
Interfaz requerida.
Simboliza la utilización de una interfaz de otro componente para poder comunicarse con el. Tiene como función el recibir funciones, servicios o datos del exterior.
Se representa por un semicírculo abierto y una línea recta que lo conecta al componente.
Uso de interfaces
Cuando un componente se comunica con otro mediante una interfaz, se representa colocando la interfaz ofrecida del componente que va a proveer, dentro de la interfaz requerida del componente que va a recibir.
Dependencias
Las interfaces no son la única manera mediante la cual podemos representar una relación entre dos componentes.
También podemos representar dependencias mediante una flecha punteada
Las dependencias representan que un componente require de uno o más elementos de otro componente para su funcionamiento.
A diferencia de las interfaces, los componentes no se comunican entre ellos, sino que uno utiliza elementos del otro para su funcionamiento.
Relación de dependencias.
Ensamble.
Como se muestra arriba, el conector ensamble une una interfaz requerida de un componente con la interfaz proporcionada por otro componente.
Delegar.
Un conector delegar define el ensamble interno de los puertos e interfaces externos de un componente. Al usar un conector delegar se conectan los trabajos internos del sistema con el mundo exterior, por una delegación de las conexiones de las interfaces externas.
Asociar.
Una asociación implica que dos elementos de modelo tienen una relación, usualmente implementada como una variable de instancia en una clase.
Esto se refiere a que instancias de cada clase tienen una conexión bidireccional entre si mismas.
Este conector puede incluir nombre de roles en cada final, multiplicidad, dirección y restricciones. La asociación es el tipo general de relación entre elementos.
Generalizar.
Ventajas.
- Muestra como el sistema esta dividido en componentes y las dependencias entre ellos.
- Provee una vista arquitectónica de alto nivel del sistema.
- Ayuda a los programadores a visualizar el camino a visualizar a las tareas de implementación.
- Permite tomar decisiones respecto a las tareas de implementación.
Desventajas.
- No representan aspectos irreemplazables del sistema.
Ejemplos.
Diagrama de ejemplo de componentes de una tienda online.
Diagrama de ejemplo de componentes de gestión de biblioteca.
Aqui vemos un ejemplo mas acercado al código, en donde los componentes son clases dentro del código.
En este ejemplo, los componentes no se comunican mediante interfaces, ya que solo existen dependencias entre ellos y no intercambio de información.
Puntos a tomar para realizar un diagrama de componentes.
- Los elementos dentro de un diagrama de componentes son los componentes y paquetes que forman parte del diagrama, de tal manera que NO aparecen las instancias específicas de estos mismos.
- Estas instancias específicas se muestran en un diagrama de despliegue.
- Los diagramas de componentes muestran los componentes software re-usables, sus interfaces, y su interrelaciones, en muchos aspectos se puede considerar que un diagrama de componentes es un diagrama de clases a gran escala, si se trata de un desarrollo orientado a objetos.
- Cada componente en el diagrama debe ser documentado con un diagrama de componentes más detallado, un diagrama de clases, o un diagrama de casos de uso.
- Por lo tanto, es importante recordar que el enfoque de un diagrama de componentes es brindar una vista de alto nivel de la arquitectura general del sistema y no de los detalles de implementación.
Conclusión.
Los diagramas de componentes nos pueden ser una herramienta muy útil, sobre todo en las fases inciales del desarrollo de un sistema, ya que con ellos podemos comenzar a diseñar la arquitectura a un alto nivel del sistema, sin preocuparnos aún de detalles de implementación.
Asimismo, incluso en las fases posteriores del desarrollo, un buen diagrama de componentes siempre nos puede servir como un punto de partida para la documentación del mismo.
Referencias bibliográficas.
- https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/diagrama-de-componentes/
- http://diagramacomponente.blogspot.com/2009/05/ventajas-y-desventajas_18.html
- https://diagramasuml.com/componentes/
- https://es.slideshare.net/uitron/diagrama-de-componentes-7551535?next_slideshow=1
- https://creately.com/blog/diagrams/component-diagram-tutorial/





Muy buena presentación, en mi opinión me gusta que sea así de concreta y explícita.
ResponderEliminarAlgo que me llamo bastante la atención fueron las ventajas del diagrama, que al nuestra carrera estar relacionada con programación, que este tipo de diagramas es adecuado para la visualización de las tareas a implementar y como este mismo permite tomar decisiones sobre estas tareas.
ResponderEliminarDe los blogs más completos, realmente explica cómo realizar o interpretar un diagrama de componentes. Este tipo de diagrama es muy útil a la hora de montar un sistema. Buen trabajo.
ResponderEliminarSu blog me parece bastante completo debido a que muestran la información de manera ordenada, lo cual hace que sea fácil de entender. También se me hace correcto que al momento de explicar los elementos ejemplifiquen con imágenes la manera en que se hacen estos diagramas. Y así como lo mencionan ustedes, creo que los diagramas de componentes son de gran utilidad e importancia a la hora de iniciar un proyecto debido a que nos sirve como punto de partida y de esta manera tener una vista general del sistema.
ResponderEliminarComo comentan mis compañeros es de los blogs mas completos y con informacion mas detallada, me gusta la manera en la que explican la funcion y los simbolos que se utilizan.
ResponderEliminarSe nota la calidad de la investigación, ademas de mantener un gran diseño y orden en su blog asi como comentan mis compañeros, su ejemplo es facilmente entendible, y eso me gusto ya que saben de que manera llegar con la información adecuada, excelente blog.
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarMe agrada la forma en la que estructuraron su blog ya que se puede ir procesando poco a poco la información para tener un concepto claro de que es un diagrama de clases. Me parece muy claro el ejemplo ya que cuando estamos aprendiendo algo nuevo no hay nada mejor que analizar todo lo aprendido y leído en algo real y práctico.
ResponderEliminarMe gusto como es que no realizaron varias entradas en el blog sino más bien realizaron varias cosas, que pudieron complementar todo lo que dijeron, aunado a ello me pareció interesante la elección del color para poder realizar un resalte a lo que va en que cosa ,nuy padre y la verdad me encantó su trabajo, un aplauso para mis compañeros
ResponderEliminarLos diagramas de componentes son la mejor opción para representar o documentar el desarrollo de una nueva arquitectura para un programa. Es un gran reporte e investigación en conjunto, elaboraron un excelente Blog, describiendo con suficiente información cada uno de los aspectos.
ResponderEliminarMe parece muy buen trabajo el que ustedes hicieron, creo que esta bien explicado como funciona y que se debe tomar en cuenta, pero me hubiera gustado como explicarian el ejemplo a mejor manera
ResponderEliminarMuy buen trabajo, la información es clara y detalla sin caer en lo tedioso y cada parte del tema es explicada de manera entendible. Todo acomodado de manera fácil de navegar a traves del sitio.
ResponderEliminar