UML

Guía Visual


Cómo crear formas de vida organizativa

 

 

 

 

 

Presentación

 

¿A quién va dirigida esta guía visual?

 

¿Cómo sacar un mayor provecho a su lectura?

 

¿De dónde provienen las ideas expuestas?

 

Competencia y actuación

 

Agradecimientos

 

 

 

 

 

 

Presentación

Esta guía describe como definir, organizar y visualizar lo que denominamos formas de vida organizativa (VIO) con la notación Unified Modelling Language (UML). Una VIO representa un ciclo de actividad realizado por uno o varios agentes con un propósito concreto, en base a una práctica consensuada para utilizar los recursos disponibles y para tomar las decisiones que caracterizan el comportamiento de una organización.

 

A diferencia de los sistemas biológicos, las VIO nacen y se desarrollan a partir de una voluntad compartida, de una idea y de un liderazgo. Pero de la misma manera que la selección natural actúa en los sistemas biológicos, la continuidad de una VIO está condicionada a la implementación eficiente de sus procesos esenciales. Conocer estos procesos, saber como aplicar los recursos y como tomar las decisiones para satisacer la cadena de valor de todos los agentes son los factores que toda organización ha de tener en cuenta para evolucionar y asegurar su viabilidad.

 

La notación UML (no hay que confundir con las metodologías que utilizan dicha notación), se ha convertido desde finales de los 90 en un estándar para modelar con tecnología orientada a objetos todos aquellos elementos que configuran la arquitectura de un sistema de información y, por extensión, de los procesos de negocio de una organización. De la misma manera que los planos de un arquitecto disponen el esquema director a partir del cual levantamos un edificio, los diagramas UML suministran un modelo de referencia para formalizar los procesos, reglas de negocio, objetos y componentes de una organización. La interacción de todos estos elementos es una representación de nuestra realidad.


Nuestros límites para entender esta realidad están en nuestro lenguaje. El mundo es la suma total de lo que podemos definir, organizar y visualizar. Cabe preguntarse ¿de qué manera un modelo en UML representa nuestra experiencia?. Enseñar a utilizar un lenguaje formal siempre es problemático. Es necesario mostrar como este lenguaje puede ser aplicado a la realidad tal como la conocemos y tal como la compartimos con los demás.


Con esta guía visual mostramos de manera precisa  las técnicas básicas para usar UML en diferentes contextos. La clave está en discriminar cuales son aquellos procedimientos esenciales que nos permiten evitar costosas confusiones conceptuales. No es mediante el descubrimiento de nuevos objetos y de sus múltiples conexiones que avanzamos en las respuestas a nuestros interrogantes cuando modelamos un dominio, sino mediante la disolución de las contradicciones que existen entre los términos (conceptos) ya conocidos y, en último caso, mediante la reducción de su número despejando aquellos conceptos que no añaden valor a la comprensión de dicho dominio. Reconsiderar lo obvio, desenmascarar presunciones, desambigüar conceptos conocidos, todo en busca de la simplicidad y la usabilidad.

 

La tecnología orientada a objetos persigue el antiguo principio del divide y vencerás. Su objetivo es descomponer la complejidad en partes más manejables y comprensibles. No parece que esto sea algo novedoso con respecto a la tradicional descomposición funcional de los métodos estructurados. Sin embargo, la gran diferencia reside en aplicar la dualidad estructura-función en pequeñas unidades capaces de comunicarse y reaccionar en base a la aparición de una serie de eventos. El esquema dominante de la separación de estructuras de datos y funciones (bases de datos y programas) está amenazado pero aún se resiste a desaparecer.


Mucha gente cree que la principal utilidad de la orientación a objetos es la reutilización del código para conseguir un desarrollo más rápido de las aplicaciones (Rapid Application Development). No comparto esta opinion. Si hay algo que caracteriza un entorno de desarrollo actual es la constante del cambio. Todo proyecto que sobrepase los tres meses está amenazado por la aparición de nuevas plataformas más exigentes, la extinción de herramientas sin previo aviso y, de manera sistemática, por la rotación del personal crítico encargado del proyecto. También está sometido, como no, a los cambios de requerimientos del cliente que a su vez están plenamente justificados por la readaptación de sus procesos de negocio a un mercado inestable.

 

Ante este cuadro de incertidumbre, el mayor desafio de una metodología de desarrollo es su adaptación para el cambio. Esto significa crear modelos que faciliten la comunicación entre todos los agentes involucrados en el sistema en construcción; que hagan visible la trazabilidad entre la concepción de los componentes, su especificación, implementación e instalación; significa el diseño de arquitecturas que faciliten la gestión de las dependencias entre estos componentes, que sean en fin, facilmente reemplazables por otros más optimizados o bien por componentes que aporten una mayor funcionalidad y/o facilidad de uso.

 

La dinámica de cambio no se desarrolla en la ingeniería del software con la misma velocidad vertiginosa con que nos tiene acostumbrados la tecnología del hardware. La clave reside en que a diferencia de la electrónica, en los dominios del desarrollo de software no existe un vocabulario unificado. Desde la fase de concepción de un sistema a la instalación de sus componentes hay que mapear entre sí una gran diversidad de lenguajes orientados al análisis, diseño, código ejecutable, esquemas de bases de datos, componentes de páginas web, entre otros. Esta distancia entre la concepción y la usabilidad de un producto o de un proceso de negocio, exige cada vez más la capacidad de cooperación y comunicación de un equipo interdisciplinar muy especializado. Esta guía visual de UML está pensada para facilitar este proceso cooperativo y para ayudar a establecer una buena práctica fundamentada en un lenguaje común.

 

 

 

¿A quién va dirigida esta guía visual?

Esta guía ha sido escrita y diseñada para los profesionales involucrados en todos los ciclos de actividad del desarrollo de sistemas de información (concepción, análisis y diseño, implementación, instalación de aplicaciones, gestión y certificación de proyectos); también para los que tengan responsabilidades en la especificación de procesos de negocio con el propósito de evaluar posibles reingenierías de procesos y/o diseño de bases de conocimiento; y finalmente, para aquellos equipos que estén inmersos en la preparación e implementación de certificaciones de calidad.

 

La claridad conceptual y los recursos didácticos utilizados en la exposición de los distintos procedimientos serán de utilidad para los estudiantes que sigan programas de autoaprendizaje y usen esta guía como complemento para sus lecturas de libros sobre UML. También los centros académicos y profesores dispondrán con esta guía de material interesante para completar sus diseños curriculares y proporcionar ejemplos prácticos a sus alumnos.

 

 

 

¿Cómo sacar un mayor provecho a su lectura?

La guía está organizada en unidades didácticas que describen la notación de los diagramas y las fuentes de información necesarias para definir los elementos de cada modelo. Puede usarse como consulta puntual de la notación de un diagrama, o bien, para revisar como establecer el hilo conductor entre los Casos de Uso (mapa funcional), las Clases de dominio (mapa conceptual), las Clases de Especifiación (types e interfaces) y las Clases de Implementación (código).


Un plan de estudio para realizar una progresiva asimilación de los conceptos podría empezar con los Casos de Uso (CU) y continuar con el análisis de los flujos de trabajo de un grupo de CU mediante los diagramas de Actividad; a continuación, separar los escenarios que agrupan una serie de actividades y hacer aflorar, a través de los diagramas de Interacción, los objetos que intercambian una serie de mensajes. A partir de este punto, disponemos del bagaje suficiente como para introducirnos en la abstracción de los objetos y comprender la importancia de separar las tres perspectivas básicas en nuestra representación de las clases: concepción, especificación e implementación. El siguiente paso es identificar alguna clase con un comportamiento complejo que la haga candidata a revisar todos sus posibles estados y averiguar que eventos son capaces de provocar un cambio de estado. El diagrama de Estados-Transición será el adecuado para representar esta dinámica de estados. Finalmente, abordaremos la configuración de componentes y su despliegue en una arquitectura.

 

Otra lectura de la guía puede estar mas centrada en el seguimiento de la metodología de desarrollo y la gestión de un proyecto. En este caso, las primeras secciones describen  los niveles de concepción y formalización de un proyecto con la metodología TRAD (Taller de Requerimientos, Análisis y Diseño basado en el Proceso Unificado de Rational), y se van introduciendo progresivamente los diagramas y actividades que configuran la unidad mínima de documentación sostenible para un proyecto concreto.

 

El estudiante más avanzado podrá sacar también provecho con la consulta puntual de los diagramas en que esté más interesado y la revisión de sus extensiones. Las materias expuestas en las distintas secciones están actualizadas constantemente y pueden descargarse nuevas ediciones en formato PDF desde: http://www.vico.org/UMLguiavisual.pdf/

 

 


¿De dónde provienen las ideas expuestas?

El contenido de esta guía ha sido elaborado a partir del trabajo de una serie de profesionales que el autor ha tenido la oportunidad de estudiar y aplicar en distintos proyectos. Desde principios de los 90, los artículos publicados en el Journal of Object Oriented Programming (JOOP) por James Odell, James Rumbaugh, Grady Booch, Desmond d'Souza, Bertrand Meyer, Steve Cook, John Daniels, Sally Shlaer y Stephen J. Mellor entre otros, han sido una constante fuente de conocimiento. Publicaciones pioneras como el Object Oriented Technology, A Manager's Guide de David A. Taylor, en su primera edición de 1990 y en la segunda ampliada de 1998, han tenido una gran influencia en como abordar la presentación didáctica. También los libros de Peter Coad et al, Object Oriented Analysis, Design and Programming, Object Models y Java Modeling Color with UML, han sido de una ayuda extraordinaria. La obra enciclopédica The Unified Modeling Language: Reference Manual de Rumbaugh & Jacobson & Booch, es un punto de referencia constante. Sin duda, uno de los autores más influyentes ha sido Martin Fowler. Su primer libro Analysis Patterns continua siendo una referencia clave. Posteriormente, la primera edición de UML Distilled en 1997 y su última edición ampliada en 2000, se ha convertido en el libro de cabecera de UML. Otro clásico por la excelencia de su trabajo es Applying UML and Patterns de Craig Larman que en su segunda edición aparecida en verano de 2001 se ha superado a si mismo. También recientes y con muy buen material que ha sido incorporado a la guía, tenemos los libros de Wendy & Michael Boggs, Mastering UML with Rational Rose, de Alistair Cockburn, Writing Effective Use Cases; de Scott W. Ambler, The Object Primer segunda edición; y de John Chessman & John Daniels, UML Components, una de las novedades más interesantes de 2001. En la bibliografía sobre UML publicada en vico.org hay una relación completa de los libros consultados que se actualiza periódicamente con las últimas novedades.

 

 


Competencia y actuación

En los últimos veinte años de mi carrera profesional en el desarrollo de sistemas de información he participado en una gran diversidad de proyectos con distintos grados de responsabilidad e involucración, pero siempre con un compromiso firme en la calidad y usabilidad del producto final.

 

§         Entorno industrial

 

§         Entorno sanitario


§         Entorno de ingeniería del software

 

§         Entorno administrativo y de gestión

 

§         Entorno comercial

 

§         Entorno de servicios

 

§           Entorno académico


§         Entorno docente

 

§           Entorno de I+D

 

 

 

Agradecimientos

En primer lugar a los clientes que con su confianza han permitido que pueda desarrollar mi carrera profesional. También a los autores antes mencionados por su valioso trabajo en el avance de la disciplina de la ingeniería del software y en la consolidación de UML como lingua franca.

 

 

Josep Vilalta

Badalona, Barcelona (España)

jvilalta@vico.org