Sunteți pe pagina 1din 12

1.

1 CLASIFICACIN DE LAS HERRAMIENTAS CASE Tradicionalmente las herramientas CASE han sido categorizadas dependiendo de la fase del ciclo de vida donde se emplean. No obstante, resulta igualmente interesante su clasificacin de acuerdo con el nivel de integracin, una preocupacin creciente en la Ingeniera del Software asistida por computadora. Las siguientes secciones estudian con detalle ambas clasificaciones basada en el ciclo de vida, por permitir una clasificacin ms detallada de las herramientas. 1.1.1 Herramientas CASE segn el ciclo de vida

La clasificacin ms habitual divide las herramientas CASE segn la fase del ciclo de vida para el cual han sido concebidas de hecho, esta es una clasificacin que propone la gua SWEBOK-. No es infrecuente tampoco, ver como se distingue entre herramientas Upper-CASE y herramientas Lower-CASE, dependiendo de las fases del ciclo de vida al que proporcionen soporte. Las herramientas Upper-CASE dan soporte, segn esta clasificacin, a tareas del desarrollo mas cercanas a la definicin conceptual (obtencin de requisitos, anlisis, etc.), mientras que las Lower-CASE dan soporte a tareas de programacin, diseo, pruebas, mantenimiento o gestin de la configuracin. Como lo muestra la siguiente figura:

Empleo de herramientas a lo largo del ciclo de vida del software Gestin Anlisis Diseo Construccin Upper CASE: Herramientas de gestin de proyectos Upper CASE: Herramientas de requisitos Upper CASE: Herramientas de diagramacin y modelado Lower CASE: Herramientas de generacin de cdigo y BBDD Lower CASE: Herramientas de gestin de la configuracin Pruebas Mantenimiento Lower CASE: Herramientas de pruebas Lower CASE: Herramientas de generacin de documentacin Lower CASE: Herramientas de requisitos y gestin de cambios

A continuacin se muestra una clasificacin detallada de las herramientas CASE segn la fase del ciclo de vida del desarrollo del software en la que se aplican. Herramientas de requisitos Dentro de esta categora de herramientas podemos encontrarnos con dos tipos:

Herramientas para el modelado de requisitos. Se utilizan para la obtencin, anlisis, especificacin y validacin de los requisitos. Herramientas para el seguimiento de los requisitos (trazabilidad). Permiten hacer un seguimiento de los requisitos a lo largo de todo el ciclo de vida del desarrollo, identificando, por ejemplo, que artefactos implementan un determinado requisito, o que elementos de diseo dan cumplimiento a un cierto conjunto de requisitos.

Las herramientas para el modelado de requisitos son muy variadas, ya que dentro de esta categora se engloban tareas relacionadas, pero heterogneas. As, las herramientas para la obtencin de requisitos proporcionan facilidades para los diferentes actores implicados en la recogida de los requisitos para introducirlos y centralizarlos, permitiendo y facilitando, en ocasiones, la conexin con plataformas de trabajo en grupo. Las herramientas para el anlisis de requisitos, a menudo, proporcionan plantillas para documentos y hoja de clculo que facilitan la creacin de documentos simples que permiten reflejar el anlisis a realizar dentro de los distintos tipos de requisitos. Un ejemplo de este tipo de herramientas son aquellas que permiten hacer anlisis de escenarios y que incorporan facilidades para comprobar la consistencia entre escenarios o su complecin y consistencia con ciertos modelos de requisitos. Las herramientas para la especificacin de requisitos suelen incluir un lenguaje de especificacin (ms o menos formal) que permite modelar los requisitos de acuerdo a dicho lenguaje o notacin. A menudo, se trata de herramientas que permiten modelar requisitos visualmente basndose en notaciones conocidas, tales como los casos de uso. Finalmente, las herramientas para la evaluacin de requisitos permiten comprobar la correccin de los mismos, proporcionando habitualmente al desarrollador alguna facilidad para comprobar la consistencia de los requisitos con un modelo dado, tales como comprobadores automticos de sintaxis o semntica. Las Herramientas para el seguimiento de requisitos son cada vez ms importantes en el proceso de requisitos, ya que la complejidad del software construido hace muy difcil determinar qu requisito determin un cierto artefacto o una cierta parte del diseo, si no se dispone de herramientas software especficas. Estas herramientas, por tanto, almacenan toda la informacin sobre los requisitos, como por ejemplo, los documentos de especificacin que los originaron, los documentos de anlisis y diseo donde se implementaron o las pruebas de aceptacin que permiten comprobar su cumplimiento. Gracias a estas herramientas es posible, no solo seguir la traza de un requisito, sino tambin elaborar informes sobre el cumplimiento de los mismos o el estado de desarrollo del producto de acuerdo con una necesidad concreta. Herramientas para diseo Cuando se desea disear un sistema software es necesario utilizar herramientas que soporten la creacin de grficos, que sean conformes con las diferentes notaciones de diseo que pudieran ser empleadas (tales como UML) y que, en general, ayuden a automatizar las tareas de anlisis y diseo del software a partir de los requisitos del sistema. En esta rea, el espectro de actividades

es tan amplio que las herramientas de diseo podran subdividirse atendiendo, como criterio de la clasificacin, a cada una de las actividades especficas del diseo. Algunas de las subcategoras podran ser (entre otras): Herramientas para el diseo de interfaces. Herramientas para la elaboracin de prototipos. Herramientas para la creacin de diagramas de anlisis y diseo. Herramientas para presentacin e implementacin de arquitecturas de software. Herramientas para la descripcin y comprobacin de restricciones. Diccionarios de datos, que permiten almacenar informacin sobre las entidades del diseo y sus relaciones. Herramientas para construccin En los albores de las ciencias de la computacin, la programacin era la nica preocupacin de los desarrolladores. Hoy en da existen muchos otros aspectos igual de importantes- a tomar en cuenta en un proyecto de desarrollo de software. Sin embargo, al ser la programacin la actividad (tradicionalmente) central del proceso, existen para esta etapa ms herramientas que para cualquier otra. El nmero y tipo de herramientas para construccin disponibles es muy elevado. Entran dentro de esta categora los editores, los compiladores e intrpretes, los enlazadores, los depuradores, las herramientas para el diseo y construccin de interfaces, las herramientas para creacin y ejecucin de ejecutables o las herramientas para construccin de prototipos y simulaciones, entre otras. Muchas de ellas son dependientes del lenguaje, tales como los compiladores o los intrpretes, mientras que otras, como los editores de texto, son herramientas de propsito general que se adaptan a la construccin de software. Si bien muchas de las herramientas de construccin son de sobra conocidas, como los compiladores o los editores de texto, es interesante dedicar algunas lneas a las herramientas de construccin automtica de ejecutables a partir del cdigo fuente. Se tratan de herramientas que simplifican el proceso de compilacin del software utilizando ficheros de configuracin (a menudo denominados ficheros make) y que permiten, entre otras funcionalidades obvias como la generacin del cdigo objeto, un mayor control del proceso de construccin, realizar configuraciones especficas para diferentes sistemas, generar preprocesadores o utilizar plantillas de configuracin. Algunas de ellas son, incluso, independientes del compilador utilizado y de la plataforma destino, lo que les confiere una gran flexibilidad. Herramientas para pruebas Muchas de las actividades relacionadas con las pruebas son repetitivas y hasta cierto modo montonas, por lo que sta es una de las reas donde la utilizacin de herramientas de apoyo cobra mayor sentido. Es posiblemente por ello por lo que la automatizacin de las pruebas es una de las reas para las que existe un mayor nmero de herramientas disponibles. Teniendo en cuenta slo aquellas herramientas de cdigo fuente abierto, podemos listar ms de 300 herramientas orientadas a facilitar las pruebas de los ms diversos tipos: pruebas funcionales, de rendimiento, de gestin de pruebas, pruebas de unidad, de deteccin y seguimiento de fallos,

pruebas de regresin, etc. Las herramientas CASE para las pruebas se enmarcan dentro de las siguientes categoras: Generadores de pruebas. Marcos de trabajo (frameworks) para la ejecucin de pruebas. Herramientas de evaluacin de pruebas. Herramientas de gestin de las actividades de pruebas. Analizadores de rendimiento. La implementacin es una coleccin de pruebas, por ejemplo, se lleva a cabo un plan de pruebas y de acuerdo con las directrices de una especificacin de pruebas, por lo que todos los actores implicados en este proceso deben trabajar estrechamente. Por ello, junto con aquellas herramientas especficamente diseadas para un tipo concreto de pruebas, existen a disposicin de los desarrolladores conjuntos de herramientas (cajas de herramientas y bancos de trabajo) que integran varias herramientas relacionadas. SE trata de software que, adems de proporcionar apoyo tcnico para la realizacin de los distintos tipos de prueba que cubren y facilitan el trabajo en grupo, incluyen, adems, capacidades para realizar tareas de gestin del propio proceso, tales como monitorizar las pruebas realizadas, controlar los equipos que las llevan a cabo, realizar informes y estadsticas, etc. Herramientas para mantenimiento El mantenimiento del software es una actividad compleja a la que se dedica mucho tiempo y esfuerzo. Se trata de una tarea de tal importancia que se hace difcil pensar en llevarla a cabo sin ayuda de herramientas. Dentro de la categora de las herramientas CASE para el mantenimiento, es posible sealar fundamentalmente dos: las herramientas de anlisis de cdigo y las herramientas para la ingeniera inversa. No obstante, tambin se utilizan durante esta fase herramientas de pruebas (fundamentalmente simuladores de pruebas), de generacin de documentacin y de gestin de la configuracin, entre otras. Las herramientas de anlisis de cdigo permiten comprender otros programas, por lo que son especialmente importantes en una fase como la de mantenimiento, donde una gran parte del esfuerzo se invierte en comprender el software que se ha de mantener. Dentro de este tipo de herramientas se encuentran las siguientes: Analizadores estticos, que permiten marcar aquellas secciones de un programa que pueden tener influencia en otro punto que quiere analizarse, facilitando a menudo esta tarea mediante el uso de grficos. Los encargados del mantenimiento pueden as concentrarse en aquello que podra cambiar cuando, por ejemplo, se modifica el valor de una variable, lo que permite prever los efectos de la introduccin de los cambios. Analizadores dinmicos o inspectores, que permiten analizar un programa durante su ejecucin. Algunos, como los analizadores del flujo de datos, permiten observar la lgica del programa y las relaciones entre diferentes elementos. Gestores de referencias cruzadas, que facilitan informacin sobre el uso de un programa, pues permiten hacer bsquedas en la base de datos de dependencias del mismo para, por ejemplo, comprender mejores las interrelaciones y dependencias entre los mdulos. A menudo, permiten mostrar dicha dependencia mediante grficos.

Dentro de las herramientas de ingeniera inversa se pueden citar multitud de ellas, si bien las ms conocidas sean quiz las siguientes: Compiladores inversos (o descompiladores), que permiten obtener cdigo fuente a partir de un cdigo objeto. Si el cdigo obtenido es ensamblador entonces se denominan desensambladores. Herramientas de anlisis de cdigo de bajo nivel, tales como los editores de cdigo hexadecimal y los analizadores de cdigo objeto. Generadores de diagramas de diseo a partir del cdigo fuente, como los generadores de diagramas de clases o de paquetes. Generadores de diagramas de bases de datos, que permiten generar modelos de alto nivel (por ejemplo, diagramas de entidad-relacin) a partir de la informacin existente en la base de datos Cualquier modificacin que deba abordarse como parte de una tarea de mantenimiento debe ser probada adecuadamente antes de darla por vlida. Las herramientas CASE que se emplean durante las pruebas en tareas de mantenimiento son las mismas que se han descrito en la seccin anterior, si bien resulta interesante mencionar los simuladores de pruebas, ya que se utilizan ms frecuentemente en tareas de mantenimiento que en nuevos desarrollos. Se trata de herramientas que permiten comprobar los efectos que tendra un cambio en el sistema actual, lo cual ayuda a valorar la oportunidad de llevarlos a cabo. Herramientas para la gestin de la configuracin

Las herramientas para la gestin de la configuracin pueden clasificarse en tres categoras: Herramientas para deteccin y seguimiento, herramientas para el control de versiones y herramientas de construccin y distribucin de entregas del software. Las herramientas para deteccin y seguimiento permiten monitorizar y seguir los defectos, problemas, mejoras y otras cuestiones dentro de un desarrollo de software. Las herramientas de gestin de flujos de trabajo facilitan la colaboracin de las diferentes personas que intervienen en un proceso de este tipo. Igualmente, la utilizacin de una base de datos de cambio, problemas, defectos y otros asuntos pendientes permite una mayor facilidad ala hora de administrar todas las tareas relacionadas con los cambios. Las herramientas de control de versiones permiten controlar los cambios producidos en un software entre las distintas versiones del mismo. Las herramientas de construccin y generacin de entregas automatizan las tareas de elaboracin de una nueva entrega del software a partir de un conjunto de archivos de configuracin creados a tal efecto. Estas herramientas parten de una especificacin que dicta que es lo que se quiere construir, cuales son las dependencias de construccin y cules son las reglas para llevar dicha tarea a cabo y, a partir de los archivos fuente creados por los programadores, realiza las siguientes tareas:

Construye los elementos a instalar en la mquina destino. Detecta la configuracin del sistema destino. Busca e instala los archivos de cabecera, bibliotecas y otros archivos de configuracin necesarios para la correcta ejecucin del software. Instala los archivos de ayuda y otros elementos auxiliares. Realiza las tareas finales necesarias para que el nuevo software pueda ejecutarse (por ejemplo, si es necesario un reinicio del sistema, lo fuerza). Herramientas para gestin Los gestores de proyectos tratan con actividades que demandan la participacin de personas con un perfil de especializacin determinado y cuyo nmero es limitado. En el desarrollo de proyectos de cierta envergadura, la asignacin de recursos a tareas resulta de gran complejidad. Posiblemente por ello, la gestin del desarrollo es una de las tareas ms cubiertas por la oferta comercial de herramientas CASE. Las herramientas disponibles son muchas y muy variadas, aunque es posible agruparlas en las siguientes categoras: Herramientas de planificacin y seguimiento de proyectos. Estas herramientas estn orientadas a proporcionar una planificacin ms eficiente, realizar estimaciones del esfuerzo y los costes, y en definitiva, a proporcionar una mejor gestin y desarrollo del proceso de construccin, en general. Facilitan la tarea de los gestores del proyecto, pues permiten controlar la asignacin de recursos a tareas, ajustar dichas asignaciones para evitar conflictos, gestionar los plazos de las diferentes actividades, controlar los gastos asignando presupuestos tanto a las tareas como al proyecto en su conjunto, etc., y generar grficos e informes sobre cualquiera de estos aspectos. Herramientas de gestin de riesgos, que como su propio nombre indica, permiten identificar, priorizar y gestionar los riesgos del desarrollo. Se entiende por gestin de riesgos el control y verificacin constante de aquello que podra ir mal, las actividades para determinar qu riesgos son importantes y la implementacin de estrategias para gestionar dichos riesgos. Algunas de estas herramientas han sido desarrolladas para procesos especficos, si bien los principios bsicos de la mayora de ellas permiten aplicarlas a cualquier proceso de desarrollo donde se realice gestin de riesgos. Herramientas para medicin. Debido al aumento de la medicin como parte de las labores de ingeniera del software, han aparecido en el mercado numerosas herramientas que dan soporte a los diferentes mtodos de medicin, y en particular, a la recogida y anlisis de datos para la posterior elaboracin de informes. No obstante, existe mucha confusin todava, debida, en buena medida, a la inmadurez de la Ingeniera del Software en esta rea, por lo que no es infrecuente ver cmo casi cada fabricante proporciona su propio conjunto diferente de medidas, a menudo incompatibles con las que proporcionan otros fabricantes. Herramientas para procesos Dentro de esta categora se clasifican las herramientas de modelado, las herramientas de gestin de procesos y los entornos integrados. Los modelos de procesos son complejas estructuras que permiten describir formalmente los pasos y actividades de un desarrollo. La creacin de estos modelos por parte de los ingenieros del

software permite crear un modelo especfico para un desarrollo concreto (lo que denomina instanciar un modelo de procesos). Las herramientas de modelado permiten cuestionar e investigar los procesos de Ingeniera del Software, as como disear, realizar y probar modelos de dichos procesos. Las herramientas de gestin de procesos permiten gestionar la ejecucin de los procesos software una vez que han sido modelados e instanciados, incluir aspectos crticos para el rendimiento del proceso (por ejemplo, caractersticas especficas y experiencias anteriores de los recursos humanos que participarn en el mismo), y administrar la naturaleza dinmica de los procesos, lo que a menudo obliga a remodelar un proceso debido a modificaciones o a eventos imprevistos. Este tipo de herramientas suelen clasificarse como entornos CASE centrados en el proceso (IPSEE), pues incorporan informacin sobre los procesos y guan a los gestores de acuerdo con un proceso definido. Al tratarse de las herramientas que gestionan mltiples funciones, tienen mucha interaccin con el proceso en ejecucin. Herramientas para garantizar la calidad La calidad es una preocupacin creciente en los desarrollos, por lo que cada vez resulta ms necesario utilizar herramientas que den soporte a las actividades relacionadas con su gestin. Las herramientas para calidad de software pueden dividirse, fundamentalmente, en dos categoras: Herramientas de auditoras e inspeccin: facilitan la realizacin y revisiones de los diferentes artefactos generados durante el desarrollo. Permiten identificar qu artefactos no se ajustan a ciertos estndares de calidad., hacer un seguimiento de los mismos, inventariar los problemas de calidad detectados y realizar informes. Herramientas de anlisis esttico: permiten comprobar la conformidad, tanto del software como de los artefactos generados durante el desarrollo con los estndares o especificaciones de calidad empleados, o simplemente, comprobar que verifican ciertas propiedades. Se emplean analizadores sintcticos y semnticos que permiten comprobar que los datos y relaciones entre ellos son correctas. 1.1.2 Herramientas CASE segn su nivel de integracin

A medida que la industria del software se ha desarrollado, han ido apareciendo herramientas cada vez mas potentes y complejas que dan soporte, bien a actividades puntuales o bien a conjunto de actividades relacionadas. Segn este criterio, es posible clasificar las herramientas CASE en cuatro tipos con muy distinto nivel de integracin. Con frecuencia se hace uso de mas de una herramienta CASE durante las distintas actividades del ciclo de vida de un software. De hecho, para cubrir todas las actividades a realizar suelen emplearse combinaciones de herramientas que soportan conjunto de tareas (conocidas como bancos de trabajo) y herramientas especficas para una tarea (denominadas herramientas independientes).

Debe tenerse en cuenta que la utilizacin de diversas herramientas no es inmediata, sino que se deriva de ella un conjunto de problemas cuya descripcin exhaustiva sera demasiado prolija. No obstante, es posible enumerar los ms relevantes: Las herramientas consideradas idneas para las diferentes actividades del desarrollo no sern, casi con seguridad, del mismo fabricante. Algunas herramientas han sido diseadas para trabajar sobre una cierta plataforma, y lamentablemente no lo hacen correctamente sobre otras. Ciertas herramientas pueden importar datos de otras, pero no te todas aquellas con las que podran llegar a interconectarse. A veces, tampoco son capaces de exportar datos en formatos que permitan a otras herramientas importarlos correctamente. La falta de flexibilidad de algunas herramientas no permite adaptarlas para configurar caractersticas especficas de ciertos elementos, tales como la apariencia de la interfaz o sus conexiones con otras herramientas.

Dado que en los desarrollos actuales se utilizarn, casi con seguridad, herramientas en muchos puntos diferentes del ciclo de vida, y dado que ser deseable que dichas herramientas puedan cooperar, es importante estudiar diferentes tcnicas o categoras de integracin entre herramientas. As, es posible identificar cinco niveles de integracin: 1. La integracin a nivel de plataforma se refiere a la capacidad de diferentes herramientas para interoperar en un entorno de red heterogneo. 2. La integracin a nivel interfaz tiene que ver con la uniformidad en la representacin de la informacin al usuario. 3. La integracin a nivel de proceso se da cuando existe una relacin entre las herramientas y el propio proceso de desarrollo que permite enlazarlos. 4. La integracin a nivel de datos se da cuando existe la posibilidad de que distintas herramientas intercambien y compartan datos. 5. La integracin de control tiene que ver con la capacidad de una herramienta para desencadenar comportamientos en otra (iniciar acciones, notificar eventos, etc.). La discusin subsiguiente analiza los diferentes conjuntos o entornos de herramientas segn su nivel de integracin. Este criterio nos permitir clasificarlos en cuatro grupos distintos: herramientas independientes, cajas de herramientas (a menudo conocidos como toolkits), bancos de trabajo y entornos CASE, los cuales a su vez se clasifican en entornos CASE integrados y entornos CASE centrados en el proceso. En los puntos siguientes se estudiarn con mayor profundidad cada una de estas categoras. Herramientas CASE independientes

Son aquellas que realizan nicamente una tarea especfica y definida dentro del desarrollo. Si bien es cierto que en la mayora de los casos pueden trabajar conjuntamente con otras herramientas, son independientes y pueden por tanto, instalarse y utilizarse por separado. Algunos ejemplos de este tipo de herramientas sera un depurador de cdigo, un software para diseo de diagramas entidad-relacin para bases de datos, o un generador de informes, por citar solo algunos de los ms conocidos. No obstante, debe tenerse en cuenta que pocas herramientas son completamente independientes, pues la mayora se adhiere a estndares o especificaciones de funcionamiento que les permiten proporcionar salidas en un <formato> comprensible para otras herramientas CASE. Esto es as, incluso en muchas herramientas que no fueron inicialmente concebidas para trabajar con ninguna otra herramienta en particular. Las herramientas CASE independientes conforman el nivel mayor de independencia, lo que conlleva un mnimo o nulo nivel de integracin. Incluso as, es posible integrarlas con otras herramientas para que cooperen (y a menudo se desea hacerlo); sin embargo, este esfuerzo corre por parte del equipo de desarrollo. Cajas de herramientas (toolkits) En el siguiente nivel de integracin se encuentran las cajas de herramientas. Pensar en el carpintero que tiene centralizado en un determinado lugar todas las posibles herramientas de las que habitualmente hace uso durante su trabajo, es una metfora que define muy bien lo que son las cajas de herramientas en la Ingeniera del Software. Una cajas de herramientas contiene un conjunto de herramientas simples, cada una de las cuales tiene un fin especfico. Entre ellas no se han implementado mecanismos de integracin, por lo que el funcionamiento conjunto suele requerir un esfuerzo extra para su integracin, lo cual no siempre es posible. Las herramientas en este tipo de entorno estn dbilmente acopladas, pues no dependen de otras para su correcto funcionamiento ni tampoco estn diseadas para tener en cuenta que los datos o informes que generan puedan ser utilizados por otras herramientas. La principal ventaja de las cajas de herramientas es que resulta posible utilizar solo algunas de ellas. As, muchos entornos permiten personalizar la instalacin, indicando que herramientas quieren instalarse y cuales no. Pueden ser tiles gracias a su flexibilidad como colecciones de base cuando, por ejemplo, en un punto concreto del desarrollo se considera ms interesante utilizar una herramienta independiente y no la herramienta proporcionada por el toolkit. En cuanto a los inconvenientes, nos encontramos con todos los derivados de los problemas de integracin ya sealados. Bancos de trabajo (workbenchs) La creciente necesidad de utilizar herramientas en diferentes fases del desarrollo ha llevado a la aparicin de conjuntos de herramientas integradas. El concepto de banco de trabajo (workbench en ingls) define un entorno prctico formado por un conjunto uniforme de herramientas que facilitan las tareas de desarrollo en algn punto del mismo; estas herramientas estn orientadas a las tareas y no al tipo de proyecto, por lo que dan soporte a una o varias fases del desarrollo, pero no a todas. As, un banco de trabajo para programacin incluir un conjunto de herramientas para

la programacin (editor, compilador, depurador, enlazador, etc.), no especficamente dirigidas a un modelo especfico de ciclo de vida, mientras que uno para diseo incluir un conjunto de herramientas especficamente dirigidas a facilitar la tarea del diseador del software. Una de las caractersticas a resaltar en esta definicin de banco de trabajo es el hecho de que las herramientas que la conforman son capaces de cooperar entre si, es decir, estn integradas. As, debe tenerse en cuenta que los bancos de trabajo incluyen herramientas completamente independientes (tales como un editor de texto), si bien algunas de ellas son fuertemente dependientes del banco de trabajo y no pueden utilizarse fuera del mismo. Es importante tener en cuenta que la utilizacin combinada de uno o ms bancos de trabajo y/o herramientas CASE independientes para cubrir todas las actividades del ciclo de vida del desarrollo obliga a la organizacin a un esfuerzo de integracin muy importante. Adems dicho esfuerzo puede toparse con diversos problemas, no siempre solucionables. Dificultad para combinar fcilmente herramientas o bancos de trabajo que cubran todo el ciclo de vida del desarrollo del software. Esto ocurre cuando, por ejemplo, las herramientas de requisitos y las de diseo tienen diferentes arquitecturas de implementacin o dan soporte a mtodos distintos. Desalineamientos o solapamientos de herramientas que llevan a cabo tareas similares. Por ejemplo, cuando varias herramientas llevan a cabo formas de control de versiones incompatibles entre s. Inexistencia de procedimientos para el intercambio de datos entre aplicaciones. Problemas para realizar la integracin en el control de las herramientas, por ejemplo, cuando los problemas en la comunicacin impiden realizar tareas donde una herramienta necesita invocar un comportamiento en otra. Problemas derivados de la dificultad para monitorizar el progreso de las tareas desde el punto de vista de su gestin.

Los entornos CASE, que constituyen el nivel ms alto de integracin, aspiran a resolver todos estos problemas. Entornos CASE En la mayora de desarrollos es imprescindible la integracin de las herramientas CASE utilizadas. As, los artefactos de diseo deben estar relacionados con el cdigo generado y con los requisitos que dieron origen a ambos, diseo y cdigo, detallando todas estas relaciones en la documentacin correspondiente. Todo ellos debe, adems, estar sujeto a un riguroso control de versiones. De este modo, surge la necesidad de conectar las diferentes herramientas y/o bancos de trabajo utilizados a lo largo de las diferentes fases del desarrollo, evitando lo que algunos autores han denominado isla de desarrollo.

Para conformar un entorno global, pueden organizarse diferentes herramientas CASE y bancos de trabajo, pero deben integrarse si aspiran a operar uniformemente sobre distintas plataformas software y hardware y proporcionar soporte a mltiples tipos de usuarios. Algunos de ellos, como los gestores de desarrollo y los desarrolladores propiamente dichos, se sirven simplemente de algunas de las herramientas proporcionadas para hacer ms fcil su tarea. Otros, como los integradores de herramientas, garantizan que las herramientas cooperen correctamente y funcionan sin problema sobre la plataforma hardware o software utilizada y que es mantenida por los administradores del sistema. En suma, los entornos integrados surgen de la necesidad de que diferentes personas realicen tareas interdependientes. As por ejemplo, los programadores generan cdigo que ser probado por otras personas, pero que debe estar centralizado para que todos tengan acceso a dicho cdigo: los ingenieros de pruebas para consultarlos y probarlos y los propios programadores para introducir modificaciones en el mismo, derivadas del propio progreso del desarrollo o de los errores detectados durante las pruebas. El objetivo es que las herramientas que utilicen las diferentes personas involucradas en el desarrollo sean tan interoperables como sea posible, por lo que su esfuerzo en la integracin es previo al inicio del desarrollo. Es, en realidad, la propia organizacin que distribuye el entorno que debe hacer dicho esfuerzo y quien, en buena medida, es responsable de los errores de integracin que pudieran aparecer. Los entornos CASE constituyen el nivel ms alto de integracin dentro de las herramientas CASE, y surgen para superar los problemas que plantea la integracin de uno o ms bancos de trabajo y herramientas CASE independientes. Es importante destacar que un conjunto de herramientas heterogneas para el desarrollo no constituye por s solo un entorno CASE. Debe existir, por el contrario, algn tipo de mecanismo que facilite la interaccin entre las herramientas que lo conforman, lo cual puede ser un mecanismo fsico como una base de datos centralizada donde se almacenan todos los datos del desarrollo (repositorio CASE o bus de software), o una concepcin comn sobre cul debe ser la filosofa que gue el desarrollo, o una combinacin de ambas cosas. Segn el enfoque de integracin, podemos identificar dos tipos: Entornos de soporte integrados al proyecto (IPSE, del acrnimo ingls integrates Project support environment). Entorno case que da soporte a todas las fases del desarrollo, y que incluye un repositorio central con el que las herramientas se comunican para obtener y almacenar datos. Puede incluir componentes de diferentes fabricantes, los cuales, eso si, comparten el mismo repositorio. Estos componentes podran tener una concepcin distinta al proceso de desarrollo, pero estn diseados para escribir y leer el repositorio de manera estandarizada, lo que les permite cooperar con otras herramientas o componentes. Entornos CASE centrados en el proceso (PSEE, de process centered engineering environment). SE trata de entornos formados por herramientas que poseen idntica concepcin del proceso de desarrollo. Al haber sido especficamente diseadas para utilizarse en un determinado proceso de desarrollo, las herramientas que la conforman suelen mantener unos mayores niveles de acoplamiento, si bien, tambin es posible la

utilizacin de herramientas externas en tareas concretas, pues suelen permitir la conexin con compiladores o gestores de configuracin independientes.1

S-ar putea să vă placă și