Beruflich Dokumente
Kultur Dokumente
Práctica
Gestión de un club deportivo
Introducción a la práctica
Para las práctica de este curso vamos a realizar el análisis y diseño inicial de
una aplicación de gestión de un club deportivo.
Una aplicación de este tipo puede ser muy simple o muy compleja,
dependiendo de los parámetros y características cuya gestión deseemos
automatizar. En nuestro caso, simplificaremos bastante los supuestos para evitar
elevar tanto la dificultad de la práctica, como el tiempo necesario para su
desarrollo.
Acerca de StarUML__________________________________
La interfaz y la ayuda están en inglés, pero aún así hemos elegido StarUML
frente a otras alternativas (como ArgoUML) en vista de las limitaciones que dichos
programas alternativos imponían a la hora de realizar los diagramas (básicamente,
muchas funcionalidades implementadas a medias).
Sistema
Gestión de socios
Gestión de reservas
- Una reserva tiene un coste asociado, que depende del tipo de pista y de
los extras reservados.
Introducción_______________________________________
Otra razón por la cual los diagramas de casos de uso son excelentes para
realizar el análisis y diseño inicial de un sistema, es que permiten realizar cambios
importantes sin que esto implique un coste importante de trabajo o tiempo para
remodelar los diagramas. Esto supone una ventaja importante respecto a otras
alternativas, como comenzar el diseño modelando las clases o la secuencia de
comportamiento del sistema, por ejemplo. Es por ello que comenzaremos nuestra
aproximación al diseño del sistema modelando estos diagramas.
…de modo que más adelante podamos elaborar un diagrama de casos de uso
global en el que representaremos dichos paquetes, para dar una visión global
del sistema.
Actores__________________________________
Tras analizar los requisitos del sistema, es evidente que serán necesarios
dos actores en el modelado de los casos de uso: el usuario normal de la aplicación
y el usuario administrador. El primero hace referencia al empleado del club que
maneja la aplicación informática que gestiona las altas, reservas, etc. Por
comodidad y simplicidad, nos referiremos a él como Usuario. El segundo hace
referencia al usuario que hace las funciones de administrador. Le designaremos
pues como Administrador.
¿ ?
Pero, y que hay necesario contar con su participación en la
de los socios del mayoría de los casos de uso –por ejemplo, para
club un alta de socio se necesita que el futuro socio
proporcione sus datos- pero este comportamiento
lo incorporaremos como precondiciones en los
casos de uso, como veremos más adelante.
En este caso los actores son personas físicas, pero también pueden
ser otros sistemas, hardware o software.
Casos de uso______________________________
- baja de extras
“El usuario da de baja un extra del sistema.”
- consulta de extra
“El usuario consulta los datos de un extra concreto.”
- edición de extras
“El usuario edita los datos de un extra concreto.”
Programación orientada a objetos y lenguaje unificado de modelado (UML) 14
- alta de nuevos socios
“El usuario efectúa el alta de un nuevo socio en el sistema.”
- baja de socios
“El usuario efectúa la baja en el sistema de un socio del club.”
- consulta de socios
“El usuario consulta los datos de un socio del club.”
- edición de socios
“El usuario edita los datos de un socio concreto.”
1.1
Paquetes_________________________________
- gestión de socios
alta de nuevos socios
consulta de socios
edición de socios
baja de socios
- gestión de reservas
alta de reservas
consulta de reservas
edición de reservas
baja de reservas
- gestión de extras
alta de nuevos extras
consulta de extras
edición de extras
baja de extras
Haz clic con el botón derecho del ratón sobre la carpeta <<useCaseModel>>
y elige la opción correspondiente:
Una breve explicación de las herramientas y cómo utilizarlas: (sólo comentamos las
que consideramos necesarias para esta práctica)
¿ Porqué no se
han incluído
iniciar sesión y
necesita iniciar sesión para realizar cualquier
gestión, sin embargo no consideramos en su
momento estos comportamientos como casos de
uso en sí.
finalizar sesión
En esta fase del análisis vemos que ese
como casos de
comportamiento es común a toda gestión y por
uso del sistema
tanto lo separamos como un caso de uso
?
en el ejercicio
específico que los demás incluyen.
anterior
Podemos volver atrás e incorporar esos casos de
uso a los obtenidos inicialmente.
1.2
Te propongo que realices el modelado de los diagramas de
casos de uso para la gestión de socios, gestión de
reservas y gestión de extras.
- Rellena el siguiente formulario para cada uno de los casos de uso modelados:
Introducción_______________________________________________
En esta segunda fase pasaremos del análisis inicial del sistema a un diseño
preliminar, dado que el examen de los casos de uso nos proporcionará, como
hemos comentado, información sobre las clases que vamos a necesitar.
Haz clic con el botón derecho del ratón sobre la carpeta <<designModel>> y
elige la opción correspondiente:
Elección de clases__________________________________________
Por ejemplo, en nuestro sistema es evidente que deberá existir una clase
Reserva, que contendrá la información asociada a una reserva (fecha, hora, número
de socio…). Sin embargo, sabemos que toda reserva puede tener un árbitro
vinculado a la misma. ¿Consideramos árbitro como clase, o como atributo de la
clase Reserva? Podrían ser válidos los dos casos, pero si vamos a almacenar los
datos del árbitro en nuestro sistema (teléfono, dirección…) es conveniente tener
una clase Árbitro a la que podamos hacer referencia desde Reserva mediante la
correspondiente relación. Es más, dado que en realidad un árbitro no es sino un
extra añadido a una reserva, tal y como puede serlo un material, vamos a
implementar una clase Extra que contenga la información básica acerca de todo
extra asociado a una reserva. De esta clase descenderán Árbitro y Material para
representar los extras.
clase Reserva: representa una reserva de una pista determinada, efectuada por
un socio determinado para una fecha y horario concretos.
Una vez establecidas las clases del sistema, estudiemos las relaciones que
existirán entre las mismas.
▪ Reserva con Socio: una reserva debe ser ineludiblemente realizada por
un socio. La asociación tendrá la cardinalidad
▪ Reserva con Pista: una reserva siempre se realiza para una pista
concreta. La asociación tendrá la cardinalidad
Es decir, una reserva siempre está asociada a una pista y una pista puede
estar asociada a ninguna, una o varias reservas.
Diagrama de clases____________________________________________
Ten en cuenta que si bien existe una relación entre los diagramas
de UML y el código final de la implementación, en general no es
posible una transformación directa completa, y habrá que tener
en cuenta múltiples consideraciones para pasar del modelado UML
al código final.
clase Extra:
- precioAlquiler: Integer
Coste de alquilar el extra.
- disponible: Boolean
Indica si el extra está disponible o no. Necesario dado que muchos
elementos (balones, redes, marcadores…) podrían dañarse y necesitar un
tiempo para ser reparados.
clase Material:
- tipo: String
Tipo de material: balón, red, peto…
- fechaRevisión: String
Fecha de la última revisión del material
clase Árbitro:
- nombre: String
- apellidos: String
- teléfono: String
Información de contacto necesaria para localizar al árbitro.
clase Reserva:
- fecha: String
Fecha de la reserva
- hora: String
Hora de la reserva
- getPrecio(): Integer
Este método recorre el listado de extras asociado a la reserva sumando el
valor precioAlquiler de cada uno de ellos para obtener el coste total de la reserva.
clase Pista:
- nombre: String
Nombre con el que designamos a la pista: “Pista 1”, “Pista 2”, etc.
- tipo: String
Tipo de pista: “Tenis”, “Fútbol sala” o “Baloncesto”
clase Socio:
- nombre: String
- apellidos: String
- NIF: String
- dirección: String
- teléfono: String
Información de contacto necesaria para localizar al socio.
- fechaAlta: String
Fecha de alta del socio en el club.
Introducción_______________________________________
Sigue estos pasos para añadir un bucle o condición alternativa (if) a un diagrama:
1. Elige la herramienta Combined Fragment
2. Arrastra sobre el diagrama para crear un recuadro
3. Elige en el panel Properties el tipo de operador (InteractionOperator)
entre seq, alt, loop, etc. Puedes utilizar:
alt para representar una alternativa (if)
loop para representar un bucle
Etc.
4. añade nuevas condiciones con la herramienta Interaction Operand. Para
ello deberás seleccionar en primer lugar el Combined Fragment, elegir
luego la herramienta Interaction Operand y hacer clic sobre el Combined
Fragment.
5. teclea la expresión de guarda en el campo Guard:
Tipo de mensaje
Argumentos
Valor de retorno
Inicio de sesión_______________________________________________
¡ Mi diagrama no
se parece en
nada a esto
! (cualquier tipo de diagrama en UML en general)
pueden realizarse de diversas maneras en función
del enfoque con el que se acomete el modelado.
Tu diagrama puede ser muy distinto y ser
perfectamente válido, mientras sea consistente
con el planteamiento que hayas elegido.
▪ Representamos la interacción del usuario con la interfaz del sistema por medio de
mensajes.
¡ como
conexiónBaseDatos
o Sistema en el
! nuestro sistema, abstrayéndonos a un nivel por
encima de la implementación real. En ésta,
habrá muchas otras clases requeridas para que
diagrama de clases el sistema funcione.
Fin de sesión_______________________________________________
▪ Fíjate como se comprueba de nuevo la validez de los datos –por ejemplo, que en
el campo apellidos figure algún dato- y se emite error en caso de que éstos no sean
válidos.
Verifica:
▪ De forma similar a como ocurría con el diagrama consultar cuenta de usuario, este
diagrama es bastante sencillo, dado que la opción eliminar cuenta sólo está
disponible, según los requisitos del sistema, desde la pantalla de consulta. Así,
pasaremos a la base de datos la cuentaActual que habremos obtenido
anteriormente al efectuar una consulta.
3.1
Ahora que has visto cómo hemos realizado el modelado de la
gestión de cuentas de usuario, te propongo que modeles
diagramas de secuencia para la gestión de socios y la
gestión de reservas, considerando cuidadosamente todos los
requisitos que figuran en el enunciado del sistema. Envíalos al
tutor si tienes alguna duda o si quieres recibir su opinión.
Introducción_______________________________________
Swimlane: Muy útil para separar las actividades en función del objeto que las
realiza (el usuario, el sistema, etc.)
- Inicio de sesión
- Fin de sesión
- Etc.
Iniciar sesión_________________________________________________
▪ Como ves, hemos utilizado swimlanes para que el diagrama muestre con claridad
quién realiza qué en la actividad.
▪ Fíjate como hemos utilizado sincronizaciones para actividades que tienen un punto
de finalización común.
4.1
Modela el resto de diagramas de actividades propuestos.
Envíalos al tutor para su corrección.