![]() |
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 |
|
|
Imprimir apunte |
Recomendar a un amigo |
Recordarme el recurso |
|
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 > |
|
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.
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.
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.
·