Sie sind auf Seite 1von 109

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

Desarrollo de Software Orientado a Objeto usando UML


Patricio Letelier Torres
letelier@dsic.upv.es Departamento Sistemas Informticos y Computacin (DSIC) Universidad Politcnica de Valencia (UPV) - Espaa

www.dsic.upv.es/~uml

Contenido
I. Introduccin Modelado de Software UML II. Breve Tour por UML III. El Paradigma Orientado a Objeto usando UML Fundamentos del Modelado OO Requisitos del software Interaccin entre objetos Clases y relaciones entre clases Comportamiento de objetos Componentes Distribucin y despliegue de componentes Object Constraint Language (OCL) IV. Proceso de Desarrollo de SW basado en UML V. Conclusiones
www.dsic.upv.es/~uml

www.dsic.upv.es/~uml

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

I Introduccin

www.dsic.upv.es/~uml

Introduccin: Modelado de SW

www.dsic.upv.es/~uml

www.dsic.upv.es/~uml

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

I. Introduccin: Modelado de SW

Construccin de una casa para fido

Puede hacerlo una sola persona Requiere: Modelado mnimo Proceso simple Herramientas simples

www.dsic.upv.es/~uml

I. Introduccin: Modelado de SW

Construccin de una casa

Construida eficientemente y en un tiempo razonable por un equipo Requiere: Modelado Proceso bien definido Herramientas ms sofisticadas
www.dsic.upv.es/~uml

www.dsic.upv.es/~uml

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

I. Introduccin: Modelado de SW

Construccin de un rascacielos

www.dsic.upv.es/~uml

I. Introduccin: Modelado de SW

Claves en Desarrollo de SI
Notacin

Herramientas

Proceso

www.dsic.upv.es/~uml

www.dsic.upv.es/~uml

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

I. Introduccin: Modelado de SW

Abstraccin - Modelado Visual (MV)


El modelado captura las partes esenciales del sistema
Orden Item

envo

Proceso de Negocios Sistema Computacional


www.dsic.upv.es/~uml

I. Introduccin: Modelado de SW

II. Notacin (Visual) - Beneficios


Manejar la complejidad

Interface de Usuario (Visual Basic, Java, ..)

Lgica del Negocio (C++, Java, ..)

Mltiples Sistemas

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

Modelar el sistema independientemente del lenguaje de implementacin


www.dsic.upv.es/~uml

Componentes Reutilizados

Promover la Reutilizacin
10

www.dsic.upv.es/~uml

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

Introduccin: UML

www.dsic.upv.es/~uml

11

I. Introduccin: UML

Qu es UML?
UML = Unified Modeling Language Un lenguaje de propsito 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:

www.dsic.upv.es/~uml

Modelado Modelado Modelado Modelado

Orientado a Objetos de Datos de Componentes de Flujos de Trabajo (Workflows)


12

www.dsic.upv.es/~uml

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

I. Introduccin: UML

Situacin de Partida
Diversos mtodos y tcnicas OO, con muchos aspectos en comn pero utilizando distintas notaciones Inconvenientes para el aprendizaje, aplicacin, construccin y uso de herramientas, etc. Pugna entre distintos enfoques (y correspondientes gurs) Establecer una notacin estndar

www.dsic.upv.es/~uml

13

I. Introduccin: UML

Historia de UML
Comenz como el Mtodo Unificado, con la participacin de Grady Booch y Jim Rumbaugh. Se present en el OOPSLA95 El mismo ao se uni Ivar Jacobson. Los Tres Amigos son socios en la compaa Rational Software. Herramienta CASE Rational Rose

www.dsic.upv.es/~uml

14

www.dsic.upv.es/~uml

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

I. Introduccin: UML

Historia de UML
2005? 2003 2000 1999 1998 Nov 97

UML 2.0
UML 1.5 UML 1.4 UML 1.3 UML 1.2
UML aprobado por el OMG Revisiones menores

www.dsic.upv.es/~uml

15

I. Introduccin: 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 DSouza)

Intellicorp and James Martin & co. (James Odell)

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

www.dsic.upv.es/~uml

16

www.dsic.upv.es/~uml

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

I. Introduccin: UML

UML aglutina enfoques OO


Rumbaugh Booch Odell Shlaer-Mellor
Object life cycles

Jacobson Meyer
Pre- and Post-conditions

UML
State Charts

Harel

Gamma et. al.


Frameworks, patterns, notes

Embly
Singleton classes

Wirfs-Brock Fusion
Responsabilities Operation descriptions, message numbering

www.dsic.upv.es/~uml

17

I. Introduccin: UML

Aspectos Novedosos
Definicin semi-formal del Metamodelo de UML Mecanismos de Extensin en UML:

Stereotypes Constraints Tagged Values


Permiten adaptar los elementos de modelado, asignndoles una semntica particular

www.dsic.upv.es/~uml

18

www.dsic.upv.es/~uml

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

I. Introduccin: UML

Inconvenientes en UML
Definicin del proceso de desarrollo usando UML. UML no es una metodologa No cubre todas las necesidades de especificacin de un proyecto software. Por ejemplo, no define los documentos textuales Ejemplos aislados Monopolio de conceptos, tcnicas y mtodos en torno a UML y el OMG

www.dsic.upv.es/~uml

19

I. Introduccin: UML

Perspectivas de UML
UML es el lenguaje de modelado orientado a objetos estndar predominante ahora y en los prximos aos Razones: Participacin de metodlogos influyentes Participacin de importantes empresas Estndar del OMG Evidencias: Herramientas que proveen la notacin UML Edicin de libros (ms de 300 en www.amazon.com) Congresos, cursos, camisetas, etc.
www.dsic.upv.es/~uml

20

www.dsic.upv.es/~uml

10

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

II Breve Tour por UML

www.dsic.upv.es/~uml

21

II. Breve Tour por UML

Modelos y Diagramas
Un modelo captura una vista de un sistema del mundo real. Es una abstraccin de dicho sistema, considerando un cierto propsito. As, el modelo describe completamente aquellos aspectos del sistema que son relevantes al propsito del modelo, y a un apropiado nivel de detalle. Diagrama: una representacin grfica de una coleccin de elementos de modelado, a menudo dibujada como un grafo con vrtices conectados por arcos
OMG UML 1.4 Specification

www.dsic.upv.es/~uml

22

www.dsic.upv.es/~uml

11

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

II. Breve Tour por UML

... Modelos y Diagramas


Un proceso de desarrollo de software debe ofrecer un conjunto de modelos que permitan expresar el producto desde cada una de las perspectivas de inters El cdigo fuente del sistema es el modelo ms detallado del sistema (y adems 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
www.dsic.upv.es/~uml

23

II. Breve Tour por 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 Interaccin Diagrama de Secuencia Diagrama de Colaboracin Diagramas de implementacin Diagrama de Componentes Diagrama de Despliegue
www.dsic.upv.es/~uml

24

www.dsic.upv.es/~uml

12

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

II. Breve Tour por UML

... Diagramas de UML


Los diagramas expresan grficamente partes de un modelo
Use Case Use Case Diagramas Diagrams de Diagrams Casos de Uso State State Diagramas Diagrams de Diagrams Clases State State Diagramas Diagrams de Diagrams Objetos State State Diagramas Diagrams de Diagrams Componentes
Component Component Diagrams Diagramas de Diagrams

Use Case Use Case Diagramas Diagrams de Diagrams Secuencia Scenario Scenario Diagramas Diagrams de Diagrams Colaboracin Scenario Scenario Diagramas Diagrams de Diagrams Estados

Modelos

Diagramas de Actividad

Distribucin

www.dsic.upv.es/~uml

25

II. Breve Tour por UML

Organizacin de Modelos
4+1 vistas de Kruchten (1995)
Vista de Realizacin

Vista Lgica Vista de los Casos de Uso Vista de Procesos

Vista de Distribucin

Este enfoque sigue el browser de Rational Rose


www.dsic.upv.es/~uml

26

www.dsic.upv.es/~uml

13

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

II. Breve Tour por UML

... Organizacin 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 Anlisis (Analysis Model) M. de Diseo (Design Model) M. de Despliegue (Deployment Model) M. de Datos (Data Model) M. de Implementacin (Implementation Model) M. de Pruebas (Test Model)
27

www.dsic.upv.es/~uml

II. Breve Tour por UML

Paquetes en UML
Los paquetes ofrecen un mecanismo general para la organizacin de los modelos/subsistemas agrupando elementos de modelado Se representan grficamente como:
Nombre de paquete

www.dsic.upv.es/~uml

28

www.dsic.upv.es/~uml

14

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

II. Breve Tour por UML

Paquetes en UML
Cada paquete corresponde a un submodelo (subsistema) del modelo (sistema) Un paquete puede contener otros paquetes, sin lmite de anidamiento pero cada elemento pertenece a (est definido en) slo un paquete Una clase de un paquete puede aparecer en otro paquete por la importacin a travs de una relacin de dependencia entre paquetes

www.dsic.upv.es/~uml

29

II. Breve Tour por 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

www.dsic.upv.es/~uml

30

www.dsic.upv.es/~uml

15

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

II. Breve Tour por UML

...Paquetes en Rational Rose


Customers

Otra Cl ase

Customers

<<access>>

CheckingAccount
(f rom Banking)

Banking

Banking

CheckingAccount

www.dsic.upv.es/~uml

31

II. Breve Tour por UML

Paquetes en UML

Prctica 1

www.dsic.upv.es/~uml

32

www.dsic.upv.es/~uml

16

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

II. Breve Tour por UML

Diagrama de Casos de Uso


Casos de Uso es una tcnica para capturar informacin respecto de los servicios que un sistema proporciona a su entorno No pertenece estrictamente al enfoque orientado a objeto, es una tcnica para captura y especificacin de requisitos

www.dsic.upv.es/~uml

33

II. Breve Tour por UML

Ejemplos
Ejemplo:
Retirar dinero

Cliente

Consult ar E xt ract o

Realizar transferencia
Prctica 2

www.dsic.upv.es/~uml

34

www.dsic.upv.es/~uml

17

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

II. Breve Tour por UML

Diagrama de Secuencia

: Encargado

: WInP rstamos

:Socio

:Video

: Prstamo

prestar(video, socio) verificar situacin socio verificar situacin video

registrar prstamo entregar recibo

www.dsic.upv.es/~uml

35

II. Breve Tour por UML

Diagrama de Colaboracin
:Socio

:Video 2: verificar situacin socio

1: prestar(video, socio) :WInPrstamos 5: entregar recibo : Encargado

3: verificar situacin video

4: registrar prstamo

:Prstamo

Prctica 3

www.dsic.upv.es/~uml

36

www.dsic.upv.es/~uml

18

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

II. Breve Tour por UML

Diagrama de Clases
El Diagrama de Clases es el diagrama principal para el anlisis y diseo del sistema Un diagrama de clases presenta las clases del sistema con sus relaciones estructurales y de herencia La definicin de clase incluye definiciones para atributos y operaciones El modelo de casos de uso debera aportar informacin para establecer las clases, objetos, atributos y operaciones

www.dsic.upv.es/~uml

37

II. Breve Tour por UML

Ejemplos (Clase y Visibilidad)

A lum no DNI : char[10] nm ero_ex p : int nom bre : c har[50] alta() poner_nota(as ignatura : c har *, ao : int, nota : float) m atric ular(c ursos : asignatura, ao : int) listar_expediente()

www.dsic.upv.es/~uml

38

www.dsic.upv.es/~uml

19

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

II. Breve Tour por UML

Ejemplos (Asociacin)

Departam ento

dirige 0..1

direc tor 1

Profes or

www.dsic.upv.es/~uml

39

II. Breve Tour por UML

Ejemplos (Clase Asociacin)


empleador Empresa * 1..* trabajadores Empleado

Cargo nombre sueldo subordinado 1..*

superior 0..1

www.dsic.upv.es/~uml

40

www.dsic.upv.es/~uml

20

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

II. Breve Tour por UML

Ejemplos (Generalizacin)

Trabajador

{ disjunta, completa }

Directivo

Administrativo

Obrero

www.dsic.upv.es/~uml

41

II. Breve Tour por UML

Ejemplos
Motor 1..4 Piloto 1..2 Vendedor de billetes 1

1 Avin 1 n

n Vuelo n 1 n

n Reserva

{ disjunta, completa }

1 Avin militar Avin comercial Lnea area

{ disjunta, completa }

Prcticas 4

Avin de carga
www.dsic.upv.es/~uml

Avin de pasajeros

42

www.dsic.upv.es/~uml

21

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

II. Breve Tour por UML

Diagrama de Estados
alta baja

sin pr stam os
Socio nmero : int nombre : char[50] nmero_prestamos : int = 0

nm ero_prstam os = 0

prestar
alta() baja() prestar(cdigo_libro : int, fecha : date) devolver(cdigo_libro : int, fecha : date)

devol ver [ nm ero_p rst amo s = 1 ]

nm ero_prstam os > 0 con prs tam os pres tar

devolver[ nm ero_prs tam os > 1 ]

www.dsic.upv.es/~uml

43

II. Breve Tour por UML

Diagrama de Actividad
B u s c a r B e b id a [ h a y c a f ] [ hay zum o ] P o n e r c a f e n filtro A ad i r a g u a a l d e p s i to C o g e r ta z a C oger zum o [ n o h a y c a f ] [ no zumo ]

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

E ncender m q u in a / c a fe t e ra .O n C af e n p re p a ra c i n i n d i c a d o r d e fi n S e rv ir c a f B eber

www.dsic.upv.es/~uml

Prctica 5

44

www.dsic.upv.es/~uml

22

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

II. Breve Tour por UML

Diagrama Componentes
Interfaz de Terminal Control y Anlisis

Gestin de Cuentas

Rutinas de conexin

Acceso a BD

www.dsic.upv.es/~uml

45

II. Breve Tour por UML

Diagrama de Despliegue
Servidor Central Acceso a BD C Control y Anlisis C

Rutinas de Coneccion C

Terminal de Consulta Rutinas de Coneccion C

Interfaz de Terminal C

Punto de Venta

Rutinas de Coneccion C

Gestin de Cuentas C

Interfaz de Terminal C

www.dsic.upv.es/~uml

46

www.dsic.upv.es/~uml

23

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

II. Breve Tour por UML

Diagrama de Despliegue en Rational


C ont rol y An lisis Ac ceso a BD

Servidor Central Component Diagram: Components / Servidor Central


Servidor Central
R utinas de conexin

Rutinas de conexin

Punto de Venta

Punto de Venta

Terminal de Consulta

Gestin de Cuentas

Interfaz de Terminal

Terminal de Consulta

Component Diagram: Components / Punto de Venta

Component Diagram: Components / Terminal de Consulta

Rutinas de con exi n

Interfaz de Terminal

Prctica 6

www.dsic.upv.es/~uml

47

II. Breve Tour por UML

Resumen
UML define una notacin que se expresa como diagramas sirven para representar modelos/subsistemas o partes de ellos El 80 por ciento de la mayora de los problemas pueden modelarse usando alrededor del 20 por ciento de UML-- Grady Booch

www.dsic.upv.es/~uml

48

www.dsic.upv.es/~uml

24

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III El Paradigma Orientado a Objeto

www.dsic.upv.es/~uml

49

III. El Paradigma OO

Por qu la Orientacin a Objetos?


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

Mejora captura y validacin de requisitos Acerca el espacio del problema y el espacio de la solucin

Modelado integrado de propiedades estticas y dinmicas del mbito del problema

Facilita construccin, mantenimiento y reutilizacin

www.dsic.upv.es/~uml

50

www.dsic.upv.es/~uml

25

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO

Por qu la Orientacin a Objetos?


Conceptos comunes de modelado durante el anlisis, diseo e implementacin

Facilita la transicin entre distintas fases Favorece el desarrollo iterativo del sistema Disipa la barrera entre el qu y el cmo

Sin embargo, existen problemas ...

www.dsic.upv.es/~uml

51

III. El Paradigma OO

Problemas en OO
...Los conceptos bsicos de la OO se conocen desde hace dos dcadas, pero su aceptacin todava no est tan extendida como los beneficios que esta tecnologa puede sugerir ...La mayora de los usuarios de la OO no utilizan los conceptos de la OO de forma purista, como inicialmente se pretenda. Esta prctica ha sido promovida por muchas herramientas y lenguajes que intentan utilizar los conceptos en diversos grados
--Wolfgang Strigel
www.dsic.upv.es/~uml

52

www.dsic.upv.es/~uml

26

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO

Problemas en OO
Un objeto contiene datos y operaciones que operan sobre los datos, pero ... Podemos distinguir dos tipos de objetos degenerados:
Un objeto sin datos (que sera lo mismo que una biblioteca de funciones) Un objeto sin operaciones, con slo operaciones del tipo crear, recuperar, actualizar y borrar (que se correspondera con las estructuras de datos tradicionales)

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

Las aplicaciones de gestin estn constituidas mayoritariamente por objetos degenerados


www.dsic.upv.es/~uml

53

Fundamentos de Modelado OO

www.dsic.upv.es/~uml

54

www.dsic.upv.es/~uml

27

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Fundamentos de Modelado OO

Objetos
Objeto = unidad atmica que encapsula estado y comportamiento La encapsulacin en un objeto permite una alta cohesin y un bajo acoplamiento Un objeto puede caracterizar una entidad fsica (coche) o abstracta (ecuacin matemtica)

www.dsic.upv.es/~uml

55

III. El Paradigma OO: Fundamentos de Modelado OO

Objetos
En UML, un objeto se representa por un rectngulo con un nombre subrayado
Otro ob jeto

Un objeto

Otro ob jeto ms

www.dsic.upv.es/~uml

56

www.dsic.upv.es/~uml

28

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Fundamentos de Modelado OO

Objetos
Ejemplo de varios objetos relacionados:
Cuenta Corriente 101 Juan Banco de Valencia

Felipe Cuenta Corriente 114

www.dsic.upv.es/~uml

57

III. El Paradigma OO: Fundamentos de Modelado OO

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

www.dsic.upv.es/~uml

58

www.dsic.upv.es/~uml

29

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Fundamentos de Modelado OO

Clases y Objetos

www.dsic.upv.es/~uml

59

III. El Paradigma OO: Fundamentos de Modelado OO

Comportamiento
Ejemplo de interaccin:
Un Objeto Operacin 1

1: Un mensaje

Operacin 2

Otro Objeto

www.dsic.upv.es/~uml

60

www.dsic.upv.es/~uml

30

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Fundamentos de Modelado OO

Comportamiento
Los mensajes navegan por los enlaces, a priori en ambas direcciones Estado y comportamiento estn relacionados Ejemplo: no es posible aterrizar un avin si no est volando. Est volando como consecuencia de haber despegado del suelo

www.dsic.upv.es/~uml

61

III. El Paradigma OO: Fundamentos de Modelado OO

Persistencia
La persistencia de los objetos designa la capacidad de un objeto trascender en el espacio/tiempo Podremos despus reconstruirlo, es decir, cogerlo de memoria secundaria para utilizarlo en la ejecucin (materializacin del objeto) Los lenguajes OO no proponen soporte adecuado para la persistencia, la cual debera ser transparente, un objeto existe desde su creacin hasta que se destruya
www.dsic.upv.es/~uml

62

www.dsic.upv.es/~uml

31

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Fundamentos de Modelado OO

Comunicacin
Un sistema informtico puede verse como un conjunto de objetos autnomos y concurrentes que trabajan de manera coordinada en la consecucin de un fin especfico El comportamiento global se basa pues en la comunicacin entre los objetos que la componen

www.dsic.upv.es/~uml

63

III. El Paradigma OO: Fundamentos de Modelado OO

Comunicacin
Categoras de objetos:
Activos - Pasivos Cliente Servidores, Agentes

Objeto Activo: posee un hilo de ejecucin (thread) propio y puede iniciar una actividad Objeto Pasivo: no puede iniciar una actividad pero puede enviar estmulos 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
www.dsic.upv.es/~uml

64

www.dsic.upv.es/~uml

32

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Fundamentos de Modelado OO

Comunicacin
Los agentes renen las caractersticas de clientes y servidores Son la base del mecanismo de delegacin Introducen indireccin: un cliente puede comunicarse con un servidor que no conoce directamente

www.dsic.upv.es/~uml

65

III. El Paradigma OO: Fundamentos de Modelado OO

Comunicacin
Ejemplo con objeto agente:
Servidor 1 2: Un agente 1: Un cliente 3: Servidor 2

www.dsic.upv.es/~uml

66

www.dsic.upv.es/~uml

33

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Fundamentos de Modelado OO

El Concepto de Mensaje
La unidad de comunicacin entre objetos se llama mensaje
Objeto 1 1: Mensaje A Objeto 2

2: Mensaje C 4: Mensaje E Objeto 3 3: Mensaje D Objeto 4

www.dsic.upv.es/~uml

67

III. El Paradigma OO: Fundamentos de Modelado OO

Mensaje y Estmulo
Un estmulo causar la invocacin de una operacin, la creacin o destruccin de un objeto o la aparicin de una seal Un mensaje es la especificacin de un estmulo 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)

www.dsic.upv.es/~uml

68

www.dsic.upv.es/~uml

34

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Requisitos

Requisitos del software

www.dsic.upv.es/~uml

69

III. El Paradigma OO: Requisitos

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 lmites 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 implementacin Comparacin con respecto a los Diagramas de Flujo de Datos del Enfoque Estructurado
www.dsic.upv.es/~uml

70

www.dsic.upv.es/~uml

35

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Requisitos

Casos de Uso
Los Casos de Uso cubren la carencia existente en mtodos previos (OMT, Booch) en cuanto a la determinacin de requisitos Los Casos de Uso particionan el conjunto de necesidades atendiendo a la categora de usuarios que participan en el mismo El usuario debera poder entenderlos para realizar su validacin

www.dsic.upv.es/~uml

71

III. El Paradigma OO: Requisitos

Casos de Uso
Ejemplo:

Actor A

Caso de Uso A

Caso de Uso B

Actor B

www.dsic.upv.es/~uml

72

www.dsic.upv.es/~uml

36

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Requisitos

Casos de Uso
Actores:
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 aplicacin y deben ser utilizados Otros sistemas: sistemas con los que el sistema interacta

La misma persona fsica puede interpretar varios papeles como actores distintos El nombre del actor describe el papel desempeado
73

www.dsic.upv.es/~uml

III. El Paradigma OO: Requisitos

Casos de Uso
Los Casos de Uso se determinan observando y precisando, actor por actor, las secuencias de interaccin, 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

www.dsic.upv.es/~uml

74

www.dsic.upv.es/~uml

37

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Requisitos

Casos de Uso: Relaciones


UML define cuatro tipos de relacin en los Diagramas de Casos de Uso:
Comunicacin

Actor

C aso de U so

www.dsic.upv.es/~uml

75

III. El Paradigma OO: Requisitos

Casos de Uso: Relaciones


Inclusin : una instancia del Caso de Uso origen incluye tambin el comportamiento descrito por el Caso de Uso destino
<<include>>

Caso de Uso Origen

C aso de U so Desti no

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

www.dsic.upv.es/~uml

76

www.dsic.upv.es/~uml

38

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Requisitos

Casos de Uso: Relaciones


Ejemplo <<include>>:
Reintegro Cuenta Corriente <<include>>

Cliente

Verificar Operacin <<include>>

Reintegro Cuenta de Crdito

www.dsic.upv.es/~uml

77

III. El Paradigma OO: Requisitos

Casos de Uso: Relaciones


Extensin : el Caso de Uso origen extiende el comportamiento del Caso de Uso destino

<<extend>>

Caso de Uso Origen

C aso de U so Desti no

www.dsic.upv.es/~uml

78

www.dsic.upv.es/~uml

39

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Requisitos

Casos de Uso: Relaciones


Ejemplo <<extend>>:

Cliente

Solicitar Prstamo

[Tarjeta Caducada] <<extend> >

Solic itar N ueva Tarjeta

www.dsic.upv.es/~uml

79

III. El Paradigma OO: Requisitos

Casos de Uso: Relaciones


Ejemplo <<include>> y <<extend>>:

<<include>>

Ide n f i caci ti n

Cliente

Transferencia

<< e xten d >>

Transferencia en Internet
www.dsic.upv.es/~uml

80

www.dsic.upv.es/~uml

40

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Requisitos

Casos de Uso: Relaciones


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

Supply Custome r Data

Orde r Product Arrange Payment

<<include >>

<<include>>

<<include>>

the sale spe rson a sks for the c a ta l og

1 Salesperson

* Place Order

<<ex tend>>

Re que st Catalog

www.dsic.upv.es/~uml

81

III. El Paradigma OO: Requisitos

Casos de Uso: Relaciones


Herencia : el Caso de Uso origen hereda la especificacin del Caso de Uso destino y posiblemente la modifica y/o ampla

Caso de Uso Hij o

Caso de Uso Padre

www.dsic.upv.es/~uml

82

www.dsic.upv.es/~uml

41

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Requisitos

Casos de Uso: Construccin


Un caso de uso debe ser simple, inteligible, claro y conciso Generalmente hay pocos actores asociados a cada Caso de Uso Preguntas clave: cules son las tareas del actor? qu informacin 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?
www.dsic.upv.es/~uml

83

III. El Paradigma OO: Requisitos

Casos de Uso: Construccin


La descripcin del Caso de Uso comprende:
el inicio: cundo y qu actor lo produce? el fin: cundo se produce y qu valor devuelve? la interaccin actor-caso de uso: qu mensajes intercambian ambos? objetivo del caso de uso: qu lleva a cabo o intenta? cronologa y origen de las interacciones repeticiones de comportamiento: qu operaciones son iteradas? situaciones opcionales: qu ejecuciones alternativas se presentan en el caso de uso?
Prctica 7

www.dsic.upv.es/~uml

84

www.dsic.upv.es/~uml

42

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Requisitos


Identificador Nombre Descripcin CU-<id-requisito> <nombre del requisito funcional> El sistema deber comportarse tal como se describe en el siguiente caso de uso { concreto cuando <evento de activacin> , abstracto durante la realizacin de los casos de uso <lista de casos de uso>} <precondicin del caso de uso> Paso 1
Accin {El <actor> , El sistema} <accin realizada por el actor o sistema>, se realiza el caso de uso < caso de uso CU-x> Si <condicin>, {el <actor> , el sistema} <accin realizada por el actor o sistema>>, se realiza el caso de uso < caso de uso CU-x>

Precondicin Secuencia Normal

2 Postcondicin Excepciones

<postcondicin del caso de uso> Paso 1


Accin Si <condicin de excepcin>,{el <actor> , el sistema} }<accin realizada por el actor o sistema>>, se realiza el caso de uso < caso de uso CU-x>, a continuacin este caso de uso {continua, aborta} Cota de tiempo n segundos

Rendimiento Paso 1 Frecuencia esperada Importancia Urgencia Comentarios


www.dsic.upv.es/~uml

<n de veces> veces / <unidad de tiempo> {sin importancia, importante, vital} {puede esperar, hay presin, inmediatamente} <comentarios adicionales> 85

III. El Paradigma OO: Requisitos

Comentarios
En mtodos OO que carecen de una tcnica de captura de requisitos se comienza inmediatamente con la construccin del modelo de anlisis/diseo

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, maana van a cambiar. Rober C. Martin
Los requisitos NO funcionales tambin son importantes. Desempeo, cumplimiento de estndares o leyes, atributos de calidad (confiabilidad, disponibilidad, seguridad, mantenibilidad, portabilidad), etc.
www.dsic.upv.es/~uml

86

www.dsic.upv.es/~uml

43

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

Interaccin entre objetos

www.dsic.upv.es/~uml

87

III. El Paradigma OO: Interaccin entre objetos

Interaccin
Los objetos interactan para realizar colectivamente los servicios ofrecidos por las aplicaciones. Los diagramas de interaccin muestran cmo se comunican los objetos en una interaccin Existen dos tipos de diagramas de interaccin: el Diagrama de Colaboracin y el Diagrama de Secuencia

www.dsic.upv.es/~uml

88

www.dsic.upv.es/~uml

44

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Interaccin entre objetos

Mensajes
Sintaxis para mensajes: predecesor / guarda secuencia: retorno := msg(args)

www.dsic.upv.es/~uml

89

III. El Paradigma OO: Interaccin entre objetos

Diagramas de interaccin
El Diagrama de Secuencia es ms adecuados para observar la perspectiva cronolgica de las interacciones El Diagrama de Colaboracin ofrece una mejor visin espacial mostrando los enlaces de comunicacin entre objetos El D. de Colaboracin puede obtenerse automticamente a partir del correspondiente D. de Secuencia (o viceversa)
www.dsic.upv.es/~uml

90

www.dsic.upv.es/~uml

45

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Interaccin entre objetos

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 envo y la atencin se puede indicar usando una lnea oblicua
91

www.dsic.upv.es/~uml

III. El Paradigma OO: Interaccin entre objetos

Diagrama de Secuencia

www.dsic.upv.es/~uml

92

www.dsic.upv.es/~uml

46

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Interaccin entre objetos

Diagrama de Secuencia
Caller a: lift receiver {b.receiveTime - a.sendTime < 1 sec.} {c.receiveTime -b.sendTime < 10 sec.} b: dial tone Exchange Receiver

c: dial digit

...
The call is routed through the network {d.receiveTime -d.sendTime < 5 sec.} d: route

ringing tone

phone rings answer phone

----< 1 sec -----

At this point the parties can talk

stop tone

stop ringing

www.dsic.upv.es/~uml

93

III. El Paradigma OO: Interaccin entre objetos

Diagrama de Secuencia mostrando foco de control, condiciones, recursividad creacin y destruccin de objetos

www.dsic.upv.es/~uml

94

www.dsic.upv.es/~uml

47

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Interaccin entre objetos

ob 3 : C3 op( ) ob 1 : C1 [x>0] fool(x) [x<0] bar(x) doit(z ) doit(w)

ob4 : C 4

ob2 : C2

more( )

www.dsic.upv.es/~uml

95

III. El Paradigma OO: Interaccin entre objetos

Diagrama de Secuencia
Dia gram 1
ob1 : C 1 [x<0] bar(x)

Diagram 2
ob3 : C3 ob4 : C4

bar(x)
Sequence D iagram: D iagrams / D iagram 2

doit(w) Sequence Diagram: Diagrams / Diagram 1

www.dsic.upv.es/~uml

96

www.dsic.upv.es/~uml

48

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Interaccin entre objetos

Diagrama de Colaboracin
Son tiles en la fase exploratoria para identificar objetos La distribucin de los objetos en el diagrama permite observar adecuadamente la interaccin de un objeto con respecto de los dems La estructura esttica viene dada por los enlaces; la dinmica por el envo de mensajes por los enlaces
www.dsic.upv.es/~uml

97

III. El Paradigma OO: Interaccin entre objetos

Mensajes
Un mensaje desencadena una accin en el objeto destinatario Un mensaje se enva si han sido enviados los mensajes de una lista (sincronizacin):

A.1, B.3 / 1:Mensaje

A
98

www.dsic.upv.es/~uml

www.dsic.upv.es/~uml

49

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Interaccin entre objetos

Mensajes
Un mensaje se enva de manera condicionada:

[x>y] 1: Mensaje

B A

www.dsic.upv.es/~uml

99

III. El Paradigma OO: Interaccin entre objetos

Mensajes
Un mensaje que devuelve un resultado:

1: distancia:= mover(x,y) B A

Prctica 8

www.dsic.upv.es/~uml

100

www.dsic.upv.es/~uml

50

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

Clases y relaciones entre clases

www.dsic.upv.es/~uml

101

III. El Paradigma OO: Clases y relaciones entre clases

Clasificacin
El mundo real puede ser visto desde abstracciones diferentes (subjetividad) Mecanismos de abstraccin: Clasificacin / Instanciacin Composicin / Descomposicin Agrupacin / Individualizacin Especializacin / Generalizacin

La clasificacin es uno de los mecanismos de abstraccin ms utilizados


www.dsic.upv.es/~uml

102

www.dsic.upv.es/~uml

51

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Clases y relaciones entre clases

Clases
La clase define el mbito de definicin de un conjunto de objetos Cada objeto pertenece a una clase Los objetos se crean por instanciacin de las clases

www.dsic.upv.es/~uml

103

III. El Paradigma OO: Clases y relaciones entre clases

Clases: Notacin Grfica


Cada clase se representa en un rectngulo con tres compartimientos:
nombre de la clase atributos de la clase operaciones de la clase
Motocicleta color cilindrada velocidad mxima arrancar() acelerar() frenar()
www.dsic.upv.es/~uml

104

www.dsic.upv.es/~uml

52

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Clases y relaciones entre clases

Clases: Notacin Grfica


Otros ejemplos:

lista primero() ultimo() aadir() quitar() cardinalidad()

pila apilar() desapilar() cardinalidad()

www.dsic.upv.es/~uml

105

III. El Paradigma OO: Clases y relaciones entre clases

Clases: Encapsulacin
La encapsulacin presenta dos ventajas bsicas: 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 deberan ser manipulables directamente por el resto de objetos

www.dsic.upv.es/~uml

106

www.dsic.upv.es/~uml

53

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Clases y relaciones entre clases

Clases: Encapsulacin
Los niveles de encapsulacin estn heredados de los niveles de C++: (-) Privado : es el ms fuerte. Esta parte es totalmente invisible (excepto para clases friends en terminologa C++) (#) Los atributos/operaciones protegidos estn visibles para las clases friends y para las clases derivadas de la original (+) Los atributos/operaciones pblicos son visibles a otras clases (cuando se trata de atributos se est transgrediendo el principio de encapsulacin)
107

www.dsic.upv.es/~uml

III. El Paradigma OO: Clases y relaciones entre clases

Clases: Encapsulacin
Ejemplo:
Reglas de visibilidad Atributo pblico : Integer Atributo protegido : Integer Atributo privado : Integer "Operacin pblica"() "Operacin protegida"() "Operacin privada"()

www.dsic.upv.es/~uml

108

www.dsic.upv.es/~uml

54

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Clases y relaciones entre clases

Relaciones entre Clases


Los enlaces entre de objetos pueden representarse entre las respectivas clases Formas de relacin entre clases: Asociacin y Agregacin (vista como un caso particular de asociacin) Generalizacin/Especializacin Las relaciones de Agregacin y Generalizacin forman jerarquas de clases
www.dsic.upv.es/~uml

109

III. El Paradigma OO: Clases y relaciones entre clases

Asociacin
La asociacin expresa una conexin bidireccional entre objetos Una asociacin es una abstraccin de la relacin existente en los enlaces entre los objetos
Univ. de Murcia : Universidad Un enlace Antonio : Estudiante

Universidad Una asociacin

Estudiante

www.dsic.upv.es/~uml

110

www.dsic.upv.es/~uml

55

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Clases y relaciones entre clases

Asociacin
Ejemplo:
marido casado-con mujer
0..1 0..1

Persona nombre s.s.

emplea-a

Compaa trabaja-para nombre direccin *

jefe Administra

0.. 1

empleado
111

www.dsic.upv.es/~uml

III. El Paradigma OO: Clases y relaciones entre clases

Asociacin
Especificacin de multiplicidad (mnima...mxima)
1 0..1 M..N * 0..* 1..* Uno y slo uno Cero o uno Desde M hasta N (enteros naturales) Cero o muchos Cero o muchos Uno o muchos (al menos uno)

La multiplicidad mnima >= 1 establece una restriccin de existencia


112

www.dsic.upv.es/~uml

www.dsic.upv.es/~uml

56

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Clases y relaciones entre clases

Asociacin Cualificada
Aerolnea
nro_billete

0..1

Viajero

Tablero Ajedrez

fila columna

Cuadro

Reduce la multiplicidad del rol opuesto al considerar el valor del cualificador

www.dsic.upv.es/~uml

113

III. El Paradigma OO: Clases y relaciones entre clases

Agregacin
La agregacin representa una relacin parte_de entre objetos En UML se proporciona una escasa caracterizacin de la agregacin Puede ser caracterizada con precisin determinando las relaciones de comportamiento y estructura que existen entre el objeto agregado y cada uno de sus objetos componentes
114

www.dsic.upv.es/~uml

www.dsic.upv.es/~uml

57

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Clases y relaciones entre clases

Ejemplos
Window scrollbar[2] : Slider title : Header body : Panel

Window
1 1 1

scrollbar Slider

title 1 Header

body

Panel

www.dsic.upv.es/~uml

115

III. El Paradigma OO: Clases y relaciones entre clases

... Ejemplos
Person

*
1

Member-of { subset } Chair-of

* Committee *
Represents an incorporated entity.

worker

Person

employee

employer
0..1

Company

*
0..1

boss {Person.employer = Person.boss.employer}

www.dsic.upv.es/~uml

116

www.dsic.upv.es/~uml

58

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Clases y relaciones entre clases

Ejemplos
Agregacin
Polgono
1

contiene {ordenado}
3..*

Punto

* Cuenta * or *
1

Persona

Asociacin excluyente
Empresa

Usuario *

est-autorizado-en * Autorizacin prioridad privilegios camb_privil()

Estacin

Clase de asociacin
www.dsic.upv.es/~uml

117

III. El Paradigma OO: Clases y relaciones entre clases

Clases y Objetos
Diagrama de Clases y Diagramas de Objetos pertenecen a dos vistas complementarias del modelo Un Diagrama de Clases muestra la abstraccin de una parte del dominio Un Diagrama de Objetos representa una situacin concreta del dominio Las clases abstractas no son instanciadas
www.dsic.upv.es/~uml

118

www.dsic.upv.es/~uml

59

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Clases y relaciones entre clases

Generalizacin
Permite gestionar la complejidad mediante un ordenamiento taxonmico de clases Se obtiene usando los mecanismos de abstraccin de Generalizacin y/o Especializacin La Generalizacin consiste en factorizar las propiedades comunes de un conjunto de clases en una clase ms general

www.dsic.upv.es/~uml

119

III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
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 estn disponibles en sus clases hijas

www.dsic.upv.es/~uml

120

www.dsic.upv.es/~uml

60

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
Vehculo

Veihculo Terrestre

Vehculo Areo

Coche

Camin

Avin

Helicptero

www.dsic.upv.es/~uml

121

III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
La especializacin es una tcnica muy eficaz para la extensin y reutilizacin
Coche

Funcionando

Est ropeado

Restricciones predefinidas en UML:


disjunta - no disjunta total (completa) - parcial (incompleta)
122

www.dsic.upv.es/~uml

www.dsic.upv.es/~uml

61

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
La nocin de clase est prxima 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 Generalizacin y especializacin expresan relaciones de inclusin entre conjuntos

www.dsic.upv.es/~uml

123

III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
Particionamiento del espacio de objetos => Clasificacin Esttica Particionamiento del espacio de estados de los objetos => Clasificacin Dinmica En ambos casos se recomienda considerar generalizaciones/especializaciones disjuntas

www.dsic.upv.es/~uml

124

www.dsic.upv.es/~uml

62

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
Un ejemplo de Clasificacin Esttica:
Ve hcu lo Areo
{ esttica }

Avin

Helicptero

www.dsic.upv.es/~uml

125

III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
Un ejemplo de Clasificacin Dinmica:
Coche
{ dinmica }

Funcionando

Est ropeado

www.dsic.upv.es/~uml

126

www.dsic.upv.es/~uml

63

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
Extensin: Posibles instancias de una clase Intensin: Propiedades definidas en una clase
A

int(A) int(B) ext(B) ext(A)


B

www.dsic.upv.es/~uml

127

III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
Clasificacin Esttica
C0

ext(C0) = ext(Ci) completa


{ static }

ext(Ci) ext(Cj) = disjunta

C1

Cn

www.dsic.upv.es/~uml

128

www.dsic.upv.es/~uml

64

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
Clasificacin Dinmica
C0

ext(C0) = ext(Ci)
{ dinmica }

completa

extt(Ci) extt(Cj) = disjunta en t extt1(Ci) extt2(Cj) posiblemente no disjunta en diferentes instantes

C1

Cn

www.dsic.upv.es/~uml

129

III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
Ejemplo: varias especializaciones a partir de la misma clase padre, usando discriminadores:
Comercial Militar

uso Vehculo Areo

estructura

Avin
www.dsic.upv.es/~uml

Helicptero
130

www.dsic.upv.es/~uml

65

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Clases y relaciones entre clases

Clasificacin Mltiple (herencia mltiple)


Se presenta cuando una subclase tiene ms de una superclase La herencia mltiple debe manejarse con precaucin. 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 mltiple
131

www.dsic.upv.es/~uml

III. El Paradigma OO: Clases y relaciones entre clases

Herencia Mltiple
Uso disciplinado de la herencia mltiple: clasificaciones disjuntas con clases padre en hojas de jerarquas alternativas
Bpedo nro patas Con Pelos cubertura Con Plumas cobertura cobertura Con Escamas Animal comida Carnvoro comida Cuadrpedo nro patas Herbvoro

Conejo 132

www.dsic.upv.es/~uml

www.dsic.upv.es/~uml

66

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Clases y relaciones entre clases

Principio de Sustitucin
El Principio de Sustitucin 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 semntica del programa escrito en los trminos de la superclase se vea afectado.
133

www.dsic.upv.es/~uml

III. El Paradigma OO: Clases y relaciones entre clases

Principio de Sustitucin
Dado que los programadores pueden introducir cdigo en las subclases redefiniendo las operaciones, es posible introducir involuntariamente incoherencias que violen el principio de sustitucin El polimorfismo que veremos a continuacin no debera implementarse sin este principio

www.dsic.upv.es/~uml

134

www.dsic.upv.es/~uml

67

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Clases y relaciones entre clases

Polimorfismo
El trmino polimorfismo se refiere a que una caracterstica 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
135

www.dsic.upv.es/~uml

III. El Paradigma OO: Clases y relaciones entre clases

Polimorfismo
Ejemplo: todo animal duerme, pero cada clase lo hace de forma distinta
Animal dormir()

?
dormir

?
Len Oso Tigre

www.dsic.upv.es/~uml

136

www.dsic.upv.es/~uml

68

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Clases y relaciones entre clases

Polimorfismo
Animal dormir()
Dormir() { }

Len dormir()
Dormir() { sobre el vientre }
www.dsic.upv.es/~uml

Oso dormir()

Tigre dormir()

Dormir() { sobrela espalda }

Dormir() { en un rbol }
137

III. El Paradigma OO: Clases y relaciones entre clases

Polimorfismo
La bsqueda automtica del cdigo que en cada momento se va a ejecutar es fruto del enlace dinmico El cumplimiento del Principio de Sustitucin permite obtener un comportamiento y diseo coherente

Prctica 9-12

www.dsic.upv.es/~uml

138

www.dsic.upv.es/~uml

69

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

Comportamiento de objetos

www.dsic.upv.es/~uml

139

III. El Paradigma OO: Comportamiento de objetos

Diagrama de Estados
Los Diagramas de Estados representan autmatas de estados finitos, desde el p.d.v. de los estados y las transiciones Son tiles slo para los objetos con un comportamiento significativo El formalismo utilizado proviene de los Statecharts (Harel)

www.dsic.upv.es/~uml

140

www.dsic.upv.es/~uml

70

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Comportamiento de objetos

Diagrama de Estados
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

www.dsic.upv.es/~uml

141

III. El Paradigma OO: Comportamiento de objetos

Diagrama de Estados
Los D. de Estados son autmatas jerrquicos que permiten expresar concurrencia, sincronizacin y jerarquas de objetos Los D. de Estados son grafos dirigidos Los D. De Estados de UML son deterministas Los estados inicial y final estn diferenciados del resto La transicin entre estados es instantnea y se debe a la ocurrencia de un evento

www.dsic.upv.es/~uml

142

www.dsic.upv.es/~uml

71

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Comportamiento de objetos

Diagrama de Estados
Estados y Transiciones
Evento [condicin] / Accin

B
Tanto el evento como la accin se consideran instantneos

www.dsic.upv.es/~uml

143

III. El Paradigma OO: Comportamiento de objetos

Diagrama de Estados
Ejemplo de un Diagrama de Estados para la clase persona:
c ontratar en el paro perder em pleo jubilars e jubil ars e en ac tivo

jub ilado

www.dsic.upv.es/~uml

144

www.dsic.upv.es/~uml

72

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Comportamiento de objetos

Acciones
Podemos especificar la solicitud de un servicio a otro objeto como consecuencia de la transicin:
A

Evento [condicin] / OtroObjeto.Operacin

B
145

www.dsic.upv.es/~uml

III. El Paradigma OO: Comportamiento de objetos

Acciones
Se puede especificar el ejecutar una accin como consecuencia de entrar, salir, estar en un estado, o por la ocurrencia de un evento:
estado A entry: accin por entrar exit: accin por salir do: accin mientras en estado on evento: accin

www.dsic.upv.es/~uml

146

www.dsic.upv.es/~uml

73

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Comportamiento de objetos

Generalizacin de Estados
Podemos reducir la complejidad de estos diagramas usando la generalizacin 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

www.dsic.upv.es/~uml

147

III. El Paradigma OO: Comportamiento de objetos

Generalizacin de Estados
Ejemplo:
e1 B e2 e2 C

www.dsic.upv.es/~uml

148

www.dsic.upv.es/~uml

74

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Comportamiento de objetos

Generalizacin de Estados
Quedara como:
e1

Aa

b B

e2

C
www.dsic.upv.es/~uml

149

III. El Paradigma OO: Comportamiento de objetos

Generalizacin de Estados
Las transiciones de entrada deben ir hacia subestados especficos:
e1 a A e2 e0 b B

C
150

www.dsic.upv.es/~uml

www.dsic.upv.es/~uml

75

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Comportamiento de objetos

Generalizacin de Estados
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:
e1 Aa e2 e0 b B C

www.dsic.upv.es/~uml

151

III. El Paradigma OO: Comportamiento de objetos

Generalizacin de Estados
La agregacin de estados es la composicin de un estado a partir de varios estados independientes La composicin es concurrente por lo que el objeto estar en alguno de los estados de cada uno de los subestados concurrentes

www.dsic.upv.es/~uml

152

www.dsic.upv.es/~uml

76

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Comportamiento de objetos

Generalizacin de Estados
Ejemplo:

e1 e1

www.dsic.upv.es/~uml

153

III. El Paradigma OO: Comportamiento de objetos

Generalizacin de Estados
lif t r e c e iv e r / g e t d ia l to n e A c t iv e T im e o u t
d o / p la y m e s s a g e

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

d ia l d ig it ( n ) [ in c o m p le t e ] a f t e r ( 1 5 s e c .) d ia l d ig it ( n ) D ia lin g

D ia lT o n e
d o / p l a y d i a l to n e

Id le d i a l d ig it ( n )[ in v a l id ] P in n e d d ia l d ig it ( n ) [ v a lid ] / connect

c a lle r h a n g s u p / d isc o n n ec t c a l le e hang s up

In v a li d
d o / p la y m e s s a g e

c a lle e h an g s up Busy
d o / p la y b u s y t o n e

C o n n e c t in g

busy

c o n n e c te d R in g in g

T a lk in g c a lle e a n s w e r s / e n a b le speech

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

www.dsic.upv.es/~uml

154

www.dsic.upv.es/~uml

77

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Comportamiento de objetos

Historia
Por defecto, los autmatas no tienen memoria Es posible memorizar el ltimo subestado visitado para recuperarlo en una transicin entrante en el superestado que lo engloba
Tambin es posible la memorizacin para cualquiera de los subestados anidados (aparece un * junto a la H)

www.dsic.upv.es/~uml

155

III. El Paradigma OO: Comportamiento de objetos

Historia
Ejemplo:
A

d2 B in D out d1 C x y

H*
www.dsic.upv.es/~uml

156

www.dsic.upv.es/~uml

78

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Comportamiento de objetos

Historia
Ejemplo:
Enjuague Lavado Secado

cerrar puerta

abir puerta

Espera
157

www.dsic.upv.es/~uml

III. El Paradigma OO: Comportamiento de objetos

Destruccin del Objeto


La destruccin de un objeto es efectiva cuando el flujo de control del autmata alcanza un estado final no anidado La llegada a un estado final anidado implica la subida al superestado asociado, no el fin del objeto

www.dsic.upv.es/~uml

158

www.dsic.upv.es/~uml

79

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Comportamiento de objetos

Destruccin de Objeto
Ejemplo:
E n vuelo c ras h

des pegar Crear(m atric ula)

aterriz ar

E n t ierra

www.dsic.upv.es/~uml

159

III. El Paradigma OO: Comportamiento de objetos

Transiciones temporizadas
Las esperas son actividades que tienen asociada cierta duracin La actividad de espera se interrumpe cuando el evento esperado tiene lugar Este evento desencadena una transicin que permite salir del estado que alberga la actividad de espera. El flujo de control se transmite entonces a otro estado
160

www.dsic.upv.es/~uml

www.dsic.upv.es/~uml

80

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Comportamiento de objetos

Transiciones temporizadas
Ejemplo:
A

/ Abrir ranura esperar dinero entry: Mostrar mensaje exit: cerrar ranura despus de 30 segundos

anular transaccin

Depsito efectuado

B
www.dsic.upv.es/~uml

161

III. El Paradigma OO: Comportamiento de objetos

Diagrama de Actividad
El Diagrama de Actividad es una especializacin del Diagrama de Estado, organizado respecto de las acciones y usado para especificar: Un mtodo Un caso de uso Un proceso de negocio (Workflow) Las actividades se enlazan por transiciones automticas. Cuando una actividad termina se desencadena el paso a la siguiente actividad
www.dsic.upv.es/~uml

162

www.dsic.upv.es/~uml

81

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Comportamiento de objetos

Ejemplo (con swim lines)


P a s a j e ro V endedo r A i r l i ne

S o lic ita r p a s a je

V e r ific a r e x is t e n c ia v u e lo D a r d e ta lle s v u e lo I n fo r m a r a lte r n a ti v a s y p r e c io s

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

S o lic it a r pago P agar p a s a je

R e s e rv a r pla z as C o n fir m a r p la z a re s e rv a d a

E m it ir b i ll e te

www.dsic.upv.es/~uml

163

III. El Paradigma OO: Comportamiento de objetos

... Ejemplos
C u st o m er S ales S t o ckro o m

Re q ue st se rv i c e

O rd e r
[p la c e d ]

T a k e o rd e r

O rd e r
[e n te r e d ]

P la y F i l l o rd e r

O rd e r
[d e live r ed ]

D e li v e r o rd e r

O rd e r
[fille d ]

C o l l e c t o rd e r

www.dsic.upv.es/~uml

164

www.dsic.upv.es/~uml

82

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Comportamiento de objetos

... Ejemplos

Calculate total cost

[cost < $50]

Change customer's account

[cost >= $50]

Get authorization

www.dsic.upv.es/~uml

165

Componentes

www.dsic.upv.es/~uml

166

www.dsic.upv.es/~uml

83

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Componentes

Diagrama de Componentes
Los diagramas de componentes describen los elementos fsicos del sistema y sus relaciones Muestran las opciones de realizacin incluyendo cdigo fuente, binario y ejecutable

www.dsic.upv.es/~uml

167

III. El Paradigma OO: Componentes

...Diagrama de Componentes
Los componentes representan todos los tipos de elementos software que entran en la fabricacin de aplicaciones informticas. Pueden ser simples archivos, paquetes de Ada, bibliotecas cargadas dinmicamente, etc. Las relaciones de dependencia se utilizan en los diagramas de componentes para indicar que un componente utiliza los servicios ofrecidos por otro componente
www.dsic.upv.es/~uml

168

www.dsic.upv.es/~uml

84

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Componentes

...Diagrama de Componentes

www.dsic.upv.es/~uml

169

Distribucin y despliegue de Componentes

www.dsic.upv.es/~uml

170

www.dsic.upv.es/~uml

85

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Distribucin y despliegue de componentes

Diagrama de Despliegue
Los Diagramas de Despliegue muestran la disposicin fsica de los distintos nodos que componen un sistema y el reparto de los componentes sobre dichos nodos

N odo

www.dsic.upv.es/~uml

171

III. El Paradigma OO: Distribucin y despliegue de componentes

Diagrama de Despliegue
Los estereotipos permiten precisar la naturaleza del equipo:
Dispositivos Procesadores Memoria

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

www.dsic.upv.es/~uml

172

www.dsic.upv.es/~uml

86

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Distribucin y despliegue de componentes

Diagrama de Despliegue
Ejemplo de conexin entre nodos:
<<Cliente>> Terminal Punto de Venta <<Servidor>> <<TCP/IP>> Base de Datos

<<RDSI>>

Podemos distinguir tipos de nodos y connexiones por estereotipado

Control

<<RDSI>>

www.dsic.upv.es/~uml

173

III. El Paradigma OO: Distribucin y despliegue de componentes

Diagramas de Despliegue
Ejemplo:

www.dsic.upv.es/~uml

174

www.dsic.upv.es/~uml

87

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: Distribucin y despliegue de componentes

Diagramas de Despliegue
Ejemplo:
Component Diagram: Client / Client Component Diagram: videoStoreServer / videoStoreServer

Component Diagram: videoStoreServer


<<Contai ner>>

VideoStor eApplication

Component Diagram: videoStoreApplication / VideoStoreApplication Diagram

Client

<<brow ser>>

OpenSourceBrowser

Client

<<AppServer>>

videoStoreServer
<<Session>> <<Entity>>

ShoppingS ession

Catalog

DBServer
<<Entity>>

ShoppingCart

videoStoreApplication
Component Diagram: DBServer / DBServer

DBServer
VideoStoreDB

www.dsic.upv.es/~uml

175

III. El Paradigma OO

Object Constraint Language OCL

www.dsic.upv.es/~uml

176

www.dsic.upv.es/~uml

88

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: OCL

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 evaluacin de expresiones OCL no afecta el estado del sistema en ejecucin

www.dsic.upv.es/~uml

177

III. El Paradigma OO: OCL

Usos de OCL
Lenguaje de consulta Especificacin de invariantes en clases y tipos Especificacin de invariantes de tipo para Estereotipos Describir pre- y post condiciones en Operaciones y Mtodos Describir Guardas Especificar destinatarios para mensages y acciones Especificar restricciones en Operaciones Especificar reglas de derivacin para atributos

www.dsic.upv.es/~uml

178

www.dsic.upv.es/~uml

89

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: OCL

Ejemplo

www.dsic.upv.es/~uml

179

III. El Paradigma OO: OCL

Invariantes
El nmero de empleados debe ser mayor que 50
self.nmeroDeEmpleados > 50 (siendo el contexto Company) context Compaa inv: self. nmeroDeEmpleados > 50 context c:Compaa inv: c.nmeroDeEmpleados > 50 context c:Compaa inv suficientesEmpleados: c.nmeroDeEmpleados > 50

www.dsic.upv.es/~uml

180

www.dsic.upv.es/~uml

90

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: OCL

Pre- Post condiciones


Sintaxis context NombreTipo::NombreOperacin(Param1 : Tipo1, ... ):TipoRetorno pre parametroOk: param1 > ... post resultadoOk : result = ...

Ejemplo context Persona::nmina(fecha : Date) : Integer post: result = 5000

www.dsic.upv.es/~uml

181

III. El Paradigma OO: OCL

Valores iniciales y derivados


Sintaxis context NombreTipo::NombreAtributo: Tipo init: - alguna expresin representando el valor inicial context NombreTipo::NombreRolAsociacin: Tipo init: - alguna expresin representando la regla de derivacin Ejemplo context Persona::nmina : Integer init: padres.nmina->sum() * 1% derive: if menorDeEdad then padres.nmina->sum() * 1% else puesto.sueldo endif
www.dsic.upv.es/~uml

182

www.dsic.upv.es/~uml

91

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: OCL

Expresiones Let
Ejemplo context Persona inv: let ingresos : Integer = self.puesto.sueldo->sum() in if estEnParo then ingresos < 100 else ingresos >= 100 endif

www.dsic.upv.es/~uml

183

III. El Paradigma OO: OCL

Definiciones
Ejemplo context Persona def: ingresos : Integer = self.puesto.sueldo->sum() def: apodo : String = Gallito rojo def: tieneElTtulo(t : String) : Boolean = self.puesto->exists(ttulo = t)

www.dsic.upv.es/~uml

184

www.dsic.upv.es/~uml

92

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

III. El Paradigma OO: OCL

Navegacin
Ejemplos
context Compaa inv: self.director.estEnparo = false inv: self.empleado->notEmpty() context Compaa inv:self.director.edad > 40 context Persona inv:self.empleador->size() < 3 context Persona inv:self.empleador->isEmpty() context Persona inv:self.esposa->notEmpty() implies self.esposa.sexo = Sexo::mujer

www.dsic.upv.es/~uml

185

III. El Paradigma OO: OCL

Navegacin
Ejemplo
a) Los casados tienen al menos 18 aos de edad context Persona inv: self.esposa->notEmpty() implies self.esposa.edad >= 18 and self.esposo->notEmpty() implies self.esposo.edad >= 18 Una compaa tiene a lo ms 50 empleados context Compana inv: self.empleado->size() <= 50

www.dsic.upv.es/~uml

186

www.dsic.upv.es/~uml

93

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

IV Proceso de Desarrollo de SW basado en UML

www.dsic.upv.es/~uml

187

IV. Proceso de Desarrollo de SW basado en UML

Qu es un Proceso de Desarrollo de SW?


Define Quin debe hacer Qu, Cundo y Cmo debe hacerlo Requisitos nuevos o modificados Sistema nuevo o modificado

Proceso de Desarrollo de Software

No existe un proceso de software universal. Las caractersticas de cada proyecto (equipo de desarrollo, recursos, etc.) exigen que el proceso sea configurable
www.dsic.upv.es/~uml

188

www.dsic.upv.es/~uml

94

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

IV. Proceso de Desarrollo de SW basado en UML

Rational Unified Process (RUP)


Rational Unified Process
1998
Pruebas funcionales Pruebas de desempeo Gestin de requisitos Gestin de cambios y configuracin Ingeniera de Negocio Ingeniera de datos Diseo de interfaces

Rational Objectory Process


1996-1997

Objectory Process
1987-1995

UML

Enfoque Ericsson
www.dsic.upv.es/~uml

189

IV. Proceso de Desarrollo de SW basado en UML

Dos Dimensiones

www.dsic.upv.es/~uml

190

www.dsic.upv.es/~uml

95

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

IV. Proceso de Desarrollo de SW basado en UML

Fases e Hitos (Milestones)

Inception

Elaboration

Construction

Transition

Objetivos (Vision)

Arquitectura

Capacidad Operacional Inicial

Release del Producto

tiempo

www.dsic.upv.es/~uml

191

IV. Proceso de Desarrollo de SW basado en UML

Elementos en RUP
Workflows (Disciplinas)
Workflows Primarios
Business Modeling (Modado del Negocio) Requirements (Requisitos) Analysis & Design (Anlisis y Diseo) Implementation (Implementacin) Test (Pruebas) Deployment (Despliegue)

Workflows de Apoyo
Environment (Entorno) Project Management (Gestin del Proyecto) Configuration & Change Management (Gestin de Configuracin y Cambios)

www.dsic.upv.es/~uml

192

www.dsic.upv.es/~uml

96

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

IV. Proceso de Desarrollo de SW basado en UML

... Elementos en RUP


Workflow, Workflow Detail , Workers, Actividades y Artefactos Ejemplo
Workflow: Requirements Workflow Detail:Analyse the Problem

Workers Actividades
www.dsic.upv.es/~uml

Artefactos
193

IV. Proceso de Desarrollo de SW basado en 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 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

Developer workers

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

www.dsic.upv.es/~uml

194

www.dsic.upv.es/~uml

97

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

IV. Proceso de Desarrollo de SW basado en UML

... Elementos en RUP


Workers, Actividades, Artefactos
Ejemplo: System Analyst Worker

www.dsic.upv.es/~uml

195

IV. Proceso de Desarrollo de SW basado en 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
Business Modeling Set Requirements Set Analysis & Design Set Implementation Set Test Set
www.dsic.upv.es/~uml

Deployment Set Project Management Set Configuration & Change Management Set Environment Set
196

www.dsic.upv.es/~uml

98

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

IV. Proceso de Desarrollo de SW basado en UML

... Elementos en RUP


Artefactos, Workers, Actividades Ejemplo:Business Modeling Artifact Set

www.dsic.upv.es/~uml

197

IV. Proceso de Desarrollo de SW basado en UML

Caractersticas Esenciales de RUP


Proceso Dirigido por los Casos de Uso Proceso Iterativo e Incremental Proceso Centrado en la Arquitectura

www.dsic.upv.es/~uml

198

www.dsic.upv.es/~uml

99

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

IV. Proceso de Desarrollo de SW basado en UML

Proceso dirigido por los Casos de Uso


Requisitos Anlisis & Diseo Implementacin Pruebas
Casos de Uso integran el trabajo

Capturar, definir y validar los casos de uso Realizar los casos de uso Verificar que se satisfacen los casos de uso

www.dsic.upv.es/~uml

199

IV. Proceso de Desarrollo de SW basado en UML

... Proceso dirigido por los Casos de Uso


trace Caso de Uso trace Realizacin de Diseo

Realizacin de Anlisis

trace

trace Pruebas Unitarias Pruebas Funcionales

X
Caso de Prueba

[The Unified Software Development Process. I. Jacobson, G. Booch and J. Rumbaugh. Addison-Wesley, 1999]
www.dsic.upv.es/~uml

200

www.dsic.upv.es/~uml

100

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

IV. Proceso de Desarrollo de SW basado en UML

... Proceso dirigido por los Casos de Uso

www.dsic.upv.es/~uml

201

IV. Proceso de Desarrollo de SW basado en UML

Proceso Iterativo e Incremental


El ciclo de vida iterativo se basa en la evolucin de prototipos ejecutables que se muestran a los usuarios y clientes En el ciclo de vida iterativo a cada iteracin se reproduce el ciclo de vida en cascada a menor escala Los objetivos de una iteracin se establecen en funcin de la evaluacin de las iteraciones precedentes
202

www.dsic.upv.es/~uml

www.dsic.upv.es/~uml

101

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

IV. Proceso de Desarrollo de SW basado en UML

... Proceso Iterativo e Incremental


Las actividades se encadenan en una minicascada con un alcance limitado por los objetivos de la iteracin
Anlisis Diseo Codific. n veces Pruebas e Integracin
203

www.dsic.upv.es/~uml

IV. Proceso de Desarrollo de SW basado en UML

... Proceso Iterativo e Incremental


Cada iteracin comprende:
Planificar la iteracin (estudio de riesgos) Anlisis de los Casos de Uso y escenarios Diseo de opciones arquitectnicas Codificacin y pruebas. La integracin del nuevo cdigo con el existente de iteraciones anteriores se hace gradualmente durante la construccin Evaluacin de la entrega ejecutable (evaluacin del prototipo en funcin de las pruebas y de los criterios definidos) Preparacin de la entrega (documentacin e instalacin del prototipo)
204

www.dsic.upv.es/~uml

www.dsic.upv.es/~uml

102

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

IV. Proceso de Desarrollo de SW basado en UML

Proceso Iterativo e Incremental


Enfoque Secuencial

Enfoque Iterativo e Incremental


205

www.dsic.upv.es/~uml

IV. Proceso de Desarrollo de SW basado en UML

... Proceso Iterativo e Incremental


Grado de Finalizacin de Artefactos

www.dsic.upv.es/~uml

206

www.dsic.upv.es/~uml

103

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

IV. Proceso de Desarrollo de SW basado en UML

Proceso Centrado en la Arquitectura


Arquitectura de un sistema es la organizacin o estructura de sus partes ms relevantes Un arquitectura ejecutable es una implementacin parcial del sistema, construida para demostrar algunas funciones y propiedades RUP establece refinamientos sucesivos de una arquitectura ejecutable, construida como un prototipo evolutivo
Inception Elaboration Construction Transition

Architecture
www.dsic.upv.es/~uml

207

IV. Proceso de Desarrollo de SW basado en UML

Fases, Release, Base Line, Generacin


ciclo de desarrollo ciclo de evolucin

release
(producto al final de una iteracin)
www.dsic.upv.es/~uml

base line
(release asociada a un hito)

generacin
(release final de un ciclo de desarrollo)
208

www.dsic.upv.es/~uml

104

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

IV. Proceso de Desarrollo de SW basado en UML

Esfuerzo y dedicacin por Fases en RUP

Inicio Esfuerzo Tiempo Dedicado 5% 10 %

Elaboracin 20 % 30 %

Construccin 65 % 50 %

Transicin 10% 10%

www.dsic.upv.es/~uml

209

IV. Proceso de Desarrollo de SW basado en UML

Distribucin de Recursos por Fases en RUP

www.dsic.upv.es/~uml

210

www.dsic.upv.es/~uml

105

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

V Conclusiones

www.dsic.upv.es/~uml

211

V. Conclusiones

Claves en el Desarrollo de SI
Notacin UML

Herramientas p.e. Rational Rose Poseidon


www.dsic.upv.es/~uml

Proceso p.e. Rational Unified Process Mtrica 3.0 o XP


212

www.dsic.upv.es/~uml

106

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

V. Conclusiones

Modelado de SI: Algunas Reflexiones


Cul es el propsito de nuestros modelos?
Documentar (a posteriori) Comunicar ideas y estudiar alternativas Tomar decisiones de anlisis/diseo que dirijan la implementacin Generar parcial o totalmente una implementacin a partir de los modelos

Pragmatismo, los modelos deben ser tiles. Principio bsico: Sencillez y Elegancia Gestin de modelos

Distintos nivel de abstraccin, expresados en diferentes modelos Seguimiento de transformaciones durante el proceso (Traceability) Sincronizacin de modelos

Dificultades para la introduccin de notaciones y herramientas de modelado. La importancia del Proceso de Desarrollo
www.dsic.upv.es/~uml

213

V. Conclusiones

Adaptabilidad al contexto del proyecto

www.dsic.upv.es/~uml

214

www.dsic.upv.es/~uml

107

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

V. Conclusiones

Tendencias
UML: actualmente la notacin ms detallada, amplia y consensuada para modelar software orientado a objetos Dificultades actuales para derivar de forma directa una implementacin a partir de los modelos UML
Entornos de programacin visual y el paradigma OO subyacente Utilizacin de bases de datos relacionales Arquitectura de 3 capas Frameworks de persistencia para materializar y desmaterializar objetos

Metodologas de desarrollo de software y el papel que juega UML en ellas


Modelado gil Modelado opcional y/o desechable (en Metodologas giles)
www.dsic.upv.es/~uml

215

V. Conclusiones

... Tendencias
Nuevas versiones de UML, uff! Extensiones de UML (SysML, www.sysml.org) Generacin automtica de cdigo 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 generacin de cdigo en dominios especficos (ms 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)

www.dsic.upv.es/~uml

216

www.dsic.upv.es/~uml

108

Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

Diagramas en UML 2.0

www.dsic.upv.es/~uml

217

V. Conclusiones

Bibliografa Adicional
UML
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/

www.dsic.upv.es/~uml

218

www.dsic.upv.es/~uml

109

Das könnte Ihnen auch gefallen