Vous êtes sur la page 1sur 43

Grupo de Ingeniera de Software / CIMAT

Presentacin Cmo Aprender UML?


Grupo de Ingeniera de Software Centro de Investigacin en Matemticas Guanajuato, Mxico 2007 Desarrollada por: Efran Salomn Flores
Correo electrnico: esalomon@cimat.mx

2007 by ESF

Pres. Cmo Aprender UML? / 1

Grupo de Ingeniera de Software / CIMAT

Objetivos de la Presentacin
Describir las semejanzas entre el UML y el Lenguaje Escrito. Mostrar la representacin de los conceptos de la orientacin a objetos en UML. Presentar un subconjunto de los diagramas de UML aplicados a un caso de estudio.

2007 by ESF

Pres. Cmo Aprender UML? / 2

Grupo de Ingeniera de Software / CIMAT

Puntos a Tratar
1. 2. 3. 4. 5. 6. 7. Introduccin Caso de Estudio Alfabeto, Palabras y Sentencias Modelado Orientado a Objetos Prrafos Secciones Documentos

2007 by ESF

Pres. Cmo Aprender UML? / 3

Grupo de Ingeniera de Software / CIMAT

1. Introduccin
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. Cmo Aprender UML? / 4

Grupo de Ingeniera de Software / CIMAT

1.1 Qu es UML?
Definicin:
UML es un lenguaje para modelar y comunicar informacin sobre sistemas, para lo cual se usan diagramas y texto.
Administrador Nombre IniciarProyecto() TerminarProyecto()

Dirige

Administra Proyecto Nombre FechaDeInicio FechaDeFin


Pres. Cmo Aprender UML? / 5

Equipo Descripcin

2007 by ESF

Grupo de Ingeniera de Software / CIMAT

1.2 UML vs Lenguaje Escrito


Administrador Nombre Telefono IniciarProyecto() TerminarProyecto() Dirige Equipo Descripcion Proyecto Nombre FerchaDeInicio FichaDeFin Administra

Un administrador dirige un equipo que trabaja en un proyecto. Cada administrador tiene un nombre y un nmero de telfono, adems puede iniciar o terminar un proyecto. Cada proyecto tiene un nombre, una fecha de inicio y una fecha de fin. Cada equipo tiene una descripcin, y eso es todo lo que nos interesa con respecto al equipo.

Ejecuta

2007 by ESF

Pres. Cmo Aprender UML? / 6

Grupo de Ingeniera de Software / CIMAT

1.3 Los Tres Aspectos de UML


Lenguaje
Nos permite la comunicacin sobre un tema o concepto determinado.

Modelo
Es una representacin de un tema.

Unificado
Habla de los diferentes esfuerzos para tener un lenguaje comn.
2007 by ESF Pres. Cmo Aprender UML? / 7

Grupo de Ingeniera de Software / CIMAT

1.4 Historia
El Perodo de Fragmentacin, entre la mitad de 1970 y la mitad de 1990. El Mtodo Booch `93. La Tcnica de Modelado de Objetos de James Rumbaugh. El mtodo de Ingeniera de Software Orientado a Objetos de Ivar Jacobson. El Perodo de Unificacin, entre la mitad de 1990 y la mitad de 1997. James Rumbaugh y posteriormente Ivar Jacobson, se unieron a Grady Booch para unificar sus mtodos. Inicios 1997 UML 1.0.

2007 by ESF

Pres. Cmo Aprender UML? / 8

Grupo de Ingeniera de Software / CIMAT

1.4 Historia
El Perodo de Estandarizacin: La OMG adopto UML y asumi la responsabilidad de su desarrollo. Hacia finales 1997 se libero la versin 1.1 de UML. El Perodo de Revisin: Varios vendedores empezaron a dar soporte y promocin. Surgieron varias versiones de UML. Octubre 2004 y Noviembre 2005 UML 2.0 El Perodo de Industrializacin. La OMG esta proponiendo que UML se convierta en un estndar internacional a travs de la ISO.

2007 by ESF

Pres. Cmo Aprender UML? / 9

Grupo de Ingeniera de Software / CIMAT

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. Cmo Aprender UML? / 10

Grupo de Ingeniera de Software / CIMAT

2.1 Caso de Estudio


Un sistema de administracin 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. Cmo Aprender UML? / 11

Grupo de Ingeniera de Software / CIMAT

3.1 Alfabeto
Define las partes ms 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 smbolos (rectngulos, lneas y otros elementos grficos) y cadenas de caracteres.

2007 by ESF

Pres. Cmo Aprender UML? / 12

Grupo de Ingeniera de Software / CIMAT

3.2 Palabras
Son una agrupacin de elementos del alfabeto del lenguaje que definen una unidad con significado. Las palabras en UML son los conceptos y las relaciones.
ProductoDeTrabajo Requerimiento Proyecto Equipo Sistema

Administrador

2007 by ESF

Pres. Cmo Aprender UML? / 13

Grupo de Ingeniera de Software / CIMAT

3.3 Sentencias
Son una agrupacin de palabras que definen una unidad gramatical que contiene significado y una expresin sobre un tema. Las sentencias en UML son fragmentos de diagramas o diagramas muy simples.
Equipo

Ejecuta Proyecto

2007 by ESF

Pres. Cmo Aprender UML? / 14

Grupo de Ingeniera de Software / CIMAT

3.3 Sentencias
La gramtica de un lenguaje especifica las reglas para poder combinar las palabras y formar sentencias.
Administrador Dirige Equipo

Administra Proyecto

Equipo

Dirige

Administrador

Administra

Proyecto

2007 by ESF

Pres. Cmo Aprender UML? / 15

Grupo de Ingeniera de Software / CIMAT

4. Modelado Orientado a Objetos


4.1 Conceptos Generales y Especficos 4.2 Clases, Asociaciones, Objetos y Ligas 4.3 Atributos y Valores 4.4 Operaciones y Mtodos 4.5 Mensajes y Estmulos 4.6 Generalizacin 4.7 Polimorfismo

2007 by ESF

Pres. Cmo Aprender UML? / 16

Grupo de Ingeniera de Software / CIMAT

4.1 Conceptos Generales y Especficos


Conceptos Generales:
Clases. Asociaciones. Atributos. Operaciones. Mensajes.

Conceptos Especficos:
Objetos. Ligas. Valores. Mtodos. Estmulos.

2007 by ESF

Pres. Cmo Aprender UML? / 17

Grupo de Ingeniera de Software / CIMAT

4.2 Clases, Asociaciones, Objetos y Ligas


Administrador Dirige Equipo

Administra Proyecto

Juan : Administrador

Dirige : Equipo
2007 by ESF

Administra guila : Proyecto


Pres. Cmo Aprender UML? / 18

Grupo de Ingeniera de Software / CIMAT

4.3 Atributos y Valores


Administrador Nombre Dirige Administra Proyecto Nombre FechaDeInicio FechaDeFin

Equipo Descripcin

Juan : Administrador - Nombre = "Juan Castillo Salmon"

Dirige

Administra

: Equipo - Descripcin = "Equipo que incluye anlistas, usuarios finales, arquitectos, diseadores, desarrolladores y examinadores"
2007 by ESF

guila : Proyecto - FechaDeFin = Enero 1, 2003 - FechaDeInicio = Enero 1, 2002 - Nombre = "Eagle"
Pres. Cmo Aprender UML? / 19

Grupo de Ingeniera de Software / CIMAT

4.4 Operaciones y Mtodos


class Administrador { String Nombre; void IniciarProyecto (){ ... }
Administrador Nombre IniciarProyecto() TerminarProyecto()

void IniciarProyecto (Date fecha){ ... } void TerminarProyecto (){ ... } }


Administra Proyecto Nombre FechaDeInicio FechaDeFin

Dirige

Equipo Descripcin

2007 by ESF

Pres. Cmo Aprender UML? / 20

Grupo de Ingeniera de Software / CIMAT

4.5 Mensajes y Estmulos


Administrador 2: asignarActividades 1: obtenerRequerimientos

3: asignarTareas

Equipo

Proyecto

Juan : Administrador

2: asignarActividades

1: obtenerRequerimientos

3: asignarTareas

: Equipo
2007 by ESF

guila : Proyecto
Pres. Cmo Aprender UML? / 21

Grupo de Ingeniera de Software / CIMAT

4.6 Generalizacin
Indica que una clase especfica recibe los atributos, relaciones, operaciones y mtodos de una clase general.
ProductoDeTrabajo PorcentajeCompletado Descripcin Validar()

Requerimiento PorcentajeCompletado Descripcin Media Validar() Publicar()


2007 by ESF

Sistema PorcentajeCompletado Descripcin Plataforma Validar() Deploy()


Pres. Cmo Aprender UML? / 22

Grupo de Ingeniera de Software / CIMAT

4.7 Polimorfismo
Es la habilidad de tener varios mtodos para una sola operacin.
ProductoDeTrabajo PorcentajeCompletado Descripcin Validar()

Requerimiento PorcentajeCompletado Descripcin Media Validar() Publicar()

Sistema PorcentajeCompletado Descripcin Plataforma Validar() Deploy()

2007 by ESF

Pres. Cmo Aprender UML? / 23

Grupo de Ingeniera de Software / CIMAT

5. Prrafos
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 Colaboracin

2007 by ESF

Pres. Cmo Aprender UML? / 24

Grupo de Ingeniera de Software / CIMAT

5. Prrafos
Un prrafo es un grupo de sentencias con un tema en comn. Los prrafos 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 Colaboracin, de Estado, y de Actividad.

2007 by ESF

Pres. Cmo Aprender UML? / 25

Grupo de Ingeniera de Software / CIMAT

5.1 Diagramas de Clases


ProductoDeTrabajo PorcentajeCompletado Descripcin Validar()

Sistema PorcentajeCompletado Descripcin Plataforma Validar() Deploy()

Requerimiento PorcentajeCompletado Descripcin Media Validar() Publicar()

Salida Entrada

Proyecto Nombre FechaDeInicio FechaDeFin

Entrada Salida

Administrar

Ejecuta

Administrador Nombre Telefono IniciarProyecto() TerminarProyecto()

Dirige

Equipo Descripcin

2007 by ESF

Pres. Cmo Aprender UML? / 26

Grupo de Ingeniera de Software / CIMAT

5.1 Diagramas de Clases


El administrador del proyecto utiliza el sistema de administracin 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 administracin de proyectos, el administrador puede iniciarlo, y posteriormente terminarlo, una vez que se haya completado o por cualquier otra razn. 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 descripcin, un porcentaje de completado (que se mide a travs de un esfuerzo) y pueden ser validados. Sin embargo la validacin 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 travs de pruebas que comparan el sistema versus los requerimientos. Adicionalmente, los requerimientos pueden ser publicados utilizando diferentes tipos de medios, por ejemplo a travs de una intranet o en papel; los sistemas pueden ser colocados en plataformas especficas.
2007 by ESF Pres. Cmo Aprender UML? / 27

Grupo de Ingeniera de Software / CIMAT

5.2 Diagramas de Objetos


Req-Cliente : Requerimiento

Entrada
Condor : Proyecto

Salida Ejecuta
: Equipo : Equipo

Administra Dirige Dirige

Entrada

Solucin en .Net : Sistema

Requerimientos Comunes : Requerimiento

Ejecuta Administra Dirige


Juan : Administrador Nombre = "Juan Prez" Halcn : Proyecto

Entrada Salida
Solucin en Java : Sistema

: Equipo Descripcin = "Este es el equipo del Proyecto guila"

Ejecuta Administra Entrada


: Requerimiento Porcentaje Completado = 50% Descripcin = "Este es el requerimiento para el Sistema de Administracin de Proyectos"
2007 by ESF

guila : Proyecto Nombre = "guila" Fecha de Inicio = Enero 1, 2002 Fecha de Fin = Enero 1, 2003

Salida
: Sistema Porcentaje Completado = 50% Descripcin = "Este es el Sistema de Administracin de Proyectos"
Pres. Cmo Aprender UML? / 28

Grupo de Ingeniera de Software / CIMAT

5.2 Diagramas de Objetos


El sistema de administracin de proyectos debe manejar el siguiente escenario:
Juan quien es un administrador de proyectos, maneja tres proyectos, que se llaman, guila, Halcn, y Cndor. Todos los proyectos involucran equipos annimos o sin nombre. El proyecto guila esta desarrollando un sistema de administracin de proyectos, similar al que se esta utilizando de ejemplo. El proyecto Halcn esta utilizando la plataforma Java para producir otro tipo de sistema, que esta dirigido hacia un amplio mercado. El proyecto Cndor esta utilizando la plataforma Microsoft .Net para producir un sistema similar al del proyecto Halcn, pero este tiene requerimientos especficos de organizacin adicionales. Por consiguiente los proyectos Halcn y Cndor comparten requerimientos comunes.
2007 by ESF Pres. Cmo Aprender UML? / 29

Grupo de Ingeniera de Software / CIMAT

5.3 Diagramas de Casos de Uso



AdministradorDel Proyecto AdministrarProyecto AdministrarPro

Descripcin General. Actores. Precondiciones. Flujo Principal de Eventos. Flujo Alternativo (Excepciones). Poscondiciones. Escenarios.

2007 by ESF

Pres. Cmo Aprender UML? / 30

Grupo de Ingeniera de Software / CIMAT

5.3 Diagramas de Casos de Uso

Administrador de Proyecto

Administracion del proyecto y Actividad del Registro

Administrador de Sistema

Administrador del Sistema y Actividad del Registro <<Actor>> Sistema de Respaldo Adminstrador de recursos Administracion de Recursos y Actividad del Registro

2007 by ESF

Pres. Cmo Aprender UML? / 31

Grupo de Ingeniera de Software / CIMAT

5.3 Diagramas de Casos de Uso


Administracion de Proyecto Administrador de Projecto Administrador de Sistemas <<include>>

<<include>>

Actividad de Registro <<include>>

Administrador de Sistemas <<Actor>> Sistema de Respaldo

Administracion de Recursos Administrador de Recursos

2007 by ESF

Pres. Cmo Aprender UML? / 32

Grupo de Ingeniera de Software / CIMAT

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>> <<extender>> <<extender>> Administacion de Proyecto Administrador de Proyecto

Mantener Proyecto

Mantener Actividad

Mantener Tarea
2007 by ESF Pres. Cmo Aprender UML? / 33

Grupo de Ingeniera de Software / CIMAT

5.3 Diagramas de Casos de Uso


Actores del sistema de administracin 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 limitacin de recursos especficos. Administrador de recursos Responsable de asegurar que se entrene y especialice a los recursos humanos para que estos estn disponibles para los proyectos Recursos humanos Responsable de asegurarse de que las habilidades del trabajador estn 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 administracin este disponible para un proyecto Sistema de reserva Responsable de la cubierta de datos de reserva para el proyecto de sistema administrativo
Pres. Cmo Aprender UML? / 34

2007 by ESF

Grupo de Ingeniera de Software / CIMAT

5.3 Diagramas de Casos de Uso


Un administrador del proyecto utiliza el sistema de administracin 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 sesin y fuera del sistema), entrada de datos, proceso de datos, generacin de informes. La actividad del registro de casos de uso es comn 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. Cmo Aprender UML? / 35

Grupo de Ingeniera de Software / CIMAT

5.4 Diagramas de Secuencia

Manejo de Roles:
Boundary Control Entity

2007 by ESF

Pres. Cmo Aprender UML? / 36

Grupo de Ingeniera de Software / CIMAT

5.5 Diagramas de Colaboracin


InterfazDe Usuario Administrador DelProyecto 1: IngresarNombre 2: IngresarTelefono 3: IngresarNomAdministrador 4: IngresarFechaInicio 5: IngresarFechaFin 6: IngresaDscReq 7: IngresarDscSistema 8: IngresarDscEquipo 9: Enviar Equipo 10: PeticinDel Proceso

18: asignar DscEquipo

19: Confirmar ParaTerminar Manejador AdministradorDelProyecto 17: asignar DscSistema

Sistema

11: asignarNom Administrador 14: asignar FechaInicio

13: asinar NomProyecto 16: asignar DscReq 15: asignar FechaFin Proyecto Requerimiento

12: asignar Telefono

Administrador

2007 by ESF

Pres. Cmo Aprender UML? / 37

Grupo de Ingeniera de Software / CIMAT

5.5 Diagramas de Colaboracin


Cuando se crea un proyecto, el administrador de proyectos utiliza un interfaz de usuario para ingresar:
Sus datos para poder ser contactado (como mnimo su nombre y tu nmero de telfono), El nombre del proyecto, la fecha de inicio y de fin, Y una descripcin de los requerimientos y del sistema, as como una descripcin del equipo.

Una vez que la informacin requerida es ingresada, el sistema procesa adecuadamente la solicitud guardando la informacin y confirmando la operacin.

2007 by ESF

Pres. Cmo Aprender UML? / 38

Grupo de Ingeniera de Software / CIMAT

6. Secciones
Una seccin es un grupo de prrafos con un tema en comn. Las secciones de UML son las vistas arquitectnicas que agrupan un conjunto especfico de conceptos.
Vocabulary Functionability System assembly Configuration management

Design View
Behavior

Implementation View

Use Case View Process View Deployment View


System topology Distribution Delivery Installation
Pres. Cmo Aprender UML? / 39

Performance Scalability Throughput


2007 by ESF

Grupo de Ingeniera de Software / CIMAT

7. Documentos
Un documento es un grupo de secciones sobre un tema comn. Los documentos de UML son los modelos.

2007 by ESF

Pres. Cmo Aprender UML? / 40

Grupo de Ingeniera de Software / CIMAT

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 cmo aplicarlo de manera efectiva. Trabajar en los elementos bsicos de los siguientes diagramas:
Diagramas de Clases Diagramas de Objetos Diagramas de Casos de Uso Diagramas de Secuencia Diagramas de Colaboracin

Al trabajar con UML se necesita diferenciar los Conceptos Generales de los Conceptos Especficos.
2007 by ESF Pres. Cmo Aprender UML? / 41

Grupo de Ingeniera de Software / CIMAT

Bibliografa:
Learning UML
Sinan Si Alhir 0-596-00344-7 2003 O'Reilly

2007 by ESF

Pres. Cmo Aprender UML? / 42

Grupo de Ingeniera de Software / CIMAT

Preguntas?

Fin

2007 by ESF

Pres. Cmo Aprender UML? / 43