You are on page 1of 4

IdeaSoft

Una empresa informtica de desarrollo de software quiere desarrollar una

herramienta de gestin de tareas para poder organizar mejor el trabajo entre sus
empleados. Como primer paso, se ha decidido disear e implementar una base de
datos que utilizar finalmente dicha aplicacin.
En esta empresa se trabaja en diferentes proyectos. Para cada uno de esos
proyectos se van creando tareas que se asignan a los desarrolladores. Un
desarrollador puede tener asignadas muchas tareas de diferentes proyectos a la
vez. Un proyecto tiene siempre asignado un responsable que se encargar de
llevar el seguimiento de las tareas del mismo. Las tareas tendrn un asunto, que
ser un resumen breve de la tarea, y un cuerpo con el contenido detallado de la
misma. Es necesario registrar la fecha y hora de creacin de la tarea.
Las tareas tienen un estado. En principio los estados posibles son abierto,
asignado, en proceso, finalizado, cerrado. En cualquier caso, el administrador
necesario. Dentro del conjunto de estados habr siempre un nico estado inicial
(ej. abierto) y un nico estado final (ej. cerrado). Dependiendo del estado en que
est una tarea, debern cuantificarse las horas que ha permanecido la tarea en
ese estado (ver ms abajo)
Las tareas las puede crear cualquier desarrollador y debe ser registrado
como el creador de la tarea. Por defecto la tarea se asigna al responsable del
proyecto, en el estado inicial. Cada tarea tiene una prioridad. Por defecto las
tareas se crean con la prioridad mayor. La prioridad se identifica con un nmero,
de forma que la mayor prioridad es el nmero 1, la siguiente el 2 A parte de este
nmero, la prioridad se expresa tambin con una descripcin. Las prioridades
disponibles las configura el administrador.

Mdulo de Actualizacin

de la aplicacin podr crear nuevos estados o modificar los existentes si lo creyera

IdeaSoft
Las tareas tambin se clasifican en categoras: error, nueva funcionalidad,
mejora. El administrador podr crear y modificar las distintas categoras. Dentro
de cada proyecto, se pueden definir una serie de reas y cada tarea debe estar
siempre asignada a alguna de esas reas. El responsable del proyecto podr
modificar, crear o eliminar las reas que crea necesarias para su proyecto.
Las tareas irn sufriendo una serie de cambios a lo largo de su existencia:
cambiarn de dueo, cambiarn de estado, puede que de categora, puede variar
su prioridad, su descripcin, su asunto Cada uno de estos cambios debe
registrarse para poder tener un historial de los cambios sufridos por la tarea. Debe
darse la posibilidad de guardar un comentario explicativo referente a ese cambio
en concreto. Adems, siempre debe registrarse la fecha en que se produjo el
cambio.
El nuevo sistema, se encargar de la notificacin va mail de los eventos
recibir notificacin va mail.
Siempre recibir notificaciones de los cambios producidos sobre una tarea, tanto
el creador de la tarea como el responsable del proyecto. Se desean almacenar
dichas notificaciones de forma que un proceso peridico las lea y enve los mails
correspondientes. De alguna manera debe controlarse que no se enven las
notificaciones ms de una vez.
Las tareas tendrn una previsin de horas de desarrollo que estimar el
creador de la tarea. Debe ser posible calcular el nmero de horas reales invertidas
en cada tarea. Para ello se tendrn en cuenta las horas transcurridas mientras la
tarea estuviera en algn estado en el que se deban cuantificar las horas. Un
ejemplo podra ser: el estado en proceso requerir cuantificacin de horas y el
resto no. Los estados cuantificables en horas de desarrollo los determinar el
administrador. Cuando la tarea llegue al estado final, debe mantener las horas
reales invertidas en ella.

Mdulo de Actualizacin

ocurridos. Por ejemplo, al serle asignada una tarea a un desarrollador, ste

IdeaSoft
Cada desarrollador puede tener o no asignado algn proyecto. De la misma
forma, cada desarrollador puede ser o no administrador. Simplemente se desea
guardar esta informacin para poder aplicar las restricciones desde el programa.
Se deben identificar los tipos de usuarios o actores que puede tener el sistema, y
as determinar cules mdulos pueden acceder cada uno de ellos y que procesos
estarn involucrados.
Actividades
a) Modelo de datos y diccionario de datos. Especificar las claves primarias y
externas, restricciones, dominios, atributos obligatorios, reglas de negocio
adicionales...
b) Implementacin en cualquier manejador de base de datos del modelo
c) Implementar en SQL las consultas que ilustren el comportamiento de la
base de datos, a continuacin se sugieren algunas:
a. Listar todas las tareas finalizadas del proyecto PR1 por el
desarrollador con CI 11223344 que hayan durado ms de 10 horas
b. Listar todas las tareas finalizadas en las que su previsin de horas
inicial supera el nmero de horas real invertido
c. Listado del nmero de tareas acabadas por da desde el 01/11/14
hasta el 30/11/14, ordenados por da
d. Listar los desarrolladores libres (sin tareas asignadas o todas
finalizadas)
e. Listar las tareas de mayor prioridad ordenadas por fecha de creacin
f. Listar los responsables de una tarea que lleve ms de 2 meses sin
acabar.

Mdulo de Actualizacin

relacional.

IdeaSoft
d) Desarrollar el modelo de casos de uso de todos los procesos, especificando
los actores que involucra el sistema de gestin de tareas.
e) Realizar el modelo de clases del sistema especificado.
f) Desarrollar el modelo de secuencia y de actividades de todo el proceso de
la gestin de las tareas.

Mdulo de Actualizacin