Haga click para publicitar en Alipso.com
Buscando Secundarios  |  Universidades  |  Carreras  |  Test Orientación Vocacional  |  Medios  |  Profesores particulares  |  Institutos   | Campus
Material Monografias  |  Exámenes Secundarios  |  Exámenes Universitarios  |  Enlaces  |  Enviar material |
Diversión Postales  |  Humor  |  Descargas  |  Juegos Comunidad  Foros  | Institucional Publicite  |  En su sitio  | Contáctese
Cursos en Buenos Aires
 Cursos de Informática | Cursos de apoyo al CBC | Carreras y Cursos de Diseño, Comunicación, Arte y Fotografía

[Monografias, exámenes y sitios ]
Todas las palabras   Cualquier palabra   Frase Exacta
Página inicial Agregar a Favoritos  |  Nuevos Recursos

Imprimir apunte Recomendar a un amigo Recordarme el recurso Descargar como PDF

Más sobre este recurso:
Catalogado en base de datos como: Herramientas para el Desarrollo de Sistemas de Información: En el presente se describen las principales herramientas de ayuda al desarro-llo de Sistemas de Información, existentes en la actualidad: CASE, 4GL y otras herramientas de carácter específico.
Agregado: 01 de OCTUBRE de 2000 | Palabras: 13662 | Votar! | Sin Votos | Sin comentarios | Agregar Comentario
Categoría: Apuntes y Monografías > Computación > Varios >

Recomendamos

Material educativo de Alipso relacionado con Herramientas para Desarrollo Sistemas Informacion
  • EDUCACIÓN ESPECIAL: Éste trabajo tiene por objetivo presentar algunos conceptos básicos sobre Educación especial y diferencial para niños con dificultades del aprendizaje escolar.
  • ¿Qué es la filosofía para mi?:
  • Derecho Penal Especial: sobre los elementos necesarios para interpretar el tipo penal delictual
  • Gerenciar sólo por indicadores financieros es un suicidio: ...


  • Enlaces externos relacionados con Herramientas para Desarrollo Sistemas Informacion
  • El sistema penal como forma de reaccion social frente a la criminalidad
  • Teoria de los lenguajes de programacion
  • Asociación de Psicólogos de Buenos Aires


  • Herramientas para el Desarrollo

    de Sistemas de Información

     

    Las Herramientas de Ayuda al Desarrollo de Sistemas de Información, surgieron para intentar dar solución a los problemas inherentes a los proyectos de generación de aplicaciones informáticas: plazos y presupuestos incumplidos, insatisfacción del usuario, escasa productividad y baja calidad de los desarrollos. Algunas de estas herramientas se dirigen principalmente a mejorar la calidad, como es el caso de las herramientas CASE (Computer Aided Software Engineering-Ingeniería de Software Asistida por Ordenador). Otras van dirigidas a mejorar la productividad durante la fase de construcción, como es el caso de los lenguajes de cuarta generación (4GL-Fourth Generation Language).

    En el presente se describen las principales herramientas de ayuda al desarrollo de Sistemas de Información, existentes en la actualidad: CASE, 4GL y otras herramientas de carácter específico. También se describe su funcionalidad y las características más relevantes, con la finalidad de ayudar en la elección de la herramienta adecuada a cada caso.

    Conceptos y funcionalidades básicas

    El presente describe los componentes esenciales y las funcionalidades de las diferentes herramientas de ayuda al desarrollo.

    Los principales conceptos utilizados en las herramientas de ayuda al desarrollo son los siguientes:

    Ayuda de la herramienta. Es una ayuda incorporada al programa, brindando información sobre el uso de los componentes de la propia herramienta, de fácil acceso y con utilidades de búsqueda de temas o palabras claves. Una ayuda interactiva evita el manejo de manuales.

    Diccionario de datos. Descripción lógica de los datos para el usuario. Reúne la información sobre los datos almacenados en una base de datos (descripción, significado, estructura, consideraciones de seguridad y uso de aplicaciones, etc.).

    Ingeniería del software. Es el tratamiento sistemático de todas las fases del ciclo de vida del software, abordando el desarrollo de sistemas de información de forma similar a los proyectos de ingeniería. Esto implica la identificación de las tareas a realizar (establecidas según una metodología de desarrollo), de los productos a obtener y de las técnicas y herramientas a utilizar.

    Ingeniería directa. Es el proceso de producción del código de una aplicación a partir de sus especificaciones.

    Ingeniería inversa. Conjunto de tareas destinadas a obtener las especificaciones de un sistema de información, partiendo del propio sistema. Es una actividad típica del mantenimiento de aplicaciones, cuando no existen las especificaciones de diseño de la aplicación a mantener.

    Metodología de planificación y desarrollo de aplicaciones. Es el conjunto de métodos que basados en unos principios, se integran en el marco del ciclo de vida de los sistemas. La metodología debe recoger las tareas a realizar, los responsables de cada una de ellas y los productos a obtener en el desarrollo de un sistema de información. También puede incluir o hacer referencia a las técnicas a emplear en cada momento.

    Reingeniería de Sistemas. Es la modificación de los componentes de una aplicación, sin cambiar sus funcionalidades, por ejemplo: la mejora de la codificación de un programa. A veces también se emplea este término para referirse conjuntamente a la ingeniería directa e inversa.

    Sistema de Información - SI. Conjunto de elementos físicos, lógicos, de comunicación, datos y personal que, interrelacionados, permiten el almacenamiento, transmisión y proceso de la información.

    Workbench. Es una interfase gráfica que permite modelar procesos y datos. Está basada en el mismo principio de la programación visual: no se emplea lenguajes procedurales sino iconos, los cuales no son dibujos del tipo flow, sino objetos que se almacenan en el repositorio.

    Permiten aplicar la recursividad, es decir que los modelos son vistos en diferentes niveles de detalle, lo cual permite un uso eficiente de las técnicas de análisis de procesos. Permite manejar diferentes metodologías de análisis y diseño. Sirve de ayuda metodológica para quienes no están habituados a usarlas.

    HERRAMIENTAS

    Herramientas CASE

    Son un conjunto de métodos, utilidades y técnicas que facilitan la automatización del ciclo de vida del desarrollo de sistemas de información, completamente o en alguna de sus fases.

    El empleo de herramientas Case permiten integrar el proceso de ciclo de vida:

    ·                     Análisis de datos y procesos integrados mediante un repositorio.

    ·                     Generación de interfases entre el análisis y el diseño.

    ·                     Generación del código a partir del diseño.

    ·                     Control de mantenimiento.

    Actualmente, la tendencia en el desarrollo de software está enfocada hacia las microcomputadoras como plataformas de ingeniería de software, que se interconectan mediante redes para que puedan comunicarse de forma efectiva. La base de datos del proyecto (también denominada biblioteca del proyecto o depósito de software), está disponible a través de un servidor de archivos en red que es accesible desde todas las estaciones de trabajo. Un sistema operativo que gestiona el hardware, la red y las herramientas, mantiene todo el entorno unido.

    La arquitectura de entorno, compuesta por la plataforma hardware y el soporte del sistema operativo (incluida la red y la gestión de la base de datos), constituye la base del CASE. Pero el entorno CASE, en sí mismo, necesita otros componentes. Un conjunto de servicios de portabilidad constituyen un puente entre las herramientas CASE y su marco de integración y la arquitectura de entorno. El marco de integración es un conjunto de programas especializados que permite a cada herramienta CASE comunicarse con las demás, para crear una base de datos de proyectos y mostrar una apariencia homogénea al usuario final (el ingeniero de software). Los servicios de portabilidad permiten que las herramientas CASE y su marco de integración puedan migrar a través de diferentes plataformas hardware y sistemas operativos, sin grandes esfuerzos de adaptación.

    La mayoría de las herramientas Case no han sido construidas utilizando todos los bloques componentes. Muchas de éstas son soluciones puntuales, esto es, una herramienta se utiliza como ayuda en una actividad concreta de ingeniería de software (por ejemplo: modelización del análisis), pero no se comunica directamente con otras herramientas, porque no está unida a una base de datos de proyectos. Aunque esta situación no es la ideal, una herramienta Case puede ser utilizada eficientemente, aún siendo una solución puntual.

    En el nivel más bajo del espectro de integración está la herramienta individual (solución puntual). Cuando las herramientas proporcionan facilidades para el intercambio de datos (la mayoría lo hace), el nivel de integración aumenta ligeramente. Estas herramientas generan una salida en un formato estándar compatible con otras herramientas que puedan leer ese formato. En algunos casos, los que construyen herramientas CASE complementarias trabajan juntos para establecer un puente entre ellas (p. ej.: una herramienta de análisis y diseño que se une a un generador de código). Utilizando este enfoque, la compatibilidad entre herramientas puede generar productos finales que serían difíciles de desarrollar utilizando cada herramienta por separado. La integración por fuente única se da cuando un constructor de herramientas CASE integra diferentes herramientas y las vende como un único paquete. Aunque este enfoque es bastante efectivo, la mayoría de los entornos provenientes de una misma fuente tienen una arquitectura cerrada que hace difícil añadir nuevas herramientas de otros vendedores.

    Al final del espectro de integración está el entorno de soporte de proyectos integrado (del inglés IPSE). Se crean estándares para cada uno de los bloques componentes. Los vendedores de herramientas CASE utilizan estos estándares IPSE para construir herramientas entre sí.

    La principal ventaja de la utilización de una herramienta CASE, es la mejora de la calidad de los desarrollos realizados y, en segundo término, el aumento de la productividad. Para conseguir estos dos objetivos es conveniente contar con una organización y una metodología de trabajo además de la propia herramienta.

    La mejora de calidad se consigue reduciendo sustancialmente muchos de los problemas de análisis y diseño, inherentes a los proyectos de mediano y gran tamaño (lógica del diseño, coherencia, consolidación, etc.).

    La mejora de productividad se consigue a través de la automatización de determinadas tareas como la generación de código y la reutilización de objetos o módulos.

    Tipos de 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.

    Las herramientas CASE, en función de las fases del ciclo de vida abarcadas, se pueden agrupar de la forma siguiente:

    ·                     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.

    ·                     Herramienta(s) que comprende(n) alguna(s) fase(s) del ciclo de vida de desarrollo de software:

    ·                     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.

    ·                     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.

    ·                     Juegos de herramientas o toolkits, 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.

    Las herramientas I-CASE se basan en una metodología. Tienen un repositorio y aportan técnicas estructuradas para todas las fases del ciclo de vida. Estas son las características que les confieren su mayor ventaja: una mejora de la calidad de los desarrollos. Sin embargo, no todas ellas son modernas en el sentido de aprovechar la potencia de las estaciones de trabajo o la utilización de lenguajes de alto nivel o técnicas de prototipeo.

    Una estrategia posible es utilizar una U-CASE para análisis y diseño, combinada con otras herramientas más modernas para las fases de construcción y pruebas. En este caso, habría que vigilar cuidadosamente la integración entre las distintas herramientas.

    Requisitos de aplicación de Case:

    ·                     Conocimiento y manejo de metodologías.

    ·                     Capacidad de trabajo en equipo.

    ·                     Desarrollo conjunto con los usuarios (Prototipos).

    ·                     Equipamiento apropiado.

    Otra posible clasificación, utilizando la funcionalidad como criterio principal, es la siguiente:

    ·                     Herramientas de planificación de sistemas de gestión. Sirven para modelizar los requisitos de información estratégica de una organización. Proporcionan un "metamodelo" del cual se pueden obtener sistemas de información específicos. Su objetivo principal es ayudar a comprender mejor cómo se mueve la información entre las distintas unidades organizativas. Estas herramientas proporcionan una ayuda importante cuando se diseñan nuevas estrategias para los sistemas de información y cuando los métodos y sistemas actuales no satisfacen las necesidades de la organización.

    ·                     Herramientas de análisis y diseño. Permiten al desarrollador crear un modelo del sistema que se va a construir y también la evaluación de la validez y consistencia de este modelo. Proporcionan un grado de confianza en la representación del análisis y ayudan a eliminar errores con anticipación. Se tienen:

    o                    Herramientas de análisis y diseño (Modelamiento).

    o                    Herramientas de creación de prototipos y de simulación.

    o                    Herramientas para el diseño y desarrollo de interfases.

    o                    Máquinas de análisis y diseño (Modelamiento).

    ·                     Herramientas de programación. Se engloban aquí los compiladores, los editores y los depuradores de los lenguajes de programación convencionales. Ejemplos de estas herramientas son:

    o                    Herramientas de codificación convencionales.

    o                    Herramientas de codificación de cuarta generación.

    o                    Herramientas de programación orientadas a los objetos.

    ·                     Herramientas de integración y prueba: Sirven de ayuda a la adquisición, medición, simulación y prueba de los equipos lógicos desarrollados. Entre las más utilizadas están:

    o                    Herramientas de análisis estático.

    o                    Herramientas de codificación de cuarta generación.

    o                    Herramientas de programación orientadas a los objetos.

    ·                     Herramientas de gestión de prototipos. Los prototipos son utilizados ampliamente en el desarrollo de aplicaciones, para la evaluación de especificaciones de un sistema de información, o para un mejor entendimiento de cómo los requisitos de un sistema de información se ajustan a los objetivos perseguidos.

    ·                     Herramientas de mantenimiento: La categoría de herramientas de mantenimiento se puede subdividir en:

    o                    Herramientas de ingeniería inversa.

    o                    Herramientas de reestructuración y análisis de código.

    o                    Herramientas de reingeniería.

    ·                     Herramientas de gestión de proyectos. La mayoría de las herramientas CASE de gestión de proyectos, se centran en un elemento específico de la gestión del proyecto, en lugar de proporcionar un soporte global para la actividad de gestión. Utilizando un conjunto seleccionado de las mismas se puede: realizar estimaciones de esfuerzo, coste y duración, hacer un seguimiento continuo del proyecto, estimar la productividad y la calidad, etc. Existen también herramientas que permiten al comprador del desarrollo de un sistema, hacer un seguimiento que va desde los requisitos del pliego de prescripciones técnicas inicial, hasta el trabajo de desarrollo que convierte estos requisitos en un producto final. Se incluyen dentro de las herramientas de control de proyectos las siguientes:

    o                    Herramientas de planificación de proyectos.

    o                    Herramientas de seguimiento de requisitos.

    o                    Herramientas de gestión y medida.

    ·                                 Herramientas de soporte. Se engloban en esta categoría las herramientas que recogen las actividades aplicables en todo el proceso de desarrollo, como las que se relacionan a continuación:

    o                    Herramientas de documentación.

    o                    Herramientas para software de sistemas.

    o                    Herramientas de control de calidad.

    o                    Herramientas de bases de datos.

    Otra clasificación, diferencia las funciones CASE en cinco grupos:

    Repositorio. Funcionan en torno a un repositorio central, siendo éste el núcleo fundamental que contiene todas las definiciones de objeto y sus relaciones. Los objetos pueden ser especificaciones del sistema en forma de diagramas de flujo de datos, diagramas entidad-relación, esquemas de bases de datos, diseños de pantallas, etc. El repositorio es un concepto más amplio que el de diccionario de datos y soporta a los demás grupos de funciones. No es fácil encontrar en el mercado productos Case con funcionalidades estrictamente a las de repositorio, ya que, a pesar de su innegable importancia, tienen un carácter auxiliar de los demás grupos de funciones. Cualquier sistema Case poseerá un repositorio propio o bien, trabajará sobre un repositorio suministrado por otro fabricante o vendedor.

    Re-ingeniería. Los sistemas Case permiten establecer una relación estrecha y fuertemente formalizable entre los productos generados a lo largo de distintas fases del ciclo de vida, permitiendo actuar en el sentido especificaciones-código (ingeniería "directa") y también en el contrario (ingeniería "inversa"). Ello facilita la realización de modificaciones en la fase más adecuada en cada caso y su traslado a las demás. Al conjunto de facilidades proporcionadas por la ingeniería «directa» e "inversa" se le denomina "re-ingeniería".

    Soporte del ciclo de vida. El ciclo de vida de una aplicación o de un sistema de información se compone de varias etapas, que van desde la planificación de su desarrollo hasta su implantación, mantenimiento y actualización. Aunque el número de fases puede ser variable en función del nivel de detalle que se adopte, pueden de modo simplificado, identificarse las siguientes:

    ·                     Planeamiento.

    ·                     Análisis y Diseño.

    ·                     Implantación (programación y pruebas).

    ·                     Mantenimiento y actualización.

    Los sistemas Case pueden cubrir la totalidad de estas fases o bien especializarse en alguna(s) de ellas. En este último caso se pueden distinguir sistemas de "alto nivel" ("Upper Case"), orientados a la autonomía y soporte de las actividades correspondientes a las dos primeras fases y, sistemas de "bajo nivel" ("Lower Case"), dirigidos hacia las dos últimas. Los sistemas de "alto nivel" pueden soportar un número más o menos amplio de metodologías de desarrollo.

    Soporte de proyecto. Este tipo de funciones hace referencia al soporte de actividades que se producen durante el desarrollo, derivadas fundamentalmente del trabajo en grupos, tales como facilidades de comunicación, soporte a la creación, modificación e intercambio de documentación, herramientas personales, controles de seguridad, etc. Los sistemas Case pueden conceder a estas cuestiones una importancia variable por lo cual el soporte de proyecto constituye un factor de diferenciación.

    Mejora continua de calidad. Aunque frecuentemente se asocia a los sistemas Case con la mejora de la productividad en el desarrollo de aplicaciones, debe tenerse en cuenta que una de las principales ventajas estriba también, en la mejora de la calidad de los desarrollos realizados. Determinados sistemas Case enfatizan más sobre este punto que sobre el anterior, introduciendo herramientas que permiten ejercer un control intenso de garantía de calidad del software desarrollado desde las primeras fases de su ciclo de vida.

    Opciones de Integración

    Las herramientas Case pueden ser integradas de muchas formas. En un extremo se utiliza una herramienta CASE de forma aislada. Se crea un número limitado de elementos de configuración de software (documentos, programas o datos) que se manipulan mediante una única herramienta y cuya salida tiene el formato de copia de pantalla y/o documentación gráfica. En cierto sentido, el enlace con el resto del entorno de desarrollo se realiza mediante copias en papel que gestiona el ingeniero.

    Pocas herramientas CASE se utilizan en forma aislada. Se suele disponer de las siguientes opciones:

    Niveles de Integración CASE:

    (a) intercambio de datos, (b) acceso común a herramientas,
    (c) integración de datos, (d) integración total.

    a) Intercambio de datos. La mayoría de las herramientas permiten exportar datos en forma de archivo sin estructura con un formato conocido. Esto permite un intercambio de datos punto a punto entre las distintas herramientas CASE, utilizando normalmente un "filtro" de transmisión intermedio.

    La desventaja del intercambio de datos punto a punto está en que, a menudo, sólo parte de los datos exportados es utilizable por la herramienta receptora, ya que no fue diseñada para ser totalmente compatible. Además, a medida que evoluciona el software, la necesidad de transferir archivos cada vez que se hace un cambio pequeño puede llevar mucho tiempo. Las versiones pueden quedar "desfasadas" fácilmente, perdiéndose la posibilidad de transferencia, la cual suele ser en un único sentido. No hay posibilidad de que los cambios se reflejen en ambos sentidos y, es difícil hacer comprobaciones cruzadas de documentos y mantener la integridad de la configuración a través de las distintas herramientas que se estén utilizando.

    b) Acceso común a herramientas. Permite al usuario utilizar distintas herramientas de forma similar, por ejemplo a través de un menú desplegable del gestor de ventanas del sistema operativo. En un entorno multitarea, un usuario podría abrir simultáneamente varias herramientas, coordinando manualmente sus entradas y comparando las representaciones de diseño a medida que evolucionan. Por ejemplo, el usuario podría visualizar un diagrama de flujo de datos, un diagrama de estructura , un diccionario de datos y un segmento de código fuente, todos mantenidos por diferentes herramientas. En estos entornos, el intercambio de datos de herramienta a herramienta podría simplificarse llamando al procedimiento de traducción a través de un simple menú o de la selección de una macro. No es la opción más adecuada.

     

    c) Integración de Datos:

    c1) Gestión común de datos. Los datos de distintas herramientas se pueden mantener en una única base de datos lógica, que puede estar físicamente centralizada o distribuida. Hay una modalidad de fusión que permite combinar el trabajo de varias personas trabajando en diferentes partes de una aplicación.

    Aunque los datos generados por las distintas herramientas se gestionan de forma conjunta en el nivel de gestión de datos comunes, las herramientas no conocen de forma explícita las estructuras de datos y la semántica de representación del diseño de las demás. Consecuentemente, se requiere una etapa de traducción (normalmente ejecutada manualmente) para permitir que una herramienta utilice la salida generada por otra.

    c2) Datos compartidos. Las herramientas del nivel de datos compartidos tienen estructuras de datos y semántica compatible, pudiendo intercambiar datos sin necesidad de una etapa de traducción. Cada herramienta se diseña para ser compatible con las demás. Por esta razón, la mayor parte del intercambio de datos se da entre herramientas de un único fabricante o en casos en los que se han establecido relaciones estratégicas, entre distintos fabricantes para generar un conjunto de datos integrado, a veces, a petición de clientes importantes.

    c3) Interoperabilidad. Las herramientas que combinan las características de acceso común y la capacidad de compartir datos, tienen la capacidad de interoperación. Esto representa el mayor nivel de integración entre herramientas diferentes. Sin embargo, hay otras propiedades del entorno global CASE que se pueden añadir para mejorar la efectividad del proceso de desarrollo de software.

    d) Integración total. Para alcanzar la integración total del entorno CASE se necesitan dos características más: gestión de metadatos y capacidad de control. Los metadatos representan información sobre los datos de ingeniería generados por las distintas herramientas CASE. Esta información incluye:

    ·                     Definiciones de objetos (tipos, atributos, representaciones y relaciones válidas).

    ·                     Relaciones y dependencias entre objetos de granularidad arbritaria (p. ej.: un proceso en un diagrama DFD, una entidad única o un fragmento de código de una subrutina).

    ·                     Reglas de diseño del software (p. ej.: las distintas formas válidas de dibujar y equilibrar un diagrama de flujo de datos).

    ·                     Procedimientos (fases estándar, hitos, informes, etc.) y sucesos (revisiones, finalizaciones, informes de problemas, peticiones de cambios, etc.) del flujo de trabajo (proceso).

    Normalmente, la parte de reglas y procedimientos de los metadatos se definen en forma de base de reglas, para facilitar su modificación según evoluciona el proceso de desarrollo del software. Por ejemplo, un nuevo método de diseño podría alterar las reglas de representación y cambiar los estándares del proceso de trabajo seguido hasta el momento.

    La capacidad de control permite que cada herramienta pueda notificar al resto del entorno (a otras herramientas, al gestor de metadatos, al gestor de datos, etc.) la ocurrencia de sucesos significativos, así como enviar peticiones para la realización de acciones a otras herramientas y servicios por medio de un activador. Por ejemplo, una herramienta de gestión de configuración que haga una comprobación cruzada de la consistencia de documentos. La capacidad de control ayudará a mantener la integridad del entorno y proporcionará, también, un medio para automatizar procesos y procedimientos estándar. El activador puede estar incorporado en un entorno cerrado o puede estar visible para las distintas herramientas, a través de una interfase de programación y un mecanismo de paso de mensajes.

    Estrategias de Implantación

    de Herramientas Case

    ·                     Identificar la magnitud de problemas a resolver en la Institución.

    ·                     Identificar el nivel estratégico que deben tener los sistemas.

    ·                     Evaluar los recursos de hardware y software disponibles en la Institución y el medio.

    ·