apuntes:uml
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
apuntes:uml [2021/03/07 19:16] – Santiago Faci | apuntes:uml [2021/03/07 20:40] – [Cómo diseñar diagramas de secuencia] Santiago Faci | ||
---|---|---|---|
Line 23: | Line 23: | ||
---- | ---- | ||
- | ===== Diagrama | + | ===== Herramientas para el diseño de Diagramas UML ===== |
+ | |||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Diagramas | ||
* Se utilizan para diseñar las diferentes tareas (o funcionalidades) que tiene que despeñar un sistema | * Se utilizan para diseñar las diferentes tareas (o funcionalidades) que tiene que despeñar un sistema | ||
Line 53: | Line 61: | ||
{{ youtube> | {{ youtube> | ||
+ | ---- | ||
- | ===== Diagrama | + | ===== Diagramas |
* Describe la estructura estática de un sistema | * Describe la estructura estática de un sistema | ||
Line 108: | Line 117: | ||
---- | ---- | ||
- | ===== Diagrama | + | ===== Diagramas |
* Describe el flujo de información en la interacción entre diferentes objetos de un sistema | * Describe el flujo de información en la interacción entre diferentes objetos de un sistema | ||
Line 125: | Line 134: | ||
</ | </ | ||
+ | {{ youtube> | ||
---- | ---- | ||
+ | ===== Ejercicios resueltos ===== | ||
- | ===== Herramientas para el diseño de Diagramas UML ===== | + | {{ ejercicio.png}} |
- | * [[https://www.diagrams.net/ | + | ==== Gestión de una biblioteca ==== |
- | * [[https://staruml.io/ | + | |
- | * [[https://www.modelio.org/ | + | 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 === | ||
+ | |||
+ | {{ Biblioteca - Casos de uso.png }} | ||
+ | |||
+ | === Diagrama de clases === | ||
+ | |||
+ | {{ Biblioteca - Diagrama de clases.png }} | ||
+ | |||
+ | === Diagrama de secuencia | ||
+ | |||
+ | {{ Biblioteca - Diagrama de secuencia.png }} | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== 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 === | ||
+ | |||
+ | {{ Bicicletas - Casos de uso.png }} | ||
+ | |||
+ | === Diagrama de clases === | ||
+ | |||
+ | {{ Bicicletas - Diagrama de clases.png }} | ||
+ | |||
+ | === Diagrama de secuencia === | ||
+ | |||
+ | {{ Bicicleta - Diagrama de secuencia.png }} | ||
---- | ---- | ||
Line 138: | Line 199: | ||
===== Ejercicios ===== | ===== Ejercicios ===== | ||
- | ==== Casos de uso y Diagramas de clases ==== | + | {{ ejercicio.png}} |
- | {{ ejercicio.png? | + | ==== Casos de uso y Diagramas de clases ==== |
- 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, | - 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, | ||
Line 148: | Line 209: | ||
* 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, | * 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, | ||
* 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\\ \\ | * 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\\ \\ | ||
- | - Se desea diseñar una aplicación para una sucursal bancaria que contenga información sobre los clientes, | ||
- | * Una transacción viene determinada por su número de transacción, | ||
- | * Un cliente puede tener muchas cuentas | ||
- | * Una cuenta puede tener muchos clientes | ||
- | * Una cuenta sólo puede estar en una sucursal\\ \\ | ||
- | - Diseña el modelo de clases para una aplicación de gestión de una biblioteca con las siguientes restricciones: | ||
- | * Se quiere almacenar información sobre los libros de los que se dispone: titulo, editorial, número de | ||
- | * Se almacenará información sobre los autores: nombre, apellidos, fecha de nacimiento, fecha de fallecimiento, | ||
- | * De todos aquellos que se hagan socios de esta biblioteca se les hará una ficha con los siguientes | ||
- | * Por último, se quiere almacenar todos los libros que cogen prestados los socios para saber quién tiene un determinado libro en cada momento y para conocer que lectores han leído alguna vez un libro determinado\\ \\ | ||
- Diseña el diagrama de clases de una aplicación para la gestión de la secretaría de un colegio: | - 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 | * Cuando un alumno venga a matricularse se le hará rellenar una ficha con sus datos que luego se | ||
Line 164: | Line 215: | ||
* Los profesores también están dentro de la Base de Datos, con la siguiente información: | * Los profesores también están dentro de la Base de Datos, con la siguiente información: | ||
* Hay que tener en cuenta que es importante almacenar las notas que cada alumno tiene en cada asignatura | * Hay que tener en cuenta que es importante almacenar las notas que cada alumno tiene en cada asignatura | ||
- | - Diseña el modelo de clases de una aplicación que se ocupa de gestionar los empleados, departamentos y proyectos de una empresa, de acuerdo con los siguientes requisitos: | ||
- | * La compañía está organizada en departamentos. Cada departamento tiene un nombre único, un número único | ||
- | * Cada departamento controla un cierto número de proyectos, cada uno de los cuales tiene un nombre y un número únicos y se realizan en un solo lugar | ||
- | * Se almacena el nombre, número de la Seguridad Social, dirección, salario, sexo y fecha de nacimiento | ||
- | * También se quiere guardar la relación de las cargas familiares de cada empleado para administrar el seguro médico. Almacenaremos el nombre, sexo y fecha de nacimiento de cada una de las cargas familiares y su parentesco con el empleado\\ \\ | ||
- Diseña el modelo de clases para la siguiente aplicación de gestión para uno de los hoteles del complejo Gran Scala: | - 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 | * En este hotel, los clientes se registran por Internet al solicitar su reserva, que podrá incluir una o varias | ||
Line 217: | Line 263: | ||
- 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: | - 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: | ||
* 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. | * 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, | + | * 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 organización de la vuelta ciclista a España 2016 ha decidido crear una web para seguir el transcurso del evento en directo. Para comenzar se debe diseñar el modelo de datos. Se desea almacenar información de todos los ciclistas (dorsal, nombre, apellidos, fecha de nacimiento, nacionalidad y el equipo al que pertenecen). De cada equipo de la vuelta almacenaremos el nombre, la marca a la que representa, la nacionalidad y el presupuesto. Además, cada equipo tendrá un líder, que será un corredor del equipo. | + | |
- | * También se quiere almacenar todas las etapas de esta edición, almacenando el número de la etapa, el origen, el destino, la distancia en kms y el tipo de etapa (montaña o contrarreloj). Si la etapa es de montaña además se almacenarán los nombres de los puertos de montaña que atraviesa y la pendiente media de toda la etapa. Si fuera una contrarreloj se añade en que kilómetros intermedios se tomarán tiempos. Una vez terminada cada etapa se almacenará qué corredores han quedado en los tres primeros puestos y el tiempo que les ha costado. | + | |
- | * Por último, en esta edición de la vuelta se quiere tener registrada cada bicicleta que use cualquier corredor, teniendo en cuenta que un corredor puede usar más de una bicicleta pero que una bicicleta determinada sólo puede haberla usado un corredor. De cada bicicleta almacenaremos la marca, el modelo y el estado (en uso, rota o en reparación) y también es necesario que queden registradas las fechas entre las que el corredor la utilizó en carrera. | + | |
==== Diagramas de secuencia ==== | ==== Diagramas de secuencia ==== | ||
- | - 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 | + | - 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\\ \\ |
- | - 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 | + | - 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\\ \\ |
- 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, | - 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, | ||
- | |||
- | ---- | ||
- | |||
- | ===== 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/ | ||
- | |||
- | === Diagrama de casos de uso === | ||
- | |||
- | {{ Biblioteca - Casos de uso.png }} | ||
- | |||
- | === Diagrama de clases === | ||
- | |||
- | {{ Biblioteca - Diagrama de clases.png }} | ||
- | |||
- | === Diagrama de secuencia (Bibliotecario solicita un pedido de libros) === | ||
- | |||
- | {{ Biblioteca - Diagrama de secuencia.png }} | ||
- | |||
- | ---- | ||
- | |||
- | ==== 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 === | ||
- | |||
- | {{ Bicicletas - Casos de uso.png }} | ||
- | |||
- | === Diagrama de clases === | ||
- | |||
- | {{ Bicicletas - Diagrama de clases.png }} | ||
- | |||
- | === Diagrama de secuencia === | ||
- | |||
- | {{ Bicicleta - Diagrama de secuencia.png }} | ||
---- | ---- | ||
(c) 2020-2021 Santiago Faci | (c) 2020-2021 Santiago Faci |
apuntes/uml.txt · Last modified: 2021/03/08 08:45 by Santiago Faci