sábado, 2 de abril de 2011

I N T R O D U C C I Ó N

Día a día la tecnología avanza, surgen nuevas y mejores formas de hacer las cosas, siempre buscando métodos más efectivos, confiables, con mayor calidad y menos riesgos. Las herramienta CASE nacen para auxiliar a los desarrolladores de software, lo que permite el apoyo computarizado en todo o en parte del ciclo de vida del desarrollo de un sistema de software. En este blog conoceras que son las herramientas case, como surgieron y con que proposito fueron creadas  asi como sus ventajas y desventajas.
Las herramientas CASE han surgido para dar solución a varios problemas inherentes al diseño del software,  principalmente nacen para solucionar el problema de la mejora de la calidad del desarrollo de sistemas de mediano y gran tamaño, y en segundo término, por el aumento de la productividad.
Para que los negocios sean competitivos deben llevar una buena calidad de los productos o servicios que ofrece. La mejora de la calidad se logra al reducir sustancialmente muchos de los problemas de análisis y diseño relacionados con los proyectos, como la lógica en el diseño y la coherencia de módulos, entre otros. Y la mejora de la productividad se consigue a través de la automatización de tareas como la generación y reutilización de código, que son puntos importantes a considerar en una herramienta CASE.


Historia de las Herramientas Case

Las Herramientas CASE se iniciaron con un procesador de palabras que fue usado para crear y manipular documentación. Los 70’s vieron la introducción de técnicas gráficas y diagramas de flujo de datos. Sobre este punto, el diseño y especificaciones en forma pictórica han sido extremadamente complejos y consumían mucho tiempo para realizar cambios.
La introducción de las herramientas CASE para ayudar en este proceso ha permitido que los diagramas puedan ser fácilmente creados y modificados, mejorando la calidad de los diseños de software. Los diccionarios de datos, un documento muy usado que mantiene los detalles de cada tipo de dato y los procesos dentro de un sistema, son el resultado directo de la llegada del diseño de flujo de datos y análisis estructural, hecho posible a través de las mejoras en las Herramientas CASE.
Pronto se reemplazaron los paquetes gráficos por paquetes especializados que habilitan la edición, actualización e impresión en múltiples versiones de diseño. A diario, las herramientas gráficas integradas con diccionarios de base de datos para producir poderosos diseños y desarrollar herramientas, podrían sostener ciclos completos de diseño de documentos. Como un paso final, la verificación de errores y generadores de casos de pruebas fueron incluidos para validar el diseño del software. Todos estos procesos pueden saberse integrados en una simple herramienta CASE que soporta todo el ciclo de desarrollo. La primera herramienta comercial se remonta a 1982, aunque algunos especialistas indican que algunos ejemplos de herramientas para diagramación ya existían.No fue sino hasta 1985 cuando las herramientas CASE se volvieron realmente importantes en el proceso de desarrollo de software. Los proveedores prometieron a la Industria que muchas actividades serían beneficiadas por la ayuda de las CASE.

El objetivo en 1985 para muchos vendedores era producir software más rápidamente. Las herramientas del CASE serían una familia de métodos favorablemente estructurados para planeamiento, análisis y diseño. Esto llevaría a la generación automática de código para desarrollo de software.  Esto traería como beneficio: Una mejora en la calidad, fiabilidad, utilidad y rendimiento.


Contenido

DEFINICION
Las herramientas CASE son un conjunto de herramientas y métodos asociados que proporcionan asistencia automatizada en el proceso de desarrollo del software a lo largo de su ciclo de vida.
 Fueron desarrolladas para automatizar esos procesos y facilitar las tareas  de coordinación de los eventos que necesitan ser mejorados en el ciclo de desarrollo de software.
OBJETIVOS
*     Aumentar la productividad de las áreas de desarrollo y mantenimiento de los sistemas informáticos.
*     Mejorar la calidad del software desarrollado.
*     Reducir tiempos y costos de desarrollo y mantenimiento del software.
*     Mejorar la gestión y dominio sobre el proyecto en cuanto a su planificación, ejecución y control.
*     Mejorar el archivo de datos (enciclopedia) de conocimientos (know-how) y sus facilidades de uso, reduciendo la dependencia de analistas y programadores.
Automatizar :
*     El desarrollo del software
*     La documentación
*     La generación del código
*     El chequeo de errores
*     La gestión del proyecto
Permitir:
*     La reutilización (reusabilidad) del software
*     La portabilidad del software
*     La estandarización de la documentación
*     Integrar las Mejorar el archivo de datos (enciclopedia) de conocimientos .
*     Facilitar la utilización de las distintas metodologías que desarrollan la propia ingeniería del software.

COMPONENTES O ELEMENTOS


   Repositorio
   El repositorio amplía el concepto de diccionario de datos para incluir toda la información que se va generando a lo largo del ciclo de vida del sistema.
    Apoyándose en la existencia del repositorio se efectúan comprobaciones de integridad y consistencia:
*        Que no existan datos no definidos.
*        Que no existan datos autodefinidos (datos que se emplean en una definición pero que no han sido definidos previamente).
*        Que todos los alias (referencias a un mismo dato empleando nombres distintos)  sean correctos y estén actualizados.
Las características más importantes de un repositorio son:
Tipo de información. Que contiene alguna metodología concreta, datos, gráficos, procesos, informes, modelos o reglas.
Tipo de controles. Si incorpora algún módulo de gestión de cambios, de mantenimiento de versiones, de acceso por clave, de redundancia de la información.
Módulos de Diagramación y Modelización
Este componente consiste en dar soporte para la creación de los diagramas más utilizados para el análisis y diseño del software.
Algunos de los diagramas y modelos utilizados con mayor frecuencia son:
*     Diagrama de flujo de datos.
*     Modelo entidad - interrelación.
*     Historia de la vida de las entidades.
*     Diagrama Estructura de datos.
*     Diagrama Estructura de cuadros.
*     Técnicas matriciales.

Herramienta de Prototipado
 El objetivo principal de esta herramienta es poder mostrar al usuario, desde los momentos iníciales del diseño, el aspecto que tendrá la aplicación una vez desarrollada. Ello facilitará la aplicación de los cambios que se consideren necesarios, todavía en la fase de diseño.
Los prototipos han sido utilizados ampliamente en el desarrollo de sistemas tradicionales, ya que proporcionan una realimentación inmediata, que ayudan a determinar los requisitos del sistema. Las herramientas CASE están bien dotadas, en general, para crear prototipos con rapidez y seguridad.

Generador de Código
   Normalmente se suele utilizar sobre ordenadores personales o estaciones de trabajo, por lo que el paso posterior del código al host puede traer problemas, al tener que compilar en ambos entornos.
Las características más importantes de los generadores de código son:
*     Lenguaje generado. Si se trata de un lenguaje estándar o un lenguaje  propietario.
*     Portabilidad del código generado. Capacidad para poder ejecutarlo en diferentes
     plataformas físicas y/o lógicas.
*      Generación del esqueleto del programa o del programa completo. Si únicamente  genera el esqueleto será necesario completar el resto mediante programación
*     Posibilidad de modificación del código generado. Suele ser necesario acceder
directamente al código generado para optimizarlo o completarlo.
*     Generación del código asociado a las pantallas e informes de la aplicación.
    Mediante esta característica se obtendrá la interfase de usuario de la aplicación.
Módulo Generador de Documentación
El módulo generador de la documentación se alimenta del repositorio para transcribir las especificaciones allí contenidas.
Algunas características de los generadores de documentación son:
*     Generación automática a partir de los datos del repositorio, sin necesidad de un esfuerzo adicional.
*      Combinación de información textual y gráfica, lo que hace más fácil su
   comprensión.
*     Generación de referencias cruzadas. Con ello se podrá localizar fácilmente en qué partes de la aplicación se encuentra un determinado objeto o elemento
*     Ayuda de tratamiento de textos. Facilidad para la introducción de textoscomplementarios a la documentación que se genera de forma automática.
*     Interfase con otras herramientas: procesadores de textos, editores gráficos, etc.
CLASIFICACIÓN
1. Herramientas integradas, I-CASE (Integrated CASE, CASE integrado):
abarcan todas las fases del ciclo de vida del desarrollo de sistemas. Son llamadas también CASE workbench.
2. Herramientas de alto nivel, U-CASE (Upper CASE - CASE superior) o
front-end, orientadas a la automatización y soporte de las actividades desarrolladas durante las primeras fases del desarrollo: análisis y diseño.
3. Herramientas de bajo nivel, L-CASE (Lower CASE - CASE inferior) o
back-end, dirigidas a las últimas fases del desarrollo: construcción e implantación.
4. Juegos de herramientas o Tools-Case, son el tipo más simple de
herramientas CASE. Automatizan una fase dentro del ciclo de vida. Dentro de este grupo se encontrarían las herramientas de reingeniería, orientadas a la fase de mantenimiento.
Según su Integracion:
Toolkits (Juego de herramientas)
ê   Conjunto de herramientas software que automatizan alguna fase del ciclo de vida (análisis, diseño, gestión, ...). Comparten la BD de soporte y la interfaz de usuario. Integración baja.
Workbenchs (Banco de trabajo)
ê   Conjunto de herramientas software que automatizan el ciclo de  vida en más de una fase, típicamente en  análisis + diseño + implementación (incluyendo documentación asociada). Asisten en todo el proceso y proporcionan un producto documentado y operativo. Además de compartir la BD de soporte y la interfaz de usuario, están basadas en una misma metodología. Integración  media.
IPSE (Integrated Project Support Environment)
ê   Integración alta. Cubren todo el ciclo de vida, la gestión de proyectos y de la configuración.
Por su Posicion:
Upper CASE: Herramientas de apoyo a las primeras fases
ì Métricas del software.
ì Estimación de costes.
ì Planificación temporal.
Medium CASE: Herramientas de apoyo a las fases centrales.
ì Análisis.
ì Diseño.
Lower CASE: Herramientas de apoyo a las últimas fases.
ì Implementación (generación de código).
ì Pruebas (caja blanca y caja negra).
ì Mantenimiento.
ì Documentación de la implementación y documentación para el usuario final.
Por su Funcionalidad:
*     Herramientas de planificación de sistemas de gestión.
*     Herramientas de análisis y diseño.
*     Herramientas de programación.
*     Herramientas de integración y prueba
*     Herramientas de gestión de prototipos.
*     Herramientas de mantenimiento.
*     Herramientas de gestión de proyectos.
*     Herramientas de soporte.

PRINCIPALES USUARIOS


ì Analistas
ì Desarrolladores
ì Ingenieros de Software.
VENTAJAS
Estas herramientas pueden proveer muchos beneficios en todas las etapas del proceso de desarrollo de software, algunas de ellas son:
                                                  *     Mejora en la productividad
*     Mejora en la eficacia
*     Mejora en la calidad del sistema de información
*     Disminución de tiempo
*     Automatización de tareas tediosas
*     Garantizar la consistencia de los procedimientos
*     Verificar el uso de todos los elementos en el sistema diseñado.
*     Automatizar el dibujo de diagramas.
*      Ayudar en la documentación del sistema.
*      Ayudar en la creación de relaciones en la Base de Datos.
*     Generar estructuras de código.
DESVENTAJAS
                                             *     Confiabilidad en los métodos estructurados.
*     Falta de niveles estándar para el soporte de la metodología.
*     Conflictos en el uso de los diagramas.
*     Diagramas no utilizados.
*     Función limitada.
*     Costo de adquisicion.

CARACTERíSTICAS
Características que debe Soportar…
*Soporte gráfico para varias técnicas (DFD, E/R, STD, modelos OO, etc.)
*Control de errores “Consistencia”: Unicidad identificadores, reglas metodología, etc.
*Validación entre diferentes modelos:
En una fase (p.e. entre DFD y E/R)
En varias fases (DFD análisis y diseño; DFD diseño y Diagrama de estructuras).

Caracteristicas Deseables
*     Soporte multiusuario.
*     Personalización.
*     Control de documentos y versiones.
*     Gestión de proyectos
*     Estadísticas de productividad y métricas del software.
*     Pruebas.
*     Simulación y prototipado.
*     Demostración correcciones especificaciones y/o software.
*     Generación de código.

EJEMPLOS DE HERRAMIENTAS CASE
Herramientas CASE  mas utilizadas
Erwin
PLATINUM ERwin es una herramienta de diseño de base de datos. Brinda productividad en diseño, generación, y mantenimiento de aplicaciones. Desde un modelo lógico de los requerimientos de información, hasta el modelo físico perfeccionado para las características específicas de la base de datos diseñada.
èVer mas informacion en la Pestaña Ejemplos de Herramientas Case
EasyCASE
Esta herramienta permite automatizar las fases de análisis y diseño dentro del desarrollo de una aplicación, para poder crear las aplicaciones eficazmente – desde procesamiento de transacciones a la aplicación de bases de datos de cliente/servidor, así como sistemas de tiempo real.
èVer mas informacion en la Pestaña Ejemplos de Herramientas Case
Oracle Designer
Oracle Designer es un juego de herramientas para guardar las definiciones que necesita el usuario y automatizar la construcción rápida de aplicaciones cliente/servidor flexibles y gráficas.Integrado con Oracle Developer
PowerDesigner
PowerDesigner es una suite de aplicaciones de Powersoft para la construcción, diseño y modelado de datos a través de diversas aplicaciones. Es la herramienta para el análisis, diseño inteligente y construcción sólida de una base de datos y un desarrollo orientado a modelos de datos a nivel físico y conceptual, que dan a los desarrolladoresCliente/Servidor la más firme base para aplicaciones de altorendimiento.

System Architect
Esta herramienta posee un repositorio único que integra todas las herramientas, y metodologías usadas. En la elaboración de los diagramas, el System Architect conecta directamente al diccionario de datos, los elementos asociados, comentarios, reglas de validaciones, normalización, etc.
Posee control automático de diagramas y datos, normalizaciones y balanceamiento entre diagramas "Padre e Hijo", además de balanceamiento horizontal, que trabaja integrado con el diccionario de datos, asegurando la compatibilidad entre el Modelo de Datos y el Modelo Funcional.

Rational Rose
Rational Rose es una herramienta de producción y comercialización establecidas por Rational Software Corporation( actualmente parte de IBM). Rose es un instrumento operativo conjunto que utiliza el Lenguaje Unificado (UML) como medio para facilitar la captura de dominio de la semántica, la arquitectura y el diseño. Este software tiene la capacidad de :Crear,Ver,Modificar y Manipular los componentes de un modelo.

CRITERIOS PARA LA SELECCIÓN DE UNA HERRAMIENTA CASE
*     Tipo de computador (MainFrame, Ws, PC, ...)
*     Lenguaje al que va orientada.
*     Metodología soportada.
*     Posibilidades de integración con otras plataformas (presentes y futuras).
*     Criterios habituales en la selección de software: formación, precio, asistencia técnica, mantenimiento.
HERRAMIENTAS CASE ORIENTADAS A OBJETOS
Muchos de los beneficios son alcanzados únicamente cuando el Análisis y Diseño son utilizados con herramientas CASE Orientadas a Objetos, basados en repositorios que generan códigos.

*     Fomenta la reutilización y extensión del código.
*     Permite crear sistemas más complejos.
*     Relacionar el sistema al mundo real.
*     Facilita la creación de programas visuales.
*     Construcción de prototipos
*     Agiliza el desarrollo de software
*     Facilita el trabajo en equipo
*     Facilita el mantenimiento del software
Lo interesante de la Programación Orientada a Objetos es que proporciona conceptos y herramientas con las cuales se modela y representa el mundo real tan fielmente como sea posible.

HERRAMIENTAS CASE ESTRUCTURAS
Las herramientas Case utilizarán técnicas gráficas para diseñar las clases y sus interacciones, y para utilizar objetos existentes adaptados en nuevas aplicaciones.Las herramientas deberían facilitar el modelamiento en términos de eventos, triggers (iniciadores), estado de los objetos, etc. Las herramientas de los CASE Orientados a Objetos generan códigos tan pronto como una clase sea definida y permitirá al diseñador probar y utilizar el método creado.
Las herramientas deberán ser diseñadas para estimular la máxima creatividad y continuo refinamiento del diseño durante la construcción.

COSTOS
El costo es una de las mayores desventajas por la que muchas empresas y desarrolladores no utilizan herramientas CASE. De acuerdo con la Tabla 1.1 el rango de precios de éstas herramientas en sus versiones para empresas van de los $500.00 hasta más de los $4,000.00 dólares, esto sin contar con los costos de entrenamiento y mantenimiento. Por ello se debe hacer un buen balance entre los costos y los beneficios que traería la adopción de una herramienta CASE.
POWER BUILDER
Precio: 2.833€
BORLAND TOGETHER 6.1
Precio: 1500 €
RATIONAL ROSE SOFTWARE
Precio: 1,057 €
POWER DESIGNER 6.1.
Precio: $2092.98 (dólares)