CAPÍTULO 2. DISEÑO E IMPLEMENTACIÓN
2.3. M ODELO DEL ANÁLISIS
2.3.1. Diagramas de actividades
Los diagramas de actividades muestran el flujo de control entre actividades. Son muy usados para el modelado de procesos de negocio en estructuras y flujos de trabajo organizacionales, y para modelar los aspectos dinámicos de un sistema, lo cual implica representar los pasos secuenciales, posiblemente concurrentes, de un proceso computacional. (JAMES RUMBAUGH, 2000)
A continuación en la figura 2.2 y en la figura 2.3 se presentan los diagramas de actividades para el proceso de insertar un entrenamiento, correspondiente al caso de uso “Gestionar
C
APÍTULO2:D
ISEÑO E IMPLEMENTACIÓN27
entrenamiento” y el proceso de realizar una tarea atendida correspondiente al caso de uso
“Realizar tarea”.
Como se observa en la figura 2.2 el entrenador debe seleccionar la opción “Gestionar
entrenamientos” para acceder a las opciones de gestión de los entrenamientos y seleccionar
la opción de “Insertar entrenamiento”. Seguidamente debe introducir toda la información referente al entrenamiento en el formulario mostrado, el cuál una vez finalizado es validado por la aplicación.
C
APÍTULO2:D
ISEÑO E IMPLEMENTACIÓNFigura 2.3. Diagrama de actividades: Realizar tarea atendida
Como se muestra en la figura 2.3, en el proceso completo de realizar una tarea atendida parte de que el entrenador debe asignar un entrenamiento a un competidor. Una vez asignado el entrenamiento, el competidor puede acceder al entrenamiento y sus tareas correspondientes. Para dar respuesta a una tarea atendida el competidor debe subir un informe con su respuesta para que el entrenador lo revise y le asigne una calificación de
“Bien” o “Mal”. Si la calificación es de “Bien” la tarea se marca como resuelta y en caso
de “Mal” se marca la tarea como incorrecta y deberá ser respondida nuevamente por el
competidor.
2.3.2. Diagramas de colaboración
Un diagrama de colaboración muestra una interacción organizada basándose en los objetos que toman parte en la interacción y los enlaces entre los mismos. Los objetos interactúan entre sí pasándose mensajes y se conectan a través de enlaces. Los mensajes especifican la transmisión de información entre objetos y el enlace especifica un camino a lo largo del cual un objeto puede enviar un mensaje a otro objeto.
C
APÍTULO2:D
ISEÑO E IMPLEMENTACIÓN29
Figura 2.4. Diagrama de colaboración: Insertar entrenamiento
En la figura 2.4 se muestra el diagrama de colaboración para el proceso de insertar un nuevo entrenamiento en el sistema. Para poder insertar un entrenamiento el entrenador selecciona la opción de gestionar entrenamientos, luego la clase controladora muestra la interfaz de gestionar entrenamientos, donde el entrenador selecciona insertar entrenamiento y la clase controladora muestra la interfaz de inserta un entrenamiento para insertar los datos del entrenamiento. Estos datos son validados por el sistema e insertados en la base de datos.
La figura 2.5 muestra el diagrama de colaboración para el proceso de editar un entrenamiento. El entrenador debe seleccionar la opción gestionar entrenamientos, luego la clase controladora muestra la interfaz de gestionar entrenamientos, donde el entrenador selecciona el entrenamiento que desea editar y la clase controladora muestra la interfaz de editar el entrenamiento indicado, para que el entrenador modifique la información del entrenamiento. La nueva información del entrenamiento es validada e insertada en la base de datos por el sistema.
C
APÍTULO2:D
ISEÑO E IMPLEMENTACIÓNFigura 2.5. Diagrama de colaboración: Editar entrenamiento
Figura 2.6. Diagrama de colaboración: Asignar entrenamiento
Como se puede observar en el diagrama de colaboración para asignar un entrenamiento mostrado en la figura 2.6, el entrenador parte de seleccionar la opción de gestionar entrenamientos, la clase controladora muestra la interfaz de gestionar entrenamiento y el entrenador selecciona la opción asignar entrenamiento. Seguidamente la clase controladora muestra la interfaz de asignar entrenamiento, donde el entrenador debe seleccionar que
C
APÍTULO2:D
ISEÑO E IMPLEMENTACIÓN31
entrenamiento desea asignar y a que competidor. El sistema se encarga de verificar que ese entrenamiento no haya sido asignado a ese competidor con anterioridad.
2.4. Modelo de diseño
La fase de diseño expande y detalla los modelos del análisis tomando en cuenta todas las implicaciones y restricciones técnicas. El propósito del diseño es especificar una solución funcional y pueda ser convertida en código fuente, además de construir una arquitectura simple y fácilmente extensible. El modelo de diseño representa los componentes de la aplicación y determina su colocación adecuada y su uso dentro de la arquitectura en general.
2.4.1. Diagramas de navegación
El diagrama de navegación constituye un mapa que permite visualizar la estructura general de la aplicación, ilustrando las vías de navegación directa entre cada una de sus páginas para cada actor del sistema. En las figuras 2.7, 2.8, 2.9 y 2.10 se muestran los diagramas de navegación para los diferentes roles de usuarios definidos en el sistema. Como se puede observar todos los roles tienen la navegación del usuario anónimo, mientras que los entrenadores y administradores también tienen los elementos de la navegación del usuario competidor.
C
APÍTULO2:D
ISEÑO E IMPLEMENTACIÓNC
APÍTULO2:D
ISEÑO E IMPLEMENTACIÓN33
Figura 2.9. Diagrama de navegación: Usuario entrenador
Figura 2.10. Diagrama de navegación: Usuario administrador
2.5. Modelo de datos
Un modelo de datos es un conjunto de herramientas conceptuales para describir datos, sus relaciones, su significado y sus restricciones de consistencia. Este permite describir los elementos de la realidad que intervienen en un problema dado y la forma en que se relacionan esos elementos entre sí.
C
APÍTULO2:D
ISEÑO E IMPLEMENTACIÓN2.5.1. Diagrama entidad-relación
En la figura 2.11 se muestra el diagrama entidad-relación del modelo de datos del sistema propuesto.
Figura 2.11. Diagrama de la base de datos: Modelo entidad-relación
Como se puede observar en modelo existen dos casos de herencia, en la relación “Usuario”
y “Tarea”. Al transformar este modelo al modelo relacional en el caso de herencia de la
relación “Usuario”, los atributos de los subtipos pasan al supertipo, y en el caso de herencia de la relación “Tarea”, se mantienen las tres relaciones “Tarea”, “Tarea
atendida” y “Tarea desatendida”, propagándose la llave del supertipo a los subtipos.
2.6. Modelo de implementación
El diagrama de componentes describe los elementos físicos del sistema y sus relaciones, mostrando opciones de realización, incluyendo código fuente, binario y ejecutable. Los componentes representan todos los tipos de elementos software que entran en la fabricación de aplicaciones informáticas y pueden ser simples archivos, cabeceras, bibliotecas compartidas, módulos, ejecutables, o paquetes(Grady Booch, 1998). En la figura 2.12 se muestra el diagrama de componentes del sistema propuesto. Como puede observarse se emplearon bibliotecas de JavaScript para darle una mayor organización y funcionalidad al sistema. El resto de los componentes fueron implementados siguiendo los estándares para el desarrollo con Symfony2.
C
APÍTULO2:D
ISEÑO E IMPLEMENTACIÓN35
Figura 2.12. Diagrama de componentes
2.7. Modelo de despliegue
El diagrama de despliegue (2013a) se utiliza para modelar el hardware utilizado en las implementaciones de sistemas y las relaciones entre sus componentes. En este tipo de diagrama no existen actores para relacionarse con los nodos, todas las relaciones que pueden existir siempre serán entre los nodos.
En la figura 2.13 se muestra el diagrama de despliegue de la aplicación propuesta. El diagrama está compuesto por un servidor Web, un servidor de base de datos y un conjunto de máquinas para el cliente.
La máquina del cliente permite a los usuarios interactuar directamente con la aplicación. El servidor Web se encarga de ejecutar el código PHP, así como interactuar con el servidor de bases de datos y garantizar una interacción más fuerte entre el cliente y el servidor.
C
APÍTULO2:D
ISEÑO E IMPLEMENTACIÓNFigura 2.13. Diagrama de despliegue
Consideraciones finales del capítulo
En este capítulo se hizo un análisis de los diferentes requisitos funcionales que tiene el sistema propuesto. Estos requisitos se modelaron a través del diagrama de casos de uso, donde se refleja su relación con cada uno de los actores del sistema. Se hizo un análisis del diseño y la implementación planteando la concepción general del sistema, apoyado en los diagramas de actividad, diagramas de colaboración, diagramas de navegación, diagrama de entidad-relación, diagrama de componentes y el diagrama de despliegue.
Con ayuda del framework de desarrollo Symfony2 se logró implementar el sitio Web que permite dar seguimiento diferenciado al entrenamiento de los estudiantes que participan en el concurso de programación del ACM-ICPC. Además este sistema puede ser empleado con fines docentes para la realización de actividades prácticas de los estudiantes en diferentes materias impartidas en carreras con perfil relacionado con la computación.