A propósito de UML
Introducción
El presente capítulo está dedicado, por un lado, al origen del UML y, por otro, a dos elementos vinculados a UML:
-
El Proceso Unificado, un proceso de desarrollo y evolución de programas;
-
La arquitectura MDA (Model-Driven Architecture o arquitectura guiada por modelos), destinada a la realización de sistemas, independientemente de la plataforma física y de los aspectos tecnológicos.
El origen de UML
UML está basado en la orientación a objetos, sistema que vio la luz mucho antes que el UML en el campo de los lenguajes de programación. Simula, el primer lenguaje orientado a objetos, nació en los años 1960 y conoció numerosos sucesores: Smalltalk, C++, Java o, más recientemente, C#.
En un lenguaje de programación la descripción de los objetos se realiza de manera formal utilizando una sintaxis rigurosa. Dicha sintaxis resulta ilegible para los no programadores y difícil de descifrar para los programadores. A diferencia de las máquinas, los humanos prefieren utilizar lenguajes gráficos para representar abstracciones, ya que dominan este tipo de lenguaje con mayor facilidad y obtienen una visión de conjunto de los sistemas en mucho menos tiempo.
En los años 80 y principios de los 90, las notaciones gráficas se multiplican y, muy a menudo, cada uno utiliza su propia notación. En 1994, James Rumbaugh y Grady Booch deciden unirse para unificar sus notaciones, procedentes de sus respectivos métodos: OMT para James Rumbaugh y el método Booch para Grady Booch. En 1995, Yvar Jacobson decide unirse al equipo de los “tres amigos”. El equipo trabaja entonces dentro de Rational Software.
La versión 1.0 de UML se publica en 1997. El trabajo de evolución de la notación empieza a hacerse demasiado voluminoso...
El Proceso Unificado
El Proceso Unificado es un proceso de realización o de evolución de software enteramente basado en UML, de ahí el interés de presentarlo en esta obra. Está constituido por un conjunto de directivas que permiten producir software a partir del pliego de condiciones (requisitos). Cada directiva define quién hace qué y en qué momento. Un proceso permite, por tanto, estructurar las diferentes etapas de un proyecto informático.
Los tres autores del Proceso Unificado son los mismos que los del UML. No obstante, el uso de UML no exige la utilización del Proceso Unificado. Un proyecto que emplee UML puede utilizar otro proceso diferente del Proceso Unificado o no emplear ninguno.
El Proceso Unificado es conducido por los casos de uso. Éstos se utilizan para describir los requisitos del proyecto y se describen con ayuda de una representación específica del Proceso Unificado más rica que la contenida en UML.
El Proceso Unificado es incremental. Los proyectos se dividen en una serie de subproyectos. Cada subproyecto es un ladrillo que se añade al subproyecto precedente que, por tanto, debe haberse realizado con antelación. Cuando se ha llevado a cabo el último subproyecto se concluye la totalidad del proyecto.
El Proceso Unificado es iterativo. Todos los subproyectos se efectúan con las mismas actividades. Al concluir cada subproyecto se evalúa...
Arquitectura dirigida por modelos: MDA
MDA (del inglés Model-Driven Architecture) es una propuesta de la OMG cuyo objetivo es diseñar sistemas basándose únicamente en el modelado del dominio, independientemente de los aspectos tecnológicos. A partir de este modelado, MDA propone obtener por transformación elementos técnicos capaces de funcionar dentro de una plataforma de software como Java o .NET.
En MDA, el modelo de objetos del dominio se llama PIM (Platform Independent Model o modelo independiente de la plataforma). El PIM está constituido por un conjunto de elementos cuyo diseño debe hacerse de forma independiente a cualquier lenguaje de programación o tecnología. Posteriormente, el modelo se transforma, manual o automáticamente, en un modelo específico de una plataforma y de un lenguaje de programación. Dicho modelo específico recibe el nombre de PSM (Platform Specific Model o modelo específico de plataforma).
La relación con UML se establece a nivel del PIM. UML es un excelente candidato a lenguaje a ese nivel. Posee la ventaja de describir con precisión los objetos, manteniéndose al mismo tiempo independiente de las tecnologías.