67
Tema 5 Introducción a UML Ingeniería del Software I [email protected]

Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I [email protected]. Ingeniería del Software I –2011/2012 Unified

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

Tema 5Introducción a UML

Ingeniería del Software I

[email protected]

Page 2: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Unified Modeling Language (Lenguaje unificado de modelado)

Mitos sobre UMLUML es un lenguaje de programación

Aprender UML es aprender el paradigma de objetos.

UML es una metodología de desarrollo.

UML

Page 3: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Características generales:Incluye conceptos semánticos, notación y reglas de creación de diferentes tipos de diagramas

Permite capturar información acerca de la estructura estática y el comportamiento dinámico de un sistema

Lenguaje de modelado visual de propósito general usado para: Especificar Modelos precisos, no ambiguos, completos Visualizar Representar y comunicar ideas Construir Trasladar a un lenguaje de programación Documentar Los artefactos construidos durante un proyecto

de desarrollo de un sistema software

Características GeneralesLenguaje

Page 4: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Lenguaje = sintaxis + semántica

Unificado a través de:

Métodos y notaciones históricas integradas

Usado en múltiples etapas del ciclo de desarrollo (de requerimientos a implementación)

Gran diversidad de dominios de aplicación

Amplia variedad de lenguajes y plataformas de implementación representables

Aplicable en diferentes procesos de desarrollo

Características GeneralesUnificado

Page 5: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

¿Qué es un modelo?Una abstracción que representa algún aspecto de la realidadUna representación en algún medio que captura los aspectos importantes del sistema modelado desde un determinado punto de vistaUn modelo de un sistema software es realizado en un lenguaje de modelado

Propósito de los modelosCapturar y precisar requerimientos de un dominio de conocimiento, que sea comprensible por todos los stakeholders del proyecto.Pensar sobre un diseño de un sistema.Capturar decisiones de diseño de un sistema.Explorar posibles soluciones a un problema económicamente.Generar productos de trabajo útiles.Documentar.

Características GeneralesModelado

E = M * C2

Page 6: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Evolución:Oct. 1994: G. Booch y J. Rumbaugh se unen en Rational. Intentan unificar OMT (Object Modeling Tool) y Booch (método)Oct. 1995: I. Jacobson se une a RationalUnified Method v0.8Nov. 1997: OMG (Object Management Group) aprueba UML (v1.1)2003: versión 1.5 de UMLOct. 2004: versión 2.0 de UML2005: convertido en estándar ISO/IEC 19501:2005 Information technology — Open Distributed

Processing — Unified Modeling Language (UML) Version 1.4.2.

Cambios entre versiones:Refinamiento y extensión de modelosAmpliación de semánticaCambio en las restricciones de uso de elementos en modelos

Breve evolución histórica

Page 7: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Breve evolución histórica

Page 8: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Influencias

Page 9: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Participantes en UML 1.0

Rational Software Grady Booch, Jim Rumbaughy Ivar Jacobson

Digital Equipment Hewlett-Packard i-Logix

David Harel IBM ICON Computing

Desmond D’Souza Intellicorp and James

Martin & co. James Odell

MCI Systemhouse

Microsoft

ObjecTime

Oracle Corp.

Platinium Technology

Sterling Software

Taskon

Texas Instruments

Unisys

Page 10: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

¿Qué es una vista?Una vista es un subconjunto de construcciones de modelado que se enfocan en un aspecto particular del sistema

Proyección del sistema completo en un modelo

Cada vista cuenta con uno o más diagramas representativos

Las vistas pueden agruparse en tres áreas:Estructural

Comportamiento dinámico

Gestión del modelo

Vistas de UML

Page 11: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Vistas de UMLClasificación estructural

Describe los elementos del sistema (clasificadores) y sus relaciones

Clasificadores más comunes: ClasesCasos de UsoComponentesNodos

Vistas y diagramas asociados:Vista Estática Diagrama de clases Diagrama de objetos

Vista de Casos de uso Diagrama de casos de uso

Vista de Implementación Diagrama de componentes Diagrama de despliegue

Page 12: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

12

Vistas de UMLComportamiento dinámico

Describe el comportamiento del sistema a través del tiempo

Vistas y diagramas asociados:Vista de Interacción: modela como interactúan los objetos para realizar una funcionalidad del sistema Diagrama de colaboración

Diagrama de secuencia

Vista de Máquina de estados: modela el ciclo de vida de una instancia de una clase en estados y transiciones. Diagrama de transición de estados

Vista de Actividades: modela flujos de trabajo (workflows) Diagrama de Actividades

Page 13: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Vistas de UMLGestión del modelo

Describe la organización de los modelos en unidades jerárquicas

Permite manejar la complejidad mediante la identificación de agrupaciones de clasificadores

Elementos utilizados:Paquetes

Subsistemas

Modelos

Page 14: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Mecanismos de extensión

Permiten adaptar los elementos de modelado asignándole una semántica particular.

Estereotipos: Extienden la semántica del elemento sobre el que se aplica Permite representar una variación de un elemento existente que posee otra

intención, o distinción de uso Puede indicarse textualmente (entre << y >>) o gráficamente

Valores etiquetados Extiende las propiedades de un elemento de UML, permitiendo añadir nueva

información en la especificación del elemento Cadenas con el nombre de la etiqueta, un signo igual y un valor

Restricciones Notación matemática formal OCL Lenguaje de programación o pseudocódigo

Page 15: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Mecanismos de extensión

Ejemplo

Page 16: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Áreas, vistas y diagramas

Page 17: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Otra clasificación (UML 1.5)Diagramas estáticos (o estructurales *)

Diagramas de clases

Diagramas de objetos

Diagramas de componentes

Diagramas de despliegue

Diagramas dinámicos (o de comportamiento)

Diagramas de casos de uso*

Diagramas de secuencia

Diagramas de colaboración

Diagramas de estados

Diagramas de actividades

Áreas, vistas y diagramas

Page 18: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Otra clasificación (UML 2.0)

Áreas, vistas y diagramas

Page 19: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Propósito:

Capturar la estructura del sistema en base a elementos (clasificadores) que lo definen

Es la base sobre la que se construyen las otras vistas

Diagramas:

Diagrama de Clases

Diagrama de Objetos

Vista estática

Page 20: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Clasificadores un concepto discreto en el modelo que tiene identidad, estado, comportamiento, y relaciones

Tipos de ClasificadoresElementos del Sistema: Clase Interfaz Tipos de datos

Conceptos de Comportamiento: Caso de Uso

Conceptos del entorno: Actor

Estructuras de implementación: Componente Nodo Subsistema

Vista estáticaElementos

Page 21: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Clase = Conjunto de objetos con estructura, comportamiento, relaciones y semántica común.

Objeto = estructura + operaciones + estado interno + identidadUn objeto es una instancia de una clase.

Ejemplosalgo físico → Avión algo del negocio → Pedidoun concepto lógico → Horarioalgo de la aplicación → Window, Botón, Menúalgo del comportamiento → Tarea, Proceso

Vista estáticaElementos

Page 22: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

El diagrama de clases representa la vista estática de un sistema software

Los elementos que aparecen en este diagrama son aquellos conceptos que tienen significado dentro de una aplicación

Elementos principales de este diagrama:Clasificadores: elementos que describen cosasRelaciones entre clasificadores

La definición de cada concepto del mundo real se identifica con una clase de este diagrama

Diagrama de clases

Page 23: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Clase: se representa en un rectángulo con tres compartimientos

nombre de la clase

atributos de la clase

operaciones de la clase

Diagrama de clases:Clase

#Patrullar()

-Entrenar()

+MostrarCondecoraciones()

-Num_Placa : int

-Nombre

-Apellidos

+Apodo

-AñosServicio : int = 0

-Condecoraciones

-Puntería

-Experiencia

Policia Nombre de la clase

Atributos

Operaciones

Tipos de los atributos

Valor inicial

{<10} Restricción sobre el valor

Page 24: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Determina el nivel de encapsulamiento de los elementos de una clase

(-) Privado: Los atributos/operaciones son visibles solo desde la propia clase.

(#) Los atributos/operaciones protegidos están visibles para la propia clasey para las clases derivadas de la original

(+) Los atributos/operaciones públicos son visibles a otras clases (cuando se trata de atributos se está transgrediendo el principio de encapsulación)

Diagrama de clases:Visibilidad

Visibilidad+ público# protegido- privado

Page 25: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Las relaciones entre clasificadores son:Asociación (conocimiento)

Agregación / Composición

Generalización

Dependencia

Realización

Enlace:Instancia de una asociación

Lista ordenada de referencias a objetos

Diagrama de clases:Relaciones entre clasificadores

Page 26: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Asociación:

Conexión semántica entre instancias de clases

Proporciona una conexión para el envio de mensajes

Diagrama de clases:Relaciones entre clases

Multiplicidad0..1 N..M0..* 3..*1..* 2..51 3..4, 6..**

#Patrullar()

-Entrenar()

+MostrarCondecoraciones()

-Num_Placa : int

+Apodo

-Puntería

-Experiencia

Policia

#Robar()

-Escapar()

+MostrarHistorial()

-IDLadron : int

+Apodo

-Tipo : int = 0

-Encarcelaciones

-Puntería

Ladrón

-perseguidor

1..*

-delincuente

1..*

Persigue4

Multiplicidad

Nombre de la relación

Dirección de lectura de la relación

Navegabilidad (uni/bi-direccional)roles

Page 27: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Asociación como clase

Asociación calificada

Asociación ordenada

Restricción

Diagrama de clases: Asociación: casos especiales

Teatro Obra

-Fecha

-Hora

Presentacion

* *

Presentacion EntradaNum_Butaca

1 1..*

Presentacion Diapositiva

1

{ordered}

1..*

CuentaPersona

1

*

or

Empresa

*

*

0..1

Page 28: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Agregación: relación entre un todo y sus partes

Lógica: la parte puede pertenecer a varios agregados

Física (o composición): las partes sólo existen asociadas al compuesto (acceso a través de él)

Diagrama de clases:Relaciones entre clases

Universidad Estudiante1..* 1..*

Universidad Departamento1 1..*

Page 29: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Consideraciones sobre la composiciónUna composición es una forma de asociación más fuerte en la cual el compuesto es responsable de gestionar sus partes, por ejemplo asignación y desasignación

La composición implica tres cosas: Dependencia existencial. El elemento dependiente desaparece al

destruirse el que lo contiene y, si es de cardinalidad 1, es creado al mismo tiempo

Hay una pertenencia fuerte. Se puede decir que el objeto contenido es parte constitutiva y vital del que lo contiene

Los objetos contenidos no son compartidos, esto es, no hacen parte del estado de otro objeto

Diagrama de clases:Relaciones entre clases

Page 30: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Dependencia: Indica una relación semántica entre dos o más elementos del modelo en la cual un cambio al elemento proveedor puede requerir un cambio o indicar un cambio en el significado del elemento cliente en la dependencia

Diagrama de clases:Relaciones entre clases

Mecanismos de extensión de UML

• Estereotipos <<excepción>>• Valores etiquetados {versión=3.1}• Restricción {edad>18}

#Robar()

-Escapar()

+MostrarHistorial()

Ladrón

-IDLadron : int

+Apodo

-Tipo : int = 0

-Encarcelaciones

-Puntería +usar()

+aprenderUso()

Herramienta

-material

-fuerza

«uses»

Estereotipo

Page 31: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Generalización:

Relación taxonómica entre una descripción general y otra más específica que la extiende

Relación “es un tipo de”

Representación del concepto de herencia

Diagrama de clases:Relaciones entre clases

#Patrullar()

-Entrenar()

+MostrarCondecoraciones()

-Num_Placa : int

+Apodo

-Puntería

-Experiencia

Policia

-Origen

+Especialidad

Criminalista

+Riesgo

-Pistola

Patrullero

Page 32: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Realización: Es una relación que implica que la parte realizante cumple con una serie de especificaciones propuestas por la clase realizada

Situaciones de aplicación: Interfaces y las clases y componentes que lo implementan

Casos de uso y colaboraciones que lo realizan

Diagrama de clases:Relaciones entre clases

#Patrullar()

-Entrenar()

+MostrarCondecoraciones()

-Num_Placa : int

+Apodo

-Puntería

-Experiencia

Policia

«interfaz»

MiembroSeguridad

Page 33: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Describen un protocolo de comportamiento sin especificar su implementación.

Contienen operaciones pero no atributos.

Una interfaz puede ser implementada por varias clases

Diagrama de clases:Interfaces

Page 34: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Ambos pertenecen a dos vistas complementarias del modeloDiagrama de Clases: muestra la abstracción de una parte del dominio

Diagrama de Objetos: representa una situación concreta del dominio

Diagramas de Clases vs.Diagramas de Objetos

Banco Cliente

*1

Cuenta

*11 * 1 *

unBanco : Banco

cliente01 : Cliente

cliente02 : Cliente

cta0101 : Cuenta

cta0201 : Cuenta

cta0202 : Cuenta

Page 35: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Se desea modelar el sistema de control de un reproductor de MP3 que tiene las siguientes características:

Un reproductor tiene una marca y modelo determinado. Las operaciones que permite este aparato son: escuchar música (de la memoria), escuchar la radio o configurar el dispositivoEl módulo de memoria permite: conocer la capacidad de la memoria, el número de canciones almacenadas, seleccionar una canción (aleatoriamente o por su título) y borrar una canciónDe cada canción se conoce su título, intérprete, duración, tamaño que ocupa, y tipo de compresión (en kbps)El módulo de radio permite: seleccionar un dial concreto (preseleccionado o manualmente), cambiar de AM a FM y viceversa y preseleccionar emisoras.Cada emisora se caracteriza por estar en una banda (AM/FM), por un número de frecuencia y por una coberturaEl módulo para la configuración del equipo permite: modificar el brillo y colores del display, consultar el estado de la batería y modificar la ecualización del sonido.

Diseñar el diagrama de clases UML correspondiente a estas especificaciones

Ejercicio

Page 36: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Diagramas de casos de uso:Capturan los requerimientos funcionales del sistemaDescriben la forma de usar el sistema tal como se la ve desde el exteriorVisión de “caja negra” del sistema.No es un modelo orientado a objetos.Particiona la funcionalidad del sistema en unidades discretas: los casos de uso.

Concepto introducido por I.Jacobson en OOSE (Object Oriented Software Engineering)

Diagramas de Casos de Uso: Actores + Caso de uso

Vista de Casos de Uso

Page 37: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Representa algo que interactúa con el sistema

Puede ser humano u otro sistema (externo)

Reside fuera del sistema sirve para describir el entorno del sistema

Describe un “rol” que asume un usuario

La misma persona física puede asumir distintos roles

Ejemplos:Cliente del Banco

Cajero

Pasarela bancaria

Sistema de sensores

Diagrama de Casos de UsoActor

Cliente del Banco

Page 38: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Secuencia de transacciones realizadas por el sistema que brinda un resultado de valor a un actor

Describe una “forma” de utilizar el sistema o una “razón” por la que el usuario interactúa con el sistema

Funciones:Capturan requisitos funcionales del sistemaEstructuran los modelos de objetos en vistas manejables

Un caso de uso puede tener varios caminos de acción o “escenarios”

Los casos de uso sirven como hilo conductor del proceso de desarrollo (en el PUD)

Diagrama de Casos de UsoCaso de uso

Page 39: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Diagrama de Casos de UsoEjemplo

AdministraciónOperador

(f rom Actors)

Extracción

(from Extraccion)

TransferenciaCliente

(f rom Actors)

Depósito

Sistema Central(f rom Actors)

Cajero automático (CA)

Page 40: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Diagrama de Casos de UsoDescripción textual

CU Extracción – Camino Estandard

1 Un mensaje de bienvenida está en espera en la pantalla del CA.

2 El cliente inserta su tarjeta en el CA.

3 El CA lee el codigo de la banda magnética y verifica que sea aceptable.

4 Si la tarjeta es aceptable, el CA solicita al cliente su código PIN.

5 El cliente ingresa su código PIN.

6 Si el código PIN es correcto, el CA solicita al cliente el tipo de transacción a realizar.

7 El cliente selecciona <extracción> y el CA envía el código PIN al Sistema bancario

solicitando los datos de la cuenta del cliente.

8 Los datos de la cuenta recibidos se despliegan en la pantalla.

9 El cliente selecciona una cuenta y el monto a extraer.

10 El CA envia al sistema bancario el requerimiento de extracción.

11 El CA preparan los billetes a ser dispensados.

12 El CA imprime el comprobante del movimiento.

13 Los billetes son dispensados al cliente.

Page 41: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Diagrama de Casos de UsoDescripción textual

RF- <id del requisito> <nombre del requisito funcional>

Versión <numero de versión y fecha>

Autores <autor>

Fuentes <fuente de la versión actual>

Objetivos asociados <nombre del objetivo>

Descripción El sistema deberá comportarse tal como se describe en el siguiente caso de uso { concreto cuando <evento de activación> , abstracto durante la realización de los casos de uso <lista de casos de uso>}

Precondición <precondición del caso de uso>

Paso Acción 1 {El <actor> , El sistema} <acción realizada por el

actor o sistema>, se realiza el caso de uso < caso de uso RF-x>

2 Si <condición>, {el <actor> , el sistema} <acción realizada por el actor o sistema>>, se realiza el caso de uso < caso de uso RF-x>

3

4

5

6

Secuencia Normal

n

Postcondición <postcondición del caso de uso>

Paso Acción 1 Si <condición de excepción>,{el <actor> , el

sistema} }<acción realizada por el actor o sistema>>, se realiza el caso de uso < caso de uso RF-x>, a continuación este caso de uso {continua, aborta}

2

Excepciones

3

Rendimiento Paso Cota de tiempo

1 n segundos

2 n segundos

Frecuencia esperada <nº de veces> veces / <unidad de tiempo>

Importancia {sin importancia, importante, vital}

Urgencia {puede esperar, hay presión, inmediatamente}

Comentarios <comentarios adicionales>

Page 42: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Inclusión

Secuencias comunes a varios casos de uso

Diagrama de Casos de UsoRelaciones

Procesar Tarjeta

Extracción Transferencia Depósito

<<include>>

<<include>>

<<include>>

Page 43: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Extensión:

Partes opcionales de un caso de uso

Diagrama de Casos de UsoRelaciones

Extracción

Estadística

Extracción

Monitoreo

Extracción

<<extend>> <<extend>>

Page 44: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Generalización:

Distintas variantes de un caso de uso. (“es un tipo de”)

Diagrama de Casos de UsoRelaciones

Extracción

Extracción Pesos Extracción Dólares

Page 45: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Diagrama de Casos de UsoEjemplo

«»

«»

Hacer Pedido

<<extend>>

«»

«»

Silicitar

Catálogo

«»

«»

Suministro de

datos de

clientes

<<include>>

«»

«»

Pedir Producto

<<include>>

«»

«»

Pagar

<<include>>

«»

«»

Pagar al

contado

«»

«»

Acordar

Crédito

Page 46: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Representa como interactúan cooperativamente los objetos para implementar el comportamiento definido por los casos de uso

ColaboraciónInteracción entre un conjunto de objetos para implementar un comportamiento del sistema.Una colaboración <<realiza>> la funcionalidad definida en un casos de uso

InteracciónUna interacción es un conjunto de mensajes que se intercambian dentro del contexto de una colaboración por instancias de clases (objetos) a través de enlaces (instancias de asociación)

Vista de Interacción

Page 47: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Énfasis en la distribución física y relaciones de los objetos

Vista de InteracciónDiagramas de Colaboración

: Cliente del banco : Interfaz de cajero : Transacción

cuentaOrigen : Cuenta

1: transferencia

2: teclee cantidad

3: cantidad

4: teclee cuenta destino

5: cuenta destino

10: no hay fondos

6: transferencia (cuenta, cantidad)

9: no hay fondos

7: reintegro (cantidad)

8: no hay saldo

Page 48: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Énfasis en la secuencia cronológica de los mensajes

Vista de InteracciónDiagramas de Secuencia

: Encargado:WInPréstamos :Socio :Video :Préstamo

prestar(video, socio)

verificar situación socio

verificar situación video

registrar préstamo

entregar recibo

Page 49: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Vista de Máquina de Estados

Describe el comportamiento dinámico de los objetos, modelando su ciclo de vida:

Autómatas finitos con estados y transiciones

Cada objeto se trata en forma aislada, el que se comunica con el resto del mundo detectando eventos y respondiendo a ellos.

Es útil modelar solo para objetos con comportamiento estado-dependiente

Uso de Diagramas de Transición de Estados

Page 50: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Cada objeto está en un estado en cierto instante

El estado describe un período de tiempo caracterizado por: Conjunto de valores de atributos y relaciones del objeto

Período de tiempo durante el que se espera que ocurra un evento

Período de tiempo durante el cual el objeto realiza una actividad

El estado en el que se encuentra un objeto determina su comportamiento

Cada objeto sigue el comportamiento descrito en el diagrama de transición de estados asociado a su clase

La transición entre estados es instantánea y se debe a la ocurrencia de un evento

Diagramas de Transición de Estados

Page 51: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Estados y Transiciones

Diagramas de Transición de Estados

A B

Evento [condición] / Acción

El evento se considera instantáneo

Page 52: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Ejemplo: Pila (TAD)

Diagramas de Transición de Estados

Pila

Vacía

Pila no vacía

ni llena

Pila

llena

evento (cond)

acción

push

borrar pila

crear pila pop

error

pop (size > 1)

push (size+1 <> full)

borrar pila

borrar pila

push (size+1 = full)

push

error

pop

pop (size = 1)

Page 53: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Acontecimiento significativo que tiene localización en tiempo y espacio

No tiene duración. Instantáneo

Tipo de eventosSeñal: comunicación asíncrona entre objetos

Llamada: invocación sincrónica de método del objeto que recibe el evento

Cambio: satisfacción de una condición lógica que depende de valores de un atributo

Tiempo: instante absoluto, o lapso transcurrido

Pueden modelarse con clases y jerarquías

Diagramas de Transición de EstadosEventos

Page 54: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Diagramas de Transición de EstadosEventos

Page 55: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Una acción es un cómputo atómico y breve:

una sentencia de asignación

una operación aritmética

el envío de una señal a otro objeto

la invocación de una operación propia

asignación de valores de retorno

creación o destrucción de objetos

una secuencia de acciones simples

Acciones específicas de entrada, salida, durante, un estado o por un evento

Diagramas de Transición de EstadosAcciones

estado A

entry: acción por entrarexit: acción por salir

do: acción mientras en estadoon evento: acción

Page 56: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Diagramas de Transición de EstadosEstados Compuestos

Page 57: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Vista de Actividades

Variante de la máquina de estados para modelar flujos de trabajo

Utilización de diagramas de actividad Caso particular de los diagramas de estado

Los estados representan estados de actividad no de un objeto

Page 58: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Diagrama de ActividadesElementos

Page 59: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Diagrama de ActividadesCalles y flujo de objetos

Page 60: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Vista de Implementación

Tipo de vista “física”

Modela el empaquetado físico del sistema en unidades reutilizables llamadas “componentes”

Componente una unidad física de implementación con interfaces definidas pensada para ser utilizada como parte reemplazable del sistema.

Cada componente implementa una o más clases del diseño

Incluyen código fuente, binario, o ejecutable

Los componentes se vinculan por relaciones de dependencia

Se utilizan diagramas de componentes

Page 61: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Diagrama de Componentes

Page 62: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Vista de Despliegue

Modela la disposición física de los recursos de ejecución computacional

Nodo: es un objeto físico de ejecución que representa un recurso computacional. Pueden tener estereotipos (CPU, memorias, disco duro, etc.)

Las asociaciones entre nodos representan líneas de comunicación.

Se representa con diagramas de despliegue

Page 63: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Diagrama de Despliegue

Page 64: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Diagrama de Despliegue

Cliente

APP

Server

DB Server

**

**

* Web Browser

* Servlets

* JSP

* JDBC

Page 65: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Vista de Gestión

La Vista de Gestión del modelo está compuesta por paquetes y relaciones de dependencia entre paquetes

Paquete: es una unidad de organización del modelo

Los paquetes ofrecen un mecanismo general para la organización de los modelos / subsistemas agrupandoelementos de modelado

Los paquetes contienen elementos del modelo como clases, diagramas de casos de uso, interacciones, etc.

Los paquetes tambien pueden contener otros paquetes

Page 66: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

www.kybele.etsii.urjc.es Ingeniería del Software I – 2011/2012

Vista de Gestión

Todos los elementos del modelo deben pertenecer a un paquete

Los paquetes pueden organizarse según el criterio del diseñador:

Por la vista (estática, casos de uso, etc.)

Por subsistema

Por etapa del ciclo de desarrollo.

Una buena organización refleja la arquitectura de alto nivel del sistema.

Page 67: Tema 5 Introducción a UML - kybele.etsii.urjc.es³nUML.pdf · Introducción a UML Ingeniería del Software I feliu.trias@urjc.es. Ingeniería del Software I –2011/2012 Unified

Tema 5Introducción a UML

Ingeniería del Software I

[email protected]