User Tools

Site Tools


apuntes:uml

This is an old revision of the document!


Diseño de aplicaciones con UML

¿Qué es UML

UML (Lenguaje unificado de modelado) es un lenguaje que permite representar el diseño y estructura de un Proyecto de Software bajo el paradigma de orientación a objetos.

Define los elementos y reglas para diseñar diferentes tipos de diagramas en función del aspecto del proyecto que se quiere representar o modelar:

  • Diagramas de comportamiento: Se utilizan para representar qué tiene que ocurrir en el sistema que se modela
  • Diagramas de estructura: Se utilizan para representar los componentes que deben existir en el sistema
  • Diagramas de interacción: Se utilizan para representar el flujo de la información del sistema

Herramientas para el diseño de Diagramas UML

  • diagrams diagrams.net (draw.io) [windows|linux|osx]
  • StarUML StarUML [windows|linux|osx]
  • Modelio Modelio [windows|linux|osx]

Diagramas de casos de uso

  • Se utilizan para diseñar las diferentes tareas (o funcionalidades) que tiene que despeñar un sistema
  • Se modelan también los actores o entidades externas que interactúan con dicho sistema
  • A cada una de esas tareas o formas en que una ctor utiliza el sistema, se le denomina caso de uso
Figure 1: Diagrama de casos de uso

Cómo diseñar diagramas de casos de uso

Elementos de un diagrama de casos de uso:

  • Actor: Entidad que hace uso del sistema bajo un determinado rol
  • Caso de uso: Representa una funcionalidad del sistema
  • Límite del sistema: Define el ámbito del sistema. Define que está y que no está dentro del mismo

Relaciones entre casos de uso:

  • Include: Permite indicar que un caso de uso utiliza la funcionalidad de otro (siempre lo hace)
  • Extends: Permite indicar que un caso de uso puede extender la funcionalidad de otro (no necesariamente)
  • Generalization: Permite indicar que un caso es una variante de otro (“herencia”)
Figure 2: Elementos en un diagrama de casos de uso



Diagramas de clases

  • Describe la estructura estática de un sistema
  • Se describen las clases que forman el sistema y las relaciones entre éstas
  • Además, para cada clase, se definen sus atributos y operaciones (métodos). Normalmente se evita incluir métodos como getters y setters o aquellos que no aportan demasiado significado al modelo
Figure 3: Diagrama de clases

Cómo diseñar diagramas de clases

  • Se representan todas las clases (e interfaces) relevantes del sistema
  • Se suelen indicar también los atributos y métodos más relevantes de cada clase
  • Existe un símbolo para distinguir entre los diferentes tipos de clases: clases, clases abstractas e interfaces
  • También deben representarse las relaciones entre las clases, con símbolos que permite especificar el tipo de relación que hay entre ellas (de pertenecencia, de uso, . . .)
  • Si una clase no es muy relevante, puede no incluirse (clases Utils, constantes, clases poco representativas, . . .)
Figure 4: Elementos de un diagrama de clases

Con respecto a las relaciones entre clases:

  • Herencia: Permite representar una relación de herencia entre dos clases
    • Se representa mediante una flecha blanca de la clase que hereda hacia la clase base

  • Composición: Permite representar una relación en la que una clase es una parte de otra. En este caso la primera clase no tiene sentido sin que exista la segunda, puesto que forma parte de ella
    • Se representa mediante un rombo rellno en el lado de la clase contenedora

  • Agregación: Permite representar que una clase está relacionada pero cada una de las clases tiene su propio ciclo de vida. Es una relación más débil que la anterior
    • Se representa mediante un rombo vacío en el lado de la clase Contenedora

  • Asociación: Representa una relación más débil. Ninguno de los elementos son parte del otro
    • Se representa mediante una flecha hacia la clase con la que se relaciona cuando es unidireccional o bien con dos flechas (una a cada lado) o simplemente con una línea, cuando es bidireccional

Hay un artículo muy interesante sobre las relaciones entre clases en https://www.baeldung.com/java-composition-aggregation-association



Diagramas de secuencia

  • Describe el flujo de información en la interacción entre diferentes objetos de un sistema
  • Permite representar la secuencia de llamadas a métodos entre objetos que están relacionadas entre sí para definir un proceso de negocio del sistema
Figure 5: Diagrama de secuencia

Cómo diseñar diagramas de secuencia

Figure 6: Elementos de un diagrama de secuencia



Ejercicios resueltos

Gestión de una biblioteca

Se quiere diseñar una aplicación web para la gestión de una biblioteca que funciona de la siguiente manera:

  • En algún momento los usuarios tendrán que registrarse en la aplicación (y se almacenarán algunos datos sobre ellos)
  • Los bibliotecarios también la utilizan para realizar su trabajo, por lo que también debe ser registrados en ellas (con la información pertinente)
  • Los usuarios podrán solicitar libros (son enviados a su domicilio) y devolverlos (la biblioteca envía un mensajero a su casa)
  • Los usuarios podrán renovar el carnet (el bibliotecario confirmará más adeante dicha renovación desde la aplicación)
  • Los usuarios pueden enviar sugerencias de libros que les gustaría que hubiera en el catálogo
  • Los usuarios pueden enviar consultas sobre libros
  • Los bibliotecarios podrán consultar los libros que un usuario tiene asi como consultar el stock de la biblioteca
  • Los bibliotecarios también pueden responder a las consultas de los usuarios
  • Los bibliotecarios pueden actualizar/renovar el stock de libros, para lo cual tendrán que hacer un pedido a través de la aplicación

Diagrama de casos de uso

Diagrama de clases

Diagrama de secuencia (Bibliotecario solicita un pedido de libros)


Gestión del servicio público de bicicletas

El Ayuntamiento de Zaragoza quiere implantar un sistema de control para las estaciones de bicicletas públicas que ha instalado recientemente. El objetivo es conocer donde están las bicicletas en cada momento y saber qué usuarios las han usado y cuando lo han hecho. Además, cada bicicleta tiene instalado un módulo de autodiagnóstico que detecta las averías para que éstas quede registradas y puedan ser reparadas por los técnicos del Ayuntamiento.

  • De cada bicicleta se almacenará su matrícula, cuantas marchas tiene, el color, si tiene o no cesta, la velocidad máxima y si está o no averiada.
  • Por otra parte, a los usuarios se les obliga a darse de alta a través de una web, aportando su DNI, nombre, apellidos, email, teléfono móvil y un número de cuenta.
  • Hay que tener en cuenta que habrá muchas estaciones repartidas por la ciudad y que los usuarios deben poder consultar información relativa a éstas desde una página web: el número asignado a la estación, dirección donde se encuentra, si está o no operativa, su capacidad máxima y el horario de apertura de dicha estación.
  • Cuando el módulo de diagnóstico detecta una avería, la envía al servidor central aportando un número de avería, una descripción breve de la misma y la fecha en la que tuvo lugar. Por supuesto, habrá que saber qué bicicleta está averiada. De esa manera los mecánicos del servicio podrán consultar el fichero de averías y repararlas.
  • También es importante que quede guardado qué mecánico arregló una avería determinada (de ellos se guarda su código de empleado, nombre, apellidos y teléfono móvil) teniendo en cuenta que cada uno tiene asignadas dos estaciones de las que hacerse cargo, aunque las bicicletas pueden estar en cualquier estación.
  • Además, es necesario conocer en cada momento qué usuario tiene una bicicleta determinada asi como las bicicletas que han sido utilizadas por los usuarios y durante cuánto tiempo las usaron. En el caso de las averías también tienen que quedar registradas cuál fue el último usuario que usó la bicicleta averiada por si hubiera que multarlo
  • Es muy importante tener en cuenta cómo funciona el proceso de desanclaje de bici por la que un usuario puede disponer de una bicicleta al pasar su tarjeta de usuario por alguna de las estaciones:
    • El usuario pasa la tarjeta por el lector, éste la lee y comprueba que el usuario existe, que tiene saldo en la cuenta y que no tiene ninguna bicicleta en uso actualmente
    • Tras las comprobaciones iniciales deberá comprobar si tiene bicis ancladas y si alguna se encuentra disponible (a veces las bicis están estacionadas pero pendientes de ser reparadas)
    • Si todo está bien, libera el anclaje de la primera bici libre y lo notifica al usuario en la pantalla. Éste tendrá 40 segundos para hacerse con la bici antes de que la estación vuelva a dejar la bicicleta anclada (por seguridad)

Diagrama de casos de uso

Diagrama de clases

Diagrama de secuencia


Ejercicios

Casos de uso y Diagramas de clases

  1. Se quiere diseñar aplicación para gestionar todos los datos de un campeonato de fútbol sala que se organiza este año en la ciudad. Aquellos que quieran participar deberán formar un equipo (nombre, patrocinador, color de la 1ª camiseta, color de la 2ª camiseta, categoría, . . .) e inscribirse en el campeonato. A medida que transcurran los partidos se irán almacenando los resultados de éstos, así como qué equipos lo jugaron, en qué campo se jugó, quién lo arbitró y alguna incidencia que pudiera haber ocurrido (en caso de que no ocurran incidencias no se anotará nada. Además, los participantes deberán rellenar una ficha de suscripción con algunos datos personales (nombre, apellidos, edad, dirección, teléfono, . . .)

  2. Se quiere diseñar una aplicación para controlar el acceso a las pistas deportivas de Zaragoza. Se tendrán en cuenta los siguientes supuestos:
    • Todo aquel que quiera hacer uso de las instalaciones tendrá que registrarse y proporcionar su nombre, apellidos, email, teléfono, dni y fecha de nacimiento
    • Hay varios polideportivos en la ciudad, identificados por nombre, dirección, extensión (en m2)
    • En cada polideportivo hay varias pistas de diferentes deportes. De cada pista guardaremos un código que la identifica, el tipo de pista (tenis, fútbol, pádel, . . .), si está operativa o en mantenimiento, el precio y la última vez que se reservó
    • Cada vez que un usuario registrado quiera utilizar una pista tendrá que realizar una reserva previa a través de la web que el ayuntamiento ha creado. De cada reserva queremos registrar la fecha en la que se reserva la pista, la fecha en la que se usará y el precio. Hay que tener en cuenta que todos los jugadores que vayan a hacer uso de la pista deberán estar registrados en el sistema y serán vinculados con la reserva

  3. Diseña el diagrama de clases de una aplicación para la gestión de la secretaría de un colegio:
    • Cuando un alumno venga a matricularse se le hará rellenar una ficha con sus datos que luego se introducirá a la aplicación: DNI, número de expediente, nombre, apellidos, domicilio, teléfono y e-mail
    • Se tendrá ya almacenada información sobre todos los cursos que se imparten en el centro: un código, el nombre, aula donde se imparte y el horario
    • Se almacenarán todas las asignaturas de todos los cursos con el fin de conocer en que asignaturas se matricula cada alumno. De cada una guardaremos el nombre, el profesor que la imparte y el número de horas a la semana. Hay que tener en cuenta que todos los alumnos se matricularán al menos de una asignatura en algún curso
    • Los profesores también están dentro de la Base de Datos, con la siguiente información: nombre, apellidos, domicilio y e-mail. Un profesor podrá impartir como máximo 6 asignaturas y deberá impartir al menos una. También habrá que almacenar el curso del que un profesor es tutor, teniendo en cuenta que puede que no sea tutor de ningún curso
    • Hay que tener en cuenta que es importante almacenar las notas que cada alumno tiene en cada asignatura a lo largo del curso en las distintas evaluaciones, así como las observaciones que los profesores podrán anotar. Además, al principio de curso los alumnos escogerán con que compañero quieren realizar las prácticas o trabajos de cada una de las asignaturas (será siempre con el mismo), información que almacenaremos también en la Base de Datos

  4. Diseña el modelo de clases para la siguiente aplicación de gestión para uno de los hoteles del complejo Gran Scala:
    • En este hotel, los clientes se registran por Internet al solicitar su reserva, que podrá incluir una o varias habitaciones. En cualquier caso la fecha de entrada y salida de todas las habitaciones de una misma reserva será la misma. Además, debido a la exclusividad del hotel, cada habitación dispone de personal propio (uno o varios empleados, dependiendo del tipo de habitación). De los clientes almacenaremos nombre, apellidos, teléfono, email y fecha de nacimiento. Hay que tener en cuenta que guardaremos un histórico de todas las reservas que un cliente vaya realizando a lo largo del tiempo, pero en un momento dado un cliente sólo puede tener una reserva.
    • Es importante almacenar tanto la fecha de entrada y salida de cada una de las reservas, asi como las habitaciones que la componen. De cada habitación almacenamos el tipo, precio, extensión y el número de clientes que hasta el momento la han utilizado. Cada habitación tiene asignado un número determinado de empleados, de los que guardamos nombre, apellidos, horario y cargo que desempeñan. Hay que tener en cuenta que cada empleado sólo puede tener asignada una habitación donde trabajar.
    • A la hora de realizar el cobro de los servicios utilizados, será importante almacenar cuando un cliente hace un uso de los empleados de alguna de sus habitaciones, puesto que tiene un coste por tarea desempeñada. Habrá que anotar la fecha y hora en la que se hace uso de sus servicios y el precio del mismo. Asi, todos esos cargos se añadirán al precio de la propia reserva.
    • Por último, hay que tener en cuenta que será interesante tener en cuenta que las habitaciones tienen un precio pero éstas pueden ser reservadas a precios más bajos dependiendo de la oferta en vigor, que deberá guardarse también. Tanto el precio de la habitación como el precio que realmente paga el cliente por ella son datos que deben ser registrados

  5. Una empresa desea crear un sitio Web de comercio electrónico al que se podrán conectar clientes para realizar sus compras. Se tiene que realizar el diseño de la Base de Datos que soporte la operativo de este sitio Web.
    • Cuando un usuario intenta entrar en este sitio, se le pedirá un login y una contraseña. El sistema comprobará si el usuario tiene cuenta y en caso negativo se le pedirán los siguientes datos de alta: NIF, correo, nombre, dirección, teléfono, login y password. Se comprobará si ya existía con distinto login para darle un mensaje de error.
    • Una vez el usuario se ha dado de alta o ha entrado con su login y password correctos, puede visitar las distintas secciones de la tienda virtual. Nuestra empresa quiere que quede constancia de las secciones visitadas por los usuario y la fecha en la que la visitaron. Hay que tener en cuenta que un usuario podrá visitar varias secciones. De cada sección se almacenará un código, nombre, descripción y fecha de creación.
    • Los usuarios pueden realizar sus compras utilizando un carrito virtual. Cuando un usuario decide utilizar el carrito, el sistema creará uno almacenando la fecha de creación. El usuario entonces puede poner productos, detallando cuantas unidades desea o bien eliminarlos. Un carrito puede contener varios productos y un producto puede aparecer en carritos de diferentes usuarios.
    • De los productos se almacenará el código de producto, el nombre, la descripción y el precio por unidad. Cuando un usuario decide finalizar su compra, el sistema le pedirá entonces los datos bancarios (si es la primera vez que paga) y dará el carrito por finalizado. El usuario puede dejar un carrito lleno y no completar la compra en esa sesión, para completarla otro día. El usuario debe poder comprobar cuál es el coste total de un carrito antes de pagarlo. Además podrá comprobar el precio total de todos sus carritos anteriores y su contenido.
    • En este sitio Web los productos están organizados en las diferentes secciones teniendo en cuenta que un producto puede aparecer en varias secciones y una sección puede tener varios productos

  6. Se quiere crear una aplicación para una inmobiliaria que funciona de la siguiente manera:
    • La inmobiliaria se dedica a la venta o alquiler de inmuebles de diferentes tipos: pisos, chalets, locales, plazas de garage, . . .
    • Los bienes inmuebles se identifican por un código numérico y su información es la dirección, población, código postal, precio de venta, precio de alquiler, fecha del último movimiento y observaciones. Habrá que tener en cuenta que un mismo inmueble puede estar sólo en alquiler, en venta, o ambas. Además, hay que saber que los precios son aproximados, puesto que el precio por el que realmente se alquile o venta puede ser diferente.
    • Hay varios agentes, que se identifican por su DNI, de los que guardaremos su nombre, dirección, población, teléfono, horario (mañana/tarde), salario base y observaciones.
    • Se almacena información de cada uno de los clientes cuando éstos realizan alguna operación con la oficina, dni, dirección, población, teléfono y email.
    • Todos los movimientos, sean de venta o alquiler, se registran con toda la información necesaria, que habrá de determinarse.
    • Por último, habrá que tener en cuenta que a final de cada mes, los agentes recibirán una comisión, en función de las ventas que hayan realizado dependiendo del tipo de inmueble. Habrá que hacer las modificaciones necesarias en la Base de Datos para poder calcular y almacenar dicha información

  7. Un sitio de juegos online por Internet desea contar con una base de datos para gestionar los usuarios, juegos y partidas que se desarrollan en su plataforma. El funcionamiento del sitio es el siguiente:
    • Cuando un usuario entra en este sitio, se le pide el nombre de usuario y una contraseña. El sistema comprobará si el usuario tiene cuenta y en caso negativo se le pedirán los siguientes datos de alta antes de darle acceso: nombre, email, nick, login y contraseña. Se comprobará si ya existía algún usuario con el mismo nick y login para darle un mensaje de error en ese caso.
    • Una vez el usuario ha iniciado una sesión, puede visitar los distintos salones donde se están disputando las partidas. No se desea que quede constancia de dichos salones en la base de datos. Si un usuario quiere entrar en una partida o crear una nueva tiene que crear un avatar, que será su representación en el mundo virtual. Cada usuario podrá tener diferentes avatares pero cada avatar sólo puede pertenecer a un usuario. De los avatares queremos almacenar el aspecto y el nivel. Éstos se identificarán por el nick del propietario.
    • Hay que tener en cuenta que un avatar solo sirve para un tipo de juego, mientras que en un juego puede haber registrado varios avatares de diferentes usuarios. De los tipos de juego se almacenarán un código, el nombre, una descripción y un texto con las reglas del mismo.
    • Los usuarios podrán crear partidas de ese juego para que otros se unan a la partida, o bien podrán unirse a partidas existentes, siempre utilizando el avatar correspondiente. De cada partida queremos almacenar el código, nombre, una contraseña (opcional), fecha y hora de creación, el estado (en curso o finalizada) y también es necesario conocer el avatar del usuario que la creó. Además, hay que tener en cuenta que una partida sólo puede ser para un tipo de juego, aunque un juego puede tener varias partidas.
    • Las partidas se podrán dejar a medias para continuarlas otro día. Cuando un usuario la crea, puede dar una contraseña de entrada para limitar el acceso. Aquellos usuarios que se unan a las partidas con contraseña quedarán registrados de manera que si quieren abandonarla y unirse más tarde no tengan que volver a introducir dicha contraseña. Nunca se permitirá a los usuarios volver a conectarse a partidas que han finalizado
    • Por último, para obtener las puntuaciones finales, se desean registrar los enfrentamientos que se producen en cada partida entre los diferentes avatares de los usuarios, y el resultado de los mismos

  8. La empresa de comida rápida Burger King, con servicio a domicilio, desea crear una aplicación para gestionar todo su negocio. Actualmente sólo vende hamburguesas, ensaladas y bebidas, aunque también quiere registrar todas las ventas realizadas, así como la actividad de sus empleados.
    • Burger King tiene varios centros de comida rápida distribuidos por toda la comunidad de Aragón y atenderá peticiones en todas las poblaciones. De cada centro se quiere almacenar un código, nombre, dirección, población y un teléfono.
    • Aunque todos los centros pertenecen a Burger King, la empresa da libertad a cada uno para que oferten sus propias hamburguesas y ensaladas. De dichas ofertas se almacena el número, nombre, descripción y precio. Hay que tener en cuenta que una hamburguesa puede ser ofertada por más de un centro.
    • De los clientes a domicilio guardaremos su número, nombre, dirección y teléfono. Además, en cada pedido almacenaremos los productos que se han adquirido así como la fecha del mismo. También es importante, para hacer descuentos, saber la cantidad de pedidos totales por cliente.
    • Respecto a los empleados, hay que almacenar su DNI, nombre, dirección, teléfono y población. La empresa asignará empleados a los diferentes centros según las necesidades de cada uno. Un empleado sólo estará asignado un centro en un momento dado pero puede ser reasignado a otro distinto. Por ello, interesa conocer los centros en los que un empleado determinado ha trabajado y en qué fechas empezó y terminó en cada caso.
    • Además, para analizar sus ventas, se almacena información de todas las poblaciones en las que se ha abierto algún centro: nombre, provincia y número de habitantes. Hay que tener en cuenta que en una misma población podrá haber más de un centro

  9. El Gobierno de Aragón quiere mantener, en una aplicación, toda la información de las fiestas celebradas en todos los pueblos de la comunidad para el verano de 2012.
    • En particular se quiere almacenar la información referente a los grupos musicales que actúan en cada pueblo, los encierros que se celebran y las peñas de cada municipio. Toda esta información se utilizará para proporcionar ayudas económicas a los municipios que la soliciten.
    • De cada municipio se almacenará el nombre, el número de habitantes, la superficie de su término municipal, el presupuesto de las últimas fiestas y el número de peñas que tiene. De cada grupo musical se mantener el nombre, el año de formación, el precio por actuación y el número de componentes. Hay que tener en cuenta que un grupo puede actuar en varios pueblos en diferentes fiestas y un municipio puede tener la actuación de varios grupos. Por supuesto, un grupo puede repetir actuación en un mismo pueblo. Además, será importante mantener información sobre las fechas en las que ha actuado cada grupo en cada uno de los pueblos.
    • En cuanto a los encierros, se almacenará el pueblo en el que se realizan, la fecha, la ganadería y el número de heridos producidos.
    • Las peñas se definen por el nombre, el número de socios y el año en que se crearon. Hay que tener en cuenta que una peña solo puede pertenecer a un pueblo y un pueblo puede tener varias peñas. También interesa conocer qué peñas colaboran con la celebración de los encierros. Además, es importante conocer el número de heridos de cada peña que se producen en un encierro determinado.
    • Por último, habrá que tener en cuenta que para cada actuación de un grupo musical, es una peña de dicho municipio quién elige dicho grupo

  10. El Ayuntamiento de Zaragoza quiere implantar un sistema de control para las estaciones de bicicletas públicas que ha instalado recientemente. El objetivo es conocer donde están las bicicletas en cada momento y saber qué usuarios las han usado y cuando lo han hecho. Además, cada bicicleta tiene instalado un módulo de autodiagnóstico que detecta las averías para que éstas quede registradas y puedan ser reparadas por los técnicos del Ayuntamiento.
    • De cada bicicleta se almacenará su matrícula, cuantas marchas tiene, el color, si tiene o no cesta, la velocidad máxima y si está o no averiada.
    • Por otra parte, a los usuarios se les obliga a darse de alta a través de una web, aportando su DNI, nombre, apellidos, email, teléfono móvil y un número de cuenta.
    • Hay que tener en cuenta que habrá muchas estaciones repartidas por la ciudad y que los usuarios deben poder consultar información relativa a éstas desde una página web: el número asignado a la estación, dirección donde se encuentra, si está o no operativa, su capacidad máxima y el horario de apertura de dicha estación.
    • Cuando el módulo de diagnóstico detecta una avería, la envía al servidor central aportando un número de avería, una descripción breve de la misma y la fecha en la que tuvo lugar. Por supuesto, habrá que saber qué bicicleta está averiada. De esa manera los mecánicos del servicio podrán consultar el fichero de averías y repararlas. También es importante que quede guardado qué mecánico arregló una avería determinada (de ellos se guarda su código de empleado, nombre, apellidos y teléfono móvil) teniendo en cuenta que cada uno tiene asignadas dos estaciones de las que hacerse cargo, aunque las bicicletas pueden estar en cualquier estación.
    • Además, es necesario conocer en cada momento qué usuario tiene una bicicleta determinada asi como las bicicletas que han sido utilizadas por los usuarios y durante cuánto tiempo las usaron. En el caso de las averías también tienen que quedar registradas cuál fue el último usuario que usó la bicicleta averiada por si hubiera que multarlo

  11. Como desarrollador de la empresa EventoBook, debes diseñar el modelo de clases de la aplicación estrella de la empresa. Se trata de una red social para que la gente se relacione con sus amigos y con eventos que tienen lugar en su ciudad de forma que puedan consultarlos, apuntarse y ver si sus amigos también van a acudir. Además, podrán opinar sobre ellos y compartir esas opiniones con el resto de los usuarios de esta red.
    • Cada nuevo usuario debe registrarse proporcionando su nombre, apellidos, email, una contraseña y su fecha de nacimiento. Por otro lado, cualquiera puede registrar eventos que podrán ser de dos tipos: deportivos y culturales, indicando en ambos casos nombre, descripción del evento, una URL, la dirección (compuesta de calle, código postal, población y provincia), la fecha de inicio, la fecha de finalización y el precio, si tienen. Además, dependiendo del tipo de evento se almacenarán algunos otros datos. De los eventos deportivos se almacena el deporte y los equipos que se enfrentan (cantidad variable) además de todos los datos anteriores. Si el evento es cultural se añaden el motivo (que tomará los valores música, pintura ó cine) y el nombre del artista que ha motivado dicho evento. En cualquier caso debe quedar constancia del usuario que creó el evento.
    • Los usuarios podrán indicar qué usuarios son conocidos suyos y el motivo (que tomará los valores trabajo, familia o amistad) y asi quedará almacenado. Además, los usuarios se podrán apuntar a los eventos de forma que será necesario conocer qué usuarios van a cada uno de ellos. Tras la celebración del evento el usuario que haya ido podrá dejar (o no) una opinión sobre el mismo donde podrá escribir una opinión libre sobre ese evento, una puntuación (de 1 a 10) y si lo recomendaría o no a sus amigos. Hay que tener en cuenta que las opiniones deben ser anónimas, de forma que no sea posible saber que usuario la ha escrito

  12. Han abierto un centro comercial en Zaragoza y para su gestión se debe diseñar una Base de Datos para almacenar toda la información sobre el mismo. Es el centro comercial más grande del mundo por lo que tendrá varios tipos de establecimientos: tiendas de ropa, restaurantes y museos. De todos ellos se almacenará el nombre, número de local, capacidad máxima y su horario. Además, de las tiendas de ropa se almacenará el tipo de ropa que venden y si están de rebajas o no. Para los restaurantes se almacenará el nombre del chef y el estilo de comida que preparan; y para los museos se almacenará una lista con los pintores que exponen sus obras en cada momento.
    • Además, se almacenará la información de los clientes que asisten a estos establecimientos (si éstos lo autorizan) almacenando el nombre, apellidos, dirección, teléfono y email. También se almacenará en qué establecimientos han hecho alguna compra y la cantidad a la que ésta asciende. Se ofrecerán descuentos a aquellos clientes que vengan recomendados por otros, por lo que es interesante almacenar esta relación.
    • Puesto que también se celebran eventos de todo tipo en el centro comercial (almacenando el nombre del evento, fecha y tipo de evento, que podrá ser deportivo, festivo o cultural), se venderán entradas que los clientes podrán adquirir para asistir a los mismos. De las entradas se guardará la numeración, la fecha de compra, la butaca asignada y el tipo de entrada que podrá ser VIP, PREMIUM o NORMAL. Es importante que quede registrado a qué cliente pertenece cada entrada, ya que son personales

Diagramas de secuencia

  1. Realiza el diagrama de secuencia del proceso de validación de un carrito de la compra. Durante el proceso se debe comprobar que hay stock suficiente de todos los productos, se debe actualizar éste en base de datos y también el pedido. Además, se registrará una orden de trabajo en los almacenes que corresponda y se enviará un email de confirmación al usuario

  2. Realiza el diagrama de secuencia del proceso de baja de un usuario en una tienda online. Para que el proceso se complete se debe comprobar antes que no tiene pedidos pendientes de entrega ni de pagar. Tras la baja efectiva en base de datos se le enviará un email de confirmación al usuario

  3. Realiza el diagrama de secuencia del proceso de publicación de notas finales de una aplicación de gestión académica. El proceso de publicación debe comprobar si el alumno supera o no la asignatura (verificando el valor de la nota) para registrarlo asi en la base de datos. Además, si el alumno tiene ya superadas todas las asignaturas, deberá calcular su nota final para registrarla también en la base de datos. Finalmente, debe emitir un informe de evaluación, que también se registra.

© 2020-2021 Santiago Faci

apuntes/uml.1615149632.txt.gz · Last modified: 2021/03/07 20:40 by Santiago Faci