RETO MES DE ABRIL .............................docx
Herramientas CASE
1. Herramientas Case
De acuerdo con Kendall y Kendall la ingeniería de sistemas asistida por ordenador es la
aplicación de tecnología informática a las actividades, las técnicas y las metodologías
propias de desarrollo, su objetivo es acelerar el proceso para el que han sido diseñadas,
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 planificación de la base de datos, la primera etapa del ciclo de vida
de las aplicaciones de bases de datos, también se puede escoger una herramienta CASE
(Computer-Aided SoftwareEngineering) que permita llevar a cabo el resto de tareas del
modo más eficiente y efectivo posible. Una herramienta CASE suele incluir:
Un diccionario de datos para almacenar información sobre los datos de la aplicación
de bases de datos.
Herramientas de diseño para dar apoyo al análisis de datos.
Herramientas que permitan desarrollar el modelo de datos corporativo, así como los
esquemas conceptual y lógico.
Herramientas para desarrollar los prototipos de las aplicaciones.
El uso de las herramientas CASE puede mejorar la productividad en el desarrollo de una
aplicación de bases de datos.
4. Tecnología Case
La tecnología CASE supone la automatizacióndel desarrollo del software,
contribuyendo a mejorar la calidad y la productividad en el desarrollo de sistemas de
información y se plantean los siguientes objetivos:
Permitir la aplicación práctica de metodologías estructuradas, las cuales al ser
realizadas con una herramienta se consigue agilizar el trabajo.
Facilitar la realización de prototipos y el desarrollo conjunto de aplicaciones.
Simplificar el mantenimiento de los programas.
Mejorar y estandarizar la documentación.
Aumentar la portabilidad de las aplicaciones.
Facilitar la reutilización de componentes software.
Permitir un desarrollo y un refinamiento visual de las aplicaciones, mediante la
utilización de gráficos.
Automatizar:
Ø El desarrollo del software
Ø La documentación
2. Ø La generación del código
Ø El chequeo de errores
Ø La gestióndel proyecto
Permitir:
Ø La reutilización del software
Ø La portabilidad del software
Ø La estandarización de la documentación
5. Componentes de una herramienta case
De una forma esquemática 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 gestión se realiza mediante el apoyo de un Sistema de
Gestión de Base de Datos (SGBD) o de un sistema de gestión de ficheros.
Meta modelo (no siempre visible), que constituye el marco para la definición de las
técnicas y metodologías 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
comunicación con otras herramientas.
Comprobación de errores, facilidades que permiten llevar a cabo un análisis 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 diseño
gráfico que permitan, mediante la utilización de un sistema de ventanas, iconos y
menús, con la ayuda del ratón, definir los diagramas, matrices, etc. que incluyen las
distintas metodologías.
6. Estructura general de una herramienta case
La estructura CASE se basa en la siguiente terminología:
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 planificación
de sistemas, el análisis de sistemas y el diseño de sistemas.
CASE de bajo nivel son aquellas herramientas que automatizan o apoyan las fases
finales o inferiores del ciclo de vida como el diseño detallado de sistemas, la
implantación 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 gestión de proyectos y la estimación.
7. Estado Actual
En las últimas décadas se ha trabajado en el área de desarrollo de sistemas para
encontrar técnicas que permitan incrementar la productividad y el control de calidad en
cualquier proceso de elaboración de software, y hoy en día la tecnología CASE
3. (Computer Aided Software Engineering) reemplaza al papel y al lápiz por el ordenador
para transformar la actividad de desarrollar software en un proceso automatizado.
La tecnología CASE supone la –informatización de la informática—es decir –la
automatización del desarrollo del software--, contribuyendo así a elevar la
productividad y la calidad de en el desarrollo de los sistemas de información de forma
análoga a lo que suponen las técnicas CAD/CAM en el área de fabricación.
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 aplicación práctica de metodologías, lo que resulta muy difícil sin
emplear herramientas.
<<> Facilitar la realización de prototipos y el desarrollo conjunto de aplicaciones.
<<> Simplificar el mantenimiento del software.
Mejorar y estandarizar la documentación.
Aumentar la portabilidad de las aplicaciones.
Facilitar la reutilización de componentes de software
Permitir un desarrollo y un refinamiento (visual) de las aplicaciones, mediante la
utilización de controles gráficos (piezas de código reutilizables).
8. Integración de las herramientas case en el futuro
Las herramientas CASE evolucionan hacia tres tipos de integración:
1. La integración de datos permite disponer de herramientas CASE con diferentes
estructuras de diccionarios locales para el intercambio de datos.
2.
3. La integración de presentación confiere a todas las herramientas CASE el mismo
aspecto.
4. La integración de herramientas permite disponer de herramientas CASE capaces
de invocar a otras CASE de forma automática.
9. Clasificación de las herramientas case
No existe una única clasificación de herramientas CASE y, en ocasiones, es difícil
incluirlas en una clase determinada. Podrían 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 combinación de herramientas software (aplicaciones) y de metodologías
de desarrollo :
1. Las herramientas permiten automatizar el proceso de desarrollo del software.
2. Las metodologías definen los procesos automatizar.
Una primera clasificación del CASE es considerando su amplitud :
TOOLKIT: es una colección de herramientas integradas que permiten automatizar un
conjunto de tareas de algunas de las fases del ciclo de vida del sistema informático:
Planificación estratégica, Análisis, Diseño, Generación de programas.
WORKBENCH: Son conjuntos integrados de herramientas que dan soporte a la
4. automatización del proceso completo de desarrollo del sistema informático. Permiten
cubrir el ciclo de vida completo. El producto final aportado por ellas es un sistema en
código ejecutable y su documentación.
Una segunda clasificación es teniendo en cuenta las fases (y/o tareas) del ciclo de vida
que automatizan:
UPPER CASE: Planificación estratégica, Requerimientos de Desarrollo Funcional de
Planes Corporativos.
MIDDLE CASE: Análisis y Diseño.
LOWER CASE: Generación de código, test e implantación
10. Características Deseables De Una Case
Una herramienta CASE cliente / servidor provee modelo de datos, generación de
código, registrodel ciclo de vida de los proyectos, comunicación entre distintos
ingenieros. Las principales herramientas son KnowledgeWare’s Application
Development Workbench, TI’s, Information Engineering Facility (IEF), y Andersen
Consulting’s Foundation for Cooperative Processing.
Deberes de una herramienta CASE Cliente / servidor:
Ø Proporcionar topologíasde aplicación flexibles. La herramienta debe proporcionar
facilidades de construcción que permita separar la aplicación (en muchos puntos
diferentes) entre el cliente, el servidor y más importante, entre servidores.
Ø Proporcionar aplicaciones portátiles. La herramienta debe generar código para
Windows, OS/ 2, Macintosh, Unix y todas las plataformas de servidores conocidas.
Debe ser capaz, a tiempo de corrida, desplegar la versión correcta del código en la
máquina apropiada.
Ø Control de Versión. La herramienta debe reconocer las versiones de códigos que se
ejecutan en los clientes y servidores, y asegurarse que sean consistentes. También, la
herramienta debe ser capaz de controlar un gran número de tipos de objetos
incluyendo texto, gráficos, 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 definición de datos o una agrupación de módulos.
Ø Crear código compilado en el servidor. La herramienta debe ser capaz de compilar
automáticamente código 4GL en el servidor para obtener el máximo 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 interacción con los administradores de recurso debería ser negociable a
tiempo de ejecución.
Ø Trabajar con una variedad de software intermedios. La herramienta debe adaptar
sus comunicaciones cliente / servidor al software intermedio existente. Como mínimo la
herramienta debería ajustar los temporizadores basándose en, si el tráfico se está
moviendo en una LAN o WAN.
Ø Soporte multiusuarios. La herramienta debe permitir que varios diseñadores trabajen
en una aplicación simultáneamente. 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. contraseñas y permisos de acceso en distintos niveles para cada usuario. También debe
facilitar la realización automática de copias de seguridad y recuperaciones de las
mismas, así como el almacenamiento de grupos de información determinados, por
ejemplo, por proyecto o aplicaciones.
Ø Desarrollo en equipo, repositorio de librerías compartidas. Debe permitir que grupos
de programadores trabajen en un proyecto común; 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 librerías entre distintos
realizadores y múltiples herramientas; Gestiona y controla el acceso multiusuario a los
datos y bloquea los objetos para evitar que se pierdan modificaciones
inadvertidamente cuando se realizan simultáneamente.
11. Factores asociados a la implantación de las herramientas case
La difusión de las innovaciones en esta área ha comenzado a estudiarse a partir de los
años 1940. Por ello, existen estudios teóricos al respecto, realizándose evaluaciones,
adopción e implementación tecnológica.
Existe un amplio cuerpo de investigaciones disponibles sobre la adopción de
innovaciones. Muchos de los estudios sobre innovación se han analizado bajo dos
perspectivas: adopción y difusión (Kimberly, 1981). Mientras unos estudios usan la
perspectiva de la adopción para evaluar la receptividad y los cambios de la
organización o sociedad por la innovación, otros usan la perspectiva de la difusión para
intentar entender por qué y cómo se difunde y qué características generales o
principales de la innovación son aceptadas.
6. Ejemplos de Herramientas Case más utilizadas.
ERwin:
PLATINUM ERwin es una herramienta para el diseño de base de datos, que
Brinda productividaden su 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, además ERwin permite visualizar la estructura, los
elementos importantes, y optimizar el diseño de la base de datos. Genera
automáticamente las tablas y miles de líneas de stored procedure y triggers
para los principales tipos de base de datos.
ERwin hace fácil el diseño de una base de datos. Los diseñadores de bases de
datos sólo apuntan y pulsan un botón para crear un gráfico del modelo E-R
(Entidad _ relación) de todos sus requerimientos de datos y capturar las reglas
de negocio en un modelo lógico, mostrando todas las entidades, atributos,
relaciones, y llaves importantes.
La migraciónautomática garantiza la integridad referencial de la base de datos.
ERwin establece una conexión entre una base de datos diseñada y una base de
datos, permitiendo transferencia entre ambas y la aplicación de ingeniería
reversa. Usando esta conexión, ERwin genera automáticamente tablas, vistas,
índices, reglas de integridad referencial (llaves primarias, llaves foráneas),
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 múltiples bases de datos, o convertir una aplicación 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 Técnicos:
Mínimo 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 Ingeniería de Base de Datos- es un producto para la
generación de esquemas de base de datos e ingeniería reversa - trabaja para
proveer una solución comprensible para el diseño, consistencia y
documentación del sistema en conjunto.
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 el procesamiento de transacciones a la aplicación 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; PC’s 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 construcción rápida de aplicaciones
cliente/servidor gráficas. Integrado con Oracle Developer, Oracle Designer, que
provee una solución para desarrollar sistemas empresariales de segunda
generación.
Todos los datos ingresados por cualquier herramienta de Oracle Designer, en
cualquier fase de desarrollo, se guardan en un repositorio central, habilitando el
trabajo fácil del equipo y la dirección del proyecto.
En el lado del Servidor, Oracle Designer soporta la definición, generación y
captura de diseño de los siguientes tipos de bases de datos, por conexión 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 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.
El System Architect Traduce modelos de entidades en esquemas para:
* Sybase
* DB2
* Oracle u Oracle 7
* Ingress
* SQL Server
* RDB
* XDB
* Progress
* Paradox
8. * SQL Base
* AS400
* Interbase
* OS/2
* DBMS
* Dbase 111
* Informix
Esta herramienta también Genera en Windows DDL, definiciones de datos para
lenguaje C/C++ y estructuras de datos en Cobol. En esta ultima versión del
System Architect es posible a través de ODBC, la creación de bases de datos a
partir del modelo de entidades, además Posee esquemas de seguridad e
integridad a través de contraseñas que posibilitan el acceso al sistema en
diversos niveles, pudiéndose integrar a la seguridad de la red.
EL LENGUAJE UNIFICADO DE MODELADO (UML)
En todas las disciplinas de la Ingeniería 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, todavía, en un estado de planeación. Es en este
momento cuando los diseñadores del modelo deben investigar los requerimientos del
producto terminado y dichos requerimientos pueden incluir áreas tales como
funcionalidad, performance y confiabilidad. Además, a menudo, el modelo es dividido
en un número de vistas, cada una de las cuales describe un aspecto específico del
producto o sistema en construcción.
El modelado sirve no solamente para los grandes sistemas, aun en aplicaciones de
pequeño tamaño se obtienen beneficios de modelado, sin embargo es un hecho que
entre más grande y más complejo es el sistema, más importante es el papel de que
juega el modelado por una simple razón: "El hombre hace modelos de sistemas
complejos porque no puede entenderlos en su totalidad".
UML es una técnica para la especificación sistemas en todas sus fases. Nació en 1994
cubriendo los aspectos principales de todos los métodos de diseño antecesores y,
precisamente, los padres de UML son Grady Booch, autor del método Booch; James
Rumbaugh, autor del método OMT e Ivar Jacobson, autor de los métodos OOSE y
Objectory. La versión 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, aeronáutica, finanzas, etc.
9. Los principales beneficios de UML son:
Mejores tiempos totales de desarrollo (de 50 % o más).
Modelar sistemas (y no sólo de software) utilizando conceptos orientados a
objetos.
Establecer conceptos y artefactos ejecutables.
Encaminar el desarrollo del escalamiento en sistemas complejos de misión
crítica.
Crear un lenguaje de modelado utilizado tanto por humanos como por
máquinas.
Mejor soporte a la planeación y al control de proyectos.
Alta reutilización y minimización de costos.
SISTEMAS
"Sistema es una colección organizada de hombres, máquinas y métodos necesaria para
cumplir un objetivo específico".
Resumiendo, de las definiciones se pueden extraer unos aspectos fundamentales:
La existencia de elementos diversos e interconectados
El carácter de unidad global del conjunto
La existencia de objetivos asociados al mismo
La integración del conjunto en un entorno
Todos estos aspectos forman parte intrínseca del concepto sistema.
elementos organizadas y relacionadas que interactúan entre sí para lograr un objetivo.
Los sistemas reciben (entrada) datos, energía o materia del ambiente y proveen
(salida) información, energía o materia.
Un sistema puede ser físico o concreto (una computadora, un televisor, un humano) o
puede ser abstracto o conceptual (un software)
Cada sistema existe dentro de otro más 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 límites o fronteras, que los diferencian del ambiente. Ese límite
puede ser físico (el gabinete de una computadora) o conceptual. Si hay algún
intercambio entre el sistema y el ambiente a través de ese límite, el sistema es abierto,
de lo contrario, el sistema es cerrado.