domingo, 26 de octubre de 2014

TAXONOMÍA DE HERRAMIENTAS CASE

  1. Una taxonomía de herramientas CASE

Existe un cierto número de riesgos que son inherentes siempre que se intenta efectuar una categorización de las herramientas CASE. Existe una sutil implicación que consiste en que para crear un entorno CASE efectivo se deberán implementar todas las categorías de herramientas esto no es ni sencillo, ni cierto-. Cuando hay personas que creen que una herramienta pertenece a una categoría, se puede crear cierta confusión (o contradicción) al ubicar una herramienta específica dentro de otra categoría. Es posible que algunos lectores piensen que se ha omitido una categoría completa -1iminando por tanto un conjunto de herramientas completo e incluirlo así en el entorno CASE global-. Además, una categorización sencilla tiende a ser plana - esto es, no se muestra lainteracción jerárquica de las herramientas o las relaciones que existen entre ellas-. A pesar de estos riesgos, es necesario crear una taxonomía de herramientas CASE -para comprender mejor la amplitud de CASE y para apreciar mejor en donde se pueden aplicar estas herramientas dentro del proceso del software-.


Las herramientas CASE se pueden clasificar por su función, por su papel como instrumentos para administradores o personal técnico, por su utilización en los distintos pasos del proceso de ingeniería del software, por la arquitectura del entorno (hardware y software) que les presta su apoyo, o incluso por su origen o coste [QED89]. La taxonomía que se presenta a continuación utiliza como criterio principal la función.

Herramientas de ingeniería de procesos de negocio. Al modelar los requisitos de información estratégica de una organización, las herramientas de ingeniería de procesos de negocios proporcionan un «metamodelo» del cual se derivan sistemas de información específicos. En lugar de centrarse en los requisitos de una aplicación específica, estas herramientas CASE modelan la información de negocio cuando ésta se transfiere entre distintas entidades organizativas en el seno de una compañía. El objetivo primordial de las herramientas de esta categoría consiste en representar objetos de datos de negocio, sus relaciones y la forma en que fluyen estos objetos de datos entre distintas zonas de negocio en el seno de la compañía.

Modelado de procesos y herramientas de gestión. Si una organización trabaja por mejorar un proceso de negocio (o de software) lo primero que debe hacer es entenderlo. Las herramientas de modelado de procesos (llamadas también herramientas de tecnología de procesos) se utilizan para representar los elementos clave del proceso de manera que sea posible entenderlo mejor. Estas herramientas también pueden proporcionar vínculos con descripciones de procesos que ayuden a quienes estén implicados en el proceso de comprender las tareas que se requieren para llevar a cabo ese proceso. Además, las herramientas de gestión de procesos pueden proporcionar vínculos con otras herramientas que proporcionan un apoyo para las actividades de proceso ya definidas.

Herramientas de planificación de proyectos. Las herramientas de esta categoría se centran en dos áreas primordiales: estimación de costes y de esfuerzos del proyecto de software y planificación de proyectos. Las herramientas de estimación calculan el esfuerzo estimado, la duración del proyecto y el número de personas recomendado para el proyecto. Las herramientas de planificación de proyectos hacen posible que el gestor defina todas las tareas del proyecto (la estructura de desglose de tareas), que cree una red de tareas (normalmente empleando una entrada gráfica), que represente las interdependencias entre tareas y que modele la cantidad de paralelismo que sea posible para ese proyecto.

Herramientas de análisis de riesgos. La identificación de posibles riesgos y el desarrollo de un plan para mitigar, monitorizar y gestionar esos riesgos tienen una importancia fundamental en los proyectos grandes. Las herramientas de análisis de riesgos hacen posible que el gestor del proyecto construya una tabla de riesgos proporcionando una guía detallada en la identificación y análisis de riesgos.

Herramientas de gestión de proyectos. La planificación del proyecto y el plan del proyecto deberán ser rastreados y monitorizados de forma continua. Además, el gestor deberá utilizar las herramientas que recojan métricas que en Última instancia proporcionen una indicación de la calidad del producto del software. Las herramientas de esta categoría suelen ser extensiones de herramientas de planificación de proyectos.

Herramientas de seguimiento de requisitos. Cuando se desarrollan grandes sistemas, las cosas «se derrumban». Es decir, el sistema proporcionado suele no satisfacer los requisitos especificados por el cliente. El objetivo de las herramientas de seguimiento es proporcionar un enfoque sistemático para el aislamiento de los requisitos, comenzando por el RFP del cliente o por la especificación. Las herramientas típicas de seguimiento de requisitos combinan una evaluación de textos por interacción humana, con un sistema de gestión de bases de datos que almacena y categoriza todos y cada uno de los requisitos del sistema que se «analizan» a partir de la RFP o especificación original.


Herramientas de métricas y de gestión. Las métricas del software mejoran la capacidad del gestor para controlar y coordinar el proceso de ingeniería del software y la capacidad del ingeniero para mejorar la calidad del software que se produce. Las métricas o herramientas de medidas actuales se centran en características de procesos y productos. Las herramientas orientadas a la gestión se sirven de métricas específicas del proyecto (por ejemplo, LDC/persona-mes, defectos por punto de función) que proporcionan una indicación global de productividad o de calidad. Las herramientas con orientación técnica determinan las métricas técnicas que proporcionan una mejor visión de la calidad del diseño o del código.

Herramientas de documentación. Las herramientas de producción de documentos y de autoedición prestan su apoyo a casi todos los aspectos de la ingeniería del software, y representan una importante oportunidad de «aprovechamiento» para todos los que desarrollan software. La mayoría de las organizaciones dedicadas al desarrollo de software invierten una cantidad de tiempo considerable en el desarrollo de documentos, y en muchos casos el proceso de documentación en sí resulta bastante deficiente. Es frecuente que una organización de desarrollo de software invierta en la documentación hasta un 20 o un 30 por 100-de su esfuerzo global de desarrollo de software. Por esta razón, las herramientas de documentación suponen una oportunidad importante para mejorar la productividad.

Herramientas de software de sistema. CASE es una tecnología de estaciones de trabajo. Por tanto, el entorno CASE deberá adaptarse a un software de sistema en red de alta calidad, al correo electrónico, a los tablones de anuncios electrónicos y a otras posibilidades de comunicarse.

Herramientas de control de calidad. La mayor parte de las herramientas CASE que afirman tener como principal interés el control de calidad son en realidad herramientas de métricas que hacen una auditoría del código fuente para determinar si se ajusta o no a ciertos estándares del lenguaje. Otras herramientas extraen métricas técnicas en un esfuerzo por extrapolar la calidad del software que se está construyendo.

Herramientas de gestión de bases de datos. El software de gestión de bases de datos sirve como fundamento para establecer una base de datos CASE (repositorio), que también se denominará base de datos del proyecto. Dada la importancia de los objetos de configuración, las herramientas de gestión de bases de datos para CASE pueden evolucionar a partir de los sistemas de gestión de bases de datos relacionales (SGBDR) para transformarse en sistemas de gestión de bases de datos orientadas a objetos (SGBDOO).

Herramientas de gestión de configuración de software. La gestión de configuración de software (GCS) se encuentra en el núcleo de todos los entonos CASE. Las herramientas pueden ofrecer su asistencia en las cinco tareas principales de GCS -identificación, control de versiones, control de cambios, auditoría y contabilidad de estados-. La base de datos CASEproporciona el mecanismo de identificar todos los elementos de configuración y de relacionarlo con otros elementos; el proceso de control de cambios se puede implementar con ayuda de las herramientas especializadas; un acceso sencillo a los elementos de configuración individuales facilita el proceso de auditoria; y las herramientas de comunicación CASE pueden mejorar enormemente la Contabilidad de estados (ofreciendo información acerca de los cambios a todos aquellos que necesiten conocerlos).

Herramientas de análisis y diseño. Las herramientas de análisis y diseño hacen posible que el ingeniero del software cree modelos del sistema que vaya a construir. Los modelos contienen una representación de los datos, función y comportamiento (en el nivel de análisis), así como caracterizaciones del diseño de datos, de arquitectura, a nivel de componentes e interfaz'. Al efectuar una comprobación de consistencia y validez de los modelos, las herramientas de análisis y diseño proporcionan al ingeniero del software un cierto grado de visión en lo tocante a la representación del análisis, y le ayudan a eliminar errores antes de que se propaguen al diseño, o lo que es peor, a la propia implementación.

Herramientas PROISIM. Las herramientas PRO/SIM (de construcción de prototipos y simulación) [MCW] proporcionan al ingeniero del software la capacidad de predecir el comportamiento de un sistema en tiempo real antes de llegar a construirlo. Además, también le capacitan para desarrollar simulaciones del sistema de tiempo real, lo que permitirá que el cliente obtenga ideas acerca de su funcionamiento, comportamiento y respuesta antes de la verdadera implementación.

Herramientas de desarrollo y diseño de interfaz. Las herramientas de desarrollo y diseño de interfaz son en realidad un conjunto de herramientas de componentes de programas (clases) tales como menús, botones, estructuras de ventanas, iconos, mecanismos de desplazamiento de la pantalla, controladores de dispositivos, etc. Sin embargo, estos conjuntos de herramientas se están viendo sustituidos por herramientas de construcción de prototipos de interfaz que permiten una rápida creación en pantalla de interfaces de usuario sofisticadas, que se ajustan al estándar de interfaz que se haya adoptado para el software.

Herramientas de construcción de prototipos. Se puede utilizar toda una gama de herramientas de construcción de prototipos. Los generadores de pantallas permiten al ingeniero del software definir rápidamente la disposición de la pantalla para aplicaciones interactivas. Otras herramientas de prototipos CASE más sofisticadas permiten la creación de un diseño de datos, acompañado por diseños e informes de la pantalla. Muchas herramientas de análisis y diseño son más extensas y proporcionan opciones de construcción de prototipos. Las herramientas PRO/SIM generan un diseño esquemático de código fuente en Ada y para las aplicaciones de ingeniería (en tiempo real). Por último, una gama amplia de herramientas de cuarta generación poseen también características de construcción de prototipos.

Herramientas de programación. La categoría de herramientas de programación abarca los compiladores, editores y depuradores disponibles para apoyar a la mayoría de los lenguajes de programación convencionales. Además, en esta categoría también residen los entornos de programación orientados a objetos (00), los lenguajes de cuarta generación, los entornos de programación gráfica, los generadores de aplicaciones y los lenguajes de consulta de bases de datos.

Herramientas de desarrollo de Webs. Las actividades asociadas a la ingeniería Web están apoyadas por una variedad de herramientas de desarrollo de WebApps. Entre estas herramientas se incluyen las que prestan ayuda en la generación de texto, gráficos, formularios, guiones, applets y otros elementos de una página Web.

Herramientas de integración y pruebas. En el directorio de herramientas de pruebas de software del Software Quality Engineering [SQE95], se definen las categorías de herramientas de pruebas siguientes:

  1. adquisición de datos: herramientas que adquieren los datos que se utilizarán durante la prueba

  1. medida estática: herramientas que analizan el código fuente sin ejecutar casos de prueba

  1. medida dinámica: herramientas que analizan el código fuente durante la ejecución

  1. simulación: herramientas que simulan las funciones del hardware o de otros elementos externos

  1. gestión de pruebas: herramientas que prestan su asistencia en la planificación, desarrollo y control de las pruebas

  1. herramientas de funcionalidad cruzada: se trata de herramientas que atraviesan los límites de las categorías anteriores.

Debería tenerse en cuenta que muchas de las herramientas de prueba poseen características que abarcan dos categorías o más de las anteriormente mencionadas.

Herramientas de análisis estático. Las herramientas de análisis estático prestan su asistencia al ingeniero del software a efectos de derivar casos prácticos. En la industria se utilizan tres tipos distintos de herramientas estáticas de prueba: herramientas de prueba basadas en código; lenguajes de prueba especializados y herramientas de prueba basadas en requisitos. Las herramientas de prueba basadas en código admiten un código fuente (o LDP) como entrada, y llevan a cabo varios análisis de los que se obtiene la generación de casos de prueba. Los lenguajes de prueba especializados(por ejemplo, ATLAS) hacen posible que el ingeniero del software escriba especificaciones de prueba detalladas para describir todos los casos de prueba y la logística de su ejecución. Las herramientas de prueba basadas en requisitos aíslan los requisitos del usuario y sugieren los casos de prueba (o clases de prueba) que ejercitarán esos requisitos.

Herramientas de análisis dinámico. Las herramientas de análisis dinámico interactúan con el programa que se esté ejecutando, prueban la cobertura de rutas, prueban las afirmaciones acerca del valor de variables específicas instrumentan por otro lado el flujo de ejecución del programa. Las herramientas dinámicas pueden ser intrusivas, o no intrusivas. Lasherramientas intrusivas modifican el software que hay que comprobar mediante la inserción de sondas (instrucciones adicionales) y que efectúan las actividades mencionadas anteriormente. Las herramientas de prueba no intrusivas utilizan un procesador hardware por separado que funciona en paralelo con el procesador que contiene el programa que se está probando.

Herramientas de gestión de pruebas. Las herramientas de gestión de pruebas se utilizan para controlar y coordinar las pruebas del software por todos y cada uno de los pasos principales de las pruebas. Las herramientas de esta categoría gestionan y coordinan las pruebas de regresiones, efectúan comparaciones que determinan las diferencias entre la salida real y la esperada y realizan pruebas por lotes de programas con interfaces hombre- máquina interactivas. Además de las funciones indicadas anteriormente, muchas herramientas de gestión de pruebas sirven también como controladores de pruebas genéricos. Un controlador de pruebas lee uno o más casos de prueba de algún archivo de pruebas, aplica formato a los datos de prueba para que se ajusten a las necesidades del software que se está probando, e invoca entonces al software que es preciso probar.

Herramientas de pruebas cliente/servidor. El entorno C/S exige unas herramientas de pruebas especializadas que ejerciten la interfaz gráfica de usuario y los requisitos de comunicaciones en red para el cliente y el servidor.

Herramientas de reingeniería. Las herramientas para el software heredado abarca un conjunto de actividades de mantenimiento que actualmente absorben un porcentaje significativo de todo el esfuerzo relacionado con el software. La categoría de herramientas de reingeniería se puede subdividir en las funciones siguientes:

  1. herramientas de ingeniería inversa para producir especificaciones: se toma el código fuente como entrada y se generan modelos gráficos de análisis y diseño estructurados, listas de utilización y más información sobre el diseño

  1. herramientas de reestructuración y análisis de código: se analiza la sintaxis del programa, se genera una gráfica de control de flujo y se genera automáticamente un programa estructurado

  1. herramientas de reingeniería para sistemas online: se utilizan para modificar sistemas de bases de datos on-line (por ejemplo, para convertir archivos IDMS o DB2 en un formato de entidades y relaciones).

Muchas de las herramientas anteriores se ven limitadas a lenguajes de programación específicos (aunque abarcan la mayoría de los lenguajes principales) y requieren un cierto grado de interacción con el ingeniero del software.

No hay comentarios:

Publicar un comentario