Presentación Cómo Aprender UML? Grupo de Ingeniería de Software Centro de Investigación en Matemáticas Guanajuato, México 2007 Desarrollada por: Efraín Salomón Flores Correo electrónico: esalomon@cimat.mx 2007 by ESF Pres. Cómo Aprender UML? / 1
Objetivos de la Presentación Describir las semejanzas entre el UML y el Lenguaje Escrito. Mostrar la representación de los conceptos de la orientación a objetos en UML. Presentar un subconjunto de los diagramas de UML aplicados a un caso de estudio. 2007 by ESF Pres. Cómo Aprender UML? / 2
Puntos a Tratar 1. Introducción 2. Caso de Estudio 3. Alfabeto, Palabras y Sentencias 4. Modelado Orientado a Objetos 5. Párrafos 6. Secciones 7. Documentos 2007 by ESF Pres. Cómo Aprender UML? / 3
1. Introducción 1.1 Qué es UML? 1.2 UML vs Lenguaje Escrito 1.3 Los Tres Aspectos de UML 1.4 Historia 1.5 UML y los Procesos 2007 by ESF Pres. Cómo Aprender UML? / 4
1.1 Qué es UML? Definición: UML es un lenguaje para modelar y comunicar información sobre sistemas, para lo cual se usan diagramas y texto. Administrador Nombre IniciarProyecto() TerminarProyecto() Dirige Administra Equipo Descripción Proyecto Nombre FechaDeInicio FechaDeFin 2007 by ESF Pres. Cómo Aprender UML? / 5
1.2 UML vs Lenguaje Escrito Administrador Un administrador dirige un equipo que trabaja en un proyecto. Nombre Telefono IniciarProyecto() TerminarProyecto() Administra Cada administrador tiene un nombre y un número de teléfono, además puede iniciar o terminar un proyecto. Dirige Equipo Descripcion Ejecuta Proyecto Nombre FerchaDeInicio FichaDeFin Cada proyecto tiene un nombre, una fecha de inicio y una fecha de fin. Cada equipo tiene una descripción, y eso es todo lo que nos interesa con respecto al equipo. 2007 by ESF Pres. Cómo Aprender UML? / 6
1.3 Los Tres Aspectos de UML Lenguaje Nos permite la comunicación sobre un tema o concepto determinado. Modelo Es una representación de un tema. Unificado Habla de los diferentes esfuerzos para tener un lenguaje común. 2007 by ESF Pres. Cómo Aprender UML? / 7
1.4 Historia El Período de Fragmentación, entre la mitad de 1970 y la mitad de 1990. El Método Booch `93. La Técnica de Modelado de Objetos de James Rumbaugh. El método de Ingeniería de Software Orientado a Objetos de Ivar Jacobson. El Período de Unificación, entre la mitad de 1990 y la mitad de 1997. James Rumbaugh y posteriormente Ivar Jacobson, se unieron a Grady Booch para unificar sus métodos. Inicios 1997 UML 1.0. 2007 by ESF Pres. Cómo Aprender UML? / 8
1.4 Historia El Período de Estandarización: La OMG adopto UML y asumió la responsabilidad de su desarrollo. Hacia finales 1997 se libero la versión 1.1 de UML. El Período de Revisión: Varios vendedores empezaron a dar soporte y promoción. Surgieron varias versiones de UML. Octubre 2004 y Noviembre 2005 UML 2.0 El Período de Industrialización. La OMG esta proponiendo que UML se convierta en un estándar internacional a través de la ISO. 2007 by ESF Pres. Cómo Aprender UML? / 9
1.5 UML y los Procesos UML es independiente de los procesos. Sus creadores promueven un proceso que es: Dirigido por casos de uso (use-case driven). Iterativo Incremental Sin embargo UML puede ser utilizado en cualquier proceso. 2007 by ESF Pres. Cómo Aprender UML? / 10
2.1 Caso de Estudio Un sistema de administración de proyectos provee funcionalidad para manejar proyectos, recursos y administrar el sistema. El administrador del proyecto: Utiliza el sistema para administrar proyectos. Dirige al equipo para que lleve a cabo el proyecto dentro de las fechas de inicio y fin. Una vez que el proyecto es creado el administrador puede iniciarlo, y posteriormente terminarlo. 2007 by ESF Pres. Cómo Aprender UML? / 11
3.1 Alfabeto Define las partes más simples de un lenguaje: Letras, caracteres, signos y etiquetas. El lenguaje escrito esta conformado por 27 Letras. El lenguaje UML esta conformado por fragmentos de símbolos (rectángulos, líneas y otros elementos gráficos) y cadenas de caracteres. 2007 by ESF Pres. Cómo Aprender UML? / 12
3.2 Palabras Son una agrupación de elementos del alfabeto del lenguaje que definen una unidad con significado. Las palabras en UML son los conceptos y las relaciones. ProductoDeTrabajo Requerimiento Sistema Proyecto Equipo Administrador 2007 by ESF Pres. Cómo Aprender UML? / 13
3.3 Sentencias Son una agrupación de palabras que definen una unidad gramatical que contiene significado y una expresión sobre un tema. Las sentencias en UML son fragmentos de diagramas o diagramas muy simples. Equipo Ejecuta Proyecto 2007 by ESF Pres. Cómo Aprender UML? / 14
3.3 Sentencias La gramática de un lenguaje especifica las reglas para poder combinar las palabras y formar sentencias. Administrador Dirige Administra Equipo Proyecto Equipo Dirige Administrador Administra Proyecto 2007 by ESF Pres. Cómo Aprender UML? / 15
4. Modelado Orientado a Objetos 4.1 Conceptos Generales y Específicos 4.2 Clases, Asociaciones, Objetos y Ligas 4.3 Atributos y Valores 4.4 Operaciones y Métodos 4.5 Mensajes y Estímulos 4.6 Generalización 4.7 Polimorfismo 2007 by ESF Pres. Cómo Aprender UML? / 16
4.1 Conceptos Generales y Específicos Conceptos Generales: Clases. Asociaciones. Atributos. Operaciones. Mensajes. Conceptos Específicos: Objetos. Ligas. Valores. Métodos. Estímulos. 2007 by ESF Pres. Cómo Aprender UML? / 17
4.2 Clases, Asociaciones, Objetos y Ligas Administrador Dirige Administra Equipo Proyecto Juan : Administrador Dirige Administra : Equipo Águila : Proyecto 2007 by ESF Pres. Cómo Aprender UML? / 18
4.3 Atributos y Valores Administrador Nombre Dirige Administra Equipo Descripción Proyecto Nombre FechaDeInicio FechaDeFin Juan : Administrador - Nombre = "Juan Castillo Salómon" Dirige Administra : Equipo - Descripción = "Equipo que incluye análistas, usuarios finales, arquitectos, diseñadores, desarrolladores y examinadores" Águila : Proyecto - FechaDeFin = Enero 1, 2003 - FechaDeInicio = Enero 1, 2002 - Nombre = "Eagle" 2007 by ESF Pres. Cómo Aprender UML? / 19
4.4 Operaciones y Métodos class Administrador { String Nombre; Administrador Nombre IniciarProyecto() TerminarProyecto() Dirige Administra } void IniciarProyecto (){... } void IniciarProyecto (Date fecha){... } void TerminarProyecto (){... } Equipo Descripción Proyecto Nombre FechaDeInicio FechaDeFin 2007 by ESF Pres. Cómo Aprender UML? / 20
4.5 Mensajes y Estímulos Administrador 2: asignaractividades 1: obtenerrequerimientos 3: asignartareas Equipo Proyecto Juan : Administrador 2: asignaractividades 1: obtenerrequerimientos 3: asignartareas : Equipo Águila : Proyecto 2007 by ESF Pres. Cómo Aprender UML? / 21
4.6 Generalización Indica que una clase específica recibe los atributos, relaciones, operaciones y métodos de una clase general. ProductoDeTrabajo PorcentajeCompletado Descripción Validar() Requerimiento PorcentajeCompletado Descripción Media Validar() Publicar() Sistema PorcentajeCompletado Descripción Plataforma Validar() Deploy() 2007 by ESF Pres. Cómo Aprender UML? / 22
4.7 Polimorfismo Es la habilidad de tener varios métodos para una sola operación. ProductoDeTrabajo PorcentajeCompletado Descripción Validar() Requerimiento PorcentajeCompletado Descripción Media Validar() Publicar() Sistema PorcentajeCompletado Descripción Plataforma Validar() Deploy() 2007 by ESF Pres. Cómo Aprender UML? / 23
5. Párrafos 5.1 Diagramas de Clases 5.2 Diagramas de Objetos 5.3 Diagramas de Casos de Uso 5.4 Diagramas de Secuencia 5.5 Diagramas de Colaboración 2007 by ESF Pres. Cómo Aprender UML? / 24
5. Párrafos Un párrafo es un grupo de sentencias con un tema en común. Los párrafos en UML son los diagramas: Modelado de Estructura: Diagramas de Clases, de Objetos, de Casos de Uso, de Componentes, de Deployment, de Paquetes y Subsistemas. Modelado de Comportamiento: Diagramas de Secuencia, de Colaboración, de Estado, y de Actividad. 2007 by ESF Pres. Cómo Aprender UML? / 25
5.1 Diagramas de Clases ProductoDeTrabajo PorcentajeCompletado Descripción Validar() Sistema PorcentajeCompletado Descripción Plataforma Validar() Deploy() Requerimiento PorcentajeCompletado Descripción Media Validar() Publicar() Salida Entrada Administrar Proyecto Nombre FechaDeInicio FechaDeFin Entrada Salida Ejecuta Administrador Nombre Telefono Dirige Equipo Descripción IniciarProyecto() 2007 by ESF TerminarProyecto() Pres. Cómo Aprender UML? / 26
5.1 Diagramas de Clases El administrador del proyecto utiliza el sistema de administración de proyectos para manejar un proyecto. El administrador del proyecto dirige al equipo para que lleve a cabo el proyecto dentro de las fechas de inicio y fin de dicho proyecto, una vez que el proyecto es creado en el sistema de administración de proyectos, el administrador puede iniciarlo, y posteriormente terminarlo, una vez que se haya completado o por cualquier otra razón. Como entrada un proyecto recibe requerimientos, y como salida, un proyecto produce un sistema. Tanto los requerimientos como el sistema son productos de trabajo, es decir productos que son creados, usados, optimizados y elaborados durante el proyecto. Cada uno de estos productos tienen una descripción, un porcentaje de completado (que se mide a través de un esfuerzo) y pueden ser validados. Sin embargo la validación depende del tipo de producto de trabajo. Por ejemplo los requerimientos son validados por los usuarios en juntas de trabajo y el sistema es validado a través de pruebas que comparan el sistema versus los requerimientos. Adicionalmente, los requerimientos pueden ser publicados utilizando diferentes tipos de medios, por ejemplo a través de una intranet o en papel; los sistemas pueden ser colocados en plataformas específicas. 2007 by ESF Pres. Cómo Aprender UML? / 27
5.2 Diagramas de Objetos Req-Cliente : Requerimiento Juan : Administrador Nombre = "Juan Pérez" Entrada Administra Dirige Dirige Administra Dirige Administra Entrada : Requerimiento Porcentaje Completado = 50% Descripción = "Este es el requerimiento para el Sistema de Administración de Proyectos" Condor : Proyecto Ejecuta Ejecuta : Equipo : Equipo Halcón : Proyecto Salida Entrada Solución en.net : Sistema Requerimientos Comunes : Requerimiento Entrada Salida : Equipo Solución en Java : Sistema Descripción = "Este es el equipo del Proyecto Águila" Ejecuta Águila : Proyecto Nombre = "Águila" Fecha de Inicio = Enero 1, 2002 Fecha de Fin = Enero 1, 2003 Salida : Sistema Porcentaje Completado = 50% Descripción = "Este es el Sistema de Administración de Proyectos" 2007 by ESF Pres. Cómo Aprender UML? / 28
5.2 Diagramas de Objetos El sistema de administración de proyectos debe manejar el siguiente escenario: Juan quien es un administrador de proyectos, maneja tres proyectos, que se llaman, Águila, Halcón, y Cóndor. Todos los proyectos involucran equipos anónimos o sin nombre. El proyecto Águila esta desarrollando un sistema de administración de proyectos, similar al que se esta utilizando de ejemplo. El proyecto Halcón esta utilizando la plataforma Java para producir otro tipo de sistema, que esta dirigido hacia un amplio mercado. El proyecto Cóndor esta utilizando la plataforma Microsoft.Net para producir un sistema similar al del proyecto Halcón, pero este tiene requerimientos específicos de organización adicionales. Por consiguiente los proyectos Halcón y Cóndor comparten requerimientos comunes. 2007 by ESF Pres. Cómo Aprender UML? / 29
5.3 Diagramas de Casos de Uso Descripción General. Actores. Precondiciones. AdministradorDel Proyecto AdministrarProyecto Flujo Principal de Eventos. Flujo Alternativo (Excepciones). Poscondiciones. Escenarios. 2007 by ESF Pres. Cómo Aprender UML? / 30
5.3 Diagramas de Casos de Uso Administrador de Proyecto Administracion del proyecto y Actividad del Registro Administrador de Sistema Adminstrador de recursos Administrador del Sistema y Actividad del Registro Administracion de Recursos y Actividad del Registro <<Actor>> Sistema de Respaldo 2007 by ESF Pres. Cómo Aprender UML? / 31
5.3 Diagramas de Casos de Uso Administrador de Projecto Administracion de Proyecto <<include>> Administrador de Sistemas <<include>> Actividad de Registro Administrador de Sistemas <<include>> <<Actor>> Sistema de Respaldo Administrador de Recursos Administracion de Recursos 2007 by ESF Pres. Cómo Aprender UML? / 32
5.3 Diagramas de Casos de Uso Administracion del Proyecto por si mismo Administrador de Proyecto Administracion del Proyecto por Actividad Administrar Proyecto por Tarea <<extender>> Mantener Proyecto Administacion de Proyecto Administrador de Proyecto <<extender>> <<extender>> Mantener Actividad Mantener Tarea 2007 by ESF Pres. Cómo Aprender UML? / 33
5.3 Diagramas de Casos de Uso Actores del sistema de administración de proyecto son: Administrador de proyecto Responsable de asegurarse de que un proyecto entregue un producto de calidad dentro de un tiempo y costo especificado, y adentrado a una limitación de recursos específicos. Administrador de recursos Responsable de asegurar que se entrene y especialice a los recursos humanos para que estos estén disponibles para los proyectos Recursos humanos Responsable de asegurarse de que las habilidades del trabajador estén mantenidas, y de que el trabajo de la calidad sea completado para un proyecto Administrador de sistema Responsable de asegurarse que un proyecto de sistema de administración este disponible para un proyecto Sistema de reserva Responsable de la cubierta de datos de reserva para el proyecto de sistema administrativo 2007 by ESF Pres. Cómo Aprender UML? / 34
5.3 Diagramas de Casos de Uso Un administrador del proyecto utiliza el sistema de administración de proyectos para administrar un proyecto. Los requisitos funcionales para el proyecto de sistema administrativo incluyen: funcionalidad de la seguridad (tal como permitir que los usuarios abran una sesión y fuera del sistema), entrada de datos, proceso de datos, generación de informes. La actividad del registro de casos de uso es común al manejo del proyecto, se maneja el recurso, y se administran los casos de uso del sistema. Los proyectos se conforman de actividades, y las actividades se conforman de tareas, así que un administrador de proyecto puede manejar los proyectos, sus actividades, o sus tareas. 2007 by ESF Pres. Cómo Aprender UML? / 35
5.4 Diagramas de Secuencia Manejo de Roles: Boundary Control Entity 2007 by ESF Pres. Cómo Aprender UML? / 36
5.5 Diagramas de Colaboración Administrador DelProyecto 1: IngresarNombre 2: IngresarTelefono 3: IngresarNomAdministrador 4: IngresarFechaInicio 5: IngresarFechaFin 6: IngresaDscReq 7: IngresarDscSistema 8: IngresarDscEquipo 9: Enviar InterfazDe Usuario 10: PeticiónDel Proceso 19: Confirmar ParaTerminar Equipo 18: asignar DscEquipo Manejador AdministradorDelProyecto 17: asignar DscSistema Sistema 11: asignarnom Administrador 13: asinar NomProyecto 12: asignar Telefono 14: asignar FechaInicio 15: asignar FechaFin 16: asignar DscReq Administrador Proyecto Requerimiento 2007 by ESF Pres. Cómo Aprender UML? / 37
5.5 Diagramas de Colaboración Cuando se crea un proyecto, el administrador de proyectos utiliza un interfaz de usuario para ingresar: Sus datos para poder ser contactado (como mínimo su nombre y tu número de teléfono), El nombre del proyecto, la fecha de inicio y de fin, Y una descripción de los requerimientos y del sistema, así como una descripción del equipo. Una vez que la información requerida es ingresada, el sistema procesa adecuadamente la solicitud guardando la información y confirmando la operación. 2007 by ESF Pres. Cómo Aprender UML? / 38
6. Secciones Una sección es un grupo de párrafos con un tema en común. Las secciones de UML son las vistas arquitectónicas que agrupan un conjunto específico de conceptos. Vocabulary Functionability Behavior Design View Use Case View Implementation View System assembly Configuration management Performance Scalability Throughput Process View Deployment View System topology Distribution Delivery Installation 2007 by ESF Pres. Cómo Aprender UML? / 39
7. Documentos Un documento es un grupo de secciones sobre un tema común. Los documentos de UML son los modelos. 2007 by ESF Pres. Cómo Aprender UML? / 40
Resumen Recordar que UML es un Lenguaje que sirve para Modelar, y se pretende sea ampliamente utilizado. Al aprender UML es importante concentrarse en lo esencial y entender cómo aplicarlo de manera efectiva. Trabajar en los elementos básicos de los siguientes diagramas: Diagramas de Clases Diagramas de Objetos Diagramas de Casos de Uso Diagramas de Secuencia Diagramas de Colaboración Al trabajar con UML se necesita diferenciar los Conceptos Generales de los Conceptos Específicos. 2007 by ESF Pres. Cómo Aprender UML? / 41
Bibliografía: Learning UML Sinan Si Alhir 0-596-00344-7 2003 O'Reilly 2007 by ESF Pres. Cómo Aprender UML? / 42
Preguntas? Fin 2007 by ESF Pres. Cómo Aprender UML? / 43