Proporciona al ingeniero la
posibilidad de automatizar actividades manuales y de mejorar su visión
general de la ingeniería. Al igual que las herramientas de ingeniería y de
diseño asistidos por computadora que utilizan los ingenieros de otras disciplinas,
las herramientas CASE ayudan a garantizar que la calidad se
diseñe antes de llegar a construir el producto.
La
ingeniería del software asistida por computadora puede ser tan sencilla como
una única herramienta que preste su apoyo para una única actividad de
ingeniería del software, o tan compleja como todo un entorno que abarque
«herramientas», una base de datos, personas, hardware, una red, sistemas
operativos, estándares, y otros mil componentes
Marco de integración: Es un conjunto de programas
especializados que permiten a cada herramienta CASE comunicarse con las
demás.
Servicios de portabilidad: Este conjunto
constituye un puente entre las herramientas CASE, su marco de integración y la
arquitectura de entorno. De esta forma permiten que las herramientas CASE y su
marco de integración puedan migrar a través de diferentes plataformas de
hardware y sistemas operativos sin problemas de adaptación.
Sistema operativo: Gestiona el hardware,
la red y las herramientas; mantiene el entorno unido.
Plataforma hardware: Son las estaciones de
trabajo individuales interconectadas mediante la red para que los ingenieros
del software puedan comunicarse de forma efectiva.
Arquitectura
de entorno: Es
la base del CASE, en este bloque se construyen los entornos de la ingeniería
del software, engloba los sistemas de software y hardware. Además considera los
patrones del trabajo humano que se aplican durante el proceso de ingeniería del
software.
Las herramientas CASE (Computer Aided Software Engineering, Ingeniería de Software Asistida por Computadora) son diversas aplicaciones informáticasdestinadas
a aumentar la productividad en el desarrollo de software reduciendo el costo de
las mismas en términos de tiempo y de dinero.
Estas herramientas pueden ayudar en todos los aspectos del ciclo de vida de
desarrollo del software en tareas como el proceso de realizar un diseño del proyecto, cálculo de costos,
implementación de parte del código automáticamente con el diseño dado,
compilación automática, documentación o detección de errores entre otras. Ya en
los años 70 un proyecto llamado ISDOS diseñó un lenguaje y por lo tanto un
producto que analizaba la relación existente entre los requisitos de un
problema y las necesidades que éstos generaban, el lenguaje en cuestión se
denominaba PSL (Problem Statement Language) y la aplicación que ayudaba a
buscar las necesidades de los diseñadores PSA (Problem Statement Analyzer).
Aunque ésos son los inicios de
las herramientas informáticas que ayudan a crear nuevos proyectos informáticos,
la primera herramienta CASE fue Excelerator que salió a la luz en el año 1984 y
trabajaba bajo una plataforma PC.
Las herramientas CASE
alcanzaron su techo a principios de los años 90. En la época en la que IBM
había conseguido una alianza con la empresa de software AD/Cycle para trabajar
con sus mainframes, estos dos gigantes trabajaban con herramientas CASE que
abarcaban todo el ciclo de vida del software. Pero poco a poco los mainframes
han ido siendo menos utilizados y actualmente el mercado de las Big CASE ha muerto
completamente abriendo el mercado de diversas herramientas más específicas para
cada fase del ciclo de vida del software.
Clasificación
Aunque no es fácil y no existe
una forma única de clasificarlas, las herramientas CASE se pueden clasificar
teniendo en cuenta los siguientes parámetros:
1. Las plataformas que soportan.
2. Las fases del ciclo de vida del desarrollo de
sistemas que cubren.
3. La arquitectura de las aplicaciones que producen.
4. Su funcionalidad.
La siguiente clasificación es
la más habitual basada en las fases del ciclo de desarrollo que cubren:
§ Upper CASE (U-CASE), herramientas que ayudan en las fases de planificación, análisis de
requisitos y
estrategia del desarrollo, usando, entre otros diagramas UML.
§ Middle CASE (M-CASE), herramientas para automatizar tareas en el análisis y diseño de la aplicación.
§ Lower CASE (L-CASE), herramientas que semi-automatizan la generación
de código, crean programas de detección de errores, soportan la depuración de programas y pruebas. Además automatizan la
documentación completa de la aplicación. Aquí pueden incluirse las herramientas
de Desarrollo
rápido de aplicaciones.
Existen otros nombres que se
le dan a este tipo de herramientas, y que no es una clasificación excluyente
entre sí, ni con la anterior:
§ Integrated CASE (I-CASE), herramientas que engloban todo el proceso de
desarrollo software, desde análisis hasta implementación.
§ MetaCASE, herramientas que permiten la definición de
nuestra propia técnica de modelado, los elementos permitidos del metamodelo
generado se guardan en un repositorio y pueden ser usados por otros analistas,
es decir, es como si definiéramos nuestro propio UML, con nuestros elementos,
restricciones y relaciones posibles.
§ CAST (Computer-Aided
Software Testing), herramientas de soporte a la
prueba de software.
§ IPSE (Integrated
Programming Support Environment), herramientas que soportan todo el ciclo de vida, incluyen componentes
para la gestión de proyectos y gestión de la configuración activa.
Por funcionalidad podríamos
diferenciar algunas como:
§ Herramientas de generación semiautomática de
código.
§ Editores UML.
§ Herramientas de Refactorización de
código.
§ Herramientas de mantenimiento como los sistemas de
control de versiones·