Nombre: E-mail:
Busca en este sitio:
. Soy Novato
. Soy Gerente de Proyectos
. Quiero ganar más
. Quiero mejorar a mi empresa
y sus proyectos
. Tengo experiencia, pero no soy experto
. Soy experto (o eso creo)
.
Conócelo...
manual
Todo lo que necesitas para administrar un proyecto. Una guía que no debe faltar. Actualizada constantemente.
+
.
La frase célebre
"No me arrepiento en absoluto de haber corrido todos los riesgos por aquello que me importaba"

- Arthur Miller
+
.
Glosario
Ven a conocer el glosario de administración de proyectos.
+
.
Regístrate al boletín
Recibe con una semana de anticipación todas las novedades que verás aquí en LiderDeProyecto.com
+
.
¿Buscas trabajo?
Nuestro equipo ha configurado el acceso a una gran cantidad de ofertas de trabajo para líderes de proyecto en las mejores empresas.
+
.
Trabaja en LiderDeProyecto.com
Buscamos instructor senior en administración de proyectos, certificado como PMP y con experiencia de al menos 10 años.
+
.
Colaboradores

Conoce a los colaboradores de LiderDeProyecto.com. Tu puedes ser uno de ellos.
+
.
 
UML

Componiendo lo Descompuesto - Diagrama de Estructura Compuesta
Por Sergio Orozco

En el mundo real, el mundo de los objetos, algo normal que nos encontramos son objetos que están compuestos por más objetos. UML nos permite modelar dicha información por medio de relaciones de composición entre los objetos contenedores y sus partes.

Dicha relación se muestra tradicionalmente con un diamante relleno en la orilla del contenedor, en una relación entre el contenedor y la parte. En el siguiente diagrama podemos ver que un carro tiene un motor, y dicho motor no puede ser parte de otro carro en un momento determinado en el tiempo.

Pero, modelar en UML composiciones de objetos podía volverse muy complejo en ciertas situaciones. Como en el caso de un carro y un barco que estuvieran compuestos por motor, pero donde para el primero el motor ayudara a mover las ruedas delanteras y en el segundo caso el motor sirviera para mover el propulsor del barco. Habría que realizar un modelo complejo para aclarar (a quien pudiera leer el diagrama), que habia una diferencia entre el motor que tenía el carro y el motor del barco.

El diagrama anterior intenta explicar esto, pero tiene deficiencias, pues aunque aclara con la multiplicidad de las conexiones de carro y barco (0..1) como contenedores del motor, que sólo puede estar la instancia del motor en uno de los dos; por otra parte parece decirnos que el motor del carro puede mover tanto propulsor como llantas. Lo cual es equivocado, pues el motor del barco sólo mueve el propulsor y el del carro sólo mueve sus llantas. Tampoco aclara que las dos llantas que mueve el motor en el carro son las delanteras, y no las dos traseras.

Para modelarlo correctamente en un diagrama de clases tendríamos que elaborar toda una jerarquía de herencia entre clases para distinguir entre los motores de barcos y carros, y entre las llantas delanteras y traseras de un carro, o marcando dependencias entre las relaciones.

Con UML 2 ahora contamos con un nuevo diagrama, llamado diagrama de estructura compuesta, que nos permite contextualizar las partes que componen a una clase. Así podemos armar un diagrama donde aclaremos que el carro tiene un motor que mueve las dos llantas delanteras (pero, no las traseras ni el propulsor), y otro diagrama del mismo tipo que nos permitiría mostrar el barco con un motor que exclusivamente mueve su propulsor (y no las llantas).

El contexto lo define la clase contenedora, que con fines de este ejemplo serían el carro o el barco. Y dentro de dicha clase modelamos las partes que lo componen, como se muestra a continuación. Cada uno de estos diagramas muestra la estructura interna de una instancia de carro y de barco respectivamente.

En este caso nos queda mucho más claro que cada uno tiene un motor, pero que funciona de manera diferente. Incluso es claro que el motor del carro mueve exclusivamente las dos llantas delanteras, y no las dos traseras.

Los elementos que tradicionalmente se muestran en este tipo de diagrama son:

  • Clase. Para mostrar la parte de la cual se ilustra su composición interna (ejemplo: carro o Barco)
  • Parte. Se muestra con un rectángulo, e indica los objetos que conforman al objeto principal. Ejemplo: el motor y las llantas en el carro, o el motor y el propulsor en el Barco. Si se coloca una parte dentro de una clase significa, en un diagrama de clases, que la clase contenedor tiene una relación de composición con dicho elemento.
  • Conector. Indica la relación entre las parte internas de la clase que se analiza.
  • Puertos. Se pueden mostrar puertos para indicar la entrada o salida de una parte hacia otra parte. Se muestran como pequeños cuadrados al final de un conector entre dos partes. No son obligatorias, pero son recomendables si se quiere encapsular el funcionamiento de las partes.

Un uso adicional que se puede dar a los diagramas de estructura compuesta es para mostrar las partes que colaboran, por ejemplo, en un caso de uso. Aunque en esta ocasión no explicaremos esta perspectiva, consideramos importante mencionarlo y mostrar un pequeño ejemplo.

En este ejemplo podemos ver que son tres las clases que colaboran en el caso de uso “Participar en curso”: el estudiante, el curso y el seminario. Esta forma nos permitiría modelar patrones de diseño indicando los roles que juega cada clase en la colaboración.

Por Sergio Orozco

Publicado en la revista Software Gurú, en su edición de marzo, 2007.
Reproducido con permiso del autor.


Temas relacionados:
Curso de análisis y diseño orientado a objetos con UML


indice del manual

Comparte

Videoboletín No.16

Adecuada Estimación del Valor Devengado - con Marcos Orozco.
+
.
Libro sugerido
¿Utilizas una técnica formal para comprender si el estado del proyecto sigue siendo manejable?

Earned Value es la guía para administradores de proyectos novatos y avanzados, que necesitan controlar mejor sus proyectos con la técnica más importante para conocer con precisión el estado de su proyecto.

Adquiérelo aquí…

+
.
Cursos recomendados Cursos
Un directorio con cursos recomendados para administradores de proyectos. Conoce los temarios y próximas fechas.
+
.
Foro de discusión Foro
Atrévete a participar y dar a conocer tus opiniones y dudas. Expertos PMPs estarán disponibles para asesorarte.
+
.
BLOG: Decisiones estúpidas que trastornan vidas
Blog
¿Y si te dijera que una mala decisión en tu proyecto puede ser cuestión de vida o muerte? Seguramente pensarías que no es para tanto (...) Pero transformar una vida por una mala decisión está más cerca de lo que piensas...
+
.

Quienes somos I Base de conocimiento I Apoyo y servicios profesionales I Carrera y desarrollo profesional I Material de apoyo I Productos y souvenirs I Comunidad I Contacto

© 2007-2008 LiderDeProyecto.com - Todos los derechos reservados. "PMI" y el logo de PMI son marcas registras en los EUA y en otros países; "PMP" y el logo PMP son marcas registradas de certificación; PMBOK® es una marca registrada en los EUA y en otros países. CMMI® es una marca registrada en los EUA y en otros países por el Carnegie Mellon® Software Engineering Institute. UML® y OMG® son marcas registradas en los EUA y en otros países por el Object Management Group. Microsoft® es una marca registrada en los EUA y en otros países; Microsoft Office, Microsoft Excel y Microsoft Project son productos propiedad de Microsoft Corp. Enterprise Architect es un producto propiedad de Sparx Systems, Australia. RUP® es una marca registrada en los EUA y en otros países por IBM Corp.