Beruflich Dokumente
Kultur Dokumente
1 Introducción
2 Funcionalidad básica
Este apartado especifica la funcionalidad básica del sitio Web de apuestas deportivas
con un modelo de funcionamiento muy simplificado. Esta funcionalidad deberá ser
implementada por todos los alumnos que cursen las asignaturas IS-Ingeniería o IS-
Máster.
1
A continuación se muestran algunos ejemplos de tipos de apuestas (sin indicar la cuota
de ganancia de cada opción):
Cada usuario podrá realizar apuestas sobre cualquiera de los tipos de apuesta
disponibles para los que el correspondiente evento todavía no haya empezado. Cada
apuesta de usuario especifica la opción elegida por el usuario y la cantidad de dinero que
éste apuesta. Obsérvese que un usuario puede apostar por “n” (n ≥ 1) opciones de un mismo
tipo de apuesta realizando “n” apuestas (una por cada opción por la que apuesta), tanto si el
tipo de apuesta admite múltiples opciones ganadoras como si no.
Por último, la aplicación Web no tendrá que mantener información con respecto a los
equipos y deportistas que aparecen en los tipos de apuestas.
2
mostrarán todos los eventos (que no hayan empezado). Los eventos que
aparecen como resultado de una búsqueda se muestran ordenados por fecha de
celebración, en orden ascendente, es decir, primero los más cercanos en el
tiempo. Por cada evento se mostrará su nombre y la fecha de celebración. El
nombre del evento estará asociado a un enlace que permitirá visualizar todos sus
tipos de apuesta (con sus opciones disponibles).
Para poder insertar eventos, tipos de apuestas y publicar los resultados, un usuario
especial (e.g. con seudónimo “admin”) se autenticará en el sitio Web, de manera que el sitio
Web le proporcione la siguiente funcionalidad:
• Búsqueda de eventos. El sitio Web le permitirá buscar los eventos por palabras
clave y categoría, igual que al usuario apostador, pero a diferencia de éste, la
búsqueda se restringirá a los eventos que tengan tipos de apuestas a los que no se
les ha especificado la opción u opciones ganadoras o aquellos que todavía no
tienen asociado ningún tipo de apuestas (estos últimos eventos corresponden a
eventos que posiblemente se acaban de añadir).
3
2.3 Pruebas de integración de la capa modelo
En línea con la tendencia de la Web 2.0 [WEB2.0], el sitio Web de apuestas deportivas
ofrece un conjunto de servicios para que otras aplicaciones puedan acceder a parte de su
funcionalidad y/o datos, y potencialmente, usarlos de manera “imaginativa”. Cada uno de
estos servicios se invocará a través de HTTP mediante una URL y devolverá el resultado
(datos) en XML. Este sencillo esquema de comunicación que envía información en XML
sobre HTPP es conocido normalmente como REST, y permite que una aplicación pueda
acceder a funcionalidad/datos de otra sin importar la tecnología en la que estén
implementadas. En un caso real, se definen modelos de negocio para que tanto el proveedor
de los servicios (el sitio Web de apuestas deportivas), como las aplicaciones cliente de los
servicios (la aplicación Web .NET), puedan obtener un beneficio económico.
2.5 Internacionalización
4
pedirá que la aplicación trate otros aspectos de internacionalización (e.g. fechas, cantidades
monetarias, etc.).
Este apartado especifica una funcionalidad opcional para las asignaturas IS-
Ingeniería e IS-Master, y no forma parte de la asignatura IIS-Máster.
Para el caso de uso “búsqueda de eventos por palabras clave y categoría (usuario
‘apostador’)” se implementará un conjunto exhaustivo de casos de prueba (e.g. no existe
ningún evento que concuerde con la búsqueda, el orden de las palabras clave no influye,
etc.).
Con la funcionalidad básica, cuando un usuario está visualizando los tipos de apuesta de
un evento, para realizar una apuesta hace clic sobre una opción de apuesta de un tipo de
apuesta, y a continuación se le muestra una página que muestra la información de la apuesta
con un formulario para especificar la cantidad. En esa parte opcional será preciso que la
página que muestra los tipos de apuesta de un evento muestre un área (e.g. a la derecha)
con las apuestas actuales del usuario, es decir, aquellas que todavía no se han resuelto.
Cuando el usuario hace clic sobre una opción de apuesta, al área de apuestas actuales se le
añadirá la información de la apuesta y un formulario para especificar la cantidad. Una vez
especificada, la apuesta se visualizará en la lista de apuestas actuales y el formulario
desaparecerá. Si el número de apuestas actuales es mayor que un determinando número
(e.g. 10), el área de apuestas actuales las mostrará paginadas, con enlaces para avanzar o
retroceder. Con una implementación básica, para cada una de estas interacciones (apostar y
avanzar/retroceder en la lista de apuestas actuales) será preciso generar completamente la
página HTML que muestra los tipos de apuesta del evento y el área de apuestas actuales.
En esta parte adicional, será preciso regenerar sólo la parte afectada de la página, es decir,
la que contiene el área de apuestas actuales. Este nivel de interactividad es similar al de una
aplicación de escritorio.
5
[AJAX] (“Asynchronous JavaScript + XML”), y también constituyen una característica de
la Web 2.0.
Para la implementación de esta parte adicional, se utilizará el soporte AJAX que ofrece
Tapestry [TAPESTRY-AJAX].
5 Normativa y evaluación
1. Arquitectura global
2. Modelo
6
Muestra todas las clases persistentes en uno o varios diagramas de clases y las
relaciones relevantes entre ellas.
Explica el criterio que se ha seguido para agrupar los casos de uso en servicios
(fachadas). Incluye un diagrama de clases para cada servicio, que muestra la
interfaz del servicio (con la declaración completa de sus operaciones) y los tipos
de datos que utilizan las operaciones.
3. Interfaz gráfica
4. Servicios XML
7
Se explicará claramente cómo se ha realizado cada parte adicional.
7. Problemas conocidos
A efectos de planificación debe tenerse en cuenta que cada iteración debe estar lista
para el primer día posible de su plazo de entrega.
La entrega de cada iteración es obligatoria y deben estar presentes todos los miembros
del grupo. En la entrega se realizará una demo y se harán preguntas individualizadas sobre
el diseño y la implementación. La corrección de la primera iteración no llevará una
nota asociada ni será necesario entregar una memoria. Bastará con mostrar los
diagramas correspondientes al apartado 2 de la memoria electrónicamente (mediante una
herramienta UML o visualizando imágenes) o de manera impresa. El objetivo de la
corrección de esta primera iteración es intentar detectar errores importantes, y en ese caso,
orientar al alumno hacia su resolución. En la corrección de la segunda iteración se
pondrá una nota y se deberá entregar la memoria impresa.
Para la realización de la práctica puede reusarse todo el código (en formato binario o
fuente) que se desee de los ejemplos distribuidos en la asignatura, y de hecho, se
recomienda hacerlo, dado que facilitará notablemente el comienzo de la práctica. También
8
es importante resaltar que el código utilizado debe comprenderse (se ha explicado en clase),
y no usarlo “ciegamente”.
5.5 Evaluación
• IS-Ingeniería:
• IS-Máster:
• IIS-Máster:
• Su correcto funcionamiento.
• La calidad de la memoria.
Una práctica copiada significará un suspenso para el grupo que ha dejado copiar y
el que ha copiado; a todos los efectos, no se hará ninguna distinción. Los suspensos
por práctica copiada tendrán que realizar una práctica distinta, que además deberán
proponer (y ser aceptada).
6 Referencias
[AJAX] Ajax: A New Approach to Web Applications,
http://www.adaptivepath.com/ideas/essays/archives/000385.php.
9
[TAPESTRY-AJAX] Tapestry AJAX Support,
http://tapestry.apache.org/tapestry5/guide/ajax.html.
[WEB2.0] “What Is Web 2.0: Design Patterns and Business Models for the Next
Generation of Software”,
http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html.
10