stringtranslate.com

Ingeniería de software asistida por computadora

Ejemplo de una herramienta CASE

La ingeniería de software asistida por computadora ( CASE ) es un dominio de herramientas de software que se utilizan para diseñar e implementar aplicaciones. Las herramientas CASE son similares y están parcialmente inspiradas en las herramientas de diseño asistido por computadora (CAD) utilizadas para diseñar productos de hardware. Las herramientas CASE están destinadas a ayudar a desarrollar software de alta calidad, libre de defectos y fácil de mantener. [1] El software CASE a menudo se asociaba con métodos para el desarrollo de sistemas de información junto con herramientas automatizadas que podían usarse en el proceso de desarrollo de software . [2]

Historia

El proyecto Sistema de optimización y diseño de sistemas de información (ISDOS), iniciado en 1968 en la Universidad de Michigan , generó un gran interés en todo el concepto de uso de sistemas informáticos para ayudar a los analistas en el muy difícil proceso de analizar requisitos y desarrollar sistemas. Varios artículos de Daniel Teichroew entusiasmaron a toda una generación de entusiastas con el potencial del desarrollo de sistemas automatizados. Su herramienta Lenguaje de enunciado de problemas/Analizador de enunciado de problemas (PSL/PSA) era una herramienta CASE aunque anterior al término. [3]

Otro hilo importante surgió como una extensión lógica del diccionario de datos de una base de datos . Al ampliar la gama de metadatos almacenados, los atributos de una aplicación podrían guardarse dentro de un diccionario y usarse en tiempo de ejecución. Este "diccionario activo" se convirtió en el precursor de la capacidad de ingeniería basada en modelos más moderna . Sin embargo, el diccionario activo no proporcionó una representación gráfica de ninguno de los metadatos. Fue la vinculación del concepto de un diccionario que contiene 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 versiones anteriores de CASE. [4]

El siguiente participante en el mercado fue Excelerator de Index Technology en Cambridge, Massachusetts. Mientras DesignAid se ejecutaba en Convergent Technologies y más tarde en microcomputadoras en red 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 una base de datos centralizada como lo hacían las máquinas Convergent Technologies o Burroughs, el atractivo de IBM era fuerte y Excelerator cobró prominencia. Pisándole los talones a Excelerator hubo una serie de ofertas de compañías como Knowledgeware (James Martin, Fran Tarkenton y Don Addington), CA Gen de Texas Instrument y el conjunto de herramientas FOUNDATION de Andersen Consulting (DESIGN/1, INSTALL/1, FCP). [5]

Las herramientas CASE alcanzaron su apogeo a principios de los años 1990. [6] Según PC Magazine de enero de 1990, más de 100 empresas ofrecían casi 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 utilizando IBM DB2 en mainframe y OS/2 :

Las herramientas de desarrollo de aplicaciones pueden provenir de varias fuentes: de IBM, de proveedores y de los propios clientes. IBM ha establecido relaciones con Bachman Information Systems, Index Technology Corporation y Knowledgeware en las que productos seleccionados de estos proveedores se comercializarán a través de un programa de marketing complementario de IBM para ofrecer ofertas que ayudarán a lograr una cobertura completa del ciclo de vida . [7]

Con el declive del mainframe, AD/Cycle y las grandes herramientas CASE desaparecieron, abriendo el mercado para las principales herramientas CASE de la actualidad. Muchos de los líderes del mercado CASE de principios de los años 1990 acabaron siendo comprados por Computer Associates , entre ellos IEW, IEF, ADW, Cayenne y Learmonth & Burchett Management Systems (LBMS). La otra tendencia que condujo a la evolución de las herramientas CASE fue el surgimiento de métodos y herramientas orientados a objetos. La mayoría de los distintos proveedores de herramientas agregaron cierto soporte para métodos y herramientas orientados a objetos. Además surgieron nuevos productos que fueron diseñados desde abajo hacia arriba para soportar el enfoque orientado a objetos. Andersen desarrolló su proyecto Eagle como alternativa a Foundation. Varios de los líderes de opinión en el desarrollo orientado a objetos desarrollaron cada uno su propia metodología y conjunto de herramientas CASE: Jacobson, Rumbaugh, Booch , etc. Con el tiempo, estos diversos conjuntos de herramientas y métodos se consolidaron a través de estándares liderados por el Object Management Group (OMG). El lenguaje de modelado unificado (UML) de OMG es actualmente ampliamente aceptado como el estándar de la industria para el modelado orientado a objetos. [ cita necesaria ]

software de caso

Herramientas

Las herramientas CASE respaldan tareas específicas en el ciclo de vida del desarrollo de software. Se pueden dividir en las siguientes categorías:

  1. Modelado de negocio y análisis: Herramientas de modelado gráfico. Por ejemplo, modelado E/R, modelado de objetos, etc.
  2. Desarrollo: Fases de diseño y construcción del ciclo de vida. Depuración de entornos. Por ejemplo, IISE LKO.
  3. Verificación y validación : analizar el código y las especificaciones para verificar su corrección , rendimiento, etc.
  4. Gestión de configuración: controle el registro y la salida de objetos y archivos del repositorio. Por ejemplo, SCCS , IISE.
  5. Métricas y mediciones: analice el código en busca de complejidad, modularidad (por ejemplo, sin "requisitos"), rendimiento, etc.
  6. Gestión de proyectos: gestione los planes del proyecto, la asignación de tareas y la programación.

Otra forma común de distinguir las herramientas CASE es la distinción entre MAYÚSCULAS y minúsculas. Las herramientas Upper CASE respaldan el modelado de negocios y análisis. Admiten lenguajes esquemáticos tradicionales, como diagramas ER , diagramas de flujo de datos , diagramas de estructura , árboles de decisión , tablas de decisión , etc. Las herramientas en minúsculas CASE respaldan actividades de desarrollo, como diseño físico, depuración, construcción, pruebas, integración de componentes, mantenimiento e inversión. ingeniería. Todas las demás actividades abarcan todo el ciclo de vida y se aplican por igual a MAYÚSCULAS y minúsculas. [8]

Bancos de trabajo

Los bancos de trabajo integran dos o más herramientas CASE y respaldan actividades de procesos de software específicos. De esta manera logran:

Un banco de trabajo de ejemplo es el entorno de programación Visual Basic de Microsoft . Incorpora varias herramientas de desarrollo: un generador de GUI, un editor de código inteligente, un depurador, etc. La mayoría de los productos CASE comerciales tendían a ser bancos de trabajo que integraban perfectamente dos o más herramientas. Los bancos de trabajo también se pueden clasificar de la misma manera que las herramientas; como centrarse en Análisis, Desarrollo, Verificación, etc. así como centrarse en mayúsculas, minúsculas o procesos como la gestión de configuración que abarcan todo el ciclo de vida.

Ambientes

Un entorno es una colección de herramientas o bancos de trabajo CASE que intenta respaldar el 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. Fuggetta clasifica los entornos CASE de la siguiente manera: [9]

  1. Conjuntos de herramientas: colecciones de herramientas poco acopladas. Por lo general, se basan en bancos de trabajo de sistemas operativos, como el banco de trabajo del programador de Unix o el conjunto VMS VAX. Por lo general, realizan la integración a través de tuberías o algún otro mecanismo básico para compartir datos y pasar el control. La fortaleza de una fácil integración es también uno de los inconvenientes. El simple paso de parámetros a través de tecnologías como el scripting de shell no puede proporcionar el tipo de integración sofisticada que puede ofrecer una base de datos de repositorio común.
  2. Cuarta generación: estos entornos también se conocen como 4GL, que significa entornos de lenguaje de cuarta generación, debido a que los primeros entornos se diseñaron en torno a lenguajes específicos como Visual Basic. Fueron los primeros entornos que proporcionaron una integración profunda de múltiples herramientas. Normalmente, estos entornos se centraban en tipos específicos de aplicaciones. Por ejemplo, aplicaciones impulsadas por interfaz de usuario que realizaban transacciones atómicas estándar a una base de datos relacional. Algunos ejemplos son Informix 4GL y Focus.
  3. Centrado en el lenguaje: entornos basados ​​en un único lenguaje, a menudo orientado a objetos, como el entorno Symbolics Lisp Genera o VisualWorks Smalltalk de Parcplace. En estos entornos todos los recursos del sistema operativo eran objetos en el lenguaje orientado a objetos. Esto proporciona potentes oportunidades gráficas y de depuración, pero el código desarrollado se limita principalmente al lenguaje específico. Por esta razón, estos entornos eran en su mayoría un nicho dentro de CASE. Su uso fue principalmente para la creación de prototipos y proyectos de I+D. Una idea central común para estos entornos fue la interfaz de usuario modelo-vista-controlador que facilitó mantener múltiples presentaciones del mismo diseño consistentes con el modelo subyacente. La arquitectura MVC fue adoptada por otros tipos de entornos CASE, así como por muchas de las aplicaciones que se crearon con ellos.
  4. Integrado: Estos entornos son un ejemplo de lo que la mayoría de la gente de TI tiende a 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 intentan 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. Proporcionaron múltiples modelos de diseño diferentes, así como soporte para código en lenguajes heterogéneos. Uno de los principales objetivos para este tipo de entornos era la "ingeniería de ida y vuelta": poder realizar cambios a nivel de diseño y que automáticamente se reflejaran en el código y viceversa. Estos entornos también estaban típicamente asociados con 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.
  5. Centrada en procesos: este es el tipo de integración más ambicioso. Estos entornos intentan no sólo especificar formalmente los objetos de análisis y diseño del proceso de software, sino también el proceso mismo y utilizar ese proceso formal para controlar y guiar los proyectos de software. Algunos ejemplos son East, Enterprise II, Process Wise, Process Weaver y Arcadia. Por definición, estos entornos estaban vinculados a alguna metodología, ya que el proceso de software en sí es parte del entorno y puede controlar muchos aspectos de la invocación de herramientas.

En la práctica, la distinción entre bancos de trabajo y entornos era flexible. Visual Basic, por ejemplo, era un banco de trabajo de programación, pero muchos también lo consideraban un entorno 4GL. Las características que distinguían los bancos de trabajo de los entornos eran una integración profunda a través de un repositorio compartido o 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:

Ver también

Referencias

  1. ^ Kuhn, DL (1989). "Seleccionar y utilizar eficazmente una herramienta de ingeniería de software asistida por ordenador". Simposio anual de informática de Westinghouse; 6 y 7 de noviembre de 1989; Pittsburgh, Pensilvania (Estados Unidos); Proyecto DOE.
  2. ^ P. Loucopoulos y V. Karakostas (1995). Software de ingeniería de requisitos del sistema que funcionará de manera efectiva.
  3. ^ Teichroew, Daniel; Hershey, Ernest Allen (1976). "PSL/PSA una técnica asistida por ordenador para la documentación estructurada y el análisis de sistemas de procesamiento de información". Actas ICSE '76 Actas de la Segunda Conferencia Internacional sobre Ingeniería de Software . Prensa de la Sociedad de Computación IEEE.
  4. ^ Coronel, Carlos; Morris, Steven (4 de febrero de 2014). Sistemas de bases de datos: diseño, implementación y gestión. Aprendizaje Cengage. págs. 695–700. ISBN 978-1285196145. Consultado el 25 de noviembre de 2014 .
  5. ^ ab Inc, Ziff Davis (30 de enero de 1990). Revista PC. Ziff Davis, Inc. {{cite book}}: |last=tiene nombre genérico ( ayuda )
  6. ^ Yourdon, Ed (23 de julio de 2001). "¿Pueden crecer los proyectos XP?". Mundo de la informática . Consultado el 25 de noviembre de 2014 .
  7. ^ "Estrategia y arquitectura AD/Cycle", IBM Systems Journal, Vol 29, NO 2, 1990; pag. 172.
  8. ^ Ingeniería de software: herramientas, principios y técnicas por Sangeeta Sabharwal, Publicaciones Umesh
  9. ^ ab Alfonso Fuggetta (diciembre de 1993). "Una clasificación de la tecnología CASE". Computadora . 26 (12): 25–38. doi :10.1109/2.247645. S2CID  954775 . Consultado el 14 de marzo de 2009 .
  10. Ingeniería de software asistida por computadora Archivado el 20 de enero de 2012 en Wayback Machine . En: Base de información del manual de examen de TI de la FFIEC . Consultado el 3 de marzo de 2012.