Documentos de Académico
Documentos de Profesional
Documentos de Cultura
se solicita realizar determinadas operaciones y tareas de diseño. La puntuación es sobre un total de 11 puntos (10 más 1 punto
de la sección BP). No todas las cuestiones puntúan igual. Puede utilizar la extensión que necesite para el documento, pero
conteste a las preguntas de cada sección en páginas diferentes. Por favor, lea TODO el ejercicio, hasta el final.
El caso de uso sobre el que se centra este estudio (a partir de la pregunta 2) se inscribe en el
funcionamiento de un sistema software (VehiCom) para la gestión del uso compartido de
un parque de vehículos del ayuntamiento de una localidad. El centro del negocio de esta
aplicación es la comercialización por el uso de unos vehículos comunitarios de transporte (del
ayuntamiento) dentro de un ámbito geográfico delimitado (el término municipal).
El funcionamiento del sistema es distribuido y los usuarios lo manejan a través de una
aplicación remota (móvil). Pero lo que se pretende construir aquí es el funcionamiento global
de la aplicación, en el que el dispositivo móvil remoto se considera que actúa como una
interfaz.
El producto que se comercializa es el uso (por tiempo) de un vehículo concreto. Es decir,
se puede asimilar a un ‘alquiler’ del vehículo. El parque está formado por distintos tipos
de vehículos (automóvil, ciclomotor, bicicleta, patinete eléctrico, etc.), cada uno con su
precio de alquiler (por hora) diferenciado.
Página 1 de 13
apoyo externos, modificaciones en las estrategias o políticas de precios, etc.), de su
seguridad, de las cuentas de utilización, etc.
Página 2 de 13
Por lo tanto, no hay que preocuparse de cómo se presentan los resultados ni de cómo
se guardan los datos o cómo se obtienen, sino de qué datos se necesitan para el
funcionamiento del caso de uso y cómo deben organizarse para que el código los utilice
de manera desacoplada, flexible y comprensible. Los datos necesarios para el caso de
uso están en el Sistema de Información global externo (o los proporcionan los
actores de apoyo externos) y los mecanismos para su obtención no forman parte de la
funcionalidad que se estudia en este ejercicio, pero sí es determinante decidir en qué
estructuras se organizan para ser utilizados de la manera descrita.
• De la misma forma, se asume que los actores y sistemas de apoyo externos a
VehiCom tienen todos los dispositivos e instalaciones necesarios, e implementados
todos los mecanismos que se precisan para su manejo, de forma que el correcto
funcionamiento del caso de uso sea posible por sí mismo.
• En cada pregunta se ampliarán los detalles que se precisen para elaborar la respuesta
que se pide en ella.
Página 3 de 13
Enunciado de las preguntas.
Sección 1. Evaluación de los Casos de Uso. (Fase de Inicio). Se trata de ubicar y caracterizar,
globalmente, el sistema software que va a desarrollarse: cuáles son sus funciones
principales (casos de uso primarios), qué Actor o Actores las dirigen y con qué
sistemas o actores de apoyo externos necesitan interactuar para cumplir con su
objetivo.
1. (0’5 puntos) Represente, en un diagrama UML de casos de uso, los casos de uso primarios
(Elementary Business Processes) más importantes de VehiCom, sus actores principales,
los de apoyo y las interacciones correspondientes.
Página 4 de 13
Se recuerda: de aquí en adelante, todas las preguntas se refieren
al caso de uso especificado en esta pregunta 2. El objetivo es que
realice el diseño para que también admita las otras funcionalidades
y opciones definidas para VehiCom.
No escriba un encabezamiento demasiado elaborado del caso de uso (es decir, omita
propósito, resumen, antecedentes...). En su lugar, afronte directamente el transcurso típico
de los acontecimientos que lleva al éxito.
Página 5 de 13
Simplificaciones y sugerencias:
• Los criterios de la consulta para la selección de un vehículo serán lo más
generales posible:
o Tipo de vehículo: Todos los tipos, cualquiera.
o Distancia al usuario: Cualquiera.
o Ordenación: del más cercano al más distante. Nótese que la consulta produce
un listado de los vehículos disponibles, con sus características (tipo,
modelo, precio/hora, etc.), ordenados según su distancia al cliente. Esto
quiere decir que, de manera general, el cliente debe transmitir al sistema
las características del vehículo que busca (en este caso, sólo el tipo de
vehículo) y su propia localización. En la implementación, se considerará que
la localización del cliente se obtiene mediante su dispositivo móvil
(geolocalización) de forma transparente a él.
En este ejercicio se tendrán en consideración otros criterios como modelo, capacidad
o antigüedad de los vehículos.
• Tras el registro correcto de los datos de la operación, el sistema proporciona al cliente
una ‘llave’ (mediante un código de acceso, un certificado u otro mecanismo) para la
utilización exclusiva del vehículo.
• Recuerde que en esta actividad (pregunta 2) se describe la secuencia de la interacción
entre el actor principal (con un objetivo de uso concreto: obtener esos resultados) y la
respuesta del sistema, el cual se considera una ‘caja negra’. Es decir, el actor no tiene
ningún conocimiento de los elementos de software que hacen funcionar al sistema, ni
siquiera de cuáles son internos o externos a la aplicación (base de datos, etc.).
• Para el desarrollo posterior (el diseño dinámico detallado) y para aclarar la comprensión
respecto a la secuencia de operaciones planteada en la respuesta a esta pregunta, se
recomienda elaborar un Diagrama de Secuencia del Sistema en el que sólo intervienen
el Actor y el Sistema que, precisamente, se representa como una ‘caja negra’, como un
único objeto:
Página 6 de 13
Sección 2. Evaluación del Modelado Conceptual. (Fase de Elaboración. Comprensión de los
requisitos funcionales y Diseño Lógico del funcionamiento mediante el Modelo de
Dominio).
Página 7 de 13
Sección 3. Evaluación de la Asignación de Responsabilidades y Diseño de la Interacción.
(Fase de Elaboración. Diseño Dinámico Detallado del caso de uso).
Por tanto, hay que representar cada mensaje que el Actor envía al Controlador del
caso de uso, y los que se intercambian entre éste y cualquier otra instancia que
intervenga, así como los mensajes que transitan entre ellas, con los correspondientes
argumentos de cada mensaje, los objetos que devuelvan, los condicionantes para
que se produzcan (‘guardas’), iteraciones, etc. Es idéntico a definir el código. En
cualquier caso, cada objeto representado en los diagramas es una instancia, por lo
que debe estar definida por su nombre y la clase a la que pertenece (su tipo).
Página 8 de 13
paso al siguiente evento. Esta secuencia de eventos sería la representada en el diagrama
de secuencia del sistema –DSS— que se propuso elaborar al final de la pregunta 2).
Consigne cada mensaje con los patrones GRASP (Experto, Creador, etc.)
o cualquier otro que lo justifique. Recuerde que, además de
especificar el nombre de todas las instancias, en los Diagramas de
Colaboración debe numerar el orden en que se producen los mensajes.
Página 9 de 13
además de especificar el nombre de todas las instancias, debe situar
cada una, con su línea de tiempo, en la posición temporal que le
corresponde respecto a las demás (por ejemplo, mensajes de creación
de instancias), de la misma forma que el resto de los mensajes (aquí
no se numeran al situarlos correctamente en la correspondiente línea
temporal).
Página 10 de 13
Sección 4. Evaluación del Diagrama de Clases de diseño. (Fase de Elaboración. Diseño
Estático Detallado del caso de uso).
6. (1 punto) Elabore un diagrama de clases para el caso de uso que se está tratando
<<ActivarVehículo>> (DCD), centrado en la clase que va a implementar la
responsabilidad más característica del caso de uso, la que mejor defina la naturaleza de lo
que se hace en él (ControlAsignacionV, RegistroActivacion, o como lo haya
llamado en los diagramas precedentes). Represente los nombres de todos los atributos,
asociaciones (con su navegabilidad) y los métodos (excepto ‘setters’ y ‘getters’ irrelevantes),
tanto de esa clase como de las que estén directamente involucradas con ella en el
funcionamiento del caso de uso.
En este diagrama, al menos, deben aparecer las clases software que provienen de los
mismos objetos conceptuales utilizados en el Modelo de Dominio, con sus atributos, tipos y
relaciones representados allí, pero complementados con los correspondientes métodos (con
sus tipos y sus argumentos) que se han deducido en los diagramas del diseño dinámico.
También se debe complementar con las relaciones de asociación, dependencia, herencia,
etc., así como con los objetos, puramente software (clases), que se han obtenido, o elaborado
específicamente, en dichos diagramas, para hacer posible el funcionamiento del código.
Página 11 de 13
Sección 5. Evaluación de la Transformación del Diseño en Código.
7. (0’5 puntos) A partir de los anteriores diagramas de clases y colaboraciones, elabore y defina
la clase que haya establecido, en el desarrollo anterior, como responsable de controlar la
correcta secuencia de acciones en el caso de uso <<ActivarVehículo>>. Incluya las
definiciones de todas las variables que la componen (miembros), pero escriba solamente la
definición completa del cuerpo para el método principal o los métodos más significativos:
<<se omite el método>>. Ignore los pequeños detalles de sintaxis -el objetivo es evaluar la
capacidad fundamental para transformar el diseño en código-. Utilice la sintaxis de Java.
ATENCIÓN: lo que hay entre signos, <<se omite el método>>, es un
ejemplo: usted debe sustituirlo por el nombre o los nombres que haya
asignado a los métodos elegidos.
Página 12 de 13
Sección 6. Preguntas opcionales BP. Motivación.
Página 13 de 13