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"