Está en la página 1de 24

1

Programacin Orientada a Objetos


Principios de Diseo OO
Programacin Orientada a Objetos
Resumen
- UML
- Diagramas
- Aspectos generales
- Clasificacin: estructurales vs. comportamiento
- Tipos de diagramas:
- Casos de uso
- Clases
- Interaccin: secuencia y colaboracin
- Estados
- Actividades
- Problemas sencillos de diseo
Programacin Orientada a Objetos
Objetivos
- Conocer y comprender cmo realizar un modelo de un
sistema SW OO
- Conocer y comprender qu es UML y cmo utilizarlo
- Conocer y comprender los distintos tipos de diagramas
UML
- Disear pequeas aplicaciones en Java usando UML
Programacin Orientada a Objetos
UML
2
Programacin Orientada a Objetos
UML - Aspectos generales
- UML permite modelar, construir y documentar los
elementos que forman un sistema software orientado a
objetos
- Intenta abarcar:
- Especificacin de requisitos (recogida de informacin)
- Anlisis (qu hay que hacer)
- Diseo (cmo hay que hacerlo)
- Despliegue (implementacin)
- No es un mtodo, ni un proceso ni una metodologa
- No establece qu modelos construir
Programacin Orientada a Objetos
UML - Por qu?
- Ofrece una forma estndar de especificar de manera visual
y textual sistemas
Programacin Orientada a Objetos
Diagramas
Programacin Orientada a Objetos
Diagramas - Aspectos Generales
- Representaciones grficas de un conjunto de elementos
con relaciones entre ellos
- Hay varios tipos de diagramas cada uno de los cuales
ofrece una vista particular de los elementos que
configuran el sistema
- Un mismo elemento de un sistema puede aparecer
varias veces en el mismo diagrama o en diagramas
diferentes
- Para qu se utilizan?
- Especificar modelos y a partir de ellos construir un
sistema (ingeniera directa)
- Reconstruir modelos a partir de partes de un sistema
ejecutable (ingeniera inversa)
3
Programacin Orientada a Objetos
Diagramas - Tipos - Estructurales
- Estructurales (Aspectos ESTTICOS)
- Modelan los elementos del dominio (clases y objetos) y
las relaciones que existen entre los mismos
- Utilizados durante la fase de diseo de un sistema
- Tipos de diagramas estructurales:
- Clases: Representa la estructura esttica del sistema en
trminos de clases y relaciones
- Componentes: Representan los componentes SW de una
aplicacin
- Despliegue: Representan la ejecucin de los componentes
sobre dispositivos concretos
Programacin Orientada a Objetos
Diagramas - Tipos - Comportamiento
- Comportamiento (Aspectos DINMICOS)
- Casos de uso: Funciones del sistema desde el punto de
vista del usuario
- Secuencia (interaccin): Representacin temporal de los
objetos y sus interacciones
- Colaboracin (interaccin): Representacin espacial de los
objetos, enlaces e interacciones
- Estados: Comportamiento de una clase en trminos de
estados
- Actividad: Comportamiento de una operacin en trminos
de acciones
Programacin Orientada a Objetos
Diagramas - Ciclo de vida
Diagrama de Despliegue Despliegue
Diagrama de Estados
Diagrama de Actividades
Diagrama de Componentes
Diseo
Diagrama de Clases
Diagrama de Secuencia
Diagrama de Colaboracin
Anlisis
Casos de uso Especificacin de requisitos
DIAGRAMAS TIPICOS FASE DE CICLO DE VIDA
Programacin Orientada a Objetos
Diagramas - Elementos Comunes
- Notas:
- Puede contener comentarios, restricciones, etc
- Pueden aparecer solas o unidas a alguno de los elementos
del diagrama mediante una lnea discontinua
- Paquetes:
- Mecanismo de propsito general para organizar elementos
en grupos
- Cualquier grupo de elementos, sean estructurales o de
comportamiento, puede incluirse en un paquete. Incluso
pueden agruparse paquetes dentro de otro paquete.
4
Programacin Orientada a Objetos
Diagrama de Casos de Uso
Programacin Orientada a Objetos
Diagrama de Casos de Uso - Aspectos Generales
- Conjunto de casos de uso, actores y relaciones
- Recogida de informacin para modelar el sistema ()
- Representan las acciones a realizar, relaciones entre ellas
y relaciones entre actores (no indican la secuencia en la
que se realizarn las acciones)
- No son exclusivos de la OO
- Elementos:
- Actores
- Casos de uso
- Relaciones
Programacin Orientada a Objetos
Diagrama de Casos de Uso - Actores
- Cualquier usuario, rol o aplicacin con un
comportamiento propio que interacta con el sistema
- Cmo encontrar los actores?
- Identificar los usuarios y administradores de la aplicacin
- Identificar los roles de los usuarios de la aplicacin
- Identificar los sistemas y/o aplicaciones que interactan
con la aplicacin
- El nombre del actor describe el papel desempeado (la
misma persona fsica puede interpretar varios papeles)
Programacin Orientada a Objetos
Diagrama de Casos de Uso - Casos de Uso
- Descripcin de un conjunto de acciones que ejecuta una
aplicacin para producir un resultado relevante para un
actor (operacin o funcionalidad del sistema)
- Los casos de uso representan las funcionalidades del
sistema
- Cmo encontrar los casos de uso por cada actor?
- Identificar las tareas principales de los actores
- Identificar la informacin a consultar / modificar / eliminar
- Identificar la informacin a suministrar
- Actor al sistema
- Sistema al actor
5
Programacin Orientada a Objetos
Diagrama de Casos de Uso - Ejemplo 1
Programacin Orientada a Objetos
Diagrama de Casos de Uso - Relaciones entre casos de uso
- Asociacin: Existe una relacin
- Inclusin:
- Un caso de uso puede incluir otro
- Etiqueta <<include >>
- Extensin:
- El caso de uso origen extiende el comportamiento del caso
de uso destino
- Etiqueta <<extend>>
Programacin Orientada a Objetos
Diagrama de Casos de Uso - Ejemplo 2
Programacin Orientada a Objetos
Ejercicio 1 - Diagrama de Casos de Uso
- Una persona desea ir al mdico porque se encuentra
mal y quiere que le receten un medicamento en EEUU
- Para ir al mdico, se debe pedir una cita por telfono.
En cualquier momento, se puede anular una cita
previamente solicitada
- Una vez que el paciente est en el mdico, el doctor
comprueba su historial clnico en la base de datos del
sistema antes de expedir una receta
- Cada persona debe pagar sus facturas sanitarias
contratando un seguro privado o efectuando el pago de
cada una de las prestaciones sanitarias al banco del
hospital, permitindose el pago aplazado
6
Programacin Orientada a Objetos
Diagrama de clases
Programacin Orientada a Objetos
Diagrama de clases - Aspectos Generales
- Sirven para:
- Definir el conjunto de clases que componen el sistema
- Establecer las relaciones entre clases, interfaces, etc
- Modelar un esquema lgico de una BD
- Elementos:
- Clases
- Relaciones
- Paquetes
- Interfaces
Programacin Orientada a Objetos
Diagrama de clases - Clases
- Representacin:
- Nombre
- Atributos: Propiedades de la clase
- Mtodos: Implementacin de un servicio a una clase
Mtodos
Atributos
Nombre
- Acceso / Visibilidad:
- Privado (-): Solamente la clase puede utilizar este atributo
- Protegido (#): Las clases hijas podrn utilizar el atributo
- Pblico (+): Cualquier clase podr utilizar dicho atributo
Programacin Orientada a Objetos
Diagrama de clases - Atributos y mtodos
- Atributos:
- Propiedades de la clase
- Representacin: acceso, nombre (obligatorio), tipo, valor
inicial por defecto
- Mtodos:
- Implementacin de un servicio a una clase
- Representacin: acceso, nombre (obligatorio),
parmetros, valor de retorno
7
Programacin Orientada a Objetos
Diagrama de clases - Ejemplo 1
- Conceptual: "Una persona tiene un nombre y un
nmero de telfono"
- Especificacin: "Una persona puede almacenar y
consultar su nombre y telfono"
- Implementacin: "Una persona tiene un campo de tipo
String que almacena su nombre y dos mtodos para
consultarlo y almacenarlo"
Programacin Orientada a Objetos
Diagrama de clases - Clases y Objetos
Nombre del Objeto : Nombre de la clase
Atributos (opcional)
Programacin Orientada a Objetos
Diagrama de clases - Relaciones
- Asociacin: Los objetos de una clase estn relacionados
con los de otra clase
- Asociacin con direccin
Programacin Orientada a Objetos
Diagrama de clases - Relaciones - Multiplicidad
- Multiplicidad:
- Restriccin sobre una asociacin
- Limita el nmero de instancias de una clase que pueden
tener esa asociacin con una instancia de la otra clase
- Tipos:
- 1
- 0..1
- 0..* / *
- 1..*
- m..n
- 2..*
- 3, 4, 6..*
- 3
8
Programacin Orientada a Objetos
Diagrama de clases - Asociaciones - Multiplicidad
Roles
Multiplicidad
Programacin Orientada a Objetos
Diagrama de clases - Clases Asociativas
Programacin Orientada a Objetos
Diagrama de clases - Relaciones N-Arias
- Determinan relaciones entre tres o ms clases
- La multiplicidad se define dado un extremo, relativo a
otros extremos
- No estn recomendadas en el anlisis y diseo
- A veces son demasiado ambiguas para implementarlas
Equipo
Ao
Jugador
Registro
golesafavor
golescontra
triunfos
* temporada
*
*
Programacin Orientada a Objetos
Diagrama de clases - Agregacin y Composicin
- Una agregacin se caracteriza por cumplir alguno de los
siguientes criterios:
- Una clase forma parte de otra
- Los valores de los atributos de una clase se propagan en
los valores de los atributos de otra clase
- Una accin sobre una clase implica una accin sobre otra
- Los objetos de una clase se encuentran subordinados a los
de otra
9
Programacin Orientada a Objetos
Diagrama de clases - Agregacin
- Agregacin (dbil) - "Tiene":
- Las partes pueden compartir varios "todos"
- Si desaparece el "todo" puede permanecer sus "partes"
Programacin Orientada a Objetos
Diagrama de clases - Composicin
- Composicin (agregacin fuerte) - "Se compone":
- Si desaparece el "todo" desaparecen sus partes
Programacin Orientada a Objetos
Ejercicio 2 - Diagrama de clases - Agregacin /
Composicin
- Especificar si las siguientes relaciones son de agregacin
o de composicin, y cual es la multiplicidad de la
relacin:
- Caso 1: Un barco puede pertenecer a cero o una flotas y
una flota debe tener al menos un barco
- Caso 2: Relacin entre la clase libro y la clase captulo de
libro
- Caso 3: Relacin entre la clase matrimonio y la clase
persona
- Caso 4: Un almacn de repuestos tiene relaciones con las
clases cliente y con la clase cuenta
- Caso 5: Un sitio web est formado por distintas pginas
web
Programacin Orientada a Objetos
Diagrama de clases - Generalizacin o Herencia
- Permite definir una clase a partir de otra
- UML soporta herencia simple como mltiple
- Asociacin caracterstica de los modelos OO
10
Programacin Orientada a Objetos
Diagrama de clases - Clases Abstractas
- Define una clase no instanciable
pero s extensible
- Pueden contener:
- Atributos
- Mtodos e implementacin de los
mismos (se permite
sobreescritura)
- Prototipos de mtodos
(obligatoriamente implementados
por las subclases)
- Atributos, mtodos y prototipos
sern heredados por las subclases
Programacin Orientada a Objetos
Diagrama de clases - Interfaces
- Conjunto de mtodos que:
- Expresan una determinada funcionalidad (prototipo)
- Sern implementados por varias clases del modelo
- Relaciones:
- Entre interfaces y clases: relaciones de realizacin
- Es posible definir relaciones de herencia de interfaces
Programacin Orientada a Objetos
Diagrama de clases - Paquetes
- Agrupacin de elementos segn un criterio lgico
- Dividen y organizan la informacin de los modelos
- Pueden contener elementos de cualquier tipo
- Un elemento es exclusivo de un paquete
- Es posible anidar paquetes
- Pueden establecerse relaciones de dependencia
entre paquetes que representan el acceso a
clases de un paquete a otro
Programacin Orientada a Objetos
Ejercicio 3 - Diagrama de Clases
- Realizar el diagrama de clases (clases y relaciones) de:
- Un sitio Web consta de un nombre y un dominio (p.e.
google y www.google.com)
- Los sitios web contienen mltiples documentos los cuales
estn definidos por una ruta donde se encuentran. Cada
documento puede pertenecer a mltiples pginas Web
- Estos documentos pueden ser bien imgenes o pginas
Web. Las imgenes contendrn adems de la ruta, sus
dimensiones de altura y anchura
11
Programacin Orientada a Objetos
Ejercicio 4 - Diagrama de Clases
- Realizar el diagrama de clases de:
- Un sitio Web tiene tres tipos de usuarios: los
administradores del lugar, los usuarios de la empresa, y
los clientes que acceden a travs de Internet. Cualquier
usuario de la aplicacin accede a travs de la pantalla
inicial de acceso que contiene un formulario.
- El administrador es el encargado de gestionar los distintos
usuarios de la aplicacin
- Los usuarios de la empresa podrn consultar el stock de
los productos que tienen en la empresa
- Cualquier usuario despus de la pantalla inicial de acceso
al sistema podr realizar pedidos, modificar un pedido
realizado o consultar el estado de un pedido
Programacin Orientada a Objetos
Ejercicios - Hoja de ejercicios
- Diagramas de Casos de Uso y Clases - Ejercicios 1 a 10
Programacin Orientada a Objetos
Diagramas de Interaccin
Programacin Orientada a Objetos
Diagramas de Interaccin - Aspectos Generales
- Sirven para modelar los aspectos dinmicos de un
sistema - colaboraciones entre objetos
- Elementos:
- Objetos: instancias de una clase
- Relaciones: soportan el envo de mensajes
- Mensajes: enviados entre objetos
- Tipos:
- Secuencia: Destacan el orden temporal de los mensajes
- Colaboracin: Destacan la organizacin estructural de los
objetos que envan y reciben mensajes
- Son semnticamente equivalentes
12
Programacin Orientada a Objetos
Diagramas de Interaccin - Aspectos Generales
- Cmo construirlos?
- Escoger la opcin por defecto de cada caso de uso
- Identificar los objetos involucrados en cada caso de uso, a
partir de los diagramas de clases
- Establecer las relaciones y definir la interaccin
Programacin Orientada a Objetos
Diagramas de Secuencia
Programacin Orientada a Objetos
Diagramas de Interaccin - Secuencia - Aspectos Generales
- Resaltan la ordenacin temporal de los mensajes
- Para qu sirven?
- Ayudan a obtener nuevas clases y objetos en un escenario
- Detectar mtodos de las clases al observar las relaciones
para llevar a cabo una tarea determinada
- Especificacin de restricciones de interaccin en tiempo
real
- Documentacin de los casos de uso describiendo las
interacciones en trminos prximos al usuario
- Validar el cdigo durante las fases de prueba
Programacin Orientada a Objetos
Diagramas de Interaccin - Secuencia - Representacin Grfica
- Objetos:
- Lnea de vida de un objeto
- Foco del sistema
- Destruccin mediante 'X'
- Orden de los eventos en la vertical
13
Programacin Orientada a Objetos
Diagramas de Interaccin - Secuencia - Ejemplo 1
Programacin Orientada a Objetos
Diagramas de Interaccin - Secuencia - Mensajes
- Mensaje:
- Origen: Objeto que enva el mensaje
- Destino: Objeto que ejecuta el mensaje
- Un mensaje es un mtodo del objeto receptor
- Establece una relacin cliente/servidor entre el emisor y
el receptor
- Un objeto puede enviarse mensajes a s mismo
- Existe un mensaje de retorno implcito en cada uno de
los mensajes que no es necesario especificar
- Pueden incluir:
- Condiciones: [x > 10] : mensaje
- Iteraciones: *[i=1..n] : mensaje
Programacin Orientada a Objetos
Diagramas de Interaccin - Secuencia - Tipos de Mensajes
- Simple: Un objeto enva un mensaje a otro
- Sncrono: El cliente enva un mensaje y espera a que el
servidor lo acepte
- Abandono: El cliente enva un mensaje al servidor slo
si el servidor est preparado para aceptarlo. El cliente
abandona el envo si detecta que el servidor no est
preparado
Programacin Orientada a Objetos
Diagramas de Interaccin - Secuencia - Tipos de Mensajes
- Time-out: El cliente abandona el envo cuando el
servidor no puede dar una respuesta en un tiempo
previamente establecido
- Asncrono: El cliente enva un mensaje al servidor y
contina ejecutando su cdigo mientras espera una
respuesta del servidor
14
Programacin Orientada a Objetos
Diagramas de Interaccin - Secuencia - Bifurcaciones
Programacin Orientada a Objetos
Diagramas de Interaccin - Secuencia - Control
Centralizado
Descentralizado
Programacin Orientada a Objetos
Ejercicio 5 - Diagramas de Interaccin - Secuencia
- Tenemos un sistema de prstamos de un videoclub que
registra todos los prstamos de los socios y el estado
de las pelculas del videoclub. Un socio solicita al
encargado del videoclub una determinada pelcula. Si la
pelcula se encuentra en el videoclub y el socio no tiene
ninguna sancin, se presta la pelcula al socio. Como
justificante del prstamo el sistema imprime un recibo
para que el encargado se lo entregue al socio. Realizar
el diagrama de secuencia del sistema de prstamos del
videoclub
Programacin Orientada a Objetos
Ejercicio 6 - Diagramas de Interaccin - Secuencia
- Realizar el diagrama de secuencia de un sistema de
llamadas telefnicas. Cuando una persona quiere
llamar a otra, descuelga el telfono producindose en
la lnea el tono de llamada. A continuacin, se teclea
cada uno de los dgitos del nmero de telfono destino.
Una vez introducido el nmero de telfono completo, la
central telefnica enruta la llamada y crea un objeto de
tipo conversacin que es el encargado de llamar al
receptor de la llamada. Cuando el receptor descuelga
su telfono se produce una conexin desde el objeto
conversacin a los dos interlocutores
15
Programacin Orientada a Objetos
Diagramas de Colaboracin
Programacin Orientada a Objetos
Diagramas de Interaccin - Colaboracin - Aspectos Generales
- Resaltan la organizacin estructural de los objetos que
envan y reciben mensajes
- Una colaboracin es un mecanismo compuesto de
elementos estructurales y de comportamiento
- Son un mecanismo de organizacin:
- Un mismo elemento puede encontrarse en diferentes
colaboraciones
- Qu diferencias hay con los diagramas de secuencia?
- Indican qu objetos actan como atributos de otros
- Indican qu objetos son temporales y cules no
- Indican qu relaciones estructurales actan en una
colaboracin
Programacin Orientada a Objetos
Diagramas de Interaccin - Colaboracin - Representacin Grfica
- Objetos:
- Igual que en los diagramas de secuencia
- Objeto utiliza mltiples instancias para participar en una
colaboracin concreta
Programacin Orientada a Objetos
Diagramas de Interaccin - Colaboracin - Representacin Grfica
- Enlaces:
- Relaciones entre objetos que permiten el envo de
mensajes entre los mismos
- Instancias de las relaciones previamente establecidas
entre las clases a las que pertenecen dichos objetos
16
Programacin Orientada a Objetos
Diagramas de Interaccin - Colaboracin - Relaciones
- Visibilidad entre objetos:
- A nivel de campo: El objeto servidor es uno de los
atributos del objeto cliente (forma parte de la estructura)
- A nivel de parmetro: El objeto servidor es un parmetro
de alguno de los mtodos del objeto cliente
- Local: El objeto servidor es una variable local a alguno de
los mtodos del objeto cliente
- Global: El objeto servidor es global a alguno de los
mtodos del objeto cliente
- Posibilidad de establecer relaciones reflexivas
Programacin Orientada a Objetos
Diagramas de Interaccin - Colaboracin - Mensajes
- Representacin de las interacciones entre objetos.
- Secuencia de los mensajes est dada por los nmeros
de secuencia
- Posibilidad de incluir condiciones e iteraciones como en
los diagramas de secuencia
Programacin Orientada a Objetos
Ejercicio 7 - Diagramas de Interaccin - Colaboracin
- Realizar el diagrama de colaboracin:
- Mara quiere contratar un vuelo desde Madrid a Barcelona
operado por Iberia. Para ello, acude a una agencia de
viajes donde Jos le atiende
- Para la reserva de un vuelo es necesario comprobar si
existen todava plazas, lanzndole una peticin a la
compaa area
- Si es posible realizar una reserva, se comunica los
detalles del vuelo antes de solicitar al sistema un asiento.
Cuando se confirma la reserva del asiento, se enva una
confirmacin. A continuacin se procede a efectuar el
pago del billete y a emitir el billete del vuelo
Programacin Orientada a Objetos
Ejercicio 8 - Diagramas de Interaccin - Colaboracin
- Tenemos un sistema de gestin de pedidos de una
empresa. Cada pedido puede tener una o varias lneas
de pedido. Por cada producto del pedido, hay que
comprobar si hay stock suficiente de un determinado
elemento. Si existe stock suficiente se agrega a la lnea
de pedidos. Si no existe stock suficiente, se crea una
peticin para pedir ms productos al proveedor.
Realizar el diagrama de colaboracin de este sistema
17
Programacin Orientada a Objetos
Ejercicios - Hoja de ejercicios
- Diagramas de Interaccin - Ejercicios 1 a 6
Programacin Orientada a Objetos
Diagrama de Estados
Programacin Orientada a Objetos
Diagrama de estados - Aspectos Generales
- Modelan clases cuyo comportamiento es dinmico y
cuyos objetos atraviesan una serie de estados en
respuesta a estmulos recibidos, junto con sus
respuestas y acciones
- Elementos principales:
- Estados: Condicin/es de los objetos en un momento
determinado
- Eventos: Estmulo que provoca el cambio de estado de un
objeto
- Acciones: Ocurren cuando un objeto llega a un estado
- Muestran:
- Los estados que pueden tener los objetos de una clase
- Qu eventos causan un cambio de estado (transicin)
Programacin Orientada a Objetos
Diagrama de estados - Aspectos Generales
- Se utilizan para:
- Identificar atributos de objetos
- Hacer explcito el/los atributo/s que modifican el
comportamiento del objeto
- Muy tiles para modelar sistemas reactivos
- Pueden dibujarse para todas las clases del sistema,
aunque no es recomendable
Evento (parmetros) [condiciones] / acciones
18
Programacin Orientada a Objetos
Diagrama de estados - Estados
- Periodo de tiempo donde el objeto est esperando algn
mensaje u operacin
- El estado inicial SIEMPRE debe existir
- El/los estado/s finales pueden NO existir (p.e. sistema
que se arranca y no se para nunca)
Programacin Orientada a Objetos
Diagrama de estados - Transiciones y eventos
- Una transicin es una conexin unidireccional que une
el estado de partida con el estado destino
- Puede haber transiciones al mismo estado de origen
- Evento Causa del paso de un estado a otro:
- Condicin que toma el valor de verdadero o falso
- Recepcin de una seal de otro objeto del modelo
- Recepcin de un mensaje
- Paso de un cierto periodo de tiempo
Programacin Orientada a Objetos
Diagrama de Estados - Ejemplo 1
- Estado de una bombilla de una lmpara
Programacin Orientada a Objetos
Diagrama de Estados - Ejemplo 2
- Estado de una persona en relacin a su vida laboral
19
Programacin Orientada a Objetos
Diagrama de estados - Condiciones
- Se pueden representar condiciones booleanas que
indican si se desencadena un evento o no
Programacin Orientada a Objetos
Diagrama de Estados - Ejemplo 3
- Sistema de gestin de vuelos donde:
- El usuario selecciona un asiento disponible
- El sistema bloquea el asiento mientras el usuario realiza el
pago del billete de avin
- Si el usuario no realiza el pago en 10 minutos, el asiento
volver a estar disponible para nuevos clientes
- Una vez pagado el vuelo, se emite un billete electrnico
considerando en ese momento el asiento como vendido
Programacin Orientada a Objetos
Ejercicio 9 - Diagrama de Estados
- El tablero de juego est compuesto de varias celdas o
clulas. Cada clula percibe a sus 8 vecinas. Una clula
tiene dos posibles estados: viva o muerta
- Reglas de evolucin:
- Si una clula muerta est rodeada en la actual generacin
por exactamente tres vecinos vivos, esta clula "nacer"
en la siguiente generacin
- Si una clula viva est rodeada por 2 o 3 clulas vivas,
sta permanecer viva en la siguiente generacin
- En el resto de los casos, las clulas mueren o permanecen
muertas
Programacin Orientada a Objetos
Diagramas de Estados - Acciones
- Las acciones pueden acompaar a los eventos cuando
las transiciones son desencadenadas por estos
- Tipos de acciones:
- Al entrar en un estado se produce una accin (on entry)
- Al salir de un estado se produce una accin (on exit)
- Dentro de un estado hay que realizar una accin (do acc)
20
Programacin Orientada a Objetos
Diagrama de Estados - Ejemplo 4
Programacin Orientada a Objetos
Ejercicio 10 - Diagrama de Estados
- Realizar el diagrama de estados de un libro de una
biblioteca. Los posibles estados de un libro son
"no_reservado" y "reservado"
Programacin Orientada a Objetos
Ejercicio 11 - Diagrama de Estados
- Cuando una persona quiere comprarse una casa, solicita una
hipoteca al banco. Una vez que el banco estudia su caso y acepta
la concesin de la hipoteca, el usuario debe pagar a fines de mes
una letra
- Mientras que el usuario no abone el total del importe que le queda
por pagar, se encontrar en un estado donde su hipoteca se
encuentre parcialmente pagada. Cada mes que el cliente pague
una letra, se actualizar el importe total que le queda por pagar
- Si el usuario impaga una cuota, su hipoteca pasar a estar
impagada, embargndole el banco su casa
- Al cabo de los aos, si el usuario consigue pagar totalmente su
casa, la hipoteca ser cancelada y el piso ser de su propiedad
Programacin Orientada a Objetos
Ejercicio 12 - Diagrama de Estados
- Diagrama de estados de un sistema de validacin de
tarjetas de un cajero automtico.
- El sistema permitir al usuario tres intentos para
introducir su PIN de la tarjeta
- El cajero permitir tres opciones:
- Ingreso de dinero
- Reintegro de dinero
- Transferencia de dinero
21
Programacin Orientada a Objetos
Ejercicios Diagramas de Estado - Hoja de ejercicios
- Diagramas de Estados - Ejercicios 1 a 9
Programacin Orientada a Objetos
Diagrama de Actividades
Programacin Orientada a Objetos
Diagrama de Actividades - Aspectos Generales
- Modelan el flujo de las actividades de un sistema
- Elementos principales:
- Actividades
- Transiciones
- Bifurcaciones
- Muestran:
- Orden en el que se realizan las tareas dentro de un sistema
- Se utilizan para especificar:
- Un mtodo
- Un caso de uso
- Un proceso de negocio
Programacin Orientada a Objetos
Diagrama de Actividades - Actividades
22
Programacin Orientada a Objetos
Diagrama de Actividades - Transicin
- Una transicin refleja el paso de un estado a otro
- Cuando una actividad finaliza desencadena una
transicin y comienza una nueva actividad
Programacin Orientada a Objetos
Diagrama de Actividades - Bifurcacin
- Expresan distintos caminos dependiendo de una o varias
condiciones
Programacin Orientada a Objetos
Ejercicio 13 - Diagrama de Actividades
- Realizar el diagrama de actividades de la siguiente
situacin:
- Un alumno puede decidir entre estudiar un examen si el
examen es difcil, o ver la televisin si el examen es muy
fcil y ha hecho las prcticas de la asignatura.
Independientemente de lo que elija, al da siguiente se
presentar al examen
Programacin Orientada a Objetos
Diagramas de Actividades - Divisin y Unin
23
Programacin Orientada a Objetos
Diagramas de Actividades - Divisin en "calles"
- Se puede representar la divisin de responsabilidades
dentro de un sistema dividiendo por "calles" / columnas.
- Cada calle representa a uno o ms objetos y las
responsabilidades de ese objeto (actividades de cada
objeto)
Programacin Orientada a Objetos
Diagramas de Actividades - Divisin en "calles" - Ejemplo
Programacin Orientada a Objetos
Ejercicios - Hoja de ejercicios
- Diagramas de Actividades - Ejercicios 1 a 3
Programacin Orientada a Objetos
Ejercicio 14 - Diseo OO - Parte I
- Se pretende disear una mquina de lavar vehculos.
Las acciones a tener en cuenta son las siguientes:
- El usuario inserta dinero en la mquina para poder lavar
su coche
- El usuario puede pedir opcionalmente abrillantador para
el coche
- La mquina le permite seleccionar un programa de lavado
- La mquina le permite cancelar un programa de lavado
- La mquina les proporciona el cambio correspondiente al
usuario o le devuelve el importe completo en caso de
haya cancelado la operacin o que no tenga cambio
24
Programacin Orientada a Objetos
Ejercicio 14 - Diseo OO - Parte II
- Representar los siguientes diagramas:
- Casos de uso del funcionamiento de la mquina de lavado
- Clases
- Secuencia que muestre la operacin normal de seleccin
de un programa entre el usuario y la mquina
- Secuencia que muestre la cancelacin de un programa
- Colaboracin que sea la traduccin de los diagramas de
secuencia anteriores
- Estados que muestre algunos de los estados por los que
pasa el sistema cuando un usuario selecciona la opcin de
"consultar programas de lavado"

También podría gustarte