Herramientas Case De acuerdo con Kendall y Kendall la
ingeniera de sistemas asistida por ordenador es la aplicacin de tecnologa informtica a las actividades, las tcnicas y las metodologas propias de desarrollo, su objetivo es acelerar el proceso para el que han sido diseadas, en el caso de CASE para automatizar o apoyar una o mas fases del ciclo de vida del desarrollo de sistemas. Cuando se hace la planificacin de la base de datos, la primera etapa del ciclo de vida de las aplicaciones de bases de datos, tambin se puede escoger una herramienta CASE (Computer-Aided SoftwareEngineering) que permita llevar a cabo el resto de tareas del modo ms eficiente y efectivo posible. Una herramienta CASE suele incluir: Un diccionario de datos para almacenar informacin sobre los datos de la aplicacin de bases de datos. Herramientas de diseo para dar apoyo al anlisis de datos. Herramientas que permitan desarrollar el modelo de datos corporativo, as como los esquemas conceptual y lgico. Herramientas para desarrollar los prototipos de las aplicaciones. El uso de las herramientas CASE puede mejorar la productividad en el desarrollo de una aplicacin de bases de datos. 4. Tecnologa Case La tecnologa CASE supone la automatizacindel desarrollo del software, contribuyendo a mejorar la calidad y la productividad en el desarrollo de sistemas de informacin y se plantean los siguientes objetivos: Permitir la aplicacin prctica de metodologas estructuradas, las cuales al ser realizadas con una herramienta se consigue agilizar el trabajo. Facilitar la realizacin de prototipos y el desarrollo conjunto de aplicaciones. Simplificar el mantenimiento de los programas. Mejorar y estandarizar la documentacin. Aumentar la portabilidad de las aplicaciones. Facilitar la reutilizacin de componentes software. Permitir un desarrollo y un refinamiento visual de las aplicaciones, mediante la utilizacin de grficos. Automatizar: El desarrollo del software La documentacin
2. La generacin del cdigo El chequeo de errores La
gestindel proyecto Permitir: La reutilizacin del software La portabilidad del software La estandarizacin de la documentacin 5. Componentes de una herramienta case De una forma esquemtica podemos decir que una herramienta CASE se compone de los siguientes elementos: Repositorio (diccionario) donde se almacenan los elementos definidos o creados por la herramienta, y cuya gestin se realiza mediante el apoyo de un Sistema de Gestin de Base de Datos (SGBD) o de un sistema de gestin de ficheros. Meta modelo (no siempre visible), que constituye el marco para la definicin de las tcnicas y metodologas soportadas por la herramienta. Carga o descarga de datos, son facilidades que permiten cargar el repertorio de la herramienta CASE con datos provenientes de otros sistemas, o bien generar a partir de la propia herramienta esquemas de base de datos, programas, etc. que pueden, a su vez, alimentar otros sistemas. Este elemento proporciona as un medio de comunicacin con otras herramientas. Comprobacin de errores, facilidades que permiten llevar a cabo un anlisis de la exactitud, integridad y consistencia de los esquemas generados por la herramienta. Interfaz de usuario, que constar de editores de texto y herramientas de diseo grfico que permitan,
mediante la utilizacin de un sistema de ventanas, iconos y mens, con la
ayuda del ratn, definir los diagramas, matrices, etc. que incluyen las distintas metodologas. 6. Estructura general de una herramienta case La estructura CASE se basa en la siguiente terminologa: CASE de alto nivel son aquellas herramientas que automatizan o apoyan las fases finales o superiores del ciclo de vida del desarrollo de sistemas como la planificacin de sistemas, el anlisis de sistemas y el diseo de sistemas. CASE de bajo nivel son aquellas herramientas que automatizan o apoyan las fases finales o inferiores del ciclo de vida como el diseo detallado de sistemas, la implantacin de sistemas y el soporte de sistemas. CASE cruzado de ciclo de vida se aplica a aquellas herramientas que apoyan actividades que tienen lugar a lo largo de todo el ciclo de vida, se incluyen actividades como la gestin de proyectos y la estimacin. 7. Estado Actual En las ltimas dcadas se ha trabajado en el rea de desarrollo de sistemas para encontrar tcnicas que permitan incrementar la productividad y el control de calidad en cualquier proceso de elaboracin de software, y hoy en da la tecnologa CASE
3. (Computer Aided Software Engineering) reemplaza al papel y al
lpiz por el ordenador para transformar la actividad de desarrollar software en un proceso automatizado. La tecnologa CASE supone la informatizacin de la informticaes decir la automatizacin del desarrollo del software--, contribuyendo as a elevar la productividad y la calidad de en el desarrollo de los sistemas de informacin de forma anloga a lo que suponen las tcnicas CAD/CAM en el rea de fabricacin. En este nuevo enfoque que persigue mejorar la calidad del software e incrementar la productividad en el proceso de desarrollo del mismo, se plantean los siguientes objetivos: <<> Permitir la aplicacin prctica de metodologas, lo que resulta muy difcil sin emplear herramientas. <<> Facilitar la realizacin de prototipos y el desarrollo conjunto de aplicaciones. <<> Simplificar el mantenimiento del software. Mejorar y estandarizar la documentacin. Aumentar la portabilidad de las aplicaciones. Facilitar la reutilizacin de componentes de software Permitir un desarrollo y un refinamiento (visual) de las aplicaciones, mediante la utilizacin de controles grficos (piezas de cdigo reutilizables). 8. Integracin de las herramientas case en el futuro Las herramientas CASE evolucionan hacia tres tipos de integracin: 1. La integracin de datos permite disponer de herramientas CASE con diferentes estructuras de diccionarios locales para el intercambio de datos. 2. 3. La integracin de presentacin confiere a todas las herramientas CASE el mismo aspecto. 4. La integracin de herramientas permite disponer de herramientas CASE capaces de invocar a otras CASE de forma automtica. 9. Clasificacin de las herramientas case No existe una nica clasificacin de herramientas CASE y, en ocasiones, es difcil incluirlas en una clase determinada. Podran clasificarse atendiendo a: - Las plataformas que soportan. - Las fases del ciclo de vida del desarrollo de sistemas que cubren. - La arquitectura de las aplicaciones que producen. - Su funcionalidad. CASE es una combinacin de herramientas software (aplicaciones) y de metodologas de desarrollo : 1. Las herramientas
permiten automatizar el proceso de desarrollo del software. 2. Las
metodologas definen los procesos automatizar. Una primera clasificacin del CASE es considerando su amplitud : TOOLKIT: es una coleccin de herramientas integradas que permiten automatizar un conjunto de tareas de algunas de las fases del ciclo de vida del sistema informtico: Planificacin estratgica, Anlisis, Diseo, Generacin de programas. WORKBENCH: Son conjuntos integrados de herramientas que dan soporte a la
4. automatizacin del proceso completo de desarrollo del sistema
informtico. Permiten cubrir el ciclo de vida completo. El producto final aportado por ellas es un sistema en cdigo ejecutable y su documentacin. Una segunda clasificacin es teniendo en cuenta las fases (y/o tareas) del ciclo de vida que automatizan: UPPER CASE: Planificacin estratgica, Requerimientos de Desarrollo Funcional de Planes Corporativos. MIDDLE CASE: Anlisis y Diseo. LOWER CASE: Generacin de cdigo, test e implantacin 10. Caractersticas Deseables De Una Case Una herramienta CASE cliente / servidor provee modelo de datos, generacin de cdigo, registrodel ciclo de vida de los proyectos, comunicacin entre distintos ingenieros. Las principales herramientas son KnowledgeWares Application Development Workbench, TIs, Information Engineering Facility (IEF), y Andersen Consultings Foundation for Cooperative Processing. Deberes de una herramienta CASE Cliente / servidor: Proporcionar topologasde aplicacin flexibles. La herramienta debe proporcionar facilidades de construccin que permita separar la aplicacin (en muchos puntos diferentes) entre el cliente, el servidor y ms importante, entre servidores. Proporcionar aplicaciones porttiles. La herramienta debe generar cdigo para Windows, OS/ 2, Macintosh, Unix y todas las plataformas de servidores conocidas. Debe ser capaz, a tiempo de corrida, desplegar la versin correcta del cdigo en la mquina apropiada. Control de Versin. La herramienta debe reconocer las versiones de cdigos que se ejecutan en los clientes y servidores, y asegurarse que sean consistentes. Tambin, la herramienta debe ser capaz de controlar un gran nmero de tipos de objetos incluyendo texto, grficos, mapas de bits, documentos complejos y objetos nicos, tales como definiciones de pantallas y de informes, archivos de objetos y datos de prueba y resultados. Debe mantener versiones de objetos con niveles arbitrarios de granularidad; por ejemplo, una nica definicin de datos o una agrupacin de mdulos. Crear cdigo compilado en el servidor. La herramienta debe ser capaz de compilar automticamente cdigo 4GL en el servidor para obtener el mximo performance. Trabajar con una variedad de administradores de recurso. La herramienta debe adaptarse ella misma a los administradores de recurso que existen en varios servidores de la red; su interaccin con los administradores de recurso debera ser negociable a tiempo de ejecucin. Trabajar con una variedad de software intermedios. La herramienta debe adaptar sus comunicaciones cliente / servidor al software intermedio existente. Como mnimo la herramienta debera ajustar los temporizadores basndose en, si el trfico se est moviendo en una LAN o WAN. Soporte multiusuarios. La herramienta debe permitir que varios diseadores trabajen en una aplicacin
simultneamente. Debe gestionarse los accesos concurrentes a la base de
datos por diferentes usuarios, mediante el arbitrio y bloqueos de accesos a nivel de archivo o de registro. Seguridad. La herramienta debe proporcionar mecanismos para controlar el acceso y las modificaciones a los que contiene. La herramienta debe, al menos, mantener
5. contraseas y permisos de acceso en distintos niveles para cada
usuario. Tambin debe facilitar la realizacin automtica de copias de seguridad y recuperaciones de las mismas, as como el almacenamiento de grupos de informacin determinados, por ejemplo, por proyecto o aplicaciones. Desarrollo en equipo, repositorio de libreras compartidas. Debe permitir que grupos de programadores trabajen en un proyecto comn; debe proveer facilidades de check- in/ check-out registrar formas, widgets, controles, campos, objetos de negocio, DLL, etc.; debe proporcionar un mecanismo para compartir las libreras entre distintos realizadores y mltiples herramientas; Gestiona y controla el acceso multiusuario a los datos y bloquea los objetos para evitar que se pierdan modificaciones inadvertidamente cuando se realizan simultneamente. 11. Factores asociados a la implantacin de las herramientas case La difusin de las innovaciones en esta rea ha comenzado a estudiarse a partir de los aos 1940. Por ello, existen estudios tericos al respecto, realizndose evaluaciones, adopcin e implementacin tecnolgica. Existe un amplio cuerpo de investigaciones disponibles sobre la adopcin de innovaciones. Muchos de los estudios sobre innovacin se han analizado bajo dos perspectivas: adopcin y difusin (Kimberly, 1981). Mientras unos estudios usan la perspectiva de la adopcin para evaluar la receptividad y los cambios de la organizacin o sociedad por la innovacin, otros usan la perspectiva de la difusin para intentar entender por qu y cmo se difunde y qu caractersticas generales o principales de la innovacin son aceptadas. 6. Ejemplos de Herramientas Case ms utilizadas. ERwin: PLATINUM ERwin es una herramienta para el diseo de base de datos, que Brinda productividaden su diseo, generacin, y mantenimiento de aplicaciones. Desde un modelo lgico de los requerimientos de informacin, hasta el modelo fsico perfeccionado para las caractersticas especficas de la base de datos diseada, adems ERwin permite visualizar la estructura, los elementos importantes, y optimizar el diseo de la base de datos. Genera automticamente las tablas y miles de lneas de stored procedure y triggers para los principales tipos de base de datos. ERwin hace fcil el diseo de una base de datos. Los diseadores de bases de datos slo apuntan y pulsan un botn para crear un grfico del modelo E-R (Entidad _ relacin) de todos sus requerimientos de datos y capturar las reglas de negocio en un modelo lgico, mostrando todas las entidades, atributos, relaciones, y llaves importantes. La migracinautomtica garantiza la integridad referencial de la base de datos. ERwin establece una conexin entre una base de datos diseada y una base de datos, permitiendo transferencia entre ambas y la aplicacin de ingeniera reversa. Usando esta conexin, ERwin genera automticamente tablas, vistas, ndices, reglas de integridad referencial (llaves primarias, llaves forneas), valores por defecto
y restricciones de campos y dominios. ERwin soporta principalmente bases
de datos relacionales SQL y bases de datos que incluyen Oracle, Microsoft SQL Server, Sybase. El mismo modelo puede ser
6. usado para generar mltiples bases de datos, o convertir una
aplicacin de una plataforma de base de datos a otra. Software para Aplicaciones Compatibles: * NetDynamics * PowerBuilder * PROGRESS * Visual Basic Bases de Datos Compatibles: * CA-Clipper * CA-OpenIngres * DB2 for MVS * DB2 for OS/390, * DB2 UDB * dBASE * FoxPro * HiRDB, * Informix * InterBase, * Microsoft Access * Microsoft SQL Server, * Oracle * Paradox, * Rdb * red Brick Warehouse, * SAS * SQL Anywhere, * SQLBase * Sybase, * Teradata Sistemas Operativos Compatibles: * Windows NT * Windows 95 * Windows 98 Requerimientos Tcnicos: Mnimo 10 MB de espacio de disco duro, 16 MB RAM (32 MB RAM recomendado para modelos largos.) EasyCASE EasyCASE Profesional - el centro de productos para procesos, modelamiento de datos y eventos, e Ingeniera de Base de Datos- es un producto para la generacin de esquemas de base de datos e ingeniera reversa - trabaja para proveer una solucin comprensible para el diseo, consistencia y documentacin del sistema en conjunto. Esta herramienta permite automatizar las fases de anlisis y diseo dentro del desarrollo de una aplicacin, para poder crear las aplicaciones eficazmente desde el procesamiento de transacciones a la aplicacin de bases de datos de cliente/servidor, as como sistemas de tiempo real. EasyCASE Profesional, una herramienta multi-usuario, es ideal para aquellos que necesitan compartir datos y trabajar en un proyectocon otros departamentos. El equipo completo puede acceder proyectos localizados en el servidor de la red concurrentemente. Para asegurar la seguridad de los datos, existe el diagrama y diccionario de los datos que bloquean por niveles al registro, al archivoy al proyecto, y niveles de control de acceso. Base de datos que soporta: * Oracle * Paradox * Progress * SQLBase * SQL Server * Sybase * Watcom SQL * Access
7. * ANSI SQL * Clipper * dBASE III, IV, V * DB2 * FoxPro * Informix
Requerimientos del sistema: EasyCASE Professional 4.2 o superior requiere: EasyCASE Database Engineer; PCs 386/486/Pentium y compatibles; Microsoft Windows 3.1 o superior, 8 MB RAM, 8 MB de espacio en disco duro; VGA o mejor color. Oracle Designer: Oracle Designer es un conjunto de herramientas para guardar las definiciones que necesita el usuario y automatizar la construccin rpida de aplicaciones cliente/servidor grficas. Integrado con Oracle Developer, Oracle Designer, que provee una solucin para desarrollar sistemas empresariales de segunda generacin. Todos los datos ingresados por cualquier herramienta de Oracle Designer, en cualquier fase de desarrollo, se guardan en un repositorio central, habilitando el trabajo fcil del equipo y la direccin del proyecto. En el lado del Servidor, Oracle Designer soporta la definicin, generacin y captura de diseo de los siguientes tipos de bases de datos, por conexin de Oracle: Oracle8, Oracle7 Personal Oracle Lite Rdb ANSI 92 DB2/2 and MVS Microsoft SQL Server Sybase System Architect Esta herramienta posee un
repositorio nico que integra todas las herramientas, y metodologas usadas.
En la elaboracin de los diagramas, el System Architect conecta directamente al diccionario de datos, los elementos asociados, comentarios, reglas de validaciones, normalizacin, etc. Posee control automtico de diagramas y datos, normalizaciones y balanceamiento entre diagramas "Padre e Hijo", adems de balanceamiento horizontal, que trabaja integrado con el diccionario de datos, asegurando la compatibilidad entre el Modelo de Datos y el Modelo Funcional. El System Architect Traduce modelos de entidades en esquemas para: * Sybase * DB2 * Oracle u Oracle 7 * Ingress * SQL Server * RDB * XDB * Progress * Paradox
Informix Esta herramienta tambin Genera en Windows DDL, definiciones de datos para lenguaje C/C++ y estructuras de datos en Cobol. En esta ultima versin del System Architect es posible a travs de ODBC, la creacin de bases de datos a partir del modelo de entidades, adems Posee esquemas de seguridad e integridad a travs de contraseas que posibilitan el acceso al sistema en diversos niveles, pudindose integrar a la seguridad de la red. EL LENGUAJE UNIFI CADO DE MODELADO (UML) En todas las disciplinas de la Ingeniera se hace evidente la importancia de los modelos ya que describen el aspecto y la conducta de "algo". Ese "algo" puede existir, estar en un estado de desarrollo o estar, todava, en un estado de planeacin. Es en este momento cuando los diseadores del modelo deben investigar los requerimientos del producto terminado y dichos requerimientos pueden incluir reas tales como funcionalidad, performance y confiabilidad. Adems, a menudo, el modelo es dividido en un nmero de vistas, cada una de las cuales describe un aspecto especfico del producto o sistema en construccin. El modelado sirve no solamente para los grandes sistemas, aun en aplicaciones de pequeo tamao se obtienen beneficios de modelado, sin embargo es un hecho que entre ms grande y ms complejo es el sistema, ms importante es el papel de que juega el modelado por una simple razn: "El hombre hace modelos de sistemas complejos porque no puede entenderlos en su totalidad". UML es una tcnica para la especificacin sistemas en todas sus fases. Naci en 1994 cubriendo los aspectos principales de todos los mtodos de diseo antecesores y, precisamente, los padres de UML son Grady Booch, autor del mtodo Booch; James Rumbaugh, autor del mtodo OMT e Ivar Jacobson, autor de los mtodos OOSE y Objectory. La versin 1.0 de UML fue liberada en Enero de 1997 y ha sido utilizado con xito en sistemas construidos para toda clase de industrias alrededor del mundo: hospitales, bancos, comunicaciones, aeronutica, finanzas, etc.
9. Los principales beneficios de UML son: Mejores tiempos totales
de desarrollo (de 50 % o ms). Modelar sistemas (y no slo de software) utilizando conceptos orientados a objetos. Establecer conceptos y artefactos ejecutables. Encaminar el desarrollo del escalamiento en sistemas complejos de misin crtica. Crear un lenguaje de modelado utilizado tanto por humanos como por mquinas. Mejor soporte a la planeacin y al control
de proyectos. Alta reutilizacin y minimizacin de costos. SISTEMAS
"Sistema es una coleccin organizada de hombres, mquinas y mtodos necesaria para cumplir un objetivo especfico". Resumiendo, de las definiciones se pueden extraer unos aspectos fundamentales: La existencia de elementos diversos e interconectados El carcter de unidad global del conjunto La existencia de objetivos asociados al mismo La integracin del conjunto en un entorno Todos estos aspectos forman parte intrnseca del concepto sistema. elementos organizadas y relacionadas que interactan entre s para lograr un objetivo. Los sistemas reciben (entrada) datos, energa o materia del ambiente y proveen (salida) informacin, energa o materia. Un sistema puede ser fsico o concreto (una computadora, un televisor, un humano) o puede ser abstracto o conceptual (un software) Cada sistema existe dentro de otro ms grande, por lo tanto un sistema puede estar
10. formado por subsistemas y partes, y a la vez puede ser parte
de un supersistema. Los sistemas tienen lmites o fronteras, que los diferencian del ambiente. Ese lmite puede ser fsico (el gabinete de una computadora) o conceptual. Si hay algn intercambio entre el sistema y el ambiente a travs de ese lmite, el sistema es abierto, de lo contrario, el sistema es cerrado.