sistema de gestiÓn

133
ESCUELA SUPERIOR DE INGENIERÍA INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN SISTEMA DE GESTIÓN DE UN CENTRO DE SOPORTE INFORMÁTICO AL USUARIO Alberto Gil Díaz Cádiz, Abril de 2012

Upload: papachitojuarez

Post on 13-Aug-2015

75 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: SISTEMA DE GESTIÓN

ESCUELA SUPERIOR DE INGENIERÍA

INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN

SISTEMA DE GESTIÓN DE UN CENTRO DE SOPORTE INFORMÁTICO AL USUARIO

Alberto Gil Díaz

Cádiz, Abril de 2012

Page 2: SISTEMA DE GESTIÓN
Page 3: SISTEMA DE GESTIÓN

ESCUELA SUPERIOR DE INGENIERÍA

INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN

SISTEMA DE GESTIÓN DE UN CENTRO DE SOPORTE INFORMÁTICO AL USUARIO

Departamento: Lenguajes y Sistemas Informáticos

Directores del Proyecto: José Miguel Mota Macías Manuel Palomo Duarte

Autor del Proyecto: Alberto Gil Díaz

Cádiz, Abril de 2012

Fdo: Alberto Gil Díaz

Page 4: SISTEMA DE GESTIÓN
Page 5: SISTEMA DE GESTIÓN

Licencia

Este documento ha sido liberado bajo Licencia GPL versión 3 (GNU Free Documentation License). Se incluyen los términos de la licencia en inglés al final del mismo.

Copyright © 2012 Alberto Gil Díaz

Este programa es software libre: usted puede redistribuirlo y / o modificar bajo los términos de la GNU General Public License publicada por la Free Software Foundation, bien de la versión 3 de la Licencia, o (A su elección) cualquier versión posterior.

Page 6: SISTEMA DE GESTIÓN

Agradecimientos

A mi familia

Pág. 6

Page 7: SISTEMA DE GESTIÓN

Resumen

El Sistema de Gestión de un Centro de Soporte Informático al Usuario o Soporte Técnico facilita el trabajo a los técnicos informáticos encargados del mantenimiento, gestión y control, del área de soporte, sistemas o tecnológicas, de una pequeña organización.

Mediante la gestión de usuarios (empleados), incidencias, hardware, software, servicios, proveedores, cuentas de correo electrónico y empresas, el personal técnico encargado, podrá mantener controlada e inventariada una organización.

Soporte Técnico posee accesos rápidos a programas útiles para su uso, como son Console [1], consola mejorada para entornos Windows ® y ultraVNC [2], acceso remoto a equipos.

Palabras claves: Soporte Técnico, Mantenimiento, Incidencias.

Pág. 7

Page 8: SISTEMA DE GESTIÓN

Índice General

I Prolegómeno 15

Capítulo 1.- Introducción 161.1. Motivación..........................................................................................................................161.2. Objetivo del proyecto..........................................................................................................161.3. Organización del documento..............................................................................................17

Capítulo 2.- Soporte Técnico 182.1. Historia................................................................................................................................182.2. Actualidad...........................................................................................................................192.3. Objetivos de Soporte Técnico ............................................................................................202.4. Logotipo..............................................................................................................................20

Capítulo 3.- Calendario 213.1. Introducción........................................................................................................................213.2. Diagrama de Gantt..............................................................................................................22

Capítulo 4.- Estado del Arte 24 4.1. Software Libre ...................................................................................................................24

4.1.1. GLPI..........................................................................................................................244.1.2. OCS...........................................................................................................................25

II Desarrollo 26

Capítulo 5.- Metodología de Desarrollo 27

Capítulo 6.- Análisis del Sistema 29

Pág. 8

Page 9: SISTEMA DE GESTIÓN

6.1. Análisis de Requisitos.........................................................................................................296.1.1. Técnicas de recogida de información .......................................................................296.1.2. Análisis de Viabilidad...............................................................................................306.1.3. Objetivos ..................................................................................................................316.1.4. Requisitos funcionales...............................................................................................31

6.2. Modelo de casos de uso......................................................................................................326.2.1. Diagrama de Caso de Uso.........................................................................................336.2.2. Especificación de los Casos de Uso..........................................................................33

6.3. Modelo Conceptual de Datos..............................................................................................376.3.1. Diagrama Conceptual de Datos..................................................................................37

6.4. Modelo de Comportamiento del Sistema............................................................................396.4.1. Diagrama de Secuencias del Sistema y Contrato de las Operaciones.......................39

Capítulo 7.- Diseño del Sistema 467.1. Arquitectura del Sistema Software.....................................................................................477.2. Diseño de la capa de presentación......................................................................................477.3. Diseño de la capa de dominio.............................................................................................497.4. Modelo de Diseño...............................................................................................................49

7.4.1. Diagrama de Interacción Gestión Menú Principal....................................................497.4.2. Diagrama de Interacción CU: Gestión Servicio........................................................507.4.3. Diagrama de Interacción CU: Gestión N-Ware........................................................517.4.4. Diagrama de Interacción CU: Gestión Incidencias...................................................517.4.5. Diagrama de Interacción CU: Gestión Empleados....................................................527.4.6. Diagrama de Interacción CU: Gestión Empresas......................................................527.4.7. Nuevas clases y relaciones........................................................................................537.4.8. Colaboraciones entre Objetos....................................................................................537.4.9. Especificación de las operaciones de diseño.............................................................547.4.10. Diseño de la capa de gestión de datos.....................................................................58

7.5. Bases de Datos....................................................................................................................597.5.1 Descripción del problema...........................................................................................597.5.2. Recogida de datos......................................................................................................597.5.3. Restricciones semánticas...........................................................................................647.5.4. Consultas más frecuentes..........................................................................................64

7.5.4.1. Especificación....................................................................................................647.5.5. Diseño Conceptual....................................................................................................65

7.5.5.1. Descripción de los tipos de entidades................................................................657.5.5.2. Descripción de los tipos de atributos.................................................................65

7.5.6. Diseño Lógico...........................................................................................................727.5.6.1. Modelo Relacional.............................................................................................72

7.5.7. Diseño Físico.............................................................................................................73

Pág. 9

Page 10: SISTEMA DE GESTIÓN

7.5.7.1. Índices................................................................................................................737.5.8. Cláusulas de Base de Datos.......................................................................................74

Capítulo 8.- Implementación 778.1. Codificación........................................................................................................................77

8.1.1. Guía de Estilo............................................................................................................778.1.1.1. Introducción.......................................................................................................778.1.1.2. Estructuras de control........................................................................................778.1.1.3. Llamadas a funciones........................................................................................788.1.1.4. Declaración de Funciones..................................................................................788.1.1.5. Ejemplos de Implementación............................................................................788.1.1.6. Implementación de Formularios........................................................................818.1.1.7. Bibliotecas de código abierto utilizados............................................................848.1.1.8. Conexión con la Base de Datos.........................................................................85

8.2. Recursos Utilizados.............................................................................................................868.2.1. Iconos........................................................................................................................868.2.2. Fuentes.......................................................................................................................868.2.3. Imágenes....................................................................................................................868.2.4. Utilidades ..................................................................................................................87

8.3. Estadísticas Líneas de Código Fuente.................................................................................878.3.1. Introducción...............................................................................................................878.3.2. Informe......................................................................................................................87

Capítulo 9.- Pruebas y Usabilidad 899.1. Pruebas ...............................................................................................................................89

9.1.1. Test usabilidad...............................................................................................................909.1.2. Pruebas caja negra.........................................................................................................909.1.3. Estudio de resultados.....................................................................................................91

9.2. Usabilidad ..........................................................................................................................919.2.1. Opiniones de Jakob Nielsen......................................................................................929.2.2. Elementos visuales....................................................................................................92

Capítulo 10.- Requisitos del Sistema 94

III Epílogo 95

Capítulo 11.- Manual de Instalación 9611.1. Creación del Instalador.....................................................................................................9611.2. Instalación.........................................................................................................................9711.3. Desinstalación...................................................................................................................99

Pág. 10

Page 11: SISTEMA DE GESTIÓN

Capítulo 12.- Manual de Usuario 100

Capítulo 13.- Conclusiones 10413.1. Cumplimiento de Objetivos ...........................................................................................10414.2. Opinión Personal.............................................................................................................11114.3. Mejoras ...........................................................................................................................112

Capítulo 14.- Software Utilizado 113

Capítulo 15.- Referencias Bibliográficas 120

Capítulo 16.- Información sobre Licencia 122

Pág. 11

Page 12: SISTEMA DE GESTIÓN

Índice de Figuras

• Figura 2.1. Logotipo de Soporte Técnico (ST) (pág 20)• Figura 3.1. Días de Tareas. (pág. 22)• Figura 3.2. Diagrama de Gantt (pág. 23)• Figura 4.1. Logotipo de GLPI (pág. 24)• Figura 4.2. Logotipo de OCS (pág. 25)• Figura 5.1. Modelo de ciclo de vida incremental (pág. 27)• Figura 6.1. Diagrama de Casos de Uso (pág. 33)• Figura 6.2. Diagrama Conceptual de Datos (pág. 37)• Figura 6.3. Diagrama de Secuencias del Sistema Gestión Servicios (pág. 39)• Figura 6.4. Diagrama de Secuencias del Sistema Gestión N-Ware (pág. 40)• Figura 6.5. Diagrama de Secuencias del Sistema Gestión Incidencia (pág. 42)• Figura 6.6. Diagrama de Secuencias del Sistema Gestión Empleados (pág. 43)• Figura 6.7. Diagrama de Secuencias del Sistema Gestión Empresa (pág. 44)• Figura 7.1. Boceto página principal (pág 47)• Figura 7.2. Boceto páginas de gestión (pág. 47)• Figura 7.3. Estructura de las páginas de gestión (pág. 48)• Figura 7.4. Boceto de gestión de correos electrónicos (pág. 48)• Figura 7.5. Boceto de gestión de empleados (pág. 48)• Figura 7.6. Diagrama de Interacción Gestión Menú Principal (pág. 49)• Figura 7.7. Diagrama de Interacción CU Gestión Servicio (pág. 50)• Figura 7.8. Diagrama de Interacción CU Gestión N-Ware (pág. 51)• Figura 7.9. Diagrama de Interacción CU Gestión Incidencias (pág. 51)• Figura 7.10. Diagrama de Interacción CU Gestión Empleados (pág. 52)• Figura 7.11. Diagrama de Interacción CU Gestión Empresas (pág. 52)• Figura 7.12. Hoja de Calculo de empleados, IP, contraseñas y teléfonos (pág. 59)• Figura 7.13. Listado de Teléfonos Internos (pág. 60)• Figura 7.14. Listado de aplicaciones relacionados con la seguridad (pág. 60)• Figura 7.15. Listado de aplicaciones relacionadas con incidencias (pág. 6)• Figura 7.16. Listado de carpetas de controladores (pág. 61)• Figura 7.17. Listado de aplicaciones para nuevos equipos (pág. 61)• Figura 7.18. Hoja de calculo de tóner y cartuchos (pág. 61)• Figura 7.19. Listado de fáxes (pág. 62)• Figura 7.20. Listado con información de servidores (pág. 62)• Figura 7.21. Documento de texto con los correos electrónicos (pág. 62)

Pág. 12

Page 13: SISTEMA DE GESTIÓN

• Figura 7.22. Plantilla informe de ordenador (pág. 63)• Figura 7.23. Plantilla sobre tareas (pág. 63)• Figura 7.24. Modelo Relacional Soporte Técnico (pág. 72)• Figura 8.1. Qt Designer Gestión de Incidencias (pág. 83)• Figura 8.2. Estadística anual (pág. 84)• Figura 8.3. Estadísticas (pág. 84)• Figura 8.4. Logotipo de Open Icon Library (pág. 86)• Figura 8.5. Logotipo de Open Font Library (pág. 86)• Figura 8.6. Logotipo de Open Clip Art Library (pág. 86)• Figura 8.7. Logotipo de UltraVNC (pág. 87)• Figura 8.8. Logotipo de Console (pág. 87)• Figura 8.9. Resumen gráfico (pág. 88)• Figura 9.1. Ejemplo ToolTip (pág. 91)• Figura 11.1. Configurador de Inno Setup (pág. 96)• Figura 11.2. Icono Instalador (pág. 97)• Figura 11.3. Configurador de Inno Setup (pág. 97)• Figura 11.4. Selección de iconos (pág. 98)• Figura 11.5. Proceso de instalación (pág. 98)• Figura 11.6. Ventana de desinstalación (pág. 99)• Figura 11.7. Finalización de la desinstalación (pág. 99)• Figura 12.1. Acceso directo de Soporte Técnico (pág. 100)• Figura 12.2. Control de Acceso (pág. 100)• Figura 12.3. Ventana Principal (pág. 101)• Figura 12.4. Ventana ejemplo de unidad de gestión (pág. 102)• Figura 13.1. Gestión de Incidencias (pág. 104)• Figura 13.2. Gestión de Empleados (pág. 105)• Figura 13.3. Gestión de Cuentas de correo electrónico (pág. 105)• Figura 13.4. Gestión de Servicios (pág. 105)• Figura 13.5. Gestión de Proveedores (pág. 106)• Figura 13.6. Gestión de Hardware (pág. 106)• Figura 13.7. Gestión de Software (pág. 106)• Figura 13.8. Icono de UltraVNC (pág. 107)• Figura 13.9. Configuración de UltraVNC (pág. 107)• Figura 13.10, Tarjetas Empleados (pág. 108)• Figura 13.11. Tarjetas Proveedores (pág. 108)• Figura 13.12. Gráfica incidencias de una fecha (pág. 109)• Figura 13.13. Gráfica incidencias anuales (pág. 109)• Figura 13.14. Ventana Recursos (pág. 110)• Figura 13.15. Gestión de Empresas (pág. 110)• Figura 13.16. Gestión de Empresas (pág. 111)• Figura 13.17. Ejemplo de código de barras (pág. 112)• Figura 13.18. Ejemplo de código QR (pág. 112)

Pág. 13

Page 14: SISTEMA DE GESTIÓN

Índice de Tablas

• Tabla 3.1. Lista de Tareas. (pág. 22)• Tabla 7.1. Consultas más frecuentes (pág. 65)• Tabla 7.2. Atributos y Claves primarias (pág. 72)• Tabla 7.3. Índices primarios (pág. 74)• Tabla 8.1. Ejemplo contraseña encriptada (pág. 84)• Tabla 8.2. Tabla resumen de líneas de código (pág. 88)• Tabla 8.3. Tabla resumen de carpetas (pág. 88)• Tabla 9.1. Tabla de iconos (pág. 93)

Pág. 14

Page 15: SISTEMA DE GESTIÓN

Parte I

Prolegómeno

Pág. 15

Page 16: SISTEMA DE GESTIÓN

Capítulo 1

Introducción

1.1. Motivación

Realicé la practicas de empresa en una que pertenece a un sector no tecnológico, donde tuve que realizar distintos tipos de trabajos: inventariar el material informático existente, así como, gestionar las incidencias y toda la información referente a los proveedores y cuentas de correos de los empleados.

Busqué soluciones prácticas ya desarrolladas pero éstas están preparadas para grandes empresas, donde los empleados están bien formados y tienen un nivel alto en conocimientos tecnológicos e informáticos, algo que no coincidía con la realidad donde yo realizaba las prácticas de empresa.

Ante esta situación creí oportuno desarrollar una aplicación en la que pudiera recoger todas las necesidades de gestión informática que esta organización mediana necesita.

1.2. Objetivo del proyecto

El objetivo principal es facilitar la gestión de los responsables de Soporte Técnico o Servicio Técnico de asociaciones y pyme, facilitando el acceso a la información y a los diferentes equipos de forma rápida, apoyándose en proyectos, ya existentes, como herramientas de código abierto (Open Source).

Pág. 16

Page 17: SISTEMA DE GESTIÓN

1.3. Organización del documento

Esta documento esta dividido tres en secciones que cubren los diferentes aspectos sobre el Soporte Técnico. La Primera, prolegómeno, donde recojo los fundamentos, objetivos y estructuración temporal de mi proyecto. La segunda, desarrollo, en la que expongo el ciclo de vida de mi software. La siguiente, y última, manual de instalación y usuario, software empleado para la realización del presente proyecto, así como la bibliografía y por último una descripción de la licencia.

Pág. 17

Page 18: SISTEMA DE GESTIÓN

Capítulo 2

Soporte Técnico

2.1. Historia

Desde la creación de los primeras innovaciones tecnológicas, los investigadores e ingenieros que poseían un conocimiento mas avanzada o simplemente creaban las bases de los actuales dispositivos, documentaban sus creaciones y enseñaban a otros sus descubrimientos.

La creación de los primeros ordenadores analógicos, ordenadores electrónicos, de circuitos integrados o la futura superconductividad de los materiales, todas, tienen necesitan una investigación, documentación y divulgación, a la comunidad científica, para su desarrollo y creación.

Una vez puesto en manos de empresas, éstas realizan aplicaciones (Hardware y Software), de las que dan servicio de soporte a los usuarios finales. Esta medida va en consonancia con estrategias de mercado, como medida de valor añadido ante otras organizaciones de un mismo sector, creando así, al técnico especializado para la resolución de problemas sobre esas y otras posibles aplicaciones.

Existen diferentes formas de referirse a centros de soporte, por ejemplo, call center, help desk, soporte informático, servicio técnico, apoyo técnico, mesa de ayuda, centro de contacto,.. entre otras.

Pág. 18

Page 19: SISTEMA DE GESTIÓN

2.2. Actualidad

La realidad actual es que pocas empresas disponen de soporte técnico o un departamento dedicado sólo y exclusivamente a ayudar o guiar a sus empleados, en aspectos informáticos o tecnológicos.

Las pymes compuestas de 5 o más personas, optan por subcontratar servicios y gestiones, evitando así emplear a personal propio. Aquella subcontratación supone en muchos casos un mayor coste económico. Es preferible desde el punto de vista de la eficacia y de la economía, disponer de un técnico informático a su servicio. El origen de aquella situación se puede deber a razones de desconocimiento, de la falta de un estudio de necesidades, de la no adaptación a las nuevas técnicas y medios, a la ausencia de visión de futuro y tal vez al prestigio social según sea la empresa contratada.

Las empresas que se aventuran a incluir a un técnico, o varios, dedicado a dar soporte al resto de empleados, ven crecer su productividad, a la par de controlar todos los aspectos del trabajo dentro de la empresa, al existir un alto grado de informatización en la mayoría de los procesos productivos.

El técnico de soporte, además de diseñar, desarrollar y programar, se encarga de reparar y controlar el funcionamiento de un amplia gama de dispositivos tecnológicos, por ejemplo, impresoras, ordenadores, dispositivos móviles, fotocopiadoras, fax, destructoras de papel, calculadoras, teléfono,... y todo aquel dispositivo utilizado por los empleados dentro de la organización.

Aquí conviene destacar las actitudes de un técnico de soporte:

• Estudio de la situación actual.

• Proponer mejoras.

Cualidades Personales:

• Abierto a resolver nuevos problemas.

• Seguimiento de problemas.

• Previsor de problemas y peticiones futuras.

• Trato correcto con empleados de acuerdo a su nivel de conocimientos informáticos.

• Explicación de la resolución o incluso desarrollar una guía para solucionarlo y entregarla a las personal involucradas, por si ocurre el mismo problema en el futuro tener documentada la solución anterior tomada.

Pág. 19

Page 20: SISTEMA DE GESTIÓN

2.3. Objetivos de Soporte Técnico Mi aplicación la he nombrado como Soporte Técnico (ST) , ya que representa la función principal a desarrollar por el técnico que use esta aplicación.

Varios son los objetivos que quiero lograr para facilitar la gestión del servicios de soporte.

Relación de objetivos a alcanzar:

• Gestionar incidencias, empleados, servicios de proveedores, cuentas de correo electrónico.

• Facilitar el inventariado del hardware y software.

• Facilitar el acceso remoto a equipos de una misma red.

• Facilitar la información de contacto de empleados y proveedores.

• Mostrado de estadísticas de las incidencias producidas en un periodo de tiempo.

• Estandarizar el uso de los dispositivos.

• Acceder a software, guías y manuales de forma rápida.

• Gestionar información sobre las empresas o sedes, donde trabajan los empleados.

2.4. Logotipo

Mi logotipo posee dos elementos muy usados a la hora de realizar el mantenimiento de equipos informáticos, las herramientas mas utilizadas son: una unidad de almacenamiento USB, que contiene aplicaciones y utilidades para resolver una gran cantidad de problemas, y un pequeño destornillador, para poder abrir y desmontar en el lugar donde se ha producido la incidencia aquel dispositivo que haya fallado.

Figura 2.1. Logotipo de Soporte Técnico (ST)

Pág. 20

Page 21: SISTEMA DE GESTIÓN

Capítulo 3

Calendario

3.1. Introducción

La distribución temporal, seguida en líneas generales, es la descrita a continuación:

Análisis: En esta fase llevaremos a cabo la recogida de todos los requisitos de aplicación. Al seguir un modelo lineal deberemos realizar una buena recogida de datos para que quede una aplicación consistente y cumpliendo los objetivos deseados para ella. Una vez recogidos realizaremos los casos de usos y diagramas correspondientes.

Diseño: En esta fase comenzaremos realizando el diseño de las interfaces gráficas. Una vez realizadas realizaremos un estudio de usabilidad sobre ellas para que sea de fácil uso para cualquier tipo de usuario.

Implementación: Primero realizaremos un estudio de las aplicaciones más adecuadas para el desarrollo de la aplicación así como el lenguaje de programación y la plataforma. Y en segundo lugar la codificación de la aplicación mediante la herramienta QT.

Pruebas: Las pruebas que realizaremos serán las siguientes:

• Test usabilidad, consiste en la observación sistemática de usuarios llevando a cabo tareas reales.

• Pruebas caja negra, consiste en el estudio de módulos, desde el punto de vista de las entradas que recibe y las salidas o respuestas que produce, sin tener en cuenta su funcionamiento interno.

• Estudio y resolución de los resultados de las pruebas.

Pág. 21

Page 22: SISTEMA DE GESTIÓN

3.2. Diagrama de Gantt

El diagrama de Gantt es una herramienta visual que permite modelar la planificación de las tareas necesarias para la realización de un proyecto.

Debido a la relativa facilidad de lectura de los diagramas de Gantt, esta herramienta es muy utilizada por directores de proyecto en todos los sectores. El diagrama de Gantt es una herramienta para el director del proyecto que le permite realizar una representación gráfica del progreso del proyecto, pero también es un buen medio de comunicación entre las diversas personas involucradas en un mismo proyecto.

Proyecto: Soporte Técnico

Inicio: 8 de Agosto de 2011

Fin: 6 de Abril de 2012

Tabla 3.1. Lista de Tareas.

Figura 3.1. Días de Tareas

Pág. 22

Page 23: SISTEMA DE GESTIÓN

Figura 3.2. Diagram

a de Gantt

Pág. 23

Page 24: SISTEMA DE GESTIÓN

Capítulo 4

Estado del Arte

En este apartado muestro, de forma simplificada, algunas aplicaciones y utilidades empleadas para el estudio y mejora de mi programa, Soporte Técnico, disponibles en el mercado.

4.1. Software Libre

4.1.1. GLPI

Figura 4.1. Logotipo de GLPI

GLPI es el Gestor de Recursos de Información, con un Interfaz de Administración. Se puede utilizar para construir una base de datos con un inventario de una empresa (ordenadores, software, impresoras ...). Tiene funciones para facilitar la vida diaria de los administradores, posee un seguimiento de notificaciones mediante correo electrónico y métodos para construir una base de datos con información básica sobre la topología de red.

De la aplicación GLPI me he basado en la cantidad de información que es posible almacenar sobre un componente hardware, estudiando sus campos y añadiendo otros, he creado una base de datos completa para almacenar toda la información sobre estos componentes hardware.

Pág. 24

Page 25: SISTEMA DE GESTIÓN

4.1.2. OCS

Figura 4.2. Logotipo de OCS

OCS Inventory NG [4] es una herramienta que facilita el seguimiento de la configuración y del software instalado en los ordenadores de una red local, así como la instalación remota de aplicaciones desde un servidor web.

Esta aplicación sirve para hacer inventarios de software y hardware en red, posee una aplicación cliente y otro servidor desde donde se recogen los informes de la red Generación de inventario de software es una solución de gestión técnica para TI. OCS Inventory NG trata de hacer el inventario automatizado de hardware más eficiente.

OCS Inventary proporciona mucha cantidad de información al técnico que lo utiliza, en muchos casos demasiada información para hacer pequeñas comprobaciones.

De esta aplicación me he basado en la utilización de las direcciones IP (Internet Protocol) de los equipos informáticos para acceder a ellos de forma remota.

Pág. 25

Page 26: SISTEMA DE GESTIÓN

Parte II

Desarrollo

Pág. 26

Page 27: SISTEMA DE GESTIÓN

Capítulo 5

Metodología de Desarrollo

La metodología que he considerado más adecuada para el desarrollo del software es la metodología en cascada, también conocida como lineal secuencial o modelo clásico (Figura 5.1).

El modelo en cascada propone un enfoque sistemático y secuencial del desarrollo del software que comienza con el análisis de requisitos del sistema y continúa con el análisis del software, diseño, codificación, pruebas y mantenimiento.

Figura 5.1. Modelo de ciclo de vida en cascada

Es un enfoque metodológico que ordena rigurosamente las etapas del ciclo de vida del software, de forma que el inicio de cada etapa debe esperar a la finalización de la inmediatamente anterior.

El motivo principal para la decisión de este modelo, es el conocimiento de los requisitos funcionales en la primera etapa, de forma detallada y personal.

Pág. 27

Page 28: SISTEMA DE GESTIÓN

Características:

• Es el modelo más antiguo y más utilizado en la ingeniería del software, sigue siendo el paradigma más seguido y, por tanto, está ampliamente contrastado.

• Para pasar de una fase a la siguiente es necesario conseguir todos los objetivos de la fase previa. Para ello, se realiza una revisión al final de cada fase, permitiendo volver al principio de la fase y modificar los errores encontrados.

• Ayuda a detectar errores en las primeras etapas a bajo costo.

• Ayuda a prevenir que se sobrepasen las fechas de entrega y los costes esperados.

• Es fácil aprender a utilizarlo y comprender su funcionamiento.

• Al final de cada fase el personal técnico y los usuarios pueden revisar el progreso del proyecto.

Inconvenientes

• Puede resultar complicado regresar a etapas anteriores (ya acabadas) para realizar correcciones.

• Es difícil que el cliente exponga explícitamente todos los requisitos. El modelo lineal secuencial lo requiere y tiene dificultades para acomodar la incertidumbre que existe al comienzo de muchos proyectos.

• La naturaleza lineal del ciclo de vida clásico lleva a “estados de bloqueo” en el que algunos miembros del equipo del proyecto deben esperar a otros para completar tareas dependientes.

• Se tarda mucho tiempo en pasar por todo el ciclo.

Pág. 28

Page 29: SISTEMA DE GESTIÓN

Capítulo 6

Análisis del Sistema

6.1. Análisis de Requisitos

6.1.1. Técnicas de recogida de información

Las técnicas de recogida de información son un medio para mejorar la comunicación entre los usuarios y los desarrollares. Se utilizan para obtener la información necesaria para realizar el Análisis de Viabilidad y el Documento de Especificación de Requisitos.

• Entrevista, diálogo con personas que usen algún software existente en el mercado, sobre la misma temática que el que se quiere desarrollar, permite una comunicación natural, fases: preparación, realización y análisis.

• Prototipado, consiste en la creación de un modelo del sistema que permite a los usuarios evaluar mejor las necesidades, analizando si el prototipo tiene las características deseadas, adaptación a las necesidades de los desarrolladores sería muestra de los avances del software atendiendo fuertemente a su usabilidad y critica por parte del usuario.

• Observación, analizar in situ, el funcionamiento de una empresa, como inventariar o controlan los componentes de un puesto de trabajo, permitiendo analizar mejor los detalles del proceso, estudio de documentación. Analizar documentos que describan el funcionamiento del software, recopilación de información, procedimientos, manuales, ayudas de software similar disponible en las paginas web de los desarrollares de aplicaciones para soporte técnico.

En el desarrollo de este software me he basado mucho en la experiencia personal, adquirida durante trabajos y prácticas de empresa.

Pág. 29

Page 30: SISTEMA DE GESTIÓN

6.1.2. Análisis de Viabilidad

Como indica R. Pressman [29] “todos los proyectos son realizables ¡con recursos ilimitados y tiempo infinito!”. En la práctica, los proyectos de desarrollo de software se caracterizan por la escasez de recursos y la dificultad para cumplir los plazos establecidos. Por lo tanto, antes de comenzar un desarrollo debe evaluarse su viabilidad y, preferentemente, analizar los riesgos que conlleva.

El estudio de viabilidad aborda los siguientes aspectos:

– Económico.

El beneficio económico que obtendrá una organización o empresa utilizando Soporte Técnico, será proporcional al nivel de organización que tenga del área de soporte técnico. A mayor descontrol, mayores gastos de mantenimiento y reparación, a menor descontrol, menores serán las averías y necesidades técnicas.

– Técnico.

Al tener unos requerimientos técnicos bajos, el proyecto es realizable. La tecnología usada es C++, ampliamente difundida y documentada.

– Legal.

– Propiedad intelectual: Toda los recursos utilizados deberá respetar las cláusulas de la Free Software Foundation [30] o parte de ellas.

– Este documento ha sido liberado bajo Licencia GPL versión 3 (GNU Free Documentation License). Se incluyen los términos de la licencia en inglés al final del mismo.

– Operativa.

Será posible implantar Soporte Técnico en el cualquier organización o empresa, al requerir bajos conocimientos técnicos para su uso.

– Otros.

Al ser una aplicación novedosa no necesita adaptación de datos externos.

Pág. 30

Page 31: SISTEMA DE GESTIÓN

6.1.3. Objetivos A continuación se enumeran y detallan los objetivos detectados en la toma de requerimientos que el aplicativo debe contemplar.

Objetivo 1.- Gestión de Empleados

El sistema deberá gestionar los empleados existentes en la empresa, permitiendo al usuario del sistema administrar, realizar cambios en el conjunto de los empleados, añadir nuevos o modificar empleados.

Objetivo 2.- Control de seguridad

El Sistema deberá encriptar todas las contraseñas almacenadas en la base de datos, para evitar acceso directos a ésta.

Objetivo 3.- Gestión Software y Hardware

El Sistema debe permitir la gestión la información referente al software y hardware, así como saber las unidades existentes de cada componente.

Objetivo 4.- Gestión de Servicios y Proveedores

El Sistema deberá gestionar y cuidar los datos de las organizaciones proveedores y servicios , personas de contacto y facilidad para encontrar la información.

Objetivo 5.- Gestión de Incidencias

El Sistema deberá permitir gestionar las incidencias producidas, así como un fácil acceso a ellos., así como poder llevar un listado de tareas por fechas, para facilitar el trabajo del técnico.

Objetivo 6.- Gestión de Empresas y Sedes

El Sistema deberá permitir gestionar la información referente a las empresas que gestiona y sus sedes.

6.1.4. Requisitos funcionales

Gestión de Empleados

El Técnico es el encargado de registrar en el sistema a los empleados a gestionar, asignándole el software y hardware necesarios para poder desempeñar su trabajo, correos que usa, impresoras configuradas, sede en la que trabaja....

Objetivo asociado: Objetivo 1

Pág. 31

Page 32: SISTEMA DE GESTIÓN

Gestión N-Ware

El Técnico es el encargado de gestionar el hardware que utilizan los empleados, controlado así el inventario existente.

El Técnico es el encargado de gestionar el software utilizado, así como, ficheros, guías, manuales, soluciones y estándares para la resolución, configuración o ampliación de información de las incidencias, contraseñas y usuarios las aplicaciones que así lo requieran.

Para simplificar la documentación, trataré al hardware y software denominándolo N-Ware, hasta llegar la punto donde sea necesario dividirlos para su implementación, ya que su funcionamiento lógico es el mismo.

Objetivos Asociados: Objetivo 2 y Objetivo 3

Gestión de Incidencias

El Técnico es el encargado de gestionar las incidencias producidas tanto de empleados, servicios de proveedores, hardware y software.

Objetivo Asociado: Objetivo 5

Gestión de Servicios

El Técnico es el encargado de gestionar los servicios contratados con empresas externas.

Objetivo Asociado: Objetivo 4

Gestión de Empresas

El Técnico es el encargado de gestionar las empresas y las sedes de una empresa, controlando sus empleados y los proveedores que le dan servicio.

Objetivo Asociado: Objetivo 6

6.2. Modelo de casos de uso

Un caso de uso especifica el comportamiento deseado del sistema, representan los requisitos funcionales del sistema, según la definición dada por C. Larman [5], un caso de uso “es una colección de escenarios de éxito y fracaso relacionado que describe a un actor que usa un sistema para conseguir un objetivo”.

Pág. 32

Page 33: SISTEMA DE GESTIÓN

6.2.1. Diagrama de Caso de Uso

Figura 6.1. Diagrama de Casos de Uso

6.2.2. Especificación de los Casos de Uso

Caso de uso Validar Técnico

Descripción: se valida usuario y contraseña de administrador técnico.

Actor: Técnico.

Resumen: El técnico introduce nombre de administrador y contraseña para poder usar la aplicación.

Precondición: Ninguna.

Postcondición: Se accede a la aplicación.

Escenario Principal:

1. El Técnico introduce el nombre y contraseña.

2. El Sistema comprueba los datos.

3. El Técnico accede a la aplicación.

Escenario Alternativo:

2a. Los datos introducido no son correctos.

1. El Sistema da la opción de introducir nuevos valores.

Pág. 33

Page 34: SISTEMA DE GESTIÓN

Caso de uso Gestión de Servicios

Descripción: se realiza la gestión de los servicios contratados.

Actor: Técnico.

Resumen: El técnico registra en el sistema los datos de un servicio y del proveedor prestador del servicio.

Precondición: Ninguna.

Postcondición: Se registra un nuevo servicio o se modifica uno existente.

Escenario Principal:

1. El Técnico introduce el nombre del servicio.

2. El Sistema registra el servicio.

3. El Técnico consulta y modifica los valores del servicio.

4. El Sistema registra los cambios.

Escenario Alternativo:

3a. El Servicio no tiene registrado ningún valor.

1. El Sistema da la opción de introducir nuevos valores.

Caso de uso Gestión de N-Ware

Descripción: se realiza la gestión de un componente hardware o software.

Actor: Técnico.

Resumen: El técnico registra en el sistema los datos de un componente.

Precondición: Debe existir una plantilla para cada tipo de componente.

Postcondición: Se registra un nuevo componente hardware o modifica un componente existente.

Escenario Principal:

1. El Técnico introduce el número de serie del componente.

2. El Sistema comprueba que es válido.

Pág. 34

Page 35: SISTEMA DE GESTIÓN

3. El Técnico introduce los datos del componente.

4. El Sistema registra el componente.

5. El Técnico consulta los datos del componente y los modifica.

Escenario Alternativo:

3a. El Programa no tiene registrado ningún valor.

1. El Sistema da la opción de introducir nuevos valores.

Caso de uso Gestión de Incidencias

Descripción: se realiza la gestión de una incidencia.

Actor: Técnico.

Resumen: El técnico registra en el sistema los datos de una incidencia.

Precondición: Existencia del causante de la incidencia en el Sistema.

Postcondición: Se registra una nueva incidencia y se realizan diversas gestiones sobre él.

Escenario Principal:

1. El Técnico introduce los datos de una incidencia.

2. El Sistema registra la incidencia.

3. El Técnico consulta y modifica los valores de la incidencia

4. El Sistema registra los cambios y la fecha y hora.

Escenario Alternativo:

2a. La incidencia ya está registrado en el Sistema.

1. El Sistema muestra mensaje de error.

2. El Sistema pide al Técnico que introduzca otro nombre.

Pág. 35

Page 36: SISTEMA DE GESTIÓN

Caso de uso Gestión de Empleados

Descripción: se realiza la gestión de un empleado.

Actor: Técnico.

Resumen: El técnico registra en el sistema los datos fundamentales del empleado, así como las cuentas de correo que usa.

Precondición: Ninguna

Postcondición: Se registra un nuevo empleado y se realizan diversas gestiones sobre él.

Escenario Principal:

1. El Técnico introduce el nombre y apellidos del empleado.

2. El Sistema comprueba que no existe ese empleado.

3. El Técnico introduce el resto de datos del empleado y fotografía personal.

4. El Sistema registra al empleado.

5. El Técnico consulta los datos del empleado y los modifica.

Escenario Alternativo:

2a. El empleado ya está registrado en el Sistema.

1. El Sistema muestra mensaje de error.

2. El Sistema pide al Técnico que introduzca otro nombre y apellidos.

Caso de Uso de Gestión de Empresas

Descripción: se realiza la gestión de una empresa.

Actor: Técnico.

Resumen: El técnico registra en el sistema los datos de un empresa.

Precondición: Ninguna.

Postcondición: Se registra un nueva empresa y se realizan diversas gestiones sobre él.

Pág. 36

Page 37: SISTEMA DE GESTIÓN

Escenario Principal:

1. El Técnico introduce los datos de una empresa.

2. El Sistema registra la empresa.

3. El Técnico consulta y modifica los valores de la empresa.

4. El Sistema registra los cambios.

Escenario Alternativo:

3a. El Programa no tiene registrado ningún valor.

1. El Sistema da la opción de introducir nuevos valores.

6.3. Modelo Conceptual de Datos

Es la representación de los conceptos (objetos) significativos en el dominio del problema:

• Modela los requisitos de datos de un sistema

• Describe las estructuras de datos de un sistema y las relaciones estáticas que existen entre ellos.

6.3.1. Diagrama Conceptual de Datos

Figura 6.2. Diagrama Conceptual de Datos

Pág. 37

Page 38: SISTEMA DE GESTIÓN

Restricciones de Integridad:

• Clave Externa: (Incidencias, id), (Sede, id), (Empleado, id), (N-ware, id), (Servicio,id), (Incidencia,id).

• Una Incidencia puede ser generada por un empleado, un n-ware, un servicio o una combinación de ellos.

Suposiciones:

• Al menos hay un empleado en una sede.

Aclaración:

• El Funcionamiento de las sedes es idéntico al de empresas.

Pág. 38

Page 39: SISTEMA DE GESTIÓN

6.4. Modelo de Comportamiento del Sistema

6.4.1. Diagrama de Secuencias del Sistema y Contrato de las Operaciones

En esta sección aparecerán todos los contratos de las operaciones obtenidas a través de los resultados anteriores.

Gestión Servicio

Figura 6.3. Diagrama de Secuencias del Sistema Gestión Servicios

• Operación: Introducir nombre_servicio (w_nombre)

Responsabilidades: Iniciar el registro de un servicio

Referencias cruzadas: Caso de uso: Gestión Servicio

Precondiciones:

No existe un objeto de la clase Servicio con nombre=w_nombre

Postcondiciones:

Se creó una instancia S de Servicio.

Pág. 39

Page 40: SISTEMA DE GESTIÓN

Se asignó w_nombre a S.nombre.

• Operación: Introducir datos (w_id)

Responsabilidades: Registrar los datos del servicio.

Referencias cruzadas: Caso de uso: Gestión servicio

Precondiciones:

Existe un servicio en curso S.

Postcondiciones:

Se asignó w_id a S.id.

Gestión N-Ware

Figura 6.4. Diagrama de Secuencias del Sistema Gestión N-Ware

• Operación: Introducir nombre_componente (w_nombre)

Responsabilidades: Iniciar el registro de un componente

Referencias cruzadas: Caso de uso: Gestión n-ware

Pág. 40

Page 41: SISTEMA DE GESTIÓN

Precondiciones:

No existe un objeto de la clase N-ware con numserie=w_numserie

Postcondiciones:

Se creó una instancia N de N-ware.

Se asignó w_numserie a N.numserie.

• Operación: Introducir datos (w_id)

Responsabilidades: Registrar los datos del componente.

Referencias cruzadas: Caso de uso: Gestión componente

Precondiciones:

Existe un componente en curso N.

Postcondiciones:

Se asignó w_id a N.id.

Pág. 41

Page 42: SISTEMA DE GESTIÓN

Gestión Incidencia

Figura 6.5. Diagrama de Secuencias del Sistema Gestión Incidencia

• Operación: Introducir nombre_incidencia (w_nombre)

Responsabilidades: Iniciar el registro de una nueva incidencia.

Referencias cruzadas: Caso de uso: Gestión Incidencia.

Precondiciones:

No existe un objeto de la clase Incidencia con nombre=w_nombre

Postcondiciones:

Se creó una instancia I de Incidencia.

Se asignó w_nombre a I.nombre.

• Operación: Consulta datos (w_id, w_fecha, w_hora)

Responsabilidades: Registrar los datos generales de la Incidencia.

Referencias cruzadas: Caso de uso: Gestión Incidencia

Precondiciones:

Pág. 42

Page 43: SISTEMA DE GESTIÓN

Existe una Incidencia en curso I.

Postcondiciones:

Se asignó w_id a I.id.

Se asignó w_fecha a I.fecha.

Se asignó w_hora a I.hora.

Gestión de Empleados

Figura 6.6. Diagrama de Secuencias del Sistema Gestión Empleados

• Operación: Introducir nombre_empleado (w_nombre,w_apellidos)

Responsabilidades: Iniciar el registro de un empleado

Referencias cruzadas: Caso de uso: Gestión empleado

Precondiciones:

No existe un objeto de la clase Empleado con nombre=w_nombre y apellidos=w_apellidos

Postcondiciones:

Se creó una instancia Em de Empleado.

Pág. 43

Page 44: SISTEMA DE GESTIÓN

Se asignó w_nombre a Em.nombre y w_apellidos a Em.apellidos

• Operación: Introducir datos (w_id)

Responsabilidades: Registrar los datos del empleado.

Referencias cruzadas: Caso de uso: Gestión Empleado

Precondiciones:

Existe un empleado en curso Em.

Postcondiciones:

Se asignó w_id a U.id.

Gestión Empresa

Figura 6.7. Diagrama de Secuencias del Sistema Gestión Empresa

Pág. 44

Page 45: SISTEMA DE GESTIÓN

• Operación: Introducir nombre_empresa (w_nombre)

Responsabilidades: Iniciar el registro de una empresa

Referencias cruzadas: Caso de uso: Gestión Empresa

Precondiciones:

No existe un objeto de la clase Empresa con nombre=w_nombre

Postcondiciones:

Se creó una instancia E de Empresa.

Se asignó w_nombre a E.nombre.

• Operación: Introducir datos (w_id)

Responsabilidades: Registrar los datos de la empresa.

Referencias cruzadas: Caso de uso: Gestión Empresa

Precondiciones:

Existe una empresa en curso E.

Postcondiciones:

Se asignó w_id a E.id.

Pág. 45

Page 46: SISTEMA DE GESTIÓN

Capítulo 7

Diseño del Sistema

En este capítulo definiremos el sistema de manera que lleguemos al suficiente detalle para que se pueda implementar.

Para ello, abordaré los siguientes apartados:

1. Arquitectura del sistema software.

2. Diseño de la capa de presentación.

3. Diseño de la capa de dominio:

Para toda la gestión necesaria en esta capa, necesitaremos cumplir subobjetivos de diseño, por ello me apoyo en los siguientes mecanismos de diseño para facilitar la construcción de esta capa:

• Diagrama de clases de diseño.

• Enumeración de nuevas clases y relaciones.

• Diagramas de secuencia.

• Especificación de las operaciones de diseño.

4. Diseño de la capa de gestión de datos.

Pág. 46

Page 47: SISTEMA DE GESTIÓN

7.1. Arquitectura del Sistema Software

Utilizaremos la arquitectura de tres capas o niveles en el que el objetivo primordial es la separación de la lógica de negocios, de la lógica de diseño.

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.

Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa los datos de una aplicación, la interfaz de usuario, y la lógica de negocio en tres componentes distintos.

• Modelo: Esta es la representación específica de la información con la cual el sistema opera.

• Vista: Este presenta el modelo en un formato adecuado para interactuar, usualmente la interfaz de usuario.

• Controlador: Este responde a eventos, usualmente acciones del usuario, e invoca peticiones al modelo.

7.2. Diseño de la capa de presentación

Es la que ve el usuario, por lo que también se la denomina "capa de usuario", presenta el sistema al usuario, le comunica la información y captura la información del usuario en un mínimo de proceso (realiza un filtrado previo para comprobar que no hay errores de formato). También es conocida como interfaz gráfica y debe tener la característica de ser entendible y fácil de usar para el usuario. Esta capa se comunica únicamente con la capa de negocio.

A continuación muestro una serie de bocetos realizados antes de la implementación, en ellas, muestro de forma general las opciones y posibilidades que quiero que tenga una vez finalizada el entorno de usuario.

Figura 7.1. Boceto página principal Figura 7.2. Boceto páginas de gestión

Pág. 47

Page 48: SISTEMA DE GESTIÓN

Figura 7.3. Estructura de las páginas de gestión

Figura 7.4. Boceto gestión de correos electrónicos

Figura 7.5. Boceto gestión de empleados

Pág. 48

Page 49: SISTEMA DE GESTIÓN

7.3. Diseño de la capa de dominio

Es donde residen los programas que se ejecutan, se reciben las peticiones del usuario y se envían las respuestas tras el proceso. Se denomina también capa de negocio porque es aquí donde se establecen todas las reglas que deben cumplirse. Esta capa se comunica con la capa de presentación, para recibir las solicitudes y presentar los resultados, y con la capa de datos, para solicitar al gestor de base de datos almacenar o recuperar datos de él.

La capa de dominio sabe cómo satisfacer las peticiones del usuario, pero ignora dónde se guardan los datos y cómo se presentan al usuario.

7.4. Modelo de Diseño

7.4.1. Diagrama de Interacción Gestión Menú Principal

Siguiendo el patrón Controlador voy a utilizar una clase de control para cada opción de menú principal.

Figura 7.6. Diagrama de Interacción Gestión Menú Principal

Para ejecutar la aplicación, se crea un objeto de la clase Sistema Control y se ejecuta una operación de esa clase que invoca a la operación Mostrar P_menu de la clase Pantalla Menú. La operación Mostrar P_menu se encarga de mostrar la pantalla del menú de la aplicación, aunque en realidad lo

Pág. 49

Page 50: SISTEMA DE GESTIÓN

que hace es invocar a otras operaciones de las clases de la parte de interfaz de usuario para mostrar la pantalla con el menú de la aplicación.

Cuando se muestra la pantalla del menú de opciones, se está a la espera de que se produzca algún evento. El evento que se produce en este caso es que el usuario seleccione una de las opciones del menú opc.

En función de la opción del submenú que el usuario seleccione, se crea un objeto de la clase de control que controla la acción asociada a la opción seleccionada, caso de uso. Siguiendo el patrón Controlador voy a utilizar una clase de control para cada opción de menú principal

7.4.2. Diagrama de Interacción CU: Gestión Servicio

Figura 7.7. Diagrama de Interacción CU Gestión Servicio

Pág. 50

Page 51: SISTEMA DE GESTIÓN

7.4.3. Diagrama de Interacción CU: Gestión N-Ware

Figura 7.8. Diagrama de Interacción CU Gestión N-Ware

7.4.4. Diagrama de Interacción CU: Gestión Incidencias

Figura 7.9. Diagrama de Interacción CU Gestión Incidencias

Pág. 51

Page 52: SISTEMA DE GESTIÓN

7.4.5. Diagrama de Interacción CU: Gestión Empleados

Figura 7.10. Diagrama de Interacción CU Gestión Empleados

7.4.6. Diagrama de Interacción CU: Gestión Empresas

Figura 7.11. Diagrama de Interacción CU Gestión Empresas

Pág. 52

Page 53: SISTEMA DE GESTIÓN

7.4.7. Nuevas clases y relaciones

A continuación indico las clases de control y clases de la interfaz de usuario.

• PantallaMenú.

• SistemaControl.

• Gestión Servicio.

• Gestión N-Ware.

• Gestión Incidencia.

• Gestión Empleado.

• Gestión Empresa.

• Pantalla GestiónServicio.

• Pantalla GestiónN-Ware.

• Pantalla GestiónIncidencia.

• Pantalla GestiónEmpleado.

• Pantalla GestiónEmpresa.

• GestiónServicio Control.

• GestiónN-Ware Control.

• GestiónIncidencia Control.

• GestiónEmpleado Control.

• GestiónEmpresa Control.

7.4.8. Colaboraciones entre Objetos

• Pantalla Menú y Sistema Control.

• Sistema Control y Gestión Servicio.

Pág. 53

Page 54: SISTEMA DE GESTIÓN

• Sistema Control y Gestión N-Ware.

• Sistema Control y Gestión Incidencia.

• Sistema Control y Gestión Empleado.

• Sistema Control y Gestión Empresa.

• Pantalla GestiónServicio y GestiónServicio Control.

• GestiónServicio Control y Servicio.

• Pantalla GestiónN-Ware y GestiónN-Ware Control.

• GestiónN-Ware Control y N-Ware.

• Pantalla GestiónIncidencia y GestiónIncidencia Control.

• GestiónIncidencia Control e Incidencia.

• Pantalla GestiónEmpleado y GestiónEmpleado Control.

• GestiónEmpleado Control y Empleado.

• Pantalla GestiónEmpresa y GestiónEmpresa Control.

• GestiónEmpresa Control y Empresa.

7.4.9. Especificación de las operaciones de diseño

• Clase Sistema Control

Operación que se ejecuta al hacer new.SistemaControl. Esta operación invoca a la operación Mostrar P-menú de la clase Pantalla Menú.

Operación Opción seleccinada (opc). Invoca a la operación Create () de la clase de control asociada a la opción seleccionada.

• Clase Pantalla Menú

Operación Mostrar P-menú. Esta operación muestra la pantalla del menú principal de la aplicación.

Pág. 54

Page 55: SISTEMA DE GESTIÓN

• Clase GestiónServicio Control

Operación que se ejecuta al hacer new.GestiónServicio Control

– Invoca a la operación Mostrar P_GestiónServicio

Operación Introducir_nombre_servicio (w_nombre)

– Invoca a la operación existe=Consultar(w_nombre)

– Invoca a la operación Create(w_nombre) de la clase Servicio.

Operación Introducir_datos (w_id)

– Invoca a la operación ActualizarDatosServicio (w_id) del objeto S de Servicio.

• Gestión Servicio

Operación existe=Consultar(w_nombre): Comprueba que no exista un servicio con nombre=w_nombre.

Operación Create(w_nombre): Crea un objeto S de la clase Servicio con nombre=w_nombre.

Operación ActualizarDatosServicio (w_id)

– Invoca a las operaciones de asignación de valores a los atributos del objeto S de Servicio

ActId (w_id)

• Clase GestiónN-Ware Control

Operación que se ejecuta al hacer new.GestiónN-Ware Control

– Invoca a la operación Mostrar P_GestiónN-Ware

Operación Introducir_numserie_n-ware (w_numserie)

– Invoca a la operación existe=Consultar(w_numserie)

– Invoca a la operación Create(w_numserie) de la clase N-Ware.

Operación Introducir_datos (w_id)

– Invoca a la operación ActualizarDatosN-Ware (w_id) del objeto N de N-Ware.

Pág. 55

Page 56: SISTEMA DE GESTIÓN

• Clase Gestión N-Ware

Operación existe=Consultar(w_numserie): Comprueba que no exista un n_ware con numserie=w_numserie .

Operación Create(w_numserie): Crea un objeto N de la clase N-Ware con numserie=w_numserie .

Operación ActualizarDatosN-Ware (w_id)

– Invoca a las operaciones de asignación de valores a los atributos del objeto N de N-Ware

ActId (w_id)

• Clase GestiónIncidencia Control

Operación que se ejecuta al hacer new.GestiónIncidencia Control

– Invoca a la operación Mostrar P_GestiónIncidencia

Operación Introducir_nombre_incidencia (w_nombre)

– Invoca a la operación existe=Consultar(w_nombre)

– Invoca a la operación Create(w_nombre) de la clase Incidencia.

Operación Introducir_datos (w_id, w_fecha, w_hora)

– Invoca a la operación ActualizarDatosIncidencia (w_id, w_fecha, w_hora) del objeto I de Incidencia.

• Clase Gestión Incidencia

Operación existe=Consultar(w_nombre): Comprueba que no exista una incidencia con nombre=w_nombre.

Operación Create(w_nombre): Crea un objeto I de la clase Incidencia con nombre=w_nombre.

Operación ActualizarDatosIncidencia (w_id, w_fecha, w_hora)

– Invoca a las operaciones de asignación de valores a los atributos del objeto Incidencia I

ActId (w_id)

Pág. 56

Page 57: SISTEMA DE GESTIÓN

ActFecha (w_fecha)

ActHora (w_hora)

• Clase GestiónEmpleado Control

Operación que se ejecuta al hacer new.GestiónEmpleado Control

– Invoca a la operación Mostrar P_GestiónEmpleado

Operación Introducir_nombre_empleado (w_nombre, w_apellidos)

– Invoca a la operación existe=Consultar(w_nombre)

– Invoca a la operación Create(w_nombre, w_apelidos) de la clase Ususario.

Operación Introducir_datos (w_id)

– Invoca a la operación ActualizarDatosUsusario (w_id) del objeto Em de Empleado.

• Clase Gestión Empleado

Operación existe=Consultar(w_nombre,w_apellidos): Comprueba que no exista un empelado con nombre=w_nombre y apellidos=w_apellidos.

Operación Create(w_nombre, w_apellidos): Crea un objeto Em de la clase Empleado con nombre=w_nombre y apellidos=w_apellidos.

Operación ActualizarDatosEmpleado (w_id)

– Invoca a las operaciones de asignación de valores a los atributos del objeto Em de Empleado

ActId (w_id)

• Clase GestiónEmpresa Control

Operación que se ejecuta al hacer new.GestiónEmpresa Control

– Invoca a la operación Mostrar P_GestiónEmpresa

Operación Introducir_nombre_empresa (w_nombre)

– Invoca a la operación existe=Consultar(w_nombre)

– Invoca a la operación Create(w_nombre) de la clase Empresa.

Pág. 57

Page 58: SISTEMA DE GESTIÓN

Operación Introducir_datos (w_id)

– Invoca a la operación ActualizarDatosEmpresa (w_id) del objeto E de Empresa.

• Clase Gestión Empresa

Operación existe=Consultar(w_nombre): Comprueba que no exista una empresa con nombre=w_nombre.

Operación Create(w_nombre): Crea un objeto E de la clase Empresa con nombre=w_nombre.

Operación ActualizarDatosEmpresa (w_id)

– Invoca a las operaciones de asignación de valores a los atributos del objeto E de Empresa

ActId (w_id)

7.4.10. Diseño de la capa de gestión de datos

En esta capa es donde residen los datos y es la encargada de acceder a los mismos. Está formada por uno o más gestores de bases de datos, en mi caso SQLite [6], que realizan todo el almacenamiento de datos, reciben solicitudes de almacenamiento o recuperación de información desde la capa de negocio.

Pág. 58

Page 59: SISTEMA DE GESTIÓN

7.5. Bases de Datos

El contenido hace referencia a la creación de un sistema de gestión para gestionar todos los aspectos del técnico de soporte o área de soporte técnico dentro de una organización, para así controlar y poder tomar decisiones futuras mejorando del funcionamiento de dicha organización.

7.5.1 Descripción del problema

Con Soporte Técnico quiero almacenar y gestionar la información relacionada con los empleados y dispositivos de una organización o pequeña empresa. A través de mi experiencia personal, he dividido estas tareas en diferentes unidades de gestión.

Para la obtención de las diferentes funcionalidades me he basado en la variada documentación, listados, hojas de cálculo, etc... realizados durante mi periodo de prácticas de empresa.

7.5.2. Recogida de datos

Toda la información de Soporte Técnico debe ser introducida por el técnico de sistemas o de soporte, ésto implica un nivel medio en conocimientos informáticos para la correcta descripción de los diferentes problemas.

A continuación expongo algunas imágenes de mi trabajo diario para el desempeño del área de sistemas sin la utilización de un software de gestión, relacionado con el soporte técnico.

Figura 7.12. Hoja de Calculo de empleados, IP, contraseñas y teléfonos

Pág. 59

Page 60: SISTEMA DE GESTIÓN

Mediante la Figura 7.12 gestionaba:

• Inventario de recursos utilizados.• Control de IP.• Gestión de información de empleados.• Control de contraseñas en software de gestión.• Información de las diferentes sedes.

Figura 7.13. Listado de teléfonos internos

Gestión de los números de teléfonos internos de la empresa. Figura 7.13.

Figura 7.14. Listado de aplicaciones relacionados con la seguridad

Software relacionado con la seguridad de los equipos informáticos. Figura 7.14.

Figura 7.15. Listado de aplicaciones relacionadas con incidencias

Listado de diferentes aplicaciones relacionadas con la solución a diferentes incidencia. Figura 7.15.

Pág. 60

Page 61: SISTEMA DE GESTIÓN

Figura 7.16. Listado de carpetas de controladores

Carpeta con información de diferentes controladores necesarios para el funcionamiento de los equipos informáticos. Figura 7.16.

Figura 7.17. Listado de aplicaciones para nuevos equipos

Listado de programas a instalar en un ordenador de nueva adquisición o por el formateo de un equipo estropeado para que éste pueda ser utilizado por un nuevo empleado. Figura 7.17.

Figura 7.18. Hoja de calculo de tóner y cartuchos

Gestión de la compra de tóner y cartuchos para las impresoras y fotocopiadoras. Figura 7.18.

Pág. 61

Page 62: SISTEMA DE GESTIÓN

Figura 7.19. Listado de fáxes

Gestión de los fáxes de la empresa y su situación física. Figura 7.19.

Figura 7.20. Listado con información de servidores

Control de Servidores, información sobre éstos. Figura 7.20.

Figura 7.21. Documento de texto con los correos electrónicos

Listado de cuentas de correos de los empleados y proveedores de la empresa. Figura 7.21.

Pág. 62

Page 63: SISTEMA DE GESTIÓN

Figura 7.22. Plantilla informe de ordenador

Formulario para el control inicial de la situación de un ordenador. Figura 7.22.

Figura 7.23. Listado de tareas

Listados de tareas llevadas acabo de forma diaria. Figura 7.23.

Pág. 63

Page 64: SISTEMA DE GESTIÓN

Tras el estudio de varios documentos y de los aquí expuestos, es necesario una gestión integral, mejorando así la calidad y la eficiencia de trabajo del técnico de sistema, encargado de gestionar y controlar esta información, mejorando así el funcionamiento general de la organización.

7.5.3. Restricciones semánticas

• Un empleado sólo puede pertenecer a una empresa.

• Una incidencia puede pertenecer a un Servicio, un N-Ware, un Empleado , un Servicio o una combinación de ellas.

7.5.4. Consultas más frecuentes

Las consultas frecuentes son aquellos accesos a la base de datos mas utilizados por el técnico, usuario del software. Con un estudio de estas consultas podemos estructurar la base de datos físicamente de forma más eficiente, para así, obtener un tiempo de respuesta optimo.

1. Listado de incidencias por fecha.

2. Mostrar correos electrónicos.

3. Listado de hardware por empleado.

4. Obtener IP.

5. Listado de Servicios.

7.5.4.1. Especificación

• Tipo de operación en cada fichero.

• Atributos sobre los que se aplica condiciones de selección para operaciones de eliminación o de modificación.

• Atributos cuyos valores alterarán una operación de modificación.

Pág. 64

Page 65: SISTEMA DE GESTIÓN

Tabla 7.1. Consultas más frecuentes

Consulta Operación Atributo Selección Atributo Operación1 Consulta inci_id inci_fecha2 Consulta usua_id usua_mail3 Consulta hard_id hard_usua_id4 Consulta hard_id hard_ip5 Consulta serv_ id serv_prov

7.5.5. Diseño Conceptual

7.5.5.1. Descripción de los tipos de entidades

Servicios: Conjunto de Servicios que una organización necesita parar poder funcionar diariamente.

N-Ware: Conjunto de Hardware y Software utilizados en la organización.

Incidencias: Registro de los problemas que van surgiendo.

Empleados: Información de los empleados a registrar en el sistema.

Empresas: Empresas que el sistema gestiona.

Sedes: Organización dependiente de Empresa.

7.5.5.2. Descripción de los tipos de atributos

SERVICIOS:

serv_id: identificador único de un servicio.

serv_tematica: temática de un determinado servicio.

serv_contrato: ruta del contrato de un determinado servicio.

Pág. 65

Page 66: SISTEMA DE GESTIÓN

serv_documento: ruta de un documento de un servicio.

serv_descripcion: descripción de un servicio.

serv_comentario: comentarios de un servicio.

serv_nombre: nombre de un determinado servicio.

serv_coste: coste de un servicio.

serv_fecha: fecha de inicio de un contrato de un servicio.

serv_periodo: duración en meses de un contrato de un servicio

serv_ncontable: número contable.

serv_estaborrado: valor de control booleano para no eliminar datos, en cuyo caso, peligraría la integridad del sistema.

N-WARE:

soft_id: identificador único de un software.

soft_nombre: nombre de un software.

soft_fabricante: fabricante de un software.

soft_web: página web de un software.

soft_doc: ruta de un documento de un software.

soft_version: versión de un software.

soft_so: versión de un sistema operativo.

soft_archivo: ruta de un archivo de un software.

soft_comentarios: comentarios de un software.

soft_estaborrado: valor de control booleano para no eliminar datos, en cuyo caso, peligraría la integridad del sistema.

soft_descripcion: descripción de un software.

soft_nserie: número de serie de un software

hard_id: identificador único de un hardware.

Pág. 66

Page 67: SISTEMA DE GESTIÓN

hard_usua_id: identificador único de un empleado.

hard_nombre: nombre del hardware.

hard_modelo: modelo del hardware.

hard_fabricante: fabricante del hardware.

hard_nserie: número de serie del hardware.

hard_codbarra: código de barras del hardware.

hard_almacenado: lugar de almacenamiento del hardware

hard_comentario: comentario del hardware

hard_empresa_id: identificador único de empresa.

hard_estado: estado en que se encuentra un hardware.

hard_dpto: departamento en el que esta situado el hardware.

hard_fechacompra: fecha de compra del hardware.

hard_doc: ruta de un documento de un hardware.

hard_web: página web de un hardware.

hard_estaborrado: valor de control booleano para no eliminar datos, en cuyo caso, peligraría la integridad del sistema.

hard_usuario: nombre de usuario para acceder a un hardware.

hard_pass: contraseña para acceder a un hardware.

hard_tlf: número de teléfono de un hardware.

hard_pulgadas: tamaño en pulgadas de un hardware.

hard_microfono: valor booleano que indica si un hardware contiene o no, micrófono.

hard_DVI: valor booleano que indica si un hardware contiene o no, DVI.

hard_HDMI: valor booleano que indica si un hardware contiene o no, HDMI.

hard_altavoz: valor booleano que indica si un hardware contiene o no, altavoz.

Pág. 67

Page 68: SISTEMA DE GESTIÓN

hard_serie: valor booleano que indica si un hardware contiene o no, puerto serie.

hard_paralelo: valor booleano que indica si un hardware contiene o no, puerto paralelo.

hard_USB: valor booleano que indica si un hardware contiene o no, USB.

hard_ethernet: valor booleano que indica si un hardware contiene o no, puerto ethernet.

hard_wifi: valor booleano que indica si un hardware contiene o no, tarjeta wifi.

hard_tipo_impresora: nombre del tipo de impresora.

hard_tipo_elecred: nombre del tipo de electrónica de red.

hard_dominio: nombre del dominio de un hardware.

hard_SO: nombre del sistema operativo del hardware.

hard_SP: número de Service Pack de un hardware.

hard_versionso: versión del sistema operativo de un hardware.

hard_keyso: número de serie de un hardware.

hard_RAM: capacidad de memoria del hardware.

hard_ip: dirección IP del hardware.

hard_MAC: identificador MAC de un hardware.

hard_micro: capacidad del microprocesador de un hardware.

hard_PIN: identificador PIN del hardware.

hard_PUNK: identificador PUNK del hardware.

hard_SIM: identificador SIM del hardware.

hard_tipo_PC: nombre del tipo de PC del hardware.

hard_PS2: valor booleano que indica si un hardware contiene o no, puerto PS/2.

hard_ip2: dirección IP del hardware.

hard_color: valor booleano que indica si un hardware contiene o no, color.

hard_GB: capacidad en GB de un hardware.

Pág. 68

Page 69: SISTEMA DE GESTIÓN

hard_tipo_cartucho: nombre del tipo de cartucho de un hardware.

INCIDENCIAS:

inci_id: identificador único de una incidencia.

inci_serv_id: identificador único de un servicio.

inci_usua_id: identificador único de un empleado.

inci_hard_id: identificador único de software.

inci_soft_id: identificador único de hardware.

inci_estado: nombre del estado en que se encuentra una incidencia.

inci_fecha: día de creación de la incidencia.

inci_hora: hora de creación de la incidencia.

inci_titulo: titulo de la incidencia.

inci_descripcion: descripción de la incidencia.

inci_tipo: nombre del tipo de incidencia.

inci_origen: origen de la inciencia.

inci_enlazar: identificador de otra incidencia con la que esta relacionada.

inci_estaborrado: valor de control booleano para no eliminar datos, en cuyo caso, peligraría la integridad del sistema.

inci_numincidencia: número de incidencia externa.

inci_solucion: descripción de la solución dada a la inciencia.

inci_doc1: ruta de un documento de un servicio.

inci_doc2: ruta de un documento de un servicio.

EMPLEADOS:

usua_id: identificador único de un empleado.

usua_nombre: nombre del empleado.

Pág. 69

Page 70: SISTEMA DE GESTIÓN

usua_apellidos: apellidos del empleado.

usua_tlf: número de teléfono del empleado.

usua_tlfinterno: número de teléfono interno del empleado.

usua_movil: número de teléfono móvil del empleado.

usua_cargo: cargo del empleado.

usua_dpto: nombre del departamento del empleado.

usua_estaborrado: valor de control booleano para no eliminar datos, en cuyo caso, peligraría la integridad del sistema.

usua_foto: ruta de una foto del empleado.

EMPRESAS:

empr_id: identificador único de una empresa.

empr_nombre: nombre de la empresa.

empr_tlf1: número de teléfono de la empresa.

empr_tlf2: número de teléfono de la empresa.

empr_web: página web de la empresa.

empr_email: correo electrónico de la empresa.

empr_direccion: dirección física de la empresa.

empr_CP: código postal de la empresa.

empr_ciudad: ciudad de la empresa.

empr_provincia: provincia de la empresa.

empr_logo: ruta del logotipo de la empresa.

empr_fax: número de fax de la empresa.

empr_estaborrado: valor de control booleano para no eliminar datos, en cuyo caso, peligraría la integridad del sistema.

empr_CIF: Número de CIF de la empresa.

Pág. 70

Page 71: SISTEMA DE GESTIÓN

SEDES:

sede_id: identificador único de una sede.

sede_empr_id: identificador único de empresa.

sede_nombre: nombre de la sede.

sede_tlf1: número de teléfono de la sede.

sede_tlf2: número de teléfono de la sede.

sede_web: página web de la sede.

sede_email: correo electrónico de la sede.

sede_direccion: dirección física de la sede.

sede_CP: código postal de la sede.

sede_ciudad: ciudad de la sede.

sede_provincia: provincia de la sede.

sede_logo: ruta del logotipo de la sede.

sede_fax: número de fax de la sede.

sede_estaborrado: valor de control booleano para no eliminar datos, en cuyo caso, peligraría la integridad del sistema.

sede_CIF: Número de CIF de la sede.

Pág. 71

Page 72: SISTEMA DE GESTIÓN

De entre las claves candidatas, que he supuesto convenientes, he seleccionado la clave primaria de cada entidad:

Tabla 7.2. Atributos y Claves primarias

Clave PrimariaSERVICIOS serv_idN-WARE soft_id, hard_idINCIDENCIAS inci_idEMPLEADOS usua_idEMPRESAS empr_idSEDES sede_id

7.5.6. Diseño Lógico

7.5.6.1. Modelo Relacional

Figura 7.24. Modelo Relacional Soporte Técnico

Quedando la base de datos de la siguiente forma, ya normalizadas:

• EMPRESAS (empr_id, empr_nombre, empr_tlf1, empr_tlf2, empr_web, empr_email, empr_direccion, empr_CP, empr_ciudad,empr_provincia, empr_logo, empr_fax, empr_estaborrado, empr_CIF)

Pág. 72

Page 73: SISTEMA DE GESTIÓN

• SEDES (sede_id, sede_empr_id, sede_nombre, sede_tlf1, sede_tlf2, sede_web, sede_email, sede_direccion, sede_CP, sede_ciudad,sede_provincia, sede_logo, sede_fax, sede_estaborrado, sede_CIF)

• EMPLEADOS (usua_id, usua_nombre, usua_apellidos, usua_tlf, usua_tlfinterno, usua_movil, usua_cargo, usua_dpto, usua_estaborrado, usua_foto, usua_email)

• SERVICIOS (serv_id, serv_tematica, serv_contrato, serv_documento, serv_descripcion, serv_comentario, serv_nombre, serv_coste, serv_fecha, serv_periodo, serv_ncontable, serv_estaborrado)

• N-WARE (soft_id, soft_nombre, soft_fabricante, soft_web, soft_doc, soft_version, soft_so, soft_archivo, soft_comentarios, soft_estaborrado, soft_descripcion, soft_nserie, hard_id, hard_usua_id, hard_nombre, hard_modelo, hard_fabricante, hard_nserie, hard_codbarra, hard_almacenado, hard_comentario, hard_empresa_id, hard_estado, hard_dpto, hard_fechacompra, hard_doc, hard_web, hard_estaborrado, hard_usuario, hard_pass, hard_tlf, hard_pulgadas, hard_microfono, hard_DVI, hard_HDMI, hard_altavoz, hard_serie, hard_paralelo, hard_USB, hard_ethernet, hard_wifi, hard_tipo_impresora, hard_tipo_elecred, hard_dominio, hard_SO, hard_SP, hard_versionso, hard_keyso, hard_RAM, hard_ip, hard_MAC, hard_micro, hard_PIN, hard_PUNK, hard_SIM, hard_tipo_PC, hard_PS2, hard_ip2, hard_color, hard_GB, hard_tipo_cartucho)

• INICIDENCIAS (inci_id, inci_serv_id, inci_usua_id, inci_hard_id, inci_soft_id, inci_estado, inci_fecha, inci_hora, inci_titulo, inci_descripcion, inci_tipo, inci_origen, inci_enlazar, inci_estaborrado, inci_numincidencia, inci_solucion, inci_doc1, inci_doc2)

7.5.7. Diseño Físico

7.5.7.1. Índices

Los índices están ordenados y son algo similar al índice de palabras de un libro en donde cada palabra viene acompañada de una lista de números de página en donde aparece la palabra. Para hacer una búsqueda se puede recurrir al índice o bien hacer una búsqueda lineal a lo largo de todo el libro.

Un índice es un fichero ordenado cuyos registros tienen dos campos: el campo sobre el que se define el índice denominado campo de indexación (un campo de los registros del fichero de datos) y una dirección de bloque en disco. Los valores del índice están ordenados, de modo que se puede utilizar la búsqueda binaria. Hay varios tipos de índices: índices primarios, índices de agrupamiento e índices secundarios.

Índices primarios

Pág. 73

Page 74: SISTEMA DE GESTIÓN

Si un fichero está ordenado por un campo clave, el índice que se define sobre este campo es un índice primario. Sobre un fichero ordenado por clave sólo puede definirse un índice primario.

Un índice primario es un fichero ordenado cuyos registros son de longitud fija y tienen dos campos: el campo de ordenación del fichero de datos (hay un valor único de este campo para cada registro) y un puntero a un bloque del disco (una dirección de bloque).

El campo de ordenación se suele denominar clave. Hay una entrada (registro) en el índice por cada bloque del fichero de datos. Cada entrada tiene el valor de la clave del último registro del bloque y un puntero a dicho bloque.

Los índices primarios utilizados en la base de datos del software Soporte Técnico, son los siguientes:

Nota: Llegados a este punto N-Ware lo divido en dos tablas, Software y Hardware, para clarificar el diseño de las tablas, considerando así la implementación más adecuada.

Tabla 7.3. Índices primarios

Tabla Clave PrimariaSERVICIO serv_idSOFTWARE soft_idHARDWARE hard_idINCIDENCIAS inci_idEMPLEADOS usua_idEMPRESAS empr_idSEDES sede_id

También existe la tabla configuración, donde almaceno, entre otros datos de configuración, los datos del administrador para su correcto acceso al programa.

7.5.8. Cláusulas de Base de Datos

Formato estándar para crear tablas:

CREATE TABLE [esquema.]nom_tabla [restriccion_tabla](nom_columna tipo_dato [default expresion] [restricción_columna |restriccion_tabla] [,nom_columna …])

Pág. 74

Page 75: SISTEMA DE GESTIÓN

[[pctree entero | pctused entero | initrans entero |maxtrans entero | tablespace nom_tablespace |storage cláusula] |cluster nom_agrupaineto (nom_columna [,nom_columna])] |enable cláusula | disable clausula | … |[AS subconsulta]esquema: es el nombre del esquema donde se va a crear la tabla. Si no se especifica nada, la tabla se creará en nuestro esquema, por defecto.

nom_tabla: es el nombre que le vamos a dar a la tabla y será único dentro del esquema donde se va a crear.

nom_columna: Es el nombre de cada columna, será único dentro de la misma tabla y sigue la mismas reglas que los nombres de los objetos.

tipo_dato: es el tipo de dato que va a soportar la columna en cuestión

restriccion_columna y restricción_tabla: son las restricciones de columna y de tabla impuestas.

pctfree: especifica el porcentaje de espacio libre en cada uno de los bloques de datos de la tabla que se utilizan para las modificaciones de los registros.

pctused: indica el porcentaje mínimo de espacio para cada bloque de datos de la tabla

initrans: especifica el número inicial de transacciones de entrada dentro de cada bloque de datos de la tabla.

maxtrans: especifica el número máximo de transacciones concurrentes que pueden modificar un bloque de datos de la tabla.

tablespace: indica en qué espacio lógico queremos que se almacene nuestro objeto o bien, no se especifica nada y se creará en el tablespace por defecto que tengamos asignado.

storage: especifica las características de almacenamiento de la table.

cluster: nombre del agrupamiento si la tabla forma parte de uno.

enable: habilita una restricción de integridad.

Disable: deshabilita una restricción de integridad.

As subconsulta: Inserta los registros procedentes de la tabla resultante de la consulta.

Pág. 75

Page 76: SISTEMA DE GESTIÓN

Ejemplo de tablas creada en Soporte Técnico:

CREATE TABLE "servicios" ("serv_id" INTEGER PRIMARY KEY NOT NULL ,"serv_prov_id" INTEGER,"serv_tematica" VARCHAR,"serv_contrato" VARCHAR,"serv_documento" VARCHAR,"serv_descripcion" VARCHAR,"serv_comentario" VARCHAR,"serv_nombre" VARCHAR,"serv_coste" DOUBLE,"serv_fecha" DATETIME,"serv_periodo" INTEGER,"serv_ncontable" VARCHAR,"serv_alerta" BOOL DEFAULT (0) ,"serv_estaborrado" BOOL DEFAULT (0) )

CREATE TABLE "software" ("soft_id" INTEGER PRIMARY KEY NOT NULL ,"soft_prov_id" INTEGER,"soft_nombre" VARCHAR,"soft_fabricante" VARCHAR,"soft_web" VARCHAR,"soft_doc" VARCHAR,"soft_version" VARCHAR,"soft_so" VARCHAR,"soft_archivo" VARCHAR,"soft_comentarios" TEXT,"soft_estaborrado" BOOL DEFAULT (0) ,"soft_descripcion" TEXT,"soft_cat_id" INTEGER,"soft_hard_id" INTEGER, "soft_nserie" VARCHAR)Software

CREATE TABLE "incidencias" ("inci_id" INTEGER PRIMARY KEY NOT NULL ,"inci_serv_id" INTEGER,"inci_usua_id" INTEGER,"inci_hard_id" INTEGER,"inci_soft_id" INTEGER,"inci_estado" VARCHAR,"inci_fecha" DATETIME DEFAULT (CURRENT_DATE) ,"inci_hora" DATETIME DEFAULT (CURRENT_TIME) ,"inci_titulo" VARCHAR,"inci_descripcion" TEXT,"inci_tipo" VARCHAR,"inci_origen" VARCHAR,"inci_enlazar" INTEGER,"inci_estaborrado" BOOL DEFAULT (0) ,"inci_numincidencia" VARCHAR,"inci_solucion" TEXT,"inci_doc1" VARCHAR,"inci_doc2" VARCHAR)

Pág. 76

Page 77: SISTEMA DE GESTIÓN

Capítulo 8

Implementación

8.1. Codificación

En este apartado comentaré los aspectos más relevantes acerca de la implementación en el lenguaje de programación C++, utilizado para realizar el software Soporte Técnico.

El entorno visual de trabajo que he usado es Qt [7][8] para desarrollar interfaces gráficas de usuario de forma sencilla, ya que al ser un proyecto de código abierto, está muy documentado y con muchos ejemplos visuales desarrollados por la comunidad Qt [9]

Al ser el código muy extenso comentaré los aspectos de especial relevancia.

8.1.1. Guía de Estilo

8.1.1.1. Introducción

En este apartado describiré las reglas de escritura del código para que sea más legible y para que los futuros desarrolladores puedan usarla.

8.1.1.2. Estructuras de control

• Estructura de control IF

if (Condición){(Bloque de sentencias);

Pág. 77

Page 78: SISTEMA DE GESTIÓN

}else{( Bloque de sentencias);}

• Estructura de control WHILE

while (Conición){(Bloque de sentencias);

}• Estructura de control FOR

for ( Condición de inicio ; expresión ; acción después de cada iteración ){

(Bloque de sentencias);}

8.1.1.3. Llamadas a funciones

// Actualizar Lista de Tareasactualizar_lista_tareas();

// Muestra listado de hardware por pantalla mostrar_listado_hardware();

8.1.1.4. Declaración de Funciones

void cargar_lista_incidencias_servicio(QString id); void mostrar_servicio(QString id); bool control_enlazar(); void guardar_doc(QString nom);

8.1.1.5. Ejemplos de Implementación

Para comenzar la implementación lo primero que debemos hacer es revisar el fichero de configuración que se crea en Qt, por defecto, con extensión .pro y añadir las variables necesarias.

• Fichero de configuración

#-------------------------------------------------## Project created by QtCreator 2011-11-22T20:18:32##-------------------------------------------------

QT += core gui sql opengl network

Pág. 78

Page 79: SISTEMA DE GESTIÓN

TRANSLATIONS = trans_en.ts \ trans_es.ts

TARGET = SoporteTecnicoTEMPLATE = app

win32 { DESTDIR = debug/ UI_DIR = build/ OBJECTS_DIR = obj/ MOC_DIR = tmp/}

SOURCES += main.cpp\ principal.cpp \ form_proveedores.cpp \ funciones.cpp \ form_empleados.cpp \ form_empresas.cpp \ form_sedes.cpp \ form_acercade.cpp \ form_servicios.cpp \ form_hardware.cpp \ form_software.cpp \ form_licencia.cpp \ form_incidencias.cpp \ form_mails.cpp \ form_login.cpp \ form_configuracion.cpp \ nightcharts.cpp \ form_estadisticas.cpp \ simplecrypt.cpp \ form_recursos.cpp

HEADERS += principal.h \ form_proveedores.h \ funciones.h \ form_empleados.h \ form_empresas.h \ form_sedes.h \ form_acercade.h \ form_servicios.h \ form_hardware.h \ form_software.h \ form_licencia.h \ form_incidencias.h \ form_mails.h \ form_login.h \ form_configuracion.h \ nightcharts.h \ form_estadisticas.h \ simplecrypt.h \ form_recursos.h

FORMS += principal.ui \ form_proveedores.ui \ form_empleados.ui \

Pág. 79

Page 80: SISTEMA DE GESTIÓN

form_empresas.ui \ form_sedes.ui \ form_acercade.ui \ form_servicios.ui \ form_hardware.ui \ form_software.ui \ form_licencia.ui \ form_incidencias.ui \ form_mails.ui \ form_login.ui \ form_configuracion.ui \ form_estadisticas.ui \ form_recursos.ui

RESOURCES += \ Resources.qrc

Las partes más importantes de este fichero son las siguientes:

QT: en esta variable almacenaré las librerías utilizadas, en mi caso voy a hacer uso del core de Qt, gui para el manejo de GUI’s, sql para realizar conexiones y manejo de la Base de Datos.

QT += core gui sql opengl network

DESTDIR: directorio en el que el archivo ejecutable y binario se colocará.

DESTDIR = debug/

UI_DIR, OBJECTS_DIR, MOC_DIR: variables utilizadas para indicar a la aplicación donde se almacenan los objetos de la compilación y los ficheros obtenidos de los formularios.

UI_DIR = build/ OBJECTS_DIR = obj/ MOC_DIR = tmp/

SOURCES: variable en la que se colocan los códigos fuentes de la aplicación.

SOURCES += main.cpp\ principal.cpp \

HEADERS: variable en la que se declaran las clases.

HEADERS += principal.h \ form_proveedores.h \

FORMS: archivos de la interfaz de usuario.

FORMS += principal.ui \ form_proveedores.ui \

RESOURCES: recursos, imagénes e iconos, que incluyen en el ejecutable final

Pág. 80

Page 81: SISTEMA DE GESTIÓN

RESOURCES += \ Resources.qrc

• Función validar correo electrónico

//-----------------------------------------------------------------------------// Validar E-MAIL//-----------------------------------------------------------------------------bool valida_correo(QString email){ int atpos=email.indexOf("@"); int dotpos=email.lastIndexOf("."); if (atpos<1 || dotpos<atpos+2 || dotpos+2>=email.length()) { return false; } return true;}

8.1.1.6. Implementación de Formularios

Cuando se crea un formulario con la herramienta Qt Designer se genera una cabecera con información básica para usar esa clase generada, posteriormente hay que completar esa clase para que pueda ser utilizada, mediante slots o funciones que se ejecutan cuando una determinada señal es enviada por el formulario.

Un ejemplo de cabecera es el expuesto a continuación:

#ifndef FORM_INCIDENCIAS_H#define FORM_INCIDENCIAS_H

#include <QDialog>#include <QModelIndex>#include <QTableWidgetItem>//#include "principal.h"

namespace Ui { class form_incidencias;}

class form_incidencias : public QDialog//, public Principal{ Q_OBJECT

public: explicit form_incidencias(QWidget *parent = 0); ~form_incidencias();

void cargar_lista_incidencias(); void info_actualizada(); void alerta_seleccion(); void limpiar_campos_incidencia();

Pág. 81

Page 82: SISTEMA DE GESTIÓN

void mostrar_inci(QString id);

void cargar_comboxs(); void cargar_usuarios_combobox(); void cargar_servicios_combobox(); void cargar_hardware_combobox(); void cargar_software_combobox(); void cargar_enlazado_combobox();

bool control_enlazar(); void guardar_doc(QString nom);

void cargar_lista_incidencias_servicio(QString id); void mostrar_servicio(QString id); void mostrar_total_serv(QString id);

void cargar_lista_incidencias_software(QString id); void mostrar_software(QString id); void mostrar_total_soft(QString id);

void cargar_lista_incidencias_hardware(QString id); void mostrar_hardware(QString id); void mostrar_total_hard(QString id);

void cargar_lista_incidencias_usuario(QString id); void mostrar_usuario(QString id); void mostrar_total_usua(QString id);

void obtener_tarea(QString id); void limpiar_campos_info();

private: Ui::form_incidencias *ui;protected: void showEvent (QShowEvent *event); //virtual void paintEvent(QPaintEvent *event);

private slots: void on_listWidget_clicked(const QModelIndex &index); void on_btn_Nuevo_clicked(); void on_Inci_tablelistado_clicked(const QModelIndex &index); void on_btn_Borrar_clicked(); void on_btn_Guardar_clicked(); void on_tool_doc1_clicked(); void on_tool_doc2_clicked(); void on_serv_comboBox_inci_currentIndexChanged(const QString &arg1); void on_serv_comboBox_soft_currentIndexChanged(const QString &arg1); void on_hard_comboBox_inci_currentIndexChanged(const QString &arg1); void on_usua_comboBox_inci_currentIndexChanged(const QString &arg1);

void on_Inci_tableView_usua_doubleClicked(const QModelIndex &index); void on_Inci_tableView_hard_doubleClicked(const QModelIndex &index); void on_Inci_tableView_ser_doubleClicked(const QModelIndex &index); void on_Inci_tableview_soft_doubleClicked(const QModelIndex &index); void on_btn_doc1_clicked(); void on_btn_doc2_clicked();

Pág. 82

Page 83: SISTEMA DE GESTIÓN

void on_btn_borrar1_clicked(); void on_btn_borrar2_clicked();};

#endif // FORM_INCIDENCIAS_H

La pantalla de Qt Designer en la Figura 8.1, podemos observar la gestión del Incidencias, podemos arrastras los elementos visuales deseados y asignarles las propiedades requeridas.

Figura 8.1. Qt Designer Gestión de Incidencias

En el archivo .cpp generado automáticamente, se crean el constructor y el destructor:

#include "form_incidencias.h"#include "ui_form_incidencias.h"form_incidencias::form_incidencias(QWidget *parent) : Qdialog(parent), ui(new Ui::form_incidencias){ ui->setupUi(this);}

form_incidencias::~form_incidencias(){ delete ui;}

Posteriormente, el desarrollador va añadiendo los métodos y librerías necesarias, en este ejemplo muestro algunos de los necesarios para Gestión de Incidencias:

#include "funciones.h"#include <QSqlTableModel>#include <QSqlRelationalTableModel>#include <QSqlRelationalDelegate>

//--------------------------------------------------// AL CARGAR FORMULARIO//--------------------------------------------------void form_incidencias::showEvent(QShowEvent *event){ ui->listWidget->setCurrentRow(0); cargar_lista_incidencias();

Pág. 83

Page 84: SISTEMA DE GESTIÓN

cargar_comboxs();}

//------------------------------------------------// ALERTA SELECCIONAR INCIDENCIA//------------------------------------------------void form_incidencias::alerta_seleccion(){ QMessageBox::warning(this,tr("Adventencia"), tr("Debe seleccionar una Incidencia para continuar"), QMessageBox::Ok);}

8.1.1.7. Bibliotecas de código abierto utilizados

Dado que Qt es una herramienta utilizada por multitud de desarrolladores existen recursos de código abierto, bien documentados, con licencia abierta, para ser utilizado por el resto de la comunidad de desarrolladores.

En Soporte Técnico he hecho uso de la librería “nightcharts.h” [10], clase utilizada para el dibujo gráficos de áreas y barras verticales. Estos gráficos los he utilizado para la representación visual del número de estadísticas realizadas en una fecha dada (Figura 8.3), así como, para el resumen anual de las estadísticas totales (Figura 8.2).

Figura 8.2. Estadística anual Figura 8.3. Estadísticas por mes

También he hecho uso de la librería “simplecrypt.h” [11] para poder encriptar y desencriptar las contraseñas almacenadas en la base de datos. SimpleCrypt sólo admite el cifrado simétrico, es decir, usar una misma clave para cifrar y descifrar.

Tabla 8.1. Ejemplo contraseña encriptada

Contraseña Valor en la Base de Datos123456 AwIKHNdK3DslHAk=

Pág. 84

Page 85: SISTEMA DE GESTIÓN

8.1.1.8. Conexión con la Base de Datos

La conexión con la base de datos se hace de forma global y únicamente debe realizarse una vez, normalmente al inicio de la aplicación. Cuando esté conectada podremos consultarla durante todo el periodo de ejecución la aplicación.

El siguiente código es el que utilizo para establecer conexión:

//--------------------------------------------------------------// CONEXION BASE DE DATOS//--------------------------------------------------------------bool conexion_base_datos(){

QString dir_app = QApplication::applicationDirPath(); ERROR (dir_app);

QSqlDatabase basedatos = QSqlDatabase::addDatabase("QSQLITE"); basedatos.setDatabaseName(QDir::toNativeSeparators(dir_app+"/ST_BBDD.sqlite"));

if (!basedatos.isValid()) { QMessageBox msgBox1; msgBox1.setWindowTitle("Error al Abrir la Base de Datos"); msgBox1.setInformativeText(QString( "MySql Server (Driver) ")); msgBox1.setText(QString("No se puede cargar el servidor de datos MySQL Server: %1").arg(basedatos.lastError().databaseText())); msgBox1.setDetailedText(basedatos.lastError().databaseText()); return false; } if (!basedatos.open()) { QMessageBox msgBox; msgBox.setWindowTitle("Error al Abrir la Base de Datos"); msgBox.setInformativeText(QString("MySql Server - Error %1") .arg(QString::number(basedatos.lastError().number()))); msgBox.setText(QString("No se pudo cargar la base de datos: %1") .arg(basedatos.lastError().databaseText())); msgBox.exec();

return false;

} return true;}

Pág. 85

Page 86: SISTEMA DE GESTIÓN

8.2. Recursos Utilizados

8.2.1. Iconos

Figura 8.4. Logotipo de Open Icon Library

Open Icon library [12] contiene más de 10.000 iconos únicos libres para su uso, sitio web o cualquier otro proyecto. La biblioteca es una fuente centralizada de iconos para cubrir cualquier necesidad, el objetivo es cubrir todas las aplicaciones comunes, sistemas operativos, tipos mime, dispositivos y banderas de los países.

8.2.2. Fuentes

Figura 8.5. Logotipo de Open Font Library

La misión de Open Font Library [13] es promover las libertades y relaciones en el uso de tipografías. Todas las fuentes que aparecen en este sitio poseen libertad uso, estudio, compartir y modificación.

8.2.3. Imágenes

Figura 8.6. Logotipo de Open Clip Art Library

El Open Clip Art Library (OCAL) [14] es una gran comunidad de colaboración que crea, comparte y reedita imágenes prediseñadas. Todas las imágenes prediseñadas están liberadas, son de dominio público y pueden ser utilizadas en cualquier proyecto de forma gratuita y sin restricciones.

Pág. 86

Page 87: SISTEMA DE GESTIÓN

8.2.4. Utilidades

Figura 8.7. Logotipo de UltraVNC

UltraVNC [2] es un software potente, fácil de usar y gratuito puede mostrar la pantalla de otra ordenador (a través de Internet o red) en la propia pantalla. El programa permite usar el ratón y teclado para controlar el otro ordenador de forma remota, esto significa, que es posible trabajar en un equipo remoto como si estuviera sentado frente a él, desde una ubicación distinta.

Figura 8.8. Logotipo de Console

Console [15] es una aplicación de consola de para sistemas operativos Windows®, ésta mejora la ventana de consola que viene instalada ya en el sistema.

8.3. Estadísticas Líneas de Código Fuente

8.3.1. Introducción

Mediante las estadísticas e informes realizado de forma automática obtenemos información sobre el código desarrollado sobre mi proyecto, mediante estos informes es posible crearse una idea sobre el tiempo y el trabajo empleado en cualquier proyecto software.

En programación el número de línea de código (LOC), es un punto útil a la hora hacerse una idea de la magnitud o complejidad de este.

Para la realización de este informe he utilizado la herramienta locmetrics [16], aplicación que facilita la realización de dichos informes.

8.3.2. InformeEn la Figura 8.8 podemos ver de forma gráfica la cantidad de código fuente que tiene el proyecto, dividida por carpetas. Mediante la Tabla 8.2, podemos ver los valores numéricos de las líneas de código así como las diferentes líneas de código que podemos encontrar en un archivo de código fuente. La la Tabla 8.3 muestra el mismo resumen anterior, divido en este caso, en carpetas.

Pág. 87

Page 88: SISTEMA DE GESTIÓN

Figura 8.9. Resumen gráfico

Tabla 8.2. Tabla resumen de líneas de códigoTipo Total DescripciónArchivos código fuente 124 Archivos código fuenteCarpetas 33 CarpetasLOC 168178 Líneas de CódigoBLOC 6981 Líneas de Código en BlancoSLOC-P 157726 Líneas físicas de código ejecutables SLOC-L 28586 Líneas lógicas de código ejecutables C&SLOC 800 Código en líneas de código comentadasCLOC 3471 Líneas de código de comentarioCWORD 11419 Texto comentadoHCLOC 641 Líneas de comentarios de cabeceraHCWORD 3717 Palabras de comentarios de cabecera

Tabla 8.3. Tabla resumen de carpetas

Carpeta Files LOC SLOC Physical

SLOC Logical BLOC C&SLOC CLOC CWORD HCLOC HCWORD

Total 124 168178 157726 28586 6981 800 3471 11419 641 3717\SoporteTecnico 124 168178 157726 28586 6981 800 3471 11419 641 3717\SoporteTecnico\build 49 77470 72552 21543 4325 520 593 3030 392 2051\SoporteTecnico\build \build 16 13460 11277 10461 2055 139 128 827 128 672

\SoporteTecnico\build \debug 1 48565 48363 14 23 0 179 362 8 35

\SoporteTecnico\build \tmp 16 1790 1442 545 190 176 158 948 128 672

\SoporteTecnico\debug 2 52153 51944 14 24 2 185 389 8 35\SoporteTecnico\tmp 16 1793 1445 546 190 176 158 948 128 672

Pág. 88

Page 89: SISTEMA DE GESTIÓN

Capítulo 9

Pruebas y Usabilidad

9.1. Pruebas

En este apartado describiré las pruebas realizadas al software para verificar los el funcionamiento deseado del programa.

Antes de realizar un plan de pruebas he verificado que se cumplen los requisitos iniciales del proyecto, una vez cumplidos estos objetivos he pasado a diseñar un plan de pruebas para aplicárselo al software.

Los usuarios sobre los que se han realizado las diferentes pruebas son los siguientes:

Usuario 1: Mujer, 26 años, estudios universitarios en informática, conocimientos en ofimática altos, sin experiencia en gestión de información.

Usuario 2: Hombre, 42 años, estudios universitarios en ciencias económicas, conocimientos en ofimática altos, con experiencia en gestión de información.

Usuario 3: Hombre, 68 años, estudios universitarios en magisterio, conocimientos en ofimática medios, con alta experiencia en gestión de información.

Analicé el uso de la aplicación por parte de los usuarios en las siguientes circunstancias:

• Ordenador portátil con sistemas operativo Windows®.

• Se les facilita la aplicación ya iniciada, en la pantalla principal.

• Se les informó el objetivo de la aplicación.

Pág. 89

Page 90: SISTEMA DE GESTIÓN

9.1.1. Test usabilidad

Los usuarios comprobaron la usabilidad y entendibilidad de la aplicación, comenzando por la pantalla principal, pasando por las ventanas de las diferentes gestiones y finalizando en la ventana de información del software.

En estas pruebas se observó al usuario usando la aplicación, así como se les apoyó en la resolución de dudas, reflejadas éstas en el manual de usuario, en forma de explicaciones para el correcto uso de la aplicación de futuros usuarios.

9.1.2. Pruebas caja negra

Estas pruebas las realicé como programador durante la implementación, dado que no se podían probar todas las posibles entradas de datos de todos los módulos, intenté llevar a cabo casos reales donde comprobar el comportamiento de algunos importantes para el funcionamiento general de la aplicación.

Las pruebas que he realizado son las siguientes:

• Introducir valores en la base de datos.

Correcto almacenamiento de todos los valores en las diferentes tablas de la Base de Datos.

• Copiar y Abrir ficheros.

Verificación el correcto almacenamiento en las carpetas definidas previamente y su correcta visualización en el momento deseado.

• Mostrar datos e imágenes.

Mostrado de los datos de forma correcta, así como las imágenes y gráficas.

• Verificar valores repetidos.

Comprobación de la no repetición de las claves primarias de cada tabla.

• Correcta visualización de escritorio remoto.

Verificación de la forma esperada del comando de apertura de escritorio remoto.

Pág. 90

Page 91: SISTEMA DE GESTIÓN

9.1.3. Estudio de resultados

En el test de usabilidad, las preguntas sobre algunos botones de la aplicación, denotaron que, aunque entendían el resultado si ejecutaban el botón, necesitaban un apoyo para asegurarse y evitar dudas, por lo que todos los botones de acción contiene un pequeño texto explicativo, denominado ToolTip, que aparece esperando unos segundos sobre el botón en cuestión.

Figura 9.1. Ejemplo ToolTip

9.2. Usabilidad

Según la Organización Internacional para la Estandarización (ISO), en una de sus definiciones de usabilidad, ISO/IEC 9126. [17]

"La usabilidad se refiere a la capacidad de un software de ser comprendido, aprendido, usado y ser atractivo para el usuario, en condiciones específicas de uso"

A partir de la conceptualización llevada a cabo por la Organización internacional sobre Estandarización (ISO), se infieren los principios básicos en los que se basa la usabilidad:

• Facilidad de Aprendizaje: facilidad con la que nuevos usuarios desarrollan una interacción efectiva con el sistema o producto. Está relacionada con la predicibilidad, sintetización, familiaridad, la generalización de los conocimientos previos y la consistencia.

• Facilidad de Uso: facilidad con la que el usuario hace uso de la herramienta, con menos pasos o más naturales a su formación específica. Tiene que ver con la eficacia y eficiencia de la herramienta.

• Flexibilidad: relativa a la variedad de posibilidades con las que el usuario y el sistema pueden intercambiar información. También abarca la posibilidad de diálogo, la multiplicidad de vías para realizar la tarea, similitud con tareas anteriores y la optimización entre el usuario y el sistema.

• Robustez: es el nivel de apoyo al usuario que facilita el cumplimiento de sus objetivos. Está relacionada con la capacidad de observación del usuario, de recuperación de información y de ajuste de la tarea al usuario.

Pág. 91

Page 92: SISTEMA DE GESTIÓN

9.2.1. Opiniones de Jakob Nielsen

Jakob Nielsen [18], considerado el padre de la Usabilidad, la definió como el atributo de calidad que mide lo fáciles de usar que son las interfaces web, es decir, un sitio web usable es aquél en el que los usuarios pueden interactuar de la forma más fácil, cómoda, segura e inteligentemente posible.

No sólo la tecnología y el aspecto gráfico son factores determinantes para hacer un sitio web llamativo. Es importante que cumpla con las siguientes características:

• Entendible.

• Novedoso.

• Comprensible.

• Inteligente.

• Atractivo.

La finalidad, en este caso de un sitio web, es lograr que el usuario encuentre lo que busca en el menor tiempo posible.

La Usabilidad de un sitio web está determinada por sus contenidos, entre más cercanos estén al usuario, mejor es la navegación por el mismo y más acertada será la experiencia al enfrentarse a la pantalla.

Lógicamente es imposible crear un sitio web ciento por ciento perfecto y en óptimas condiciones, pues no se puede agradar al mismo tiempo a millones de usuarios, sin embargo, los diseñadores y creadores deben tratar de mostrar todos los elementos de una manera clara y concisa, minimizando el número de clics y de scroll.

9.2.2. Elementos visuales

Para facilitar a los usuarios el manejo del software he considerado muy importante que los iconos sean representativos según la acción a realizar.

Los iconos que he utilizado son de licencia abierta del proyecto Open Icon Library [12]

La utilización de imágenes representativas de las acciones que se pueden realizar, además el uso de mensajes cercanas a éstas, aclaran su significado.

Pág. 92

Page 93: SISTEMA DE GESTIÓN

Tabla 9.1. Tabla de iconos

Gestión de Empleados

Gestión de Software

Gestión de Incidencias

Gestión de Cuentas de Correo Electrónico

Gestión de Proveedores

Recursos

Gestión de Servicios

Gestión de Sedes

Gestión de Empresas

Gestión de Hardware

Estadísticas Consola

Pág. 93

Page 94: SISTEMA DE GESTIÓN

Capítulo 10

Requisitos del Sistema

Los requisitos hardware necesarios para poder ejecutar el software correctamente en un equipo son::

• Procesador superior o igual a 1,0 GHz.

• Memoria RAM mayor o igual 512MB.

• Memoria tarjeta gráfica mayor o igual a 64 MB.

Los requisitos software necesarios son:

• Sistema Operativo Windows® 32 bits (XP o posterior).

• Lector de documentos PDF.

• Programa de acceso de control remoto UltraVNC [2].

• Navegador Web.

Pág. 94

Page 95: SISTEMA DE GESTIÓN

Parte III

Epílogo

Pág. 95

Page 96: SISTEMA DE GESTIÓN

Capítulo 11

Manual de Instalación

11.1. Creación del Instalador

Para la creación del instalador de Soporte Técnico he utilizado el programa Inno Setup [19], en la Figura 11.1, podemos ver el proceso de desarrollo.

Figura 11.1. Configurador de Inno Setup

Pág. 96

Page 97: SISTEMA DE GESTIÓN

11.2. Instalación

En el siguiente manual se explicará, de forma detallada como podemos instalar el software Soporte Técnico válido para el sistemas operativos Windows® XP o posterior.

Para instalar Soporte Técnico en primer lugar obtener el instalador en su última versión, disponible en la forja de rediris [31], debemos hacer doble clic en el ejecutable, Soporte Tecnico.exe (Figura 11.2) y seguir las instrucciones que aparecen en pantalla.

Figura 11.2. Icono Instalador

En el siguiente paso, en la Figura 11.3, puede ver una captura para guiarse, le pedirá la ruta donde desea instalar el programa y una breve información de cuanta capacidad necesita en el disco duro para su instalación.

Figura 11.3. Selección de ruta de instalación

Pág. 97

Page 98: SISTEMA DE GESTIÓN

A continuación podrá seleccionar los distintos accesos que desea instalar en su sistema operativo (Figura 11.4).

Figura 11.4. Selección de iconos

Una vez seleccionado el botón Instalar comenzará el proceso de instalación (Figura 11.5).

Figura 11.5. Proceso de instalación

Tras la finalización del proceso de instalación podrá utilizar la aplicación Soporte Técnico.

Pág. 98

Page 99: SISTEMA DE GESTIÓN

11.3. Desinstalación

Para la desinstalar completa de Soporte Técnico seguiremos los siguientes pasos para encontrar el desinstalador.

Botón Inicio / Todos los programas /SoporteTecnico/ Uninstall SoporteTecnico, una vez ejecutado seguiremos los pasos para la completa desinstalación del programa (Figura 11.6).

Figura 11.6. Ventana de desinstalación

Finalizada la desinstalación obtendremos un mensaje, que nos avisa de dicha finalización (Figura 11.7).

Figura 11.7. Finalización de la desinstalación

Pág. 99

Page 100: SISTEMA DE GESTIÓN

Capítulo 12

Manual de Usuario

Una vez completada la instalación, pasamos a probarla. Para ello, localizamos el acceso directo Soporte Técnico (Figura 13.1) en el escritorio o en la ruta: Inicio / Todos los programas / SoporteTecnico / SoporteTecnico.

Figura 12.1. Acceso directo de Soporte Técnico

La primera ventana que obtenemos es el control de acceso (Figura 12.2) del Técnico a al aplicación. Inicialmente se muestra los valores por defecto (admin / admin), una vez accedido al programa se podrán modificar en la opción de menú Preferencias \ Configuración \ Acceso, tras actualizarlos no se mostrarán más estos valores.

Figura 12.2. Control de Acceso

Pág. 100

Page 101: SISTEMA DE GESTIÓN

Tras un acceso correcto a la aplicación obtendremos la ventana principal (Figura 12.3)

Figura 12.3. Ventana principal

A.- Barra de Menú

• Gestión, donde poder acceder a cada unidades de gestión y poder cerrar la aplicación.

• Ventanas, donde poder mostrar u ocultar las subventanas de la ventana principal.

• Preferencias, donde poder cambiar algunos aspectos de la configuración de ultraVNC y del control de acceso inicial.

• Acerca de..., donde poder obtener información sobre el proyecto Soporte Técnico y su Licencia.

B.- Unidades de gestión

Mediante los diferentes botones es posible entrar en las una de las unidades de gestión para gestionarlos.

C.- Subventana Informaicón

En esta ventana es posible tener acceso rápido a:

• Listado de Incidencias producidas en la fecha actual y el día anterior.

• Listado de Empleados.

• Listado de Software.

• Listado de Servicios.

Pág. 101

Page 102: SISTEMA DE GESTIÓN

D.- Subventana Centro

Listado de incidencias relacionadas con la selección realizada en la Subventana Información.

Situado en la parte inferior, podemos obtener un listado de hardware a partir de la sección Empleados de la Subventana Información, así mismo como desde la Subventana Hardware (F), en esa parte de la ventana podemos encontrar dos utilidades de red, UltraVNC, para control remoto, y la posibilidad de hacer ping al dispositivo hardware que posea IP.

E.- Subventana Lista de Tareas

Encontramos varias listas de tareas dividas en pestañas nombradas como: Hoy, Ayer, Pendientes y Todas, pudiendo generar incidencias a partir de ellas.

F.- Subventana Hardware

Listado de hardware, agrupados por categorías.

G.- Barra con información

Al pie de la ventana principal está situado información sobre: número de correos electrónicos, número total de incidencias, número de empleados, hora y fecha actual y acceso a páginas web relacionadas con el tiempo.

Cada unidades unidades de gestión, se compone de las partes mostradas en la Figura 12.4.

Figura 12.4. Ventana ejemplo de unidad de gestión

Pág. 102

Page 103: SISTEMA DE GESTIÓN

A.- Botones de unidad de Gestión

B.- Listado de datos a gestionar.

C.- Información sobre los datos seleccionados.

D.- botones de acciones sobre los datos seleccionados.

Pág. 103

Page 104: SISTEMA DE GESTIÓN

Capítulo 13

Conclusiones

13.1. Cumplimiento de Objetivos

Relación de objetivos iniciales a alcanzar:

• Gestionar incidencias, empleados, servicios de proveedores, cuentas de correo electrónico.

Objetivo cumplido mediante la inserción de formularios de gestión. He logrado controlar todo lo relacionado con incidencias en la Figura 13.1, empleados en la Figura 13.2, servicios de proveedores en la Figura 13.4 y Figura 13.5, y cuentas de correo electrónico en la Figura 13.3.

Figura 13.1. Gestión de Incidencias

Pág. 104

Page 105: SISTEMA DE GESTIÓN

Figura 13.2. Gestión de Empleados

Figura 13.3. Gestión de Cuentas de correo electrónico

Figura 13.4. Gestión de Servicios

Pág. 105

Page 106: SISTEMA DE GESTIÓN

Figura 13.5. Gestión de Proveedores

• Facilitar el inventariado del hardware y software.

Objetivo cumplido mediante la incorporación de formularios de gestión de hardware en la Figura 13.6 y software en la Figura 13.7.

Figura 13.6. Gestión de Hardware

Figura 13.7. Gestión de Software

Pág. 106

Page 107: SISTEMA DE GESTIÓN

• Facilitar el acceso remoto a equipos de una misma red.

Objetivo cumplido mediante la utilización de la aplicación UltraVNC [2], a través de la Figura 13.9. es posible configurar diferentes aspectos de dicha aplicación. El uso mediante su icono en la Figura 13.8, es posible de forma rápida situado en la pantalla principal de Soporte Técnico.

Figura 13.8. Icono de UltraVNC

Figura 13.9. Configuración de UltraVNC

Pág. 107

Page 108: SISTEMA DE GESTIÓN

• Facilitar la información de contacto de empleados y proveedores.

Mediante la incorporación de tarjetas, generadas de forma automática, es posible obtener de forma rápida información sobre los empleados y proveedores, podemos ver dos ejemplos en la Figura 13.10 y Figura 13.11.

Figura 13.10. Tarjetas Empleados

Figura 13.11. Tarjetas Proveedores

Pág. 108

Page 109: SISTEMA DE GESTIÓN

• Mostrado de estadísticas de las incidencias producidas en un periodo de tiempo.

A través de la sección Estadísticas es posible visualizar un resumen de las incidencias producidas en una fecha dada, un mes concreto o de forma anual. (Figura 13.12 y Figura 13.13)

Figura 13.12. Gráfica incidencias de una fecha

Figura 13.13. Gráfica incidencias anuales

Pág. 109

Page 110: SISTEMA DE GESTIÓN

• Acceder a software, guías y manuales de forma rápida.

En la Gestión de Software es posible almacenar información de guías, manuales, estándares o web de destacado interés, mediante el botón Recursos del menú principal es posible acceder a esta información de forma rápida subdivida por categoría. (Figura 13.14)

Figura 13.14. Ventana Recursos

• Gestionar información sobre las empresas o sedes, donde trabajan los empleados.

Mediante la incorporación de gestiones de empresa (Figura 13.15) y sedes (Figura 13.16) he conseguido controlar toda la información referentes a éstos, si bien, esta información es meramente consultiva para el Técnico, no implicando al resto del programa para el correcto funcionamiento del programa.

Figura 13.15. Gestión de Empresas

Pág. 110

Page 111: SISTEMA DE GESTIÓN

Figura 13.16. Gestión de Sedes

14.2. Opinión Personal

El principal problema que he tenido en el desarrollo del software Soporte Técnico ha sido la estimación de tiempo, ya que me ha sido muy difícil estimar el tiempo cuando no he realizado ningún proyecto anterior. Por otro lado, he tenido que aprender y probar herramientas desconocidas para mí.

El análisis ha estado dentro de los tiempos previstos y no me han surgido demasiados problemas.

En la implementación he tenido más problemas porque probé diferentes herramientas de desarrollo de aplicaciones, como wxWidgets [20] o Glade [21], hasta que me decanté por la que me parecía menos compleja de utilizar y más documentada. He utilizado el programa QT, biblioteca multiplataforma para el desarrollo de programas con interfaz de usuario, necesitando para ello, un periodo de aprendizaje ayudándome de manuales, videos, foros y páginas web. [9][22][23][24][25]

Respecto al diseño de la interfaz, he aprendido lo difícil que resulta hacer una interfaz gráfica de usuario, fácil de usar e intuitiva, en mi opinión es algo muy importante para el usuario final, ya que la aplicación más fácil de usar será por la que se decante.

En lo referente a las pruebas, al ser el proyecto de una sola persona me ha sido difícil encontrar fallos y así evaluar todo el funcionamiento de la aplicación, por lo que opte por solicitar ayuda de usuarios externos al proyecto.

En último lugar comentar que estoy muy satisfecho con el resultado obtenido, aunque he encontrado algunas dificultades, estoy orgulloso del trabajo realizado.

Pág. 111

Page 112: SISTEMA DE GESTIÓN

14.3. Mejoras

A continuación detallaré posibles mejoras que no fueron diseñadas como objetivos del proyecto pero que podrían ser útiles en la vida de uso de Soporte Técnico.

• Base de datos externa para utilización de varios operarios que tienen instalado Soporte Técnico.

• Wake on LAN (WOL, a veces WoL) [26] es un estándar de redes de computadoras ehernet que permite encender remotamente computadoras apagadas.

• Chat / videoconferencia. Implantación de un chat que permita conectar a los diferentes técnicos de una misma red para poder tener una comunicación escrita instantánea compartiendo así información, enlaces,.. facilitando así el trabajo en equipo.

• Creación de aplicación para móviles (iOS o Android) para la lectura de código de barras (Figura 13.17) [27] ó código QR (Figura 13.18) [28], donde poder obtener de forma rápida el historial de incidencias de un componente, sin necesidad de tener un ordenador cerca. Esta mejora esta relacionada con la anterior, ya que necesita acceso a la base de datos usado por los técnicos.

Figura 13.17. Ejemplo de código de barras Figura 13.18. Ejemplo de código QR

Pág. 112

Page 113: SISTEMA DE GESTIÓN

Capítulo 14

Software Utilizado

A continuación muestro un listado de aplicaciones y una breve descripción, de todos los programas utilizadas para la realización y desarrollo de mi proyecto, Soporte Técnico.

Qt es una biblioteca multiplataforma, software libre y de código abierto, usada para desarrollar aplicaciones con una interfaz gráfica de usuario así como para el desarrollo de programas sin interfaz gráfica como herramientas para línea de comandos y consolas para servidores.

Es producido por la división de software Qt de Nokia, que entró en vigor después de la adquisición por parte de Nokia de la empresa noruega Trolltech, el productor original de Qt, el 17 de junio de 2008.

Funciona en todas las principales plataformas, y tiene un amplio apoyo. El API de la biblioteca cuenta con métodos para acceder a bases de datos mediante SQL, así como uso de XML, gestión de hilos, soporte de red, una API multiplataforma unificada para la manipulación de archivos y una multitud de otros para el manejo de ficheros, además de estructuras de datos tradicionales.

Distribuida bajo los términos de GNU Lesser General Public License (y otras).

Qt es utilizada en programas y aplicaciones como: Autodesk Maya, Google Earth, KDE, Adobe Photoshop Album, Agencia Espacial Europea, Volvo, Skype, Samsung, Nokia Mobile, Philips, Panasonic, Mathematica,…

http://qt.nokia.com/

Pág. 113

Page 114: SISTEMA DE GESTIÓN

Nmake

Utilidad de mantenimiento de programas de Microsoft (nmake.exe) es una herramienta que genera proyectos tomando como base los comandos contenidos en un archivo de descripción.

Cygwin es una colección de herramientas que permite la utilización de librerías propias de Linux en entornos Windows®, es una DLL (cygwin1.dll), que actúa como una capa API de Linux proporcionando importantes funcionalidades.

ActivePerl es un intérprete del lenguaje PERL para Windows® con el se obtiene la mayoría de funciones del lenguaje, además de funcionalidad propia de las específicas de la API Win32.

LibreOffice es una suite gratuita de productividad personal de código abierto para Windows®, Macintosh y Linux, que ofrece 6 aplicaciones ricas en funcionalidades para todas las necesidades de producción de documentos y procesamiento de datos: Writer, Calc, Impress, Draw, Base y Math.

http://es.libreoffice.org

Pág. 114

Page 115: SISTEMA DE GESTIÓN

GIMP (GNU Image Manipulation Program) es un programa de edición de imágenes digitales en forma de mapa de bits, tanto dibujos como fotografías. Es un programa libre y gratuito. Forma parte del proyecto GNU y está disponible bajo la Licencia pública general de GNU.

http://www.gimp.org.es/

Easy PHP es un programa muy interesante para las personas que quieren en el menor tiempo posible ponerse a trabajar con PHP sobre Windows®, sin tener que vérselas con las dificultades de instalar y configurar todos los servidores y módulos necesarios para trabajar con este lenguaje de creación de páginas del lado del servidor.

http://www.easyphp.org

F.lux, es una pequeña aplicación que hace que el color de la pantalla del ordenador se adaptan a la hora del día, cálido por la noche y como la luz del sol durante el día. Cuando el sol se pone, hace que su equipo se vea como las luces interiores. Por la mañana, hace que las cosas se ven como la luz del sol de nuevo.

http://www.stereopsis.com/flux/

Pág. 115

Page 116: SISTEMA DE GESTIÓN

Dia es una aplicación para crear diagramas técnicos. Posee una interfaz y características fáciles de utilizar, exporta a varios tipos de formatos (EPS, SVG, CGM y PNG) y a XML. Dia es es muy usado para diagramas UML, mapas de red y diagramas de flujo.

http://dia-installer.de

SQLite es un sistema de gestión de bases de datos relacional compatible con ACID, contenida en una relativamente pequeña biblioteca en C. SQLite es un proyecto de dominio público creado por D. Richard Hipp.

A diferencia de los sistemas de gestión de bases de datos cliente-servidor, el motor de SQLite no es un proceso independiente con el que el programa principal se comunica. En lugar de eso, la biblioteca SQLite se enlaza con el programa pasando a ser parte integral del mismo. El programa utiliza la funcionalidad de SQLite a través de llamadas simples a subrutinas y funciones. Esto reduce la latencia en el acceso a la base de datos, debido a que las llamadas a funciones son más eficientes que la comunicación entre procesos. El conjunto de la base de datos (definiciones, tablas, índices, y los propios datos), son guardados como un sólo fichero estándar en la máquina host. Este diseño simple se logra bloqueando todo el fichero de base de datos al principio de cada transacción.

SQLite Manager es un complemento del navegador Mozilla Firefox para la gestión de Bases de Datos SQLite

https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/

Pág. 116

Page 117: SISTEMA DE GESTIÓN

Qwt

La biblioteca Qwt contiene componentes GUI y clases de utilidad que son sobre todo útiles para los programas con un perfil técnico. Junto a un widget de diagrama en 2D que proporciona escalas, deslizadores, diales, compases, termómetros, ruedas y botones para controlar o visualizar los valores, matrices o rangos de tipo double.

http://qwt.sourceforge.net/

Inkscape es un editor de gráficos vectoriales de código abierto, con capacidades similares a Illustrator, Freehand, CorelDraw o Xara X, usando el estándar de la W3C: el formato de archivo Scalable Vector Graphics (SVG).

http://www.inkscape.org

IcoFX es un editor de iconos gratuito. Utilizado para creación, extracción y edición de iconos, con este editor de icono he realizado el icono de Soporte Técnico.

http://icofx.ro/

GanttProject es una herramienta de escritorio multi-plataforma para la programación y gestión de proyectos. Se ejecuta en Windows®, Linux y Mac®, es libre y su código es opensource.

http://www.ganttproject.biz/

Pág. 117

Page 118: SISTEMA DE GESTIÓN

LocMetrics cuenta las líneas de código (LOC), líneas de código en blanco (BLOC), líneas de código comentadas (CLOC), líneas comentadas con código y comentarios (C&SLOC), líneas de código lógicas (SLOC-L) y número de palabras en comentarios (CWORDS). Las líneas de código físicas ejecutables (SLOC-P) se calculan mediante el total de lineas de código menos lineas en blancos y líneas comentadas.

http://locmetrics.com/

TortoiseSVN es un programa fácil de usar SMC / software de control de código fuente para Microsoft Windows® y, posiblemente, el mejor, independiente Apache Subversion existente hoy día. Se implementa como una extensión del shell de Windows®, lo que hace que se integre perfectamente en el explorador de Windows®. Ya que no es una integración de un IDE específico que se puede utilizar con herramientas de desarrollo.

http://tortoisesvn.net/

Greenshot es una herramienta de captura de pantalla, muy ligero:

• Crear capturas de pantalla completa o parcial con rapidez. Fácil de anotar, resaltar o ocultar partes de la captura de pantalla. Enviar la captura de pantalla en un archivo, portapapeles, impresora o como archivo adjunto de correo electrónico.

• Es fácil de entender y configurar, Greenshot es una herramienta eficaz para administradores de proyectos, desarrolladores de software, redactores técnicos y cualquier otra creación de capturas de pantalla.

http://getgreenshot.org/

Pág. 118

Page 119: SISTEMA DE GESTIÓN

Wink es un software de creación de presentación, dirigido principalmente a la creación de tutoriales sobre cómo utilizar un software. Usando Wink es posible realizar capturas de pantalla, agregar cajas de explicaciones, botones, títulos, etc y generar un tutorial muy eficaz para los usuarios.

http://www.debugmode.com/wink/

Inno Setup es un instalador gratuito para programas en entorno Windows®. Presentado por primera vez en 1997, Inno Setup hoy en día es incluso superior a muchos instaladores comerciales con similares características.

http://www.jrsoftware.org

Pág. 119

Page 120: SISTEMA DE GESTIÓN

Capítulo 15

Referencias Bibliográficas

[1] http://sourceforge.net/projects/console/[2] http://www.uvnc.com/[3] http://www.glpi-project.org/[4] http://www.ocsinventory-ng.org/[5] Larman c., “UML y Patrones. Una introducción al análisis y diseño orientado a objetos y al proceso unificado”, 2º ed., [681.3.06UML/LAR/uml] Hall 2003[6] http://www.sqlite.org/[7] http://qt.nokia.com[8] Jasmin Blanchette, “C++ GUI programming with Qt 4”, Prentice Hall open source software development , [681.3.06C++/BLA/c++] [9] http://www.youtube.com/playlist?list=PL2D1942A4688E9D63[10] http://qt-apps.org/content/show.php?content=132560[11] http://qt-project.org/wiki/Simple_encryption[12] http://openiconlibrary.sourceforge.net/[13] http://openfontlibrary.org/[14] http://openclipart.org/[15] http://sourceforge.net/projects/console/[16] http://locmetrics.com/[17] http://www.issco.unige.ch/en/research/projects/ewg96/node14.html[18] Nielsen, Jakob., “Usabilidad: diseño de sitios Web / Jakob Nielsen; traducción Santiago Fraguas.”, Madrid, Prentice Hall, 2000. [681.324/NIE/usa ][19] http://www.jrsoftware.org[20] http://www.wxwidgets.org/[21] http://glade.gnome.org/[22] Daniel Molkentin, “The book of Qt 4, the art of building Qt applications”[23] http://www.zonaqt.com/[24] http://www.qtforum.org/

Pág. 120

Page 121: SISTEMA DE GESTIÓN

[25] http://www.qtcentre.org[26] http://es.wikipedia.org/wiki/Wake_on_LAN[27] http://es.wikipedia.org/wiki/C%C3%B3digo_de_barras[28] http://es.wikipedia.org/wiki/QR[29] Ingeniería del software : un enfoque práctico / Roger S. Pressman [681.3/PRE/ing][30] http://www.fsf.org/[31] http://forja.rediris.es/frs/?group_id=1060

Pág. 121

Page 122: SISTEMA DE GESTIÓN

Capítulo 16

Información sobre Licencia

GNU GENERAL PUBLIC LICENSE

Version 3, 29 June 2007

Copyright © 2007 Free Software Foundation, Inc. <http://fsf.org/>

Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

Preamble

The GNU General Public License is a free, copyleft license for software and other kinds of works.

The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.

To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others.

Pág. 122

Page 123: SISTEMA DE GESTIÓN

For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.

Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it.

For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions.

Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users.

Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free.

The precise terms and conditions for copying, distribution and modification follow.

TERMS AND CONDITIONS

0. Definitions.

“This License” refers to version 3 of the GNU General Public License.

“Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.

“The Program” refers to any copyrightable work licensed under this License. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations.

To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work.

Pág. 123

Page 124: SISTEMA DE GESTIÓN

A “covered work” means either the unmodified Program or a work based on the Program.

To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.

To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.

An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.

1. Source Code.

The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work.

A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language.

The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.

The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically

Pág. 124

Page 125: SISTEMA DE GESTIÓN

designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.

The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source.

The Corresponding Source for a work in source code form is that same work.

2. Basic Permissions.

All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law.

You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.

Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary.

3. Protecting Users' Legal Rights From Anti-Circumvention Law.

No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures.

When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures.

Pág. 125

Page 126: SISTEMA DE GESTIÓN

4. Conveying Verbatim Copies.

You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.

You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.

5. Conveying Modified Source Versions.

You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:

• a) The work must carry prominent notices stating that you modified it, and giving a relevant date.

• b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”.

• c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.

• d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.

A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.

Pág. 126

Page 127: SISTEMA DE GESTIÓN

6. Conveying Non-Source Forms.

You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:

• a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.

• b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.

• c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.

• d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.

• e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d.

A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.

A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually

Pág. 127

Page 128: SISTEMA DE GESTIÓN

uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.

“Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.

If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).

The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network.

Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying.

7. Additional Terms.

“Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.

When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.

Pág. 128

Page 129: SISTEMA DE GESTIÓN

Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:

• a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or

• b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or

• c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or

• d) Limiting the use for publicity purposes of names of licensors or authors of the material; or

• e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or

• f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors.

All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying.

If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.

Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.

8. Termination.

You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11).

Pág. 129

Page 130: SISTEMA DE GESTIÓN

However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.

Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.

Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10.

9. Acceptance Not Required for Having Copies.

You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so.

10. Automatic Licensing of Downstream Recipients.

Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License.

An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts.

You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.

Pág. 130

Page 131: SISTEMA DE GESTIÓN

11. Patents.

A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's “contributor version”.

A contributor's “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License.

Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.

In the following three paragraphs, a “patent license” is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To “grant” such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party.

If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid.

If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it.

A patent license is “discriminatory” if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific

Pág. 131

Page 132: SISTEMA DE GESTIÓN

products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007.

Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law.

12. No Surrender of Others' Freedom.

If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program.

13. Use with the GNU Affero General Public License.

Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such.

14. Revised Versions of this License.

The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation.

If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program.

Pág. 132

Page 133: SISTEMA DE GESTIÓN

Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version.

15. Disclaimer of Warranty.

THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

16. Limitation of Liability.

IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

17. Interpretation of Sections 15 and 16.

If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee.

END OF TERMS AND CONDITIONS

Pág. 133