Está en la página 1de 13

Curso de Ingeniera del Software II - A.A. 2007/2008..........................................................

2
Caso de estudio VolBank.....................................................................................................2
Panormica ......................................................................................................................2
Soporte informtico de VolBank ...................................................................................3
Requerimientos de VolBank .........................................................................................3
Primera fase: Ideacin .....................................................................................................4
Diagrama de Contexto (disciplina requerimientos) .......................................................4
Modelo de casos de uso (disciplina requerimientos) ....................................................4
Ejercicio para casa....................................................................................................5
Especificaciones Complementarias (disciplina requerimientos) ...................................5
Introduccin ..............................................................................................................5
Vnculos de implementacin ....................................................................................6
Vnculos de interfaz...................................................................................................6
Vnculos hardware ....................................................................................................6
Reglas de dominio especficas de Volbank...............................................................6
Glosario (disciplina requerimientos) .............................................................................6
Visin (disciplina requerimientos) .................................................................................6
Descripcin general ..................................................................................................6
Segunda fase: Elaboracin (Primera iteracin)................................................................7
Modelo de Dominio parcial (disciplina modelado de negocio) ......................................7
Diagrama de secuencia de sistemas - DSS (disciplina requerimientos).......................7
DSS Combinar ofertas y pedidos (escenario principal).............................................7
Ejercicio para casa....................................................................................................8
Contratos de operaciones (disciplina requerimientos) ..................................................8
Contrato C10.............................................................................................................8
Contrato C11.............................................................................................................8
Ejercicio para casa....................................................................................................9
Modelo de diseo (disciplina diseo)...........................................................................9
Algunas consideraciones sobre las decisiones de diseo ........................................9
Caso de uso Combinar Ofertas y Pedidos ................................................................9
Modelo de implementacin (disciplina implementacin)............................................11
Segunda fase: Elaboracin (Segunda iteracin) ............................................................12
Uso de otros diagrama UML en UP ...............................................................................12
Diagramas de actividades ..........................................................................................12
Maquinas de estados..................................................................................................13

Curso de Ingeniera del Software II - A.A. 2007/2008


Caso de estudio VolBank
Referencias:
Bennet, Skelton, Lunn: Introduzione a UML, Collana Schaums, McGraw-Hill. Cap. 1
Panormica
VolBank es una organizacin no lucrativa que tiene como objetivo poner en contacto
voluntarios con personas y grupos que necesitan asistencia de cualquier tipo. El objetivo
principal que se pone esta organizacin es la promocin del sentido de pertenencia a una
comunidad, siendo las personas implicadas en actividades de voluntariado en su territorio.
VolBank persigue su objetivo gestionando una lista de demandas de servicios y una lista
de potenciales voluntarios, e intentando asociar a los voluntarios las oportunidades que
responden mayormente a sus capacidades. La filosofa de VolBank es pensar que cada
uno tiene cualidades y actitudes que pueden poner a disposicin de otras personas, as
como necesidades que deben ser satisfechas. Para esto se animan los voluntarios en
poner a disposicin sus capacidades, y los destinatarios de ayudas en proveer una lista
de sus necesidades.
Por ejemplo, Mario Rossi es un voluntario muy prctico de pintura y teido. Los nios han
ofrecido su tiempo para realizar un espectculo para la casa de mayores del pueblo. Una
seora de las ms mayores de la casa, la seora Hernndez, ha puesto su tiempo a
disposicin de los que tenan necesidad de ejercitarse en la conversacin en lengua
espaola. Mario Rossi ha aceptado su oferta, y ha podido repasar el espaol antes de sus
vacaciones en Mxico.
El nombre VolBank se basa en la idea que las personas pueden depositar el tiempo que
pueden poner a disposicin de otras, as como una lista de capacidades y habilidades que
desean ofrecer.
Ms informacin sobre VolBank se puede encontrar en varias fuentes, entre otras una
radio local, mensajes promocionales en la televisin y en Internet. VolBank se ha fundado
en colaboracin con asociaciones locales de voluntariado, que proponen trabajos de
voluntariado. Estas organizaciones actan tambin como puntos de contacto en el
territorio para los voluntarios que desean participar.
Los voluntarios pueden comunicar las capacidades y las habilidades que quieren ofrecer a
VolBank llamando por telfono a una organizacin de voluntarios, presentndose en
persona en una de las asociaciones locales de voluntariado, o rellenando un formulario de
una pgina web. Una vez que estn registrados, pueden depositar su tiempo en VolBank
siguiendo los mismos procedimientos. Si el voluntario se registra en una asociacin de
voluntariado, sus datos son transmitidos por escrito a VolBank, donde sern insertados en
los archivos por una organizacin de voluntarios, como si el nuevo registrado hubiera
contactado VolBank directamente por telfono.
Las asociaciones de voluntariado y los individuos, entre los cuales los mismos voluntarios,
pueden registrar las propias demandas de ayuda contactando una organizacin de
voluntarios, que intentar por lo tanto asociar las personas que ponen a disposicin su
tiempo con las varias oportunidades. Esta combinacin puede occurrir en dos maneras
diferentes: comparando su tiempo con la lista de las demandas, o comparando una nueva
demanda de ayuda con la lista de voluntarios. La combinacin demanda-oferta se hace en
base a criterios geogrficos (por ejemplo, utilizando el cdigo postal), y combinando las
capacidades ofrecidas con las necesidades de ayuda.
Una vez que los voluntarios han sido asignados a una oportunidad de voluntariado, les
vienen comunicados los detalles de la demanda de ayuda, y si todava estn interesados,
2

sus referencias vienen transmitidas por una organizacin de voluntarios a la asociacin de


voluntariado o directamente a la persona que ha requerido el servicio de voluntariado.
Viene tambin especificado a los voluntarios que este segundo paso no implica que
vendrn aceptados automticamente: para algunos trabajos particulares, como por
ejemplo voluntariado con nios, podran ser necesarios controles sucesivos e incluso
controles por autoridades de la orden y por los servicios sociales. stas son tareas que
tocan a la asociacin o a la persona que han pedido la ayuda. VolBank est preparando
un sistema informtico para gestionar toda la parte relativa a la registracin y combinacin
de voluntarios y oportunidades de voluntariado, as como la notificacin de las
combinaciones a las varias partes en causa.
Soporte informtico de VolBank
VolBank necesita un sistema informtico que gestione la combinacin de voluntarios con
las demandas de ayuda y viceversa; el sistema tendr que tener una conexin con el web
server de VolBank.
Las asociaciones de voluntariado estarn avisadas de una posible combinacin entre
unas de sus demandas y un voluntario por fax o por correo electrnico. Los voluntarios
estarn avisados de una posible combinacin entre sus ofertas y una demanda de ayuda
por correo.
Requerimientos de VolBank
La lista de requerimientos a continuacin se refiere al sistema que gestiona la
registracin, que ejecuta las combinaciones y que realiza las notificaciones. El web server
es un sistema separado.
1. Desarrollar un sistema que gestiona la registracin de voluntarios y el almacn de su
tiempo:
Registrar los detalles de voluntarios, incluido las habilidades y las capacidades de
cada uno de ellos, y sus direcciones;
Registrar el tiempo que cada voluntario deposita, o sea que puede poner a
disposicin;
Transferir del web-server los detalles de voluntarios y el tiempo que estn
depositando.
2. Gestionar la registracin de las oportunidades de un servicio de voluntariado:
Registrar los detalles de las asociaciones de voluntariado
Registrar las demandas de ayuda de las asociaciones de voluntariado
Registrar las demandas de ayuda de los individuos (entre los cuales los mismos
voluntarios)
3. Combinar las ofertas de ayuda y las demandas de ayuda, y registrar el resultado de la
combinacin:
Combinar un voluntario con actividades de voluntariado apropiadas, a ejecutar en
su zona
Combinar una actividad de voluntariado con los voluntarios apropiados, en la
misma zona
Registrar cada combinacin entre voluntarios y demandas de ayuda
Avisar a los voluntarios de las combinaciones obtenidas que las interesan
Avisar a las asociaciones de voluntariado de las combinaciones obtenidas que las
interesan
Registrar el xito de cada combinacin y redactar una convencin para cada
combinacin con xito.
4. Producir los anlisis estadsticos del nmero de voluntarios, de las oportunidades de
voluntariado y de la cantidad de tiempo depositado.
3

Primera fase: Ideacin


Diagrama de Contexto (disciplina requerimientos)

Modelo de casos de uso (disciplina requerimientos)


Descripcin Casos de uso Volbank: dos ejemplos
Formato breve:
Registrar pedido ayuda.
El Necesitado contacta la Organizacin de voluntarios para hacer un pedido de ayuda. La
Organizacin de voluntarios usa el sistema Volbank para recuperar el perfil del
Necesidado. La Organizacin de voluntarios inserta los detalles del pedido de ayuda
(habilidad y tiempo requerido). El Sistema Volbank registra los datos introducidos.
Formato detallado:
Combinar ofertas y pedidos
Sistema Volbank
Objectivo usuario
Organizacin Voluntarios
Voluntario: quiere hacer un trabajo de voluntariado compatible
con su habilidades y tiempos, y en la zona donde vive.
Necesitado: quiere encontrar un voluntario adecuado para el
trabajo de voluntariado que pide
Pre-condiciones
Se registra (por los menos) una combinacin de oferta y
Garantas de exto
pedido
Escenario principal de 1. la Organizacin Voluntarios empieza el proceso de
combinacin
exto
Nombre UC
Alcance
Nivel
Actor principal
Partes interesadas

Extensiones

Requerimientos
especiales
Otras info.

2. el Sistema ejecuta las combinaciones ofertas/pedidos en


base a las habilidades, tiempos, zona
3. el Sistema mostra las combinaciones encontradas
4. la Organizacin Voluntarios enva a todos los Voluntarios
implicados en las combinaciones los detalles de las mismas
5. el Voluntario comunica a la Organizacin Voluntarios su
disponibilidad para las combinaciones que le interesan
6. la Organizacin Voluntarios actualiza el estado de la
combinaciones aceptadas por el Voluntario
7. la Organizacin Voluntarios trasmite los detalle de los
Voluntarios que han aceptado el trabajo a los Necesitados
8. el Necesitado acepta la combinacin encontrada
9. la Organizacin Voluntarios actualiza el estado de la
combinacin como combinacin con exto
10. la Organizacin Voluntarios actualiza los tiempos de las
ofertas y pedidos de las partes interesadas de la combinacin
con exto
3a. El Sistema no encuentra ninguna combinacin:
1. la Organizacin Voluntarios termina el procedimiento
5a. El Voluntario comunica a la Organizacin Voluntarios que
no est disponible para las combinaciones que lo involucran:
1. la Organizacin Voluntarios actualiza el estado de
las combinaciones como combinacin rechazada
2. la Organizacin Voluntarios termina el procedimiento
8a. El Necesitado comunica a la Organizacin Voluntarios que
no est disponible para las combinaciones que lo involucran:
1. la Organizacin Voluntarios comunica el rechazo a
los Voluntarios involucrados
2. la Organizacin Voluntarios actualiza el estado de
las combinaciones como combinacin rechazada
3. la Organizacin Voluntarios termina el procedimiento
...
Los Necesitados se avisan de las combinaciones
encontradas por fax o por correo electrnico.
Los Voluntarios se avisan de las combinaciones
encontradas por correo.
Problemas abiertos:
Hay que tener en cuenta los rechazos de un voluntario?
El Voluntario puede ejecutar este caso de uso?
.....

Ejercicio para casa


1) Escribir en formato breve o informal, los otros casos de uso Registrar Perfil y
Depositar oferta ayuda
2) Falta algun caso de uso importante ?
Especificaciones Complementarias (disciplina requerimientos)
Introduccin
Este documento contiene la descripcin de los requerimientos no especificados en los
casos de uso.
5

Vnculos de implementacin
Solucin basada sobre tecnologas Java.
Vnculos de interfaz
Interfaz HTML (dinmica) para la insercin del perfil del voluntario y el dposito de su
tiempo organizada en dos secciones. Una seccin para los detalles del perfil (nombre,
direccin, etc) y de las habilidades ofrecidas, la otra seccin para la posterior insercin de
la disponibilidad de tiempo depositar compuesta por un periodo y el total de horas
dedicadas en el periodo.
Vnculos hardware
El sistema tendr que tener una conexin con el web server de VolBank.
Reglas de dominio especficas de Volbank
El sistema tendr que listar las asociaciones de voluntariado que tienen que ser avisadas
de las posible combinaciones entre sus pedidos y los voluntarios por fax o correo
electrnico. Los voluntarios seran avisado de una posible combinacin por correo, fax o
correo electrnico.
Glosario (disciplina requerimientos)
Trmino
VolBank
Voluntario
Necesitado
Asociacin
Voluntariado
Organizacin
Voluntarios
Tiempo
Habilidad
Pedido
Perfil
Combinacin

Descripcin
Sinnimos
organizacin comitente
persona que pone a disposicin sus habilidades y
tiempo
persona que formula un pedido de ayuda
destinatario
de ayudas
puntos de contacto en el territorio, recogen
demandas y ofertas de ayuda
grupo de voluntario que gestiona el sistema
informtico de Volbank
intervalo de tiempo y horas asociadas
capacidad de un voluntario o capacidad requerida capacidad,
para satisfacer un pedido de ayuda
calidad
pedido de un trabajo de voluntariado caracterizado necesidad
por uno (o ms) tiempos y una habilidad requerida.
datos de una persona (nombre, direccin, CAP,
nmero tel., e-mail) que ofrece su tiempo y
habilidad
correspondencia entre un pedido de ayuda y una
oferta de trabajo de voluntariado

....
Visin (disciplina requerimientos)
Descripcin general
VolBank es una organizacin no lucrativa que tiene como objectivo poner en contacto
voluntarios con personas y grupos que necesitan asistencia de cualquier tipo. El objectivo
principal que se pone es la promocin del sentido de pertenencia a una comunidad,
siendo las personas implicadas en actividades de voluntariado en su territorio. VolBank
persigue su objectivo gestionando una lista de demandas de servicios y una lista de
potenciales voluntarios, e intentando asociar a los voluntarios las oportunidades que
responden mayormente a sus capacidades. ...
6

Segunda fase: Elaboracin (Primera iteracin)


Durante la fase de ideacin (un da):
o Se ha organizado un workshop de requerimientos
o La mayora de actores, objectivos y casos de uso han sido identificados
o Los casos de uso estan escritos en formato breve y el 10-20% de estos estan escritos
en formato detallado.
o Hay una primera versin del documento de Visin
o Hay una primera versin de las Especificaciones Suplementares, donde los
requerimientos no funcionales han sido especificados.
o Se ha organizado una reunin donde ha sido definido el plan de la primera iteracin.
La fase de elaboracin de Volbank consiste en dos iteraciones, de una semana cada una.
Los requerimientos elegidos para la primera iteracin son los siguientes:
o Implementacin de un escenario de base del caso de uso Combinar ofertas y pedidos
o Implementacin de un caso de uso de Start Up (el main), necesario para gestionar la
inicializacin para esta iteracin
o Implementacin de la base de datos
o Implementacin de la interfaz a soporte del caso de uso considerado.
Modelo de Dominio parcial (disciplina modelado de negocio)

Diagrama de secuencia de sistemas - DSS (disciplina requerimientos)


DSS Combinar ofertas y pedidos (escenario principal)

Ejercicio para casa


Modificar el DSS del caso de uso Combinar ofertas y pedidos presentado en clase para
incluir los siguientes escenarios alternativos:
1. El Voluntario no est disponible para la combinacin encontrada (5a)
2. El Necesitado no est disponible para la combinacin encontrada (8a)
Contratos de operaciones (disciplina requerimientos)
Contrato C10
Operacin: EjecutaCombinacin()
Referencia: UC Combinar ofertas y pedidos
Pre-condiciones: --Post-condiciones:
han sido creadas nuevas instancias c de Combinacin
los atributos de c han sido inicializados
cada instancia c ha sido asociada a una instancia p de Perfil y a una instancia p
de Pedido
Contrato C11
Operacin: SetConfirmaVoluntario(boolean Respuesta)
Referencia: UC Combinar ofertas y pedidos
Pre-condiciones:
Una combinacin c ha sido seleccionada
El estado de c es non confirmado
La Organizacin ha recibido respuesta por el Voluntario en relacin a la
combinacin c
Post-condiciones:
El estado de c est actualizado: confirmado si la respuesta es positiva,
rechazado si la respuesta es negativa

Ejercicio para casa


Escribir los contratos para las siguientes operaciones de sistemas:
SetConfirmaNecesitado(boolean respuesta)
ActualizaTiempos(date de, date , integer horas)
Hay que modificar/aadir atributos a la clase de dominio Combinacin ?
Modelo de diseo (disciplina diseo)
Algunas consideraciones sobre las decisiones de diseo
A parte de la transformacin de las clases ms significativas del modelo de dominio en
clases software, el diagrama de clase de diseo contiene dos grupos de clases
introducidas siguiendo los principios GRASP. El grupo de clases Sesin (Sesin Usuario,
Sesin Inscripcin, Sesin Combinacin) se ha introducido en base al principio de
separacin Modelo-Vista (o Controller). Se ha decidido usar ms que un Controller (en
lugar de un Faade Controller) para no sobrecargar una nica clase con la
responsabilidad de gestionar un conjunto de funcionalidades demasiado hetereogneas.
Siguiendo el principio High-Cohesion se ha introducido un Controller para cada tipologa
de usuario-operacin: un Controller para los usuarios que an no son miembros de
Volbank (Sesin Inscripcin caso de uso RegistrarPerfil), un Controller para la gestin
de las operaciones de un miembro de Volbank (Sesin Usuario casos de uso Registrar
Pedido Ayuda y Depositar Oferta Ayuda), y un Controller para la gestin de las
operaciones que se refieren a la combinacin (Sesin Combinacin caso de uso
Combinar Ofertas y Pedidos).
El grupo de clases Archivos (Archivo Perfiles, Archivo Pedidos, Archivo Tiempos, Archivo
Habilidades, Archivo Combinaciones) ha sido introducido para asignar responsabilidades
de interfaz con la base de datos para las funcionalidades de interrogacin y memorizacin
permanente de datos. Siguiendo el principio Information Expert podemos deducir que
cada clase que posee las informaciones necesarias para ejecutar una operacin es una
posible candidata para ser responsable de la misma operacin. Por eso estas clase se
ponen como intermedio entre las clases de dominio (Perfil, Pedido, Combinacin,..) y la
base de datos. Estas clases permiten satisfacer tambin el principio de High-Cohesion
porqu 1) evitan que las clases de dominio sean cargadas con mtodos que proveen
servicios tcnicos de interfaz a la BD, 2) cada clase usa una area de competencia
diferente de la BD para obtener un cdico ms comprensible y reutilizable y evitar
conflictos en el acceso a la BD.
Caso de uso Combinar Ofertas y Pedidos
La primera operacin de sistema es EjecutaCombinacin(), a continuacin vamos a
detallar las colaboraciones entre clases sw para realizar dicha operacin.
Diagrama de comunicacin EjecutaCombinacin()

Algunas consideraciones:
No se ha detallado cmo los archivos ArchivoPerfiles y ArchivoPedidos sacan la lista
de perfiles y las listas de pedidos con cdigo postal compatible, respectivamente.
Esto supone interrogar la base de datos (capa servicios tcnicos), crear los perfiles
(pedidos) correspondientes y aadir los perfiles (pedidos) a las listas de perfiles y de
pedidos.
Una vez creada una combinacin, hay que aadirla a la lista de combinaciones
obtenidas.
Los pedidos compatibles con un dado perfil se obtienen unicamente considerando el
cdigo postal, eso no es suficiente: hay que controlar la correspondencia de las
habilidades y tiempos ofrecidos por el perfil con las habilidades y tiempos requeridos
en los pedidos.
Diagrama de clase (parcial)
El diagrama de clase es parcial y se ha obtenido despus haber diseado el diagrama de
comunicacin anterior.
Notar:
las nuevas clases introducidas con respecto al modelo de dominio
los nuevos mtodos aadidos
el cambio de atributo en la clase Combinacin con respecto al modelo de
dominio

10

Ejercicios para casa


1. Refinar el diagrama de comunicacin para la operacin de sistema
EjecutaCombinacin() considerando los otros criterios (las habilidades y el tiempo)
para obtener una lista de pedidos compatibles con el perfil corriente p[i].
2. Refinar el diagrama de clase respectivamente (si hace falta)
Modelo de implementacin (disciplina implementacin)
Un ejemplo de codifica (parcial) de la clase SesinCombinacin a partir del modelo de
diseo (diagrama de clase y diagrama de interaccin).
public void ejecutaCombinacin()
{
LinkedList listaPerfiles = archivoPerfiles.getListaPerfiles();
Perfil perfilCorriente; */ el perfil corriente de la lista */
/*bucle: para cada perfilCorriente en listaPerfiles*/
{
String cp = perfilCorriente.getCap();
LinkedList listaPed = archivoPedidos.getCompatible(cp);
Pedido pedidoCoriente; */ el pedido corriente de la lista */
/* bucle: para cada pedidoCorriente en listaPed*/
{
archivoCombinaciones.nuevaCombinacin
(perfilCorriente,pedidoCorriente);
}
}
}

11

Segunda fase: Elaboracin (Segunda iteracin)


Al final de la primera iteracin:
o Todo el software planeado ha sido producido y verificado en detalle (test de unidad,
conjunto, carga, usabilidad,etc.)
o La organizacin de voluntarios ha sido envolucrada para evaluar la funcionalidad de
combinacin ofertas y pedidos
o El sistema ha sido integrado y estabilizado como release interna Volbank_V1.0
o Se ha organizado una reunin para planear la proxma iteracin
Los requerimientos elegidos para la segunda iteracin son los siguientes:
o Implementacin de otro escenario del caso de uso Combinar ofertas y pedidos: se
considera la posibilidad que la organizacin de voluntarios pueda elegir una estrategia
diferente para obtener las combinaciones ofertas-pedidos (combinar una actividad de
voluntariado con los voluntarios apropiados, en la misma zona)
o Implementacin de un escenario de base para el caso de uso Encontrar
Combinaciones (ver caso de uso Combinar ofertas y pedidos en formato detallado:
segundo problema abierto)
o Implementacin de un caso de uso de Start Up (el main), necesario para gestionar la
inicializacin para esta iteracin
o Implementacin de la interfaz a soporte del caso de uso considerado.
Uso de otros diagrama UML en UP
Diagramas de actividades
Se usan los diagramas de actividades (DA) para representar procesos muy complejos que
involucran muchas partes. Normalmente el texto de casos de uso es suficiente para los
procesos simples.
El siguiente diagrama representa, como ejemplo de aplicacin de los DA, el proceso de
combinacin ofertas y pedidos haciendo hincapi en las partes involucradas.

12

Maquinas de estados
El siguiente diagrama de maquinas de estados representa el comportamiento de la clase
Combinacin.

13

También podría gustarte