herramienta para la gestión de las tareas, reuniones y ... · p.1.2. creación de la memoria 20...

67
David Rueda Lejárraga Beatriz Pérez Valle Máster universitario en Tecnologías Informáticas 2015-2016 Título Director/es Facultad Titulación Departamento TRABAJO FIN DE ESTUDIOS Curso Académico Herramienta para la gestión de las tareas, reuniones y procesos principales de Garnica Autor/es

Upload: others

Post on 11-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

David Rueda Lejárraga

Beatriz Pérez Valle

Máster universitario en Tecnologías Informáticas

2015-2016

Título

Director/es

Facultad

Titulación

Departamento

TRABAJO FIN DE ESTUDIOS

Curso Académico

Herramienta para la gestión de las tareas, reuniones yprocesos principales de Garnica

Autor/es

Page 2: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

© El autor© Universidad de La Rioja, Servicio de Publicaciones,

publicaciones.unirioja.esE-mail: [email protected]

Herramienta para la gestión de las tareas, reuniones y procesos principales deGarnica, trabajo fin de estudios

de David Rueda Lejárraga, dirigido por Beatriz Pérez Valle (publicado por la Universidad deLa Rioja), se difunde bajo una Licencia

Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported. Permisos que vayan más allá de lo cubierto por esta licencia pueden solicitarse a los

titulares del copyright.

Page 3: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Trabajo de Fin de Máster

Herramienta para la gestión de las tareas, reuniones y

procesos principales de Garnica

Autor:

David Rueda Lejárraga

Tutor/es: Beatriz Perez Valle

MÁSTER:

Máster en Tecnologías Informáticas (853M)

Escuela de Máster y Doctorado

AÑO ACADÉMICO: 2015/2016

Page 4: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de
Page 5: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Resumen

En el trabajo que se presenta en esta memoria se describe el desarrollo de

una aplicación de escritorio desarrollada para la empresa Grupo Garnica

Plywood S.A. Dicha herramienta permitirá gestionar tanto la información

relacionada con los procesos principales de oficina que se tratan en la empresa,

como las reuniones llevadas a cabo por sus empleados.

Abstract

This report describes the development of a desktop application for Grupo

Garnica Plywood described S.A. This application allows to handle both the

information related to office processes used in the company,, as well as, the

meetings held by its employees.

Page 6: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de
Page 7: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

1 de 61

Contenido 1. DOCUMENTO DE OBJETIVOS DEL PROYECTO .................................. 3

1.1. INTRODUCCIÓN Y ANTECEDENTES .............................................................. 3

1.1.1. Acerca de Garnica ............................................................................ 3

1.1.2. Motivación .......................................................................................... 3

1.2. ALCANCE .................................................................................................... 4

1.3. PLANIFICACIÓN DEL PROYECTO ................................................................. 5

1.3.1. EDT ..................................................................................................... 5

1.3.2. Estudio de horas ............................................................................... 6

1.3.3. Calendario de trabajo....................................................................... 6

1.4. PLAN DE RIESGOS....................................................................................... 8

1.5. METODOLOGÍA.......................................................................................... 10

2. ANÁLISIS ....................................................................................................... 11

2.1. CAPTURA DE REQUISITOS......................................................................... 11

2.1.1. Requisitos funcionales ................................................................... 11

2.1.2. Requisitos no funcionales.............................................................. 12

2.2. DIAGRAMAS DE CASOS DE USOS.............................................................. 12

2.2.1. Diagrama de casos de uso............................................................ 13

2.2.2. Especificación de casos de uso ................................................... 13

2.3. TECNOLOGÍAS A UTILIZAR ........................................................................ 23

2.4. PLAN DE PRUEBAS.................................................................................... 23

3. DISEÑO .......................................................................................................... 25

3.1. PROTOTIPOS DE LA INTERFAZ .................................................................. 25

3.2. ARQUITECTURA DEL SISTEMA .................................................................. 34

3.3. DISEÑO DE LA BASE DE DATOS ................................................................ 35

3.3.1. Diagrama Entidad-Relación .......................................................... 35

3.3.2. Diseño lógico ................................................................................... 37

3.4. MODELO DE DOMINIO................................................................................ 38

4. IMPLEMENTACIÓN ..................................................................................... 41

4.1. ESTRUCTURA DE LA APLICACIÓN ............................................................. 41

4.2. COMPONENTES Y TÉCNICAS UTILIZADOS ................................................ 42

Page 8: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

2 de 61

4.2.1. Syncfusion........................................................................................ 42

4.2.2. ADO.NET ......................................................................................... 46

4.2.3. Consultas recursivas ...................................................................... 47

4.3. IMPLEMENTACIÓN DE LA APLICACIÓN ...................................................... 49

4.3.1. Implementación de la BD .............................................................. 49

4.3.2. Implementación de la capa de persistencia ............................... 51

4.3.3. Implementación del modelo de dominio ..................................... 54

4.3.4. Implementación del modelo de negocio ..................................... 54

4.3.5. Implementación de la capa de presentación.............................. 55

5. PRUEBAS ...................................................................................................... 58

6. CONCLUSIONES Y GESTIÓN DEL PROYECTO .................................. 59

6.1. GESTIÓN DEL PROYECTO.......................................................................... 59

6.2. CONCLUSIONES ........................................................................................ 60

7. BIBLIOGRAFÍA............................................................................................. 61

Page 9: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 1 - DOCUMENTACIÓN

3 de 61

1. DOCUMENTO DE OBJETIVOS DEL PROYECTO

Esta memoria recoge todos los aspectos más destacables del proyecto

“Herramienta para la gestión de las tareas, reuniones y procesos principales de

Garnica”, el cual ha sido desarrollado por David Rueda Lejárraga en la empresa

Grupo Garnica Plywood S.A. (a partir de ahora se referirá solamente como

Garnica).

1.1. INTRODUCCIÓN Y ANTECEDENTES

1.1.1. Acerca de Garnica

Garnica es una empresa que se dedica al contrachapado del chopo y que

posee fábricas en Baños de Rio Tobía, Valencia de Don Juan, Fuenmayor y

Samazan (Francia). Garnica cuenta con unos 900 empleados y es el primer

productor europeo en tableros contrachapados de chopo con más de 220.000

metros cúbicos de tableros al año, unos ingresos superiores a 140 millones de

euros al año y más de 600 clientes en 36 países.

1.1.2. Motivación

A principios de año Garnica decidió que quería mejorar la forma de trabajar

en sus procesos de oficina. Para ello se lanzó a implementar lean service1 en los

procesos principales de oficina. Para realizar una mejor implementación del lean

service, se contrató un consultor especializado en su implementación. Este

consultor guiaría a Garnica paso a paso en dicho proceso y le ayudaría en el

caso de aparecer problemas.

El objetivo principal que motivó la realización de este TFM fue facilitar la

implantación de dicho lean service mediante el desarrollo de una herramienta

que se encargara de facilitar a Garnica dicha implantación. Para ello, esta

herramienta permitirá diseñar, visualizar y editar gráficamente los procesos de

Garnica.

1 Mejorar la efectividad de los procesos administrativos y de soporte, en calidad, coste y plazo.

Page 10: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 1 - DOCUMENTACIÓN

4 de 61

Otro motivo por el cual llevar a cabo este proyecto fue el gran número de

reuniones que se realizaban en Garnica. En particular, hasta ese momento el

proceso relacionado con la organización, redacción y creación de las futuras

tareas que fueran surgiendo de las reuniones se realizaban manualmente,

creándolas con Outlook, redactándolas en Word y marcando las tareas en un

Excel. Con este proyecto se pretende facilitar dicho proceso.

Por lo tanto, teniendo en cuenta lo anterior, se decidió emprender este

proyecto para solucionar ambos problemas y ayudar a los empleados de Garnica

en una parte de su trabajo.

1.2. ALCANCE

El alcance de este proyecto comprende la creación de una aplicación de

escritorio para sistemas Windows que permita conectarse a una BD, siempre

que se esté conectado a la subred de Garnica. Dicha aplicación permitirá

gestionar toda la información relacionada con las reuniones de los empleados de

Garnica y toda la información relacionada con los procesos principales de oficina.

Además, se incluirá la posibilidad de crear tareas que provengan de reuniones,

procesos, de ambas partes o de ninguna de ellas.

Así mismo, la aplicación deberá dar soporte al envío de reuniones a través del

Outlook de cada empleado, además permitirá exportar ciertos datos a formato

Excel.

El proyecto podría dividirse en tres partes. La parte de gestión de las

reuniones, en la cual se encuentra su creación y su listado. La parte de gestión

de procesos, en la que deberá existir un panel de administración que permita a

los usuarios modificarla información referente a los procesos principales de

oficina, así como crear nuevos procesos o eliminar alguno ya existente. Esta

opción solo deberá estar disponible para ciertos empleados de Garnica. Además,

dispondrá de una parte de gestión de tareas, las cuales podrán provenir de una

reunión, de un proceso, de ambas o de ninguna.

Page 11: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 1 - DOCUMENTACIÓN

5 de 61

1.3. PLANIFICACIÓN DEL PROYECTO

Para poder dar respuesta a todos los requisitos, cumpliendo los plazos del

proyecto y sobre todo en un proyecto de este tamaño, deberemos realizar una

buena planificación.

1.3.1. EDT

Con objeto de realizar una correcta planificación del trabajo, lo primero que se

ha realizado es una Estructura de Descomposición del Trabajo (EDT). A

continuación, se muestra un diagrama con la estructura del proyecto y

posteriormente se pasa a describir cada una de las tareas que lo conforman.

Page 12: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 1 - DOCUMENTACIÓN

6 de 61

1.3.2. Estudio de horas

Descripción y tiempo que se estima que será necesario dedicar a cada tarea.

Tarea Tiempo estimado (en horas)

P.1. Gestión del TFM 60

P.1.1. Seguimiento del TFM 5

P.1.2. Creación de la memoria 20

P.1.3. Planificación 13

P.1.4. Reuniones 7

P.1.5. Defensa 15

P.2. Análisis de requisitos 40

P.2.1. Captura de requisitos 20

P.2.2. Diagramas de casos de uso 20

P.3. Diseño 30

P.3.1. Diseño de la BD 10

P.3.2. Diseño de clases 10

P.3.3. Diseño de los prototipos 10

P.4. Implementación 155

P.4.1. Base de Datos 40

P.4.2. Capa de persistencia 40

P.4.3. Capa de lógica de negocio 30

P.4.4. Capa de presentación 45

P.5. Pruebas 15

P.5.1. Establecer el plan pruebas 5

P.5.2. Análisis de las pruebas 5

P.5.3 Realización de mejoras 5

Proyecto completo 300

1.3.3. Calendario de trabajo.

Se estima que para la realización del proyecto se dedicarán 300 horas desde

el 29 de marzo de 2016 hasta el 14 de julio de 2016.

Page 13: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 1 - DOCUMENTACIÓN

7 de 61

Este proyecto se compatibilizará con el trabajo desarrollado como empleado

de Garnica, cuya dedicación ya está contemplada en la distribución de los

tiempos. Destacar que durante mi jornada laboral en Garnica no se realizará este

proyecto. El tiempo dedicado a este proyecto será durante las horas que no me

encuentre trabajando en la empresa.

Destacar la tarea de Gestión del TFM, la cual se extenderá durante todo el

transcurso del TFM. Solo se señalan con un color diferente los días en los que

se trabajará explícitamente en esa tarea.

Marzo Abril Mayo

L M X J V S D L M X J V S D L M X J V S D

1 2 3 4 5 6 1 2 3 1 2 3 4 1

7 8 9 10 11 12 13 4 5 6 7 8 9 10 2 3 4 5 6 7 8

14 15 16 17 18 19 20 11 12 13 14 15 16 17 9 10 11 12 13 14 15

21 22 23 24 25 26 27 18 19 20 21 22 23 24 16 17 18 19 20 21 22

28 29 30 31 27 28 25 26 27 28 29 30 29 23 24 25 26 27 28 29

30 31 30 31

Junio Julio

L M X J V S D L M X J V S D Gestión

1 2 3 4 5 1 2 3 Análisis

6 7 8 9 10 11 12 4 5 6 7 8 9 10 Diseño

13 14 15 16 17 18 19 11 12 13 14 15 16 17 Implementación

20 21 22 23 24 25 26 18 19 20 21 22 23 24 Pruebas

27 28 29 30 29 30 31 25 26 27 28 29 30 31 Inicio y Fin

Se procurará ceñirse en la medida de lo posible al tiempo estimado. Para

posibles contratiempos, se establecerá un plan de riesgos que se tendrá que

utilizar en dichas situaciones. A continuación, mostramos una tabla y el gráfico

asociado, en el que se muestra el peso correspondiente de cada tarea en

comparación con las demás:

Tarea Horas por tarea

Gestión del TFG 70

Análisis 30

Diseño 40

Implementación 140

Pruebas 20

Total 300

23%

10%

13%

47%

7%

Gestión del TFG

Análisis

Diseño

Implementación

Pruebas

Page 14: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 1 - DOCUMENTACIÓN

8 de 61

En la siguiente imagen se muestra el diagrama de Gantt diseñado para la

realización del proyecto.

1.4. PLAN DE RIESGOS

Como se ha comentado anteriormente y para intentar evitar o solucionar los

problemas que puedan acontecer durante el desarrollo del proyecto de la mejor

manera posible, se ha creado un plan de riesgos. En particular, se han

identificado los posibles riesgos y un plan de dirección de riesgos a seguir para

cada uno de ellos.

Cambio de requisitos: se dará en el caso en el que los responsables de

soporte decidan añadir o cambiar cierta funcionalidad.

• Probabilidad: alta.

• Momento previsto: durante todo el desarrollo.

• Plan de dirección de riesgos: se estudiará la nueva funcionalidad y en

caso de ser factible se añadirá al proyecto.

Page 15: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 1 - DOCUMENTACIÓN

9 de 61

Requisitos poco claros: puede darse en el caso de haber realizado una

descripción demasiado breve de algún requisito.

• Probabilidad: alta.

• Momento previsto: durante la etapa de análisis.

• Plan de dirección de riesgos: se revisará cuáles son los requisitos que

estén poco claros y se volverán a redactar para mejorar su descripción.

Errores de diseño, omisiones o malentendidos: durante cualquier etapa

del proyecto puede darse el caso de que los responsables de soporte puedan

detectar algo que no esté a su gusto.

• Probabilidad: baja.

• Momento previsto: durante todo el proyecto.

• Plan de dirección de riesgos: se volverá a la etapa correspondiente a

realizar los cambios necesarios.

Errores en la planificación: puede darse el caso de que la estimación de

tiempos no se ajuste lo suficiente a la realidad.

• Probabilidad: media.

• Momento previsto: durante todo el desarrollo.

• Plan de dirección de riesgos: si el tiempo de desfase fuera pequeño no se

implantará ningún plan de riesgos. En caso contrario, se volvería a

reajustar la planificación con nuevos tiempos.

Falta del desarrollador: puede darse el caso de que el alumno no pueda

realizar el proyecto debido a distintas causas (indisponibilidad, viajes…).

• Probabilidad: media.

• Momento previsto: durante todo el desarrollo.

• Plan de dirección de riesgos: si el tiempo de indisponibilidad fuera

pequeño no se implantará ningún plan de riesgos. En caso de grandes

tiempos de indisponibilidad, se volverá a reajustar la planificación.

Page 16: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 1 - DOCUMENTACIÓN

10 de 61

Falta del director del proyecto: puede darse el caso de que el director no

pueda reunirse debido a distintas causas (indisponibilidad, conferencias,

clases…).

• Probabilidad: media.

• Momento previsto: durante todo el desarrollo.

• Plan de dirección de riesgos: para minimizar este problema, se mantendrá

al director del proyecto lo más al día posible, para minimizar el impacto en

el proyecto.

Fallo hardware: puede darse el caso de que falle el hardware del ordenador

del proyecto y se pierda toda la información del proyecto.

• Probabilidad: baja.

• Momento previsto: durante todo el desarrollo.

• Plan de dirección de riesgos: para evitarlos se utilizará un repositorio de

GitHub y se realizarán backup semanales por el sistema de seguridad de

Garnica.

Desconocimiento de ciertas herramientas: puede darse el caso de que el

alumno no sepa cómo utilizar alguna herramienta software de las necesarias

para el desarrollo del producto.

• Probabilidad: alta.

• Momento previsto: durante todo el desarrollo.

• Plan de dirección de riesgos: se buscarán manuales para facilitar su

aprendizaje.

1.5. METODOLOGÍA

Para conseguir un mejor control del proyecto se decidió utilizar la metodología

en cascada. Esta metodología es considerada como el enfoque clásico para el

ciclo de vida del desarrollo de sistemas, se puede decir que es un método puro

que implica un desarrollo rígido. Está es una secuencia de etapas que consisten

en el análisis de requerimientos, el diseño, la implementación, la integración y

las pruebas. Las principales ventajas son su sencillez, te permite tener el

proyecto bajo control y ayuda a entregar el proyecto a tiempo.

Page 17: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 2 - ANALISIS

11 de 61

2. ANÁLISIS

El siguiente capítulo se centra en presentar los aspectos referentes al análisis

del proyecto.

2.1. CAPTURA DE REQUISITOS

Los requisitos describen los servicios que ha de ofrecer el sistema y las

restricciones asociadas a su funcionamiento. En esta sección analizaremos los

requisitos tanto funcionales como no funcionales de nuestra aplicación.

2.1.1. Requisitos funcionales

Los requisitos funcionales impuestos para la aplicación son:

R.1) La aplicación mostrará las tareas asociadas a cada usuario.

R.2) Las tareas podrán filtrarse según criterios.

R.3) Las tareas podrán exportarse en excel.

R.4) Las tareas podrán mostrarse en un calendario según su fecha de

finalización.

R.5) La aplicación permitirá crear tareas.

R.6) La aplicación permitirá crear reuniones.

R.7) La aplicación permitirá mostrar las reuniones de cada usuario.

R.8) Toda reunión deberá ir acompaña de una agenda.

R.9) Una reunión deberá tener invitados.

R.10) Una reunión podrá concebir distintas tareas.

R.11) Una reunión podrá incluir una lista de asistentes.

R.12) La aplicación podrá crear un acta para cada reunión finalizada.

R.13) Las reuniones podrán filtrarse según criterios.

R.14) La aplicación mostrará el Mapa de Procesos Principales de Garnica.

R.15) La aplicación mostrará el diagrama de cada proceso y sus

correspondientes datos.

R.16) La aplicación permitirá a usuarios avanzados editar el Mapa de Procesos

Principales de Garnica.

R.17) La aplicación permitirá a usuarios avanzados editar el diagrama de cada

proceso y sus correspondientes datos.

R.18) La aplicación permitirá a usuarios avanzados crear el diagrama de

procesos y sus correspondientes datos.

R.19) La aplicación mostrará todas las tareas de un proceso.

R.20) La aplicación permitirá filtrar según criterios las tareas de un proceso.

Page 18: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 2 - ANALISIS

12 de 61

R.21) La aplicación permitirá mostrar estadísticas de las tareas de los procesos.

R.22) La aplicación permitirá crear tareas para ese proceso.

R.23) La aplicación permitirá imprimir el mapa de procesos.

R.24) La aplicación permitirá exportar el mapa de procesos.

R.25) La aplicación permitirá ver los datos de los empleados de Garnica.

R.26) La aplicación permitirá editar los datos propios de cada usuario.

2.1.2. Requisitos no funcionales

A continuación, se presentan los requisitos no funcionales que serán divididos

en cuatro grupos.

Requisitos del sistema operativo

La aplicación deberá funcionar correctamente en Windows 7 de 64 y de 32

bits.

Requisitos de disponibilidad

La aplicación deberá tener una disponibilidad de 24/7 semanales,

exceptuando los periodos de tiempo en los que se encuentre en mantenimiento.

Requerimientos de Soporte

Se documentará la aplicación con un manual de ayuda con el objetivo de

explicar el uso e instalación de la misma. Además, se debe crear el proyecto de

forma versionable para que permita realizar mantenimientos del mismo a fin de

aumentar las funcionalidades y/o corregir los errores del mismo. A través de

versiones posteriores se podrá continuar mejorando el proyecto.

Requerimientos de Seguridad

La información estará protegida contra accesos no autorizados, utilizando

mecanismos de validación.

2.2. DIAGRAMAS DE CASOS DE USOS

En esta sección presentaremos los diagramas de casos de uso del proyecto

y su respectiva especificación. También se han diseñado algunos diagramas de

actividad que debido a su sencillez no han sido incluidos en esta memoria.

Page 19: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 2 - ANALISIS

13 de 61

2.2.1. Diagrama de casos de uso

Tras sendas reuniones con el cliente y en base a los requisitos funcionales

identificados, se ha detectado que la aplicación constará de dos actores, los

usuarios básicos y los usuarios avanzados. Todos los usuarios serán básicos a

excepción de los responsables de algún proyecto que asumirán el rol de usuario

avanzado. El diagrama de casos de uso es el siguiente:

2.2.2. Especificación de casos de uso

A continuación, vamos a mostrar la especificación de los casos de uso. La

descripción de cada caso de uso consta de un nombre, una pequeña descripción,

los actores que intervienen, los requisitos funcionales que cubre, una

precondición y postcondición un flujo básico y, en algunos casos, un flujo

alternativo. Como se ha comentado anteriormente, la aplicación constará de dos

actores que serán el usuario básico y el usuario avanzado.

Page 20: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 2 - ANALISIS

14 de 61

Caso de uso Mostrar tareas

Descripción El usuario podrá ver todas sus tareas.

Actores Usuario básico.

Requisitos R.1

Precondiciones El usuario debe tener acceso a la aplicación.

Postcondiciones El usuario tendrá acceso a todas las tareas.

Flujo básico

1. El usuario deberá dirigirse al apartado “Tareas”.

2. El sistema mostrará todas las tareas de dicho usuario.

Flujo alternativo y excepciones

El usuario podrá hacer el caso de uso “Filtrar tareas”.

El usuario podrá hacer el caso de uso “Exportar tareas”.

El usuario podrá hacer el caso de uso “Ver tareas en calendario”.

Caso de uso Filtrar tareas

Descripción El usuario podrá filtrar las tareas para ver las que desee.

Actores Usuario básico.

Requisitos R.2

Precondiciones El usuario está en el apartado “Tareas”.

Postcondiciones El usuario verá en pantalla aquellas tareas que le

interesen.

Flujo básico

1. El usuario deberá elegir unas características de las tareas y crear un

filtro con ellas

2. El sistema analizará dicho filtro y mostrará solo aquellas tareas que lo

cumplan.

Caso de uso Ver tareas en calendario

Descripción El usuario podrá las tareas en un calendario.

Actores Usuario básico.

Requisitos R.4

Precondiciones El usuario está en el apartado “Tareas”.

Postcondiciones El usuario verá en pantalla un calendario con las tareas en

los días que terminan.

Flujo básico

1. El usuario elegirá la opción de ver tareas en calendario.

2. El sistema obtendrá todas las tareas del usuario y mostrará en el

calendario según la fecha de finalización de cada tarea.

Page 21: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 2 - ANALISIS

15 de 61

Caso de uso Exportar tareas

Descripción El usuario podrá exportar las tareas en formato Excel.

Actores Usuario básico.

Requisitos R.3

Precondiciones El usuario está en el apartado “Tareas”.

Postcondiciones El usuario obtendrá un archivo Excel con las tareas

indicadas.

Flujo básico

1. El usuario elegirá la opción de exportar tareas.

2. El sistema creará un archivo excel e incorporará todas las tareas que

tiene en la pantalla.

Caso de uso Crear tareas

Descripción El usuario podrá crear nuevas tareas.

Actores Usuario básico.

Requisitos R.5

Precondiciones El usuario está en el apartado “Tareas”.

Postcondiciones El usuario creará una nueva tarea para un usuario.

Flujo básico

1. El usuario deberá dirigirse al apartado “Crear Tareas”.

2. El sistema mostrará un formulario con una serie de datos para la

creación de la tarea.

3. El usuario rellenará los campos del formulario.

4. El sistema validará los datos.

5. El sistema creará la tarea.

Caso de uso Crear agenda

Descripción El usuario podrá crear una agenda para una reunion.

Actores Usuario básico.

Requisitos R.8

Precondiciones El usuario estará en el apartado de “Crear Reuniones”.

Postcondiciones El usuario creará una agenda para una reunión

especifica.

Flujo básico

1. El sistema mostrará un formulario con una serie de datos para la

creación de la agenda.

2. El usuario rellenará los campos del formulario.

3. El sistema validará los datos y creará la agenda.

Page 22: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 2 - ANALISIS

16 de 61

Caso de uso Crear reunión

Descripción El usuario podrá crear nuevas reuniones.

Actores Usuario básico.

Requisitos R.6, R.10

Precondiciones El usuario está en el apartado “Reuniones”.

Postcondiciones El usuario creará una nueva reunión.

Flujo básico

1. El usuario deberá dirigirse al apartado “Crear Reuniones”.

2. El sistema mostrará una serie de datos para la creación de la reunión.

3. El usuario rellenará los campos del formulario.

4. El usuario deberá hacer el caso de uso “Crear agenda”.

5. El usuario deberá hacer el caso de uso “Crear invitaciones”.

6. El sistema validará los datos.

7. El sistema notificará de la reunión a los usuarios que estén invitados.

8. El sistema creará la reunión.

Flujo alternativo y excepciones

El usuario podrá hacer el caso de uso “Crear tareas”.

El usuario podrá hacer el caso de uso “Crear tareas”.

Caso de uso Mostrar reuniones

Descripción El usuario podrá ver todas sus reuniones.

Actores Usuario básico.

Requisitos R.7

Precondiciones El usuario debe tener acceso a la aplicación.

Postcondiciones El usuario tendrá acceso a todas sus reuniones.

Flujo básico

1. El usuario debe dirigirse al apartado de “Reuniones”.

2. El sistema mostrará todas las reuniones de dicho usuario.

Flujo alternativo y excepciones

El usuario podrá hacer el caso de uso “Crear acta”

El usuario podrá hacer el caso de uso “Filtrar reuniones”

El usuario podrá hacer el caso de uso “Crear tarea”

El usuario podrá hacer el caso de uso “Apuntar asistentes”

Page 23: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 2 - ANALISIS

17 de 61

Caso de uso Crear invitaciones

Descripción El usuario podrá crear invitaciones para una reunión.

Actores Usuario básico.

Requisitos R.9

Precondiciones El usuario estará en el apartado de “Crear Reuniones”.

Postcondiciones El usuario creará invitaciones para una reunión especifica.

Flujo básico

1. El sistema mostrara todos los usuarios del sistema.

2. El usuario elegirá a los usuarios que desea invitar.

3. El sistema validará los datos.

4. El sistema creará las invitaciones.

Caso de uso Crear acta

Descripción El usuario podrá crear un acta para una reunión.

Actores Usuario básico.

Requisitos R.12

Precondiciones El usuario estará en el apartado de “Reuniones”.

Postcondiciones El usuario creará un acta para una reunión especifica.

Flujo básico

1. El sistema mostrará un formulario con una serie de datos para la

creación del acta.

2. El usuario rellenará los campos del formulario.

3. Ver caso de uso “Apuntar asistentes”

4. El sistema validará los datos y creará el acta.

Caso de uso Filtrar reuniones

Descripción El usuario podrá filtrar sus reuniones para ver las que

desee.

Actores Usuario básico.

Requisitos R.13

Precondiciones El usuario está en el apartado “Reuniones”.

Postcondiciones El usuario verá en pantalla aquellas reuniones que le

interesen.

Flujo básico

1. El usuario deberá elegir unas características de las reuniones y crear

un filtro con ellas

2. El sistema analizará dicho filtro y mostrará solo aquellas reuniones que

lo cumplan.

Page 24: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 2 - ANALISIS

18 de 61

Caso de uso Mostrar mapa de procesos

Descripción El usuario podrá ver el mapa de procesos principales

de Garnica.

Actores Usuario básico.

Requisitos R.14

Precondiciones El usuario debe tener acceso a la aplicación.

Postcondiciones El usuario tendrá acceso a al mapa de procesos

principales de Garnica.

Flujo básico

1. El usuario debe dirigirse al apartado de “Procesos”.

2. El sistema mostrará el mapa de procesos principales de Garnica.

Flujo alternativo y excepciones

El usuario podrá hacer el caso de uso “Mostrar proceso”

El usuario podrá hacer el caso de uso “Editar mapa de procesos”

El usuario podrá hacer el caso de uso “Exportar diagrama”

El usuario podrá hacer el caso de uso “Imprimir diagrama”

Caso de uso Mostrar proceso

Descripción El usuario podrá ver los detalles de un proceso de

Garnica.

Actores Usuario básico.

Requisitos R.15

Precondiciones El usuario estará en el apartado de “Procesos”.

Postcondiciones El usuario tendrá acceso a todos los detalles del proceso

de Garnica.

Flujo básico

1. El usuario elegirá el proceso del cual ver los detalles.

2. El sistema mostrará todos los detalles del proceso de Garnica.

Flujo alternativo y excepciones

El usuario podrá hacer el caso de uso “Mostrar tareas del proceso”

El usuario podrá hacer el caso de uso “Editar proceso”

El usuario podrá hacer el caso de uso “Exportar diagrama”

El usuario podrá hacer el caso de uso “Imprimir diagrama”

Page 25: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 2 - ANALISIS

19 de 61

Caso de uso Apuntar asistentes

Descripción El usuario podrá crear asistentes para una reunión.

Actores Usuario básico.

Requisitos R.11

Precondiciones El usuario estará en el apartado de “Reuniones”.

Postcondiciones El usuario creará asistentes para un acta especifica.

Flujo básico

1. El sistema mostrara todos los usuarios del sistema.

2. El usuario elegirá a los usuarios que desea apuntar como asistente.

3. El sistema validará los datos.

4. El sistema creará los asistentes.

Caso de uso Editar mapa de procesos

Descripción El usuario podrá editar mapa de procesos principales de

Garnica.

Actores Usuario avanzado.

Requisitos R.16

Precondiciones El usuario está en el apartado “Proceso”.

Postcondiciones El usuario tendrá permiso para modificar el mapa de

procesos principales de Garnica.

Flujo básico

1. El usuario debe dirigirse al apartado de “Procesos Avanzados”.

2. El sistema mostrará el mapa de procesos principales de Garnica.

3. El usuario podrá cambiar los datos del mapa de procesos.

4. El sistema validará los datos y guardará el nuevo mapa de procesos.

Caso de uso Crear procesos

Descripción El usuario podrá crear un proceso nuevo.

Actores Usuario avanzado.

Requisitos R.18

Precondiciones El usuario está en el apartado “Proceso”.

Postcondiciones El usuario creará un nuevo proceso.

Flujo básico

1. El usuario deberá dirigirse al apartado “Crear procesos”.

2. El sistema mostrará un formulario con una serie de datos para la

creación del proceso.

3. El usuario rellenará los campos del formulario.

4. El sistema validará los datos y creará el proceso.

Page 26: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 2 - ANALISIS

20 de 61

Caso de uso Mostrar tareas del proceso

Descripción El usuario podrá ver todas las tareas asociadas a un

proceso.

Actores Usuario básico.

Requisitos R.19

Precondiciones El usuario estará en el apartado de “Mostrar proceso”.

Postcondiciones El usuario creará una hoja de identificación para el

proceso especificado.

Flujo básico

1. El sistema mostrará un formulario con una serie de datos para la

creación de la hoja de identificación.

2. El usuario rellenará los campos del formulario.

3. El sistema validará los datos.

4. El sistema creará la hoja de identificación.

Flujo alternativo y excepciones

El usuario podrá hacer el caso de uso “Filtrar tareas proceso”

El usuario podrá hacer el caso de uso “Estadísticas tareas

proceso”

Caso de uso Editar proceso

Descripción El usuario podrá editar el diagrama.

Actores Usuario avanzado.

Requisitos R.17

Precondiciones El usuario estará en el apartado de “Mostrar proceso”.

Postcondiciones El usuario podrá cambiar el diagrama del proceso y

guardar los cambiar realizados.

Flujo básico

1. El usuario deberá elegir la opción de editar proceso,

2. El sistema mostrará un formulario en una cuadricula editable.

3. El usuario podrá añadir nuevas formas, cambiar las viejas, y modificar

las que ya estaban.

4. Una vez terminados los cambios, el usuario deberá darle a guardar los

cambios.

5. El sistema actualiza el diagrama para ese proceso.

Flujo alternativo y excepciones

El usuario podrá hacer el caso de uso “Crear procesos”

Page 27: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 2 - ANALISIS

21 de 61

Caso de uso Imprimir diagrama

Descripción El usuario imprimirá el diagrama.

Actores Usuario básico.

Requisitos

implementados

R.23

Precondiciones El usuario estará en el apartado de “Mostrar proceso” o

“Mostrar mapa de procesos”.

Postcondiciones El usuario imprimirá en una de sus impresos un

diagrama.

Flujo básico

1. El usuario elegirá la opción de imprimir diagrama.

2. El sistema creará una vista previa de lo que se va a imprimir imagen del

diagrama.

3. El usuario indicará la impresora donde imprimir y la configurará a su

gusto.

Caso de uso Exportar diagrama

Descripción El usuario obtendrá una imagen del diagrama.

Actores Usuario básico.

Requisitos R.24

Precondiciones El usuario estará en el apartado de “Mostrar proceso” o

“Mostrar mapa de procesos”.

Postcondiciones El usuario obtendrá la imagen del diagrama.

Flujo básico

1. El usuario elegirá la opción de exportar diagrama.

2. El usuario indicara la ruta, el nombre y el tipo de imagen.

3. El sistema creara imagen del diagrama.

Caso de uso Ver empleados

Descripción El usuario verá los datos de los empleados.

Actores Usuario básico.

Requisitos R.25

Precondiciones El usuario debe tener acceso a la aplicación.

Postcondiciones El usuario tendrá acceso a los datos de los empleados.

Flujo básico

1. El usuario deberá dirigirse al apartado “Empleados”.

2. El sistema mostrará todos los empleados.

Page 28: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 2 - ANALISIS

22 de 61

Caso de uso Filtrar tareas proceso

Descripción El usuario obtendrá una lista de tareas según el filtro.

Actores Usuario básico.

Requisitos R.20

Precondiciones El usuario estará en el apartado de “Mostrar proceso” o

“Mostrar mapa de procesos”.

Postcondiciones El usuario solo verá aquellas tareas que cumplan con

los requisitos del filtro

Flujo básico

1. El usuario deberá elegir unas características de las tareas y crear un

filtro con ellas

2. El sistema analizará los filtro y mostrará solo las tareas que lo cumplan.

Caso de uso Estadisticas tareas proceso

Descripción El usuario verá estadísticas de las tareas del proceso.

Actores Usuario básico.

Requisitos R.21

Precondiciones El usuario estará en el apartado de “Mostrar tareas

proceso”.

Postcondiciones El usuario obtendrá dos graficas en la que se los

mostrarán las estadísticas del proceso.

Flujo básico

1. El usuario elegirá la opción de ver las estadísticas de las tareas del

proceso.

2. El sistema mostrará las estadísticas en dos gráficas.

Caso de uso Editar mis datos

Descripción El usuario modificará sus datos.

Actores Usuario básico.

Requisitos R.26

Precondiciones El usuario estará en el apartado de “Ver empleados”.

Postcondiciones El usuario tendrá la posibilidad de actualizar sus datos en

la aplicación.

Flujo básico

1. El usuario deberá pulsar sobre su usuario.

2. El sistema mostrará sus datos.

3. El usuario modificará sus datos.

4. El sistema actualizará sus datos.

Page 29: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 2 - ANALISIS

23 de 61

2.3. TECNOLOGÍAS A UTILIZAR

En el transcurso de este proyecto se utilizarán distintas herramientas y

lenguajes de programación, las cuales se muestran a continuación:

• Visual studio 2010: será necesario para la creación de la aplicación

escritorio.

• ADO.NET: será necesario para la conexión con la BD.

• Syncfusion: utilizado para obtener controles visuales más avanzados.

• Microsoft Office Word: utilizado para la creación de la documentación.

• Microsoft Office Visio: se utilizará para la creación de los casos de usos,

así como el diagrama de EDT y la creación de los prototipos.

• Microsoft Office Project: se utilizará para la creación de la planificación del

presente proyecto.

• C#: será el lenguaje más utilizado y será el encargado de la

implementación de la aplicación.

• WindowForms: será necesario para crear la interfaz de escritorio.

• T-SQL: este lenguaje será utilizado para la creación de la BD y de los

procedimientos almacenados en SQL Server.

Como comentario decir que el lenguaje de programación y el SGBD han sido

impuestos por la empresa, debido a que son utilizados por la misma.

2.4. PLAN DE PRUEBAS

Se ha creado un plan de pruebas que será utilizado en el proyecto. Este plan

será comprobado punto por punto, con objetivo de asegurarnos de que todo

funciona correctamente. En caso de detección de algún fallo, se pasará a su

corrección o mejora.

• Comprobar que solo pueden entrar los usuarios que se encuentran en el

directorio activo de Garnica.

• Comprobar que la lista de tareas es correcta para todos los usuarios.

• Comprobar que los usuarios no puedan ver las tareas de otros usuarios.

• Asegurar que todos los filtros de las tareas funcionan correctamente.

• Comprobar que no se permita crear tareas con datos incoherentes.

Page 30: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 2 - ANALISIS

24 de 61

• Comprobar que la lista de reuniones es correcta para todos los usuarios.

• Comprobar que los usuarios no puedan ver las reuniones de otros

usuarios.

• Asegurar que todos los filtros de las reuniones funcionan correctamente.

• Comprobar que no permita crear reuniones con datos incoherentes.

• Comprobar que todos los usuarios básicos puedan ver el mapa de

proceso.

• Comprobar que solo los usuarios avanzados puedan editar el mapa de

procesos.

• Comprobar que todos los usuarios básicos puedan ver los detalles de los

procesos.

• Comprobar que solo los usuarios avanzados puedan crear procesos.

• Comprobar que no se permita crear procesos con datos incoherentes.

Page 31: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 3 - DISEÑO

25 de 61

3. DISEÑO

En este apartado vamos a tratar los aspectos relacionados en el diseño de la

aplicación, tanto en lo que se refiere al diseño de los prototipos de la interfaz,

como al diseño de las clases del sistema y al diseño de la base de datos.

3.1. PROTOTIPOS DE LA INTERFAZ

Los prototipos de la aplicación han sido diseñados con el programa Visio,

utilizando la plantilla sketchGUIShapes, la cual nos ha facilitado bastante el

trabajo.

Para el diseño de los prototipos nos hemos basado en las explicaciones

iniciales expuestas por los empleados del Departamento de Sistemas de

Garnica. Además, durante todo el proceso, su diseño ha sido revisado y,

finalmente aprobado por los empleados de Garnica destinados para ello.

Página de Inicio: esta página se ejecutará al inicio de la aplicación.

Solamente nos mostrará el mensaje de bienvenida.

Page 32: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 3 - DISEÑO

26 de 61

Página de Reuniones: esta página nos mostrará un listado de todas las

reuniones a las que estamos invitados. Podremos seleccionarlas y ver

todos sus detallas. En particular, se podrá ver su agenda, el acta, los

invitados, los asistentes, las tareas asociadas y sus indicadores. También

se podrá añadir el acta y sus asistentes en caso de no existir previamente.

Page 33: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 3 - DISEÑO

27 de 61

Página de Tarea: en ella se nos mostrarán todas nuestras tareas en un

rango de fechas. Podremos seleccionar las tareas de un usuario y de un

tipo concreto. También nos dará la posibilidad de añadir más tareas

(Añadir Tareas), exportar en excel las que tenemos filtradas (Exportar a

Excel) y ver nuestras tareas en un calendario según su fecha de

finalización (Ver en Calendario).

Page 34: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 3 - DISEÑO

28 de 61

Página de Tarea en Calendario: esta página mostrará las tareas del

usuario apuntadas en un calendario según su fecha de finalización.

Page 35: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 3 - DISEÑO

29 de 61

Página de Empleados: esta página nos mostrará el listado de todos los

empleados que están registrados en la aplicación junto con sus detalles.

Si hacemos doble click sobre alguno de nuestros datos se abrirá una

pantalla que nos permitirá editar nuestros datos.

Page 36: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 3 - DISEÑO

30 de 61

Página de Procesos: esta página nos mostrará el diagrama de procesos

y sus datos. Si somos un usuario avanzado podremos editar dicho

diagrama. Los usuarios básicos podrán imprimir y exportar en formato

imagen el diagrama. A demás, de ver las tareas del proceso.

Page 37: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 3 - DISEÑO

31 de 61

Página de Editor Procesos: esta página nos permitirá dibujar los

diagramas de los procesos. Para ello deberemos añadir las diferentes

formas y editarlas a nuestro gusto. También se podrán crear nuevos

diagramas para otros procesos.

Page 38: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 3 - DISEÑO

32 de 61

Página de Estadísticas Tareas Proceso: esta página nos mostrará dos

tipos de gráficos de las estadísticas de las tareas asociadas a un proceso.

Page 39: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 3 - DISEÑO

33 de 61

Página de tareas de procesos: en esta página se nos mostrarán todas las

tareas de un proceso. Podremos realizar distintos filtros para solo ver

ciertas tareas. También se podrán añadir más tareas a un proceso (Añadir

Tarea). Exportar las tareas en un Excel (Exportar a Excel) y ver las

estadísticas de todas las tareas (Ver en Estadisticas).

Page 40: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 3 - DISEÑO

34 de 61

3.2. ARQUITECTURA DEL SISTEMA

El sistema se basa en la arquitectura en 3 capas (presentación, negocio y

persistencia).

En lo que se refiere a la separación topológica o física de la aplicación, decir

que dispondremos de un servidor, en el cual se alojará la BD. El resto de la

aplicación se instalará en los ordenadores de los usuarios finales.

Capa de Presentación

Capa de persistenciaCapa de lógica de

Negocio

BD interna

Servidor de la BDEquipo del usuario

Capas (Separación lógica)

Topología (Separación física)

Cada capa tendrá una funcionalidad determinada:

Capa de presentación: la que interactuará con el usuario, presenta el

sistema al usuario, le comunica la información y captura la información del

usuario. Esta capa se comunica únicamente con la capa de negocio.

Capa de negocio: es donde se establecen todas las reglas de negocio

que deben cumplirse. Esta capa se comunica con la capa de

presentación, para recibir las solicitudes y presentar los resultados, y con

la capa de persistencia, para solicitar al gestor de base de datos

almacenar o recuperar datos de él. Estará formada por el modelo de

dominio, que refiere a las entidades propias del dominio de la aplicación,

y por el modelo de negocio, que corresponde a las entidades propias que

implementan la lógica de la aplicación, atendiendo a las reglas de negocio.

Capa de persistencia: es la encargada de acceder a la BD. En particular,

recibe las solicitudes de almacenamiento o recuperación de información

desde la capa de negocio.

Page 41: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 3 - DISEÑO

35 de 61

3.3. DISEÑO DE LA BASE DE DATOS

La aplicación necesitará conectarse a una BD que almacenará la información

referente a los datos de las reuniones, tareas y los procesos. A continuación, se

muestra el diseño de dicha BD, en particular, su diagrama Entidad/Relación

(E/R).

3.3.1. Diagrama Entidad-Relación

En primer lugar, se mostrará el diagrama:

Page 42: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 3 - DISEÑO

36 de 61

A continuación, se describen las entidades del sistema:

Reunion: Almacenará datos relacionados con las reuniones de los

empleados de Garnica. Estos datos serán utilizados para obtener

indicadores de cada reunión, con el objetivo de comprobar si han sido

productivas.

Agenda: esta entidad es la encargada de almacenar la Agenda de cada

Reunion. Se decidió no ponerla como un atributo de la entidad Reunion

porque no toda Reunion tiene que tener una Agenda y al ser un campo de

gran tamaño nos haría tener un gran desperdicio de espacio en la BD.

Acta: esta entidad es la encargada de almacenar el Acta de cada Reunion.

Se decidió no ponerla como un atributo de la entidad Reunion porque no

toda Reunion tiene que tener un Acta y al ser un campo de gran tamaño

nos haría tener un gran desperdicio de espacio en la BD.

Indicadores: Esta entidad almacenará los indicadores de cada reunión.

Los cuales se utilizarán para evaluar la productividad de cada reunión.

Tarea: es la entidad encargada de almacenar todas las tareas de los

empleados. Cada Tarea puede ser de un tipo distinto y dentro de una

tarea podremos tener otras subtareas.

Empleado: es la entidad encargada de almacenar distintos datos de los

empleados de Garnica.

Proceso: es la entidad encargada de almacenar la información de los

Procesos Principales de Garnica.

Diagrama: es la entidad que se encargara de almacenar el mapa de los

Procesos Principales. Al ser un campo enorme se decidió separar de la

entidad Proceso para hacerlo más eficiente.

Por otro lado, podemos identificar las siguientes relaciones entre las

entidades:

Las relaciones de Reunion con Agenda y Reunion con Acta es la

misma, ya que una Reunion puede tener cero o una Agenda/Acta y

una Agenda/Acta solo pertenece a una Reunion.

Toda Reunion tendrá unos indicadores y los Indicadores solo pueden

pertenecer a una Reunion.

Page 43: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 3 - DISEÑO

37 de 61

Una Reunion puede crear Tareas y una Tarea puede pertenecer a una

Reunion.

Toda Reunion tendrá algún invitado y algún asistente, y los empleados

podrán ser invitados y asistentes de distintas reuniones.

Los Indicadores podrán ser vistos por ciertos Empleados y los

Empleados podrán ver Indicadores de ninguna o de muchas

Reuniones.

Cada Tarea deberá tener un responsable y un Empleado podrá ser

responsable de ninguna o de muchas Tareas.

Destacar que una Tarea podrá ser hija de una Tarea padre (esto

producirá una estructura de tipo árbol).

Cada Proceso deberá tener un responsable y un Empleado podrá ser

responsable de ninguno o de muchos Procesos.

Todo Diagrama pertenecerá a un Proceso y todo Proceso tendrá un

Diagrama.

3.3.2. Diseño lógico

A continuación, se muestra el diseño lógico normalizado para el diagrama E/R

definido anteriormente.

Reunion

Id Titulo Ubicación DuracionEstimada DuracionReal Fecha

Indicadores

Id NumTareas Asistencia Abandonadas Terminadas EnProceso IdReunion

CE:Reunion

Agenda

IdReunion Contenido

CE:Reunion

Acta

IdReunion Contenido

CE:Reunion

Invitado

IdReunion IdEmpleado

CE:Reunion CE: Empleado

Page 44: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 3 - DISEÑO

38 de 61

Asistente

IdReunion IdEmpleado

CE:Reunion CE: Empleado

IndicadoresEmpleado

IdIndicadores IdEmpleado

CE:Indicadores CE: Empleado

Empleado

Usuario NombreCompleto Departamento Foto Telefono

Tarea

Id Estado Tipo TiempoDedicado FechaInicio FechaFin FechaEjecutado

Descripcion IdReponsable IdTareaPadre IdReunion IdProceso

CE:Empleado CE:Tarea CE:Reunion CE:Proceso

Proceso

Id Nombre Tipo IDResponsable

CE:Empleado

Diagrama

IdProceso Diagrama

CE:Proceso

3.4. MODELO DE DOMINIO

Como ya se ha comentado anteriormente, el proyecto contará con tres capas.

Cada capa solo podrá conectarse con la que tiene contigua. Además, la capa de

lógica de negocio estará formada por el modelo de negocio y por el modelo de

dominio. A continuación, se presenta el diagrama de paquetes.

En particular en la siguiente figura se muestra el diagrama de clases asociado

al modelo de dominio.

Page 45: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 3 - DISEÑO

39 de 61

Page 46: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 3 - DISEÑO

40 de 61

Page 47: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 4 - IMPLEMENTACIÓN

41 de 61

4. IMPLEMENTACIÓN

En este apartado se tratarán los aspectos más relevantes de la fase de

implementación.

4.1. ESTRUCTURA DE LA APLICACIÓN

El lenguaje utilizado para la implementación de las capas de presentación,

lógica de negocio y persistencia es C#. Para ello hemos dividido la solución en

tres paquetes, los cuales corresponden a cada una de las capas.

En el paquete de Persistencia se encuentra solo una clase, en la cual se

han implementado los procesos que nos permitirán interactuar con la BD. En el

paquete de LogicaNegocio tenemos dos proyectos (Modelo y Negocio). En el

Modelo tenemos definidas todas las clases de la aplicación y en el Negocio

tenemos toda la Logica de la aplicación. Y por último, la Presentacion en la

cual solo tenemos un proyecto el cual posee todos las interfaces de la aplicación.

La comunicación entre las capas también cambia un poco respecto a la

explicada en la estructura en tres capas presentada anteriormente. A

continuación, se muestra las relaciones entre los diferentes proyectos que

forman la aplicación.

Page 48: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 4 - IMPLEMENTACIÓN

42 de 61

El motivo por el que se han realizado dichas separaciones y relaciones de

paquetes es por restricciones del lenguaje c#. Este lenguaje no trabaja bien

con referencias circulares y por tanto se decidió separar lógica de negocio en

dos paquetes distintos y solventar dicho problema.

4.2. COMPONENTES Y TÉCNICAS UTILIZADOS

Antes de empezar a realizar el desarrollo de la aplicación, se investigó la

existencia de librerías que podrían facilitar el desarrollo de la misma. A

continuación, se destacan las librerías y funcionalidades que se han utilizado

junto con su descripción.

4.2.1. Syncfusion

Syncfusion es una colección de componente software que son utilizados por

los desarrolladores de software para agregar capacidades a sus aplicaciones,

que pueden o no estar expuestas a los usuarios finales.

Destacan las siguientes características:

Posee una licencia de comunidad libre

Cuenta con más de 110 componentes.

Está disponible para Windows Forms, WPF, ASP.NET, Javascript,

Xamarin…

Está en continuo desarrollo.

Está construido para obtener el mejor rendimiento.

Todos los componentes son personalizables por el usuario.

Page 49: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 4 - IMPLEMENTACIÓN

43 de 61

Te permite trabajar con archivos comunes (Excel, Word, PDF,

PowerPoint…)

Cumple con los estándares de accesibilidad populares como la Sección

508 y VPAT.

Posea una integración completa con Visual Studio, lo que facilita su uso.

Incluye una ayuda para ver cómo se utilizan los componentes en

proyectos de prueba creados por ellos y así facilitarnos el trabajo haciendo

uso de esa ayuda.

En nuestro caso, se ha utilizado en la capa de Presentación, en casi todas las

interfaces. Ahora vamos a presentar algunos de sus usos aplicados a nuestro

proyecto:

Para la interfaz básica de la aplicación. Se ha utilizado el componente

MetroForm. El cual incorpora todas las características de un Form y

alguna más.

Para mostrar estadísticas. Para ello se utilizó el componente

ChartControl. Este componente tiene 35 tipos de gráficos (un ejemplo es

el gráfico de columnas que puede observarse en la imagen de abajo). Los

gráficos también son altamente adaptables y piden enlazarse con un gran

número de estructuras de datos (List, DataSet…).

Page 50: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 4 - IMPLEMENTACIÓN

44 de 61

Para mostrar las tablas de datos. Para ello se utilizó el componente

GridGroupingControl. Este control nos permite crear una agrupación

jerárquica, filtrar, ordenar varias columnas y la unión de diversos tipos de

fuentes de datos. También nos da la posibilidad de mostrar millones de

datos y manejar las actualizaciones de datos en tiempo real con menos

uso de la CPU.

Para crear mapas de procesos. Para ello se ha utilizado el componente

Diagram. Este componente tiene la capacidad de presentar diagramas

parecidos a los de Microsoft Visio. Permite crear y editar diagramas. Su

interfaz de programación pone a su disposición muchos comandos útiles

y métodos que permiten funcionalidades tales como la impresión y

exportaciones de los diagramas.

Page 51: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 4 - IMPLEMENTACIÓN

45 de 61

Para exportar datos a Excel. Para implementar esta funcionalidad se ha

utilizado el componente GridGroupingExcelConverterControl. Esta clase

nos permite exportar los datos del GidGroupingControl a un Excel

conservando la jerarquía y de forma optimizada.

Para seleccionar fechas. Para ello se ha utilizado el componente

DateTimePikerAdv. Dicho control nos proporciona una manera fácil de

implementar un selector de fecha-hora. En particular nos permite

configurarlo para que muestra la fecha y la hora siguiendo los estándares

de las diferentes culturas. También es posible modificar diferentes

aspectos de su apariencia, como puede ser el color y su tamaño.

Para almacenar una lista de seleccionables en un componente. Para ello

se ha utilizado el componente MultiColumnComboBox. Este control nos

permite crear una lista desplegable de opciones, en la cual se muestran

distintas columnas. Cuando el usuario seleccione una fila solamente se

mostrará el dato de la columna que le hallamos indicado.

Page 52: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 4 - IMPLEMENTACIÓN

46 de 61

Para mostrar las tareas en un calendario según la fecha de finalización.

Para ello se ha utilizado el componente SchudeleControl. Este control nos

permitirá crear un calendario al cual le podemos indicar que nos añada

distintas tareas en las fechas que queramos para que nos las muestre en

el calendario.

4.2.2. ADO.NET

ADO.NET es un conjunto de componentes del software que pueden ser

usados para acceder a datos y a servicios de datos. Es una parte de la biblioteca

de clases base que están incluidas en el Microsoft .NET Framework. También

puede ser usado para acceder a datos en fuentes no relacionales.

A modo de ejemplo, en la siguiente imagen se muestra un método que accede

a la BD para recuperar todas la reuniones a las que ha sido invitado un usuario

desde la fecha actual en adelante.

Page 53: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 4 - IMPLEMENTACIÓN

47 de 61

También se ha utilizado para invocar a los procedimientos almacenados que

se han creado en la BD (posteriormente hablaremos de ellos). Ejemplo de una

llamada al procedimiento GP_TareaRama, el cual recupera todas las tareas hijas

de una tarea dada:

4.2.3. Consultas recursivas

Las estructuras de tipo árbol nos dan una gran flexibilidad, puesto que no

tienen limitaciones en cuanto a la profundidad del árbol, ni tampoco en la

cantidad de hijos que puede tener cada nodo. Entro los nodos padre-hijo no se

repite información lo que permite realizar modificaciones entre ellos sin afectar

al resto de los nodos.

Page 54: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 4 - IMPLEMENTACIÓN

48 de 61

No obstante, las desventajas de las estructuras tipo árbol aparecen cuando

se trata de recuperar la información de la jerarquía, puesto que no es posible

realizar una sola consulta a la base de datos que devuelva toda o parte de la

jerarquía.

Una de las ayudas que permitían resolver este tipo de consultas vino de la

mano de SQL Server 2000 con la introducción de las Inline Table-Value User-

Defined Function. Estas funciones permiten que una función retorne datos en

forma de tabla y tome el resultado de dicha función como cualquier otra tabla de

la base de datos.

Estas funciones son capaces de devolver todos los identificadores de los hijos

que reportan directa o indirectamente a un padre. El problema era que siempre

nos devolvía la estructura padre hijo completa.

Por ello, en SQL Server 2005 se introdujo una nueva funcionalidad al motor

que facilitará más el trabajo con jerarquías. Esta nueva funcionalidad se llama

Recursive Common Table Expressions (Recursive CTE) y permite realizar una

consulta recursiva sin tener que definir una función para realizar dicha operación.

A continuación, vamos a mostrar una consulta recursiva utilizada en la

aplicación:

Page 55: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 4 - IMPLEMENTACIÓN

49 de 61

Para escribir una consulta CTE se definen dos partes, que deberán ser unidas

por un UNION ALL. La primera parte será el caso base (en el WHERE se debe

filtrar para elegir el nodo base) y la segunda, el caso recursivo la cual hace un

JOIN con la CTE. Este JOIN es lo que indica que es un caso recursivo.

Con esto se obtiene la tarea padre, todos sus hijos y el nivel de cada hijo. Si

por el contrario quisiéramos obtener todos los padres de una tarea base,

simplemente deberemos cambiar la relación del JOIN en el caso recursivo

(recuadro azul de la imagen), haciendo que coincidan el IdTareaPadre de la CTE

y el Id del caso Recursivo.

4.3. IMPLEMENTACIÓN DE LA APLICACIÓN

En este apartado vamos a tratar todo lo referido con la implementación de la

aplicación en sí.

4.3.1. Implementación de la BD

Como se ha comentado anteriormente, para la implementación de la BD se

ha utilizado SQL Server, ya que es el sistema Gestor de BD que se utiliza en

Garnica para almacenar todos los datos. Para ello se creó una nueva BD en la

que almacenar todos los datos, los trigger y procedimientos almacenados

necesarios para la aplicación. A continuación, hablaremos de los trigger y los

procedimientos almacenados.

Una vez creadas las tablas, se decidió implementar algunos procedimientos

almacenados para aquellas consultas que requieran de una consulta recursiva.

Las demás consultas se ejecutarán directamente desde la aplicación a través del

SQL correspondiente.

Page 56: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 4 - IMPLEMENTACIÓN

50 de 61

En particular, se han definido un total de 7 procedimientos almacenados. A

modo de ejemplo, el procedimiento almacenado TareasTipo se encargará de

obtener todas las tareas de un empleado y de un determinado tipo. Estas tareas

serán devueltas por niveles para poder crear una estructura tipo árbol.

Como caso base se eligen las tareas que sean del tipo y del usuario o

departamento indicado, y a partir de esas se obtienen todas sus tareas hijas.

Para mejorar el funcionamiento de las tareas se ha creado un trigger para la

tabla Tarea. Este trigger obtiene la tarea que ha sido añadida o modificada y

comprueba en la tarea padre si todos los hijos han acabado, en caso correcto la

marca como tarea finaliza y vuelve a comprobar a su padre, hasta llegar a la

tarea padre.

Page 57: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 4 - IMPLEMENTACIÓN

51 de 61

A continuación, se presenta el siguiente trigger:

4.3.2. Implementación de la capa de persistencia

Como se ha comentado anteriormente, dentro de la capa de persistencia solo

tendremos una clase llamada GestorBD la cual contendrá todos los métodos

encargados de comunicarse con la BD.

Page 58: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 4 - IMPLEMENTACIÓN

52 de 61

En particular, para acceder a la BD necesitaremos establecer una conexión

con la BD. Para ello se ha creado un archivo de configuración que contiene la

cadena de conexión a la BD. Para facilitar ese trabajo, Visual Studio nos ofrece

una vista gráfica para trabajar con el archivo de configuración.

Realizando esta cadena de conexión (CadenaConexion) nos ahorramos el

tener que escribir todos los aspectos de conexión a la BD cada vez que

queramos realizar una nueva conexión con la BD. En caso de que haría falta

poner el usuario y contraseña de la BD, nos evita que puedan ser visto por

cualquier persona que tenga acceso a la capa de persistencia.

La utilización de la cadena de conexión creada anteriormente es muy sencilla.

Cuando queramos conectarnos a la BD, deberemos indicarle que el

ConnectionString es la cadena de conexión creada anteriormente. Para poder

obtener esa cadena, deberemos apuntar a Settings, Default y el nombre con el

que la hayamos identificado (en nuestro caso CadenaConexion).

Page 59: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 4 - IMPLEMENTACIÓN

53 de 61

A modo de ejemplo se muestra el método getTareasTipo(), el cual se

conecta a la BD e invoca al procedimiento almacenado presentado

anteriormente.

En particular en el código anterior se crea un objeto SqlCommand, al que

deberemos pasarle el nombre del procedimiento almacenado que se quiere

ejecutar y la conexión. También habrá que añadirles las variables de entrada (en

este caso @id).

Page 60: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 4 - IMPLEMENTACIÓN

54 de 61

El siguiente paso consiste en crear un objeto SqlDataReader, el cual nos va a

permitir recorrer los valores devueltos.

4.3.3. Implementación del modelo de dominio

Dentro del paquete Modelo podremos encontrar todas clases que han sido

especificadas en el diseño. Cada clase estará compuesta por sus

correspondientes métodos y atributos. Estas clases serán utilizadas desde

cualquier parte del proyecto.

A continuación, se presenta la distribución del modelo de dominio:

4.3.4. Implementación del modelo de negocio

Dentro del modelo de negocio solo encontraremos una clase llamada

NegocioDatos, la cual contiene todos los métodos que se encargarán de

invocar a los métodos de la persistencia.

A continuación, se presenta el método getEmpleadoAportaciones del

paquete Negocio, que invoca al método de la capa de persistencia

getEmpleadoAportaciones:

Page 61: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 4 - IMPLEMENTACIÓN

55 de 61

4.3.5. Implementación de la capa de presentación

Cada interfaz de la aplicación está compuesta por tres tipos de ficheros:

Fichero con extensión cs. Tiene dos vistas. Una vista diseño, la cual nos

permite ver la vista preliminar de nuestra interfaz. Y vista código, la cual

contiene el código de los eventos que se ejecuten desde el formulario.

Fichero con extensión designer.cs. Es donde encontraremos el código

que se genera automáticamente. No se debe modificar este fichero.

Fichero con extensión resx. Almacena objetos para un programa en un

formato XML, que puede contener tanto información de texto sin formato,

así como datos binarios codificados como texto dentro de las etiquetas

XML

A modo de ejemplo, mostramos los ficheros creados para la interfaz

AbrirDiagrama:

A continuación, se remarcarán algunos aspectos a resaltar de la interfaz de

usuario:

Clase MetroForm

Todas las interfaces de Windows Form deben heredar de la clase Form o

alguna que descienda de ella. Para esta aplicación se decidió utilizar la clase

MetroForm, porque incorpora todas las características de la clase Form y

además añade nuevas funcionalidades. Además permite añadir un listado

imágenes para posicionarlas en la barra del título, cambiar la alineación del título

del formulario, el color de la barra de título y el ancho.

Page 62: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 4 - IMPLEMENTACIÓN

56 de 61

En la imagen anterior se puede ver como se han añadido cinco imágenes en

el encabezado del formulario (La primera imagen simplemente es el logo de la

aplicación). Pinchando en estas imágenes iríamos navegando por las distintos

interfaces de la aplicación. En la parte derecha irá el usuario que se ha

autentificado en la aplicación.

GridGrupingControl

Uno de los problemas que hemos tenido en el desarrollo del proyecto, ha sido

la forma de representar las Tareas. Como se ha explicado anteriormente, una

tarea podrá tener otras tareas hijas y así sucesivamente. Por lo tanto, se buscó

un control que permitiera representar una estructura de tipo árbol. Haciendo las

Tareas de nodos en dicha estructura.

El control GridGroupingControl da soporte a muchas fuentes de datos.

Algunas de ellas son: Entidades de ADO.NET, LINQ a SQL, tablas de datos de

ADO.NET y DataView y todos los DataCollections (IEnumerable,

IList, IBindingList, IQueryable, ITypedList y

ICustomTypeDescriptor).

El control GridGroupingControl soporta tanto las relacionas (1:n), como las

(n:1) en todas las fuentes de datos. Además, también nos permite poder exportar

nuestra estructura en una hoja Excel.

En la imagen anterior se puede ver como tenemos dos niveles de tareas. En

el primer nivel tenemos una tarea con ID 19 y dentro tenemos otras ocho tareas

hijas.

Page 63: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 4 - IMPLEMENTACIÓN

57 de 61

Diagramming

El siguiente problema con el que nos topamos fue el representar gráficamente

el mapa de procesos. Dicho diagrama tenía que ser interactivo y poder

actualizarlo desde la aplicación.

Para ello se decidió utilizar el control Diagram como se ha comentado antes.

Dicho control permite crear diagramas similares a los que podemos hacer con

Visio.

En la imagen se puede observar como los primeros elementos de la parte de

arriba son las distintas formas que podemos añadir a nuestro diagrama. Después

tenemos las siguientes opciones: nuevo, abrir, guardar, imprimir, exportar, cortar,

copiar, pegar, deshacer y rehacer.

Page 64: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 5 - PRUEBAS

58 de 61

5. PRUEBAS

A continuación, se presenta el resultado de la ejecución del plan de pruebas.

ID Descripción Estado

1 Comprobar que solo pueden entrar los usuarios que se

encuentran en el directorio activo de Garnica.

2 Comprobar que la lista de tareas es correcta para todos los

usuarios.

3 Comprobar que los usuarios no puedan ver las tareas de otros

usuarios.

4 Asegurar que todos los filtros de las tareas funcionan

correctamente.

5 Comprobar que no permita crear tareas con datos

incoherentes.

6 Comprobar que la lista de reuniones es correcta para todos

los usuarios.

7 Comprobar que los usuarios no puedan ver las reuniones de

otros usuarios.

8 Asegurar que todos los filtros de las reuniones funcionan

correctamente.

9 Comprobar que no permita crear reuniones con datos

incoherentes.

10 Comprobar que todos los usuarios básicos puedan ver el

mapa de proceso.

11 Comprobar que solo los usuarios avanzados puedan editar el

mapa de procesos.

12 Comprobar que todos los usuarios básicos puedan ver los

detalles de los procesos.

13 Comprobar que solo los usuarios avanzados puedan crear

procesos.

14 Comprobar que no permita crear procesos con datos

incoherentes.

Aunque se muestren que finalmente la comprobación es correcta para todos

los apartados, decir que para ello ha sido necesario corregir varios errores de

código y de mal funcionamiento.

Page 65: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 6 – CONCLUSIONES Y GESTIÓN

59 de 61

6. CONCLUSIONES Y GESTIÓN DEL PROYECTO

6.1. GESTIÓN DEL PROYECTO

En este apartado se muestra para cada tarea las horas estimadas para su

desarrollo y las horas reales que han sido dedicadas para su realización. Las

tareas se han organizado de acuerdo a la EDP creada anteriormente.

Tarea Horas por tarea Horas reales Desfase

Gestión del TFM 60 60 0

Análisis 40 50 +10

Diseño 30 25 -5

Implementación 155 160 +5

Pruebas 15 10 -5

Proyecto completo 300 305 15

A continuación, se presenta un gráfico de barras en el cual se muestra la

comparación entre ambos tiempos.

0

50

100

150

200

250

300

350

Horas portarea

Horas reales

Page 66: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 6 – CONCLUSIONES Y GESTIÓN

60 de 61

6.2. CONCLUSIONES

Esta es la segunda vez que me enfrento a un proyecto de estas dimensiones,

la primera vez fue el TFG del grado en Ingeniería Informática. La experiencia

obtenida en la realización de dicho trabajo ha sido de gran ayuda para confección

del TFM.

Otra ventaja ha sido que las tecnologías con la que debía realizar la aplicación

eran .NET y SQL Server. Ambas fueran usadas para crear la aplicación de mi

TFG y por tanto tenía bastantes conocimientos sobre ellas.

El mayor problema con el que me he encontrado en este trabajo ha sido el

tener que compaginar el trabajo laboral con la realización del TFM. Es muy difícil

tener que trabajar ocho horas y luego sacar tiempo para realizar los trabajos de

la universidad. Pero para intentar minimizar este problema intenté realizar una

buena planificación, la cual me ayudó a repartir la carga de trabajo.

En referencia a la aplicación, destacar que a esta siendo utilizada por los

usuarios de Garnica. Dicha aplicación está incluida en el repositorio de aplicación

básicas de Garnica.

También ha sido necesario aplicar ciertas mejoras que no han sido recogidas

en esta memoria porque se han realizado posteriormente al TFM. Dichas

mejoras se refieren básicamente a nuevos filtros en las pantallas de “Mostrar

tareas” y de “Mostrar tareas del proceso”.

Page 67: Herramienta para la gestión de las tareas, reuniones y ... · P.1.2. Creación de la memoria 20 P.1.3. Planificación 13 P.1.4. Reuniones 7 P.1.5. Defensa 15 . P.2. Análisis de

Capítulo 7 - BIBLIOGRAFÍA

61 de 61

7. BIBLIOGRAFÍA

En este apartado se presentan las páginas web y documentos utilizados para

la realización de proyecto.

1. Apuntes y trabajos obtenidos durante el grado. Accedido entre marzo y

junio de 2016.

2. Stackoverflow. Disponible en: http://stackoverflow.com. Accedido entre

marzo y mayo de 2016.

3. MSDN. Microsoft Developer Network. Disponible en:

http://msdn.microsoft.com. Accedido entre marzo y mayo de 2016.

4. W3Schools.com. The world´s Largest web developer site. Disponible en

http://w3schools.com. Accedido entre marzo y mayo de 2016.

5. Repositorio de trabajos de fin de grado de la biblioteca de la universidad

de la rioja. Disponible en: http://investigadoresur.unirioja.es. Accedido entre

febrero y junio de 2016.