jueves, 11 de marzo de 2010

HERRAMIENTAS CASE

Titulo de la actividad: Herramientas CASE.
Objetivo: Determinar el uso y caracteristicas de las herramientas CASE.
Actividades: Leer el Texto.
Producto: Analizar la información y redactar un ensayo sobre el tema.

Herramientas asistidas por computadora para el desarrollo de sistemas

Una herramienta es cualquier dispositivo que, cuando se emplea en forma apropiada, mejora el desempeño de una tarea.
 Importancia de las herramientas en el desarrollo de sistemas.
• Mejora la productividad del analista
• Mejora la eficiencia
• Mejora la calidad del sistema de información
Mejora la productividad: Se pueden realizar las mismas actividades de desarrollo en un tiempo mejor que el que se necesita cuando no se utilizan las herramientas. El uso de herramientas contribuye a mejorar la calidad de la productividad de una tarea. Ejemplo: A un carpintero se le hiciera más difícil poner los clavos con piedras o palos en lugar de usar un martillo. Las herramientas aumentan la productividad del analista al disminuirla cantidad de tiempo necesario para documentar, analizar y desarrollar sistemas de información.
Mejora la eficiencia: Las herramientas ayudan a mejorar la forma en que se va a realizar una tarea. Ejemplo: Para poner un tornillo no se utilizaría el martillo, se buscaría una herramienta que le permita realizar esta tarea más eficientemente, en este caso un destornillador. Las decisiones eficientes con respecto a la herramienta ahorran recursos:Personal, tiempo y dinero.
Mejora la calidad del sistema de información: Cuando las herramientas mejoran los procesos, por lo general también ocurre lo mismo con los resultados. Ejemplo: Cuando los carpinteros acaban una construcción si se utilizaron las herramientas adecuadas, las esquinas tienen ángulos rectos y los marcos de ventana bien hechos.

Beneficios de las herramientas asistidas por computadora

La automatización mejora los beneficios obtenidos con las herramientas. Disminuye el tiempo necesario para llevar a cabo las tareas, se reduce la intensidad del trabajo, y el seguimiento de todos los procedimientos se lleva a cabo de manera consistente; también se capturan los datos que describen el sistema para tenerlos almacenados en un formato que pueda leer una computadora.
Disminución de tiempo: Las herramientas ayudan a disminuir el tiempo en que se realizan las tareas, todo esto es posible si el analista esta bien entrenado para el uso de la herramienta que se utiliza.
Automatización de tareas tediosas: Los diagramas de flujo de datos son parte esencial del método de análisis estructurado y es una tarea que consume mucho tiempo. Con herramientas automatizadas esta tarea se vuelve menos tediosa ya que se pueden generar los dibujos a partir de un software.
Garantizar la consistencia de los procedimientos: Cuando los procedimientos forman parte del software, se realizan de forma mas consistentes, se convierten en una rutina y las reglas se pueden aplicar en forma consistente y exacta.
Clasificación de herramientas automatizadas: Las herramientas automatizadas se agrupan en tres categorías:
• Front-end
• Back-end
• Integrales
Herramientas de tipo front-end: Las herramientas de tipo front-end automatizan las primeras actividades del proceso de desarrollo de sistemas: análisis de requerimientos y diseño lógico.
Herramientas de tipo back-end: Las herramientas de tipo back-end tienen como finalidad ayudar al analista a formular la lógica del programa, los algoritmos de procesamiento y la descripción física de datos, también ayudan a la interacción con los dispositivos (para entrada y salida), etc. Dado que su empleo esta destinado al desarrollo de software, este tipo de herramientas también se conoce como herramientas para programación asistida por computadora.
Herramientas integrales: Las actividades de análisis abordan los detalles de alto nivel mientras que las actividades de desarrollo dan mayor importancia a los detalles de bajo nivel. Las especificaciones de alto nivel describen requerimientos del usuario, como entradas, salidas y expectativas de funcionamiento. Las especificaciones de bajo nivel indican la forma en que serán satisfechos estos requerimientos por medio de detalles que son específicos de la computadora
Las herramientas integrales proporcionan un ambiente que automatiza tareas clave a lo largo de todo el ciclo de vida de la aplicación, no solo el proceso de desarrollo. Si bien estas herramientas incluyen facilidades para manejar aspectos de análisis y desarrollo, también facilitan el diseño, administración y mantenimiento del código. Asimismo, brindan un ambiente eficiente para crea, almacenar, manipular, administrar y documentar sistemas.

Herramientas asistidas por computadora para la ingeniería de sistemas (CASE)

Las siglas CASE se emplean con bastante frecuencia en la comunidad de sistemas de información para denotar la ingeniería de sistemas asistida por computadora o la ingeniería de software asistida por computadora.
Las herramientas de tipo CASE incluyen los siguientes cinco componentes:
• Herramientas para diagramación
• Un deposito de información
• Generadores de interfaces
• Generadores de código
• Herramientas de administración
Herramientas para diagramación: Las herramientas para diagramación dan soporte al análisis y documentación de los requerimientos de una aplicación. Estas herramientas ofrecen la capacidad de dibujar diagramas y cartas, además de guardar los detalles en forma interna.
Deposito centralizado de información: La captura, análisis, procesamiento y distribución de todos los sistemas de información es asistida por un depósito de información centralizado o diccionario de datos.
Generador de interfaces: Las interfaces con el sistema son los medios que permiten a los usuarios interactuar con una aplicación, ya sea para dar entrada a información y datos o para recibir información.
Generadores de código: Los generadores de código automatizan la preparación de software. Estos incorporan métodos que permiten convertir las especificaciones del sistema en código ejecutable.
Herramientas de administración: Los sistemas CASE ayudan a los gerentes de desarrollo a calendarizar las actividades de análisis y diseño así como la asignación de recursos a las diferentes actividades del proyecto. Algunas herramientas CASE para administración permiten que los gerentes de proyecto especifiquen elementos de su propia elección.

Integración de herramientas en CASE

CASE incorpora varias herramientas que pueden considerarse por separado, como elementos discretos, o como parte de un sistema, un grupo de herramientas. La integración de herramientas ocurre en tres formas:
• Creación de una interface para desarrollo uniforme o adaptable
• Proporcionar la facilidad para transferir datos entre las herramientas
• Unir las actividades de desarrollo
Interface uniforme: Una interface uniforme significa que todas las herramientas en el sistema CASE son actividades de la misma manera y desde un lugar común en el sistema.
Facilidad para la transferencia de datos: La facilidad para la transferencia de datos significa que los detalles desarrollados con una herramienta pueden estar disponibles para otras. El diccionario de datos es el elemento crítico que hace posible la transferencia de datos entre las herramientas distintas.
Unir de las actividades de desarrollo: La facilidad para transferir datos y la unión de las fases de desarrollo se encuentran relacionadas, ya que se pueden utilizar una y otra vez los datos transferidos entre herramientas a través de todo el proceso de desarrollo.

Uso de una herramienta CASE

Operaciones iniciales: Los sistemas CASE almacenan información por proyecto. Cada aplicación de sistemas de información es considerada como un proyecto. La información que describe cada aplicación se mantiene por separado de la de otros proyectos.
Menú principal de funciones: El menú principal presenta los nombres de las siete funciones mas importantes de Excelerator: graficas, XLDiccionario, pantallas y reportes, documentación, análisis, interfases y utilerías.
Dibujo de diagramas de flujo de datos: Cuando se selecciona la función de graficas, aparece otro menú que muestra las opciones disponibles para el analista. Los diagramas de flujo de datos son uno de los muchos tipos de diagramas y cartas disponibles en el menú de graficas.
Diccionario por proyecto: A medida que se formulan las especificaciones y la documentación, toda la información con respecto al proyecto se acumula en el diccionario de datos que Excelerator mantiene para dicho proyecto.
El diccionario guarda los siguientes tipos de información:
• Registro y elementos: Detalles de elementos dato y registros.
• Datos: Detalles relacionados con almacenes y flujos de datos, etc. También se incluyen tablas de códigos definidos por el usuario junto con su significado así como el uso de otros nombres (alias).
• Procesos: Procesos, funciones y módulos del sistema.
• Graficas: Diagramas de flujo de datos, graficas estructuradas, diagramas para modelos de datos, diagramas estructurados, diagramas de relación entre entidades y graficas de presentación.
• Pantallas e informes: Definiciones y composición del diseño de los informes, diseños de pantallas y formas para la entrada de datos. También es posible preparar informes relacionados con la entrada de datos en pantalla.
• Entidades de otro tipo: Informes de las especificaciones contenidas en el diccionario, listados de entidades, nombres de usuarios y descripciones de documentos.
Pantallas e informes: El diseño de una pantalla comienza con una pantalla de presentación visual en limpio. Al mover el cursor por toda la pantalla, quizás con las teclas con flechas que aparecen en el teclado, el usuario puede especificar las posiciones donde desea que aparezcan letreros, campos para entradas y salidas, encabezados y títulos.
Herramientas para análisis y documentación: Excelerator ofrece características tales como un conjunto de reportes que validan las descripciones del sistema.
Utilerías: La información utilizada por el sistema Excelerator se encuentra descrita por las funciones de utilería. Las utilerías proporcionan funciones de respaldo y recuperación. Con ellas es posible copiar o volver a crear una parte do todo el diccionario del proyecto a partir de una copia de respaldo.

Beneficios de CASE

Entre los beneficios ofrecidos por la tecnología CASE se encuentran los siguientes:
• Facilidad para llevar a cabo la tarea de revisión de especificaciones del sistema así como de representaciones graficas (lo que aumenta la posibilidad de realizar la tarea).
• Facilidad para desarrollar prototipos de sistemas por medio de la capacidad para cambiar especificaciones y, por otro lado, para determinar el efecto que sobre el desempeño del sistema tendrían otras alternativas.
• Generación de código.
• Soporte para mantenimiento como resultado de haber guardado las especificaciones del sistema en un depósito central de información.
• Aumentar las posibilidades de satisfacer los requerimientos del usuario.
Facilidad para la revisión de aplicaciones: Las herramientas CASE proporcionan un beneficio substancial para las organizaciones al facilitar la revisión de las aplicaciones. Contar con un deposito central, agiliza el proceso de revisión ya que este proporciona bases para las definiciones y estándares para los datos.
Soporte para el desarrollo de prototipos de sistemas: Muchas herramientas CASE soportan las primeras etapas del desarrollo de un prototipo. Muy pocas brindan apoyo durante todo el proceso de desarrollo del prototipo. Las que proporcionan la capacidad para ser generado al inducir la actividad de generación después de cambiar las especificaciones o requerimientos.
Generación de código: Algunas herramientas CASE tienen la capacidad de producir el código fuente. La ventaja más visible de esta característica es la disminución del tiempo necesario para preparar un programa. Esto asegura la estructura estándar y consistente para el programa y disminuye la ocurrencia de varios tipos de errores, mejorando de esta manera la calidad.
Mejora en la habilidad para satisfacer los requerimientos del usuario: Conocer las necesidades de los usuarios es importante en el éxito del sistema ya que mejora la calidad en su desarrollo.
Soporte iterativo para el proceso de desarrollo: La experiencia ha demostrado que el desarrollo de sistemas es un proceso iterativo. Los analistas repasan y revisan los detalles del sistema con mayor frecuencia y en forma mas consistente.

Debilidades de CASE

Confiabilidad en los métodos estructurados
Muchas herramientas CASE están construidas teniendo como base las metodologías del análisis estructurado y del ciclo de vida de desarrollo de sistemas. Por si sola, esta característica puede convertirse en la principal limitante ya que no todas las organizaciones emplean métodos de análisis estructurado.
Falta de niveles estándar para el soporte de la metodología
Las herramientas CASE que existen en el presente, tienen una de las siguientes características:
• Son independientes de la metodología
• Permiten que los usuarios definan sus propias metodologías, reglas y estándares
• Soportan una metodología
• Soportan las metodologías mas diseminadas
Las herramientas que proporcionan un soporte limitado a una sola metodología pueden forzar el uso riguroso de reglas, procedimientos y estándares de esta, además brindan ayuda sensible al contexto y bases de conocimiento que ofrecen asistencia experta. Sin embargo, entre mas metodologías soporte una herramienta, existe la posibilidad cada vez mayor de que la seguridad y ayuda que esta ofrece sea menor.
Conflictos en el uso de los diagramas: Algunas herramientas son exclusivamente para graficas, que se abocan al dibujo de diagramas para el análisis de entrada y salida de datos. Este tipo de herramientas pueden restringir ya sea el proceso de desarrollo normal seguido por una organización o el estilo particular de trabajo de los analistas.
Diagramas no utilizados: Los investigadores han encontrado que, en algunos casos, las herramientas graficas, automatizada o manuales, no se emplean del todo. O no se utilizan de la forma en que se deberían utilizar.
Función limitada: Muchas herramientas para la fase de desarrollo recalcan el mantenimiento y la reestructuración del código, pero ofrecen un soporte débil durante la fase de análisis para la determinación y especificación de requerimientos.
Alcance limitado: La mayor parte de productos CASE describe pero no analiza. De poca ayuda es proporcionar una regla de inclusión en los mejores enfoques y una regla de exclusión para los que son poco satisfactorios. No ofrecen o evalúan soluciones potenciales para los problemas relacionados con sistemas. Y tampoco existe una garantía clara para que dos analistas que utilicen los mismos métodos aplicados a información idéntica, formulen recomendaciones igualmente aceptables.
Las tareas humanas siguen siendo críticas: La tecnología CASE ofrece herramientas que soportan las funciones de modelado, verificación, manejo de datos y de utilería que son necesarias para mejorar la productividad del desarrollo. Pero obtener y comprender los requerimientos son tareas realizadas por los seres humanos y lo más probable es que se continúe de tal forma.