1 uml desarrollo de software orientado a objeto usando uml patricio letelier torres...

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

Upload: yessenia-lama

Post on 26-Jan-2015

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

3 www.dsic.upv.es/~uml

IIntroducción

Page 4: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

4 www.dsic.upv.es/~uml

Introducción: Modelado de SW

Page 5: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

5 www.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

Page 6: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

6 www.dsic.upv.es/~uml

Construcción de una casa

Construida eficientemente y en un tiempo razonable por un equipoRequiere:

ModeladoProceso bien definidoHerramientas más sofisticadas

I. Introducción: Modelado de SW

Page 7: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

7 www.dsic.upv.es/~uml

Construcción de un rascacielos

I. Introducción: Modelado de SW

Page 8: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

8 www.dsic.upv.es/~uml

Claves en Desarrollo de SI

Herramientas Proceso

Notación

I. Introducción: Modelado de SW

Page 9: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

11 www.dsic.upv.es/~uml

Introducción: UML

Page 12: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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 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 13: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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 Rational Software. Herramienta CASE Rational Rose

I. Introducción: UML

Page 15: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

15 www.dsic.upv.es/~uml

Historia de UML

Nov ‘97 UML aprobado por 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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

21 www.dsic.upv.es/~uml

IIBreve Tour por UML

Page 22: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

24 www.dsic.upv.es/~uml

Diagramas de UML 1.5

Diagrama de Casos de Uso Diagrama de Clases Diagrama de Objetos Diagramas de Comportamiento

Diagrama de Estados Diagrama de Actividad Diagramas 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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

25 www.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

Page 26: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

26 www.dsic.upv.es/~uml

4+1 vistas de Kruchten (1995)

Vista Lógica

Vista de Procesos

Vista de Distribución

Vista de Realización

Vista de los Casos de Uso

Organización de Modelos

Este enfoque sigue el browser de Rational Rose

II. Breve Tour por UML

Page 27: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

32 www.dsic.upv.es/~uml

… Paquetes en UML

II. Breve Tour por UML

Práctica 1

Page 33: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

34 www.dsic.upv.es/~uml

… Ejemplos

Ejemplo:

II. Breve Tour por UML

Práctica 2

Retirar dinero

Consultar ExtractoCliente

Realizar transferencia

Page 35: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

39 www.dsic.upv.es/~uml

… Ejemplos (Asociación)

ProfesorDepartamento

10..1

director

1

dirige

0..1

II. Breve Tour por UML

Page 40: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

41 www.dsic.upv.es/~uml

… Ejemplos (Generalización)

II. Breve Tour por UML

Trabajador

Directivo Administrativo Obrero

{ disjunta, completa }

Page 42: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

43 www.dsic.upv.es/~uml

Diagrama de Estados

con préstamos

sin préstamos

alta baja

prestar devolver[ número_préstamos = 1 ]

prestar

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

44 www.dsic.upv.es/~uml

Diagrama de Actividad

II. Breve Tour por UML

Buscar Bebida [ no hay café ]

Poner café en filtro

Añadir agua al depósito

Coger taza

Poner filtro en máquina

Encender máquina

Café en preparación

/ cafetera.On

Servir café Beber

Coger zumo

[ hay café ]

indicador de fin

[ hay zumo ]

[ no zumo ]

Práctica 5

Page 45: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

45 www.dsic.upv.es/~uml

Diagrama Componentes

II. Breve Tour por UML

Interfaz de Terminal

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

Control y Análisis

Page 46: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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 Coneccion

Comment

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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

Acceso a BD

Rutinas de conexión

Control 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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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-- Grady Booch

II. Breve Tour por UML

Page 49: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

49 www.dsic.upv.es/~uml

IIIEl Paradigma

Orientado a Objeto

Page 50: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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 constituidas mayoritariamente por objetos degenerados”

… Problemas en OO

III. El Paradigma OO

Page 54: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

54 www.dsic.upv.es/~uml

Fundamentos de Modelado OO

Page 55: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

56 www.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 57: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

59 www.dsic.upv.es/~uml

Clases y Objetos

III. El Paradigma OO: Fundamentos de Modelado OO

Page 60: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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. Servidor es el objeto que provee el servicio solicitado

III. El Paradigma OO: Fundamentos de Modelado OO

Page 65: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

69 www.dsic.upv.es/~uml

Requisitos del software

III. El Paradigma OO: Requisitos

Page 70: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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

ActorCaso de Uso

III. El Paradigma OO: Requisitos

Page 76: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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 Caso de Uso Destino

<<include>>

III. El Paradigma OO: Requisitos

Page 77: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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 Caso de Uso Destino

<<extend>>

III. El Paradigma OO: Requisitos

Page 79: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

79 www.dsic.upv.es/~uml

Solicitar Nueva Tarjeta

ClienteSolicitar Préstamo

<<extend>>

[Tarjeta Caducada]

… Casos de Uso: Relaciones

Ejemplo <<extend>>:

III. El Paradigma OO: Requisitos

Page 80: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

80 www.dsic.upv.es/~uml

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

Identificación

Transferencia en Internet

ClienteTransferencia

<<include>>

<<extend>>

III. El Paradigma OO: Requisitos

Page 81: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

81 www.dsic.upv.es/~uml

… Casos de Uso: Relaciones

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

Place OrderSalesperson

*1 *1

Supply Customer Data

<<include>>

Order Product

<<include>>

Arrange Payment

<<include>>

Request Catalog

<<extend>>

the salesperson asks for the catalog

III. El Paradigma OO: Requisitos

Page 82: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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 Hijo Caso de Uso Padre

III. El Paradigma OO: Requisitos

Page 83: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

85 www.dsic.upv.es/~uml

Identificador CU-<id-requisito>

Nombre <nombre del requisito funcional>

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

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

SecuenciaNormal

Paso Acción

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

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

… …

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

Excepciones Paso Acción

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

… …

Rendimiento Paso Cota de tiempo

1 n segundos

… …

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

Importancia {sin importancia, importante, vital}

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

Comentarios <comentarios adicionales>

III. El Paradigma OO: Requisitos

Page 86: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

87 www.dsic.upv.es/~uml

Interacción entre objetos

Page 88: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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 el Diagrama de Secuencia

III. El Paradigma OO: Interacción entre objetos

Page 89: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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 obtenerse automáticamente a partir del correspondiente D. de Secuencia (o viceversa)

III. El Paradigma OO: Interacción entre objetos

Page 91: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

92 www.dsic.upv.es/~uml

… Diagrama de Secuencia

III. El Paradigma OO: Interacción entre objetos

Page 93: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

95 www.dsic.upv.es/~uml

ob1 : C1

ob3 : C3

ob2 : C2

ob4 : C4

[x>0] fool(x)

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

doit(w)

more( )

op( )

III. El Paradigma OO: Interacción entre objetos

Page 96: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

101 www.dsic.upv.es/~uml

Clases y relaciones entre clases

Page 102: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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

Motocicleta

colorcilindradavelocidad máxima

arrancar()acelerar()frenar()

III. El Paradigma OO: Clases y relaciones entre clases

Page 105: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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 ser manipulables directamente por el resto de objetos

III. El Paradigma OO: Clases y relaciones entre clases

Page 107: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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 friends en terminología C++)

• (#) Los atributos/operaciones protegidos está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 de encapsulación)

III. El Paradigma OO: Clases y relaciones entre clases

Page 108: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

108 www.dsic.upv.es/~uml

… Clases: Encapsulación

Ejemplo:

Reglas de visibilidad

Atributo 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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

110 www.dsic.upv.es/~uml

Asociación La asociación expresa una conexión

bidireccional entre objetos Una asociación es una abstracción de la

relación existente en los enlaces entre los objetos

Universidad Estudiante

Una asociación

Univ. de Murcia : Universidad Antonio : EstudianteUn enlace

III. El Paradigma OO: Clases y relaciones entre clases

Page 111: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

111 www.dsic.upv.es/~uml

Ejemplo:

… Asociación

Compañía

nombredirección

Persona

nombres.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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

113 www.dsic.upv.es/~uml

Asociación Cualificada

Reduce la multiplicidad del rol opuesto al considerar el valor

del 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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

114 www.dsic.upv.es/~uml

La agregación representa una relación parte_de entre 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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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*

employer

0..1

employee

*

III. El Paradigma OO: Clases y relaciones entre clases

Page 117: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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ón

prioridadprivilegios

camb_privil()

está-autorizado-en

III. El Paradigma OO: Clases y relaciones entre clases

Page 118: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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 las propiedades comunes de un conjunto de clases en una clase más general

III. El Paradigma OO: Clases y relaciones entre clases

Page 120: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

125 www.dsic.upv.es/~uml

Un ejemplo de Clasificación Estática:

... Generalización

Vehículo Aéreo

Avión Helicóptero

{ estática }

III. El Paradigma OO: Clases y relaciones entre clases

Page 126: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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)

posiblemente no disjunta en diferentes instantes

... Generalización

C0

C1 Cn

{ dinámica }

III. El Paradigma OO: Clases y relaciones entre clases

Page 130: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

139 www.dsic.upv.es/~uml

Comportamiento de objetos

Page 140: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

144 www.dsic.upv.es/~uml

Ejemplo de un Diagrama de Estados para la clase persona:

en el paro en activo

jubilado

contratar

perder empleo

jubilarsejubilarse

… Diagrama de Estados

III. El Paradigma OO: Comportamiento de objetos

Page 145: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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 subestados disjuntos

Los subestados heredan las variables de estado y las transiciones externas

III. El Paradigma OO: Comportamiento de objetos

Page 148: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

153 www.dsic.upv.es/~uml

Ejemplo:

e1e1

… Generalización de Estados

III. El Paradigma OO: Comportamiento de objetos

Page 154: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

154 www.dsic.upv.es/~uml

… Generalización de Estados

Active

DialTone

do/ play dial tone

Timeout

do/ play message

Dialing

Invalid

do/ play message

Connecting

Busy

do/ play busy tone

Ringing

do/ play ringing tone

Talking

Pinned

Idle

DialTone

do/ play dial tone

Timeout

do/ play message

after (15 sec.)

Dialing

dial digit( n )[ incomplete ]

dial digit(n)

after (15 sec.)

Invalid

do/ play message

dial digit(n)[ invalid ]

Connecting

dial digit( n )[ valid ] / connect

Busy

do/ play busy tone

Ringing

do/ play ringing tone

Talking

callee answers / enable speech

Pinned

callee hangs up

callee hangs

up

caller hangs up / disconnect

lift receiver / get dial

tone

busyconnected

III. El Paradigma OO: Comportamiento de objetos

Page 155: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

155 www.dsic.upv.es/~uml

Historia Por defecto, los autómatas no tienen

memoria

Es posible memorizar el último subestado visitado 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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

159 www.dsic.upv.es/~uml

… Destrucción de Objeto

Ejemplo:

En tierraCrear(matricula)

En vuelo

aterrizardespegar

crash

III. El Paradigma OO: Comportamiento de objetos

Page 160: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

163 www.dsic.upv.es/~uml

Ejemplo (con swim lines)

Solicitar pasaje

Seleccionar vuelo

Pagar pasaje

Verificar existencia vuelo

Informar alternativas y precios

Solicitar pago

Reservar plazas

Emitir billete

Dar detalles vuelo

Confirmar plaza reservada

AirlineVendedorPasajero

III. El Paradigma OO: Comportamiento de objetos

Page 164: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

164 www.dsic.upv.es/~uml

... Ejemplos

Request service

Play

Collect order

Order[placed]

Order[delivered]

Take order

Deliver order

Fill order

Order[entered]

Order[filled]

StockroomSalesCustomer

III. El Paradigma OO: Comportamiento de objetos

Page 165: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

166 www.dsic.upv.es/~uml

Componentes

Page 167: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

169 www.dsic.upv.es/~uml

...Diagrama de Componentes

III. El Paradigma OO: Componentes

Page 170: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

170 www.dsic.upv.es/~uml

Distribución y despliegue de Componentes

Page 171: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

173 www.dsic.upv.es/~uml

Ejemplo de conexión entre nodos:

Terminal Punto de Venta

<<Cliente>>

Base de Datos

<<Servidor>>

Control

<<TCP/IP>>

<<RDSI>>

Podemos distinguir tipos de nodos y connexiones por estereotipado

… Diagrama de Despliegue

<<RDSI>>

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

Page 174: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

174 www.dsic.upv.es/~uml

Ejemplo:

… Diagramas de Despliegue

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

Page 175: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

175 www.dsic.upv.es/~uml

ShoppingSession<<Session>>

ShoppingCart<<Entity>>

Catalog<<Entity>>

VideoStoreDB

OpenSourceBrowser<<browser>>

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

176 www.dsic.upv.es/~uml

Object Constraint Language

OCL

III. El Paradigma OO

Page 177: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

177 www.dsic.upv.es/~uml

¿Qué es OCL?

OCL es un lenguaje formal usado para describir expresiones acerca de modelos UML

OCL es parte del estandar UML y fue desarrollado en IBM

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

III. El Paradigma OO: OCL

Page 178: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

179 www.dsic.upv.es/~uml

Ejemplo

III. El Paradigma OO: OCL

Page 180: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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ñía

inv: c.númeroDeEmpleados > 50

context c:Compañía

inv suficientesEmpleados: c.númeroDeEmpleados > 50

III. El Paradigma OO: OCL

Page 181: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

181 www.dsic.upv.es/~uml

Pre- Post condiciones Sintaxis

context NombreTipo::NombreOperación(Param1 : Tipo1, ... ):TipoRetorno

pre parametroOk: param1 > ...

post resultadoOk : result = ...

Ejemplo

context Persona::nómina(fecha : Date) : Integer

post: result = 5000

III. El Paradigma OO: OCL

Page 182: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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.sueldo endif

III. El Paradigma OO: OCL

Page 183: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

183 www.dsic.upv.es/~uml

Expresiones Let Ejemplo

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

ingresos < 100else

ingresos >= 100endif

III. El Paradigma OO: OCL

Page 184: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

187 www.dsic.upv.es/~uml

IVProceso de Desarrollo de SW basado en UML

Page 188: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

188 www.dsic.upv.es/~uml

¿Qué es un Proceso de Desarrollo de SW?

Requisitos nuevoso modificados

Sistema nuevoo modificado

Proceso 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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

190 www.dsic.upv.es/~uml

Dos Dimensiones

IV. Proceso de Desarrollo de SW basado en UML

Page 191: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

191 www.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

Page 192: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

193 www.dsic.upv.es/~uml

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

Ejemplo

Workflow Detail:Analyse the ProblemWorkflow: Requirements

Actividades

Workers Artefactos

IV. Proceso de Desarrollo de SW basado en UML

Page 194: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

194 www.dsic.upv.es/~uml

... Elementos en RUP

Workers Analyst 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 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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

199 www.dsic.upv.es/~uml

RequisitosCapturar, definir y validar los casos de

uso

Realizar los casos 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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

201 www.dsic.upv.es/~uml

... Proceso dirigido por los Casos de Uso

IV. Proceso de Desarrollo de SW basado en UML

Page 202: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

205 www.dsic.upv.es/~uml

Proceso Iterativo e Incremental

EnfoqueSecuencial

EnfoqueIterativo eIncremental

IV. Proceso de Desarrollo de SW basado en UML

Page 206: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

208 www.dsic.upv.es/~uml

Fases, Release, Base Line, Generación

ciclo 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 209: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

209 www.dsic.upv.es/~uml

Esfuerzo y dedicación por Fases en RUP

InicioElaboració

nConstrucció

nTransició

n

Esfuerzo 5 % 20 % 65 % 10%

Tiempo Dedicado

10 % 30 % 50 % 10%

IV. Proceso de Desarrollo de SW basado en UML

Page 210: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

211 www.dsic.upv.es/~uml

VConclusiones

Page 212: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

214 www.dsic.upv.es/~uml

Adaptabilidad al contexto del proyecto

V. Conclusiones

Page 215: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

217 www.dsic.upv.es/~uml

Diagramas en UML 2.0

Page 218: 1 uml Desarrollo de Software Orientado a Objeto usando UML Patricio Letelier Torres letelier@dsic.upv.es Departamento Sistemas Informáticos

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