Herramienta informática para el monitoreo de errores de las aplicaciones web

Monografía destacada


Monografias.com

"Sólo podemos ver poco del futuro, pero lo suficiente para darnos cuenta de que hay mucho que hacer."

Alan Turing

RESUMEN

Las aplicaciones web han alcanzado gran popularidad e importancia en los últimos años. Permiten el intercambio y consulta de información de los usuarios. La calidad con la que se brinda un servicio, es un factor clave mediante el cual una empresa puede ganar o perder clientes. La importancia de detectar errores a tiempo puede prevenir pérdida o adulteración de datos, el uso excesivo de recursos, incluso un mal funcionamiento de componentes de la aplicación.

La investigación que se presenta, aborda los principales aspectos que se desarrollaron con el fin de realizar la solución informática de una herramienta para el monitoreo de los errores en las aplicaciones web. Se realiza el estudio de las principales herramientas y tecnologías utilizadas en el proceso de creación de la solución. El documento de esta investigación, deja constancia de la metodología empleada la cual permitió cumplir el objetivo general propuesto y satisfacer las necesidades del cliente. Por último, se especifican las pruebas a las que fue sometida la solución elaborada, quedando demostrado que la misma cumple con la calidad y funcionalidades requeridas por el cliente.

Por el resultado alcanzado, la investigación se considera un aporte a la ciencia, debido a que auxilia a los desarrolladores que realizan el monitoreo de las aplicaciones web para el control de la calidad de las mismas.

Palabras claves: aplicaciones web, errores HTTP, monitoreo, servicio REST

Introducción

Las aplicaciones web han alcanzado gran popularidad e importancia en los últimos años. Permiten la consulta e intercambio de información de los usuarios, como también alta disponibilidad a partir de la posibilidad de ofrecer servicios desde múltiples localizaciones, lo cual asegura su continuidad. Puede contener además, elementos que permiten una comunicación activa entre el usuario y la información.

Luego del despliegue de las aplicaciones web, pueden presentarse errores o vulnerabilidades que no son depurados en el proceso de desarrollo. Corregirlos conlleva a una pérdida de tiempo, pues con frecuencia se desconoce cuándo ocurrió la excepción. Esto se debe entre otros factores a que no se poseen herramientas que permitan un monitoreo constante de los mismos. La importancia de detectar estos errores, previene la pérdida o adulteración de datos, el uso excesivo de recursos, mal funcionamiento de sus componentes y la aparición de errores inesperados provocados por ataques de denegación de servicio a través de software malicioso.

Es importante además, porque el uso de la Web cada día se extiende de forma vertiginosa a la mayoría de los ámbitos de la sociedad y la vida cotidiana. Es cada vez más utilizada para la información, el comercio y en especial en la educación a distancia. En este último aspecto su uso es dirigido fundamentalmente a apoyar el Proceso de Enseñanza y Aprendizaje (PEA), en el sentido de administrar, distribuir y controlar los procesos en línea, además de proporcionar funciones administrativas y de seguimiento necesarias para posibilitar y controlar el acceso a los contenidos, implementar recursos de comunicación y llevar a cabo el seguimiento de quienes utilizan la herramienta.

Cuba no está exenta del empleo de estas tecnologías para el desarrollo de software educativo, por lo que desarrolla los hiperentornos educativos o de aprendizaje como concepción pedagógica. La Universidad de las Ciencias Informáticas (UCI), específicamente el Centro de Tecnologías para la Formación (FORTES) perteneciente a la Facultad 4, desarrolla tecnologías que permiten ofrecer servicios y productos para la implementación de soluciones de formación, tanto para los niveles curriculares de la enseñanza inicial, media o preuniversitaria, así como tecnologías de formación a distancia y semi-presencial, utilizados mayormente en el nivel superior y de postgrado.

Muchos de estos productos se desarrollan sobre un marco de trabajo (framework) o un Sistema de Administración de Contenido (CMS por sus siglas del inglés Content Management System). En ambos casos se lleva un control de los errores, mediante eventos que se generan guardando la información del error en archivos de registro de sucesos HTTP (Protocolo de Transferencia de Hipertexto o Hypertext Transfer Protocol), o también conocidos como archivos log. En estos archivos se guarda toda la información referente a los eventos generados por las aplicaciones web, lo cual hace más engorroso el trabajo.

La realidad constata problemas de organización en el proceso de almacenamiento en los archivos de tipo log. De una parte no se puede mostrar, de forma clasificada, los errores que son guardados por cada evento en los archivos log de las aplicaciones web. De otra, se necesita de la presencia de los administradores en el servidor para poder acceder a ellos. Además, los desarrolladores para poder llevar el control de los errores, necesitan otras informaciones que faciliten el control y servir de ayuda para descartar cualquier problema de compatibilidad que exista en la aplicación, sin embargo, tampoco son guardadas en este tipo de archivo. Se destacan los datos del usuario que generó el error, navegador web, sistema operativo, entre otros.

En el centro FORTES, los mecanismos existentes no son suficientes para lograr agilidad por el equipo de desarrollo en el entendimiento de las excepciones lanzadas por las distintas aplicaciones, pues al no ser guardadas en las bases de datos no se cuenta con un registro histórico de los mismos. Otra deficiencia encontrada, es que los reportes enviados se encuentran en distintos formatos lo que dificulta el proceso de unificación del contenido de los errores.

Las insuficiencias mencionadas indican que se está en presencia del siguiente Problema a resolver: ¿Cómo mostrar a los desarrolladores los errores que se generan en las aplicaciones web del centro FORTES para facilitar su solución?

Teniendo como objetivo general: Desarrollar una herramienta informática que permita mostrar de forma automática a los desarrolladores del centro FORTES los errores que generan las aplicaciones web y facilitar así su solución.

La parte de la ciencia que será objeto de estudio es los procesos de monitorización de las aplicaciones web.

Definiéndose como campo de acción las herramientas para el monitoreo y gestión de errores en las aplicaciones web desarrolladas en el centro FORTES.

Teniendo como objetivos específicos:

Las insuficiencias señaladas en la monitorización de errores en las aplicaciones web del centro FORTES, indican una idea a defender y no una hipótesis a demostrar, que parte de la idea de que si se desarrolla una herramienta capaz de centralizar la información referente a los errores en las aplicaciones web desarrolladas en el centro FORTES, permitirá a los desarrolladores tener un mejor control de los mismos.

Posibles resultados:

Tareas a cumplir:

Analítico-Sintético, para examinar las partes fundamentales relacionadas con el objeto de estudio, comprender su funcionamiento y complementarlo con su utilización en el campo de acción de la investigación.

Métodos empíricos:

La observación: se empleó para determinar la evolución de los procesos, en específico en las validaciones de las funcionalidades de la solución. Se apoyó en las técnicas de recopilación de información: cuestionario y entrevista de tipo no estructurada.

Además de los métodos científicos anteriormente expuestos también se utilizó: El criterio de expertos: permitió obtener opiniones entre diferentes expertos para verificar que los reportes generados por la herramienta de monitoreo de errores, basado en los reportes de las excepciones lanzadas por las Aplicaciones del centro FORTES permiten apoyar la toma de decisiones.

Estructuración del trabajo de diploma

El primer capítulo describe la fundamentación teórica de dicha investigación, el cual incluye un estudio del estado del arte del tema. Se explican y justifican las tendencias, tecnologías y herramientas en las que se apoya la solución al problema. Posteriormente se incluye un capítulo que describe el proceso de análisis y diseño, el cual comienza con la descripción, priorización y planificación de las historias de usuario que describen las funcionalidades a implementar, pasando luego a detallar la arquitectura de la solución y sus principales características. Por último aparece un tercer capítulo donde se describen las fases de implementación y pruebas, se comienza con la descripción de los componentes de terceros utilizados en la solución. Se implementan todas las funcionalidades identificadas, logrando un sistema que satisface las principales necesidades del cliente. Se detallan también las pruebas que se le realizaron al sistema, con el objetivo de asegurar la calidad y eficiencia de la solución. Seguidamente se encuentran las referencias bibliográficas y la bibliografía que están formadas por documentos y artículos de interés para los autores de la investigación y se concluye con los Anexos donde se agregan algunos artefactos generados en el transcurso del desarrollo de la solución.

Capítulo 1

Fundamentación teórica

Los sistemas de gestión de aprendizaje amplían el espacio y el tiempo de la clase ya que facilitan el acceso a lecturas, ejercicios y material educativo, el envío de tareas y trabajos y la comunicación sincrónica o asincrónica entre estudiantes y profesores. En varias ocasiones sucede que posterior a su despliegue, son detectados errores que dificultan su solución y trasciende en otras consecuencias relacionadas con el plan de negocio de un proyecto.

Desarrollar una herramienta informática para su solución significa, ante todo, realizar un levantamiento de experiencias anteriores tanto fuera, como dentro de Cuba, así como examinar los elementos que permitan su desarrollo. Es el objetivo que se propone este capítulo, dividido en cinco epígrafes y sub-epígrafes.

Conceptos asociados al dominio del problema

Los conceptos asociados al dominio del problema esclarecen el significado que para la investigación que se realiza tienen todas las categorías y términos fundamentales empleados en el planteamiento del problema y el objetivo general. Su definición conceptual se corresponde con la idea que sustenta el investigador. En este sentido, se puntualiza el significado del término Tecnologías de la Información y las Comunicaciones (TIC), software educativo, hiperentornos de aprendizaje y errores HTTP.

Tecnologías de la Información y las Comunicaciones

A partir de la bibliografía consultada se estudiaron varios conceptos sobre las TIC, uno de los más completo es el del autor A. M. Cabrera que define las TIC como "...el conjunto de procesos y productos derivados de las nuevas herramientas (hardware y software), soportes de la información y canales de comunicación relacionados con el almacenamiento, procesamiento y transmisión digitalizados de los datos" (1).

Del estudio realizado por Cabrera, sobre las características de las TIC, se resumen las siguientes:

Varios autores hacen alusión al tema del software educativo. No obstante se asume el definido por Sonia Morejón que lo considera como: "…cualquier programa computacional cuyas características estructurales y funcionales sirvan de apoyo al proceso de enseñar - aprender y administrar" (2).

De igual forma, Sonia identifica las características del software educativo, las que se pueden resumir en la idea de que propicia la creación de un contexto adecuado para la construcción y transmisión de conocimiento en el momento que se integran en el proceso educativo propicio. Su evolución a través de la historia ha aportado cada vez más prestaciones y facilidades al proceso educativo.

Hiperentornos de aprendizaje

El método de síntesis permitió puntualizar el término hiperentornos de aprendizaje, definido en estos estudios como, sistemas informáticos basados en tecnologías hipermedia y que contienen una mezcla de elementos representativos de diversas tipologías de software educativo. Es una "mezcla de tutoriales, entrenadores simuladores, juegos y evaluadores o como: tutoriales, tutoriales inteligentes, sistemas hipermedias, simulaciones y micro-mundos" (2).

Errores en aplicaciones web

Según el estudio bibliográfico realizado en internet1 sobre el protocolo de transferencia de hipertexto, o HTTP, se define que es el protocolo usado en cada transacción de la World Wide Web (www) y administrado por el Consorcio World Wide Web Consortium (W3C).

Monografias.com

1 http://www.hasheado.com/

Uno de los aspectos fundamentales del HTTP es el permitir a los navegadores obtener información en un formato simple (HTML, siglas del inglés HyperText Markup Language) de un servidor. Sin embargo, para poder desplegar esta información, el navegador o el cliente necesitan saber qué

tipo de información es la que va a recibir, si una imagen, un texto, un documento de alguna aplicación, etc. También necesita saber si va a recibir la información, o si hubo algún error durante la realización del proceso. Para esto, el protocolo HTTP cuenta con ciertos códigos de respuesta estándar.

Hay varios tipos de respuesta:

(3).

Estudio comparativo de herramientas con soluciones similares

Luego de un estudio parcial de las herramientas usadas en internet para conocer el tráfico de una página y que una empresa pueda mediante estas, llevar las tareas de monitoreo sobre los mismos, a continuación se presenta un análisis de las herramientas más usadas para realizar este proceso3:

Compete

Con el servicio de www.compete.com se puede realizar un análisis exhaustivo de la competencia. Con esta herramienta se puede encontrar puntualmente el tráfico de la página de una empresa y el de los competidores para realizar exhaustivas comparaciones. Compete tomar en cuenta las estadísticas del tráfico en la red para realizar los análisis de forma gráfica mostrando visualmente los datos.

Este servicio se considera una buena referencia para el mercadeo en internet, ya que brinda un análisis de los mercados principales, palabras claves y los portales en la web.

Monografias.com

2 Redireccionar: acceder a una determinada dirección mediante otra. http://tecnologia.glosario.net/terminos-viricos/redireccionar-9828.html 3 Para mayor información consultar el "AlmacenPlantillasWeb", en

http://almacenplantillasweb.es/herramientas/herramientas-seo/herramientas-para-anlisis-del-trafico-de- una-web/.

Entre los análisis que realiza se encuentra: hacer una comparación numérica de los sitios, análisis del comportamiento y mantener un seguimiento.

Compete ofrece además una gráfica de análisis de páginas web con mayor índice de visitas. Se puede observar en una gráfica por periodo de tiempo y en el tiempo total que los usuarios permanecieron durante su visita (4).

Alexa

Alexa es un medidor que provee información histórica del tráfico de una web o la cantidad de visitas que recibe. Presenta estadísticas de qué países generan más tráfico y de qué países provienen los usuarios de ese sitio web.

La información que presenta Alexa acerca de una web son: la imagen de la portada de un sitio web, el rango de tráfico de la página, páginas que visitan las mismas personas que acceden a la página actual, velocidad del servidor, etc.

Alexa también calcula el tráfico de los sitios, los clasifica en atención a su importancia y determina su posición en el ranking mundial (5).

Site24x7

Site24x7 es una herramienta para monitorear sitios web, pero además ofrece otras ventajas, por ejemplo:

Netvibes

Es un servicio web que actúa a modo de escritorio virtual personalizado, similar a la Página Principal Personalizada de Google (iGoogle), MSN Live.

Visualmente está organizada en solapas o pestañas (tabs), donde cada solapa por lo general es en sí un para agregar diversos módulos y widgets desplazables previamente definidos por el usuario. Estos módulos, a su vez, actúan como pequeñas ventanas cuyo contenido es generado por otro servicio web o ser mini-aplicaciones.

Desde el punto de vista comercial, están los llamados Universos, que son páginas creadas principalmente por empresas o grupos musicales y en que se muestran diversas fuentes web, imágenes y otros materiales relacionados con el creador (7).

OpManager

Características del monitoreo de URL de OpManager:

El análisis de las soluciones similares permitió observar algunas fortalezas que pueden ser reutilizadas de desarrollo como son: el uso de servicio web y la vista de los datos obtenidos del proceso de monitoreo. Independientemente de las características que con anterioridad han sido expuestas, ninguna de ellas cumple con los requerimientos que dan solución al problema de la investigación que se presenta en estos estudios. Entre otros motivos porque todas tienen una tarea en común que consiste en el monitoreo del tráfico de la red, sin embargo lo que se necesita es el monitoreo de los errores. Esta conclusión es la que condiciona que el autor se proponga el desarrollo del objetivo general propuesto.

1.3 Metodología de desarrollo de software

El empleo de una metodología durante el desarrollo de un software, le confiere a este y a la investigación que se le asocia, transparencia y calidad, elementos muy perseguidos por el cliente y necesarios para el producto.

La aplicación correcta de una metodología ayuda a mejorar el tiempo de desarrollo del software; definir con exactitud el personal que requiere el proyecto, las herramientas a utilizar, conocimientos concretos sobre el problema a resolver, entre otros aspectos que deben ser chequeados y controlados.

El análisis de la bibliografía consultada, muestra que existen dos tipos de metodologías: ágiles y tradicionales, dejando al equipo de desarrollo de un producto, tomar la decisión de cuál es la que más se ajusta a sus características.

Las metodologías pueden ser tradicionales o pesadas, que según la filosofía de desarrollo son las que hacen mayor énfasis en la planificación y control del proyecto, y necesitan de una especificación precisa de aspectos funcionales y modelado.

Las metodologías tradicionales imponen una disciplina de trabajo sobre el proceso de desarrollo del software, con el fin de conseguir un software más eficiente. Para ello, se hace énfasis en la planificación total de todo el trabajo a realizar y una vez que está todo detallado, comienza el ciclo de desarrollo del producto. Se centran especialmente en el control del proceso, mediante una rigurosa definición de roles, actividades, artefactos, herramientas y notaciones para el modelado y documentación detallada. Además, las metodologías tradicionales no se adaptan adecuadamente a los cambios, por lo que no son métodos adecuados cuando se trabaja en un entorno, donde los requisitos no pueden predecirse o bien pueden variar.

Según autores consultados en la Ecured plantean que las metodologías ágiles se encargan de valorar al individuo y promover las iteraciones del equipo más que a las herramientas o los procesos utilizados. Plantean además, que se hace mucho más importante crear un producto de software que funcione, que escribir mucha documentación (9). Esta metodología propone que el cliente esté en todo momento colaborando en el proyecto. A diferencia de otras metodologías es más importante la capacidad de respuesta ante un cambio realizado, que el seguimiento estricto de un plan (10).

Por los recursos, el personal y tiempo para realizar el trabajo se opta por usar una metodología ágil. Aunque los creadores e impulsores de las metodologías ágiles más populares han suscrito el manifiesto ágil y coinciden con los principios enunciados anteriormente, cada metodología tiene características propias y hace hincapié en algunos aspectos más específicos.

En lo adelante se profundizará en las metodologías SCRUM4 y Programación Extrema (XP) por ser metodologías ágiles que se basan en el trabajo orientado directamente al objetivo.

Scrum

En artículo publicado por Mike Cohen define Scrum como un marco para la gestión de proyectos (11). Está especialmente indicada para proyectos con un rápido cambio de requisitos. Sus principales características se pueden resumir en dos: el desarrollo de software se realiza mediante iteraciones, denominadas sprints, con una duración de 30 días, donde el resultado de cada sprint es un incremento ejecutable que se muestra al cliente; la segunda característica son las reuniones a lo largo del proyecto, entre ellas destaca la reunión diaria de 15 minutos del equipo de desarrollo para coordinación e integración (12).

Monografias.com

4 SCRUM: Término en rugby, que hace referencia a como se devuelve un balón que ha salido fuera del campo, al terreno de juego de una manera colectiva, la traducción al castellano sería melé.

Monografias.com

Figura 1.1 Ciclo de vida de la metodología SCRUM

Según Palacios es posible identificar tres fases durante el ciclo de vida en SCRUM: 1) planificación del sprint, 2) seguimiento del sprint, y 3) revisión del sprint. Estas fases pueden encontrarse como: fase antes del juego, fase del juego o desarrollo, fase después del juego (13). Dentro de los principios de SCRUM, se pueden mencionar:

¿Qué has hecho desde la última revisión?

¿Qué obstáculos te impiden cumplir la meta?

¿Qué vas a hacer antes de la próxima reunión?

Sin embargo requiere confiar responsabilidades al equipo, incluso permite fallar si es necesario, además los miembros del equipo de trabajo programan de forma individual.

Esta metodología es apropiada para entornos ligeros donde se tiene una útil realimentación de los usuarios, en cada iteración se definen cuáles son los objetivos de la siguiente, tiene una planificación más transparente para los clientes al estar diseñada para el cambio.

XP

La literatura constata varias definiciones de esta metodología. Programación Extrema (XP por sus siglas del inglés eXtreme Programming), es definida por varios actores, el desarrollo de esta investigación se guío por los conceptos definidos por el autor Ian Sommerville que especifica:

XP es posiblemente el método ágil más conocido y ampliamente utilizado. El nombre fue acuñado por Beck (15), debido a que el enfoque fue desarrollado utilizando buenas prácticas reconocidas, como el desarrollo iterativo, y con la participación del cliente en niveles extremos.

En la programación extrema todos los requerimientos se expresan como escenarios llamados historias de usuario los cuales se implementan directamente como una serie de tareas. Los programadores trabajan en parejas y desarrollan pruebas para cada tarea antes de escribir el código. Todas las pruebas se deben ejecutar satisfactoriamente cuando el código nuevo se integre al sistema. Existe un pequeño espacio de tiempo entre las entregas del sistema (16).

La programación extrema implica varias prácticas que se ajustan a los principios de los métodos ágiles5:

Personas que intervienen en la metodología XP:

En un proceso XP, los clientes están fuertemente implicados en la especificación y establecimiento de prioridades de los requerimientos del sistema.

Los requerimientos no se especifican como una lista de funciones requeridas del sistema. Más bien, los clientes del sistema son parte del equipo de desarrollo y discuten escenarios con otros miembros del equipo. Desarrollan conjuntamente una tarjeta de historia que recoge las necesidades del cliente. El equipo de desarrollo intentará entonces implementar ese escenario en una entrega futura del software.

Monografias.com

5 La descripción del análisis de la metodología XP se basó fundamentalmente en (17).

La participación del cliente se lleva a cabo a través del compromiso a tiempo completo del cliente en el equipo de desarrollo. Los representantes de los clientes participan en el desarrollo y son los responsables de definir las pruebas de aceptación del sistema.

Monografias.com

Figura 1.1 Principales elementos de la metodología XP

Los pasos de la metodología XP:

Los desarrolladores dividen estas historias en tareas de desarrollo.

Esto conserva el código sencillo y fácil de mantener.

Después de la integración, se deben pasar al sistema todas las pruebas de unidad.

El ciclo de vida ideal de XP consiste de seis fases, las mismas son (12):

Exploración: en esta etapa los clientes escriben las Historias de Usuario (HU) que quieren que sean incluidas en la aplicación, que describen las funcionalidades que serán añadidas al sistema. Planificación (Release): se establece la prioridad de las HU y se acuerda el contenido de la primera entrega del proyecto, así como su estimación temporal.

Iteraciones: durante esta fase se decide cuáles serán las historias que se desarrollarán en cada iteración, así como las pruebas funcionales ejecutadas al final de cada iteración.

Producción: en esta fase se llevan a cabo un conjunto de pruebas extras, de rendimiento y funcionamiento que son necesarias antes de entregar el producto.

Mantenimiento: una vez sea liberada la primera versión a los usuarios, el sistema se debe mantener en el entorno de producción siempre y cuando aún hayan iteraciones en fase de producción.

Cierre del proyecto o Muerte del Proyecto: cuando ya no hay más HU que deban ser implementadas, las necesidades del cliente han sido satisfechas, así como la documentación (17).

Monografias.com

Figura 1.2 Fases XP

Cosas que propone esta metodología:

Fundamentación de la metodología a utilizar

A partir del estudio realizado se decidió que la metodología XP es la óptima a utilizar, ya que está: empleada para proyectos de corto plazo, con un equipo de trabajo pequeño, propone una realimentación continua entre el cliente y el equipo de desarrollo, el modelo de 40 horas semanales que define para no trabajar horas extras y la propiedad colectiva del código.

Dada las condiciones, facilidades que brinda y la idea de desarrollo que se tiene de la solución, se acordó que sus características son las más asociadas al proyecto que se lleva a cabo durante el desarrollo de la presente investigación. Hace énfasis que la comunicación y satisfacción del cliente es lo principal.

Para una mejor estructuración del documento y un mejor entendimiento, se decide agrupar las seis fases en cuatro, sin violar el ciclo de vida de la metodología, estas fases son:

Fase I: Exploración Fase II: Planificación Fase III: Implementación Fase IV: Pruebas

Con la aplicación de las características antes mencionadas, se espera llevar a cabo un proceso de desarrollo que guíe los pasos hacia la construcción de un producto con calidad y que cumpla con los plazos de tiempo y alcance previstos.

Herramientas y tecnologías

La solución propuesta será integrada al módulo ZERA Support que está actualmente en desarrollo en La Plataforma Educativa ZERA, por lo que se consideró trabajar con las versiones actuales del ambiente de desarrollo existente.

Para dar inicio al desarrollo de la herramienta para el monitoreo de errores de las aplicaciones web en el Centro FORTES, la metodología seleccionada posibilitó realizar previamente un estudio riguroso y detallado de tecnologías, herramientas, lenguaje de modelado, framework, servidores web, gestores de bases de datos, lenguajes de desarrollo y servicios web definidas por el equipo de desarrollo del módulo "ZERA Support". Se priorizaron las herramientas y tecnologías de código abierto o pertenecientes al software libre, en las cuales el desarrollador tenga experiencias en su uso y que cuenten con una amplia documentación y comunidad de usuarios, aspectos importantes en la retroalimentación y rectificación de errores.

Para el desarrollo de la solución propuesta se utilizará:

Lenguaje de modelado

La bibliografía constata que el Lenguaje Unificado de Modelado (UML, por sus siglas en inglés, Unified Modeling Language) es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad; entre sus funciones se define que es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema. UML ofrece un estándar para describir el modelo de un sistema. UML cuenta con una gran variedad de propiedades entre las que se destacan:

UML se ha convertido ya en una de las mejores herramientas para el diseño y desarrollo de software fiable, eficiente y de calidad. Permite modelar sistemas de información, y su objetivo es lograr modelos que, además de describir con cierto grado de formalismo tales sistemas, puedan ser entendidos por los clientes o usuarios de aquello que se modela (18).

Herramienta CASE

Las herramientas CASE (Computer Aided Software Engineering, Ingeniería de Software Asistida por Computadora) son diversas aplicaciones informáticas destinadas a aumentar la productividad en el desarrollo de software reduciendo el costo de las mismas en términos de tiempo y de dinero. La evolución de las herramientas CASE está ligada a la evolución de la Ingeniería de Software como disciplina. El propósito de una herramienta CASE es dar soporte automatizado para la aplicación de todas o algunas técnicas usadas por una o varias metodologías (19). Algunas de estas herramientas son: Umbrello, Rational Rose, Visual Paradigm, Software Modeling entre otras.

Para modelar la propuesta de solución se hará uso de la herramienta Visual Paradigm en su versión 8.0. Esta herramienta CASE soporta los principales estándares de la industria tales como UML, la Notación para el Modelado de Procesos de Negocio (BPMN), entre otras especificaciones definidas por el grupo de estandarización OMG (Object Management Group). Además ofrece un completo conjunto de herramientas que facilitan a los desarrolladores la captura de requisitos, planificación de software, planificación de controles, el modelado de clases, modelado de datos, entre otros (19).

Está concebida para soportar el ciclo de vida completo del proceso de desarrollo del software. Dentro de sus características se destacan las siguientes.