
La ingeniería de software asistida por computadora ( CASE ) es un dominio de herramientas de software utilizadas para diseñar e implementar aplicaciones. Las herramientas CASE son similares a las herramientas de diseño asistido por computadora (CAD) utilizadas para diseñar productos de hardware y están parcialmente inspiradas en ellas. Las herramientas CASE están diseñadas para ayudar a desarrollar software de alta calidad, libre de defectos y mantenible. [ 1 ] El software CASE se asociaba frecuentemente con métodos para el desarrollo de sistemas de información junto con herramientas automatizadas que podían utilizarse en el proceso de desarrollo de software . [ 2 ]
Historia
El proyecto Sistema de Diseño y Optimización de Sistemas de Información (ISDOS), iniciado en 1968 en la Universidad de Michigan , despertó un gran interés en el concepto de utilizar sistemas informáticos para ayudar a los analistas en el complejo proceso de analizar requisitos y desarrollar sistemas. Varios artículos de Daniel Teichroew inspiraron a toda una generación de entusiastas con el potencial del desarrollo automatizado de sistemas. Su herramienta Lenguaje de Declaración de Problemas / Analizador de Declaración de Problemas (PSL/PSA) era una herramienta CASE, aunque anterior al término. [ 3 ]
Otro aspecto importante surgió como una extensión lógica del diccionario de datos de una base de datos . Al ampliar el rango de metadatos almacenados, los atributos de una aplicación podían guardarse en un diccionario y utilizarse en tiempo de ejecución. Este "diccionario activo" se convirtió en el precursor de la capacidad de ingeniería dirigida por modelos más moderna . Sin embargo, el diccionario activo no proporcionaba una representación gráfica de ninguno de los metadatos. Fue la vinculación del concepto de un diccionario que almacenaba los metadatos de los analistas, derivado del uso de un conjunto integrado de técnicas, junto con la representación gráfica de dichos datos, lo que dio origen a las primeras versiones de CASE. [ 4 ]
El siguiente participante en el mercado fue Excelerator de Index Technology en Cambridge, Massachusetts. Mientras que DesignAid funcionaba en microcomputadoras en red de Convergent Technologies y, posteriormente, de Burroughs Ngen, Index lanzó Excelerator en la plataforma IBM PC/AT . Si bien, en el momento de su lanzamiento y durante varios años, la plataforma IBM no admitía redes ni bases de datos centralizadas como las máquinas de Convergent Technologies o Burroughs, el atractivo de IBM era fuerte y Excelerator alcanzó gran popularidad. Inmediatamente después de Excelerator, surgieron numerosas ofertas de empresas como Knowledgeware (James Martin, Fran Tarkenton y Don Addington), CA Gen de Texas Instruments y el conjunto de herramientas FOUNDATION de Andersen Consulting (DESIGN/1, INSTALL/1, FCP). [ 5 ]
Las herramientas CASE alcanzaron su apogeo a principios de la década de 1990. [ 6 ] Según la revista PC Magazine de enero de 1990, más de 100 empresas ofrecían cerca de 200 herramientas CASE diferentes. [ 5 ] En ese momento, IBM había propuesto AD/Cycle, que era una alianza de proveedores de software centrada en el repositorio de software de IBM que utilizaba IBM DB2 en mainframe y OS/2 :
- Las herramientas de desarrollo de aplicaciones pueden provenir de diversas fuentes: de IBM, de proveedores y de los propios clientes. IBM ha establecido relaciones con Bachman Information Systems, Index Technology Corporation y Knowledgeware , mediante las cuales productos seleccionados de estos proveedores se comercializarán a través de un programa de marketing complementario de IBM para ofrecer soluciones que ayuden a lograr una cobertura completa del ciclo de vida . [ 7 ]
Con el declive de los mainframes, AD/Cycle y las herramientas Big CASE desaparecieron, abriendo el mercado a las herramientas CASE convencionales actuales. Muchos de los líderes del mercado CASE de principios de la década de 1990 fueron adquiridos por Computer Associates , incluyendo IEW, IEF, ADW, Cayenne y Learmonth & Burchett Management Systems (LBMS). Otra tendencia que impulsó la evolución de las herramientas CASE fue el auge de los métodos y herramientas orientados a objetos. La mayoría de los proveedores de herramientas añadieron soporte para estos métodos y herramientas. Además, surgieron nuevos productos diseñados desde cero para dar soporte al enfoque orientado a objetos. Andersen desarrolló su proyecto Eagle como alternativa a Foundation. Varios de los referentes en el desarrollo orientado a objetos desarrollaron sus propias metodologías y conjuntos de herramientas CASE: Jacobson , Rumbaugh , Booch , etc. Finalmente, estos diversos conjuntos de herramientas y métodos se consolidaron mediante estándares liderados por el Object Management Group (OMG). El Lenguaje Unificado de Modelado (UML) de OMG es actualmente ampliamente aceptado como el estándar de la industria para el modelado orientado a objetos .
Software CASE
Herramientas
Las herramientas CASE dan soporte a tareas específicas en el ciclo de vida del desarrollo de software. Se pueden dividir en las siguientes categorías:
- Modelado de negocios y análisis: Herramientas de modelado gráfico. Por ejemplo, modelado entidad-relación, modelado de objetos, etc.
- Desarrollo: Fases de diseño y construcción del ciclo de vida. Entornos de depuración. Por ejemplo, IISE LKO .
- Verificación y validación : Analizar el código y las especificaciones para comprobar su corrección , rendimiento, etc.
- Gestión de la configuración: Controla la entrada y salida de objetos y archivos del repositorio. Por ejemplo, SCCS , IISE.
- Métricas y medición: Analizar el código en cuanto a complejidad, modularidad (por ejemplo, ausencia de "go to"), rendimiento, etc.
- Gestión de proyectos: Gestionar planes de proyecto, asignación de tareas y programación.
Otra forma común de distinguir las herramientas CASE es la distinción entre CASE superior y CASE inferior. Las herramientas CASE superior admiten el modelado de negocios y análisis. Admiten lenguajes diagramáticos tradicionales como diagramas ER , diagramas de flujo de datos , diagramas de estructura , árboles de decisión , tablas de decisión , etc. Las herramientas CASE inferior admiten actividades de desarrollo, como diseño físico, depuración, construcción, pruebas, integración de componentes, mantenimiento e ingeniería inversa. Todas las demás actividades abarcan todo el ciclo de vida y se aplican por igual a CASE superior e inferior. [ 8 ]
bancos de trabajo
Los entornos de trabajo integran dos o más herramientas CASE y admiten actividades específicas de procesos de software. Por lo tanto, logran:
- Una interfaz homogénea y consistente (integración de la presentación)
- Integración perfecta de herramientas y cadenas de herramientas ( integración de control y datos ).
Un ejemplo de entorno de desarrollo es el entorno de programación Visual Basic de Microsoft . Incorpora varias herramientas de desarrollo: un creador de interfaces gráficas de usuario (GUI), un editor de código inteligente, un depurador, etc. La mayoría de los productos CASE comerciales solían ser entornos de desarrollo que integraban a la perfección dos o más herramientas. Los entornos de desarrollo también se pueden clasificar de la misma manera que las herramientas: según se centren en el análisis, el desarrollo, la verificación, etc., así como en mayúsculas, minúsculas o procesos como la gestión de la configuración, que abarcan todo el ciclo de vida.
Entornos
Un entorno es una colección de herramientas o bancos de trabajo CASE que intenta dar soporte al proceso de software completo. Esto contrasta con las herramientas que se centran en una tarea específica o en una parte específica del ciclo de vida. Los entornos CASE son clasificados por Fuggetta de la siguiente manera: [ 9 ]
- Kits de herramientas: Colecciones de herramientas poco acopladas. Suelen basarse en entornos de desarrollo de sistemas operativos, como Unix Programmer's Workbench o el conjunto VMS VAX. Generalmente, la integración se realiza mediante tuberías u otro mecanismo básico para compartir datos y transferir el control. La facilidad de integración es también una desventaja. El simple paso de parámetros mediante tecnologías como los scripts de shell no ofrece la sofisticada integración que proporciona una base de datos de repositorio común.
- Entornos de cuarta generación: Estos entornos también se conocen como 4GL, siglas de Fourth Generation Language Environments (Entornos de lenguaje de cuarta generación), debido a que los primeros se diseñaron en torno a lenguajes específicos como Visual Basic. Fueron los primeros en ofrecer una profunda integración de múltiples herramientas. Por lo general, estos entornos se centraban en tipos específicos de aplicaciones. Por ejemplo, aplicaciones con interfaz de usuario que realizaban transacciones atómicas estándar en una base de datos relacional. Algunos ejemplos son Informix 4GL y Focus.
- Entornos centrados en el lenguaje: entornos basados en un único lenguaje, a menudo orientado a objetos, como Symbolics Lisp Genera o VisualWorks Smalltalk de Parcplace. En estos entornos, todos los recursos del sistema operativo eran objetos del lenguaje orientado a objetos. Esto proporcionaba potentes herramientas de depuración y funciones gráficas, pero el código desarrollado se limitaba principalmente al lenguaje específico. Por esta razón, estos entornos eran principalmente un nicho dentro de CASE. Su uso se centraba sobre todo en la creación de prototipos y proyectos de I+D. Una idea central común en estos entornos era la interfaz de usuario modelo-vista-controlador (MVC) , que facilitaba mantener la coherencia entre múltiples presentaciones del mismo diseño y el modelo subyacente. La arquitectura MVC fue adoptada por otros tipos de entornos CASE, así como por muchas de las aplicaciones desarrolladas con ellos.
- Integrados: Estos entornos son un ejemplo de lo que la mayoría de los profesionales de TI suelen pensar primero cuando piensan en CASE. Entornos como AD/Cycle de IBM, FOUNDATION de Andersen Consulting, el sistema ICL CADES y DEC Cohesion. Estos entornos buscan cubrir el ciclo de vida completo, desde el análisis hasta el mantenimiento, y proporcionan un repositorio de base de datos integrado para almacenar todos los artefactos del proceso de software. El repositorio de software integrado fue la característica definitoria de este tipo de herramientas. Ofrecían múltiples modelos de diseño diferentes, así como soporte para código en lenguajes heterogéneos. Uno de los objetivos principales de estos entornos era la "ingeniería de ida y vuelta": poder realizar cambios a nivel de diseño y que estos se reflejaran automáticamente en el código, y viceversa. Estos entornos también solían estar asociados a una metodología particular para el desarrollo de software. Por ejemplo, la suite FOUNDATION CASE de Andersen estaba estrechamente vinculada a la metodología Andersen Method/1.
- Integración centrada en procesos: Este es el tipo de integración más ambicioso. Estos entornos buscan no solo especificar formalmente los objetos de análisis y diseño del proceso de software, sino también el proceso en sí, y utilizarlo para controlar y guiar los proyectos de software. Algunos ejemplos son East, Enterprise II, Process Wise, Process Weaver y Arcadia. Estos entornos, por definición, están vinculados a alguna metodología, ya que el proceso de software forma parte del entorno y puede controlar muchos aspectos de la invocación de herramientas.
En la práctica, la distinción entre entornos de desarrollo y entornos de programación era flexible. Visual Basic, por ejemplo, era un entorno de programación, pero muchos también lo consideraban un entorno de cuarta generación (4GL). Las características que distinguían a los entornos de desarrollo de los entornos de programación eran la profunda integración mediante un repositorio compartido o un lenguaje común, y algún tipo de metodología (entornos integrados y centrados en procesos) o especificidad de dominio (4GL). [ 9 ]
Principales factores de riesgo de CASE
Algunos de los factores de riesgo más importantes para las organizaciones que adoptan la tecnología CASE incluyen:
- Estandarización insuficiente: Las organizaciones suelen tener que adaptar y adoptar metodologías y herramientas a sus requisitos específicos. Esto puede requerir un esfuerzo considerable para integrar tecnologías y métodos diversos. Por ejemplo, antes de la adopción del estándar UML, las convenciones de diagramación y los métodos para diseñar modelos orientados a objetos variaban enormemente entre los seguidores de Jacobson , Booch y Rumbaugh .
- Expectativas poco realistas: Los defensores de la tecnología CASE, especialmente los proveedores que comercializan costosos conjuntos de herramientas, suelen generar expectativas exageradas de que este nuevo enfoque será la solución definitiva a todos los problemas. En realidad, ninguna tecnología de este tipo puede lograrlo, y si las organizaciones abordan CASE con expectativas poco realistas, inevitablemente se sentirán decepcionadas.
- Capacitación insuficiente: Como ocurre con cualquier tecnología nueva, CASE requiere tiempo para capacitar al personal en el uso de las herramientas y para que se familiaricen con ellas. Los proyectos CASE pueden fracasar si los profesionales no disponen del tiempo suficiente para la capacitación o si el primer proyecto que se intenta con la nueva tecnología es de vital importancia y conlleva riesgos.
- Control de procesos inadecuado: CASE proporciona nuevas capacidades significativas para utilizar nuevos tipos de herramientas de maneras innovadoras. Sin la guía y los controles de proceso adecuados, estas nuevas capacidades también pueden causar nuevos problemas significativos. [ 10 ]
Véase también
- Modelado de datos
- Modelado específico del dominio
- Ingeniería de métodos
- Arquitectura basada en modelos
- Lenguaje de modelado
- Desarrollo rápido de aplicaciones
- Programación automática
- Automatización de pruebas
- Automatización de compilaciones
- Entorno de Desarrollo Integrado
- Desarrollo para el usuario final
- lenguaje de programación visual
Referencias
- ↑ Kuhn, DL (1989). "Selección y uso eficaz de una herramienta de ingeniería de software asistida por computadora". Simposio anual de informática de Westinghouse; 6-7 de noviembre de 1989; Pittsburgh, PA (EE. UU.); Proyecto del Departamento de Energía.
- ↑ P. Loucopoulos y V. Karakostas (1995). Ingeniería de requisitos de sistemas: software que funcionará eficazmente.
- ↑ Teichroew, Daniel; Hershey, Ernest Allen (1976). "PSL/PSA: una técnica asistida por computadora para la documentación estructurada y el análisis de sistemas de procesamiento de información" . Actas de ICSE '76, Actas de la 2.ª Conferencia Internacional sobre Ingeniería de Software . IEEE Computer Society Press. Archivado del original el 8 de diciembre de 2018. Consultado el 25 de noviembre de 2014 .
- ↑ Coronel, Carlos; Morris, Steven (4 de febrero de 2014). Sistemas de bases de datos: diseño, implementación y gestión . Cengage Learning. págs. 695–700 . ISBN 978-1285196145Consultado el 25 de noviembre de 2014 .
- 1 2 PC Mag . Ziff Davis, Inc. 30-01-1990.
- ↑ Yourdon, Ed (23 de julio de 2001). "¿Pueden crecer los proyectos XP?" . Computerworld . Recuperado el 25 de noviembre de 2014 .
- ↑ "AD/Estrategia y arquitectura de ciclo", IBM Systems Journal, Vol. 29, N.° 2, 1990; pág. 172.
- ↑ Ingeniería de software: herramientas, principios y técnicas, de Sangeeta Sabharwal, Umesh Publications
- 1 2 Alfonso Fuggetta (diciembre de 1993). " Una clasificación de la tecnología CASE" . Computer . 26 (12): 25– 38. Bibcode : 1993Compr..26l..25F . doi : 10.1109/2.247645 . S2CID 954775. Archivado del original el 7 de junio de 2009. Recuperado el 14 de marzo de 2009 .
- ↑ Ingeniería de software asistida por computadora. Archivado el 20 de enero de 2012 en Wayback Machine . En: FFIEC IT Examination Handbook InfoBase . Consultado el 3 de marzo de 2012.
Lecturas adicionales
Descripción general completa de las herramientas CASE: Optimización del desarrollo de software
Características de las herramientas CASE
Casos de uso y aplicaciones de las herramientas CASE
- Herramientas de ingeniería de software asistidas por ordenador
- Gestión de datos