Alumno: Siancas Huerta, Manuel
El lenguaje de modelamie nto unificado Y sus fundamentos El siguiente texto es una breve monografía elaborada por un estudiante de ingeniería de la Universidad de Piura que cursa la asignatura: “Sistemas Digitales”, el texto tiene como propósito dar un alcance al entendimiento sobre el lenguaje de modelamiento o modelado unificado, intentando en lo posible realizar una síntesis de la amplia información existente que concierne al tema en cuestión.
Contenido 1. Introducción a la Metodología Orientada a Objetos
1.1 La Crisis del Software. 1.2 La Metodología Orientada a Objetos.
2. El Lenguaje de Modelado Unificado (UML)
2.1 UML: Historia de UML 2.2 Definición y principales beneficios. 2.3 UML: ¿Método o Lenguaje de Modelado? 2.4 Vistas de UML. 2.5 Diagramas de UML. 2.6 Elementos de Diagrama. 2.7 Reglas. 2.8 Fases del desarrollo de un sistema.
2.9 UML es un lenguaje para visualizar 2.10 UML es un lenguaje para especificar. 2.11 UML es un lenguaje para construir. 2.12 UML es un lenguaje para documentar. 2.13 ¿Dónde se puede usar UML? 1
3. Conclusiones sobre UML 4. Bibliografía web consultada
1. Introducción a la Metodología Orientada a Objetos
1.1
CRISIS DEL SOFTWARE Se suele definir a la crisis del software como la incapacidad de un software para cumplir la labor para cual fue creado pero también de manera adicional se suele considerar las pérdidas de tiempo y de dinero que puede generar la situación en sí. Por otra parte, uno de los problemas más graves que suele presentarse es que los proyectos que se realizan, suelen iniciarse centrándose con rigor en la programación o creación de un código que “cumpla” con las especificaciones necesarias. Lo anterior constituye un predicamento, debido a que un proyecto no se basa sólo en un código, sino que debe seguir una metodología de trabajo. Una de las técnicas que logró solucionar toda la problemática planteada anteriormente fue la llamada: Metodología Orientada a Objetos.
1.2
LA METODOLOGÍA ORIENTADA A OBJETOS A inicios de los años 80, la metodología orientada a objetos comenzó a crecer como un enfoque de desarrollo de software. Se empezó a crear todo tipo de aplicaciones utilizando la forma de pensar orientada a los objetos y por otra parte se codificó programas utilizando lenguajes y técnicas orientadas a los objetos. La metodología orientada a objetos tenía muchas ventajas, sin embargo presentaba también debilidades referentes al análisis de requisitos, que es la relación entre la asignación de software al nivel del sistema y el diseño del software, se quedó atrás por lo que empezaron a surgir diferentes métodos de análisis y diseño orientado a objetos, entre los que destacan los métodos Booch, OOSE (Object Oriented Software Engineering) y OMT (Object Modeling Technique). Dada la alta 2
competencia entre todos estos métodos y los problemas que ésta situación causaba, es que se creó el Lenguaje Unificado de Modelado (UML).
2. El Lenguaje de Modelado Unificado (UML) 2.1 HISTORIA: El desarrollo de este lenguaje comenzó en Octubre de 1994 cuando Grady Booch y Jim Rumbaugh, de la empresa Rational Software Corporation, unificaron el anterior método de Booch y el llamado técnica de Modelado de Objetos (OMT) y crearon un proyecto común, al que llamaron Unified Method, cuyo primer borrador vio la luz en Octubre de 1995. A finales del mismo año Ivan Jacobson y su empresa Objectory se unieron a Rational Software y como resultado de la unión surgió el método OOSE (Object-Oriented Software Engineering). Al comenzar a trabajar juntos, Booch, Rumbaugh y Jacobson fijaron como objetivos los siguientes: 1. Otorgar al modelado de sistemas (y no solo al software) la capacidad de utilizar Conceptos orientados a objetos. 2. Establecer un acoplamiento explícito con los artefactos tanto conceptual como ejecutable. 3. Tratar los temas inherentes a la escala en los sistemas complejos y de misión crítica. 4. Crear un lenguaje de modelado entendible tanto por las maquinas como por los seres humanos. Los esfuerzos de los tres ingenieros dieron su fruto con la publicación de las versiones 0.9 y 0.91 de UML, en Junio y en Octubre de 1996. UML comenzó a extenderse con rapidez y muchas importantes empresas vieron en UML un asunto de importancia estratégica para sus negocios. 3
Tras una primera fusión con OMG (Object Management Group), Rational Software estableció las bases para crear un consorcio empresarial, al que pronto se unieron las compañías más importantes del mundo de la informática: DEC, HP, IBM, Microsoft, Oracle, TI, Unisys, etc. • Ofrecer a los usuarios un lenguaje de modelado de uso inmediato, expresivo y visual, para desarrollar e intercambiar modelos significativos. • Suministrar mecanismos de extensión y especialización que permitan extender Los conceptos del núcleo del lenguaje. • Soportar especificaciones que sean independientes de los lenguajes de programación particulares y de los procesos de desarrollo. • Dar una base formal para el aprendizaje del lenguaje. • Animar el crecimiento del mercado de herramientas para objetos. • Soportar conceptos de desarrollo de alto nivel: components, collaborations, frameworks, patterns. • Integrar las mejores prácticas de programación.
2.2. EL LENGUAJE UNIFICADO DE MODELADO (UML) ¿Qué es UML? El Lenguaje de Modelamiento Unificado se define como un lenguaje gráfico para visualizar, especificar y documentar cada una de las partes que comprende el desarrollo de software. UML entrega una forma de modelar cosas conceptuales como lo son procesos de negocio y funciones de sistema. El UML, fusiona los conceptos de la orientación a objetos aportados por Booch, OMT y OOSE (Booch, G. et al., 1999). Además de ello UML ofrece un estándar para describir un "plano" del sistema (modelo), incluyendo aspectos conceptuales tales como procesos, funciones del sistema, y aspectos concretos como expresiones de lenguajes de programación, esquemas de bases de datos y compuestos reciclados.
4
Por otra parte incrementa la capacidad de lo que se puede hacer con otros métodos de análisis y diseño orientados a objetos. Los autores de UML apuntaron también al modelado de sistemas distribuidos y concurrentes para asegurar que el lenguaje maneje adecuadamente estos dominios. El lenguaje de modelado es la notación (principalmente gráfica) que usan los métodos para expresar un diseño. El proceso indica los pasos que se deben seguir para llegar a un diseño. La estandarización de un lenguaje de modelado es invaluable, ya que es la parte principal del proceso de comunicación que requieren todos los agentes involucrados en un proyecto informático. Si se quiere discutir un diseño con alguien más, ambos deben conocer el lenguaje de modelado y no así el proceso que se siguió para obtenerlo. El lenguaje está dotado de múltiples herramientas para lograr la especificación determinante del modelo, pero se trabaja en forma simplificada sobre:
Modelamiento de Clases Casos de Uso Diagrama de Interacción.
Por otra parte tenemos las siguientes consideraciones:
Los diagramas de clases de UML forman la vista lógica.
Los diagramas de interacción de UML constituyen la vista de proceso.
La vista de desarrollo captura el software en su entorno de desarrollo.
Los diagramas de despliegue integran la vista física.
Los escenarios forman el modelo de casos de uso.
5
Fi ur 1-
g a Esquema Representativo
2.2.1
LOS PRINCIPALES BENEFICIOS DE UML:
El lenguaje unificado de modelado trajo consigo muchos beneficios, entre los principales tenemos:
Mejores tiempos totales de desarrollo (de 50 % o más).
Modelar sistemas (y no sólo de software) utilizando conceptos orientados a objetos.
Establecer conceptos y artefactos ejecutables.
Encaminar el desarrollo del escalamiento en sistemas complejos de misión crítica.
Crear un lenguaje de modelado utilizado tanto por humanos como por máquinas.
6
2.3
Mejor soporte a la planeación y al control de proyectos.
Alta reutilización y minimización de costos.
UML, ¿MÉTODO O LENGUAJE DE MODELADO? UML es un lenguaje para hacer modelos y es independiente de los métodos de análisis y diseño. Existen diferencias importantes entre un método y un lenguaje de modelado. Un método es una manera explícita de estructurar el pensamiento y las acciones de cada individuo. Además, el método le dice al usuario qué hacer, cómo hacerlo, cuándo hacerlo y por qué hacerlo; mientras que el lenguaje de modelado carece de estas instrucciones. Los métodos contienen modelos y esos modelos son utilizados para describir algo y comunicar los resultados del uso del método. Un modelo es expresado en un lenguaje de modelado. Un lenguaje de modelado consiste de vistas, diagramas, elementos de modelo ¾ los símbolos utilizados en los modelos ¾ y un conjunto de mecanismos generales o reglas que indican cómo utilizar los elementos. Las reglas son sintácticas, semánticas y pragmáticas (figura 1).
Figura 2Partes del lenguaje modelado
de
2.4 VISTAS: Las vistas muestran diferentes aspectos del sistema modelado. Una vista no es una gráfica, pero sí una abstracción que consiste en un número de diagramas y todos esos diagramas juntos muestran una "fotografía" completa del sistema. Las vistas también ligan el lenguaje de modelado a los métodos o procesos elegidos para el desarrollo. Las diferentes vistas que UML tiene son:
Vista Use-Case: Una vista que muestra la funcionalidad del sistema como la perciben los actores externos.
7
2.5
Vista Lógica: Muestra cómo se diseña la funcionalidad dentro del sistema, en términos de la estructura estática y la conducta dinámica del sistema.
Vista de Componentes: Muestra la organización de los componentes de código.
Vista Concurrente: Muestra la concurrencia en el sistema, direccionando los problemas con la comunicación y sincronización que están presentes en un sistema concurrente.
Vista de Distribución: muestra la distribución del sistema en la arquitectura física con computadoras y dispositivos llamados nodos.
DIAGRAMAS: Los diagramas son las gráficas que describen el contenido de una vista. UML tiene nueve tipos de diagramas que son utilizados en combinación para proveer todas las vistas de un sistema: diagramas de caso de uso, de clases, de objetos, de estados, de secuencia, de colaboración, de actividad, de componentes y de distribución.
2.6
SÍMBOLOS O ELEMENTOS DE MODELO: Los conceptos utilizados en los diagramas son los elementos de modelo que representan conceptos comunes orientados a objetos, tales como clases, objetos y mensajes, y las relaciones entre estos conceptos incluyendo la asociación, dependencia y generalización. Un elemento de modelo es utilizado en varios diagramas diferentes, pero siempre tiene el mismo significado y simbología.
8
Figura 3- Conjunto de diagramas UML.
2.7
REGLAS O MECANISMOS GENERALES: Proveen comentarios extras, información o semántica acerca del elemento de modelo; además proveen mecanismos de extensión para adaptar o extender UML a un método o proceso específico, organización o usuario.
2.8
FASES DEL DESARROLLO DE UN SISTEMA Las fases del desarrollo de sistemas que soporta UML son: Análisis de requerimientos, Análisis, Diseño, Programación y Pruebas. 2.8.1 Análisis de Requerimientos UML tiene casos de uso (use-cases) para capturar los requerimientos del cliente. A través del modelado de casos de uso, los actores externos que tienen interés en el sistema son modelados con la funcionalidad que ellos requieren del sistema (los casos de uso). Los actores y los casos de uso son modelados con relaciones y tienen asociaciones entre ellos o éstas son divididas en jerarquías. Los actores y casos de uso son descritos en un diagrama use-case. Cada use-case es descrito en texto y especifica los requerimientos del cliente: lo que él (o ella) espera del sistema sin considerar la funcionalidad que se implementará. Un análisis de requerimientos puede ser realizado también para procesos de negocios, no solamente para sistemas de software.
9
2.8.2 Análisis La fase de análisis abarca las abstracciones primarias (clases y objetos) y mecanismos que están presentes en el dominio del problema. Las clases que se modelan son identificadas, con sus relaciones y descritas en un diagrama de clases. Las colaboraciones entre las clases para ejecutar los casos de uso también se consideran en esta fase a través de los modelos dinámicos en UML. Es importante notar que sólo se consideran clases que están en el dominio del problema (conceptos del mundo real) y todavía no se consideran clases que definen detalles y soluciones en el sistema de software, tales como clases para interfaces de usuario, bases de datos, comunicaciones, concurrencia, etc. 2.8.3 Diseño En la fase de diseño, el resultado del análisis es expandido a una solución técnica. Se agregan nuevas clases que proveen de la infraestructura técnica: interfaces de usuario, manejo de bases de datos para almacenar objetos en una base de datos, comunicaciones con otros sistemas, etc. Las clases de dominio del problema del análisis son agregadas en esta fase. El diseño resulta en especificaciones detalladas para la fase de programación. 2.8.4 Programación En esta fase las clases del diseño son convertidas a código en un lenguaje de programación orientado a objetos. Cuando se crean los modelos de análisis y diseño en UML, lo más aconsejable es trasladar mentalmente esos modelos a código. 2.8.5 Pruebas Normalmente, un sistema es tratado en pruebas de unidades, pruebas de integración, pruebas de sistema, pruebas de aceptación, etc. Las pruebas de unidades se realizan a clases individuales o a un grupo de clases y son típicamente ejecutadas por el programador. Las pruebas de integración integran componentes y clases en orden para verificar que se ejecutan como se especificó. Las pruebas de sistema ven al sistema como una "caja negra" y validan que el sistema tenga la funcionalidad final que le usuario final espera. Las pruebas de aceptación conducidas por el cliente verifican que el sistema satisface los requerimientos y son similares a las pruebas de sistema.
2.9
UML ES UN LENGUAJE PARA VISUALIZAR:
10
Un programador a veces realiza el modelado mentalmente, es decir, avanza en el desarrollo codificando simultáneamente. Se puede valer de bosquejos de ideas, pero no son entendibles fácilmente por otros o simplemente está sujeta a errores, a menos que haya personas implicadas que hablen el mismo lenguaje. El código fuente del sistema no es bagaje suficiente para interpretar un sistema y surgen lenguajes de texto y gráficos como UML.
2.10 UML ES UN LENGUAJE PARA ESPECIFICAR
Especificar es construir modelos precisos, no ambiguos y completos. UML cubre la especificación de todas las decisiones de análisis, diseño e implementación que deben realizarse al desarrollar y desplegar un sistema con gran cantidad de software.
2.11 UML ES UN LENGUAJE PARA CONSTRUIR
No es un lenguaje de programación visual, pero sus modelos pueden conectarse de forma directa a una gran variedad de lenguajes de programación. Java, C++, Visual Basic, tablas en una base de datos relacional. Las cosas que se expresan mejor se gráficamente se expresan en UML mientras que las que se expresan mejor textualmente se plasman en el lenguaje de programación. Esto permite la ingeniería directa, es decir la generación de código a partir de un modelo UML como también la ingeniería inversa que consiste en escribir código a partir de una implementación, ésta requiere de herramientas que la soporten y de la intervención humana. UML es lo suficientemente expresivo y no ambiguo para permitir la ejecución directa de modelos, la simulación de sistemas y la coordinación de sistemas de ejecución.
2.12 UML ES UN LENGUAJE PARA DOCUMENTAR
11
Una organización de software, además de código ejecutable, debe producir toda clase de artefactos como:
Requisitos.
Arquitectura.
Diseño.
Código fuente.
Planificación de proyectos.
Pruebas.
Prototipos.
Versiones.
Estos son críticos para el control, la medición y comunicación que requiere un sistema durante su desarrollo y después de su despliegue. UML cubre la documentación de la arquitectura y todos sus detalles. UML proporciona un lenguaje para expresar requisitos y pruebas y para modelar las actividades de planificación de proyectos y gestión de versiones.
2.13 ¿DÓNDE SE PUEDE UTILIZAR UML?
Sistemas con gran cantidad de software tales como:
Sistemas de información empresarial.
Bancos y servicios financieros. 12
Telecomunicaciones.
Transporte.
Defensa / industria aeroespacial.
Comercio.
Electrónica médica.
Ámbito científico.
Servicios distribuidos basados en la Web.
Flujos de trabajo (workflows) en el sistema jurídico.
Estructura y comportamiento de un sistema de vigilancia médica de un enfermo.
Diseño de hardware
3. Conclusiones sobre UML
En la actualidad, UML está consolidado como el lenguaje estándar en el análisis y diseño de sistemas de cómputo. Mediante UML se puede establecer la serie de requerimientos y estructuras necesarias para plasmar un sistema de software previo al proceso intensivo de escribir código.
De manera análoga que en la construcción de un edificio se realizan planos previo a su construcción, en Software se deben realizar diseños en UML previa codificación de un sistema, ahora bien, aunque UML es un lenguaje, éste posee más características visuales que programáticas, mismas que facilitan a integrantes de un equipo multidisciplinario participar e intercomunicarse fácilmente, estos integrantes siendo los analistas, diseñadores, especialistas de área y a los programadores.
Entre más complejo es el sistema que se desea crear más beneficios presenta el uso de UML.
4. Bibliografía web consultada:
13
http://www.docirs.com/uml.htm http://profesores.fi-b.unam.mx/carlos/aydoo/uml.html http://www.monografias.com/trabajos5/insof/insof.shtml http://www.aprenderaprogramar.com/ https://users.dcc.uchile.cl/~psalinas/uml/introduccion.html https://monografías.com.pe
14