Sei sulla pagina 1di 122

Paquetes

Elemento organizativo Puede contener elementos de cualquier tipo. Un elemento es exclusivo a un paquete. Posibilidad de anidar paquetes.
Modelo

Modelo

+ Producto + CarroCompra + Comercio

Paquetes
Un paquete bien estructurado debe:
ser cohesivo estar poco acoplado poco anidamientos conjunto equilibrado de elementos

Importacin/Exportacin en paquetes
Los paquetes permiten controlar la complejidad del manejo de un gran nmero de abstracciones, controlando los accesos mediante la importacin.

La parte pblica de un paquete son sus exportaciones. Las partes pblicas son visibles en los paquetes que importan al paquete contenedor. La importacin no es transitiva. Los paquetes anidados pueden ver todo lo que ven los paquetes que los contienen.
3

Cliente Servidor + BaseDeDatos + ServicioDeRegistro + FormularioPedido + FormularioDeSeguimiento - Pedido

import
Politicas + ReglasPedidos + GUI:Ventana

GUI + Ventana + Formulario # GestorEventos

import

Generalizacin de Paquetes
GUI + Ventana + Formulario # GestorEventos

WindowsGUI + GUI:Ventana + Formulario # GUI:GestorEventos + VBForm

MacGUI

Uso de los paquetes


Agrupar elementos, normalmente del mismo tipo, para manejarlos en conjunto.
Paquete Clases e interfaces del modelo Paquete Interfaces de usuario Paquete Servicios base de datos

Un modelo es un paquete que incluye todos los elementos que constituyen una particular vista del sistema modelado.
6

Sistema, modelo, vista, diagrama


Un sistema es aquello que se est desarrollando y para lo que se crean modelos. Un subsistema es una parte de un sistema. Un modelo es una abstraccin de un sistema que ayuda a comprenderlo. Una vista es una proyeccin de la estructura y organizacin de un modelo del sistema, centrada en algn aspecto. Un diagrama es una representacin de un conjunto de elementos de un modelo.
7

Vistas UML
vocabulario funcionalidad ensamblado gestin conf.
Vista de Implementacin

Vista de Diseo

comportamiento

Vista de casos de uso

Vista de Procesos

Vista de Despliegue

Funcionamiento escalabilidad rendimiento

topologa entrega distribucin instalacin


8

Vistas UML
clases interfaces colaboraciones
Vista de Implementacin

componentes

Vista de Diseo

casos de uso

Vista de casos de uso

Vista de Procesos

Vista de Despliegue

clases activas

nodos

Vistas UML
Diagramas de clase Diagramas de interaccin Diagramas de estado Diagramas de componentes Diagrama de interaccin Diagramas de estado
Vista de Implementacin

Vista de Diseo

Diagramas de casos de uso

Vista de casos de uso

Vista de Procesos

Vista de Despliegue

Diagramas de clase Diagramas de interaccin Diagramas de estado

Diagramas de despliegue Diagrama de interaccin Diagramas de estado


10

Diagrama de Objetos

d:DiagramaClases

:Relacion :Clase

:Metodo :Atributo

:Clase

:Clase

11

Diagrama de Objetos
:U nivers idad

d2:D epartam ento

d2:D epartam ento

d ire cto r:Pro fe so r

:P rofes or

:A s ignatur a

12

Enlaces y Asociaciones
Un enlace es :
una conexin semntica entre objetos. una instancia de una asociacin. un camino por el cual enviar un mensaje
Persona calcularCom pensacion() asignar() +em pleado 1..* + patron * Em presa

enlace
p:Persona 1: asignar(desarrollo) :Em presa

mensaje

13

Interacciones y Mensajes
Interaccin: comportamiento que comprende un
conjunto de mensajes intercambiados entre un conjunto de objetos dentro de un contexto para lograr un propsito.

Mensaje: especificacin de una comunicacin entre


objetos que transmite informacin, con la expectativa de desencadenar una actividad.

14

Modelado del comportamiento


Se describe cmo los objetos colaboran entre s para realizar cierta actividad. Se expresa mediante los diagramas de interaccin:
Diagramas de Secuencia y Diagramas de Colaboracin (de Comunicacin en UML 2.0).

Tambin se describe las mquinas de estado que caracterizan los objetos


Diagramas de estado Diagramas de actividades
15

Diagramas de Interaccin
Describen una interaccin. Dos tipos: Diagramas de Secuencia y Colaboracin Diagramas de Secuencia:
Destacan la ordenacin temporal de los mensajes

Diagramas de Colaboracin:
Destacan la organizacin estructural de los objetos participantes.

Equivalencia semntica

16

Diagramas de Secuencia
Representan escenarios. Incluye:
Objetos y su lnea de tiempo Mensajes : argumentos y self-delegation Informacin de control: condiciones y marcas de iteracin Indicar el objeto devuelto por el mensaje: return
(aadirlos slo cuando ayuden a clarificar la interaccin)

Especificar procesos concurrentes: focos de control

17

Sincronizacin
Envo de mensaje simple: Un solo hilo de ejecucin El objeto activo pasa el control al objeto pasivo
Un cliente : Envo simple Otro objeto

18

Sincronizacin
Envo de mensaje sncrono: Slo se desencadena la operacin cuando el servidor acepta el mensaje El cliente se bloquea hasta que el servidor lo acepta o rechaza

Un cliente

: Envo sncrono

Otro objeto

19

Sincronizacin
Envo de mensaje asncrono: Un mensaje asncrono no interrumpe la ejecucin del cliente El cliente enva el mensaje sin saber cundo ni si se llevar a cabo
: Envo asncrono

Un cliente

Otro objeto

20

Diagrama de secuencia
Un objeto puede enviarse a s mismo un mensaje:
a

Puede representar tambin la entrada por parte del objeto en cierta actividad de ms bajo nivel

m ens aje reflex ivo

Diagrama de secuencia
Grficamente tambin se puede indicar cundo el mensaje es para crear el objeto (va dirigido al rectngulo del objeto o etiquetado con new) o para destruirlo (va dirigido a la lnea del objeto pero el final de la flecha es una cruz)

Diagrama de secuencia
Normalmente no es necesario indicar el retorno del control, cuando el envo es sncrono:
a b

E l retorno s e c ons idera im plc ito c uando el envo es s nc rono

Diagrama de secuencia
En el caso asncrono el retorno, si existe, se debe representar:
a : aa b : aa

Media punta de flecha indica mensaje asncrono (desde UML 1.3; en UML 1.5 ya no se distingue, aunque se acepta) La flecha discontinua indica retorno del control

Tipos de Control
El Diagrama de Secuencia refleja de manera indirecta las opciones de control Un control centralizado tiene una forma como esta:

Tipos de control
Un control descentralizado tiene una forma como sta:

Estructuras de control
Podemos representar iteraciones en el envo de mensajes mientras, p.e., se cumpla una condicin:

W hile X Loop end Loop

Estructuras de control
La iteracin puede expresarse tambin como parte del mensaje:

*[c ondic in] M ens aje

Estructuras de control
Las bifurcaciones condicionales pueden representarse de esta forma:

If c ondic in els e end if

Diagrama de secuencia
Diagrama de Secuencia
c:Comprador <<create>> asignarrAcciones asignarValores :Transaccion p: ServidorWeb

tiemp o
exito <<destroy>>

asignarValores

Lnea de vida del objeto

La flecha disc ontnua indica un r etorno del control

Foco de control

Foco de control:Muestra el periodo de tiempo que un objeto est realizando una accin (perodos de actividad del objeto). La parte superior indica cundo se inicia la accin y la inferior cundo se termina (puede estar marcada con un mensaje de respuesta -return-, indicando que se devuelve el control al objeto destino -se indica con flecha discontinua-)

Diagrama de Colaboracin
1: <<create>> 2: establecerAcciones 6: <<destroy>> c:Cliente 5: exito :Transac cion

3: establecerValores 4: establecerValores

p:Proxy ODBC

31

Diagrama de Secuencia
c:Cliente
<<create>> :AgenteBilletes

a:Ayuda Planificacion

establecerItinerario(i) calcularRuta ruta

<<destroy>>

notificar

32

Diagrama de Colaboracin
3: calcularR uta

1: <<create>> 2: establecerItinerario(i) 5: <<destro y>> c:Cliente :A ge nte Billetes 4: ruta 6 : no tific ar

a:Ay ud a Planificacion

33

Diagramas de Secuencia
:Interface Entrada Pedido preparar *preparar hayStock:=comprobar [hayStock] eliminar pedir?:=necesarioPedir [pedir?]<<create>> :Pedido :LineaDe Pedido :Item

PedidoItem ItemEntregado

[hayStock] <<create>>

34

Diagramas de Colaboracin
1: preparar :Interface Entrada Pedido :Pedido 2: *preparar :LineaDe Pedido

7: 5: pedir?:=necesarioPedir 3 : haySto ck:=co mp ro ba r 4: [hayStock] eliminar 8: [hayStock] <<create>>

:Item

Item Entregado Pedido Item

6: [pedir?]<<crea te>>

35

Uso de los diagramas de interaccin


Modelado del aspecto dinmico. Modelado del flujo de control que caracteriza el comportamiento de un sistema:
casos de uso colaboraciones patrones frameworks operaciones

36

Diagrama de Secuencia (Caso de uso)


: Cliente iniciarCompra() nuevoCarroCompra(cliente) : Interfaz Compra : CarroCompra : Producto

seleccProducto(cantidad) obtenerDescripcionDe(prod) cargarProd(cliente,prod,cantidad)

confirmarCompra() confirmarCompraDe(cliente) decremStock(cantidad)

Realizar para cada producto incluido en el carro de compra

37

Diagrama de Colaboracin Caso de Uso)

1: iniciarCompra() 2 : nu evoC arroCompra(clie nte ) 3: seleccProducto(cantidad) 5 : ca rga rPro d(cliente,pro d,c an tid ad ) 6: confirmarCompra() 7: confirmarCompraDe(cliente) : Interfaz : Carro : Cliente Compra Compra

4: obtenerDescripcionDe(prod) 8 : de cre mS toc k(c antidad) : Producto

38

Diagrama de Secuencia

: Technical Responsible selectOrder()

: Launch Manufacturing GUI

:OrderManager

:EvaluatedOrders

o : Order

: OrderLine

: Product

: WorkOrder

selectOrder(cod) o:=find(cod)
launchManufacturing()

launchManufacturing(cod)

launch manufacturing() *generateWO() tpl:=getTemplate()

createWO(tpl)

39

Escenario de un proceso de negocio


traveler : Employee authorizer : Employee bookkeeper : Employee paymaster : Employee

travelPermissionRequest()

travelPermission()

sendExpenseReport(anExpRep) expenseRepo rtOk(a nE xp Re p) p ay Re qu es t(aTravel er)

40

Escenario de un proceso de negocio


: Cliente : Comercial : JefeTecnico : JefeProduccion

darCursoPedido()

estudiarPedido() * analizarFabricacionProducto()

planificarFabricacion() informarAnalisisPedido() acceptarPedido()

41

Patrn Observer
Subject subjectState Attach() Detach() Notify()

+observers 1..1 1..*

Observer Update()

for all o in observers {o->update}

ConcreteSubject subjectState getState() setState()

+subject

ConcreteObserver observerState update() observerState= subject->getState()

42

Patrn Observer
: Subject SetState( ) Notify( ) one : Observer another : Observer

Update( ) GetState( ) Update( ) GetState( )

43

Patrn Observer
2: Notify( )

3: Update( ) : Subject 1: SetState( ) 4 : GetS tate ( ) one : Ob se rve r

6 : GetS tate ( )

5: Update( )

another : Observer

44

Colaboracin
ClienteDeGestor 1..* 0..* especifica necesita editar 1..1 editado con 1..* 1..* Editor 1..1 Gestor 1..1 1..* 1..1 FabricaDeEditor

ObjetoInformacion 1..*

45

Colaboracin
: ClienteDeGestor : Gestor : FabricaDeEditor : ObjetoInformacion : Editor

obtenerEditorPara(objInfo) obtenerInterfazSoportada() s op orta In terfaz (no mb reInterfaz)

crearEditorCon(objInfo) Crear&IniciarCon(objInfo)

46

Caso de Uso (Nivel alto de abstraccin)

: Cliente

:R eceptorPedido

:RealizacionPedido

enviarPedido

tra mi tarP ed id o

confirmarPedido

47

Caso de Uso (Nivel ms bajo de abstraccin)

: C li en te

:ReceptorPedidos enviarPedido

:AgenteTarjeta Credito

:RealizacionPedido

:A ge nte Fac tura ci on

procesarTarjeta

tra mi tarPedido

emitirFactura

confirmarPedido

48

Casos de Uso y Escenarios


Caso de Uso Buscar Pedido
1. Se inicia al seleccionar el usuario la opcin Buscar Pedido. 2. El sistema presenta la ventana Buscar Pedido. 3. El usuario introduce un ID de un pedido 4. El usuario arranca la bsqueda 5. El sistema realiza una bsqueda en la BD de pedidos. 6. El sistema visualiza datos pedido.

49

: Usuario

:Interfaz Cancelar Pedido visualizar ()

:Interfaz Buscar Pedido

: Base Datos

Encontrar Pe did o ()

se tIDP ed ido (IDPe did o) b uscarPe did o () p:=getPedido (IDPedido)

visualizarPedido (p)

Diagramas de Secuencia: Procesos concurrentes y activaciones


new
unaTransaccin Mensaje Asncrono unCoordinadorde Transaccin

new

new
Activacin

unaPrimera Comprobacin unaSegunda Comprobacin

new

ok

Todo comprobado?

x
ok

validacin

Todo comprobado?
Objeto Autoeliminado

x
51

Diagramas de Secuencia vs. Diagramas de Colaboracin


Equivalencia semntica Simples para comportamientos simples. Si hay mucho comportamiento condicional, usar diferentes escenarios. Diagramas de secuencia muestran mejor el orden en que se ejecutan los mensajes Diagramas de colaboracin muestran claramente los objetos con que interacta un determinado objeto.

52

Diagramas de Actividades
Muestran un flujo de actividades. Es un caso especial de mquina de estados. Incluye:
estados actividad y estados accin transiciones objetos

Una actividad realiza alguna accin que produce algn cambio en el sistema o retorna un valor.

53

Estados Accin y Estados Actividad


Un estado accin no se puede descomponer, representa una computacin atmica. Un estado actividad no es atmico, se compone de otros estados accin y actividad. Al entrar se ejecuta la accin o actividad, al terminar el flujo de control pasa a la siguiente accin o actividad. Misma notacin
Procesar Pedido
54

Transiciones
estado inicial transiciones
Planificar proceso

Asignar tareas

estado final

55

Bifurcacin

Planificar proceso
[materiales no disponibles]

Volver a planificar
[materiales disponibles]

Asignar tareas

56

Divisin y Unin
Preparar conversacin

divisin

Descomprimir

Gesticular Mover boca Emitir audio

unin
Limpieza
57

Solicitar Producto

Procesar Pedido Extraer Articulos

Enviar Pedido

Recibir Producto

Facturar al cliente

Pagar Factura

Cerrar Pedido

Cliente

Ventas

Almacen

Solicitar Producto

Procesar Pedido Extraer Articulos

Enviar Pedido

Recibir Producto

Facturar al cliente

Calles
Pagar Factura Cerrar Pedido

Cliente

Ventas

Almacen

Solicitar Producto

Procesar Pedido Extraer Articulos

o: Pedido [en progreso]

Enviar Pedido

Recibir Producto

Facturar al cliente
b: Factura [impagada]

o: Pedido [completado]

Pagar Factura

Cerrar Pedido

Ejemplo
Pasajero Vendedor Airline

Solicitar pasaje

Verificar existencia vuelo Dar detalles vuelo Informar alternativas y precios

Seleccionar vuelo

Solicitar pago Pagar pasaje

Reservar plazas Confirmar plaza reservada

Emitir billete 61

: Cliente

: Comercial :Catalogo

: JefeTecnico

: JefeProduccion

Rellenar Pedido

p:Pedido [propuesto] :Plantilla de Produccion Cursar pedido p:Pedido [en_evaluacion]

Analizar viabilidad

p:Pedido [evaluado] Notificar rechazo de pedido Fin KO p:Pedido [rechazado] [ NO ] Viable ? [ SI ]

:Producto Especial

:Plantilla de Produccion

Notificar aceptacion de pedido

Ordenar fabricacion

:Orden de Trabajo [pendiente]

Planificar produccion p:Pedido [aceptado]

Fin OK

Utilidad de los diagramas de actividades

Modelado de flujos de trabajo (workflow) como son los procesos de negocio (business processes). Se puede asociar a cualquier elemento de modelado, pero lo ms normal es asociarlo a una operacin: diagrama de flujo de las acciones.

63

Diagramas de Estados (Statecharts)


Los statecharts representan mquinas de estados (autmatas de estados finitos), con estados y transiciones Los Statecharts de UML son bsicamente los de David Harel, extendidos con caractersticas OO Puede ser visto como un grafo de estados conectados por transiciones etiquetadas

Statecharts
Modelan los aspectos dinmicos del sistema Cada objeto sigue el comportamiento descrito en el Statechart asociado a su clase Cada objeto est en un estado en cierto instante El estado est caracterizado parcialmente por los valores de los atributos del objeto Los Statecharts de UML son deterministas La transicin entre estados es instantnea y se debe a la ocurrencia de eventos La suposicin bsica es que una mquina de estados procesa un evento cada vez y termina con todas las consecuencias del evento antes de procesar otro. Si ocurren dos eventos simultneamente se procesan como si se hubieran producido en cualquier orden, sin prdida de generalidad

Eventos
Un evento es un acontecimiento que ocupa un lugar en el tiempo y espacio. Un evento es un estmulo que dispara una transicin en una mquina de estados. Eventos externos vs. Eventos internos. Tipos de eventos:
Seales (excepciones) Llamadas Paso de tiempo Cambio de estado
66

Tipos de eventos
llamada: la recepcin de una peticin para invocar una operacin. Normalmente un evento de llamada es modelado como una operacin del objeto receptor, manejado por un mtodo del receptor y se implementa como una accin o transicin de la mquina de estados seal: la recepcin de una seal, que es una entidad a la que se ha dado nombre explcitamente (clase estereotipada), prevista para la comunicacin explcita - y asncrona- entre objetos. Es enviada por un objeto a otro objeto o conjunto de objetos. Las seales con nombre que puede recibir un objeto se modelan designndolas en un compartimento extra de la clase de ese objeto. Normalmente una seal es manejada por la mquina de estados del objeto receptor y puede disparar una transicin en la mquina de estados tiempo: representa el paso del tiempo (ocurrencia de un tiempo absoluto respecto de un reloj real o virtual o el paso de una cantidad de tiempo dada desde que un objeto entra en un estado). Palabra clave after: after (2 segundos); after 1 ms desde la salida de devInactivo cambio: evento que representa un cambio en el estado o el cumplimiento de alguna condicin. Palabra clave when, seguida de una expresin booleana, que puede ser de tiempo o de otra clase: when (hora = 11:30); when ( altitud < 1000)

Tipos de eventos
Evento de llamada (se representa igual que el de seal)
Manual
evento parmetro

iniciarPilotoAutomtico (normal)

Automtico

Eventos de tiempo y de cambio


Inactivo
after (2 segundos) / cortarConexin()

Activo
evento de tiempo evento de cambio

when (11:30PM) / autoTest()

Modelado Excepciones
<<exception>> Excepcion establecerManejador() primerManejador() ultimoManejador()

<<exception>> Duplicado

<<exception>> Overflow

<<exception>> Underflow

Conjunto aadir() eliminar()

<<send>>

<<send>>

<<send>>

Estados
Un estado es una situacin en la vida de un objeto en la que satisface cierta condicin, realiza alguna actividad o espera algn evento. Elementos de un estado
Nombre Acciones entrada/salida Transiciones internas Subestados Eventos diferidos

70

Estados

accin entrada transicin interna evento diferido

Rastreando entry/ activarModo(enRastreo) exit / activarModo(noRastreo) nuevoObjetivo/rastreador.adquirir do / seguirObjetivo autotest / defer

accin salida actividad

71

Estado inicial
Se trata de un pseudoestado que indica el punto de partida por defecto para una transicin cuyo destino es el lmite de un estado compuesto El estado inicial del estado de nivel ms alto representa la creacin de una nueva instancia de la clase Slo puede haber un estado inicial (directamente) dentro de cada estado No se permiten compuesto disparadores de evento, s
Transicin al estado inicial estado inicial acciones

Y
e/a /c entry/b

Primer estado propiamente dicho

Dueo del estado inicial

Transicin directa a un estado interior Si estando en X se produce e, la transicin pasa al estado Y. Se ejecuta la accin de entrada b y el estado inicial queda activado. La transicin saliente se dispara inmediatamente, ejecutando la accin c y pasando al estado Z. Si estando en X se produce f, se ejecuta d, se ejecuta b, al entrar a Y, y se pasa a Z, sin ejecutar c, pues el estado inicial ya no est implicado f/d

Estado final
Estado especial dentro de un estado compuesto que, cuando est activo, indica que la ejecucin del estado compuesto ha terminado y que una transicin de finalizacin que sale del estado compuesto est activada. Un estado final no es un pseudoestado. Puede ser activado por un periodo de tiempo, a diferencia del inicial que transita inmediatamente a su sucesor, p.ej., mientras espera la terminacin de otros subestados concurrentes en el mismo estado compuesto Las transiciones entrantes son transiciones normales
X Y
e estado final

El evento e causa la transicin al estado final, que causa la transicin de finalizacin hacia Z

Estado final
Slo puede ocurrir un estado final (directamente) dentro de un estado compuesto. El smbolo de estado final puede repetirse dentro de un estado, pero cada copia representa el mismo estado final. Si un objeto alcanza su estado final de nivel superior, la mquina de estados termina y se destruye el objeto Es posible que no haya estado final, indicando una actividad continua (comn por ejemplo en sistemas empotrados)

Transiciones
Una transicin de un estado A a un estado B, se produce cuando se origina el evento asociado y se satisface la condicin especificada, en cuyo caso se ejecuta la accin de salida de A, la accin de entrada a B y la accin asociada a la transicin. Elementos de una transicin:
Estados origen y destino Evento de disparo Condicin de guarda Accin

75

Elementos de una transicin


estado origen
la transicin se disparar si, estando en el estado origen, se produce el evento de disparo y si la condicin de guarda, si la hay, se satisface

estado destino
estado activo tras completarse la transicin

evento de disparo.
cuando se produce un evento, afecta a todas las transiciones que lo contienen en su etiqueta. Todas las apariciones de un evento en la misma mquina de estados deben tener la misma signatura

condicin de guarda
expresin booleana. Si es falsa, la transicin no se dispara, y si no hay otra transicin etiquetada con el mismo evento que pueda dispararse, ste se pierde

accin
computacin atmica ejecutable. Puede incluir llamadas a operaciones sobre el objeto que contiene la mquina de estados (o sobre otros visibles), creacin o destruccin de objetos, o envo de una seal a otro objeto

Guardas en una transicin


Las condiciones o guardas permiten condicionar la transicin:
a E ve n to [ c o n d ic i n ] b

Acciones en una transicin


Podemos especificar la ejecucin de una accin como consecuencia de la transicin:
a Evento[ condicin ] / accin b

Dicha accin tambin se considera instantnea

Accin: computacin atmica ejecutable que produce un cambio en el estado del modelo o que devuelve un valor. Puede ser realizada mediante el envo de un mensaje a un objeto provocando la modificacin de un enlace o del valor de un atributo en un objeto. Puede incluir llamadas a operaciones (sobre el objeto que contiene la mquina de estados, as como sobre otros objetos visibles), creacin o destruccin de objetos, o el envo de una seal a un objeto

Acciones en una transicin


Podemos especificar el envo de un evento a otro objeto como consecuencia de la transicin:
a

Evento( arg1, arg2 )[ condicin ] / ^otro_objeto.evento(arg2)

Mquina de estados
Especifica la secuencia de estados por las que pasa un objeto a lo largo de su vida en respuesta a eventos, junto con sus respuestas a esos eventos. til si las instancias de una clase tienen un comportamiento que depende de su historia o que deben responder a eventos externos: objetos reactivos. Se representa mediante un diagrama de estados.

80

Ejemplo de Statechart
Asociado a la clase Persona:
contratar en el paro perder empleo jubilarse
estado inicial

en activo

jubilarse jubilado
transicin estado final

estado

Ejemplo de Statechart
Enabled Position Close Visualisation Disabled Background Selected Open ReadyFor Writing

Transiciones simples y complejas

evento de tiempo

envo de seal

transicin sin disparador: (denota una transicin final: que se dispara automtica-mente cuando el estado origen termina su actividad)

after(2 segundos) / send c.estaActivo

autotransicin

Buscando
ruido

Configuracin

Inactivo

evento de disparo

Rastreando
objetivoEn(p) [representaAmenaza] / t.aadirObjetivo(p) evento de disparo con parmetros

contactar

Acoplamiento

condicin de guarda

accin

Modificar hoja

Finaliza S.A.D.

Pendiente de aceptacin

Modificacin por pedido urgente

Administrador acepta hoja Administrador rechaza hoja

No aceptada

Pendiente de envo a factora

Envo a factora

En realizacin

Hojar rutas realizada

Realizada

Inicio

Pendiente de envo a Bualgas

Envo a Bualgas

Pendiente de anlisis

Factible[ Analizado ]

Viable

No factible[ Analizado ]

Envo a jefe

Rechazado
Comunicacion de Rechazo a Central

No aprobado[ Estudiado ] Modificar hoja Administrador rechaza hoja Asignado a Hoja de Rutas Modificar hoja
Envo a factora

Pendiente de aprobacin

Aprobado[ Estudiado ]

Aprobado

Finaliza S.A.D
No realizado[ Hoja Rutas realizada ]

Aprobado

Pendiente de realizacin

No realizado

Realizado[ Hoja Rutas realizada ]

Realizado

Subestados secuenciales
introducirTarjeta Activo entry/leerTarjeta exit/expulsarTarjeta [continuar]
Procesando

Inactivo
Validacin

cancelar mantener
Seleccin

Mantenimiento

[no continuar]
Impresin

86

Subestados secuenciales
Siguiente_item [No todo items chequeado]

Activo Chequeando Do/chequeo


[Todo item chequeado y disponible]

Enviando Do/Iniciar_ entrega

[Todo item chequeado y alguno no disponible]

Esperando
Item Recibido [algn item no disponible] cancelado

Item Recibido [todo item disponible]

Cancelado

Entregado

87

Subestados concurrentes
Mantenimiento mantener Pruebas
Probar perifericos AutoDiagnosis

Inactivo

Manejo Ordenes
Espera

[continuar] Orden Pulsar tecla [no continuar]

88

Componentes

Un componente es una parte fsica y reemplazable de un sistema, que conforma con un conjunto de interfaces y proporciona su implementacin. Modela artefactos tales como: ejecutables, bibliotecas, tablas, ficheros, documentos,.. Representa el empaquetamiento fsico de elementos lgicos tales como clases, interfaces,.. Residirn en los nodos del sistema
89

Componentes
explorador.java

agenteFraudes.dll

Realiza agenteFraudes politicaFraudes busquedaPatrones

90

Componentes

explorador.java

JerarquaElementos

arbol.java

El componente arbol.java puede ser reemplazado por otro que proporcione la interfaz JerarquaElementos. Estereotipos: executable, library, file, table, document

91

Tipos de componentes
Despliegue
Necesarios y suficientes para formar un sistema ejecutable: libreras dinmicas(dll), ejecutables (exe),..

Productos del trabajo


Permanecen al final del proceso de desarrollo: archivos cdigo fuentes, ficheros de datos,.. Con ellos se crean los componentes de despliegue

De ejecucin
Se crean durante la ejecucin: objeto COM, instanciado a partir de una dll.
92

Diagrama de Componentes
Modelado de ejecutables y bibliotecas Modelado de cdigo fuente Modelado de una API

93

Modelado de ejecutables

v.exe

Vwbas20.dll

vwdev20.dll

vwsrc20.dll

94

Ejemplo
Control y Anlisis Interfaz de Terminal Comm Comm

Gestin de Cuentas Comm

Rutinas de Coneccion Comm

Acceso a BD Comm

95

Nodos
Un nodo es un elemento fsico que existe en tiempo de ejecucin y representa un recurso computacional que puede tener memoria y capacidad de procesamiento. Los componentes se ejecutan en nodos Los nodos representan el despliegue fsico de los componentes.

96

Diagramas de Despliegue
Muestra la configuracin de los nodos que participan en la ejecucin y de los componentes que residen en los nodos. Incluye nodos y arcos que representan conexiones fsicas entre nodos. Modelado de sistemas empotrados, sistemas clienteservidor, sistemas distribuidos.

97

Diagrama de Despliegue

terminal

<<10-T-Ethernet>>

servidor

Unidad RAID

<<RS-232>> Consola

98

Modem

<<procesador> servidor cache

<<procesador>> servidor cache

internet

<<red>> red local

<<procesador> servidor principal

<<procesador> servidor

<<procesador>> servidor

<<procesador>> servidor

99

Colaboraciones
Sociedad de clases, interfaces y otros elementos que colaboran para proporcionar un comportamiento cooperativo mayor que la suma de los comportamientos de los elementos. Parte estructural (diagrama de clases) y parte de comportamiento (diagrama de interaccin).

100

Colaboraciones
El ncleo de la arquitectura de un sistema est formado por un conjunto de colaboraciones que representan las decisiones de diseo ms importantes. Un sistema orientado a objetos bien estructurado se compone de un conjunto relativamente pequeo de colaboraciones. Modelado de un caso de uso, operacin o mecanismo (patrn o framework)
101

Casos de uso y Colaboraciones

caso de uso colaboracin


Hacer Pedido

Gestin Pedidos

realizacin

102

Gestor Documentos (Parte esttica)

ClienteDeGestor 1..* 0..* necesita editar 1..1

Ge sto r 1 ..1 1..*

FabricaDeEditor

1..1 especifica 1..1 editado con 1..* 1..* Editor

ObjetoInformacion 1..*

103

Gestor Documentos (Comportamiento)


: ClienteDeGestor : Gestor : FabricaDeEditor : ObjetoInformacion : Editor

obtenerEditorPara(objInfo)

obtenerInterfazSoportada() soportaInterfaz(nombreInterfaz)

crearEditorCon(objInfo)

Crear&IniciarCon(objInfo)

104

Colaboraciones Parametrizadas
Modelado de patrones de diseo
Subject Observer Observer Subject Observer

Alarma

Ventana
105

Patrn de diseo (Parte Esttica)


Subject subjectState Attach() Detach() Notify()

+observers 1..1 1..*

Observer Update()

for all o in observers {o->update}

ConcreteSubject subjectState getState() setState()

+subject

ConcreteObserver observerState update() observerState= subject->getState()

106

Patrn de diseo (Parte dinmica)


: Subject SetState( ) Notify( ) o ne : Observer another : Observer

Update( ) GetState( ) Update( ) Ge tSta te( )

107

OCL (Object Constraint Language)


OCL puede ser usado por UML y otros lenguajes para especificar restricciones, expresiones de navegacin, expresiones booleanas, consultas y otras expresiones incluidas en sus modelos. Lenguaje formal (ms bien semiformal) para expresar restricciones libres de efectos colaterales. Las expresiones OCL no cambian el estado del sistema. No est destinado a escribir acciones o cdigo ejecutable OCL es un lenguaje tipado. Desarrollado por Joe Warmer dentro de IBM.

Uso de OCL
OCL puede ser usado con distintos fines:
Para especificar invariantes sobre clases y tipos en el modelo de clases. Para especificar pre y post-condiciones sobre operaciones y mtodos. Para describir guardas (en statecharts y otros elementos). Como lenguaje de navegacin. Para especificar restricciones sobre operaciones.

OCL es utilizado tambin para especificar la semntica de UML.

(tomado de la documentacin de UML v1.4)

OCL. Self y context; Invariantes


Cada expresin OCL se escribe en el contexto de una instancia de un tipo especfico. Se usa self para referirse a la instancia contextual. Por ejemplo, si el contexto es Company, self se refiere a una instancia de Company. Ejemplo:
context Company inv: self.numberOfEmployees > 50 Si el contexto es claro, se puede suprimir self. Tambin se puede representar de forma alternativa con un nombre distinto como en: context c : Company inv:c.numberOfEmployees > 50

OCL. Pre-, Post- condiciones de una operacin


Se usan las etiquetas pre y post antes de especificar las pre-y post-condiciones, que adems pueden tener un nombre (resultOK). La declaracin de operacin, con sus parmetros, sigue a context y al tipo al que pertenece. self se referir al objeto sobre el que se llama la operacin result denota el resultado de la operacin, si lo hay. Se pueden usar los nombres de los parmetros (param1).
context Typename::operationName(param1 : Type1, ... ): ReturnType pre parameterOk: param1 > ... post resultOk: result = ...

Tipos bsicos y predefinidos


Tipos bsicos:
Boolean, Integer, Real y String. Se complementan con: Collection, Set, Bag y Sequence as como los de Enumeration, OclExpression, OclType, OclState y OclAny

Tipos predefinidos
Tipos Bsicos: Existen una serie de tipos bsicos predefinidos (y operaciones sobre ellos) en OCL, que son: Boolean, Integer, Real, String.

Collection, Set, Bag y Sequence se consideran tambin tipos bsicos

Propiedades: Atributos
Ejemplo: la edad de una Persona se escribe como self.age:
context Person inv: self.age > 0

El valor de la subexpresin self.age es el valor del atributo age sobre el objeto self. El tipo de esta subexpresin es el tipo del atributo age (en este caso tipo bsico Integer)
El invariante de arriba est expresando que la edad de una persona es siempre mayor que cero

Propiedades: Operaciones
Ejemplo: un objeto persona tiene una operacin income que es funcin de fecha (Date). Para un persona aPerson y una fecha aDate, esta operacin sera accedida como: aPerson.income(aDate) La operacin puede ser definida con una postcondicin. El objeto devuelto por sta (el resultado) se denomina result: context Person::income (d: Date) : Integer post: result = age * 1000 Se ponen parntesis aunque la operacin o mtodo no tenga argumentos: context Company inv: self.stockPrice() > 0

Propiedades: Extremos de asociacin y navegacin


Ejemplo: context Company inv: self.manager.isUnemployed = false inv: self.employee->notEmpty En el primer invariante, self.manager es una persona (la multiplicidad de la asociacin es 1) En el segundo, self.employee se evaluar a un conjunto de personas. La expresin completa es un valor booleano que vale true cuando la coleccin a la izquierda es no vaca. Si la asociacin en el Diagrama de Clases est adornada con {ordered}, en lugar de un conjunto (valor por defecto de la navegacin) obtendramos una secuencia como resultado

Propiedades: Extremos de asociacin y navegabilidad


Se puede acceder a las propiedades de los tipos coleccin (Sets, Bags, Sequences ) mediante una flecha -> seguida por el nombre de la propiedad:
context Person inv: self.employer->size < 3 Aplica la propiedad size sobre el conjunto (Set) self.employer, que resulta en el nmero de empleadores de la persona self. context Person inv: self.employer->isEmpty Aplica la propiedad isEmpty sobre el conjunto self.employer. Se evala a true si el conjunto de empleadores es vaco o false en caso contrario.

OCL. Ms ejemplos
Atributos:
BANCO PERSONA
esCasado: Booleano fechaNacimiento:Fecha edad:Integer nombre: String sexo: enum{mas,fem} ingreso(fecha):Integer
Esposo 0..1

context Persona inv: Empleados:Integer self.edad>0 context Banco inv lmEmpleados: 0..1 Cliente self.empleados < 100 Opcionalmente, la restriccin puede 0..* tener un nombre, en este caso Esposa lmEmpleados 0..1

Extremos de asociacin y Navegacin:


context Persona inv: self.esposa->notEmpty implies self.esposa.sexo=femenino
implies es una operacin definida sobre el tipo de datos predefinido de OCL, Boolean

MATRIMONIO lugar: String fecha: Fecha

OCL. Ms ejemplos
Operaciones:
context Persona::ingreso(fecha):Integer post: result > 1000 context Person::birthdayHappens() post: age = age@pre + 1

El valor de una propiedad en una postcondicin es el valor despus de haberse completado la operacin. Para referirse al valor de la propiedad al principio de la operacin, se usa el postfijo @pre, detrs del nombre de la propiedad.

OCL. Colecciones
Operaciones de las Colecciones.
Seleccionar y Descartar (Select, Reject)
context Banco inv: self.cliente->select(edad>50) --cto de personas --mayores de 50

Recolectar (Collect)
context Banco inv: self.cliente->collect(fechaNacimiento) -- bolsa con --las fechas de nacimiento de los empleados

OCL. Colecciones
ParaTodos (ForAll)
context Banco inv: self.cliente->forAll(Nombre=Juan) -- verdadero si --todos los clientes se llaman Juan

Existe (Exists)
context Company inv: self.employee->exists( forename = 'Jack' ) context Company inv: self.employee->exists( p | p.forename = 'Jack' ) context Company inv: self.employee->exists( p : Person | p.forename = 'Jack' )

Estas expresiones se evaluan a true si la caracterstica forename de al menos un empleado es igual a Jack.

Potrebbero piacerti anche