4 resumen uml

Page 1

UML

1


Introducción, I • Similitud: – Arquitectura: Edificios, planos – Ingeniería del software: Programas, diagramas

• UML – Unified Modeling Language – Distintos tipos de diagramas – Adaptado a Unified Process (procedimiento de análisis y diseño)

• Dominio – Mundo en el que está definido un problema

• Modelo: – Abstracción de un problema – Formado por objetos 2


Introducción, II • Objetos: – Interaccionan entre sí enviándose mensajes – Cosas que saben (atributos) y cosas que pueden hacer (operaciones) – Los valores de sus atributos determinan sus estados

• Clases: – Un diagrama común a todos los objetos de cada clase – Objetos son instancias de clases

3


Diagramas de casos de uso • • •

Lo que hace el sistema (no cómo lo hace), descrito a nivel de usuario Pueden describirse en lenguaje natural Escenario: – Una secuencia de eventos (lo que ocurre al interaccionar con el sistema)

Caso de uso (un óvalo): – Resumen de escenarios para un caso particular

• •

Un actor (persona u objeto) establece una comunicación con un caso de uso Diagrama de casos de uso: – Una colección de actores, casos de uso y sus comunicaciones – Puede contener fronteras de separación (un rectángulo)

Permiten: – Planificar acciones de debugging – Hacer análisis de requisitos (las acciones completas de los usuarios) 4


Ejemplo, I

5


Ejemplo, II

6


Ejemplo, III • • • • • • • • • • • •

Origen levanta receptor Suena tono de llamada Origen marca cifra (9) Para tono de llamada Origen marca cifra (1) Origen marca cifra (3) Origen marca cifra (9) Origen marca cifra (7) Origen marca cifra (4) Origen marca cifra (4) Origen marca cifra (6) Origen marca cifra (7)

• • • • • • • •

Suena alarma destino Suena señal origen Destino responde Para alarma destino Para señal origen Conexión Destino cuelga Origen cuelga

7


Relaciones • Relaciones entre dos casos de uso – Generalización • “Es un caso particular de …” • Herencia de clases en POO

– Inclusión (include) • “Implica hacer también …”

– Extensión (extends) • “Es una variación condicionada de …” • Incluye un punto de extensión 8


Ejemplo

9


Ejemplo (II)

10


Ejemplo de diagrama de clases

11


Diagramas de clases, I Clases • •

Clases y sus relaciones Diagramas estáticos – Muestran lo que interacciona pero no lo que ocurre al interaccionar

Clase: – – – –

Rectángulo Nombre de clase (en cursiva si es clase abstracta) Atributos y métodos Visibilidad (vis) para atributos y métodos • público (+); por omisión para métodos • privado (-); por omisión para atributos • protegido (#)

– Atributos • [vis]atributo[: tipo [= valor]]

– Operaciones (métodos) • [vis]metodo[([params]) [:tipo]] • Métodos de clase subrayados

12


Ejemplo

13


Diagramas de clases, II Relaciones Tipo de relación

Representación

Relación bidireccional Asociación (unidirecc.) Agregación Generalización Dependencia de las APIs 14


Diagramas de clases, III Interfaces • Clases abstractas sin atributos y cuyos métodos no se definen en ellas • Ejemplo: Iterator operator*() operator++() operator+(int) 15


Diagramas de clases, IV Representaci贸n de interfaces Clase MiInterfaz

Clase

<<interface>> MiInterfaz m茅todos

16


Diagramas de clases, V Agregación compuesta • Agregación compuesta Al desaparecer un objeto de la clase inicial, también lo hacen las partes correspondientes Universidad

Facultad 1

1..*

17


Ejemplo

18


Diagramas de clases, VI Anotaciones a las relaciones Tipo de anotaciรณn

Representaciรณn

Multiplicidad

1..*

Rol

cliente

Restricciรณn (OCL) Cualificaciรณn simple Cualificaciรณn compuesta

pre

2 servidor

{pre.saldo โ ค pos.total}

pos

fecha fecha saldo 19


Diagramas de clases, VII Ejemplo de cualificaci贸n compuesta

20


Anotaci贸n de relaciones, I Dependencia Derivaci贸n

Function Se puede calcular una instancia a partir de otra

Instanciaci贸n Un m茅todo de una clase crea instancias de otra clase

Keyword derive

instantiate

21


Anotaci贸n de relaciones, II Dependency

Function

Keyword

Creaci贸n

Una instancia de una clase create crea instancias de otra clase

Llamada

Un m茅todo de una clase llama a una operaci贸n de otra clase

call

22


Diagramas de clases, VIII • Los atributos no deben ser objetos (utilizar relaciones en tal caso) • Las relaciones estáticas entre clases dan lugar a asociaciones dinámicas entre objetos correspondientes • Las asociaciones entre objetos pueden modificar los datos que contienen 23


Diagramas de clases, IX OCL: Tipos de restricciones • Invariante Expresión booleana asociada a un clasificador (relación, clase, interfaz, caso de uso) que es cierta en cada instante de ejecución del programa • Precondición Expresión booleana asociada a un método que es cierta en el instante en que se comienza a ejecutar • Postcondición Expresión booleana asociada a un método que es cierta en el instante en que se termina de ejecutar 24


Diagramas de clases, X OCL: Tipos de expr. booleanas • Ejemplos de expresiones: – – – –

a>0 i > j and self.size > i articulo->forAll(a | a < 100) average hours worked per week Las tres primeras son de tipo Boolean y formales La cuarta es de tipo Real e informal

• Los operandos de una expresión son expresiones 25


Diagramas de clases, XI OCL: Expresiones • Expresiones formales básicas (atómicas): – identifier.attribute Dependiendo del contexto, identifier puede ser: • • • •

Nombre de objeto, clase, interfaz o caso de uso Rol en relación self Implícito

26


Diagramas de clases, XII OCL: Tipos bรกsicos

27


Diagramas de clases, XIII OCL: Operadores sobre colecciones • Varios: size(), count(…), sum(), product() • Set: union(…), intersection(…) • OrderdedSet: append(…), insertAt(…), at(…) • Booleanos: includes(…), forAll(|), any(|), one(|)

28


Diagramas de clases, XIV OCL: Expresiones, contexto relación Pedido

ArtículoPedido

número fecha total

dto

art precio …

{total = (art.precio * (1-dto))->sum()}

art.precio es un set, a menos que la multiplicidad sea menor o igual que 1, o se indique que art es ordenado ({sort}), en cuyo caso es un orderedSet, o que es una lista no ordenada ({bag}) o una lista ordenada ({sequence}) 29


Diagramas de clases, XV Asociación de restricciones • Mediante anotaciones directas (ej: relaciones) • Mediante anotaciones separadas Persona {self.edad > 0}

nombre edad … 30


31


Diagramas de clases, XVI Paquetes A

B

C

D

32


Diagramas de objetos • Instancias en lugar de clases – Nombre de instancia subrayado – Puede aparecer nombre de instancia y/o nombre de clase

• Ejemplo: Diagrama de clases:

33


Diagramas de objetos, II Ejemplo: Diagrama de objetos

34


Diagramas de secuencia • Diagramas de clases y objetos son estáticos • Diagramas de interacción son dinámicos (describen cómo colaboran los objetos) • Diagrama de secuencia: – Un diagrama de interacción que dice qué mensajes se envían y cuándo – El tiempo avanza verticalmente hacia abajo – También llamados trazas de eventos 35


Ejemplo, I

aReservation

aReservation

aReservation

aNotice

36


Ejemplo, II Bucles y condiciones

37


Ejemplo, III :Receptor

:LĂ­nea

:Receptor

Origen levanta receptor Suena tono de llamada Origen marca cifra (3) Para tono de llamada Origen marca cifra (9)

... Suena seĂąal origen

Suena alarma destino Destino responde

. . .

38


Diagramas de colaboración • Diagramas de interacción • Combinación de uno de objetos y uno de secuencia – Sin considerar la línea del tiempo – Grafo dirigido – Cada mensaje tiene un número (según cuándo ocurran)

• Llamado también diagrama de flujo de eventos

39


Ejemplo, I 5.suena alarma 8.para alarma 9.conexión 11.fin conexión

1.levanta receptor 3.marca cifra 10.cuelga :Receptor

:Línea

2.suena tono llamada 4.para tono llamada 5.suena señal origen 7.para señal 9.conexión 11.fin conexión

:Receptor

6.descuelga 10.cuelga

40


Ejemplo, II

41


Diagramas de estado, I Espera

start

Proceso

stop end

end

42


Diagramas de estado, II • Autómata finito determinista • Se aplica a los objetos de una clase determinada • Se entra en un estado en respuesta a un evento determinado o al crearse un objeto de la clase • Dan lugar a código que se completa con los eventos que llegan en cada momento 43


Eventos • Pueden tener parámetros • Pueden ser de cuatro tipos: – – – –

Eventos de llamada: Eventos de cambio: Eventos de señal: Eventos temporales:

op(a:T) when(exp) sname(a:T) after(time)

44


Jerarquía de señales • InputEvent (time) – UserInput (device) • MouseButton(location) – MouseButtonDown – MouseButtonUp • KeyboardCharacter(character) – ControlCharacter – GraphicCharacter »… 45


Diagramas de estado, III Actividades y condiciones • Asociadas a transiciones o estados • Estados: – entry: Se ejecuta al pasar al estado – exit: Se ejecuta al pasar a otro estado – do: Se ejecuta durante la permanencia en el estado; se para si se activa una transición durante su ejecución

• Condiciones: Asociadas a transiciones; se comprueban antes de activarlas 46


Diagramas de estado, IV Espera

start

Proceso do/run

stop end

end

47


Diagramas de estado, V Espera

start stop

Proceso entry/run

end Run lanza evento stop

48


Diagramas de estado, VI

Press tab OR move cursor to PIN field/Cursor to PIN Press shift tab OR move cursor to SSN field/Cursor to SSN

Banco Internet (validaci贸n); 49


Diagramas de estado, VII Inscripci贸n en curso de formaci贸n

50


Diagramas de estado, VIII Otro ejemplo • Suena la alarma del reloj para indicar que ha llegado la hora predeterminada (hora objetivo) • Se puede poner la alarma (con una hora objetivo) • Se puede quitar la alarma • La alarma del reloj suena cuando se cumple: alarm=on && objetivo<=hora actual <= objetivo+20s • Si la alarma está sonando, deja de sonar la alarma del reloj y se quita la alarma si se cumple alguna de las siguientes condiciones; – Se pulsa cualquier botón – hora actual>=objetivo+20 51


Diagramas de estado, IX Alarma activada do/Âżdebe-sonar-alarma?

[sĂ­]/sonar alarma Alarma sonando do/Âżdebe-sonar-alarma?

poner alarma

quitar alarma

Alarma desactivada

[no]/desactivar alarma

tocar cualquier tecla

52


Diagramas de estado, X Alarma activada sonar alarma

poner alarma

Alarma sonando

quitar alarma

Alarma desactivada

desactivar alarma

tocar cualquier tecla

53


Diagramas de estado, XI Otro ejemplo •

• •

• • •

Mientras exploran un castillo, A y B descubren lo que parece ser la entrada de un corredor secreto. Mientras A examina la puerta, B retira una vela del candelabro. En ese momento, la puerta gira 180º, llevándose a A consigo. B vuelve a colocar la vela en el candelabro. La puerta gira 360º y A vuelve a quedar separado de B. B saca de nuevo la vela. La puerta gira 360º, pero esta vez A le impide cerrarse con su cuerpo. B pasa la vela a A. Los dos amigos fuerzan (empujando cada uno en un extremo) a la puerta a retroceder 180º y de nuevo quedan separados, pero ahora B está dentro y A junto al candelabro. A pone la vela en el candelabro. Cuando la puerta empieza a girar, A saca la vela. La puerta se detiene tras girar 90º. A y B penetran en el corredor para explorarlo 54


Diagramas de estado, XII • Sacar y meter la vela del candelabro es un interruptor • Puerta: – Posición inicial 0º – Gira en sentido de las agujas del reloj – Con la puerta parada, si se toca el interruptor empieza a moverse – Con la puerta en movimiento: ¿se toca el interruptor? • No: la puerta gira hasta la posición 180º • Sí: la puerta gira hasta la posición más cercana múltiplo de 90º 55


Diagramas de estado, XIII 0 cs/gira(90)

270

cs/gira(90)

90

s, c/gira(270) s, c/gira(180)

s, c, cs/gira(90)

cs/gira(90) 180

s, c/gira(360)

56


Diagramas de estado de protocolo, I • Indican restricción: qué métodos se pueden ejecutar en cada estado con cada condición • Las transiciones consisten en la ejecución de métodos. Solamente tienen asociado un método y, opcionalmente, una condición • Los estados no tienen asociadas acciones • Si se llama un método que no corresponde a ninguna transición, el método no hace nada 57


Diagramas de estado de protocolo, II Cuenta corriente reintegro(cant) [cant <= balance + saldo]

Abierto

Close()

Cerrado

deposito(cant)

58


Diagramas de actividad, I Selecci贸n

Selecci贸n

hotel

d铆as mas

inicio fin

mensaje

Aviso banco

[libre() and inicio!=fin]

inicio++

[!libre()] [libre() and inicio=fin]

Aviso cliente 59


Diagramas de actividad, II • Llamados también diagramas de flujo de datos • Indican la lógica que rige la ejecución de acciones • Se asocian a casos de uso, paquetes, etc • Se pueden crear agrupaciones de actividades según el objeto que las realiza (swinlanes) 60


Diagramas de actividad, III Componentes gráficos • Estados de acción – Se ejecuta su acción y se sale de ellos – La acción en muchos casos es un método – Pueden tener datos de entrada (argumentos) y salida (resultados)

• Nodos de decisión (flujo con condiciones o else) • Bifurcaciones (salientes, forks, y entrantes, joins • Nodos de objeto (entre dos acciones)

61


Diagramas de actividad, III Swinglanes

62


Diagramas de actividad, IV [Pulsó Cancelar]

Muestra mensaje

Pide contraseña [Contraseña escrita]

...

Comprueba contraseña

[Contraseña correcta]

[No coincide]

Muestra mensaje

63


Atomos de actividad: acciones • • • • • •

Leer Escribir Excepción Creación Comunicación … 64


Diagramas de actividad, V Paso de diagramas de actividad y clases a diagramas de secuencia o de colaboración – Niveles de granularidad arbitrarios – Asignación de acciones y condiciones a objetos – Agrupación de acciones en métodos (iniciales y llamados por ellos) o asignación directa de métodos a acciones, y sincronización • Los objetos que ejecutan los métodos llamados por otros deben ser accesibles desde los objetos a que llaman a los métodos padres o desde el objeto devuelto por el método anterior 65


Diagramas de actividad, VI makeReservation UI

Cadena

Selecci贸n

Selecci贸n

d铆as

hotel

UI

mas

inicio fin

mensaje

Reservation Aviso banco

Hotel

[libre and inicio!=fin]

inicio++

[!libre]

Hotel [libre and inicio=fin]

Hotel

makeReservation Aviso cliente 66


Diagramas de actividad, VII

67


Diagramas de actividad, VII • Otros tipos de nodos: – Señales (síncronas o asíncronas) • Llegada • Salida

– Ejemplo: Teléfono cuelga

contesta marca

suena

habla tiempo

cuelga

68


Diagrama de componentes • Estructura física del código – – – –

Análogo físico de un diagrama de clases Componentes fuente, objetos o ejecutables Pueden formar paquetes Se pueden establecer relaciones de dependencia

• Componente

69


Ejemplo Gestor Ventanas

Gestor Ventanas

(win.cpp)

(win.obj)

Gestor Comu. (com.cpp)

Bibl. grรกfica (graph.lib)

Gestor Comu. (com.obj)

Prog. cliente (client.exe)

Clase main

Clase main

(main.cpp)

(main.obj)

70


Diagrama de despliegue • Muestra la arquitectura física del hardware y del software del sistema • Nodos: ordenadores y dispositivos. • Conexiones de diversos tipos

71


Ejemplo, I ClienteA: Compaq

TCP/IP

Servidor Aplic.: SUN ClienteB: IBM

DecNet

Servidor Base d.: VAX

TCP/IP

72


Ejemplo, II

73


Herramientas, I • Dibujo de diagramas – Soporte a la correctitud de los diagramas en base a su semántica – Apoyo para simplificar la facilidad de comprensión de los diagramas

• Archivo de información – – – –

Comprobación de inconsistencias Detección de trabajo a realizar y mejoras Generación de informes Soporte a la reutilización 74


Herramientas, II • Soporte a la navegación – Vistas compuestas – Elaboración de conexiones entre información relacionada – Búsqueda – Visión con diferentes niveles de granularidad (expansión y contracción de partes de la vista) – Filtros – Operaciones sobre componentes de la vista 75


Herramientas, III • Soporte al trabajo multiusuario – Bloqueo de información – Trabajo colaborativo

• Generación de código – Esqueletos con información estática (clases) – Integración con lenguajes especiales (SQL, …)

• Ingeniería inversa – Construcción de un modelo de diseño a partir de código – Diseño iterativo: incorporación al modelo de detalles implementados 76


Herramientas, IV • Integración con otras herramientas – – – – – – –

Entorno de desarrollo (tendencia a confluir) Configuración del sistema y control de versiones Herramientas de documentación Herramientas de prueba de software Herramientas de construcción de interfaces de usuario Herramientas de especificación de requerimientos Herramientas de gestión de proyectos y soporte al proceso de diseño y desarrollo 77


Herramientas, V • Distintos niveles de abstracción • Intercambio de información – Especificación OMG de representación de modelos UML en XMI (XML Metadata Interchange)

78


• • • •

Fundamentación de UML: Metalenguaje Metaclases que representan los elementos básicos a

partir de los cuales se definen todos los conceptos de UML (clases, relaciones, casos de uso, representación de estados, …) Forman el núcleo (core) de UML Basado en el paradigma de clases con atributos y herencia Sigue el estándar Meta Object Facility, MOF, del Object Management Group, OMG La forma en que está estructurado el metalenguaje se puede representar conceptualmente en UML 79


Fundamentación de UML (Meta)clase básica: Element • Element: concepto al que se puede asociar una secuencia de pares atributo-valor • Análogo en el meta-modelo de UML a la clase Object en algunos lenguajes de programación • Subclases inmediatas: NamedElement, RedefinableElement, RedefinedElement, PackagableElement, MultiplicityElement 80


Fundamentación de UML (Meta)clases: Relationship • Superclase común para indicar una conexión entre elementos • Subclases: Dependencia (dependency), generalización (generalization), dependencia dirigida (DirectedRelationship) 81


Fundamentación de UML Otras (meta)clases • MultiplicityElement: Incluye información sobre el número permitido de elementos instanciados • NameSpace: Puede comprender una colección de elementos para jerarquizarlos (Packages son también contenedores) • Expression: Cadena de caracteres en un lenguaje determinado 82


Fundamentación de UML (Meta)clases derivadas • Classifier (subclase de todas las anteriores) • ValueSpecification: LiteralSpecification, InstanceSpecification • Association (relación entre clasificadores con propiedades asociadas); instancias: Link • Dependency (relación que indica necesidad) 83


Fundamentación de UML Elementos comunes • Class • Operation (opcionalmente incluyen precondiciones y poscondiciones) • Interface • Implementation (relación entre un clasificador y una interfaz) 84


Fundamentaci贸n de UML Superclases de Classifier

85


Fundamentaci贸n de UML Subclases de Classifier

86


Extensiones de UML: Estereotipos • Permiten añadir semántica a un elemento “tipos especiales de” elementos del mismo tipo • Basados en cualquier tipo de elemento (clases, nodos, componentes, paquetes, relaciones, asociaciones, generalizaciones, dependencias) • Se pueden utilizar en las mismas situaciones que el elemento original 87


Extensiones de UML Definici贸n de estereotipos y perfiles <<stereotype>> <<metaclass>> Class

ClObjsCompartidos -PCImpl : PC -PCCl : PC

Objetocompartido: Un tipo especial de clase 88


Extensiones de UML Perfiles • Notación para definir nuevas construcciones compuestas con semántica específica • Formados por una <<metaclass>> y una jerarquía mediante herencia de <<stereotype>>

89


Extensiones de UML Utilizaci贸n de estereotipos y perfiles <<ClObjsCompartidos>> Obj1

<<ClObjsCompartidos>> PCImpl = PC1 PCCl = PC2 90


Fundamentaci贸n de UML Utilizaci贸n de perfiles

91


Fundamentación de UML Utilización de perfiles: descripción ± Class “ “ Device author color volume

EXTENSIÓN DE UML TV channel Author color volume = 10 92


Otras extensiones de UML: Valores etiquetados y restricciones • Valores etiquetados: Se pueden definir en estereotipos • Restricciones: Lenguaje específico (ya visto)

93


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.