218
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

cursoUML

Embed Size (px)

Citation preview

Page 1: cursoUML

1� www.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

Page 2: cursoUML

2� www.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 3: cursoUML

3� www.dsic.upv.es/~uml

IIntroducción

Page 4: cursoUML

4� www.dsic.upv.es/~uml

Introducción: Modelado de SW

Page 5: cursoUML

5� www.dsic.upv.es/~uml

Construcción de una casa para “fido”

Puede hacerlo una sola persona

Requiere:

Modelado mínimo

Proceso simple

Herramientas simples

I. Introducción: Modelado de SW

Page 6: cursoUML

6� www.dsic.upv.es/~uml

Construcción de una casa

Construida eficientemente y en un tiempo

razonable por un equipo

Requiere:

Modelado

Proceso bien definido

Herramientas más sofisticadas

I. Introducción: Modelado de SW

Page 7: cursoUML

7� www.dsic.upv.es/~uml

Construcción de un rascacielos

I. Introducción: Modelado de SW

Page 8: cursoUML

8� www.dsic.upv.es/~uml

Claves en Desarrollo de SI

Herramientas Proceso

Notación

I. Introducción: Modelado de SW

Page 9: cursoUML

9� www.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

Page 10: cursoUML

10� www.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 11: cursoUML

11� www.dsic.upv.es/~uml

Introducción: UML

Page 12: cursoUML

12� www.dsic.upv.es/~uml

¿Qué es UML?

� UML = Unified Modeling Language

� Un 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 LanguageSpecification”

� 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 13: cursoUML

13� www.dsic.upv.es/~uml

Situación de Partida

� Diversos 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

Page 14: cursoUML

14� www.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 RationalSoftware. Herramienta CASE Rational Rose

I. Introducción: UML

Page 15: cursoUML

15� www.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

Page 16: cursoUML

16� www.dsic.upv.es/~uml

Participantes en UML 1.0� Rational Software

(Grady Booch, Jim Rumbaugh y Ivar Jacobson)

� Digital Equipment� Hewlett-Packard� i-Logix (David Harel)

� IBM� ICON Computing

(Desmond D’Souza)

� Intellicorp and James Martin & co. (James Odell)

� MCI Systemhouse� Microsoft � ObjecTime� Oracle Corp.� Platinium Technology� Sterling Software� Taskon� Texas Instruments� Unisys

I. Introducción: UML

Page 17: cursoUML

17� www.dsic.upv.es/~uml

UML “aglutina” enfoques OO

UML

Rumbaugh

Jacobson

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

Page 18: cursoUML

18� www.dsic.upv.es/~uml

Aspectos Novedosos

� Definición semi-formal del Metamodelo de UML

� Mecanismos de Extensión en UML:

� Stereotypes� Constraints� Tagged Values

Permiten adaptar los elementos de modelado,

asignándoles una semántica particular

I. Introducción: UML

Page 19: cursoUML

19� www.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

Page 20: cursoUML

20� www.dsic.upv.es/~uml

Perspectivas de UML

� UML es el lenguaje de modelado orientado a objetos estándar predominante ahora y en los próximos años

� Razones:• 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 21: cursoUML

21� www.dsic.upv.es/~uml

IIBreve Tour por UML

Page 22: cursoUML

22� www.dsic.upv.es/~uml

Modelos y Diagramas� Un 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 23: cursoUML

23� www.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

Page 24: cursoUML

24� www.dsic.upv.es/~uml

Diagramas de UML 1.5

� Diagrama de Casos de Uso� Diagrama de Clases� Diagrama de ObjetosDiagramas de Comportamiento

� Diagrama de Estados� Diagrama de ActividadDiagramas de Interacción

� Diagrama de Secuencia� Diagrama de Colaboración

Diagramas de implementación� Diagrama de Componentes� Diagrama de Despliegue

II. Breve Tour por UML

Page 25: cursoUML

25� www.dsic.upv.es/~uml

... Diagramas de UML

Use CaseDiagramsUse CaseDiagramsDiagramas de Casos de Uso

ScenarioDiagramsScenarioDiagramsDiagramas deColaboración

StateDiagrams

StateDiagramsDiagramas deComponentes

ComponentDiagramsComponentDiagrams

Diagramas deDistribución

StateDiagrams

StateDiagramsDiagramas de

Objetos

ScenarioDiagramsScenarioDiagramsDiagramas de

Estados

Use CaseDiagramsUse CaseDiagramsDiagramas deSecuencia

StateDiagrams

StateDiagramsDiagramas de

Clases

Diagramas deActividad

Modelos

II. Breve Tour por UML

Los diagramas expresan gráficamente partes de un modelo

Page 26: cursoUML

26� www.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 27: cursoUML

27� www.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

Page 28: cursoUML

28� www.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 29: cursoUML

29� www.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

Page 30: cursoUML

30� www.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 31: cursoUML

31� www.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

Page 32: cursoUML

32� www.dsic.upv.es/~uml

… Paquetes en UML

II. Breve Tour por UML

Práctica 1

Page 33: cursoUML

33� www.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

Page 34: cursoUML

34� www.dsic.upv.es/~uml

… Ejemplos

Ejemplo:

II. Breve Tour por UML

Práctica 2

Retirar dinero

Consultar Ext ractoCliente

Realizar transferencia

Page 35: cursoUML

35� www.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

Page 36: cursoUML

36� www.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 37: cursoUML

37� www.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 herencia

� La 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

Page 38: cursoUML

38� www.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 39: cursoUML

39� www.dsic.upv.es/~uml

… Ejemplos (Asociación)

ProfesorDepartamento

10..1

director

1

dirige

0..1

II. Breve Tour por UML

Page 40: cursoUML

40� www.dsic.upv.es/~uml

… Ejemplos (Clase Asociación)

II. Breve Tour por UML

Empresa Empleado

1..** 1..**

trabajadoresempleador

Cargo

nombresueldo 0..1

1..*

superior

subordinado 1..*

0..1

Page 41: cursoUML

41� www.dsic.upv.es/~uml

… Ejemplos (Generalización)

II. Breve Tour por UML

Trabajador

Directivo Administrativo Obrero

{ disjunta, completa }

Page 42: cursoUML

42� www.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 43: cursoUML

43� www.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

Socio

nú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)

Page 44: cursoUML

44� www.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 i r 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 d ic a do r d e fin

[ h a y z u m o ]

[ n o z u m o ]

Práctica 5

Page 45: cursoUML

45� www.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

Page 46: cursoUML

46� www.dsic.upv.es/~uml

Diagrama de Despliegue

Punto de Venta

Servidor Central

Terminal de Consulta

Gestión de Cuentas

Comment

Interfaz de Terminal

Comment

Rutinas de ConeccionComment

Rutinas de Coneccion

Comment

Interfaz de Terminal

Comment

Rutinas de Coneccion

Comment

Acceso a BD

Comment

Control y Análisis

Comment

II. Breve Tour por UML

Page 47: cursoUML

47� www.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

Page 48: cursoUML

48� www.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 49: cursoUML

49� www.dsic.upv.es/~uml

IIIEl Paradigma

Orientado a Objeto

Page 50: cursoUML

50� www.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 51: cursoUML

51� www.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

Page 52: cursoUML

52� www.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 53: cursoUML

53� www.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

Page 54: cursoUML

54� www.dsic.upv.es/~uml

Fundamentos de Modelado OO

Page 55: cursoUML

55� www.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

Page 56: cursoUML

56� www.dsic.upv.es/~uml

… Objetos

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

Un objeto

Otro ob jeto más

Otro ob jeto

III. El Paradigma OO: Fundamentos de Modelado OO

Page 57: cursoUML

57� www.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

Page 58: cursoUML

58� www.dsic.upv.es/~uml

… Objetos

� Objeto = Identidad + Estado + Comportamiento� El estado está representado por los valores de los

atributos� Un atributo toma un valor en un dominio concreto

Un coche

Azul 979 Kg 70 CV

...

III. El Paradigma OO: Fundamentos de Modelado OO

Page 59: cursoUML

59� www.dsic.upv.es/~uml

Clases y Objetos

III. El Paradigma OO: Fundamentos de Modelado OO

Page 60: cursoUML

60� www.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 61: cursoUML

61� www.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

Page 62: cursoUML

62� www.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 63: cursoUML

63� www.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

Page 64: cursoUML

64� www.dsic.upv.es/~uml

… Comunicación

� Categorí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 65: cursoUML

65� www.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

Page 66: cursoUML

66� www.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 67: cursoUML

67� www.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

Page 68: cursoUML

68� www.dsic.upv.es/~uml

Mensaje y Estímulo� Un 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 69: cursoUML

69� www.dsic.upv.es/~uml

Requisitos del software

III. El Paradigma OO: Requisitos

Page 70: cursoUML

70� www.dsic.upv.es/~uml

Casos de Uso

� Los 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 71: cursoUML

71� www.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

Page 72: cursoUML

72� www.dsic.upv.es/~uml

… Casos de Uso

� Ejemplo:

Actor ACaso de Uso A

Actor BCaso de Uso B

III. El Paradigma OO: Requisitos

Page 73: cursoUML

73� www.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

Page 74: cursoUML

74� www.dsic.upv.es/~uml

… Casos de Uso

� Los 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 75: cursoUML

75� www.dsic.upv.es/~uml

Casos de Uso: Relaciones

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

• Comunicación

ActorC aso de U so

III. El Paradigma OO: Requisitos

Page 76: cursoUML

76� www.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 77: cursoUML

77� www.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

Page 78: cursoUML

78� www.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 79: cursoUML

79� www.dsic.upv.es/~uml

Solic itar N ueva Tarjeta

ClienteSolicitar Préstamo

<<extend> >

[Tarjeta Caducada]

… Casos de Uso: Relaciones

� Ejemplo <<extend>>:

III. El Paradigma OO: Requisitos

Page 80: cursoUML

80� www.dsic.upv.es/~uml

… Casos de Uso: Relaciones� Ejemplo <<include>> y <<extend>>:

Ident ifi cación

Transferencia en Internet

ClienteTransferencia

<<include>>

<< extend>>

III. El Paradigma OO: Requisitos

Page 81: cursoUML

81� www.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 cata l og

III. El Paradigma OO: Requisitos

Page 82: cursoUML

82� www.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 83: cursoUML

83� www.dsic.upv.es/~uml

Casos de Uso: Construcción� Un caso de uso debe ser simple, inteligible, claro y

conciso� Generalmente hay pocos actores asociados a cada

Caso de Uso� Preguntas 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

Page 84: cursoUML

84� www.dsic.upv.es/~uml

… Casos de Uso: Construcción� La 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 85: cursoUML

85� www.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 >Identificador

III. El Paradigma OO: Requisitos

Page 86: cursoUML

86� www.dsic.upv.es/~uml

Comentarios� En 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 87: cursoUML

87� www.dsic.upv.es/~uml

Interacción entre objetos

Page 88: cursoUML

88� www.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 89: cursoUML

89� www.dsic.upv.es/~uml

Mensajes

Sintaxis para mensajes:

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

III. El Paradigma OO: Interacción entre objetos

Page 90: cursoUML

90� www.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 91: cursoUML

91� www.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

Page 92: cursoUML

92� www.dsic.upv.es/~uml

… Diagrama de Secuencia

III. El Paradigma OO: Interacción entre objetos

Page 93: cursoUML

93� www.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

Page 94: cursoUML

94� www.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 95: cursoUML

95� www.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

Page 96: cursoUML

96� www.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 97: cursoUML

97� www.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

Page 98: cursoUML

98� www.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 99: cursoUML

99� www.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

Page 100: cursoUML

100� www.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 101: cursoUML

101� www.dsic.upv.es/~uml

Clases y relaciones entre clases

Page 102: cursoUML

102� www.dsic.upv.es/~uml

Clasificación� El 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 103: cursoUML

103� www.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

Page 104: cursoUML

104� www.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 105: cursoUML

105� www.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

Page 106: cursoUML

106� www.dsic.upv.es/~uml

Clases: Encapsulación

� La 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 107: cursoUML

107� www.dsic.upv.es/~uml

… Clases: Encapsulación� Los 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

Page 108: cursoUML

108� www.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 109: cursoUML

109� www.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

Page 110: cursoUML

110� www.dsic.upv.es/~uml

Asociación

� La asociación expresa una conexión bidireccionalentre objetos

� Una 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 111: cursoUML

111� www.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

Page 112: cursoUML

112� www.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 113: cursoUML

113� www.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

columna

1filacolumna

11

III. El Paradigma OO: Clases y relaciones entre clases

Page 114: cursoUML

114� www.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 115: cursoUML

115� www.dsic.upv.es/~uml

EjemplosWindow

scrollbar[2] : Slidertitle : Headerbody : Panel

Slider Header

Window

1

2

1

2scrollbar

1

1

1

1title

Panel

1

1

1

1body

III. El Paradigma OO: Clases y relaciones entre clases

Page 116: cursoUML

116� www.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*

employer0..1

employee

*

III. El Paradigma OO: Clases y relaciones entre clases

Page 117: cursoUML

117� www.dsic.upv.es/~uml

… Ejemplos

Asociación excluyente

Clase de asociación

Agregación

Persona

Cuenta

**

**

Empresa

1

*1

*

or

Polígono Punto1

3..*1

3..*{ordenado}

contiene

EstaciónUsuario

** **

Autorizaciónprioridadprivilegios

camb_privil()

está-autorizado-en

III. El Paradigma OO: Clases y relaciones entre clases

Page 118: cursoUML

118� www.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 119: cursoUML

119� www.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

Page 120: cursoUML

120� www.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 121: cursoUML

121� www.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

Page 122: cursoUML

122� www.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 123: cursoUML

123� www.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

Page 124: cursoUML

124� www.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 125: cursoUML

125� www.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

Page 126: cursoUML

126� www.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 127: cursoUML

127� www.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

Page 128: cursoUML

128� www.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 129: cursoUML

129� www.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

Page 130: cursoUML

130� www.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 131: cursoUML

131� www.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

Page 132: cursoUML

132� www.dsic.upv.es/~uml

… Herencia Múltiple� Uso 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 133: cursoUML

133� www.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

Page 134: cursoUML

134� www.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 135: cursoUML

135� www.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

Page 136: cursoUML

136� www.dsic.upv.es/~uml

… Polimorfismo

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

dormir?

?

Animal

dormir()

León Oso Tigre

III. El Paradigma OO: Clases y relaciones entre clases

Page 137: cursoUML

137� www.dsic.upv.es/~uml

… Polimorfismo

Dormir(){en un árbol}

Dormir(){sobrela espalda}

Dormir(){sobre el vientre}

Dormir(){

}

Animal

dormir()

León

dormir()

Oso

dormir()

Tigre

dormir()

III. El Paradigma OO: Clases y relaciones entre clases

Page 138: cursoUML

138� www.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 139: cursoUML

139� www.dsic.upv.es/~uml

Comportamiento de objetos

Page 140: cursoUML

140� www.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 141: cursoUML

141� www.dsic.upv.es/~uml

� Cada objeto está en un estado en cierto instante� El estado está caracterizado parcialmente por los

valores algunos de los atributos del objeto � El estado en el que se encuentra un objeto

determina su comportamiento� Cada objeto sigue el comportamiento descrito en

el D. de Estados asociado a su clase� Los D. De Estados y escenarios son complementarios

… Diagrama de Estados

III. El Paradigma OO: Comportamiento de objetos

Page 142: cursoUML

142� www.dsic.upv.es/~uml

� Los D. de Estados son autómatas jerárquicos que permiten expresar concurrencia, sincronización y jerarquías de objetos

� Los D. de Estados son grafos dirigidos� Los D. De Estados de UML son deterministas� Los estados inicial y final están diferenciados del

resto� La 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 143: cursoUML

143� www.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

Page 144: cursoUML

144� www.dsic.upv.es/~uml

� Ejemplo de un Diagrama de Estados para la clase persona:

en el paro en activo

jub ilado

contratar

perder empleo

jubilarse

jubilarse

… Diagrama de Estados

III. El Paradigma OO: Comportamiento de objetos

Page 145: cursoUML

145� www.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

Page 146: cursoUML

146� www.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 147: cursoUML

147� www.dsic.upv.es/~uml

Generalización de Estados

� Podemos reducir la complejidad de estos diagramas usando la generalización de estados

� Distinguimos así entre superestado y subestados

� Un estado puede contener varios subestadosdisjuntos

� Los subestados heredan las variables de estado y las transiciones externas

III. El Paradigma OO: Comportamiento de objetos

Page 148: cursoUML

148� www.dsic.upv.es/~uml

Generalización de Estados

� Ejemplo:

A B

C

e1

e2

e2

III. El Paradigma OO: Comportamiento de objetos

Page 149: cursoUML

149� www.dsic.upv.es/~uml

� Quedaría como:

C

a bA Be1

e2

Generalización de Estados

III. El Paradigma OO: Comportamiento de objetos

Page 150: cursoUML

150� www.dsic.upv.es/~uml

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

C

a bA B

e1

e2

e0

… Generalización de Estados

III. El Paradigma OO: Comportamiento de objetos

Page 151: cursoUML

151� www.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 B

e1

e2

e1

e0

… Generalización de Estados

III. El Paradigma OO: Comportamiento de objetos

Page 152: cursoUML

152� www.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 153: cursoUML

153� www.dsic.upv.es/~uml

� Ejemplo:

e1e1

… Generalización de Estados

III. El Paradigma OO: Comportamiento de objetos

Page 154: cursoUML

154� www.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 e

R 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

d i 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 e

R 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 l le r h a n g s u p / d i s c o n n e c t

l if 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 155: cursoUML

155� www.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

Page 156: cursoUML

156� www.dsic.upv.es/~uml

� Ejemplo:A

d2

d1

H*

B

C

x yD

out

in

… Historia

III. El Paradigma OO: Comportamiento de objetos

Page 157: cursoUML

157� www.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

Page 158: cursoUML

158� www.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 159: cursoUML

159� www.dsic.upv.es/~uml

… Destrucción de Objeto

� Ejemplo:

En t ierraCrear(matricula)

En vuelo

aterrizardespegar

crash

III. El Paradigma OO: Comportamiento de objetos

Page 160: cursoUML

160� www.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 161: cursoUML

161� www.dsic.upv.es/~uml

� Ejemplo:

… Transiciones temporizadas

A

esperar dinero

entry: Mostrar mensajeexit: cerrar ranura

B

anular transacción

/ Abrir ranura

Depósito efectuado

después de30 segundos

III. El Paradigma OO: Comportamiento de objetos

Page 162: cursoUML

162� www.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 163: cursoUML

163� www.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 if ic a r e x is te n c ia v u e lo

I n fo rm a r a lte rn a t i 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 i r l i neV e n d e d o rP a s a j e r o

III. El Paradigma OO: Comportamiento de objetos

Page 164: cursoUML

164� www.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 l ive r o rd e r

F i l l o rd e r

O rd e r[e n te re d ]

O rd e r[f ille d ]

St o ckro o mSalesC u sto m er

III. El Paradigma OO: Comportamiento de objetos

Page 165: cursoUML

165� www.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

Page 166: cursoUML

166� www.dsic.upv.es/~uml

Componentes

Page 167: cursoUML

167� www.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

Page 168: cursoUML

168� www.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 169: cursoUML

169� www.dsic.upv.es/~uml

...Diagrama de Componentes

III. El Paradigma OO: Componentes

Page 170: cursoUML

170� www.dsic.upv.es/~uml

Distribución y despliegue de Componentes

Page 171: cursoUML

171� www.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

Page 172: cursoUML

172� www.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 173: cursoUML

173� www.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

Page 174: cursoUML

174� www.dsic.upv.es/~uml

� Ejemplo:

… Diagramas de Despliegue

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

Page 175: cursoUML

175� www.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

Page 176: cursoUML

176� www.dsic.upv.es/~uml

Object Constraint LanguageOCL

III. El Paradigma OO

Page 177: cursoUML

177� www.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

Page 178: cursoUML

178� www.dsic.upv.es/~uml

Usos de OCL

� Lenguaje de consulta� Especificación de invariantes en clases y tipos� Especificación de invariantes de tipo para Estereotipos� Describir pre- y post condiciones en Operaciones y Métodos

� Describir Guardas� Especificar destinatarios para mensages y acciones� Especificar restricciones en Operaciones� Especificar reglas de derivación para atributos

III. El Paradigma OO: OCL

Page 179: cursoUML

179� www.dsic.upv.es/~uml

Ejemplo

III. El Paradigma OO: OCL

Page 180: cursoUML

180� www.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 181: cursoUML

181� www.dsic.upv.es/~uml

Pre- Post condiciones� Sintaxis

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

Page 182: cursoUML

182� www.dsic.upv.es/~uml

Valores iniciales y derivados� Sintaxis

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 183: cursoUML

183� www.dsic.upv.es/~uml

Expresiones Let� Ejemplo

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

else

ingresos >= 100endif

III. El Paradigma OO: OCL

Page 184: cursoUML

184� www.dsic.upv.es/~uml

Definiciones� Ejemplo

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 185: cursoUML

185� www.dsic.upv.es/~uml

Navegación� Ejemplos

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

Page 186: cursoUML

186� www.dsic.upv.es/~uml

… Navegación� Ejemplo

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 187: cursoUML

187� www.dsic.upv.es/~uml

IVProceso de Desarrollode SW basado en UML

Page 188: cursoUML

188� www.dsic.upv.es/~uml

¿Qué es un Proceso de Desarrollo de SW?

Requisitos nuevos

o modificados

Sistema nuevo

o 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 189: cursoUML

189� www.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

Page 190: cursoUML

190� www.dsic.upv.es/~uml

Dos Dimensiones

IV. Proceso de Desarrollo de SW basado en UML

Page 191: cursoUML

191� www.dsic.upv.es/~uml

Fases e Hitos (Milestones)

tiempo

Objetivos(Vision)

Arquitectura CapacidadOperacionalInicial

Releasedel Producto

Inception Elaboration Construction Transition

IV. Proceso de Desarrollo de SW basado en UML

Page 192: cursoUML

192� www.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 193: cursoUML

193� www.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

Page 194: cursoUML

194� www.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 DesignerDeveloper workers• Architect• Architecture Reviewer• Capsule Designer• Code Reviewer• Database Designer• Design Reviewer• Designer• Implementer• Integrator

Testing professional workers� Test Designer� Tester

Manager workers� Change Control Manager� Configuration Manager� Deployment Manager� Process Engineer� Project Manager� Project Reviewer

Other workers� Any Worker� Course Developer� Graphic Artist� Stakeholder� System Administrator� Technical Writer� Tool Specialist

IV. Proceso de Desarrollo de SW basado en UML

Page 195: cursoUML

195� www.dsic.upv.es/~uml

... Elementos en RUP

Workers, Actividades, Artefactos

Ejemplo: System Analyst Worker

IV. Proceso de Desarrollo de SW basado en UML

Page 196: cursoUML

196� www.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 Artefactos� Deployment 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 197: cursoUML

197� www.dsic.upv.es/~uml

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

IV. Proceso de Desarrollo de SW basado en UML

Page 198: cursoUML

198� www.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 199: cursoUML

199� www.dsic.upv.es/~uml

RequisitosCapturar, 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

Page 200: cursoUML

200� www.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 201: cursoUML

201� www.dsic.upv.es/~uml

... Proceso dirigido por los Casos de Uso

IV. Proceso de Desarrollo de SW basado en UML

Page 202: cursoUML

202� www.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 clientes

� En el ciclo de vida iterativo a cada iteración se reproduce el ciclo de vida en cascada a menor escala

� Los 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 203: cursoUML

203� www.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 eIntegración

n veces

... Proceso Iterativo e Incremental

IV. Proceso de Desarrollo de SW basado en UML

Page 204: cursoUML

204� www.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 205: cursoUML

205� www.dsic.upv.es/~uml

Proceso Iterativo e Incremental

Enfoque

Secuencial

Enfoque

Iterativo e

Incremental

IV. Proceso de Desarrollo de SW basado en UML

Page 206: cursoUML

206� www.dsic.upv.es/~uml

Grado de Finalización de Artefactos

... Proceso Iterativo e Incremental

IV. Proceso de Desarrollo de SW basado en UML

Page 207: cursoUML

207� www.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

Page 208: cursoUML

208� www.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 asociada

a un hito)

IV. Proceso de Desarrollo de SW basado en UML

Page 209: cursoUML

209� www.dsic.upv.es/~uml

Esfuerzo y dedicación por Fases en RUP

10%10%10%10%50 %50 %50 %50 %30 %30 %30 %30 %10 %10 %10 %10 %TiempoTiempoTiempoTiempoDedicadoDedicadoDedicadoDedicado

10%10%10%10%65 %65 %65 %65 %20 %20 %20 %20 %5 %5 %5 %5 %EsfuerzoEsfuerzoEsfuerzoEsfuerzo

TransiciTransiciTransiciTransicióóóónnnnConstrucciConstrucciConstrucciConstruccióóóónnnnElaboraciElaboraciElaboraciElaboracióóóónnnnInInInInicioicioicioicio

IV. Proceso de Desarrollo de SW basado en UML

Page 210: cursoUML

210� www.dsic.upv.es/~uml

Distribución de Recursos por Fases en RUP

IV. Proceso de Desarrollo de SW basado en UML

Page 211: cursoUML

211� www.dsic.upv.es/~uml

VConclusiones

Page 212: cursoUML

212� www.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 213: cursoUML

213� www.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 alternativas� Tomar decisiones de análisis/diseño que dirijan la implementación� Generar 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 modelos� Seguimiento 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

Page 214: cursoUML

214� www.dsic.upv.es/~uml

Adaptabilidad al contexto del proyecto

V. Conclusiones

Page 215: cursoUML

215� www.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 subyacente� Utilización de bases de datos relacionales� Arquitectura de 3 capas� Frameworks de persistencia para materializar y desmaterializar

objetos

� Metodologías de desarrollo de software y el papel que juega UML en ellas� Modelado Ágil� Modelado opcional y/o desechable (en Metodologías Ágiles)

V. Conclusiones

Page 216: cursoUML

216� www.dsic.upv.es/~uml

... Tendencias� Nuevas 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 Languagues� Domain-Specific Modeling (DSM, www.dsmforum.org)� Meta CASE Tools (www.metacase.com)

V. Conclusiones

Page 217: cursoUML

217� www.dsic.upv.es/~uml

Diagramas en UML 2.0

Page 218: cursoUML

218� www.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