documento tesis
TRANSCRIPT
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.
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
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).
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
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
Í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
Í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
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.
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.
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.
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
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.
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
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.
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
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.
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):
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:
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:
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.
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]
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.
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.
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
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
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
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.
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.
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
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.
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
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)
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.
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:
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.
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.
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.
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
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
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
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.
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.
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
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.
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
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.
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.
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
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.
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.
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.
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.
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
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
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.
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 -
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.