Vous êtes sur la page 1sur 185

Ingeniera de Software Clase 6

UML

UNPSJB - 2005

Ingeniera de Software - Clase 6

Contenido de la clase 6

Desarrollo de soft OO usando UML


Introduccin Modelado del soft UML (Conceptos bsicos) Paradigma OO Fundamentos Diagramas de CU Diagramas de Interacciones Diagramas de clase Diagramas de estado/actividad Diagrama de componentes Diagrama de despliegue

UNPSJB - 2005

Ingeniera de Software - Clase 6

Bibliografa

UML

www.dsic.upv.es/~uml

Patricio Letelier Torres UPV (politcnica de Valencia)

UML Gota a Gota (Fowler) UML (Booch, Rumbaugh, Jacobson) Instant UML (Muller) Webs

www.omg.org/uml

UNPSJB - 2005

Ingeniera de Software - Clase 6

Modelado del software

www.dsic.upv.es/~uml

Ejemplos

Construccin de una cucha para un perro

Puede hacerlo una sola persona Requiere:

Modelado Proceso bien definido Herramientas ms sofisticadas

Modelado mnimo Proceso simple Herramientas simples

Construccin de un rascacielos Contexto de


desarrollo

Construccin de una casa

UNPSJB - 2005

Construida eficientemente y en un tiempo razonable de un equipo Ingeniera de Software - Clase 6

Determinar configuracin del proceso Recursos necesarios

Herramientas ms sofisticadas an.


4

Claves en Desarrollo de SI
Notacin

www.dsic.upv.es/~uml

Herramientas

Proceso

UNPSJB - 2005

Ingeniera de Software - Clase 6

www.dsic.upv.es/~uml

Abstraccin - Modelado Visual (MV)


El modelado captura las partes esenciales del sistema
Orden Item

envo

Proceso de Negocios Sistema Computacional


UNPSJB - 2005 Ingeniera de Software - Clase 6 6

Qu es UML?

www.dsic.upv.es/~uml

UML = Unified Modeling Language Un lenguaje de propsito general para el modelado orientado a objetos Documento OMG Unified Modeling Language Specification UML combina notaciones provenientes desde:

Modelado Modelado Modelado Modelado

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


7

UNPSJB - 2005

Ingeniera de Software - Clase 6

Motivacin

www.dsic.upv.es/~uml

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

UNPSJB - 2005

Ingeniera de Software - Clase 6

Historia de UML

www.dsic.upv.es/~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

UNPSJB - 2005

Ingeniera de Software - Clase 6

Historia de UML
www.dsic.upv.es/~uml 2001 UML 2.0

2000
1999 1998 Nov 97
UML aprobado por el OMG

UML 1.4 UML 1.3


Revisiones menores

UML 1.2

UNPSJB - 2005

Ingeniera de Software - Clase 6

10

www.dsic.upv.es/~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

UNPSJB - 2005

Ingeniera de Software - Clase 6

11

Aspectos Novedosos

www.dsic.upv.es/~uml

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

UNPSJB - 2005

Ingeniera de Software - Clase 6

12

Inconvenientes en UML

www.dsic.upv.es/~uml

Definicin del proceso de desarrollo usando UML. UML no es una metodologa Falta integracin con respecto de otras tcnicas tales como patrones de diseo, interfaces de usuario, documentacin, etc. Monopolio de conceptos, tcnicas y mtodos en torno a UML

UNPSJB - 2005

Ingeniera de Software - Clase 6

13

Perspectivas de UML

www.dsic.upv.es/~uml

UML ser el lenguaje de modelado orientado a objetos estndar predominante los prximos aos Razones:

Evidencias:

Participacin de metodlogos influyentes Participacin de importantes empresas Aceptacin del OMG como notacin estndar Herramientas que proveen la notacin UML Edicin de libros Congresos, cursos, etc.

UNPSJB - 2005

Ingeniera de Software - Clase 6

14

Modelos y Diagramas

www.dsic.upv.es/~uml

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

UNPSJB - 2005

Ingeniera de Software - Clase 6

15

... Modelos y Diagramas

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

UNPSJB - 2005

Ingeniera de Software - Clase 6

16

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

www.dsic.upv.es/~uml

Diagrama de Estados Diagrama de Actividad Diagrama de Secuencia Diagrama de Colaboracin Diagrama de Componentes Diagrama de Despliegue

Diagramas de Interaccin

Diagramas de implementacin

UNPSJB - 2005

Ingeniera de Software - Clase 6

17

... Diagramas de UML


Use Case Use Case Diagramas de Diagrams Diagrams Casos de Uso State State Diagramas de Diagrams Diagrams Clases

www.dsic.upv.es/~uml

Los diagramas expresan grficamente partes de un modelo


Use Case Use Case Diagramas de Diagrams Diagrams Secuencia Scenario Scenario Diagramas de Diagrams Diagrams Colaboracin Scenario Scenario Diagramas de Diagrams Diagrams Estados
UNPSJB - 2005

State State Diagramas de Diagrams Diagrams Objetos State State Diagramas de Diagrams Diagrams Componentes

Modelo

Diagramas de Actividad

Component Component Diagrams Diagramas Diagrams de

Distribucin

Ingeniera de Software - Clase 6

18

Organizacin de Modelos

www.dsic.upv.es/~uml

4+1 vistas de Kruchten (1995)


Vista de Realizacin

Vista Lgica

Vista de los Casos de Uso


Vista de Procesos

Vista de Distribucin

UNPSJB - 2005

Este enfoque sigue el browser de Rational Rose

Ingeniera de Software - Clase 6

19

www.dsic.upv.es/~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)

UNPSJB - 2005

Ingeniera de Software - Clase 6

20

Paquetes en UML

www.dsic.upv.es/~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

UNPSJB - 2005

Ingeniera de Software - Clase 6

21

Paquetes en UML

www.dsic.upv.es/~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
Ingeniera de Software - Clase 6 22

UNPSJB - 2005

Paquetes en UML

www.dsic.upv.es/~uml

Todas las clases 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
Ingeniera de Software - Clase 6 23

UNPSJB - 2005

Paquetes en UML

www.dsic.upv.es/~uml

UNPSJB - 2005

Ingeniera de Software - Clase 6

24

Diagrama de Casos de Uso

www.dsic.upv.es/~uml

Casos de Uso es una tcnica para capturar informacin de cmo un sistema o negocio Supervisor trabaja, o de cmo se desea que trabaje No pertenece estrictamente al enfoque orientado a Administrativo objeto, es una tcnica para captura de requisitos

Verificar Situacin del Cliente

Preparar Catlogo

Sistema Inventario

Tipos de Venta

UNPSJB - 2005

Ingeniera de Software - Clase 6

25

Ejemplos
En el paquete tipos de venta:

www.dsic.upv.es/~uml

Otro Ejemplo

Venta Normal

Cliente

Solicitar Prstamo

[Tarjeta Caducada]

Vendedor

Venta en Rebajas

<<extend>>

Solicitar Nueva Tarjeta

Venta en Ofertas

UNPSJB - 2005

Ingeniera de Software - Clase 6

26

Ejemplos

www.dsic.upv.es/~uml

Reintegro Cuenta Corriente

<<include>>

Cliente

Verificar Operacin <<include>>

Reintegro Cuenta de Crdito

UNPSJB - 2005

Ingeniera de Software - Clase 6

27

Diagrama de Secuencia

www.dsic.upv.es/~uml

: Encargado

:WInPrstamos

:Socio

:Video

:Prstamo

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

registrar prstamo entregar recibo

UNPSJB - 2005

Ingeniera de Software - Clase 6

28

Diagrama de Colaboracin
:Socio

www.dsic.upv.es/~uml

:Video 2: verificar situacin socio

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

3: verificar situacin video

4: registrar prstamo

:Prstamo
UNPSJB - 2005 Ingeniera de Software - Clase 6 29

Diagrama de Clases

www.dsic.upv.es/~uml

El Diagrama de Clases es el diagrama principal para el anlisis y diseo 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 aporta informacin para establecer las clases, objetos, atributos y operaciones

UNPSJB - 2005

Ingeniera de Software - Clase 6

30

Ejemplos

www.dsic.upv.es/~uml

(Clase y Visibilidad)
Departamento

Asociacin
dirige 0..1 director 1 Profesor

UNPSJB - 2005

Ingeniera de Software - Clase 6

31

Ejemplos (Clase Asociacin) www.dsic.upv.es/~uml


empleador Empresa * 1..* trabajadores Empleado

Cargo nombre sueldo subordinado 1..*

superior 0..1

UNPSJB - 2005

Ingeniera de Software - Clase 6

32

Ejemplos (Generalizacin) www.dsic.upv.es/~uml

Trabajador

{ disjunta, completa }

Directivo

Administrativo

Obrero

UNPSJB - 2005

Ingeniera de Software - Clase 6

33

Ejemplos
Motor 1..4 Piloto 1..2

www.dsic.upv.es/~uml

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 }

Avin de carga

Avin de pasajeros

UNPSJB - 2005

Ingeniera de Software - Clase 6

34

Diagrama de Estados
alta

www.dsic.upv.es/~uml

baja nmero_prstamos = 0

sin prstamos
Socio nmero : int nombre : char[50] nmero_prestamos : int = 0 alta() baja() prestar(cdigo_libro : int, fecha : date) devolver(cdigo_libro : int, fecha : date)

prestar

devolver[ nmero_prstamos = 1 ]

nmero_prstamos > 0 con prstamos prestar

devolver[ nmero_prstamos > 1 ]


UNPSJB - 2005 Ingeniera de Software - Clase 6 35

Diagrama de Actividad
Buscar Bebida
[no hay caf]

www.dsic.upv.es/~uml

[no zumo] [hay zumo]

[hay caf

Poner caf en filtro

Aadir agua al depsito Agarrar taza Agarrar zumo

Poner filtro en mquina

Encender mquina / cafetera.On Caf en preparacin indicador de fin Servir caf


UNPSJB - 2005 Ingeniera de Software - Clase 6

Beber
36

Otro Ejemplo (con swim lines)


Pasajero Vendedor
Solicitar pasaje Verificar existencia vuelo

www.dsic.upv.es/~uml

Airline

Dar detalles vuelo Informar alternativas y precios Seleccionar vuelo

Solicitar pago Reservar plazas Pagar pasaje Emitir billete


UNPSJB - 2005 Ingeniera de Software - Clase 6 37

Confirmar plaza reservada

Diagrama Componentes

www.dsic.upv.es/~uml

Control y Anlisis Interf az de Terminal Comment Comment

Gestin de Cuentas Comment

Rutinas de Coneccion Comment

Acceso a BD Comment

UNPSJB - 2005

Ingeniera de Software - Clase 6

38

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

www.dsic.upv.es/~uml

Rutinas de Coneccion Comment

Terminal de Consulta Rutinas de Coneccion Comment

Interfaz de Terminal Comment

Punto de Venta

Rutinas de Coneccion Comment

Gestin de Cuentas Comment

Interfaz de Terminal Comment

UNPSJB - 2005

Ingeniera de Software - Clase 6

39

Resumen

www.dsic.upv.es/~uml

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

UNPSJB - 2005

Ingeniera de Software - Clase 6

40

UML
Paradigma OO Diagramas

UNPSJB - 2005

Ingeniera de Software - Clase 6

41

www.dsic.upv.es/~uml Por qu la Orientacin a Objetos?

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

Modelado integrado de propiedades estticas y dinmicas del mbito del problema

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

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

Facilita construccin, mantenimiento y reutilizacin

Sin embargo, existen problemas ...


42

UNPSJB - 2005

Ingeniera de Software - Clase 6

Problemas en OO

www.dsic.upv.es/~uml

...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
UNPSJB - 2005 Ingeniera de Software - Clase 6 43

Problemas en OO

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 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
Ingeniera de Software - Clase 6 44

UNPSJB - 2005

Reflexiones respecto de Situacin Actual de Desarrollo de SI


Anlisis
Enfoque Estructurado

Diseo
DEs
Modelo

Implementacin
Entornos de Programacin Visual

DFDs
E-R

Diagramas de Casos de Uso Diagramas de Actividad Diagramas de Secuencia Diagramas de Colaboracin d

Relacional
Modelo Relacional !!

Enfoque OO

Diagrama de Clases Diagrama de Estados Diagramas de Actividad


Ingeniera de Software - Clase 6

Bases de Datos (Objeto-) Relacionales

UNPSJB - 2005

45

Diagramas de Casos de Uso

UNPSJB - 2005

Ingeniera de Software - Clase 6

46

Casos de Uso

www.dsic.upv.es/~uml

Comparacin con respecto a los Los Casos de Uso (Ivar Diagramas de Flujo de Datos del Jacobson) describen bajo Enfoque Estructurado la forma de acciones y Un caso de uso es una funcin reacciones el atmica ofrecida por el sistema al entorno (actores) comportamiento de un DFD puede ser detallada en un sistema desde el p.d.v. del DFD Hijo usuario Caso Uso y Proceso igual Permiten definir los lmites modelado, pero caso de uso del sistema y las expresa funcionalidad mediante interaccin de actores relaciones entre el sistema Caso de uno no modela detalle y el entorno funcional interno Los Casos de Uso son Relaciones de extensin y descripciones de la generalizacin de CU no tienen igual en DFD funcionalidad del sistema independientes de la implementacin

UNPSJB - 2005

Ingeniera de Software - Clase 6

47

Casos de Uso

www.dsic.upv.es/~uml

Los Casos de Uso cubren la carencia existente en mtodos previos (OMT, Booch) en cuanto a la determinacin de requisitos Actor A Los Casos de Uso particionan el conjunto de necesidades atendiendo a la categora de usuarios que participan en el mismo Estn basado en el lenguaje natural, es decir, es accesible por los usuarios
Ingeniera de Software - Clase 6

Caso de Uso A

Caso de Uso B

Actor B

UNPSJB - 2005

48

Casos de Uso

www.dsic.upv.es/~uml

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
Ingeniera de Software - Clase 6 49

UNPSJB - 2005

Casos de Uso

www.dsic.upv.es/~uml

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
Ingeniera de Software - Clase 6 50

UNPSJB - 2005

Casos de Uso: Relacioneswww.dsic.upv.es/~uml

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

Comunicacin

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

Caso de Uso Origen

Caso de Uso Destino

Actor

Caso de Uso

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


51

UNPSJB - 2005

Ingeniera de Software - Clase 6

www.dsic.upv.es/~uml Casos de Uso: Relaciones

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

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

<<extend>>

Caso de Uso Origen

Caso de Uso Destino

Caso de Uso Hijo

Caso de Uso Padre

UNPSJB - 2005

Ingeniera de Software - Clase 6

52

www.dsic.upv.es/~uml Casos de Uso: Relaciones

Ejemplo:
<<include>> Identificacin

Cliente

Transferencia

<<extend>>

Transferencia en Internet

UNPSJB - 2005

Ingeniera de Software - Clase 6

53

www.dsic.upv.es/~uml Casos de Uso: Relaciones

Ejemplo:

UNPSJB - 2005

Ingeniera de Software - Clase 6

54

www.dsic.upv.es/~uml 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?

UNPSJB - 2005

Ingeniera de Software - Clase 6

55

www.dsic.upv.es/~uml 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?

UNPSJB - 2005

Ingeniera de Software - Clase 6

56

RF- <id del requisito> Versin Autores Fuentes Objetivos asociados Descripcin

Precondicin Secuencia Normal

Postcondicin Excepciones

Rendimiento

UNPSJB - 2005

Frecuencia esperada Importancia Urgencia Comentarios

Ingeniera de Software - Clase 6

<nombre del requisito funcional> <numero de versin y fecha> <autor> <fuente de la versin actual> <nombre del objetivo> 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 Accin 1 {El <actor> , El sistema} <accin realizada por el actor o sistema>, se realiza el caso de uso < caso de uso RF-x> 2 Si <condicin>, {el <actor> , el sistema} <accin realizada por el actor o sistema>>, se realiza el caso de uso < caso de uso RF-x> 3 4 5 6 n <postcondicin del caso de uso> Paso Accin 1 Si <condicin de excepcin>,{el <actor> , el sistema} }<accin realizada por el actor o sistema>>, se realiza el caso de uso < caso de uso RF-x>, a continuacin este caso de uso {continua, aborta} 2 3 Paso Cota de tiempo 1 n segundos 2 n segundos <n de veces> veces / <unidad de tiempo> {sin importancia, importante, vital} {puede esperar, hay presin, inmediatamente} <comentarios adicionales>

57

Modelo de Casos de Uso y www.dsic.upv.es/~uml Modelo Conceptual (Anlisis)

La especificacin de cada caso de uso y los correspondientes D. de Interaccin establecen el vnculo con el modelo conceptual En mtodos OO que carecen de una tcnica de captura de requisitos se comienza inmediatamente con la construccin del modelo conceptual (anlisis)

UNPSJB - 2005

Ingeniera de Software - Clase 6

58

Diagramas de Interaccin

UNPSJB - 2005

Ingeniera de Software - Clase 6

59

Interaccin

www.dsic.upv.es/~uml

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 Mensajes:
Sintaxis para mensajes Predecesor/fuarda secuencia:retorno := msg (args)

UNPSJB - 2005

Ingeniera de Software - Clase 6

60

Diagramas de interaccin

www.dsic.upv.es/~uml

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)
Ingeniera de Software - Clase 6 61

UNPSJB - 2005

Diagrama de Secuencia

www.dsic.upv.es/~uml

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
Ingeniera de Software - Clase 6 62

UNPSJB - 2005

www.dsic.upv.es/~uml Diagrama de Secuencia

UNPSJB - 2005

Ingeniera de Software - Clase 6

63

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

UNPSJB - 2005

Ingeniera de Software - Clase 6

64

www.dsic.upv.es/~uml Diagrama de Secuencia

UNPSJB - 2005

Ingeniera de Software - Clase 6

65

Diagrama de Colaboracinwww.dsic.upv.es/~uml

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

UNPSJB - 2005

Ingeniera de Software - Clase 6

66

Mensajes

www.dsic.upv.es/~uml

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

Un mensaje se enva de manera condicionada:


[x>y] 1: Mensaje

B A

A.1, B.3 / 1:Mensaje

A
UNPSJB - 2005 Ingeniera de Software - Clase 6 67

Mensajes

www.dsic.upv.es/~uml

Un mensaje que devuelve un resultado:


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

UNPSJB - 2005

Ingeniera de Software - Clase 6

68

Diagrama de Clases

UNPSJB - 2005

Ingeniera de Software - Clase 6

69

Clasificacin

www.dsic.upv.es/~uml

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

UNPSJB - 2005

Ingeniera de Software - Clase 6

70

Clases

www.dsic.upv.es/~uml

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

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 maxima arrancar acelerar frenar

UNPSJB - 2005

Ingeniera de Software - Clase 6

71

Clases: Notacin Grfica

www.dsic.upv.es/~uml

Otros ejemplos:
lista

pila
primero ultimo aadir quitar cardinalidad

apilar desapilar cardinalidad

UNPSJB - 2005

Ingeniera de Software - Clase 6

72

Clases: Encapsulacin

www.dsic.upv.es/~uml

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

UNPSJB - 2005

Ingeniera de Software - Clase 6

73

Clases: Encapsulacin (Recordar)

www.dsic.upv.es/~uml

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)

UNPSJB - 2005

Ingeniera de Software - Clase 6

74

Clases: Encapsulacin

www.dsic.upv.es/~uml

Ejemplo:
Reglas de visibilidad + Atributo pblico : int # Atributo protegido : int - Atributo privado : int + "Operacin pblica" # "Operacin protegida" - "Operacin privada"

UNPSJB - 2005

Ingeniera de Software - Clase 6

75

Relaciones entre Clases

www.dsic.upv.es/~uml

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

UNPSJB - 2005

Ingeniera de Software - Clase 6

76

Asociacin

www.dsic.upv.es/~uml

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

Univ. de Murcia:Universidad

Universidad Una asociacin

Estudiante

UNPSJB - 2005

Ingeniera de Software - Clase 6

77

Asociacin

www.dsic.upv.es/~uml

Ejemplo:
marido

casado-con 0.. 1 mujer jefe 0.. 1 Administra

0.. 1

Persona * nombre s. s.

trabaja-para
emplea-a

* Compaa
nombre direccin

empleado

UNPSJB - 2005

Ingeniera de Software - Clase 6

78

Asociacin

www.dsic.upv.es/~uml

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

UNPSJB - 2005

Ingeniera de Software - Clase 6

79

Asociacin Cualificada
* 0..1

www.dsic.upv.es/~uml

Aerolnea

nro_billete

Viajero

Tablero Ajedrez

fila columna

Cuadro

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

UNPSJB - 2005

Ingeniera de Software - Clase 6

80

Agregacin

www.dsic.upv.es/~uml

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

UNPSJB - 2005

Ingeniera de Software - Clase 6

81

www.dsic.upv.es/~uml Agregacin: Caracterizacin

Caracterizaciones relacionadas con la multiplicidad


Mxima 1 disjunto > 1 no disjunto

Multiplicidad Mnima Objeto Agregado 0 flexible > 0 estricta Multiplicidad (mn , mx )


a a

Multiplicidad Mnima 0 nulos permitidos (mnc, > 0 nulos no permitidos

mxc)

Multiplicidad Mxima 1 univaluado > 1 multivaluado

Objeto Componente
UNPSJB - 2005 Ingeniera de Software - Clase 6 82

www.dsic.upv.es/~uml ... Agregacin: Caracterizacin

En UML slo se distingue entre agregacin y composicin (aggregate composition), siendo esta ltima disjunta y estricta Adems se una agregacin se podra caracterizar segn:

Puede el objeto parte comunicarse directamente con objetos externos al objeto agregado? No => inclusiva Si => no inclusiva Puede cambiar La composicin del objeto agregado? Si => dinmica No => esttica
Ingeniera de Software - Clase 6

UNPSJB - 2005

83

Ejemplos

www.dsic.upv.es/~uml

UNPSJB - 2005

Ingeniera de Software - Clase 6

84

... Ejemplos

www.dsic.upv.es/~uml

UNPSJB - 2005

Ingeniera de Software - Clase 6

85

Ejemplos
Agregacin
Polgono
1 contiene 3.. *

www.dsic.upv.es/~uml

{ordenado}

Punto

Persona Empresa
*

Cuenta
*

or
1

Asociacin excluyente

Usuario

est-autorizado-en

Estacin

Clase de asociacin
UNPSJB - 2005

Ingeniera de Software - Clase 6

Autorizacin prioridad privilegios camb_privil

86

Clases y Objetos

www.dsic.upv.es/~uml

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

UNPSJB - 2005

Ingeniera de Software - Clase 6

87

Generalizacin

www.dsic.upv.es/~uml

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

UNPSJB - 2005

Ingeniera de Software - Clase 6

88

... Generalizacin

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

La Generalizacin y Especializacin son equivalentes en cuanto al resultado: la jerarqua y herencia establecidas Generalizacin y Especializacin no son operaciones reflexivas ni simtricas pero s transitivas

UNPSJB - 2005

Ingeniera de Software - Clase 6

89

... Generalizacin
Vehculo

www.dsic.upv.es/~uml

Veihculo Terrestre

Vehculo Areo

Coche

Camin

Avin

Helicptero

UNPSJB - 2005

Ingeniera de Software - Clase 6

90

... Generalizacin

www.dsic.upv.es/~uml

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


Coche

Funcionando Estropeado Restricciones predefinidas en UML:

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

UNPSJB - 2005

Ingeniera de Software - Clase 6

91

... Generalizacin

www.dsic.upv.es/~uml

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

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

UNPSJB - 2005

Ingeniera de Software - Clase 6

92

... Generalizacin

www.dsic.upv.es/~uml

Un ejemplo de Clasificacin Esttica:


Vehculo Areo

{ esttica }

Avin

Helicptero

UNPSJB - 2005

Ingeniera de Software - Clase 6

93

... Generalizacin

www.dsic.upv.es/~uml

Un ejemplo de Clasificacin Dinmica:


Coche
{ dinmica }

Funcionando

Estropeado

UNPSJB - 2005

Ingeniera de Software - Clase 6

94

... Generalizacin

www.dsic.upv.es/~uml

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

int(A) int(B)
ext(B) ext(A)
B
UNPSJB - 2005 Ingeniera de Software - Clase 6 95

... Generalizacin

www.dsic.upv.es/~uml

Clasificacin Esttica
C0

ext(C0) = ext(Ci) completa


{ static }

ext(Ci) ext(Cj) = disjunta

C1

Cn

UNPSJB - 2005

Ingeniera de Software - Clase 6

96

... Generalizacin

www.dsic.upv.es/~uml

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

UNPSJB - 2005

Ingeniera de Software - Clase 6

97

... Generalizacin

www.dsic.upv.es/~uml

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


Comercial Militar

uso Vehculo Areo

estructura

Avin
UNPSJB - 2005

Helicptero
98

Ingeniera de Software - Clase 6

Clasificacin Mltiple (herencia mltiple)

www.dsic.upv.es/~uml

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

UNPSJB - 2005

Ingeniera de Software - Clase 6

99

Herencia Mltiple

www.dsic.upv.es/~uml

Uso disciplinado de la herencia mltiple: clasificaciones disjuntas con clases padre en hojas de jerarquas alternativas
Bpedo nro patas Con Pelos Cuadrpedo nro patas Herbvoro

cubertura
Con Plumas cobertura cobertura Con Escamas Animal

comida

comida Carnvoro

Conejo

UNPSJB - 2005

Ingeniera de Software - Clase 6

100

Principio de Sustitucin

www.dsic.upv.es/~uml

El Principio de Sustitucin de Liskow (1987) 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.
Ingeniera de Software - Clase 6 101

UNPSJB - 2005

Principio de Sustitucin www.dsic.upv.es/~uml

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

UNPSJB - 2005

Ingeniera de Software - Clase 6

102

Polimorfismo

www.dsic.upv.es/~uml

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
Ingeniera de Software - Clase 6 103

UNPSJB - 2005

Polimorfismo

www.dsic.upv.es/~uml

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

?
dormir

?
Len Oso Tigre

UNPSJB - 2005

Ingeniera de Software - Clase 6

104

Polimorfismo
Animal dormir()
} Dormir() {

www.dsic.upv.es/~uml

Len
dormir()
Dormir() { sobre el vientre }
UNPSJB - 2005

Oso
dormir()
Dormir() { sobrela espalda }

Tigre
dormir()
Dormir() { en un rbol }
105

Ingeniera de Software - Clase 6

Polimorfismo

www.dsic.upv.es/~uml

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

UNPSJB - 2005

Ingeniera de Software - Clase 6

106

Diagrama de Estados

UNPSJB - 2005

Ingeniera de Software - Clase 6

107

Diagrama de Estados

www.dsic.upv.es/~uml

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)

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
108

UNPSJB - 2005

Ingeniera de Software - Clase 6

Diagrama de Estados

www.dsic.upv.es/~uml

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
Ingeniera de Software - Clase 6 109

UNPSJB - 2005

Diagrama de Estados

www.dsic.upv.es/~uml

Estados y Transiciones
Evento [condicin] / Accin

B
Tanto el evento como la accin se consideran instantneos

UNPSJB - 2005

Ingeniera de Software - Clase 6

110

Diagrama de Estados

www.dsic.upv.es/~uml

Ejemplo de un Diagrama de Estados para la clase persona:


contratar en el paro perder empleo jubilarse jubilarse jubilado en activo

UNPSJB - 2005

Ingeniera de Software - Clase 6

111

Acciones

www.dsic.upv.es/~uml

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


A

Evento [condicin] / OtroObjeto.Operacin

B
UNPSJB - 2005 Ingeniera de Software - Clase 6 112

Acciones

www.dsic.upv.es/~uml

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

UNPSJB - 2005

Ingeniera de Software - Clase 6

113

www.dsic.upv.es/~uml 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

UNPSJB - 2005

Ingeniera de Software - Clase 6

114

www.dsic.upv.es/~uml Generalizacin de Estados

Ejemplo:
A e1 B

e2
e2 C

UNPSJB - 2005

Ingeniera de Software - Clase 6

115

www.dsic.upv.es/~uml Generalizacin de Estados

Quedara como:
Aa
e1 b B

e2

C
UNPSJB - 2005 Ingeniera de Software - Clase 6 116

www.dsic.upv.es/~uml Generalizacin de Estados

Las transiciones de entrada deben ir hacia subestados especficos:


e1 a A e2 e0 b B

C
UNPSJB - 2005 Ingeniera de Software - Clase 6 117

www.dsic.upv.es/~uml 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

UNPSJB - 2005

Ingeniera de Software - Clase 6

118

www.dsic.upv.es/~uml 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

UNPSJB - 2005

Ingeniera de Software - Clase 6

119

www.dsic.upv.es/~uml Generalizacin de Estados

Ejemplo:

e1 e1

UNPSJB - 2005

Ingeniera de Software - Clase 6

120

www.dsic.upv.es/~uml Generalizacin de Estados

Ejemplo:

UNPSJB - 2005

Ingeniera de Software - Clase 6

121

Historia

www.dsic.upv.es/~uml

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)

UNPSJB - 2005

Ingeniera de Software - Clase 6

122

Historia

www.dsic.upv.es/~uml

Ejemplo:
A

d2 B

in
D out d1 C x y

H*
UNPSJB - 2005 Ingeniera de Software - Clase 6 123

Historia

www.dsic.upv.es/~uml

Ejemplo:
Enjuague Lavado Secado

cerrar puerta

abir puerta

Espera
UNPSJB - 2005 Ingeniera de Software - Clase 6 124

Destruccin del Objeto

www.dsic.upv.es/~uml

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

UNPSJB - 2005

Ingeniera de Software - Clase 6

125

Destruccin de Objeto

www.dsic.upv.es/~uml

Ejemplo:
En vuelo crash

despegar Crear(matricula) En tierra

aterrizar

UNPSJB - 2005

Ingeniera de Software - Clase 6

126

www.dsic.upv.es/~uml 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

UNPSJB - 2005

Ingeniera de Software - Clase 6

127

www.dsic.upv.es/~uml Transiciones temporizadas

Ejemplo:

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

anular transaccin

Depsito efectuado

B
UNPSJB - 2005 Ingeniera de Software - Clase 6 128

Diagrama de Actividad

www.dsic.upv.es/~uml

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
Ingeniera de Software - Clase 6 129

UNPSJB - 2005

Ejemplos

UNPSJB - 2005

Ingeniera de Software - Clase 6

130

... Ejemplos

UNPSJB - 2005

Ingeniera de Software - Clase 6

131

... Ejemplos

www.dsic.upv.es/~uml

UNPSJB - 2005

Ingeniera de Software - Clase 6

132

Diagrama de Componentes

UNPSJB - 2005

Ingeniera de Software - Clase 6

133

www.dsic.upv.es/~uml 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

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
134

UNPSJB - 2005

Ingeniera de Software - Clase 6

www.dsic.upv.es/~uml Diagramas de Componentes

Ejemplo:

UNPSJB - 2005

Ingeniera de Software - Clase 6

135

Diagrama de Despliegue

UNPSJB - 2005

Ingeniera de Software - Clase 6

136

Diagrama de Despliegue

www.dsic.upv.es/~uml

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
Nodo

UNPSJB - 2005

Ingeniera de Software - Clase 6

137

www.dsic.upv.es/~uml 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

UNPSJB - 2005

Ingeniera de Software - Clase 6

138

www.dsic.upv.es/~uml 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


UNPSJB - 2005

Control

<<RDSI>>

Ingeniera de Software - Clase 6

139

Proceso de Desarrollo de SW basado en UML

UNPSJB - 2005

Ingeniera de Software - Clase 6

140

Qu es un Proceso de Desarrollo de SW?

www.dsic.upv.es/~uml

Define Quin debe hacer Qu, Cundo y Cmo debe hacerlo


Sistema nuevo o modificado

Requisitos nuevos o modificados

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

UNPSJB - 2005

Ingeniera de Software - Clase 6

141

Historia de RUP
Rational Unified Process
1998

www.dsic.upv.es/~uml

Rational Objectory Process


1996-1997

Pruebas funcionales Pruebas de desempeo Gestin de requisitos Gestin de cambios y configuracin Ingeniera de Negocio Ingeniera de datos Diseo de interfaces

Objectory Process
1987-1995

UML

Enfoque Ericsson
UNPSJB - 2005 Ingeniera de Software - Clase 6 142

www.dsic.upv.es/~uml

Dos dimensiones

UNPSJB - 2005

Ingeniera de Software - Clase 6

143

Fases e Hitos (Milestones)

www.dsic.upv.es/~uml

Inception

Elaboration

Construction

Transition

Objetivos (Vision)

Arquitectura

Capacidad Operacional Inicial

Release del Producto

tiempo

UNPSJB - 2005

Ingeniera de Software - Clase 6

144

Elementos en RUP

www.dsic.upv.es/~uml

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)
Ingeniera de Software - Clase 6 145

UNPSJB - 2005

... Elementos en RUP

www.dsic.upv.es/~uml

Workflow, Workflow Detail , Workers, Actividades y Artefactos. Ejemplos


Workflow: Requirements Workflow Detail:Analyse the Problem

Workers
UNPSJB - 2005 Ingeniera de Software - Clase 6

Actividades

Artefactos
146

... Elementos en RUP

www.dsic.upv.es/~uml

Workers

Analyst workers

Testing professional workers Manager workers


Test Designer Tester Change Control Manager Configuration Manager Deployment Manager Process Engineer Project Manager Project Reviewer Any Worker Course Developer Graphic Artist Stakeholder System Administrator Technical Writer Tool Specialist
147

Architect Architecture Reviewer Capsule Designer Code Reviewer Database Designer Design Reviewer Designer UNPSJB - 2005 Implementer Ingeniera de Software - Clase 6

Developer workers

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

Other workers

... Elementos en RUP

www.dsic.upv.es/~uml

Workers, Actividades, Artefactos


Ejemplo: System Analyst Worker

UNPSJB - 2005

Ingeniera de Software - Clase 6

148

... Elementos en RUP


www.dsic.upv.es/~uml

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 Deployment Set Project Management Set Configuration & Change Management Set Environment Set
149

UNPSJB - 2005

Ingeniera de Software - Clase 6

... Elementos en RUP

www.dsic.upv.es/~uml

Artefactos, Workers, Actividades

Ejemplo:Business Modeling Artifact Set

UNPSJB - 2005

Ingeniera de Software - Clase 6

150

Caractersticas Esenciales de RUP

www.dsic.upv.es/~uml

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

UNPSJB - 2005

Ingeniera de Software - Clase 6

151

www.dsic.upv.es/~uml Proceso dirigido por los Casos de Uso

Requisitos

Capturar, definir y validar los casos de uso


Casos de Uso integran el trabajo

Anlisis & Diseo


Implementacin

Realizar los casos de uso Verificar que se satisfacen los casos de uso

Pruebas

UNPSJB - 2005

Ingeniera de Software - Clase 6

152

... Proceso dirigido por los Casos de Uso


www.dsic.upv.es/~uml

trace

trace

Caso de Uso

Realizacin de Anlisis

Realizacin de Diseo

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] UNPSJB - 2005 Ingeniera de Software - Clase 6 153

..Proceso dirigido por los casos de Uso


www.dsic.upv.es/~uml

UNPSJB - 2005

Ingeniera de Software - Clase 6

154

www.dsic.upv.es/~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

UNPSJB - 2005

Ingeniera de Software - Clase 6

155

... Proceso Iterativo e Incremental

www.dsic.upv.es/~uml

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
Ingeniera de Software - Clase 6 156

UNPSJB - 2005

... Proceso Iterativo e Incremental

www.dsic.upv.es/~uml

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)
Ingeniera de Software - Clase 6 157

UNPSJB - 2005

Proceso Iterativo e Incremental


Enfoque Cascada

www.dsic.upv.es/~uml

Enfoque Iterativo e Incremental


UNPSJB - 2005 Ingeniera de Software - Clase 6 158

... Proceso Iterativo e Incremental


Grado de Finalizacin de Artefactos

www.dsic.upv.es/~uml

UNPSJB - 2005

Ingeniera de Software - Clase 6

159

www.dsic.upv.es/~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
UNPSJB - 2005 Ingeniera de Software - Clase 6 160

Fases del Ciclo de Vida

www.dsic.upv.es/~uml

El ciclo de vida consiste en una serie de ciclos, cada uno de los cuales produce una nueva versin del producto Cada ciclo est compuesto por fases y cada una de estas fases est compuesta por un nmero de iteraciones Las fases son:

Inicio o Estudio de oportunidad Elaboracin Construccin Transicin

UNPSJB - 2005

Ingeniera de Software - Clase 6

161

...Fases del Ciclo de Vida www.dsic.upv.es/~uml

Inicio o Estudio de oportunidad (inception)


Define el mbito y objetivos del proyecto Se define la funcionalidad y capacidades del producto Tanto la funcionalidad como el dominio del problema se estudian en profundidad Se define una arquitectura bsica Se planifica el proyecto considerando recursos disponibles

Elaboracin

UNPSJB - 2005

Ingeniera de Software - Clase 6

162

...Fases del Ciclo de Vida www.dsic.upv.es/~uml

Construccin

El producto se desarrolla a travs de iteraciones donde cada iteracin involucra tareas de anlisis, diseo e implementacin Las fases de estudio y anlisis slo dieron una arquitectura bsica que es aqu refinada de manera incremental conforme se construye (se permiten cambios en la estructura) Gran parte del trabajo es programacin y pruebas Se documenta tanto el sistema construido como el manejo del mismo Esta fase proporciona un producto construido junto con la documentacin
Ingeniera de Software - Clase 6 163

UNPSJB - 2005

...Fases del Ciclo de Vida www.dsic.upv.es/~uml

Transicin

Se libera el producto y se entrega al usuario para un uso real Se incluyen tareas de marketing, empaquetado atractivo, instalacin, configuracin, entrenamiento, soporte, mantenimiento, etc. Los manuales de usuario se completan y refinan con la informacin anterior Estas tareas se realizan tambin en iteraciones

UNPSJB - 2005

Ingeniera de Software - Clase 6

164

Esfuerzo respecto de las Workflows


I nce ption E la bora tion C onstruction Requisitos

Tra nsition

15%
Una iteracin en la fase de elaboracin
Anlisis

10% 15%

Diseo

Implementacin

30% 15%
P r e lim in a ry I te r a tio n ( s ) ite r. #1 ite r. #2 ite r. #n ite r. # n+ 1 ite r. # n+2 it e r. #m ite r. #m +1

Pruebas

UNPSJB - 2005

5% mantenimiento 10% gestin cambios


Ingeniera de Software - Clase 6

165

...Esfuerzo respecto de las Fases


I nce ption E la bora tion C onstruction Requisitos Una iteracin en la fase de elaboracin Anlisis

Tra nsition

Diseo

Implementacin

Pruebas
P r e lim in a ry I te r a tio n ( s ) ite r. #1 ite r. #2 ite r. #n ite r. # n+ 1 ite r. # n+2 it e r. #m ite r. #m +1

Esfuerzo: UNPSJB Duracin: - 2005

5% 10%

20% 65% 30% 50% Ingeniera de Software - Clase 6

10% 10%

166

UML - ANEXO
Fundamentos del Modelado OO Para evaluacin por parte de los alumnos

UNPSJB - 2005

Ingeniera de Software - Clase 6

167

Objetos

www.dsic.upv.es/~uml

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)

UNPSJB - 2005

Ingeniera de Software - Clase 6

168

Objetos

www.dsic.upv.es/~uml

El Modelado de Objetos permite representar el ciclo de vida de los objetos a travs de sus interacciones En UML, un objeto se representa por un rectngulo con un nombre subrayado Otro
Un Objeto Objeto ms Otro Objeto

UNPSJB - 2005

Ingeniera de Software - Clase 6

169

Objetos

www.dsic.upv.es/~uml

Ejemplo de varios objetos relacionados:


Cuenta Corriente 101 Juan

Banco de Valencia

Felipe Cuenta Corriente 114

UNPSJB - 2005

Ingeniera de Software - Clase 6

170

Objetos

www.dsic.upv.es/~uml

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

UNPSJB - 2005

Ingeniera de Software - Clase 6

171

Clases y Objetos

www.dsic.upv.es/~uml

UNPSJB - 2005

Ingeniera de Software - Clase 6

172

Identidad

www.dsic.upv.es/~uml

Oid (Object Identifier) Cada objeto posee un oid. El oid establece la identidad del objeto y tiene las siguientes caractersticas: Constituye un identificador nico y global para cada objeto dentro del sistema

Es determinado en el momento de la creacin del objeto Es independiente de la localizacin fsica del objeto, es decir, provee completa independencia de localizacin

UNPSJB - 2005

Ingeniera de Software - Clase 6

173

Identidad

www.dsic.upv.es/~uml

Es independiente de las propiedades del objeto, lo cual implica independencia de valor y de estructura No cambia durante toda la vida del objeto. Adems, un oid no se reutiliza aunque el objeto deje de existir No se tiene ningn control sobre los oids y su manipulacin resulta transparente

Sin embargo, es preciso contar con algn medio para hacer referencia a un objeto utilizando referencias del dominio (valores de atributos)
Ingeniera de Software - Clase 6 174

UNPSJB - 2005

Estado

www.dsic.upv.es/~uml

El estado evoluciona con el tiempo Algunos atributos pueden ser constantes El comportamiento agrupa las competencias de un objeto y describe las acciones y reacciones de ese objeto Las operaciones de un objeto son consecuencia de un estmulo externo representado como mensaje enviado desde otro objeto
Ingeniera de Software - Clase 6 175

UNPSJB - 2005

Comportamiento

www.dsic.upv.es/~uml

Ejemplo de interaccin:
Otro objeto

Un mensaje Operacion 2

Un objeto
Operacion 1
UNPSJB - 2005 Ingeniera de Software - Clase 6 176

Comportamiento

www.dsic.upv.es/~uml

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

UNPSJB - 2005

Ingeniera de Software - Clase 6

177

Persistencia

www.dsic.upv.es/~uml

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

Podremos despus reconstruirlo, es decir, tomarlo 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
Ingeniera de Software - Clase 6 178

UNPSJB - 2005

Comunicacin

www.dsic.upv.es/~uml

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
Ingeniera de Software - Clase 6 179

UNPSJB - 2005

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
Ingeniera de Software - Clase 6 180

UNPSJB - 2005

Comunicacin

www.dsic.upv.es/~uml

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

UNPSJB - 2005

Ingeniera de Software - Clase 6

181

Comunicacin

www.dsic.upv.es/~uml

Ejemplo en el que un agente hace de aislante:


Un agente Sevidor 1

Servidor 2 Un cliente

UNPSJB - 2005

Ingeniera de Software - Clase 6

182

El Concepto de Mensaje

www.dsic.upv.es/~uml

La unidad de comunicacin entre objetos se llama mensaje El mensaje es el soporte de una comunicacin que vincula dinmicamente los objetos que fueron separados previamente en el proceso de descomposicin Adquiere toda su fuerza cuando se asocia al polimorfismo y al enlace dinmico

UNPSJB - 2005

Ingeniera de Software - Clase 6

183

www.dsic.upv.es/~uml El Concepto de Mensaje

Objeto 1

: Mensaje A
Objeto 2

: Mensaje C

: Mensaje E Objeto 4

Objeto 3

: Mensaje D
UNPSJB - 2005 Ingeniera de Software - Clase 6 184

Mensaje y Estmulo

www.dsic.upv.es/~uml

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)

UNPSJB - 2005

Ingeniera de Software - Clase 6

185

Vous aimerez peut-être aussi