Herramientas CASE

Un CASE (Computer-Aided Software Engineering) es una herramienta que permite organizar y controlar el desarrollo de software. Se utiliza especialmente en desarrollos de software largos que implican una mayor complejidad por la cantidad de componentes y personas involucradas. Este tipo de herramientas soporta los métodos y conceptos de programación.

Entre las ventajas que se pueden encontrar al utilizar las herramientas CASE podemos encontrar:

Generación de una vista común entre todos los integrantes para cada una de las fases del desarrollo de software.
– Repositorio de los entregables en cada una de las fases.
– Organización
– Reducción de costos
Aseguramiento de la calidad.
– Registro y presentación el avance del proyecto.
– Reducción del tiempo de procesamiento para el análisis.
– Automatización de algunas actividades dentro del proceso de desarrollo.
– Incremento de la productividad y la confiabilidad en el proceso de producción.

A continuación se presenta una clasificación de las herramientas. Medio de interacción. La interacción del usuario con las herramientas ha evolucionado de manera que éstas sean más intuitivas y fáciles de usar para reducir de esta forma los errores. Un aspecto importante a considerar en la interacción con las computadoras es la sintaxis en los lenguajes de programación, ya que permite la adopción del lenguaje y reduciendo los errores en su uso.

Nivel de formalidad. En el desarrollo de software se ven involucrados varios tipos de documentos. En cada uno de ellos se puede definir en algún grado la sintaxis y la semántica. Mientras un compilador se encuentra definido de principio con una sintaxis y semántica formalmente definidas, el editor puede emplearse para cualquier lenguaje.

Dependencia en la fase del ciclo de vida. Existen herramientas de software que se encuentran ligadas a actividades específicas dentro del ciclo de vida del software. La adopción de herramientas permite una transición entre las fases según sea el modelo que se haya seleccionado.

Dependencia en la aplicación o método. La selección de técnicas, métodos, modelo de ciclo de vida y cualidades, pueden verse influidas por las aplicaciones. Muchos métodos pueden ser más efectivos empleando una adecuada herramienta de soporte. Las herramientas pueden mejorar el método pero no pueden sustituirlo. De igual forma la calidad en el software no se puede mejorar sólo utilizando herramientas sin comprender su significado dentro de la metodología.

Grado de estandarización. Por una parte la estandarización mejora su aplicabilidad pero por otra parte detiene su evolución. Sin embargo, la estabilización de un método o lenguaje garantiza el soporte que se le da y también posibilita la opción de seguir utilizándolo en varios proyectos a la gente que lo utiliza.

Dependencia del lenguaje. Existen herramientas que se encuentran ligadas a un lenguaje y existen otras que soportan varios. Dentro de las primeras se encuentran los compiladores, que son especializados en un lenguaje de programación. Mientras que un procesador de palabras puede ser utilizado para editar cualquier lenguaje de programación.

Herramientas estáticas contra herramientas dinámicas. Hay herramientas que no requieren de la ejecución del objeto que emplea. Son utilizadas para crear, modificar, verificar la consistencia con respecto a una regla, medir ciertas propiedades estáticas o para detectar algunas restricciones. A estas herramientas se les denominan estáticas. Las herramientas dinámicas son las que requieren de la ejecución del objeto. Herramientas de desarrollo contra componentes de producto final. Algunas herramientas se emplean para el desarrollo del producto final sin llegar a ser parte de él. Mientras que otras herramientas de componentes de software pueden ser incluidas y llegar a ser parte del producto final.

Fuente: Apuntes de Ingeniería del Software de la FCA de la UNAM