documento tesis

57
Universidad de Matanzas “Camilo Cienfuegos” Facultad de Ciencias Económicas e Informática Departamento de Informática Aplicación Web para la Gestión del Tiempo de Máquina en los laboratorios de la UMCC. (GTM-UMCC) Trabajo de Diploma para optar por el título de Ingeniero en Informática Autor: Jenny Long González. Tutor: Ing. Rolando Rodríguez Ortega. Matanzas, Junio 2011.

Upload: jenny-long-gonz

Post on 11-Apr-2017

222 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Documento Tesis

Universidad de Matanzas “Camilo Cienfuegos”

Facultad de Ciencias Económicas e Informática

Departamento de Informática

Aplicación Web para la Gestión del Tiempo de Máquina en los laboratorios de la UMCC. (GTM-UMCC)

Trabajo de Diploma para optar por el título de Ingeniero en Informática

Autor: Jenny Long González.

Tutor: Ing. Rolando Rodríguez Ortega.

Matanzas, Junio 2011.

Page 2: Documento Tesis

Agradecimientos

A todos los que me apoyaron, especialmente:

Mis padres y familiares por su paciencia y comprensión.

A mi novio David Torres por guiarme siempre.

A mis suegros Gely y Daniel por estar siempre al tanto.

A David Conde Marín, por brindarme sus conocimientos a cualquier hora.

A Adnia de la Vega, Abel Pérez y mi tutor Roly por su gran apoyo

A todos mis compañeros de aula

Page 3: Documento Tesis

Resumen

El presente trabajo trae a consideración del lector una propuesta de sistema para

automatizar la gestión de tiempos de máquinas en los laboratorios de la Universidad de

Matanzas ”Camilo Cienfuegos”. Esta herramienta ha sido bautizada por el autor como:

Aplicación Web para la Gestión del Tiempo de Máquina en los laboratorios de la UMCC

(en lo adelante GTM-UMCC), la cual tiene como objetivo mejorar y ordenar el trabajo del

laboratorio asegurando que a las máquinas se les de el uso adecuado, además de tener

una herramienta para analizar en caso de rotura o pérdida de algún periférico, quiénes

son los implicados directos en el acto. Es decir, además de ser un sistema que provee los

mecanismos para la gestión de reservas de tiempos de máquina es una herramienta muy

útil y práctica para que el encargado del laboratorio pueda monitorear y auditar el estado

de los cómputos en todo momento. La propuesta ha sido desarrollada en el ambiente de

programación ASP.NET con el lenguaje C# y gestor de base de datos SQL Server 2008

Express, para su descripción y construcción se utiliza la metodología ágil de desarrollo de

software Programación Extrema (XP).

Page 4: Documento Tesis

Tabla de Contenido

Agradecimientos ................................................................................................................................ 2

Resumen ............................................................................................................................................ 3

Introducción ........................................................................................................................................ 1

1 Capítulo 1. Marco Teórico y Referencial ................................................................................ 3

1.1 Introducción ......................................................................................................................... 3

1.2 Justificación del trabajo ..................................................................................................... 3

1.3 Objeto de estudio................................................................................................................ 4

1.3.1 Comparación de propuestas existentes con la propuesta del trabajo ................ 5

1.4 Fundamento científico o marco teórico ........................................................................... 6

1.5 Métodos de investigación empleados ........................ ¡Error! Marcador no definido.

1.6 Tendencias tecnológicas ................................................................................................... 8

2 Capítulo 2. Solución Teórica del Problema Científico........................................................17

2.1 Introducción .......................................................................................................................17

2.2 Análisis de la bibliografía y otras fuentes de información ..........................................17

2.3 Equipo de trabajo y roles.................................................................................................17

2.4 Planificación inicial ...........................................................................................................18

2.5 Historias de Usuario iniciales .........................................................................................18

2.6 Planificación de iteraciones ............................................................................................22

2.7 Plan de entregas...............................................................................................................23

2.8 Incidencias .........................................................................................................................24

2.9 Metáfora .............................................................................................................................24

2.10 Estudio de Factibilidad .................................................................................................24

2.10.1 Planificación ...........................................................................................................24

2.10.2 Beneficios tangibles e intangibles.......................................................................26

2.10.3 Análisis de costos y beneficios............................................................................26

2.11 Conclusiones .................................................................................................................26

3 Capítulo 3. Construcción de la propuesta de solución y resultados obtenidos. ............27

3.1 Introducción .......................................................................................................................27

3.2 Iteraciones .........................................................................................................................27

3.2.1 Iteración 1 ...................................................................................................................27

Page 5: Documento Tesis

3.2.2 Iteración 2 ...................................................................................................................32

3.2.3 Iteración 3. ..................................................................................................................34

3.2.4 Iteración 4 ...................................................................................................................36

3.2.5 Iteración 6 ...................................................................................................................38

3.2.6 Iteración 7 ...................................................................................................................40

3.3 Análisis de los resultados obtenidos .............................................................................43

3.4 Documentación del sistema............................................................................................43

3.5 Conclusiones Parciales ...................................................................................................44

4 Conclusiones ............................................................................................................................45

5 Recomendaciones ...................................................................................................................46

Referencias Bibliográficas .............................................................................................................47

Anexos ..............................................................................................................................................47

Page 6: Documento Tesis

Índice de figuras

Figura No.1 Plan inicial de iteraciones ........................................................................................22

Figura No. 2 Plan inicial de entregas ...........................................................................................23

Figura No.3: Plan de entrega. Iteración 1 ...................................................................................32

Figura No.4: Plan de entrega. Iteración 2 ...................................................................................34

Figura No. 5: Plan de entrega. Iteración 3 ..................................................................................36

Figura No.6: Plan de entrega. Iteración 4 ...................................................................................38

Figura No.7 Plan de entrega. Iteración 6 ................................. ¡Error! Marcador no definido.

Figura No. 8 Plan de entregas. Iteración 7 .................................................................................43

Page 7: Documento Tesis

Índice de tablas

Tabla No.1 Equipo de trabajo y roles...........................................................................................18

Tabla No.2 Resumen de historias de usuarios ..........................................................................19

Tabla No.3 historia de usuario 1 ...................................................................................................19

Tabla No.4 Historia de usuario 2 ..................................................................................................20

Tabla No.5 Historia de usuario 3 ..................................................................................................21

Tabla No.6 Historia de usuario 4 ..................................................................................................21

Tabla No.7 Historia de usuario 8 ..................................................................................................21

Tabla No.8 Historia de usuario 11 ...............................................................................................22

Tabla No. 10 Valores de la Fórmula de Estimación de Costos ...............................................25

Page 8: Documento Tesis

Introducción

Los laboratorios de computación son utilizados para impartir clases o realizar tareas no

presenciales en las que se necesite que todos los estudiantes interactúen con la PC.

Cada máquina tiene instalados una serie de programas que son usados por los alumnos

según su especialidad. Las máquinas difieren también en cuanto a prestaciones y

comúnmente son agrupadas por salas según sus características y los programas

instalados. Para darle un uso adecuado y eficiente a los recursos se ha implementado un

mecanismo de reservas de tiempos de máquina que actualmente se lleva de forma

manual, y no se hace cumplir con efectividad, de modo que en ocasiones un estudiante

está haciendo uso de cómputos con las mejores prestaciones y en realidad la tarea que

está ejecutando carece de esa demanda mientras en espera están otros estudiantes que

sí las requieren. Actualmente el estudiante tiene que presentarse cada día ante la persona

encargada de anotar las reservas de la guardia de esa noche para que luego por una hoja

o libro se haga cumplir la planificación. El mecanismo actual tiene como deficiencia, en

primera instancia, que el profesor de guardia varía cada día y suele extraviarse la planilla

antes mencionada, además el estudiante tiene un único punto para hacer su reserva y no

conoce en ese momento las características de la PC. Por otro lado el encargado del

laboratorio no tiene constancia de quien realmente utiliza las computadoras para llevar un

control adecuado ya que la planificación del tiempo de guardia rara vez se cumple según

lo registrado en la planilla. En este sentido se ha detectado el siguiente problema de

investigación: La inexistencia de una solución de software orientada a la gestión de

reservas de tiempo de máquina y al monitoreo de las mismas, en los laboratorios de la

Universidad de Matanzas, imposibilita que el proceso de asignación de los cómputos se

haga de forma eficiente .

El objeto de estudio de esta investigación es: el proceso de solicitud y de acceso al

tiempo de máquina, teniendo como campo de acción el control con respecto a la relación

máquina-usuario.

Se parte de la pregunta científica siguiente: ¿Se podrá obtener un sistema que utiliza

métodos soportados sobre servicios Windows y tecnología .NET para la gestión de

reservas de máquinas, que satisfaga la necesidades de un laboratorio de computación?

El objetivo general de la presente investigación es diseñar e implementar una aplicación

Web donde se puedan monitorear computadoras y reservar el tiempo de máquina

seleccionando los programas instalados y las capacidades de hardware disponibles.

Page 9: Documento Tesis

Para lo cual esta investigación sigue los objetivos específicos siguientes:

Investigar sobre las necesidades prácticas que el sistema debe satisfacer.

Buscar bibliografía sobre el tema de investigación.

Aplicar las etapas de la metodología de desarrollo de software para la elaboración

de la aplicación.

Realizar el análisis, diseño e implementación de la aplicación.

Realizar pruebas funcionales a la aplicación.

El presente documento se estructura como sigue:

Capítulo 1: En este capítulo se recogen los conceptos fundamentales asociados al

dominio del problema y algunos aspectos que servirán de base para la solución

propuesta, una breve descripción de los métodos de investigación empleados, así como

un acercamiento al objeto de estudio. Además se expone una comparación de propuestas

existentes vinculadas al campo de acción y se abordan las tendencias y tecnologías

actuales que fueron utilizadas.

Capítulo 2: Solución teórica del problema científico. Primeramente se realiza un análisis

de las fuentes bibliográficas utilizadas. Se presenta la planificación inicial de las

iteraciones y las entregas, con el empleo de la metodología de desarrollo de software

Extreme Programming (XP).

Capítulo 3: Construcción de la propuesta de solución del problema de investigación.

Aproximación a la validación práctica. Aborda fundamentalmente el análisis de los

resultados basado en la aplicación de pruebas funcionales, teniendo en cuenta los

criterios del cliente.

Page 10: Documento Tesis

1. Capítulo 1. Marco Teórico y Referencial

1.1. Introducción

En este capítulo se exponen los fundamentos teóricos asociados a la solución del

problema descrito en la Introducción, una breve justificación de por qué se realizó el

trabajo y una descripción del flujo actual de los procesos que están involucrados en el

campo de acción.

1.2. Justificación del trabajo

A pesar de la existencia de sistemas relacionados con el tema el proceso de reservación

de tiempo de máquina en la universidad de Matanzas no está apoyado por un sistema

informático. El modus operandi difiere en cada facultad o carrera. En el caso de los

laboratorios de la carrera Informática en los que la cantidad de PCs es mayor a la de otras

carreras, el usuario diariamente registra su nombre, hora e identificación de la máquina a

ocupar en una hoja de papel. A la hora establecida el profesor a cargo permite la entrada

a los estudiantes verificando que sus datos estén previamente registrados en la hoja

mencionada. En los laboratorios centrales pertenecientes a la actual Facultad de Ciencias

Económicas e Informática (CEI), la generalidad es que no hay reserva previa, el

necesitado hace una cola en espera de la apertura del laboratorio perteneciente a su

facultad y después van entrando hasta que se ocupe completamente el local.

El método que se emplea en la carrera Informática muchas veces es ineficiente puesto

que hay usuarios que necesitan una máquina específica y al sentarse a la que reservó

encuentra que no tiene las condiciones requeridas para satisfacer sus necesidades,

además de ser tedioso tener que buscar la identificación de la misma para después

verificar que no esté disponible. Por otra parte el estudiante puede reservar una PC para

un momento dado y decidir luego que no va a utilizarla, y de todas formas va a aparecer

en la planilla como reservada cohibiendo a otros usuarios. Por otro lado esta planilla

puede extraviarse resultando un problema para el encargado de guardia la asignación de

máquinas a los estudiantes y generando inconformidad en ambas partes. Al mismo

tiempo, en caso de extravíos o roturas de los accesorios no se puede controlar porque se

desconocerían los implicados.

Page 11: Documento Tesis

El procedimiento empleado en los laboratorios centrales no da facilidad alguna al usuario,

solo el hecho de esperar en cola sin saber si luego se alcanzará máquina, es una pérdida

de tiempo.

Debido a la carencia de un sistema que facilite este proceso en la universidad de

Matanzas, el autor decidió desarrollar una aplicación en la que fuera posible consultar

información relativa a las computadoras antes de ser reservada, almacenar el historial de

reservas hechas por cada usuario incluyendo si hizo presencia o no en las mismas,

contribuyendo así a la mayor complacencia de los estudiantes y al registro de sucesos

respectivos a los ordenadores de cada laboratorio. Todo esto empleando de la mejor

forma las tecnologías en función de la infraestructura de red del escenario universitario.

1.3. Objeto de estudio

Flujo actual de los procesos involucrados en el campo de acción

Conceptos asociados:

Responsable de guardia: Es la persona que tiene las llaves de los laboratorios y está

encargada de cuidar las entradas y salidas de estudiantes así como velar por el orden

durante el tiempo que está a cargo.

Usuario: Es la persona que reserva una máquina para ocuparla en el tiempo establecido.

Proceso de reservación de una máquina en los laboratorios de la carrera

Informática sin emplear la aplicación.

El usuario llega al laboratorio pide la hoja de reservación de tiempo de máquina y escribe

su nombre y número de carnet de estudiante, también debe especificar en qué máquina

de qué laboratorio se va a sentar, para lo cual debe fijarse en el nombre identificador que

tiene la PC y verificar que no haya sido reservada por alguien anteriormente. En el Anexo

No.2 se muestra un diagrama describiendo este proceso

Proceso de entrada al tiempo de máquina en los laboratorios de la carrera

Informática

El responsable de la guardia recibe el local de los laboratorios haciendo un previo

inventario. Luego deja entrar primeramente a los estudiantes que reservaron y después al

resto recogiendo sus datos en el momento.

Proceso de entrada al tiempo de máquina en los laboratorios del resto de las

carreras

El estudiante llega a la puerta de su laboratorio correspondiente, si no ha abierto aún y él

no es el primero en arribar se pone en cola en espera de la apertura del mismo, al abrir

éste, se va entrando mientras hayan máquinas. En el caso de llegar después de la

apertura si no hay máquinas disponibles el interesado se retira o espera que alguna se

Page 12: Documento Tesis

desocupe. La descripción de este proceso se muestra a través de un diagrama en el

Anexo No 3.

Proceso de reservación de una máquina en todas las carreras empleando la

aplicación

El estudiante desde una PC conectada a la red accede a la página de reservas de tiempo

de máquina, si hay máquinas disponibles hace la reserva según las opciones que se le

proponen seleccionado en todos los casos fecha hora y tiempo. En el Anexo No. 4 se

muestra un diagrama describiendo este proceso.

Proceso de entrada al laboratorio de todas las carreras empleando la aplicación

Al abrir el laboratorio cada estudiante entra y se sienta en la máquina que reservó.

Causas que originan la situación polémica y las consecuencias.

Después del análisis de los procesos que se ejecutan, se puede llegar a la conclusión de

que existen elementos que afectan el flujo de trabajo, como son la falta de

automatización, ya que para un caso es inmensamente tedioso tener que revisar que el

nombre de una máquina no está en la lista, en cuyo caso afirmativo el usuario tiene

seleccionar otro y verificar nuevamente. Además de existir la posibilidad de pérdida de la

hoja de guardia y estropear los planes del usuario al no existir constancia de su

precedente reserva.

Para el caso de las demás carreras es bastante molesto tener que estar un tiempo antes

de la apertura del laboratorio para poder asegurar una máquina o tener que esperar en

vano por que una máquina se desocupe en caso de no haber disponibles.

Comparación de propuestas existentes con la propuesta del trabajo

El Sistema de Reservación de Tiempo de Máquina, disponible en el sitio de reservas

de tiempo de máquina de la Universidad de Ciencias Informáticas (UCI), es un sistema,

que consiste en reservar las PCs por horarios de forma tal que las éstas sean utilizadas

organizadamente por todos los estudiantes haciendo posible el máximo rendimiento del

Tiempo de máquina. Para ello fueron distribuidos por horarios. Los mismos están

comprendidos de la siguiente manera:

De 8:00 am a 9:00 am solo reservan los planificadores de cada facultad

De 9:00 am a 5:00 pm es el horario previsto para la reservación de los estudiantes.

Se requieren principalmente los datos del que solicita la reserva la hora y su respectiva

facultad.

Page 13: Documento Tesis

SOOCIO, es una aplicación de origen española que ofrece a los clubes el medio

tecnológico para que sus afiliados puedan hacer reservas de espacios como: cancha de

tenis, golf y cualquier campo deportivo con el que cuente el club. [1]

Esta propuesta es gratis para los clubes y SOOCIO gana una pequeña comisión por el

valor que paga cada persona cuando realiza una reserva.

Estas propuestas difieren en muchos aspectos con respecto a este trabajo. En primer

lugar están dirigidas a resolver una problemática diferente por lo que no daría solución a

la situación polémica de la Universidad de Matanzas Camilo Cienfuegos (UMCC)

No dan la posibilidad de escoger una PC con las características de hardware que el

usuario necesite ni los programas instalados.

1.4. Fundamento científico o marco teórico

Sistemas de gestión de información: [2]

La información es un fenómeno que proporciona significado o sentido a las cosas, e indica

mediante códigos y conjuntos de datos los modelos del pensamiento humano. En sentido

general, la información es un conjunto organizado de datos procesados, que constituyen

un mensaje sobre un determinado fenómeno. De forma general se puede decir que la

información es importante dentro de un proceso de gestión para tomar las decisiones

necesarias.

Según Pérez [2] en su tesis para optar por el Título de Ingeniería Informática define los

siguientes elementos que forman parte de un sistema de información:

Base de datos: es donde se almacena toda la información que se requiere para la toma

decisiones. La información se organiza en registros específicos e identificables.

Transacciones: corresponde a todos los elementos de interfaz que permiten al usuario:

consultar, insertar, modificar o eliminar un registro específico de la información.

Informes: corresponden a todos los elementos de interfaz mediante los cuales el usuario

puede tener, registros y/o información de tipo estadístico (contar, sumar) de acuerdo a

criterios de búsqueda y de selección definidos.

Procesos: corresponde a todos aquellos elementos que, de acuerdo a una lógica

predefinida, obtiene información de la base de datos y generan nuevos registros de

información. Los procesos sólo son controlados por el usuario.

Usuarios: personas que interactúan con el sistema.

Sistemas de reservas

Page 14: Documento Tesis

Los sistemas de reservas son muy utilizados porque permiten a las personas utilizar la

Web para reservar un espacio o lugar dando la opción de hacerlo en el momento que uno

quiera y seleccionado los recursos al gusto de cada persona.

Sistema gestión de tiempo de máquina

El tiempo de máquina es el período por el cual un usuario está sentado frente a una

computadora, para reservarlo se necesita seleccionar una máquina disponible a una hora

y duración especificadas.

A través de un sistema de reservación de tiempo de máquina el proceso para reservar es

más eficiente y controlado. Para su funcionamiento es necesario gestionar los módulos a

los que se harán las transacciones, que para éste caso serían la máquinas, sus

programas instalados, características de hardware, laboratorios existentes, facultades,

carreras, horarios y usuarios entre otros. La tarea principal de este sistema de gestión

sería almacenar la relación fecha-hora-duración-máquina como resultado de la

reservación hecha por el usuario, permitiendo consultar estos datos en cualquier

momento.

Métodos empleados como parte de la solución del problema científico

Se parte de la necesidad de tener una información real y actualizada de las características

que poseen las máquinas. Para dar respuesta a esto se decidió implementar un servicio

Windows que instalado en cada una de las máquinas obtenga esta información y la envíe

mediante un servicio Web a la base de datos. De este modo se evitan inconformidades y

trabajo exhaustivo para los futuros encargados de proveer esta información.

Otro método, fue ideado para ejercer cierto control sobre el proceso de reservación. Éste

consiste en la asignación a los usuarios de un crédito para reservar, que tiene como

objetivo evitar que se hagan reservas deliberadamente perjudicando a otros necesitados.

Una explicación más detallada se muestra a continuación:

A cada máquina se le asigna un costo de reserva, que es calculado

automáticamente teniendo en cuenta la capacidad de RAM y el tamaño del disco

duro.

Cuando un usuario reserva, a su crédito se le resta el costo de la máquina que ha

solicitado.

Si por el contrario se cancela una reserva el crédito aumenta nuevamente.

Page 15: Documento Tesis

También se da la posibilidad de solicitar crédito, pero esto solo le es permitido a

aquellos usuarios que no han dejado de asistir a las reservas o se han ausentado

no más de 4 veces.

La asistencia a la reserva se comprueba a través de un servicio Windows que se ejecuta

cada vez que un usuario inicia sesión en una de las máquinas, obteniendo: nombre de

usuario, fecha, hora y dirección física de la máquina. Luego esta información se envía a la

base de datos.

1.5. Métodos de Investigación empleados

En esta investigación se utilizaron los métodos de entrevista y observación para conocer

todos los detalles sobre el proceso de reservación de tiempo de máquina de cada

laboratorio de computación de la UMCC y el control que se tiene sobre las computadoras.

Las entrevistas fueron desarrolladas principalmente a los técnicos de laboratorio y a los

estudiantes, que son el personal involucrado en este proceso. Las observaciones fueron

con el fin de analizar cómo se comportaba la problemática en su contexto natural y

detallar el flujo de trabajo. [3]

En el Anexo No.5 se muestran las preguntas y respuestas de las entrevistas, de las que

como resultado se supo que en los laboratorios centrales reservan todas las carreras

exceptuando la de Informática, y cada laboratorio está asignado a una carrera. No existe

un método oficial para reservar el tiempo de máquina cuyo responsable es un estudiante

designado por la FEU (Federación de Estudiantes Universitarios), a la hora establecida el

estudiante llega a donde le corresponde y si hay disponibilidad puede entrar. La carrera

Informática cuenta con 4 laboratorios y para reservar el estudiante escribe sus datos, la

hora y debe buscar un nombre identificador que tienen las máquinas para especificar qué

máquina va a utilizar.

Mediante la observación se obtuvo que en los laboratorios centrales en ocasiones se

hacía una reserva extraoficial y unos estudiantes entraban primero que otros que estaban

esperando en cola y que por supuesto tenían desconocimiento de la misma.

En los laboratorios de informática se observó que había confusiones en la selección de

las PC, dos estudiantes reservando la misma máquina al no verificar que ya existía una

reserva anterior. Además, de que al perderse la hoja de la guardia entraban los

estudiantes del primer horario junto a otros que no reservaron y al llegar los del siguiente

horario no había constancia de lo mismo, lo que provocaba un conflicto para los alumnos

y el encargado del tiempo de máquina.

1.6. Tendencias tecnológicas

Las aplicaciones Web tienen un camino mucho más sencillo para la compatibilidad

multiplataforma que las aplicaciones de software tradicionales. Las tecnologías ASP.NET

Page 16: Documento Tesis

y AJAX permiten un desarrollo efectivo de programas soportando todos los sistemas

operativos principales.

No se requieren complicadas combinaciones de Hardware/Software para utilizar estas

aplicaciones. Sólo una computadora con un buen navegador Web. Además son fáciles de

usar, ya que no requieren conocimientos avanzados de computación. Otro beneficio de

usar aplicaciones Web es que al residir y correr en los servidores del proveedor, usan en

muchos casos la memoria de las computadoras donde corren, dejando más espacio para

correr múltiples aplicaciones al mismo tiempo sin incurrir en frustrantes deterioros del

rendimiento. También pueden ser utilizadas por múltiples usuarios al mismo tiempo, por lo

que se facilita el trabajo a distancia. [4]

La arquitectura general de una aplicación Web es la de un sistema cliente/servidor. Una

de sus ventajas más significativas es su forma de instalación y distribución. Normalmente

instalar una aplicación Web consiste en configurar los componentes del lado del servidor

en la red y no es necesaria una instalación o configuración en el lado cliente.

Arquitectura cliente- servidor:

La arquitectura cliente/servidor es un modelo para el desarrollo de sistemas de

información, donde las transacciones se dividen en procesos independientes que

cooperan entre sí para intercambiar información, servicios o recursos. Se denomina

cliente al proceso que inicia el diálogo o solicita los recursos y servidor al proceso que

responde a las solicitudes. [5] Los clientes interactúan con el usuario, frecuentemente se

comunican con procesos que se encargan de establecer la conexión con el servidor,

enviar el pedido, recibir la respuesta, manejar las fallas y realizar actividades de

seguridad.

Los servidores deben manejar fundamentalmente los interbloqueos (varios clientes

accediendo a un mismo recurso de la aplicación) y la recuperación ante las fallas que

puedan existir. Por lo que el ordenador asociado con los servidores debe ser más

poderoso que el de los clientes. Estos servidores deben manejar entre otros servicios la

administración de la red, el control y la administración de la entrada a la aplicación.

Entre las principales características de la arquitectura cliente/servidor se pueden destacar

las siguientes: [5]

El servidor presenta a todos sus clientes una interfaz única y bien definida.

El cliente no necesita conocer la lógica del servidor, sólo su interfaz externa.

El cliente no depende de la ubicación física del servidor, ni del tipo de equipo físico

en el que se encuentra, ni de su sistema operativo.

Los cambios en el servidor implican pocos o ningún cambio en el cliente.

Page 17: Documento Tesis

Esta arquitectura cliente/servidor ofrece varias ventajas:

Aumenta la productividad ya que los usuarios pueden utilizar herramientas que le

son familiares, como hojas de cálculo y herramientas de acceso a bases de datos.

Además una interfaz gráfica de usuario consistente reduce el tiempo de

aprendizaje de las aplicaciones.[6]

Menores costos de operación permitiendo un aprovechamiento mejor de los

sistemas existentes y proporcionando un mejor acceso a los datos. El movimiento

de funciones desde un ordenador central hacia servidores o clientes locales origina

el desplazamiento de los costes de ese proceso hacia máquinas más pequeñas y

por tanto, más baratas.

Mejora en el rendimiento de la red porque parte del proceso se reparte con los

clientes y este se conecta al servidor cuando es necesario, obtiene los datos y

cierra la conexión optimizando con esto el tráfico de la red al devolver solamente

los datos que la aplicación necesita.

Entre los diferentes tipos de Plataformas de Desarrollo para la confección de aplicaciones

Web y por las ventajas que ofrece, se ha utilizado:

ASP.NET:

ASP es un entorno de secuencias de comandos en el lado del servidor que se puede

utilizar para crear y ejecutar aplicaciones de servidor Web dinámicas, interactivas y de alto

rendimiento. [7]

ASP.Net es un ambiente de programación construido sobre el entorno NGWS (New

Generation Windows Services, o sea, Servicios de la Nueva Generación de Windows),

que permite crear poderosas aplicaciones de Internet.

Debido a que permite el uso de una gran variedad de lenguajes de programación tiene

gran flexibilidad.

Con la autenticación de Windows integrada a la configuración por aplicaciones, se puede

tener la completa seguridad de que las aplicaciones están a salvo.

Permite la creación de componentes reutilizables a través de la creación de Controles de

Usuario (User Controls). Un control de usuario sigue la misma estructura que un

formulario web, excepto que los controles derivan de la clase

System.Web.UI.UserControl, y son almacenados en archivos ASCX. Como los archivos

ASPX, un ASCX contiene etiquetas HTML o XHTML, además de etiquetas para definir

controles Web y otros controles de usuario. [8]

AJAX (Asynchronous Java Script + XML):

Page 18: Documento Tesis

AJAX es una técnica de desarrollo Web que combina varias tecnologías consiguiendo una

navegación más ágil, más dinámica y rápida.

Ventajas de AJAX [9]:

Una aplicación AJAX elimina la naturaleza “arrancar-frenar- arrancar-frenar” de la

interacción en la Web introduciendo como intermediario -un motor AJAX- entre el usuario

y el servidor.

El motor AJAX permite que la interacción del usuario con la aplicación suceda

asincrónicamente (independientemente de la comunicación con el servidor). Así el usuario

nunca estará mirando una ventana en blanco del navegador y un icono de reloj de arena

esperando a que el servidor haga algo.

C#:

C# es un lenguaje con seguridad, de tipos y orientado a objetos, sencillo pero eficaz, que

permite que los programadores creen una gran variedad de aplicaciones. Junto a .NET

Framework, Visual C# 2008 permite la creación de aplicaciones para Windows, servicios

web, herramientas de bases de datos, componentes, controles, etc. [10]

Visual Studio.NET:

Visual Studio es el entorno de desarrollo integrado (IDE, Integrated Development

Environment) en el que los desarrolladores trabajan a la hora de crear programas en uno

de los muchos lenguajes posibles, incluido Visual C#, para .NET Framework.

.NET Framework es un entorno de ejecución y desarrollo que permite el trabajo conjunto

de diferentes bibliotecas y lenguajes de programación para crear aplicaciones basadas en

Windows, Web, Mobile y Office. [10]

Programación por capas: La programación por capas es un estilo de programación en el

que el objetivo primordial es la separación de la lógica de negocios de la lógica de diseño;

un ejemplo básico de esto consiste en separar la capa de datos de la capa de

presentación al usuario. [11]

La ventaja principal de este estilo es que el desarrollo se puede llevar a cabo en varios

niveles y, en caso de que sobrevenga algún cambio, sólo se ataca al nivel requerido.

Además, permite distribuir el trabajo de creación de una aplicación por niveles, de este

modo, cada grupo de trabajo está totalmente abstraído del resto de los niveles.

En el diseño de sistemas informáticos actual se suele usar las arquitecturas multinivel o

programación por capas. En dichas arquitecturas a cada nivel se le confía una misión

simple, lo que permite el diseño de arquitecturas escalables.

Gestor de Base de Datos SQL Server 2008 Express Edition:

Page 19: Documento Tesis

Los sistemas de gestión de bases de datos (SGBD) son un tipo se software muy

específico dedicado a servir de interfaz entre la base de datos, el usuario y las

aplicaciones Web que utilizan este tipo de sistema.

El propósito general de los sistemas de gestión de bases de datos es el de manejar de

manera clara, sencilla y ordenada un conjunto de datos que posteriormente se convertirán

en información relevante para una organización.

Existen distintos objetivos que deben cumplir los SGBD: [12]

Abstracción de la información. Los SGBD ahorran a los usuarios detalles acerca

del almacenamiento físico de los datos. Da lo mismo si una base de datos ocupa

uno o cientos de archivos, este hecho se hace transparente al usuario. Así, se

definen varios niveles de abstracción.

Independencia. La independencia de los datos consiste en la capacidad de

modificar el esquema (físico o lógico) de una base de datos sin tener que realizar

cambios en las aplicaciones que se sirven de ella.

Consistencia. En aquellos casos en los que no se ha logrado eliminar la

redundancia, será necesario vigilar que aquella información que aparece repetida

se actualice de forma coherente, es decir, que todos los datos repetidos se

actualicen de forma simultánea. Por otra parte, la base de datos representa una

realidad determinada que tiene determinadas condiciones, por ejemplo que los

menores de edad no pueden tener licencia de conducir. El sistema no debería

aceptar datos de un conductor menor de edad. En los SGBD existen herramientas

que facilitan la programación de este tipo de condiciones.

Seguridad. La información almacenada en una base de datos puede llegar a tener

un gran valor. Los SGBD deben garantizar que esta información se encuentra

segura de permisos a usuarios y grupos de usuarios, que permiten otorgar diversas

categorías de permisos.

Manejo de transacciones. Una transacción es un programa que se ejecuta como

una sola operación. Esto quiere decir que luego de una ejecución en la que se

produce una falla es el mismo que se obtendría si el programa no se hubiera

ejecutado. Los SGBD proveen mecanismos para programar las modificaciones de

los datos de una forma mucho más simple que si no se dispusiera de ellos.

Tiempo de respuesta. Lógicamente, es deseable minimizar el tiempo que el

SGBD demora en proporcionar la información solicitada y en almacenar los

cambios realizados.

Ventajas[12]

Proveen facilidades para la manipulación de grandes volúmenes de datos, entre éstas:

Page 20: Documento Tesis

Organizan los datos con un impacto mínimo en el código de los programas.

Disminuyen drásticamente los tiempos de desarrollo y aumentan la calidad del

sistema desarrollado si son bien explotados por los desarrolladores.

Usualmente, proveen interfaces y lenguajes de consulta que simplifican la

recuperación de los datos.

Microsoft SQL Server es un sistema para la gestión de bases de datos producido por

Microsoft basado en el modelo relacional.

Características[12]

Permite trabajar en modo Cliente-Servidor donde la información y datos se alojan

en el servidor y los clientes sólo acceden a la información.

Además permite administrar información de otros servidores de datos.

Este sistema incluye una versión reducida, llamada MSDE con el mismo motor de

base de datos pero orientado a proyectos más pequeños, que en sus versiones

2005 y 2008 pasa a ser el SQL Express Edition, que se distribuye en forma

gratuita.

Microsoft .NET Entity Framework

El ADO.NET Entity Framework es un conjunto APIs1 de acceso a datos para el Microsoft

.NET Framework

Una entidad del Entity Framework es un objeto que tiene una clave representando la clave

primaria de una entidad lógica de datastore. Un modelo conceptual Entity Data Model

(modelo Entidad-Relación) es mapeado a un modelo de esquema de datastore. Usando el

Entity Data Model, el Framework permite que los datos sean tratados como entidades

independientemente de sus representaciones del datastore subyacente.

El Entity SQL es un lenguaje similar al SQL para consultar el Entity Data Model (en vez

del datastore subyacente). Similarmente, las extensiones del Linq, Linq-to-Entities,

proporcionan consultas tipeadas en el Entity Data Model. Las consultas Entity SQL y Linq-

to-Entities son convertidas internamente en un Canonical Query Tree que entonces es

convertido en una consulta comprensible al datastore subyacente (ej. en SQL en el caso

de una base de datos relacional). Las entidades pueden utilizar sus relaciones, y sus

cambios enviados de regreso al datastore. [13]

El Entity framework usa el mapeo de objeto relacional (más conocido por su nombre en

inglés, Object-Relational mapping, o sus siglas O/RM, ORM, y O/R mapping) como patrón

1 Es el conjunto de funciones y procedimientos (o métodos en la programación orientada a objetos) que ofrece cierta

biblioteca para ser utilizado por otro software como una capa de abstracción. Son usados generalmente en las bibliotecas.

Page 21: Documento Tesis

de diseño. Esta es una técnica de programación para convertir datos entre el sistema de

tipos utilizado en un lenguaje de programación orientado a objetos y el utilizado en una

base de datos relacional, utilizando un motor de persistencia2. En la práctica esto crea

una base de datos orientada a objetos virtual, sobre la base de datos relacional. Esto

posibilita el uso de las características propias de la orientación a objetos (básicamente

herencia y polimorfismo)

Metodologías Ágiles [14]

Están especialmente preparadas para cambios durante el proyecto, son impuestas

internamente (por el equipo de desarrollo). El contrato es bastante flexible, el cliente es

parte del equipo de desarrollo, se trabaja en el mismo sitio para impulsar la comunicación

continua. Se hace menos énfasis en la arquitectura del software.

Metodologías Tradicionales [14]

Basadas en normas provenientes de estándares seguidos por el entorno de desarrollo,

poseen una cierta resistencia a los cambios. El proceso es mucho más controlado con

políticas y normas. A diferencia de las ágiles existe un contrato prefijado y lo más

importante que el cliente solo interactúa con el equipo mediante reuniones.

Extreme Programming o Programación Extrema (XP):

Nace como nueva disciplina de desarrollo de software en manos de Kent Beck. Se basa

en una retroalimentación continua entre el cliente y el equipo de desarrollo, comunicación

fluida entre todos los participantes, simplicidad en las soluciones implementadas y coraje

para enfrentar los cambios. [14]

Los objetivos de XP son muy simples: la satisfacción del cliente, ya que esta metodología

trata de dar al cliente el software que necesita y cuando lo necesita, por lo que debemos

responder muy rápido a sus necesidades, incluso cuando los cambios sean al final de

ciclo de la programación. El segundo objetivo es potenciar al máximo el trabajo en grupo,

tanto los jefes de proyecto, los clientes y desarrolladores, son parte del equipo y están

involucrados en el desarrollo del software. [15]

Una de las cosas que a los programadores les tiene que quedar muy claro es que en el

ciclo de vida del desarrollo de un proyecto de software, los cambios van a aparecer,

pueden cambiar los requisitos, las reglas de negocio, el personal, la tecnología, etc. Por

tanto el problema no es el cambio en sí, ya que este va a suceder sino la incapacidad de

enfrentarnos a estos cambios. [15]

Las cuatro actividades básicas: [16]

2 Motores de mapeo de objetos relacional (Ejemplo: Para .Net .NetTiers, DataObjects.Net entre otros.)[18]

Page 22: Documento Tesis

Codificación: La parte más importante de XP.

Pruebas: Nunca se puede estar seguro de algo hasta haberlo probado.

Escuchar: Escuchar los requisitos del cliente acerca del sistema a crear.

Diseño: Crear una estructura del diseño para evitar problemas.

Esta metodología tiene como principales características que es inmediata, concreta con

continuas vueltas atrás y revisiones en ciclos cortos, incremental, que rápidamente se

expande con un plan global y se espera que evolucione durante la vida del proyecto,

flexible a la hora de planificar la implementación de funcionalidades, de manera que se

adapta con éxito a las necesidades cambiantes. La comunicación oral, las pruebas y el

código fuente tienen un fuerte peso, para que se pueda relacionar de manera exacta el

sistema con su propósito. [16]

Las metodologías tradicionales imponen un proceso disciplinado para tratar de hacer el

trabajo predecible, eficiente y planificado. Estos métodos están orientados a documentos

y se vuelven demasiado burocráticos e ineficaces. XP es más liviana y ágil y está

orientada más a las personas que a los procesos.

En el Anexo 1 se muestra una comparación en forma de tabla donde se pueden apreciar

más claramente las diferencias existentes entre estas metodologías:

A partir del análisis de las características y ventajas de la Programación Extrema

expresadas con anterioridad se ha decidido seleccionar esta metodología para ponerla en

práctica en el desarrollo de esta aplicación Web (GTM) que es el objetivo de este trabajo.

Conclusiones

Con la elaboración de este capítulo se llega a las siguientes conclusiones:

El problema debe ser resuelto a partir de la implementación de una aplicación Web

dedicada a la gestión de Tiempo de Máquina.

El ambiente de programación ASP.NET en el entorno de desarrollo Visual Studio

.NET 2010, con el lenguaje C# y con el uso de AJAX permite el desarrollo de

aplicaciones Web, lo que se ajusta para llevar a cabo el objetivo general de esta

investigación.

El uso de del gestor de bases de datos SQL Server Express junto al Entity

Framework harán más eficiente y rápido el trabajo.

La metodología Programación Extrema es adecuada para la planificación y

construcción de esta aplicación, por poseer características de comunicación directa

y amplia con el cliente y buena respuesta ante los cambios sin importar la etapa del

ciclo de vida del proyecto donde se encuentre.

Page 23: Documento Tesis

En sentido general se ha contribuido a la mejor comprensión del objeto de estudio y

del flujo actual de los procesos involucrados en el campo de acción y se han

establecido las bases para las siguientes fases de la investigación.

Page 24: Documento Tesis

2. Capítulo 2. Solución Teórica del Problema Científico

2.1. Introducción

En este Capítulo se realiza la descripción de la solución propuesta. Se presenta el equipo

de trabajo XP y se lleva a cabo el análisis de requerimientos a través de Historias de

Usuarios (HU) que recogen la necesidad descrita por el cliente. Además se describen las

iteraciones, tareas y casos de pruebas, se aborda el seguimiento del plan de entregas,

reflejándose las incidencias ocurridas durante el desarrollo del proyecto.

Para esto se usa la Metodología de Programación Extrema (XP), teniendo en cuenta que

es una metodología de desarrollo que se basa en la simplicidad, la comunicación y la

retroalimentación o reutilización del código desarrollado y que está diseñada para

proporcionar el software que el cliente necesita, previendo una respuesta menos costosa

ante los cambios.[15]

Se realiza un estudio de factibilidad apoyado en el análisis de costo y beneficios, para

determinar si es factible el desarrollo de la aplicación. También se valoran las fuentes de

información utilizadas para desarrollar esta investigación.

2.2. Análisis de la bibliografía y otras fuentes de información

La bibliografía utilizada fue extraída mayormente del motor de búsqueda Google, de

Trabajos de Diplomas realizados por estudiantes graduados en cursos anteriores. Para el

desarrollo de la ingeniería de software no fue necesariamente muy actualizada, porque se

tuvo en cuenta la documentación disponible en la plataforma Moodle que se encuentra en

la Intraweb de la Universidad de las asignaturas de Ingeniería de Software 3 y Seminario

de Tesis. En sentido general la bibliografía cumple con las necesidades de información

que se presentaron.

Equipo de trabajo y roles

El equipo de trabajo está formado por el jefe del proyecto y cliente Ing. Rolando

Rodríguez y el programador y encargado de las pruebas, la estudiante Jenny Long

González.

Las características fundamentales del equipo de trabajo son:

El cliente forma parte del equipo, revisa lo planificado en cada encuentro y acuerda

los plazos de entrega para la solución de cada historia de usuario.

Se trabaja cuarenta horas semanales, cumpliendo el principio de que horas extras

no aumenta la productividad sino que desmotiva al equipo, ya que así se evita el

Page 25: Documento Tesis

cansancio de los programadores y con esto disminuye la probabilidad de introducir

errores.

Se adopta un diseño simple, existiendo un patrón para el estilo de programación

recordando que el diseño adecuado es aquel que: supera con éxito todas las

pruebas, refleja claramente la intención de los programadores y tiene el menor

número posible de clases y métodos. Evitando complicaciones en caso de que otra

persona desee consultar el código fuente o los mismos desarrolladores después de

algún tiempo. [16]

Se trabaja desarrollando pequeñas versiones funcionales que se incrementan poco

a poco. Ante los fallos o cambios se produce la reprogramación del código, sin

variar su funcionalidad.

El desarrollo es guiado a través de pruebas, las que definen el alcance del

proyecto, trabajando para aumentar el nivel de conformidad del cliente, lo que

contribuye a que se detecten errores que los programadores pudieran pasar por

alto.

Tabla No.1 Equipo de trabajo y roles

Miembros Roles XP

Ing. Rolando Rodríguez Jefe del Proyecto

Cliente

Jenny Long González Programador

Encargado de pruebas

2.3. Planificación inicial

Es necesaria una planificación para, desde el inicio, pensar en soluciones y organizar de

forma eficiente el modelado inicial del problema. Para conseguir este propósito se

desarrollan las HU a partir de las ideas del cliente obteniendo un punto de partida para el

resto de la planificación del proyecto. Se debe realizar un estimado del tiempo y de las

entregas del proyecto en conjunto con el cliente, consientes que estos aspectos pueden

sufrir algunos cambios durante el desarrollo.

2.4. Historias de Usuario iniciales

Las HU iniciales son la técnica utilizada en XP para especificar los requisitos del

software.[14]Éstas ayudan en la comunicación entre el cliente y el programador porque

definen qué es lo que se quiere hacer y cómo lo van a lograr y pueden ir cambiando a

medida que avanza el proyecto y que el cliente vea nuevas soluciones. En ellas se

definen las iteraciones con las que contará el proyecto, teniendo en cuenta, la prioridad en

el negocio que es establecida por el cliente, el riesgo de desarrollo asignado por el

Page 26: Documento Tesis

programador y la estimación de tiempo en desarrollo de cada una que debe ser corto, de

una a tres semanas.

Primeramente se realiza una planificación de 16 historias de usuario, en las que se

sintetiza, tanto el proceso de gestionar reservas, usuarios, hardware y software y

máquinas entre otros.

En la Tabla 2 se muestra un resumen de todas las HU planificadas inicialmente, en las

que queda definido el nivel de prioridad con el que deben darle solución a las HU (P), el

riesgo en desarrollo (R). Se define también la estimación del esfuerzo requerido (E), que

no es más que el tiempo en el que se concibió inicialmente el desarrollo de cada HU.

Tabla No.2 Resumen de historias de usuarios

No Nombre P R E Iteración Entrega

1 Gestionar Reservas. alta alto 3 1 1

2 Servicios Windows para auditoria de

software y hardware Instalados y

usuarios logueados.

alta alto 3 2 2

3 Servicio Web alta alto 3 3 3

4 Gestionar Memorias alta alto 1.5 4 4

5 Gestionar Discos Duros alta alto 1.5 4 4

6 Gestionar Puertos USB alta alto 1.5 5 5

7 Gestionar Procesadores alta alto 1.5 5 5

8 Gestionar Máquinas. media alto 1 6 6

9 Gestionar Programas Instalados. alta alto 2 6 6

10 Gestionar Facultades. baja alto 1 7 7

11 Gestionar Usuarios. media alto 2 7 7

12 Gestionar Reportes de reservas y

notificaciones.

alta alto 2 8 8

13 Gestionar Correos Baja bajo 0.5 8 8

14 Solicitud de crédito media bajo 0.5 8 8

Totales 24 8 8

Las HU que se encargan de gestionar resumen el proceso de inserción, modificación y

eliminación, además de hacer consultas en búsqueda de información almacenada en la

base de datos; en otros casos como la 1 y la 12 se refieren al proceso de gestión de datos

de las reservas y obtención de los reportes respectivamente.

A continuación en la Tabla 3, Tabla 4, Tabla 5, Tabla 6, Tabla 7 y Tabla 8 se describen 6

de las historias más importantes para que se comprenda el proceso. En las Tablas se

detalla en qué consiste la HU y en caso que existan las observaciones conocer sus

especificaciones.

Tabla No.3 historia de usuario 1

Page 27: Documento Tesis

Historia de Usuario

Número: 1 Usuario: Cliente

Nombre historia: Gestionar Reservas

Prioridad en negocio: alta Riesgo en desarrollo: alto

Puntos estimados: 3 Iteración asignada: 1

Programador responsable: Jenny Long González

Descripción:

El usuario previamente autenticado tiene tres formas de solicitar la reserva.

Por la disponibilidad en un horario determinado: El usuario selecciona primero la hora y la fecha

en que necesita reservar y luego selecciona una entre las máquinas disponibles en ese rango de

tiempo.

Por las características de hardware y software: El usuario selecciona previamente la fecha y

luego va filtrando por procesador, memoria, disco y/o programas instalados; para después, si lo

desea ver la disponibilidad de la máquina con dichas características. Posteriormente se debe

seleccionar el horario y finalmente reservar.

Paso a paso: Cuando el usuario selecciona este módulo, puede realizar la reserva guiándose por

los pasos que se le van indicando en la medida que va eligiendo sus preferencias de

reservación.

Al usuario reservar se insertará esta información en la base de datos y si el usuario registró su

correo se le enviará un correo de confirmación.

El usuario también puede ver las reservas que ha hecho posteriores a la fecha actual, donde

puede además cancelarla y si lo necesita.

Observaciones:

Si el usuario no tiene todos sus datos registrados no puede realizar ninguna acción.

El usuario puede ver previamente a la reserva las horas disponibles que tiene cada máquina a

reservar.

La cantidad de días con antelación en hacer la reserva lo establece el administrador, si la fecha

seleccionada por el usuario sobrepasa o iguala éste número no se realiza la reserva.

Tabla No.4 Historia de usuario 2

Historia de Usuario

Número: 2 Usuario: Sistema

Nombre historia: Servicios Windows para auditoria de software, hardware y usuarios.

Prioridad en negocio: alta Riesgo en desarrollo: alto

Puntos estimados: 3 Iteración asignada: 2

Programador responsable: Jenny Long González

Descripción:

Un servicio de Windows busca información de los programas instalados de cada máquina, así

como las características de disco duro, memoria, procesador y puertos USB de la misma. Luego

cada un tiempo determinado por el administrador, éste hace un llamado a un servicio web

encargado que compara esta información con la guardada en la base de datos, en caso de

diferencia se actualiza la base de datos automáticamente, aunque también se le permite al

administrador la actualización manual.

Otro servicio cada vez que se inicia sesión en una máquina guarda el nombre del usuario

logueado, a la hora y fecha en que lo hizo así como la dirección física de la máquina, y ésta

información es enviada a través de un servicio web a la base de datos de la aplicación.

Observaciones: La máquina necesita estar conectada a la red.

Page 28: Documento Tesis

Tabla No.5 Historia de usuario 3

Historia de Usuario

Número: 3 Usuario: Sistema

Nombre historia: Servicio Web

Prioridad en negocio: alta Riesgo en desarrollo: alto

Puntos estimados: 3 Iteración asignada: 3

Programador responsable: Jenny Long González

Descripción: El servicio se encarga de la comunicación entre servicio Windows y la base de

datos. El servicio NT hace un llamado al web Service entregándole los datos obtenidos y este se

encarga de insertarlos en la base de datos.

Observaciones:

Tabla No.6 Historia de usuario 4

Historia de Usuario

Número: 4 Usuario: Administrador

Nombre historia: Gestionar Memorias

Prioridad en negocio: alta Riesgo en desarrollo: alto

Puntos estimados: 1.5 Iteración asignada: 4

Programador responsable: Jenny Long González

Descripción:

El administrador selecciona el módulo de gestionar Memorias y realiza la acción que desee

ejecutar, ya sea Insertar nuevas memorias, Actualizar los datos de alguna ya insertada o eliminar

alguna que ya esté en desuso.

Observaciones:

Tabla No.7 Historia de usuario 8

Historia de Usuario

Número: 8 Usuario: Cliente y Administrador

Nombre historia: Gestionar Máquinas

Prioridad en negocio: media Riesgo en desarrollo: alto

Puntos estimados: 1 Iteración asignada: 6

Programador responsable: Jenny Long González

Descripción:

Usuario1

Usuario cliente: En la página de Reservas se muestra para este usuario la disponibilidad de las

máquinas en la fecha actual.

Usuario2

Administrador: El administrador selecciona el módulo de gestionar Máquinas y realiza la acción

que desee ejecutar, ya sea Insertar nuevas máquinas, actualizar los datos de alguna ya insertada

tales como laboratorio al que pertenece, su disco duro, procesador, memoria(s) y puerto(s) ,así

como modificarle el estado activo o eliminar alguna que ya esté en desuso.

Observaciones: Si el usuario cliente no tiene todos sus datos registrados no puede realizar la

reserva.

Page 29: Documento Tesis

Tabla No.8 Historia de usuario 11

Historia de Usuario

Número: 11 Usuario: Administrador

Nombre historia: Gestionar Usuarios

Prioridad en negocio: media Riesgo en desarrollo: alto

Puntos estimados: 1 Iteración asignada: 8

Programador responsable: Jenny Long González

Descripción:

El administrador selecciona el módulo de gestionar usuarios y realiza la acción que desee ejecutar,

ya sea insertar nuevos usuarios, actualizar los datos de alguno ya insertado o eliminar alguno que

ya no exista. Al usuario se le añaden o de se retiran roles .El administrador puede además insertar

nuevos roles y permisos, así como eliminarlos y actualizarlos. Si un usuario que intenta

autenticarse no está registrado en Dominio de la UMCC no se puede loguear como usuario de la

página y si no tiene un rol asignado tampoco podrá hacer nada, solo se muestra la página de

inicio.

Observaciones:

2.5. Planificación de iteraciones

La planificación de las iteraciones fue realizada a partir de entrevistas con el cliente.

Mayormente en las reuniones de entrega de iteraciones se planificaba la iteración

posterior. En la Figura 1 se muestra el plan de iteraciones inicial. Las iteraciones se

planificaron de forma tal que no excedieran de tres semanas cada una. Se observa la

cantidad de iteraciones planificadas (8) y las HU que se van a desarrollar en cada

iteración.

Figura No.1 Plan inicial de iteraciones

Page 30: Documento Tesis

2.6. Plan de entregas

Se planifica con el cliente el plan de entregas donde algunas HU coinciden en ocasiones

con la iteración. Al finalizar cada iteración se lleva a cabo una entrega al cliente, por lo

que coincide la cantidad de iteraciones con la cantidad de entregas.

En la Figura 2 se muestra el gráfico del plan inicial de las entregas. Para analizar las

entregas por iteraciones se muestra la Tabla 9 donde se describen los objetivos que se

esperan alcanzar por cada iteración o entrega.

Figura No. 2 Plan inicial de entregas

Tabla No.9 Descripciones de iteraciones para el plan inicial de entregas

Iteración Descripción del objetivo

Iteración 1 Implementar los requisitos necesarios para la gestión de reservas, asegurando que és tas

no sean inconsistentes.

Iteración 2 Se pretende desarrollar la herramienta que permitirá obtener de cada máquina los

programas instalados, el procesador, el disco duro, la o las memorias y los puertos con el

fin de actualizar dinámicamente en cuanto a estos aspectos la base de datos.

Iteración 3 Se pretende implementar la herramienta que permitirá al servicio Windows comunicarse

con la aplicación.

Iteración 4 Se pretende implementar los módulos, que permitirán al administrador del sistema

adicionar, eliminar y modificar la información relativa a las memorias y discos duros de

cada máquina.

Iteración 5 Se pretende implementar los módulos, que permitirán al administrador del sistema

adicionar, eliminar y modificar la información relativa a los Puertos USB y

microprocesadores de cada máquina.

Iteración 6 Se pretende implementar los módulos que permitirán adicionar, eliminar y modificar los

programas instalados y las máquinas incluyendo sus respectivas características de

hardware.

Iteración 7 Se pretende implementar: el módulo Facultades donde se insertan, actualizan y eliminan

facultades, carreras y laboratorios y el módulo Usuarios que implementa todo lo

relacionado con la autenticación, y la inserción, actualización y eliminación de usuarios,

roles y permisos.

Page 31: Documento Tesis

Iteración 8 Se pretende implementar:

El módulo de gestión de reportes donde se muestran todas las reservas y notificaciones de

cambios hechos en las máquinas en formato PDF.

El módulo de correos donde se configura la dirección del servidor de correo, el texto de los

mensajes de confirmación que se enviarán a los usuarios, entre otras cosas.

El módulo de solicitud de créditos que brindará al usuario la información de su crédito para

reservar así como la posibilidad de solicitar más en caso que éste sea de cero.

2.7. Incidencias

Cuando se realiza la planificación del proyecto es difícil tener en cuenta todos los detalles

desde el inicio, por lo que en consecuencia ocurrieron modificaciones al respecto. La

limitada experiencia del equipo de trabajo en la planificación de proyectos y los

contratiempos aparecidos durante su desarrollo incidió en la planificación de las

iteraciones iniciales y por consiguiente en el plan de las entregas inicialmente ajustado

con el cliente.

Surge la necesidad de reconfigurar la base de datos en algunas ocasiones, producto a un

análisis inicial erróneo de las necesidades, lo que lleva a las variaciones convenientes en

el código de las historias. Esto demuestra que no es posible una planificación inicial de

entregas inalterable, ya que es natural que en el transcurso del proceso de desarrollo de

la aplicación, ésta sufra variaciones que provocarían la eliminación de algunas HU y hasta

la inclusión de otras que no se tomaron en cuenta desde un principio. A partir de esto

queda aclarado que el cliente es de gran importancia durante todo el proceso para lograr

el éxito del proyecto, ya que a través de la comunicación continua se soluciona

rápidamente cualquier duda relacionada con los requisitos.

2.8. Metáfora

La aplicación GTM-UMCC tiene como principal objetivo permitir la reservación máquinas

y realizar una auditoría de hardware que actualice automática y diariamente la base de

datos de la aplicación. En esta investigación se lleva a cabo el desarrollo de los distintos

módulos que permitirán la reservación de las máquinas conociendo sus propiedades y

programas instalados, con antelación de fecha; además de garantizar la notificación diaria

de cambios en hardware y software de cada máquina. Además de mostrar reportes para

su posterior utilización por profesores o encargados del control del tiempo de máquinas.

2.9. Estudio de Factibilidad

Planificación

Uno de los factores importantes que se debe tener en cuenta en el desarrollo de un

software es si las ventajas de la aplicación propuesta justifican o no su costo. Además de

realizar una estimación del esfuerzo y el tiempo de desarrollo es necesario llevar a cabo

Page 32: Documento Tesis

un análisis de los beneficios tangibles e intangibles que reportará el proyecto. En la etapa

inicial del desarrollo de un proyecto de software, no es posible efectuar una estimación

segura del número de líneas de código que poseerá la aplicación. En este caso al utilizar

la metodología de desarrollo de software XP es necesario desde el inicio estimar la

duración para la implementación de cada HU.

Este tiempo que se emplea en cada HU se estima basándose en los requerimientos

funcionales a partir de las continuas entrevistas con el cliente, la experiencia que posee el

programador con el lenguaje de programación, el contexto de desarrollo y el conocimiento

de las técnicas de programación necesarias para resolver el problema. Por lo tanto la

estimación del tiempo de duración total del proyecto se conoce desde el comienzo.

En la Tabla 2 se tiene un total de 24 semanas de trabajo de implementación y si a esto se

le suma el tiempo de realización de las pruebas de aceptación de la versión final del

proyecto resulta un total de 27 semanas, que serían 6 meses y 3 semanas de duración

del proyecto.

Utilizando el modelo COCOMO básico propuesto por Boehm3:

Se tienen los valores para fórmulas siguientes:

Personas necesarias por mes para llevar adelante el proyecto (MM) = a*(Klb)

Tiempo de desarrollo del proyecto (TDEV) = c*(MM.)

Personas necesarias para realizar el proyecto (CosteH) = MM/TDEV

Costo total del proyecto (CosteM) = CosteH * Salario medio entre los

programadores y analistas.

Tabla No. 10 Valores de la Fórmula de Estimación de Costos

MODO a b c d

Orgánico 2.40 1.05 2.50 0.38

Semilibre 3.00 1.12 2.50 0.35

Rígido 3.60 1.20 2.50 0.32

Considerando como salario medio 275.00 pesos, donde la cantidad de personas

necesarias por mes se sabe que es 2 y la duración estimada para el desarrollo del

proyecto es de 6 meses y 3 semanas (6.75 meses), entonces al sustituir y calcular se

obtiene un costo de $3712.50.

3 Barry W. Boehm, distinguido profesor de ingeniería de software del departamento de Ciencias de la Computación de la universidad

del Sur de California. Conocido por sus muchas contribuciones a la ingeniería de software entre ellas el desarrollo del Modelo

Constructivo de Costes. (COCOMO)

Page 33: Documento Tesis

Beneficios tangibles e intangibles

Esta aplicación permite reservar el tiempo de máquina antes de la fecha deseada,

posibilitando seleccionar a preferencia del usuario y según la disponibilidad, la máquina

que más se presta para sus quehaceres. Facilita además el control de los cambios

ocurridos en las PCs en cuanto a hardware y software. Proporciona una mayor vigilancia

sobre uno de los medios básicos más importantes de la UMCC, haciendo más ligero el

trabajo de técnicos y profesores, así como el estudio de los estudiantes.

No se estiman costos numéricos tangibles, ya que este sistema se desarrolla sin costo en

fondo de tiempo de trabajo. Por tanto se determina que, los costos se analizarán

cualitativamente.

Análisis de costos y beneficios

Contando con los beneficios señalados anteriormente y con la estimación y planteamiento

de los costos, se concluye que la solución propuesta presenta una buena relación entre

sus indicadores costo-beneficio.

2.10. Conclusiones

Como resultado de la valoración de la bibliografía consultada para llevar a cabo esta

investigación se puede afirmar que en su mayoría fue actualizada, considerando algunos

materiales de imprescindible consulta.

A partir de la descripción de la solución propuesta en este capítulo se llega a un mejor

entendimiento de los requerimientos funcionales para que el software tenga una buena

aceptación, siendo la comunicación con el cliente el factor más importante. Después de

esta planificación inicial se puede comenzar a construir el sistema que constituye la

propuesta de solución.

Page 34: Documento Tesis

3. Capítulo 3. Construcción de la propuesta de solución y resultados

obtenidos.

3.1. Introducción

En este Capítulo se analiza la construcción de la solución propuesta, parte importante en

el desarrollo de la aplicación mediante el análisis de las iteraciones, desglosándolas por

tareas que se llevan a cabo para cumplir con la HU correspondiente. En cada iteración se

observa el seguimiento del plan de entrega con el fin de mostrar los cambios realizados a

la planificación inicial.

Con el objetivo de comprobar el grado de cumplimiento de los requisitos funcionales

iniciales, se realizan las pruebas al software permitiendo comprobar la calidad de este

producto, lo que constituye uno de los pasos más importantes en el diseño e

implementación de un sistema. No debe existir ninguna característica en el programa que

no haya sido probada con la intención de mostrar un error no descubierto hasta entonces.

Evidentemente, la mejor forma de que las pruebas estén correctas es dejar participar al

cliente en el diseño de las mismas. [15] Al finalizar cada iteración se realizan los casos de

pruebas funcionales y luego se pasa a la siguiente iteración.

Este capítulo culmina con el análisis de los resultados obtenidos hasta al momento,

comprobando si la aplicación es estándar para todos los navegadores y reflejando el

criterio de los expertos.

3.2. Iteraciones

En este epígrafe se realiza la descripción de las iteraciones llevadas a cabo en todo el

desarrollo del sistema. Al finalizar cada una se realizaron pruebas funcionales para

comprobar los resultados esperados. Al existir diversas pruebas con características

iguales, entonces se decide no hacer estas descripciones en todos los casos, evitando

con esto que la documentación se extendiera demasiado. En este caso se encuentran, las

pruebas para insertar, modificar, mostrar y eliminar registros.

Iteración 1

En esta iteración se planea la implementación de los distintos módulos para reservar. Se

quiere que el usuario pueda reservar filtrando por las características de hardware de la

máquina y sus programas instalados, permitir reservar solo teniendo en cuenta la fecha,

hora y laboratorio y otro módulo en el que se le vaya indicando al usuario lo que debe

hacer para reservar.

También hay que dar la posibilidad de mostrar y cancelar las reservas. Garantizando en

todos los casos que al reservar:

Page 35: Documento Tesis

No exista ya, una reserva del mismo usuario con los mismos parámetros de

reserva, tales como fecha de reserva, hora de inicio, duración y la maquina en

reserva.

La duración del tiempo de máquina no exceda el tiempo establecido por el

administrador.

La cantidad de días con antelación para reservar no exceda el tiempo establecido

por el administrador.

El usuario tenga registrados todos los datos requeridos.

La cantidad de reservas hecha por el usuario no exceda el número máximo de

reservas por día.

Historia de usuario #1

Tareas

Filtrar máquinas por hardware y software

Filtrar máquinas disponibles en hora, tiempo y laboratorio.

Reservar paso a paso.

Mostrar reservas del usuario.

Tareas desarrolladas

Número Tarea: 1

Nombre Tarea: Filtrar máquinas por hardware y software

Puntos estimados: 1

Descripción: Se diseña una interfaz en la que se seleccione la fecha, el procesador,

disco y/o memoria que se quiere que tenga la máquina, también para seleccionar

programas instalados y ver la disponibilidad en la fecha. A medida que el usuario va

escogiendo se van mostrando la máquinas que cumplen con los requisitos requeridos por

él. Si aparece alguna puede dar clic en la opción” reservar” y se muestra un panel para

seleccionar hora de inicio y duración. Si todo está correcto se inserta la reserva y se envía

un correo de confirmación al usuario. Si hay algún fallo se muestra un mensaje de error.

Page 36: Documento Tesis

Número Tarea: 2

Nombre Tarea: Filtrar máquinas disponibles en hora, tiempo y laboratorio.

Tipo de tarea: Desarrollo

Puntos estimados: 0.5

Descripción: Se diseña la interfaz para reservar una máquina donde el usuario

seleccione la hora a la que necesite reservar así como el tiempo y su respectivo

laboratorio. Esto hace una consulta mostrando las máquinas que cumplen estos

requisitos, de no haber alguna se muestra un mensaje informándolo, de lo contrario si

decide reservar se inserta la reserva en la base de datos y si todo está correcto se envía

un correo de confirmación al usuario en caso de que lo haya registrado.

Número Tarea: 3

Nombre Tarea: Reservar paso a paso.

Tipo de tarea: Desarrollo

Puntos estimados: 1

Descripción: Se diseña una interfaz que muestre en cada momento lo que el usuario

debe hacer para reservar. Se permite seleccionar programas y el laboratorio. Son

obligatorios la fecha, hora y tiempo. Al final de la selección se muestran las máquinas

disponibles y se puede reservar, acción que insertará en la base de datos enviando un

correo de confirmación en caso que éste haya sido registrado. Si hay algún fallo se

muestran mensajes informándolo.

Número Tarea: 4

Nombre Tarea: Mostrar reservas del usuario.

Tipo de tarea: Desarrollo

Puntos estimados: 0.5

Descripción: Se implementa la interfaz para mostrar las reservas de los usuarios. Se

muestra un vínculo que al seleccionarlo se muestra una lista con todas la reservas del

usuario posteriores a la fecha actual, donde el usuario tenga la posibilidad de cancelarlas,

acción que eliminará la reserva de la base de datos y le sumará nuevamente el crédito

invertido. Si no hay ninguna reserva se muestra un mensaje informándolo.

Page 37: Documento Tesis

Pruebas funcionales

Número Caso de prueba: 1

Nombre Caso de prueba: Filtrar máquinas por hardware y software.

Descripción: A medida que el usuario selecciona, el sistema va haciendo consultas a la

base de datos filtrando por lo que él escogió devolviendo una lista de máquinas, si la lista

no contiene elementos es que no se encontró una con las característica deseadas en

cuyo caso se muestra un mensaje informativo, de haberse encontrado una o más

máquinas, al mandar a reservar se verifica que no haya una reserva con los mismos

datos, que en el día el usuario no haga más de la cantidad de reservas establecidas, que

la fecha esté en el límite de días con antelación, si todo es así se inserta una nueva

reserva y si el usuario tiene su correo registrado se envía un mensaje de confirmación, de

lo contrario se muestra un mensaje.

Condiciones de ejecución: El sistema debe estar conectado correctamente a la BD y el

usuario debe estar autenticado.

Entradas:

Procesador (Opcional).

Memoria (Opcional).

Disco Duro (Opcional).

Laboratorio

Programas que necesita instalados (Opcional).

Máquina que desea reservar.

Fecha de reservación.

Resultado esperado: Ver lista de máquinas correspondiente a las características

requeridas por el usuario, en caso de fallo ver siempre los mensajes, al reservar se inserta

la reserva en la base de datos.

Evaluación: Prueba satisfactoria

Número Caso de prueba: 2

Nombre Caso de prueba: Filtrar máquinas disponibles en hora, tiempo y laboratorio.

Descripción: Al seleccionar la hora de inicio ver lista de máquinas disponibles a esa hora,

al igual que al seleccionar tiempo y el laboratorio. Si no hay máquinas como resultado de

la selección mostrar mensaje informativo.

Page 38: Documento Tesis

Condiciones de ejecución: El sistema debe estar conectado correctamente a la BD.

Entradas:

Hora de inicio

Tiempo de reserva

Laboratorio

Resultado esperado: Cuando se seleccionan los datos requeridos si hay máquinas se

muestran si no ver un mensaje de información.

Evaluación: Prueba satisfactoria.

Número Caso de prueba: 3

Nombre Caso de prueba: Reservar paso a paso.

Descripción: Cuando se selecciona la fecha se va automáticamente al siguiente paso

que es seleccionar la hora y el tiempo. Luego si desea se seleccionan programas que se

quieren instalados, después el laboratorio y por último se selecciona la máquina a

reservar. Insertándose la reserva y enviándose un mensaje si es que existe el correo del

usuario.

Condiciones de ejecución: El sistema debe estar conectado correctamente a la BD.

Entradas:

Fecha

Hora de inicio

Tiempo de reserva

Programas instalados (opcional)

Laboratorio

Resultado esperado: Al seleccionar la fecha se muestra la interfaz del paso siguiente

que es la de seleccionar hora y duración, si los datos son los adecuados se salta al

próximo paso, si no se muestra un mensaje. Al terminar esto, opcionalmente se

seleccionan los programas, de no haber máquinas que tengan esos programas mostrar

un mensaje; al ir al paso siguiente mostrar lista de laboratorios pertenecientes a la

facultad del usuario, después de elegir uno viene la selección de la máquina a reservar. Si

se decide reservar se inserta la reserva en la base de datos.

Evaluación: Prueba satisfactoria.

Número Caso de prueba: 4

Page 39: Documento Tesis

Nombre Caso de prueba: Mostrar reservas del usuario.

Descripción: Cuando se elige Ver Reservas se muestran las reservas con fecha

posterior a la actual, dando la posibilidad de seleccionar una cancelarla.

Condiciones de ejecución: El sistema debe estar conectado correctamente a la BD.

Resultado esperado: Al escoger ver las reservas, el sistema busca todas las reservas

del usuario donde la fecha sea la actual o posterior a la misma. Al dar clic en cancelar se

elimina de la base de datos y se suma al crédito del usuario lo que había invertido en

reservar la máquina elegida.

Evaluación: Prueba satisfactoria.

Incidencias.

El plan de entregas se cumple según lo acordado con el cliente y se fijó la siguiente fecha

de entrega. Seguimiento del plan de entregas.

En la Figura 3 se representa el comportamiento del plan de entregas durante la primera

iteración.

Figura No.3: Plan de entrega. Iteración 1

Iteración 2

Historia de usuario #2

Nombre: Servicios Windows para auditoria de software, hardware y usuarios.

Descripción: Un servicio de Windows busca información de los programas instalados de

cada máquina, así como las características de disco duro, memoria, procesador y puertos USB de la misma. Luego cada un tiempo determinado por el administrador, éste hace un

llamado al servicio web encargado que comparar esta información con la guardada en la

Page 40: Documento Tesis

base de datos, en cuyo caso de diferencia se actualiza la base de datos automáticamente, aunque también se le permite al administrador la actualización manual.

Otro servicio cada vez que se inicia sesión en una máquina guarda el nombre del usuario

logueado, a la hora y fecha en que lo hizo así como la dirección física de la máquina, y ésta información es enviada a través de un servicio web a la base de datos de la

aplicación.

Tareas

Obtención de información

Obtención de usuarios autenticados

Tareas desarrolladas

Número Tarea: 1

Nombre Tarea: Obtención de información

Tipo de tarea: Desarrollo

Puntos estimados: 2

Descripción: Se implementan los requisitos para obtener los datos necesitados. Cuando

se inicia la máquina comienza este servicio que hace una búsqueda de los programas

instalados, así como las propiedades de la memoria, del disco duro, procesador y

puertos, al hacerlo se envían los datos al servicio web encargado de insertar en la base

de datos y guardar los nuevos cambios para posteriores notificaciones.

Número Tarea: 2

Nombre Tarea: Obtención de usuarios autenticados

Tipo de tarea: Desarrollo

Puntos estimados: 1

Descripción: Se implementan los requisitos necesarios para obtener los datos

esperados. Cada vez que se inicia sesión se ejecuta este servicio que obtiene el nombre

de usuario de la persona autenticada, la dirección física de la máquina la fecha y la hora,

a través del servicio Web especificado , encargado de guardar en la base de datos se

inserta esta información para su uso posterior.

Pruebas funcionales

Número Caso de prueba: 1 Nombre Caso de prueba: Obtención de información Descripción: Cuando se inicia el servicio, busca la información requerida en la máquina,

llama al servicio web entregándole lo encontrado. Si hay cambios se actualiza la base de datos Condiciones de ejecución: La máquina debe estar encendida y conectada a la red. Resultado esperado: Se ejecuta al iniciarse la máquina, en el visor de sucesos se

muestra lo que ha encontrado y hecho, hasta que finaliza. Vuelve a ejecutarse

Page 41: Documento Tesis

automáticamente en dependencia del intervalo de tiempo de ejecución que defina el administrador en la aplicación. Número Caso de prueba: 2

Nombre Caso de prueba: Obtención de usuarios autenticados Condiciones de ejecución: La máquina debe estar encendida y conectada a la red.

Resultado esperado: Al iniciar sesión se inicia este servicio y a través del servicio Web

especificado, en la base de datos se inserta una nueva notificación de usuario logueado con los respectivos datos necesarios.

Evaluación: Prueba Satisfactoria

Incidencias.

La iteración se termina una semana antes y se hace la entrega en ese tiempo, fijándose la siguiente fecha de entrega. Seguimiento del plan de entregas.

En la Figura 4 se representa el comportamiento del plan de entregas durante la segunda

iteración.

Figura No.4: Plan de entrega. Iteración 2

Iteración 3.

En esta iteración se requiere que a través de un servicio Web que recibe datos de un

servicio Windows, inserten nuevos valores en la base de datos.

Historia de usuario # 3

Nombre Historia: Servicio Web

Descripción: Descripción: El servicio se encarga de la comunicación entre servicio

Windows y la base de datos. El servicio NT hace un llamado al Web Service entregándole

los datos obtenidos y este se encarga de insertarlos en la base de datos.

Page 42: Documento Tesis

Tareas

Insertar datos recibidos en la base de datos.

Tareas desarrolladas

Número Tarea: 1

Nombre Tarea: Insertar datos recibidos en la base de datos.

Tipo de tarea: Desarrollo

Puntos estimados: 3

Descripción: Se implementan los requisitos necesarios para el funcionamiento adecuado

del servicio. Cuando se reciben las listas de programas instalados, memorias, discos,

procesadores y puertos encontrados en la máquina y se verifica lo que ha cambiado con

respecto a actualizaciones anteriores. Si no existen cambios no se hace nada, de lo

contrario se actualiza la base de datos según la nueva entrada y se añade una

notificación de cambio con los datos de la PC en cuestión.

Pruebas funcionales Número Caso de prueba: 1

Nombre Caso de prueba: Insertar datos recibidos en la base de datos.

Descripción: Cuando el servicio Windows (WS) hace el llamado, se deben comparar los

datos de la base de datos con los nuevos, enviados por el WS, de haber cambios actualizar las tablas.

Condiciones de ejecución: La máquina debe estar encendida y conectada a la red.

Resultado esperado: Después de haber terminado de ejecutarse los servicios Windows

de obtención de información si hubo algún cambio la base de datos se actualiza.

Evaluación: Prueba Satisfactoria

Incidencias.

El plan de entregas se cumple según lo acordado con el cliente y se fijó la siguiente fecha

de entrega. Seguimiento del plan de entregas.

En la Figura 5 se representa el comportamiento del plan de entrega durante la tercera

iteración.

Page 43: Documento Tesis

Figura No. 5: Plan de entrega. Iteración 3

Iteración 4

En esta iteración se planea implementar los módulos que permiten al administrador la

gestión de discos duros y memorias. Para no extender la documentación se excluirán de la misma de las tareas y pruebas insertar, editar mostrar y eliminar memorias puesto que son iguales a las de los discos

duros. Historia de usuario #4

Nombre historia: Gestionar memorias Descripción: El administrador selecciona el módulo de gestionar Memorias y realiza la

acción que desee ejecutar, ya sea Insertar nuevas memorias, Actualizar los datos de

alguna ya insertada o eliminar alguna que ya esté en desuso. Tareas

Insertar discos duros.

Editar discos duros.

Eliminar discos duros.

Mostrar discos duros.

Tareas desarrolladas

Número Tarea: 1

Nombre Tarea: Insertar discos duros.

Tipo de tarea: Desarrollo

Puntos estimados: 0.2

Descripción: Se diseña la interfaz para insertar un nuevo disco en la base de datos. El

administrador debe insertar el tamaño, la cantidad de particiones, el estado en que se

encuentra, una pequeña descripción, el modelo y después puede insertar. Si hay algún

dato vacío o ya existe uno con las mismas características no se puede adicionar.

Número Tarea: 2

Nombre Tarea: Editar discos duros.

Puntos estimados: 0.2

Page 44: Documento Tesis

Descripción: Se diseña la interfaz para editar discos duros. El administrador selecciona

un disco de la lista y hace los cambios que desee hacer. Si ya existe uno con esos datos

no se permite editar. Si para realizar esta acción no se selecciona el disco antes, sale un

mensaje de error.

Número Tarea: 3

Nombre Tarea: Eliminar discos duros.

Tipo de tarea: Desarrollo

Puntos estimados: 0.2

Descripción: Se diseña la interfaz para eliminar discos duros. Para eliminar un disco duro

es necesario seleccionarlo primeramente, de no ser así sale un mensaje de error, de lo

contrario se debe confirmar la eliminación y después se excluye éste de la base de datos.

Número Tarea: 4 Nombre Tarea: Mostrar discos duros.

Tipo de tarea: Desarrollo Puntos estimados: 0.2 Descripción: Se diseña la interfaz para administrar discos duros. Al seleccionar el

módulo de gestión de discos duros se muestran todos los discos que hay actualmente en la base de datos. Si no hay discos se muestra la tabla vacía. Pruebas funcionales Número Caso de prueba: 1

Nombre Caso de prueba: Insertar discos duros. Descripción: Al introducir todos los datos del nuevo disco y seleccionar Insertar se

inserta un nuevo disco si no existe otro igual. Condiciones de ejecución: La máquina debe estar encendida y conectada a la red.

Resultado esperado: Después de haber puesto los datos del disco y haber seleccionado

la opción insertar el sistema verifica que no falte por especificar ningún dato y que no

haya un disco con las mismas características. Si todo está como lo establecido se añade

un nuevo disco a la base de datos.

Evaluación: Prueba Satisfactoria

Número Caso de prueba: 2 Nombre Caso de prueba: Editar discos duros.

Descripción: Al seleccionar el disco que se quiere editar se efectúan los cambios y se

selecciona la opción actualizar mostrándose los la lista de discos con los nuevos cambios. Condiciones de ejecución: La máquina debe estar encendida y conectada a la red.

Resultado esperado: Después de haber puesto los datos del disco y haber seleccionado

la opción insertar el sistema verifica que no falte por especificar ningún dato y que no

haya un disco con las mismas características. Si todo está como lo establecido se añade

un nuevo disco a la base de datos.

Page 45: Documento Tesis

Incidencias.

El plan de entregas se cumple según lo acordado con el cliente y se fijó la siguiente fecha de entrega. Seguimiento del plan de entregas.

En la Figura 6 se representa el comportamiento del plan de entrega durante la cuarta

iteración.

Figura No.6: Plan de entrega. Iteración 4

Iteración 6

En esta iteración se planea implementar los módulos que permiten insertar, eliminar, modificar y mostrar las máquinas y los programas instalados.

Historia de usuario #8 Número historia: 8

Nombre historia: Gestionar Máquinas. Descripción: Usuario 1

Usuario cliente: En la página de Reservas se muestra para este usuario la disponibilidad

de las máquinas en la fecha actual. Usuario2

Administrador: El administrador selecciona el módulo de gestionar máquinas y realiza la acción que desee ejecutar, ya sea insertar nuevas máquinas, actualizar los datos de

alguna ya insertada tales como laboratorio al que pertenece, su disco duro, procesador, memoria(s) y puerto(s) ,así como modificarle el estado activo o eliminar alguna que ya

esté en desuso.

Tareas

Insertar máquinas

Editar máquinas

Modificar máquinas

Modificar Hardware de la máquina

Mostrar máquinas

Número Tarea: 4

Page 46: Documento Tesis

Nombre Tarea: Modificar hardware de la máquina.

Tipo de tarea: Desarrollo

Puntos estimados: 0.2

Descripción: Se diseña la interfaz modificar las características de hardware de las

máquinas. Cuando el administrador selecciona una máquina, puede seleccionar la opción

hardware para habilitar, deshabilitar o cambiar las propiedades de hardware que tiene la

máquina, ya sean el disco, el procesador, la(s) memoria(s) y/o los puertos. A una PC se le

pueden asignar más de una memoria y un puerto, no siendo así para el procesador y el

disco que para habilitar uno nuevo es necesario deshabilitar el anterior.

Pruebas funcionales

Número Caso de prueba: 1 Nombre Caso de prueba: Modificar hardware de la máquina.

Descripción: Al seleccionar una máquina es posible seleccionar la opción hardware la

cual muestra los dispositivos en los que se pueden hacer cambios, al seleccionar uno de ellos se le pueden habilitar o deshabilitar a la máquina seleccionada Condiciones de ejecución: La máquina debe estar encendida y conectada a la red.

Resultado esperado: Cuando se selecciona una máquina se muestran la dirección física,

el laboratorio donde está y el nombre, datos que están disponibles para editar

exceptuando la dirección física. Si seleccionan la opción hardware se muestran los

vínculos para hacer cambios en el disco, el procesador, la o las memorias y/o el o los

puertos. Al ser seleccionado el dispositivo donde se harán los cambios se mostrarán

todos los que están almacenados en la base de datos y el(los) que tiene la máquina

seleccionada habilitado(s).

Si se selecciona el dispositivo que tiene la PC en cuestión y se deshabilita, la máquina

aparece sin éste.

Si se selecciona uno de todos los que están almacenados y se habilita, el cómputo

aparece con un dispositivo nuevo, habilitado, si éste es un procesador o un disco, y anteriormente la máquina poseía uno, esta acción no se puede ejecutar, mostrando el mensaje de deshabilitar el anterior primero.

Evaluación: Prueba Satisfactoria

Incidencias.

El plan de entregas se cumple según lo acordado con el cliente y se fijó la siguiente fecha de entrega. Seguimiento del plan de entregas. En la Figura 7 se representa el comportamiento del plan de entregas durante la séptima

iteración.

Page 47: Documento Tesis

Figura No.7 Plan de entregas iteración 6.

Iteración 7

Historia de usuario # 11

Nombre historia: Gestionar Usuarios.

Descripción: El administrador selecciona el módulo de gestionar usuarios y realiza la

acción que desee ejecutar, ya sea insertar nuevos usuarios, actualizar los datos de alguno ya insertado o eliminar alguno que ya no exista. Al usuario se le añaden o de se retiran

roles .El administrador puede además insertar nuevos roles y permisos, así como eliminarlos y actualizarlos. Si un usuario que intenta autenticarse no está registrado en

Dominio de la UMCC no se puede loguear como usuario de la página y si no tiene un rol asignado tampoco podrá hacer nada, solo se muestra la página de inicio. Tareas

Insertar usuarios

Modificar usuarios

Eliminar usuarios

Mostrar usuarios

Autenticar usuarios

Insertar roles

Modificar roles

Eliminar roles

Mostrar roles

Insertar permisos

Modificar permisos

Eliminar permisos

Mostrar permisos Tareas desarrolladas Número Tarea: 15

Nombre Tarea: Insertar usuarios Tipo de tarea: Desarrollo

Puntos estimados: 0.2 Descripción: Se diseña la interfaz para insertar nuevos usuarios. Cuando el

administrador va a adicionar un nuevo usuario se escribe el nombre, contraseña,

facultad, correo, crédito inicial para reservar máquinas, se selecciona el rol que va poseer y se selecciona la opción insertar. Si no existe uno igual al dar clic en Insertar se muestra el nuevo elemento.

Si hay algún dato incorrecto se muestra un mensaje.

Page 48: Documento Tesis

Número Tarea: 16

Nombre Tarea: Modificar usuarios

Tipo de tarea: Desarrollo

Puntos estimados: 0.2

Descripción: Se diseña la interfaz para modificar los datos de los usuarios. Para

cambiarle algo al usuario se requiere su previa selección. Se hacen los cambios y se selecciona la opción Actualizar.

Si no existe uno igual, al dar clic en Actualizar se muestra el elemento con los datos

cambiados. Número Tarea: 19

Nombre Tarea: Autenticar usuarios

Tipo de tarea: Desarrollo

Puntos estimados: 0.2

Descripción:

Se diseña la interfaz para autenticar usuarios. Para entrar como usuario a la página éste debe escribir el nombre y la contraseña, si es la primera vez como no está en la base de

datos se verifica si es un usuario del directorio activo (Active Directory), en cuyo caso entra automáticamente insertándose sus datos en la base de datos. Este usuario entra con el rol de estudiantes, si después se le quiere añadir otro el administrador es el

encargado de hacerlo. En dependencia de los roles y los permisos serán los módulos que se podrán visualizar.

En caso que el usuario no esté en el dominio se muestra un mensaje.

Número Tarea: 20

Nombre Tarea: Insertar roles

Tipo de tarea: Desarrollo

Puntos estimados: 0.2

Descripción: Se diseña la interfaz para insertar nuevos roles. Para adicionar un nuevo rol

se escribe el nombre, se seleccionan los permisos que tendrá y se elige la opción

insertar. Si no existe uno igual al dar clic en Insertar se muestra el nuevo elemento.

Si hay algo incorrecto se muestra un mensaje.

Número Tarea: 21

Nombre Tarea: Modificar roles

Tipo de tarea: Desarrollo

Puntos estimados: 0.2

Page 49: Documento Tesis

Descripción: Se diseña la interfaz para modificar roles. Para editar se hacen los cambios

que se necesiten, permitiéndose añadir o quitar permisos al rol seleccionado y luego se selecciona la opción Actualizar.

Si no existe uno igual al dar clic en Actualizar se muestra el elemento con los datos

cambiados. Si hay algún dato incorrecto se muestra un mensaje.

Número Tarea: 24

Nombre Tarea: Insertar permisos

Tipo de tarea: Desarrollo

Puntos estimados: 0.2

Descripción: Se diseña la interfaz para insertar nuevos permisos. Para adicionar un

nuevo permiso se escribe el nombre y se selecciona la opción insertar. Si no existe uno igual al dar clic en Insertar se muestra el nuevo elemento.

Si hay algún dato incorrecto se muestra un mensaje.

Número Caso de prueba: 4

Nombre Caso de prueba: Autenticar usuarios

Descripción: Al insertar el nombre y la contraseña se verifica si un usuario con esos

datos está en base de datos, de no ser así se verifica si está en el dominio de la

universidad en cuyo caso se insertan sus datos y entra con rol de estudiante a la página.

Condiciones de ejecución: La máquina debe estar encendida y conectada a la red.

Entradas: nombre y contraseña.

Resultado esperado: Después de escribir los datos requeridos para la autenticación, el

sistema verifica si existe el usuario en la base de datos, de ser así, entra, si no se verifica que esté en el dominio, en caso de no encontrarse se muestra un mensaje de error, de lo

contrario se insertan sus datos en la base de datos y entra con el rol de estudiante.

El sistema verifica qué roles y permisos tiene el usuario para que en dependencia de ello

se muestren los módulos correspondientes a cada cual.

Incidencias.

Por complicaciones en la implementación de los módulos se retrasa la entrega para la próxima semana seleccionándose la fecha de entrega para la siguiente iteración.

Seguimiento del plan de entregas. En la Figura 8 se representa el comportamiento del plan de entregas durante la séptima

iteración.

Page 50: Documento Tesis

Figura No. 8 Plan de entregas. Iteración 7

3.3. Análisis de los resultados obtenidos

Después de desarrollar todo un proceso de pruebas se lograron resultados satisfactorios,

pues tras la detección de diferentes errores, obtenidos fundamentalmente con las pruebas

funcionales, se solucionaron varios problemas que impedían el cumplimiento de los

requisitos fundamentales del sistema en cuestión.

Las primeras pruebas fueron planeadas y ejecutadas en módulos individuales del

programa y a medida que fueron avanzando se desplazaron a módulos integrados, hasta

que finalmente llegaron al sistema completo y se logró obtener un software cuyas

funciones se encuentra en correspondencia con las especificaciones acordadas.

Se obtuvo un sistema que permite hacer reservas a preferencia del usuario, por

características de hardware y programas instalados, por disponibilidad y por pasos, donde

se va indicando lo que se debe seleccionar. Además se obtienen notificaciones de los

cambios ocurridos en una máquina en cuanto a hardware y software. Es posible actualizar

dinámicamente la base de datos del sistema con la utilización un servicio Windows que

obtiene los programas que tiene una máquina instalados así como sus características de

hardware.

3.4. Documentación del sistema

La documentación del sistema está formada por todas las etapas del desarrollo del

proyecto. Ésta fue realizada utilizando una metodología ágil. Se hace un análisis de todas

las fases de desarrollo. Las diferentes etapas fueron documentadas según la metodología

de desarrollo de software XP y se abarcan de la siguiente manera:

Se elaboran las HU en las cuales se registran los requisitos funcionales de la aplicación

en conjunto con el cliente.

En las tareas desplegadas por HU se hace una descripción del diseño e implementación

del sistema

En los casos de prueba que se realizan por HU se registra la documentación de la fase de

prueba.

Además en la documentación del proyecto se ofrece el Manual de Usuario que recoge el

modo de utilización de las funcionalidades del sistema.

Page 51: Documento Tesis

3.5. Conclusiones Parciales

Con la elaboración de este capítulo se llega a las siguientes conclusiones:

Con el desarrollo adecuado de la metodología XP se dio seguimiento al proceso de

desarrollo de la aplicación. Las modificaciones realizadas a la planificación inicial, desarrollada en el Capítulo anterior, contribuyeron a mejorar el funcionamiento de la

aplicación. A partir de las pruebas funcionales se realizaron las correcciones oportunamente ante cada error detectado.

A través del desarrollo de los elementos expuestos en este Capítulo se logró la entrega al cliente de una versión del software completamente funcional.

Teniendo en cuenta, además la importancia que reporta para cualquier sistema informático la documentación y ayuda, queda anexado un manual de usuario donde se

explica claramente cada una de las funcionalidades de la aplicación.

Page 52: Documento Tesis

Conclusiones

Una vez desarrollado el presente trabajo se arriba a lo siguiente:

El análisis de los antecedentes y el flujo actual de los procesos relacionados con el

objeto de estudio, permitió adquirir la información necesaria para dar solución a la

problemática planteada.

A partir de la aplicación de las etapas de la metodología de desarrollo de software

XP para la elaboración de la aplicación se logró una comunicación directa y amplia

con el cliente y buena respuesta ante los cambios sin importar la etapa del ciclo de

vida del proyecto.

Se obtuvo un sistema de gestión de reservas de tiempo de máquina que a través

de la utilización de métodos soportados sobre servicios Windows y la tecnología

.NET, permite satisfacer las necesidades de los laboratorios de computación.

El desarrollo de las pruebas funcionales permitió verificar y demostrar el correcto

funcionamiento de la aplicación.

De forma general con el desarrollo de esta aplicación se facilita tanto la labor de los

encargados de los laboratorios como el proceso de reservas de tiempo de máquina para

los estudiantes de la Universidad de Matanzas Camilo Cienfuegos.

Page 53: Documento Tesis

4. Recomendaciones

Luego de realizar el análisis de los resultados obtenidos y teniendo en cuenta la

continuidad del trabajo se recomienda:

Implementar nuevas funcionalidades como:

Enviar un mensaje al administrador en el momento que ocurren los cambios en las

máquinas.

Añadir un nuevo módulo donde se muestren las preferencias del usuario y éste

pueda crear alertas para ser notificado cuando una de sus máquinas preferidas fue

desocupada

Implementar un método que verifique qué programas utilizó un usuario en su

horario de reservas

Page 54: Documento Tesis

Referencias Bibliográficas

[1] SOOCIO – aplicación web para reservas de espacios deportivos From

http://www.soccio.com.

[2] Pérez del Pino, S. (2010).SISCOPE: Módulo de control del Combustible.

Informática. Matanzas, Universidad de Matanzas Camilo Cienfuegos. Ingeniería Informática.

[3] Telot, D. J. A. (2010). Metodología de la investigación científica. Selección y elaboración de los Métodos de Investigación. F. d. I. UMCC.

[4] Anónimo. (2008). "Ventajas y Beneficios de una Aplicación Web." from

http://www.esenciahumana.com.mx/Servicios/AplicacionesWeb/VentajasBeneficiosAplicaciones.html

[5] Anónimo. (2010). "Arquitectura Cliente/Servidor." from www.csae.map.es/csi/silice/Global71.html

[6] Anónimo Ventajas e inconvenientes de la arquitectura cliente/servidor. Volumen

[7] Socolovsky, V. Manual de ASP. Argentina

[8] (2009). "ASP.NET. Controles de Usuarios. 2009 ", from

http://es.wikipedia.org/wiki/ASP.NET

[9] Garrett, J. J. (2005). Ajax: Un nuevo acercamiento a las aplicaciones web.

[10] From http://msdn.microsoft.com/es-ar/vcsharp/dd919145

[11] Programación por capas http://bulma.net/body.phtml?

[12] From http://es.wikipedia.org/wiki/Sistema_Gestor_de_Bases_de_Datos.

[13] Entity Framework From http://msdn2.microsoft.com/en-

us/library/aa697427(VS.80).aspx

[14] Letelier, P. y. P., MªCarmen (2003). Metodologías ágiles para el desarrollo de

software: eXtreme Programming (XP).

[15] Calero, S. M., Ed. (2003). Una explicación de la programación extrema (XP). 2003. Encuentro usuarios xBase Madrid.

[16] Romero, L.D.J., Una Introducción a la Programación Extrema.

[17] Rodríguez D., L. V. (2008). Sistema Informático para la Gestión de

Información Docente. Matanzas, Universidad de Matanzas "Camilo Cienfuegos". p.108.

[18] From http://es.wikipedia.org/wiki/Motor_de_persistencia

Page 55: Documento Tesis

Anexos

Anexo No.1 Comparación entre las metodologías ágiles y tradicionales

Anexo .No 2 Proceso de reservación de una máquina en los laboratorios de la carrera informática.

Page 56: Documento Tesis

Anexo No. 3 Proceso de reserva de tiempo de máquina en los laboratorios del resto

de las carreras

Anexo No. 4 Proceso de reserva de tiempo de máquina de todas las carreras con el

uso de la aplicación.

Anexo No.5 Entrevista realizada responsables de laboratorios

Preguntas

¿Qué método se utiliza para reservar el tiempo de máquina?

¿Cómo es el proceso de entrada al laboratorio en el horario de tiempo de máquina?

¿En caso de tener método para reservar que se hace si se pierde la hoja de la guardia?

Preguntas Respuesta Entrevistado Lugar

1 ninguno Técnico laboratorio Laboratorio

carrera Industrial

2 Si no está abierto el laboratorio los estudiantes

esperan fuera hasta la hora indicada, y después

van entrando según la disponibilidad de máquinas

3 -

Page 57: Documento Tesis

1 En una hoja de papel, se escribe el nombre, carnet

de estudiante, hora de reserva, laboratorio y

máquina del mismo que se va a utilizar.

Técnico laboratorio Laboratorios

informática.

2 A la hora de entrada el encargado de la guardia va

dando entrada a los estudiantes después de

verificar sus datos, y después si hay disponibilidad

entran los que no reservaron

3 Se vuelve a hacer la hoja de reservas con los

presentes en el momento.