Diagramas uml(1)

109
www.dsic.upv.es/~uml Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia 1 1 www.dsic.upv.es/~uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres [email protected] Departamento Sistemas Informáticos y Computación (DSIC) Universidad Politécnica de Valencia (UPV) - España 2 www.dsic.upv.es/~uml Contenido I. Introducción – Modelado de Software – UML II. Breve Tour por UML III. El Paradigma Orientado a Objeto usando UML – Fundamentos del Modelado OO – Requisitos del software – Interacción entre objetos – Clases y relaciones entre clases – Comportamiento de objetos – Componentes – Distribución y despliegue de componentes – Object Constraint Language (OCL) IV. Proceso de Desarrollo de SW basado en UML V. Conclusiones

Transcript of Diagramas uml(1)

Page 1: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

1

1www.dsic.upv.es/~uml

Desarrollo de Software Orientado a Objeto usando UML

Patricio Letelier [email protected]

Departamento Sistemas Informáticos y Computación (DSIC)Universidad Politécnica de Valencia (UPV) - España

2www.dsic.upv.es/~uml

ContenidoI. Introducción

– Modelado de Software– UML

II. Breve Tour por UMLIII. El Paradigma Orientado a Objeto usando UML

– Fundamentos del Modelado OO– Requisitos del software– Interacción entre objetos– Clases y relaciones entre clases– Comportamiento de objetos– Componentes– Distribución y despliegue de componentes– Object Constraint Language (OCL)

IV. Proceso de Desarrollo de SW basado en UMLV. Conclusiones

Page 2: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

2

3www.dsic.upv.es/~uml

IIntroducción

4www.dsic.upv.es/~uml

Introducción: Modelado de SW

Page 3: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

3

5www.dsic.upv.es/~uml

Construcción de una casa para “fido”

Puede hacerlo una sola personaRequiere:

Modelado mínimoProceso simpleHerramientas simples

I. Introducción: Modelado de SW

6www.dsic.upv.es/~uml

Construcción de una casa

Construida eficientemente y en un tiemporazonable por un equipoRequiere:

ModeladoProceso bien definidoHerramientas más sofisticadas

I. Introducción: Modelado de SW

Page 4: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

4

7www.dsic.upv.es/~uml

Construcción de un rascacielos

I. Introducción: Modelado de SW

8www.dsic.upv.es/~uml

Claves en Desarrollo de SI

Herramientas Proceso

Notación

I. Introducción: Modelado de SW

Page 5: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

5

9www.dsic.upv.es/~uml

Sistema Computacional

Proceso de Negocios

Orden

Item

envío

“El modelado captura laspartes esenciales del sistema”

Abstracción - Modelado Visual (MV) I. Introducción: Modelado de SW

10www.dsic.upv.es/~uml

II. Notación (Visual) - Beneficios

Interface de Usuario(Visual Basic,

Java, ..) Lógica del Negocio(C++, Java, ..)

Servidor de BDs(C++ & SQL, ..)

Múltiples Sistemas

Componentes Reutilizados

Manejar la complejidad

“Modelar el sistema independientemente del lenguaje de implementación”

Promover la Reutilización

I. Introducción: Modelado de SW

Page 6: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

6

11www.dsic.upv.es/~uml

Introducción: UML

12www.dsic.upv.es/~uml

¿Qué es UML?

UML = Unified Modeling LanguageUn lenguaje de propósito general para el modelado orientado a objetos. Impulsado por el Object Management Group (OMG, www.omg.org)Documento “OMG Unified Modeling Language Specification”

UML combina notaciones provenientes desde:• Modelado Orientado a Objetos • Modelado de Datos• Modelado de Componentes • Modelado de Flujos de Trabajo (Workflows)

I. Introducción: UML

Page 7: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

7

13www.dsic.upv.es/~uml

Situación de PartidaDiversos métodos y técnicas OO, con muchos aspectos en común pero utilizando distintas notaciones

Inconvenientes para el aprendizaje, aplicación, construcción y uso de herramientas, etc.

Pugna entre distintos enfoques (y correspondientes gurús)

Establecer una notación estándar

I. Introducción: UML

14www.dsic.upv.es/~uml

Historia de UML

Comenzó como el “Método Unificado”, con la participación de Grady Booch y Jim Rumbaugh. Se presentó en el OOPSLA’95

El mismo año se unió Ivar Jacobson. Los “Tres Amigos” son socios en la compañía Rational Software. Herramienta CASE Rational Rose

I. Introducción: UML

Page 8: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

8

15www.dsic.upv.es/~uml

Historia de UML

Nov ‘97 UML aprobadopor el OMG

1998

1999

2000

UML 1.2

UML 1.3

UML 1.4

2005? UML 2.0

Revisiones menores

I. Introducción: UML

UML 1.52003

16www.dsic.upv.es/~uml

Participantes en UML 1.0Rational Software (Grady Booch, Jim Rumbaugh y Ivar Jacobson)

Digital EquipmentHewlett-Packardi-Logix (David Harel)

IBMICON Computing(Desmond D’Souza)

Intellicorp and James Martin & co. (James Odell)

MCI SystemhouseMicrosoft ObjecTimeOracle Corp.Platinium TechnologySterling SoftwareTaskonTexas InstrumentsUnisys

I. Introducción: UML

Page 9: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

9

17www.dsic.upv.es/~uml

UML “aglutina” enfoques OO

UML

RumbaughJacobson

Meyer

Harel

Wirfs-BrockFusion

Embly

Gamma et. al.

Shlaer-Mellor

Odell

Booch

Pre- and Post-conditions

State Charts

Responsabilities

Operation descriptions, message numbering

Singleton classes

Frameworks, patterns, notes

Object life cycles

I. Introducción: UML

18www.dsic.upv.es/~uml

Aspectos Novedosos

Definición semi-formal del Metamodelo de UML

Mecanismos de Extensión en UML:

StereotypesConstraintsTagged Values

Permiten adaptar los elementos de modelado,

asignándoles una semántica particular

I. Introducción: UML

Page 10: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

10

19www.dsic.upv.es/~uml

Inconvenientes en UML

Definición del proceso de desarrollo usando UML. UML no es una metodología

No cubre todas las necesidades de especificación de un proyecto software. Por ejemplo, no define los documentos textuales

Ejemplos aislados

“Monopolio de conceptos, técnicas y métodos en torno a UML y el OMG”

I. Introducción: UML

20www.dsic.upv.es/~uml

Perspectivas de UMLUML es el lenguaje de modelado orientado a objetos estándar predominante ahora y en los próximos añosRazones:• Participación de metodólogos influyentes• Participación de importantes empresas• Estándar del OMG

Evidencias:• Herramientas que proveen la notación UML• “Edición” de libros (más de 300 en www.amazon.com)• Congresos, cursos, “camisetas”, etc.

I. Introducción: UML

Page 11: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

11

21www.dsic.upv.es/~uml

IIBreve Tour por UML

22www.dsic.upv.es/~uml

Modelos y DiagramasUn modelo captura una vista de un sistema del mundo

real. Es una abstracción de dicho sistema, considerando

un cierto propósito. Así, el modelo describe completa-

mente aquellos aspectos del sistema que son relevantes

al propósito del modelo, y a un apropiado nivel de detalle.

Diagrama: una representación gráfica de una colección

de elementos de modelado, a menudo dibujada como un

grafo con vértices conectados por arcos

OMG UML 1.4 Specification

II. Breve Tour por UML

Page 12: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

12

23www.dsic.upv.es/~uml

Un proceso de desarrollo de software debe ofrecer un conjunto de modelos que permitan expresar el producto desde cada una de las perspectivas de interés

El código fuente del sistema es el modelo más detallado del sistema (y además es ejecutable). Sin embargo, se requieren otros modelos ...

Cada modelo es completo desde su punto de vista del sistema, sin embargo, existen relaciones de trazabilidad entre los diferentes modelos

... Modelos y Diagramas

II. Breve Tour por UML

24www.dsic.upv.es/~uml

Diagramas de UML 1.5

Diagrama de Casos de UsoDiagrama de ClasesDiagrama de Objetos

Diagramas de ComportamientoDiagrama de EstadosDiagrama de Actividad

Diagramas de InteracciónDiagrama de SecuenciaDiagrama de Colaboración

Diagramas de implementaciónDiagrama de ComponentesDiagrama de Despliegue

II. Breve Tour por UML

Page 13: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

13

25www.dsic.upv.es/~uml

... Diagramas de UML

Use CaseDiagramsUse Case

DiagramsDiagramas de Casos de Uso

ScenarioDiagramsScenario

DiagramsDiagramas deColaboración

StateDiagramsState

DiagramsDiagramas deComponentes

ComponentDiagramsComponent

DiagramsDiagramas deDistribución

StateDiagramsState

DiagramsDiagramas de Objetos

ScenarioDiagramsScenario

DiagramsDiagramas deEstados

Use CaseDiagramsUse Case

DiagramsDiagramas deSecuencia

StateDiagramsState

DiagramsDiagramas deClases

Diagramas deActividad

Modelos

II. Breve Tour por UML

Los diagramas expresan gráficamente partes de un modelo

26www.dsic.upv.es/~uml

4+1 vistas de Kruchten (1995)

Vista Lógica

Vista de Procesos

Vista de Distribución

Vista deRealización

Vista de losCasos de Uso

Organización de Modelos

Este enfoque sigue el browser de Rational Rose

II. Breve Tour por UML

Page 14: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

14

27www.dsic.upv.es/~uml

... Organización de Modelos

Propuesta de Rational Unified Process (RUP)M. de Casos de Uso del Negocio (Business Use-Case Model)M. de Objetos del Negocio (Business Object Model)M. de Casos de Uso (Use-Case Model)M. de Análisis (Analysis Model)M. de Diseño (Design Model)M. de Despliegue (Deployment Model)M. de Datos (Data Model)M. de Implementación (Implementation Model)M. de Pruebas (Test Model)

II. Breve Tour por UML

28www.dsic.upv.es/~uml

Paquetes en UML

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

Se representan gráficamente como:

Nombre de paquete

II. Breve Tour por UML

Page 15: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

15

29www.dsic.upv.es/~uml

… Paquetes en UML

Cada paquete corresponde a un submodelo (subsistema) del modelo (sistema)

Un paquete puede contener otros paquetes, sin límite de anidamiento pero cada elemento pertenece a (está definido en) sólo un paquete

Una clase de un paquete puede aparecer en otro paquete por la importación a través de una relación de dependencia entre paquetes

II. Breve Tour por UML

30www.dsic.upv.es/~uml

… Paquetes en UML

Todos los elementos no son necesariamente visibles desde el exterior del paquete, es decir, un paquete encapsula a la vez que agrupa

El operador “::” permite designar una clase definida en un contexto distinto del actual

II. Breve Tour por UML

Page 16: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

16

31www.dsic.upv.es/~uml

...Paquetes en Rational Rose

II. Breve Tour por UML

CheckingAccount

Customers

Banking

Customers

Banking

<<access>>CheckingAccount

(f rom Banking)

Otra Clase

32www.dsic.upv.es/~uml

… Paquetes en UML

II. Breve Tour por UML

Práctica 1

Page 17: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

17

33www.dsic.upv.es/~uml

Diagrama de Casos de Uso

Casos de Uso es una técnica para capturar información respecto de los servicios que un sistema proporciona a su entorno

No pertenece estrictamente al enfoque orientado a objeto, es una técnica para captura y especificación de requisitos

II. Breve Tour por UML

34www.dsic.upv.es/~uml

… Ejemplos

Ejemplo:

II. Breve Tour por UML

Práctica 2

Retirar dinero

Consultar Ext ractoCliente

Realizar transferencia

Page 18: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

18

35www.dsic.upv.es/~uml

Diagrama de Secuencia

II. Breve Tour por UML

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

prestar(video, socio)

verificar situación socio

verificar situación video

registrar préstamo

entregar recibo

36www.dsic.upv.es/~uml

Diagrama de Colaboración

Práctica 3

II. Breve Tour por UML

: Encargado

:WInPréstamos

:Socio

:Video

:Préstamo

1: prestar(video, socio)

2: verificar situación socio

3: verificar situación video

4: registrar préstamo5: entregar recibo

Page 19: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

19

37www.dsic.upv.es/~uml

Diagrama de Clases

El Diagrama de Clases es el diagrama principal para el análisis y diseño del sistema

Un diagrama de clases presenta las clases del sistema con sus relaciones estructurales y de herenciaLa definición de clase incluye definiciones para atributos y operaciones

El modelo de casos de uso debería aportar información para establecer las clases, objetos, atributos y operaciones

II. Breve Tour por UML

38www.dsic.upv.es/~uml

Ejemplos (Clase y Visibilidad)

Alumno

DNI : char[10]número_exp : intnombre : char[50]

alta()poner_nota(asignatura : char *, año : int, nota : float)matricular(cursos : asignatura, año : int)listar_expediente()

II. Breve Tour por UML

Page 20: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

20

39www.dsic.upv.es/~uml

… Ejemplos (Asociación)

ProfesorDepartamento

10..1

director

1

dirige

0..1

II. Breve Tour por UML

40www.dsic.upv.es/~uml

… Ejemplos (Clase Asociación)

II. Breve Tour por UML

Empresa Empleado

1..** 1..**

trabajadoresempleador

Cargonombresueldo 0..1

1..*

superior

subordinado 1..*

0..1

Page 21: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

21

41www.dsic.upv.es/~uml

… Ejemplos (Generalización)

II. Breve Tour por UML

Trabajador

Directivo Administrativo Obrero

{ disjunta, completa }

42www.dsic.upv.es/~uml

… Ejemplos

Prácticas 4

II. Breve Tour por UML

Avión militar Avión comercial

Avión de carga Avión de pasajeros

Motor Vendedor de billetes

Avión

1..4

1

1..4

1

Piloto

Reserva

n

1

n

1

Línea aérea

Vuelon1 n1

1..2

n

1..2

nn1 n1

1

n

1

n{ disjunta, completa }

{ disjunta, completa }

Page 22: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

22

43www.dsic.upv.es/~uml

Diagrama de Estados

con préstamos

sin préstamos

alta baja

prestar devolver[ número_prést amos = 1 ]

pres tar

devolver[ número_préstamos > 1 ]

número_préstamos = 0

número_préstamos > 0

II. Breve Tour por UML

Socionúmero : intnombre : char[50]número_prestamos : int = 0

alta()baja()prestar(código_libro : int, fecha : date)devolver(código_libro : int, fecha : date)

44www.dsic.upv.es/~uml

Diagrama de Actividad

II. Breve Tour por UML

B u s c a r B e b id a [ n o h a y c a fé ]

P o n e r c a fé e n filtro

A ñ ad ir a g u a a l d e p ós i to

C o g e r ta z a

P o n e r filtro e n m á q u in a

E n c e n d e r m áq u in a

C afé e n p re p a ra c ió n

/ c a fe t e ra .O n

S e rv ir c a fé B e b e r

C o g e r z u m o

[ h a y c a fé ]

in dic a do r d e fin

[ h a y z u m o ]

[ n o z u m o ]

Práctica 5

Page 23: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

23

45www.dsic.upv.es/~uml

Diagrama ComponentesII. Breve Tour por UML

Interfaz de Terminal

Gestión de Cuentas Rutinas de conexión Acceso a BD

Control y Análisis

46www.dsic.upv.es/~uml

Diagrama de Despliegue

Punto de Venta

Servidor Central

Terminal de Consulta

Gestión de Cuentas

C

Interfaz de Terminal

CRutinas de Coneccion

C

Rutinas de Coneccion

C

Interfaz de Terminal

C

Rutinas de Coneccion

C

Acceso a BD

C

Control y Análisis

C

II. Breve Tour por UML

Page 24: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

24

47www.dsic.upv.es/~uml

Diagrama de Despliegue en Rational

Práctica 6

II. Breve Tour por UML

Servidor Central

Punto de Venta

Terminal de Consulta

Ac ceso a BD

Rutinas de conexión

C ontrol y Aná lisis

Rutinas de conexión

Gestión de Cuentas Interfaz de Terminal

Rutinas de conexión Interfaz de Terminal

Servidor Central

Punto de Venta

Component Diagram: Components / Servidor Central

Component Diagram: Components / Punto de Venta

Terminal de Consulta

Component Diagram: Components / Terminal de Consulta

48www.dsic.upv.es/~uml

Resumen

UML define una notación que se expresa como diagramas sirven para representar modelos/subsistemas o partes de ellos

El 80 por ciento de la mayoría de los problemas pueden modelarse usando alrededor del 20 por ciento de UML-- GradyBooch

II. Breve Tour por UML

Page 25: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

25

49www.dsic.upv.es/~uml

IIIEl Paradigma

Orientado a Objeto

50www.dsic.upv.es/~uml

¿Por qué la Orientación a Objetos?

Proximidad de los conceptos de modelado respecto de las entidades del mundo real

• Mejora captura y validación de requisitos• Acerca el “espacio del problema” y el “espacio de la

solución”

Modelado integrado de propiedades estáticas y dinámicas del ámbito del problema

• Facilita construcción, mantenimiento y reutilización

III. El Paradigma OO

Page 26: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

26

51www.dsic.upv.es/~uml

¿Por qué la Orientación a Objetos?

Conceptos comunes de modelado durante el análisis, diseño e implementación

• Facilita la transición entre distintas fases• Favorece el desarrollo iterativo del sistema• Disipa la barrera entre el “qué” y el “cómo”

Sin embargo, existen problemas ...

III. El Paradigma OO

52www.dsic.upv.es/~uml

“...Los conceptos básicos de la OO se conocen desde hace dos décadas, pero su aceptación todavía no está tan extendida como los beneficios que esta tecnología puede sugerir”

“...La mayoría de los usuarios de la OO no utilizan los conceptos de la OO de forma purista, como inicialmente se pretendía. Esta práctica ha sido promovida por muchas herramientas y lenguajes que intentan utilizar los conceptos en diversos grados”

--Wolfgang Strigel

Problemas en OO

III. El Paradigma OO

Page 27: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

27

53www.dsic.upv.es/~uml

Un objeto contiene datos y operaciones que operan sobre los datos, pero ...Podemos distinguir dos tipos de objetos degenerados:• Un objeto sin datos (que sería lo mismo que una biblioteca

de funciones)• Un objeto sin “operaciones”, con sólo operaciones del tipo

crear, recuperar, actualizar y borrar (que se correspondería con las estructuras de datos tradicionales)

Un sistema construido con objetos degenerados no es un sistema verdaderamente orientado a objetos

“Las aplicaciones de gestión están constituidasmayoritariamente por objetos degenerados”

… Problemas en OO

III. El Paradigma OO

54www.dsic.upv.es/~uml

Fundamentos de Modelado OO

Page 28: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

28

55www.dsic.upv.es/~uml

Objetos

Objeto = unidad atómica que encapsula estado y comportamiento

La encapsulación en un objeto permite una alta cohesión y un bajo acoplamiento

Un objeto puede caracterizar una entidad física (coche) o abstracta (ecuación matemática)

III. El Paradigma OO: Fundamentos de Modelado OO

56www.dsic.upv.es/~uml

… Objetos

En UML, un objeto se representa por un rectángulo con un nombre subrayado

Un objeto

Otro objeto más

Otro objeto

III. El Paradigma OO: Fundamentos de Modelado OO

Page 29: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

29

57www.dsic.upv.es/~uml

… Objetos

Ejemplo de varios objetos relacionados:

Felipe

Juan

Cuenta Corriente 101

Cuenta Corriente 114

Banco de Valencia

III. El Paradigma OO: Fundamentos de Modelado OO

58www.dsic.upv.es/~uml

… Objetos

Objeto = Identidad + Estado + ComportamientoEl estado está representado por los valores de los atributosUn atributo toma un valor en un dominio concreto

Un coche

Azul 979 Kg 70 CV

...

III. El Paradigma OO: Fundamentos de Modelado OO

Page 30: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

30

59www.dsic.upv.es/~uml

Clases y Objetos

III. El Paradigma OO: Fundamentos de Modelado OO

60www.dsic.upv.es/~uml

Comportamiento

Ejemplo de interacción:

Un Objeto

Otro Objeto

Operación 1

Operación 21: Un mensaje

III. El Paradigma OO: Fundamentos de Modelado OO

Page 31: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

31

61www.dsic.upv.es/~uml

… Comportamiento

Los mensajes navegan por los enlaces, a priori en ambas direcciones

Estado y comportamiento están relacionados

Ejemplo: no es posible aterrizar un avión si no está volando. Está volando como consecuencia de haber despegado del suelo

III. El Paradigma OO: Fundamentos de Modelado OO

62www.dsic.upv.es/~uml

Persistencia

La persistencia de los objetos designa la capacidad de un objeto trascender en el espacio/tiempo

Podremos después reconstruirlo, es decir, cogerlo de memoria secundaria para utilizarlo en la ejecución (materialización del objeto)

Los lenguajes OO no proponen soporte adecuado para la persistencia, la cual debería ser transparente, un objeto existe desde su creación hasta que se destruya

III. El Paradigma OO: Fundamentos de Modelado OO

Page 32: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

32

63www.dsic.upv.es/~uml

Comunicación

Un sistema informático puede verse como un conjunto de objetos autónomos y concurrentes que trabajan de manera coordinada en la consecución de un fin específico

El comportamiento global se basa pues en la comunicación entre los objetos que la componen

III. El Paradigma OO: Fundamentos de Modelado OO

64www.dsic.upv.es/~uml

… ComunicaciónCategorías de objetos:• Activos - Pasivos• Cliente – Servidores, Agentes

Objeto Activo: posee un hilo de ejecución (thread)propio y puede iniciar una actividad

Objeto Pasivo: no puede iniciar una actividad pero puede enviar estímulos una vez que se le solicita un servicio

Cliente es el objeto que solicita un servicio. Servidores el objeto que provee el servicio solicitado

III. El Paradigma OO: Fundamentos de Modelado OO

Page 33: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

33

65www.dsic.upv.es/~uml

… Comunicación

Los agentes reúnen las características de clientes y servidores

Son la base del mecanismo de delegación

Introducen indirección: un cliente puede comunicarse con un servidor que no conoce directamente

III. El Paradigma OO: Fundamentos de Modelado OO

66www.dsic.upv.es/~uml

… Comunicación

Ejemplo con objeto agente:

Un cliente

Un agente

Servidor 1

Servidor 2

1:

2:

3:

III. El Paradigma OO: Fundamentos de Modelado OO

Page 34: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

34

67www.dsic.upv.es/~uml

El Concepto de Mensaje

La unidad de comunicación entre objetos se llama mensaje

III. El Paradigma OO: Fundamentos de Modelado OO

Objeto 1 Objeto 2

Objeto 3 Objeto 4

1: Mensaje A

2: Mensaje C

3: Mensaje D

4: Mensaje E

68www.dsic.upv.es/~uml

Mensaje y EstímuloUn estímulo causará la invocación de una operación, la creación o destrucción de un objeto o la aparición de una señal

Un mensaje es la especificación de un estímulo

Tipos de flujo de control:• Llamada a procedimiento o flujo de control anidado• Flujo de control plano• Retorno de una llamada a procedimiento• Otras variaciones

• Esperado (balking)• Cronometrado (time-out)

III. El Paradigma OO: Fundamentos de Modelado OO

Page 35: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

35

69www.dsic.upv.es/~uml

Requisitos del software

III. El Paradigma OO: Requisitos

70www.dsic.upv.es/~uml

Casos de UsoLos Casos de Uso (Ivar Jacobson) describen bajo la forma de acciones y reacciones el comportamiento de un sistema desde el p.d.v. del usuario

Permiten definir los límites del sistema y las relaciones entre el sistema y el entorno

Los Casos de Uso son descripciones de la funcionalidad del sistema independientes de la implementación

Comparación con respecto a los Diagramas de Flujo de Datos del Enfoque Estructurado

III. El Paradigma OO: Requisitos

Page 36: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

36

71www.dsic.upv.es/~uml

… Casos de Uso

Los Casos de Uso cubren la carencia existente en métodos previos (OMT, Booch) en cuanto a la determinación de requisitos

Los Casos de Uso particionan el conjunto de necesidades atendiendo a la categoría de usuarios que participan en el mismo

El usuario debería poder entenderlos para realizar su validación

III. El Paradigma OO: Requisitos

72www.dsic.upv.es/~uml

… Casos de Uso

Ejemplo:

Actor A Caso de Uso A

Actor BCaso de Uso B

III. El Paradigma OO: Requisitos

Page 37: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

37

73www.dsic.upv.es/~uml

… Casos de UsoActores:

• Principales: personas que usan el sistema• Secundarios: personas que mantienen o administran el

sistema• Material externo: dispositivos materiales imprescindibles

que forman parte del ámbito de la aplicación y deben ser utilizados

• Otros sistemas: sistemas con los que el sistema interactúa

La misma persona física puede interpretar varios papeles como actores distintos

El nombre del actor describe el papel desempeñado

III. El Paradigma OO: Requisitos

74www.dsic.upv.es/~uml

… Casos de UsoLos Casos de Uso se determinan observando y precisando, actor por actor, las secuencias de interacción, los escenarios, desde el punto de vista del usuario

Un escenario es una instancia de un caso de uso

Los casos de uso intervienen durante todo el ciclo de vida. El proceso de desarrollo estará dirigido por los casos de uso

III. El Paradigma OO: Requisitos

Page 38: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

38

75www.dsic.upv.es/~uml

Casos de Uso: Relaciones

UML define cuatro tipos de relación en los Diagramas de Casos de Uso:

• Comunicación

Actor C aso de U so

III. El Paradigma OO: Requisitos

76www.dsic.upv.es/~uml

… Casos de Uso: Relaciones

• Inclusión : una instancia del Caso de Uso origen incluye también el comportamiento descrito por el Caso de Uso destino

<<include>> reemplazó al denominado <<uses>>

Caso de Uso Origen C aso de U so Desti no

<<include>>

III. El Paradigma OO: Requisitos

Page 39: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

39

77www.dsic.upv.es/~uml

Verificar Operación

Reintegro Cuenta Corriente

Cliente

Reintegro Cuenta de Crédito

<<include>>

<<include>>

… Casos de Uso: Relaciones

Ejemplo <<include>>:

III. El Paradigma OO: Requisitos

78www.dsic.upv.es/~uml

… Casos de Uso: Relaciones

• Extensión : el Caso de Uso origen extiende el comportamiento del Caso de Uso destino

Caso de Uso Origen C aso de U so Desti no

<<extend>>

III. El Paradigma OO: Requisitos

Page 40: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

40

79www.dsic.upv.es/~uml

Solic itar N ueva Tarjeta

Cliente Solicitar Préstamo

<<extend> >

[Tarjeta Caducada]

… Casos de Uso: Relaciones

Ejemplo <<extend>>:

III. El Paradigma OO: Requisitos

80www.dsic.upv.es/~uml

… Casos de Uso: RelacionesEjemplo <<include>> y <<extend>>:

Ident ifi cación

Transferencia en Internet

ClienteTransferencia

<<include>>

<< extend>>

III. El Paradigma OO: Requisitos

Page 41: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

41

81www.dsic.upv.es/~uml

… Casos de Uso: Relaciones

Otro ejemplo <<include>> y <<extend>>:

Place OrderSalesperson

*1 *1

Supply Customer Data

<<include>>

Orde r Product

<<include>>

Arrange Payment

<<include>>

Re que st Catalog

<<extend>>

the salesperson asks for the catalog

III. El Paradigma OO: Requisitos

82www.dsic.upv.es/~uml

… Casos de Uso: Relaciones

• Herencia : el Caso de Uso origen hereda la especificación del Caso de Uso destino y posiblemente la modifica y/o amplía

Caso de Uso Hij o Caso de Uso Padre

III. El Paradigma OO: Requisitos

Page 42: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

42

83www.dsic.upv.es/~uml

Casos de Uso: ConstrucciónUn caso de uso debe ser simple, inteligible, claro y concisoGeneralmente hay pocos actores asociados a cada Caso de UsoPreguntas clave:• ¿cuáles son las tareas del actor?• ¿qué información crea, guarda, modifica,

destruye o lee el actor?• ¿debe el actor notificar al sistema los cambios

externos?• ¿debe el sistema informar al actor de los

cambios internos?

III. El Paradigma OO: Requisitos

84www.dsic.upv.es/~uml

… Casos de Uso: ConstrucciónLa descripción del Caso de Uso comprende:• el inicio: cuándo y qué actor lo produce?• el fin: cuándo se produce y qué valor devuelve?• la interacción actor-caso de uso: qué mensajes

intercambian ambos?• objetivo del caso de uso: ¿qué lleva a cabo o

intenta?• cronología y origen de las interacciones• repeticiones de comportamiento: ¿qué

operaciones son iteradas?• situaciones opcionales: ¿qué ejecuciones

alternativas se presentan en el caso de uso?

III. El Paradigma OO: Requisitos

Práctica 7

Page 43: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

43

85www.dsic.upv.es/~uml

<comentarios adicionales>Comentarios

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

{sin importancia, importante, vital}Importancia

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

……

n segundos1

Cota de tiempoPasoRendimiento

……

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 CU-x>, a continuación este caso de uso {continua, aborta}

1

AcciónPasoExcepciones

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

……

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

2

{El <actor> , El sistema} <acción realizada por el actor o sistema>, se realiza el caso de uso< caso de uso CU-x>

1

AcciónPasoSecuenciaNormal

<precondición del caso de uso>Precondició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 loscasos de uso <lista de casos de uso>}

Descripción

<nombre del requisito funcional>Nombre

CU-<id-requisito>IdentificadorIII. El Paradigma OO: Requisitos

86www.dsic.upv.es/~uml

ComentariosEn métodos OO que carecen de una técnica de captura de requisitos se comienza inmediatamente con la construcción del modelo de análisis/diseño

Los Casos de Uso son una idea maravillosa que ha sido generalmente complicada. El verdadero truco para los Casos de Uso es mantenerlos simples. Recordad, mañana van a cambiar. Rober C. Martin

Los requisitos NO funcionales también son importantes. Desempeño, cumplimiento de estándares o leyes, atributos de calidad (confiabilidad, disponibilidad, seguridad, mantenibilidad, portabilidad), etc.

III. El Paradigma OO: Requisitos

Page 44: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

44

87www.dsic.upv.es/~uml

Interacción entre objetos

88www.dsic.upv.es/~uml

Interacción

Los objetos interactúan para realizar colectivamente los servicios ofrecidos por las aplicaciones. Los diagramas de interacción muestran cómo se comunican los objetos en una interacción

Existen dos tipos de diagramas de interacción: el Diagrama de Colaboración y elDiagrama de Secuencia

III. El Paradigma OO: Interacción entre objetos

Page 45: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

45

89www.dsic.upv.es/~uml

Mensajes

Sintaxis para mensajes:

predecesor / guarda secuencia: retorno := msg(args)

III. El Paradigma OO: Interacción entre objetos

90www.dsic.upv.es/~uml

Diagramas de interacción

El Diagrama de Secuencia es más adecuados para observar la perspectiva cronológica de las interacciones

El Diagrama de Colaboración ofrece una mejor visión espacial mostrando los enlaces de comunicación entre objetos

El D. de Colaboración puede obtenerseautomáticamente a partir del correspondiente D. de Secuencia (o viceversa)

III. El Paradigma OO: Interacción entre objetos

Page 46: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

46

91www.dsic.upv.es/~uml

Diagrama de Secuencia

Muestra la secuencia de mensajes entre objetos durante un escenario concreto

Cada objeto viene dado por una barra vertical

El tiempo transcurre de arriba abajo

Cuando existe demora entre el envío y la atención se puede indicar usando una línea oblicua

III. El Paradigma OO: Interacción entre objetos

92www.dsic.upv.es/~uml

… Diagrama de Secuencia

III. El Paradigma OO: Interacción entre objetos

Page 47: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

47

93www.dsic.upv.es/~uml

Caller Exchange Receiver

a: lift receiver

b: dial tone

c: dial digit

. . .

d: route

ringing tone

stop tone

{b.receiveTime - a.sendTime < 1 sec.}

{c.receiveTime -b.sendTime < 10 sec.}

{d.receiveTime -d.sendTime < 5 sec.}

The call is routed through the network

At this point the parties can talk

phone rings

answer phone

stop ringing - - - - - < 1 sec

- - - - -

… Diagrama de Secuencia

III. El Paradigma OO: Interacción entre objetos

94www.dsic.upv.es/~uml

Diagrama de Secuenciamostrando foco de control, condiciones, recursividadcreación y destrucción de objetos

III. El Paradigma OO: Interacción entre objetos

Page 48: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

48

95www.dsic.upv.es/~uml

ob1 : C1

ob3 : C3

ob2 : C2

ob4 : C 4

[x>0] fool(x)

[x<0] bar(x)doit(z)

doit(w)

more( )

op( )

III. El Paradigma OO: Interacción entre objetos

96www.dsic.upv.es/~uml

… Diagrama de Secuencia

ob1 : C1

Diagram 1

[x<0] bar(x)

Sequence Diagram: Diagrams / Diagram 2

ob3 : C3 ob4 : C4

Diagram 2

bar(x)doit(w)

Sequence Diagram: Diagrams / Diagram 1

III. El Paradigma OO: Interacción entre objetos

Page 49: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

49

97www.dsic.upv.es/~uml

Diagrama de Colaboración

Son útiles en la fase exploratoria para identificar objetos

La distribución de los objetos en el diagrama permite observar adecuadamente la interacción de un objeto con respecto de los demás

La estructura estática viene dada por los enlaces; la dinámica por el envío de mensajes por los enlaces

III. El Paradigma OO: Interacción entre objetos

98www.dsic.upv.es/~uml

Mensajes

Un mensaje desencadena una acción en el objeto destinatario

Un mensaje se envía si han sido enviados los mensajes de una lista (sincronización):

A

BA.1, B.3 / 1:Mensaje

III. El Paradigma OO: Interacción entre objetos

Page 50: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

50

99www.dsic.upv.es/~uml

… Mensajes

Un mensaje se envía de manera condicionada:

A

B[x>y] 1: Mensaje

III. El Paradigma OO: Interacción entre objetos

100www.dsic.upv.es/~uml

… Mensajes

Un mensaje que devuelve un resultado:

A

B1: distancia:= mover(x,y)

Práctica 8

III. El Paradigma OO: Interacción entre objetos

Page 51: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

51

101www.dsic.upv.es/~uml

Clases y relaciones entre clases

102www.dsic.upv.es/~uml

ClasificaciónEl mundo real puede ser visto desde abstracciones diferentes (subjetividad)

Mecanismos de abstracción:

• Clasificación / Instanciación• Composición / Descomposición• Agrupación / Individualización• Especialización / Generalización

La clasificación es uno de los mecanismos de abstracción más utilizados

III. El Paradigma OO: Clases y relaciones entre clases

Page 52: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

52

103www.dsic.upv.es/~uml

Clases

La clase define el ámbito de definición de un conjunto de objetos

Cada objeto pertenece a una clase

Los objetos se crean por instanciación de las clases

III. El Paradigma OO: Clases y relaciones entre clases

104www.dsic.upv.es/~uml

Clases: Notación Gráfica

Cada clase se representa en un rectángulo con tres compartimientos:

• nombre de la clase• atributos de la clase• operaciones de la clase

Motocicletacolorcilindradavelocidad máxima

arrancar()acelerar()frenar()

III. El Paradigma OO: Clases y relaciones entre clases

Page 53: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

53

105www.dsic.upv.es/~uml

Clases: Notación Gráfica

Otros ejemplos:

lista

primero()ultimo()añadir()quitar()cardinalidad()

pila

apilar()desapilar()cardinalidad()

III. El Paradigma OO: Clases y relaciones entre clases

106www.dsic.upv.es/~uml

Clases: EncapsulaciónLa encapsulación presenta dos ventajas básicas:• Se protegen los datos de accesos indebidos• El acoplamiento entre las clases se disminuye• Favorece la modularidad y el mantenimiento

Los atributos de una clase no deberían sermanipulables directamente por el resto de objetos

III. El Paradigma OO: Clases y relaciones entre clases

Page 54: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

54

107www.dsic.upv.es/~uml

… Clases: EncapsulaciónLos niveles de encapsulación están heredados de los niveles de C++:

• (-) Privado : es el más fuerte. Esta parte es totalmente invisible (excepto para clases friendsen terminología C++)

• (#) Los atributos/operaciones protegidosestán visibles para las clases friends y 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 deencapsulación)

III. El Paradigma OO: Clases y relaciones entre clases

108www.dsic.upv.es/~uml

… Clases: Encapsulación

Ejemplo:

Reglas de visibilidadAtributo público : IntegerAtributo protegido : IntegerAtributo privado : Integer

"Operación pública"()"Operación protegida"()"Operación privada"()

III. El Paradigma OO: Clases y relaciones entre clases

Page 55: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

55

109www.dsic.upv.es/~uml

Relaciones entre Clases

Los enlaces entre de objetos pueden representarse entre las respectivas clases

Formas de relación entre clases:

• Asociación y Agregación (vista como un caso particular de asociación)

• Generalización/Especialización

Las relaciones de Agregación y Generalización forman jerarquías de clases

III. El Paradigma OO: Clases y relaciones entre clases

110www.dsic.upv.es/~uml

Asociación

La asociación expresa una conexión bidireccionalentre objetosUna asociación es una abstracción de la relación existente en los enlaces entre los objetos

Universidad EstudianteUna asociación

Univ. de Murcia : Universidad Antonio : EstudianteUn enlace

III. El Paradigma OO: Clases y relaciones entre clases

Page 56: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

56

111www.dsic.upv.es/~uml

Ejemplo:

… Asociación

Compañíanombredirección

Personanombres.s.

0..1

*

jefe 0..1

Administra

empleado

*

0..1

0..1mujer

0..1

casado-con

marido

0..1

*

* trabaja-para*emplea-a

*

III. El Paradigma OO: Clases y relaciones entre clases

112www.dsic.upv.es/~uml

Especificación de multiplicidad(mínima...máxima)1 Uno y sólo uno0..1 Cero o unoM..N Desde M hasta N (enteros naturales)* Cero o muchos0..* Cero o muchos1..* Uno o muchos (al menos uno)

La multiplicidad mínima >= 1 establece una restricción de existencia

… Asociación

III. El Paradigma OO: Clases y relaciones entre clases

Page 57: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

57

113www.dsic.upv.es/~uml

Asociación Cualificada

Reduce la multiplicidad del rol opuesto al considerar el valordel cualificador

Aerolínea Viajero0..1

nro_billete* 0..1*

nro_billete

Tablero Ajedrez

Cuadro1fila

columna1fila

columna11

III. El Paradigma OO: Clases y relaciones entre clases

114www.dsic.upv.es/~uml

La agregación representa una relación parte_deentre objetos

En UML se proporciona una escasa caracterización de la agregación

Puede ser caracterizada con precisión determinando las relaciones de comportamiento y estructura que existen entre el objeto agregado y cada uno de sus objetos componentes

Agregación III. El Paradigma OO: Clases y relaciones entre clases

Page 58: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

58

115www.dsic.upv.es/~uml

EjemplosWindow

scrollbar[2] : Slidertitle : Headerbody : Panel

Slider Header

Window

1

2

1

2scrollbar

1

1

1

1titlePanel

1

1

1

1body

III. El Paradigma OO: Clases y relaciones entre clases

116www.dsic.upv.es/~uml

... EjemplosPerson Committee** ** Member-of

1 *1 *Chair-of{ subset }

{Person.employer = Person.boss.employer}

Represents an incorporated entity.

CompanyPerson

*0..1

worker

*

boss

0..1

0..1*employer

0..1

employee

*

III. El Paradigma OO: Clases y relaciones entre clases

Page 59: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

59

117www.dsic.upv.es/~uml

… Ejemplos

Asociación excluyente

Clase de asociación

Agregación

Persona

Cuenta

**

**

Empresa1

*1

*or

Polígono Punto13..*

13..*{ordenado}

contiene

EstaciónUsuario** **

Autorizaciónprioridadprivilegios

camb_privil()

está-autorizado-en

III. El Paradigma OO: Clases y relaciones entre clases

118www.dsic.upv.es/~uml

Clases y Objetos

Diagrama de Clases y Diagramas de Objetos pertenecen a dos vistas complementarias del modelo

Un Diagrama de Clases muestra la abstracción de una parte del dominio

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

Las clases abstractas no son instanciadas

III. El Paradigma OO: Clases y relaciones entre clases

Page 60: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

60

119www.dsic.upv.es/~uml

Generalización

Permite gestionar la complejidad mediante un ordenamiento taxonómico de clases

Se obtiene usando los mecanismos de abstracción de Generalización y/o Especialización

La Generalización consiste en factorizar laspropiedades comunes de un conjunto de clases en una clase más general

III. El Paradigma OO: Clases y relaciones entre clases

120www.dsic.upv.es/~uml

Nombres usados: clase padre - clase hija. Otros nombres: superclase - subclase, clase base - clase derivada

Las subclases heredan propiedades de sus clases padre, es decir, atributos y operaciones (y asociaciones) de la clase padre están disponibles en sus clases hijas

... Generalización

III. El Paradigma OO: Clases y relaciones entre clases

Page 61: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

61

121www.dsic.upv.es/~uml

... Generalización

Vehículo

Veihículo Terrestre Vehículo Aéreo

Coche Camión Avión Helicóptero

III. El Paradigma OO: Clases y relaciones entre clases

122www.dsic.upv.es/~uml

La especialización es una técnica muy eficaz para la extensión y reutilización

Restricciones predefinidas en UML: • disjunta - no disjunta• total (completa) - parcial (incompleta)

... Generalización

Funcionando Estropeado

Coche

III. El Paradigma OO: Clases y relaciones entre clases

Page 62: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

62

123www.dsic.upv.es/~uml

La noción de clase está próxima a la de conjunto

Dada una clase, podemos ver el conjunto relativo a las instancias que posee o bien relativo a las propiedades de la clase

Generalización y especialización expresan relaciones de inclusión entre conjuntos

... Generalización

III. El Paradigma OO: Clases y relaciones entre clases

124www.dsic.upv.es/~uml

Particionamiento del espacio de objetos =>Clasificación Estática

Particionamiento del espacio de estados de los objetos => Clasificación Dinámica

En ambos casos se recomienda considerar generalizaciones/especializaciones disjuntas

... Generalización

III. El Paradigma OO: Clases y relaciones entre clases

Page 63: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

63

125www.dsic.upv.es/~uml

Un ejemplo de Clasificación Estática:

... Generalización

Vehícu lo Aéreo

Avión Helicóptero

{ estática }

III. El Paradigma OO: Clases y relaciones entre clases

126www.dsic.upv.es/~uml

Un ejemplo de Clasificación Dinámica:

... Generalización

Funcionando Estropeado

Coche

{ dinámica }

III. El Paradigma OO: Clases y relaciones entre clases

Page 64: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

64

127www.dsic.upv.es/~uml

Extensión: Posibles instancias de una clase

Intensión: Propiedades definidas en una clase

int(A) ⊆ int(B)

ext(B) ⊆ ext(A)

... Generalización

A

B

III. El Paradigma OO: Clases y relaciones entre clases

128www.dsic.upv.es/~uml

Clasificación Estática

ext(C0) = ∪ ext(Ci) ⇒ completa

ext(Ci) ∩ ext(Cj) = ∅ ⇒ disjunta

... Generalización

C0

C1 Cn

{ static }

III. El Paradigma OO: Clases y relaciones entre clases

Page 65: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

65

129www.dsic.upv.es/~uml

Clasificación Dinámica

ext(C0) = ∪ ext(Ci) ⇒ completa

extt(Ci) ∩ extt(Cj) = ∅ ⇒ disjunta en t

extt1(Ci) ∩ extt2(Cj) ≠ ∅ ⇒ posiblementeno disjunta en diferentesinstantes

... Generalización

C0

C1 Cn

{ dinámica }

III. El Paradigma OO: Clases y relaciones entre clases

130www.dsic.upv.es/~uml

Ejemplo: varias especializaciones a partir de la misma clase padre, usando discriminadores:

... Generalización

Vehículo Aéreo

Avión Helicóptero

Comercial Militar

estructura

uso

III. El Paradigma OO: Clases y relaciones entre clases

Page 66: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

66

131www.dsic.upv.es/~uml

Clasificación Múltiple (herencia múltiple)

Se presenta cuando una subclase tiene más de una superclase

La herencia múltiple debe manejarse con precaución. Algunos problemas son el conflicto de nombre y el conflicto de precedencia

Se recomienda un uso restringido y disciplinado de la herencia. Java y Ada 95 simplemente no ofrecen herencia múltiple

III. El Paradigma OO: Clases y relaciones entre clases

132www.dsic.upv.es/~uml

… Herencia MúltipleUso disciplinado de la herencia múltiple: clasificaciones disjuntas con clases padre en hojas de jerarquías alternativas

Animal

Bípedo Cuadrúpedo

Con Pelos

Con Plumas

Con Escamas

Herbívoro

Carnívoro

cubertura

cobertura

cobertura

comida

nro patas nro patas

comida

Conejo

III. El Paradigma OO: Clases y relaciones entre clases

Page 67: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

67

133www.dsic.upv.es/~uml

Principio de Sustitución

El Principio de Sustitución de Liskow afirma que:

“Debe ser posible utilizar cualquier objeto instancia de una subclase en el lugar de cualquier objeto instancia de su superclase sin que la semántica del programa escrito en los términos de la superclase se vea afectado.”

III. El Paradigma OO: Clases y relaciones entre clases

134www.dsic.upv.es/~uml

… Principio de Sustitución

Dado que los programadores pueden introducir código en las subclases redefiniendo las operaciones, es posible introducir involuntaria-mente incoherencias que violen el principio de sustitución

El polimorfismo que veremos a continuación no debería implementarse sin este principio

III. El Paradigma OO: Clases y relaciones entre clases

Page 68: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

68

135www.dsic.upv.es/~uml

Polimorfismo

El término polimorfismo se refiere a que una característica de una clase puede tomar varias formas

El polimorfismo representa en nuestro caso la posibilidad de desencadenar operaciones distintas en respuesta a un mismo mensaje

Cada subclase hereda las operaciones pero tiene la posibilidad de modificar localmente el comportamiento de estas operaciones

III. El Paradigma OO: Clases y relaciones entre clases

136www.dsic.upv.es/~uml

… Polimorfismo

Ejemplo: todo animal duerme, pero cada clase lo hace de forma distinta

dormir?

?

Animaldormir()

León Oso Tigre

III. El Paradigma OO: Clases y relaciones entre clases

Page 69: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

69

137www.dsic.upv.es/~uml

… Polimorfismo

Dormir(){en un árbol}

Dormir(){sobrela espalda}

Dormir(){sobre el vientre}

Dormir(){

}

Animaldormir()

Leóndormir()

Osodormir()

Tigredormir()

III. El Paradigma OO: Clases y relaciones entre clases

138www.dsic.upv.es/~uml

… Polimorfismo

La búsqueda automática del código que en cada momento se va a ejecutar es fruto del enlace dinámico

El cumplimiento del Principio de Sustitución permite obtener un comportamiento y diseño coherente

Práctica 9-12

III. El Paradigma OO: Clases y relaciones entre clases

Page 70: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

70

139www.dsic.upv.es/~uml

Comportamiento de objetos

140www.dsic.upv.es/~uml

Diagrama de Estados

Los Diagramas de Estados representan autómatas de estados finitos, desde el p.d.v. de los estados y las transiciones

Son útiles sólo para los objetos con un comportamiento significativo

El formalismo utilizado proviene de los Statecharts (Harel)

III. El Paradigma OO: Comportamiento de objetos

Page 71: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

71

141www.dsic.upv.es/~uml

Cada objeto está en un estado en cierto instanteEl estado está caracterizado parcialmente por los valores algunos de los atributos del objeto El estado en el que se encuentra un objeto determina su comportamientoCada objeto sigue el comportamiento descrito en el D. de Estados asociado a su claseLos D. De Estados y escenarios son complementarios

… Diagrama de Estados

III. El Paradigma OO: Comportamiento de objetos

142www.dsic.upv.es/~uml

Los D. de Estados son autómatas jerárquicos que permiten expresar concurrencia, sincronización y jerarquías de objetosLos D. de Estados son grafos dirigidosLos D. De Estados de UML son deterministasLos estados inicial y final están diferenciados del restoLa transición entre estados es instantánea y se debe a la ocurrencia de un evento

… Diagrama de Estados

III. El Paradigma OO: Comportamiento de objetos

Page 72: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

72

143www.dsic.upv.es/~uml

Estados y Transiciones

A B

Evento [condición] / Acción

… Diagrama de Estados

Tanto el evento como la acción se consideran instantáneos

III. El Paradigma OO: Comportamiento de objetos

144www.dsic.upv.es/~uml

Ejemplo de un Diagrama de Estados para la clase persona:

en el paro en activo

jub ilado

contratar

perder empleo

jubilarsejubilarse

… Diagrama de Estados

III. El Paradigma OO: Comportamiento de objetos

Page 73: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

73

145www.dsic.upv.es/~uml

Podemos especificar la solicitud de un servicio a otro objeto como consecuencia de la transición:

A

B

Evento [condición] / OtroObjeto.Operación

Acciones

III. El Paradigma OO: Comportamiento de objetos

146www.dsic.upv.es/~uml

Se puede especificar el ejecutar una acción como consecuencia de entrar, salir, estar en un estado, o por la ocurrencia de un evento:

estado A

entry: acción por entrarexit: acción por salirdo: acción mientras en estado

… Acciones

on evento: acción

III. El Paradigma OO: Comportamiento de objetos

Page 74: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

74

147www.dsic.upv.es/~uml

Generalización de Estados

Podemos reducir la complejidad de estos diagramas usando la generalización de estadosDistinguimos así entre superestado y subestadosUn estado puede contener varios subestadosdisjuntosLos subestados heredan las variables de estado y las transiciones externas

III. El Paradigma OO: Comportamiento de objetos

148www.dsic.upv.es/~uml

Generalización de Estados

Ejemplo:

A B

C

e1

e2

e2

III. El Paradigma OO: Comportamiento de objetos

Page 75: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

75

149www.dsic.upv.es/~uml

Quedaría como:

C

a bA Be1

e2

Generalización de Estados

III. El Paradigma OO: Comportamiento de objetos

150www.dsic.upv.es/~uml

Las transiciones de entrada deben ir hacia subestados específicos:

C

a bA Be1

e2

e0

… Generalización de Estados

III. El Paradigma OO: Comportamiento de objetos

Page 76: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

76

151www.dsic.upv.es/~uml

Es preferible tener estados iniciales de entrada a un nivel de manera que desde los niveles superiores no se sepa a quésubestado se entra:

C

a bA Be1

e2

e1

e0

… Generalización de Estados

III. El Paradigma OO: Comportamiento de objetos

152www.dsic.upv.es/~uml

La agregación de estados es la composición de un estado a partir de varios estados independientes

La composición es concurrente por lo que el objeto estará en alguno de los estados de cada uno de los subestados concurrentes

… Generalización de Estados

III. El Paradigma OO: Comportamiento de objetos

Page 77: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

77

153www.dsic.upv.es/~uml

Ejemplo:

e1e1

… Generalización de Estados

III. El Paradigma OO: Comportamiento de objetos

154www.dsic.upv.es/~uml

… Generalización de Estados

A c t iv e

D ia lT o n e

d o / p l a y d i a l to n e

T im e o u t

d o / p l a y m e s s a g e

D ia lin g

In v a li d

d o / p l a y m e s s a g e

C o n n e c t in g

B u s y

d o / p l a y b u s y t o n eR in g in g

d o / p l a y r i n g i n g to n e

T a lk in g

P in n e d

Id le

D ia lT o n e

d o / p l a y d i a l to n e

T im e o u t

d o / p l a y m e s s a g e

a f t e r ( 1 5 s e c .)

D ia lin g

d ia l d ig it ( n ) [ in c o m p le t e ]

d ia l d ig it ( n )

a f t e r ( 1 5 s e c .)

In v a li d

d o / p l a y m e s s a g e

di a l d ig it ( n )[ inv a l id ]

C o n n e c t in g

d ia l d ig it ( n ) [ v a lid ] / c o n n e c t

B u s y

d o / p l a y b u s y t o n eR in g in g

d o / p l a y r i n g i n g to n e

T a lk in g

c a lle e a n s w e r s / e n a b le s p e e c h

P in n e d

c a l le e h a n gs u p

c a lle e h a n g s

u p

c a lle r h a n g s u p / d i s c o n n e c t

lif t r e c e iv e r / g e t d ia l

t o n e

b u s yc o n n e c t e d

III. El Paradigma OO: Comportamiento de objetos

Page 78: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

78

155www.dsic.upv.es/~uml

Historia

Por defecto, los autómatas no tienen memoria

Es posible memorizar el último subestadovisitado para recuperarlo en una transición entrante en el superestado que lo engloba

También es posible la memorización para cualquiera de los subestados anidados (aparece un * junto a la H)

III. El Paradigma OO: Comportamiento de objetos

156www.dsic.upv.es/~uml

Ejemplo:A

d2

d1

H*

B

C

x yD

out

in

… Historia

III. El Paradigma OO: Comportamiento de objetos

Page 79: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

79

157www.dsic.upv.es/~uml

Ejemplo:

Enjuague Lavado Secado

H

Enjuague Lavado Secado

H

Espera

abir puertacerrar puerta

… Historia

III. El Paradigma OO: Comportamiento de objetos

158www.dsic.upv.es/~uml

Destrucción del Objeto

La destrucción de un objeto es efectiva cuando el flujo de control del autómata alcanza un estado final no anidado

La llegada a un estado final anidado implica la “subida” al superestado asociado, no el fin del objeto

III. El Paradigma OO: Comportamiento de objetos

Page 80: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

80

159www.dsic.upv.es/~uml

… Destrucción de Objeto

Ejemplo:

En t ierraCrear(matricula)

En vuelo

aterrizardespegar

crash

III. El Paradigma OO: Comportamiento de objetos

160www.dsic.upv.es/~uml

Transiciones temporizadas

Las esperas son actividades que tienen asociada cierta duración

La actividad de espera se interrumpe cuando el evento esperado tiene lugar

Este evento desencadena una transición que permite salir del estado que alberga la actividad de espera. El flujo de control se transmite entonces a otro estado

III. El Paradigma OO: Comportamiento de objetos

Page 81: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

81

161www.dsic.upv.es/~uml

Ejemplo:

… Transiciones temporizadas

A

esperar dineroentry: Mostrar mensajeexit: cerrar ranura

B

anular transacción

/ Abrir ranura

Depósito efectuado

después de30 segundos

III. El Paradigma OO: Comportamiento de objetos

162www.dsic.upv.es/~uml

Diagrama de Actividad

El Diagrama de Actividad es una especialización del Diagrama de Estado, organizado respecto de las acciones y usado para especificar:

• Un método• Un caso de uso• Un proceso de negocio (Workflow)

Las actividades se enlazan por transiciones automáticas. Cuando una actividad termina se desencadena el paso a la siguiente actividad

III. El Paradigma OO: Comportamiento de objetos

Page 82: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

82

163www.dsic.upv.es/~uml

Ejemplo (con swim lines)

S o lic ita r p a s a je

S e le c c io n a r v u e lo

P a g a r p a s a je

V e r ific a r e x is te n c ia v u e lo

I n fo rm a r a lte rn a ti va s y p re c io s

S o lic it a r p a g o

R e s e rv a r p l a z as

E m it ir b i ll e te

D a r d e ta lle s v u e lo

C o n firm a r p la z a re s e rv a d a

A ir l i neV e n d e d o rP a s a j e r o

III. El Paradigma OO: Comportamiento de objetos

164www.dsic.upv.es/~uml

... EjemplosRe q ue st se rv i ce

P la y

C o l le c t o rd e r

O rd e r[p la c e d]

O rd e r[de live r ed]

T a ke o rd e r

D e live r o rd e r

F i l l o rd e r

O rd e r[e nte re d]

O rd e r[fille d]

St o ckro o mSalesC u sto m er

III. El Paradigma OO: Comportamiento de objetos

Page 83: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

83

165www.dsic.upv.es/~uml

... Ejemplos

Calculate total cost

Get authorization

Change customer's account

[cost < $50]

[cost >= $50]

III. El Paradigma OO: Comportamiento de objetos

166www.dsic.upv.es/~uml

Componentes

Page 84: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

84

167www.dsic.upv.es/~uml

Diagrama de Componentes

Los diagramas de componentes describen los elementos físicos del sistema y sus relaciones

Muestran las opciones de realización incluyendo código fuente, binario y ejecutable

III. El Paradigma OO: Componentes

168www.dsic.upv.es/~uml

...Diagrama de Componentes

Los componentes representan todos los tipos de elementos software que entran en la fabricación de aplicaciones informáticas. Pueden ser simples archivos, paquetes de Ada, bibliotecas cargadas dinámicamente, etc.

Las relaciones de dependencia se utilizan en los diagramas de componentes para indicar que un componente utiliza los servicios ofrecidos por otro componente

III. El Paradigma OO: Componentes

Page 85: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

85

169www.dsic.upv.es/~uml

...Diagrama de Componentes

III. El Paradigma OO: Componentes

170www.dsic.upv.es/~uml

Distribución y despliegue de Componentes

Page 86: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

86

171www.dsic.upv.es/~uml

Diagrama de Despliegue

Los Diagramas de Despliegue muestran la disposición física de los distintos nodos que componen un sistema y el reparto de los componentes sobre dichos nodos

Nodo

III. El Paradigma OO: Distribución y despliegue de componentes

172www.dsic.upv.es/~uml

Los estereotipos permiten precisar la naturaleza del equipo:• Dispositivos• Procesadores• Memoria

Los nodos se interconectan mediante soportes bidireccionales que pueden a su vez estereotiparse

… Diagrama de Despliegue

III. El Paradigma OO: Distribución y despliegue de componentes

Page 87: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

87

173www.dsic.upv.es/~uml

Ejemplo de conexión entre nodos:

Terminal Puntode Venta

<<Cliente>>

Base de Datos

<<Servidor>>

Control

<<TCP/IP>>

<<RDSI>>

Podemos distinguir tipos de nodos y connexionespor estereotipado

… Diagrama de Despliegue

<<RDSI>>

III. El Paradigma OO: Distribución y despliegue de componentes

174www.dsic.upv.es/~uml

Ejemplo:

… Diagramas de Despliegue

III. El Paradigma OO: Distribución y despliegue de componentes

Page 88: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

88

175www.dsic.upv.es/~uml

ShoppingSession<<Session>>

ShoppingCart<<Entity>>

Catalog<<Entity>>

VideoStoreDB

OpenSourceBrowser<<brow ser>>

Ejemplo:

Client

videoStoreServer<<AppServer>>

DBServer

Component Diagram: videoStoreServer / videoStoreServer

Component Diagram: Client / Client

Component Diagram: DBServer / DBServer

VideoStoreApplication<<Container>> Component Diagram:

videoStoreApplication / VideoStoreApplication Diagram

Component Diagram: videoStoreServer

Client

videoStoreApplication

DBServer

… Diagramas de Despliegue

III. El Paradigma OO: Distribución y despliegue de componentes

176www.dsic.upv.es/~uml

Object Constraint LanguageOCL

III. El Paradigma OO

Page 89: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

89

177www.dsic.upv.es/~uml

¿Qué es OCL?

OCL es un lenguaje formal usado paradescribir expresiones acerca de modelos UML

OCL es parte del estandar UML y fuedesarrollado en IBM

Las evaluación de expresiones OCL no afectael estado del sistema en ejecución

III. El Paradigma OO: OCL

178www.dsic.upv.es/~uml

Usos de OCL

Lenguaje de consultaEspecificación de invariantes en clases y tiposEspecificación de invariantes de tipo para EstereotiposDescribir pre- y post condiciones en Operaciones y MétodosDescribir GuardasEspecificar destinatarios para mensages y accionesEspecificar restricciones en OperacionesEspecificar reglas de derivación para atributos

III. El Paradigma OO: OCL

Page 90: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

90

179www.dsic.upv.es/~uml

Ejemplo

III. El Paradigma OO: OCL

180www.dsic.upv.es/~uml

Invariantes“El número de empleados debe ser mayor que 50”

self.númeroDeEmpleados > 50 (siendo el contexto Company)

context Compañía inv: self. númeroDeEmpleados > 50

context c:Compañíainv: c.númeroDeEmpleados > 50

context c:Compañíainv suficientesEmpleados: c.númeroDeEmpleados > 50

III. El Paradigma OO: OCL

Page 91: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

91

181www.dsic.upv.es/~uml

Pre- Post condicionesSintaxis

context NombreTipo::NombreOperación(Param1 : Tipo1, ... ):TipoRetornopre parametroOk: param1 > ...post resultadoOk : result = ...

Ejemplo

context Persona::nómina(fecha : Date) : Integerpost: result = 5000

III. El Paradigma OO: OCL

182www.dsic.upv.es/~uml

Valores iniciales y derivadosSintaxis

context NombreTipo::NombreAtributo: Tipoinit: –- alguna expresión representando el valor inicial

context NombreTipo::NombreRolAsociación: Tipoinit: –- alguna expresión representando la regla de derivación

Ejemplo

context Persona::nómina : Integerinit: padres.nómina->sum() * 1% derive: if menorDeEdad then

padres.nómina->sum() * 1%else

puesto.sueldoendif

III. El Paradigma OO: OCL

Page 92: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

92

183www.dsic.upv.es/~uml

Expresiones LetEjemplo

context Persona inv:let ingresos : Integer = self.puesto.sueldo->sum() inif estáEnParo then

ingresos < 100else

ingresos >= 100endif

III. El Paradigma OO: OCL

184www.dsic.upv.es/~uml

DefinicionesEjemplo

context Personadef: ingresos : Integer = self.puesto.sueldo->sum()def: apodo : String = ’Gallito rojo’def: tieneElTítulo(t : String) : Boolean = self.puesto->exists(título = t)

III. El Paradigma OO: OCL

Page 93: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

93

185www.dsic.upv.es/~uml

NavegaciónEjemplos

context Compañíainv: self.director.estáEnparo = falseinv: self.empleado->notEmpty()

context Compañía inv:self.director.edad > 40

context Personainv:self.empleador->size() < 3

context Persona inv:self.empleador->isEmpty()

context Persona inv:self.esposa->notEmpty() implies self.esposa.sexo = Sexo::mujer

III. El Paradigma OO: OCL

186www.dsic.upv.es/~uml

… NavegaciónEjemplo

a) “Los casados tienen al menos 18 años de edad”

context Persona inv:self.esposa->notEmpty() implies self.esposa.edad >= 18 andself.esposo->notEmpty() implies self.esposo.edad >= 18

“Una compañía tiene a lo más 50 empleados”

context Companía inv:self.empleado->size() <= 50

III. El Paradigma OO: OCL

Page 94: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

94

187www.dsic.upv.es/~uml

IVProceso de Desarrollode SW basado en UML

188www.dsic.upv.es/~uml

¿Qué es un Proceso de Desarrollo de SW?

Requisitos nuevoso modificados

Sistema nuevoo modificadoProceso de Desarrollo

de Software

Define Quién debe hacer Qué, Cuándo y Cómo debe hacerlo

No existe un proceso de software universal. Las características de cada proyecto (equipo de desarrollo, recursos, etc.) exigen que el proceso sea configurable

IV. Proceso de Desarrollo de SW basado en UML

Page 95: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

95

189www.dsic.upv.es/~uml

Rational Unified Process (RUP)

• Pruebas funcionales• Pruebas de desempeño• Gestión de requisitos• Gestión de cambios y

configuración• Ingeniería de Negocio• Ingeniería de datos• Diseño de interfaces

Rational Unified Process1998

Rational Objectory Process1996-1997

Objectory Process1987-1995

Enfoque Ericsson

UML

IV. Proceso de Desarrollo de SW basado en UML

190www.dsic.upv.es/~uml

Dos Dimensiones

IV. Proceso de Desarrollo de SW basado en UML

Page 96: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

96

191www.dsic.upv.es/~uml

Fases e Hitos (Milestones)

tiempo

Objetivos(Vision)

Arquitectura CapacidadOperacional

Inicial

Releasedel Producto

Inception Elaboration Construction Transition

IV. Proceso de Desarrollo de SW basado en UML

192www.dsic.upv.es/~uml

Elementos en RUP Workflows (Disciplinas)

Workflows Primarios • Business Modeling (Modado del Negocio)• Requirements (Requisitos)• Analysis & Design (Análisis y Diseño)• Implementation (Implementación)• Test (Pruebas)• Deployment (Despliegue)

Workflows de Apoyo• Environment (Entorno)• Project Management (Gestión del Proyecto)• Configuration & Change Management (Gestión de Configuración y

Cambios)

IV. Proceso de Desarrollo de SW basado en UML

Page 97: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

97

193www.dsic.upv.es/~uml

... Elementos en RUP Workflow, Workflow Detail , Workers, Actividades y ArtefactosEjemplo

Workflow Detail:Analyse the ProblemWorkflow: Requirements

ActividadesWorkers Artefactos

IV. Proceso de Desarrollo de SW basado en UML

194www.dsic.upv.es/~uml

... Elementos en RUP

WorkersAnalyst workers• Business-Process Analyst• Business Designer• Business-Model Reviewer• Requirements Reviewer• System Analyst• Use-Case Specifier• User-Interface Designer

Developer workers• Architect• Architecture Reviewer• Capsule Designer• Code Reviewer• Database Designer• Design Reviewer• Designer• Implementer• Integrator

Testing professional workersTest DesignerTester

Manager workersChange Control ManagerConfiguration ManagerDeployment ManagerProcess EngineerProject ManagerProject Reviewer

Other workersAny WorkerCourse DeveloperGraphic ArtistStakeholderSystem AdministratorTechnical WriterTool Specialist

IV. Proceso de Desarrollo de SW basado en UML

Page 98: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

98

195www.dsic.upv.es/~uml

... Elementos en RUP

Workers, Actividades, Artefactos

Ejemplo: System Analyst Worker

IV. Proceso de Desarrollo de SW basado en UML

196www.dsic.upv.es/~uml

... Elementos en RUP Artefactos

Resultado parcial o final que es producido y usado durante el proyecto. Son las entradas y salidas de las actividades

Un artefacto puede ser un documento, un modelo o un elemento de modelo

Conjuntos de ArtefactosDeployment Set

Project Management Set

Configuration & Change Management Set

Environment Set

Business Modeling Set

Requirements Set

Analysis & Design Set

Implementation Set

Test Set

IV. Proceso de Desarrollo de SW basado en UML

Page 99: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

99

197www.dsic.upv.es/~uml

... Elementos en RUP Artefactos, Workers, ActividadesEjemplo:Business Modeling Artifact Set

IV. Proceso de Desarrollo de SW basado en UML

198www.dsic.upv.es/~uml

Características Esenciales de RUP

Proceso Dirigido por los Casos de Uso

Proceso Iterativo e Incremental

Proceso Centrado en la Arquitectura

IV. Proceso de Desarrollo de SW basado en UML

Page 100: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

100

199www.dsic.upv.es/~uml

Requisitos Capturar, definir y validar los casos de uso

Realizar loscasos de uso

Verificar que se satisfacen los casos

de uso

Proceso dirigido por los Casos de Uso

Análisis & Diseño

Implementación

Pruebas

Casos de Usointegran el

trabajo

IV. Proceso de Desarrollo de SW basado en UML

200www.dsic.upv.es/~uml

Caso de Uso Realización de Análisis Realización de Diseño

Caso de Prueba

X

«trace» «trace»

«trace»«trace»

Pruebas Funcionales

PruebasUnitarias

... Proceso dirigido por los Casos de Uso

[The Unified Software Development Process. I. Jacobson, G. Booch and J. Rumbaugh. Addison-Wesley, 1999]

IV. Proceso de Desarrollo de SW basado en UML

Page 101: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

101

201www.dsic.upv.es/~uml

... Proceso dirigido por los Casos de Uso

IV. Proceso de Desarrollo de SW basado en UML

202www.dsic.upv.es/~uml

El ciclo de vida iterativo se basa en la evolución de prototipos ejecutables que se muestran a los usuarios y clientesEn el ciclo de vida iterativo a cada iteración se reproduce el ciclo de vida en cascada a menor escalaLos objetivos de una iteración se establecen en función de la evaluación de las iteraciones precedentes

Proceso Iterativo e Incremental

IV. Proceso de Desarrollo de SW basado en UML

Page 102: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

102

203www.dsic.upv.es/~uml

Las actividades se encadenan en una mini-cascada con un alcance limitado por los objetivos de la iteración

Análisis

Diseño

Codific.Pruebas e

Integraciónn veces

... Proceso Iterativo e Incremental

IV. Proceso de Desarrollo de SW basado en UML

204www.dsic.upv.es/~uml

Cada iteración comprende:• Planificar la iteración (estudio de riesgos)• Análisis de los Casos de Uso y escenarios• Diseño de opciones arquitectónicas• Codificación y pruebas. La integración del nuevo

código con el existente de iteraciones anteriores se hace gradualmente durante la construcción

• Evaluación de la entrega ejecutable (evaluación del prototipo en función de las pruebas y de los criterios definidos)

• Preparación de la entrega (documentación e instalación del prototipo)

... Proceso Iterativo e Incremental

IV. Proceso de Desarrollo de SW basado en UML

Page 103: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

103

205www.dsic.upv.es/~uml

Proceso Iterativo e Incremental

EnfoqueSecuencial

EnfoqueIterativo eIncremental

IV. Proceso de Desarrollo de SW basado en UML

206www.dsic.upv.es/~uml

Grado de Finalización de Artefactos

... Proceso Iterativo e Incremental

IV. Proceso de Desarrollo de SW basado en UML

Page 104: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

104

207www.dsic.upv.es/~uml

Proceso Centrado en la Arquitectura Arquitectura de un sistema es la organización o estructura de sus partes más relevantes

Un arquitectura ejecutable es una implementación parcial del sistema, construida para demostrar algunas funciones y propiedades

RUP establece refinamientos sucesivos de una arquitectura ejecutable, construida como un prototipo evolutivo

Architecture

Inception Elaboration Construction Transition

IV. Proceso de Desarrollo de SW basado en UML

208www.dsic.upv.es/~uml

Fases, Release, Base Line, Generaciónciclo de desarrollo ciclo de evolución

generación(release final de un ciclo de desarrollo)

release(producto al final de

una iteración)

base line(release asociadaa un hito)

IV. Proceso de Desarrollo de SW basado en UML

Page 105: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

105

209www.dsic.upv.es/~uml

Esfuerzo y dedicación por Fases en RUP

10%50 %30 %10 %TiempoDedicado

10%65 %20 %5 %Esfuerzo

TransiciónConstrucciónElaboraciónInicio

IV. Proceso de Desarrollo de SW basado en UML

210www.dsic.upv.es/~uml

Distribución de Recursos por Fases en RUP

IV. Proceso de Desarrollo de SW basado en UML

Page 106: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

106

211www.dsic.upv.es/~uml

VConclusiones

212www.dsic.upv.es/~uml

Claves en el Desarrollo de SI

Herramientasp.e. Rational Rose

Poseidon

Procesop.e. Rational Unified Process

Métrica 3.0 o XP

NotaciónUML

V. Conclusiones

Page 107: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

107

213www.dsic.upv.es/~uml

Modelado de SI: Algunas Reflexiones¿Cuál es el propósito de nuestros modelos?

“Documentar” (a posteriori)Comunicar ideas y estudiar alternativasTomar decisiones de análisis/diseño que dirijan la implementaciónGenerar parcial o totalmente una implementación a partir de los modelos

Pragmatismo, los modelos deben ser útiles. Principio básico: “Sencillez y Elegancia”Gestión de modelos

Distintos nivel de abstracción, expresados en diferentes modelosSeguimiento de transformaciones durante el proceso (Traceability)Sincronización de modelos

Dificultades para la introducción de notaciones y herramientas de modelado. La importancia del Proceso de Desarrollo

V. Conclusiones

214www.dsic.upv.es/~uml

Adaptabilidad al contexto del proyecto

V. Conclusiones

Page 108: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

108

215www.dsic.upv.es/~uml

Tendencias

UML: actualmente la notación más detallada, amplia y consensuada para modelar software orientado a objetos

Dificultades actuales para derivar de forma directa una implementación a partir de los modelos UML

Entornos de programación visual y el paradigma OO subyacenteUtilización de bases de datos relacionalesArquitectura de 3 capasFrameworks de persistencia para materializar y desmaterializar objetos

Metodologías de desarrollo de software y el papel que juega UML en ellas

Modelado ÁgilModelado opcional y/o desechable (en Metodologías Ágiles)

V. Conclusiones

216www.dsic.upv.es/~uml

... TendenciasNuevas versiones de UML, uff!Extensiones de UML (SysML, www.sysml.org)Generación automática de código a partir de modelos

Model-Driven Development (MDD), Model-Driven Architecture (MDA), Compiladores de Modelos Round-trip engineering. Convergencia entre herramientas CASE e IDEs

Extendiendo UML mediante Profiles(www.objecteering.com/products_uml_profile_builder.php)

Modelado y generación de código en dominios específicos (más allá de UML)

Eclipse Modeling Framework (EMF, download.eclipse.org/tools/emf/scripts/home.php)Microsoft Tools for Domain Specific LanguaguesDomain-Specific Modeling (DSM, www.dsmforum.org)Meta CASE Tools (www.metacase.com)

V. Conclusiones

Page 109: Diagramas uml(1)

www.dsic.upv.es/~uml

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

109

217www.dsic.upv.es/~uml

Diagramas en UML 2.0

218www.dsic.upv.es/~uml

Bibliografía AdicionalUML

• www.omg.org/uml/• Meta-links www.cetus-links.org/oo_uml.html• Martin Fowler, autor de “UML Destilled” (“UML Gota a Gota”)

http://www.martinfowler.com/

Herramientas CASE• Herramientas basadas en UML

www.objectsbydesign.com/tools/umltools_byPrice.html• International Council in SE (INCOSE) www.incose.org/tools/

Otras• Revista IEEE Software, Conferencias: OOPSLA, ECOOP• Patrones http://www.cmcrossroads.com/bradapp/docs/patterns-intro.html, • Foro UML en yahoo: http://groups.yahoo.com/group/uml-forum/

V. Conclusiones