domingo, 26 de octubre de 2014

EL PAPEL DEL REPOSITORIO EN 1-CASE

El papel del repositorio en 1-CASE

El repositorio de un entorno 1-CASE es el conjunto de mecanismos y de estructuras de datos que consiguen la integración entre datos y herramientas, y entre datos y datos. Proporciona las funciones obvias de un sistema de gestión de bases de datos, pero, además, el repositorio lleva a cabo o precipita las funciones siguientes [FOR89b]:

(1)  Integridad de datos: incluye funciones para validar las entradas efectuadas en el repositorio, para asegurar la consistencia entre objetos relacionados, y para efectuar automáticamente modificaciones «en cascada» cuando un cambio efectuado en un objeto exige algún cambio en otros objetos relacionados con él

(2)  Información compartida: proporciona un mecanismo para compartir información entre múltiples desarrolladores y entre múltiples herramientas; gestiona y controla el acceso multiusuario a los datos, y bloquea/desbloquea objetos para que los cambios no se superpongan inadvertidamente

(3)  Integración datos-herramientas: establece un modelo de datos al que pueden acceder todas las herramientas del entorno 1-CASE; controla el acceso a los datos, y lleva a cabo las funciones de gestión de configuración adecuadas

(4)  Integración duros-datos: el sistema de gestión de bases de datos relaciona los objetos de datos de tal manera que se puedan alcanzar las demás funciones

(5)  Imposición de la metodología: el modelo E-R de datos almacenado en el repositorio puede implicar un paradigma específico de ingeniería del software; como mínimo, las relaciones y los objetos definen un conjunto de pasos que se llevará a cabo para construir el contenido del repositorio

(6)  Estandarización de documentos: la definición de objetos de la base de datos da lugar directamente a un enfoque estándar para la creación de documentos de ingeniería del software.

Para conseguir estas funciones, se define el repositorio en función de un metamodelo. El metamodelo determina la forma en que se almacena la información en el repositorio, la forma en que las herramientas pueden acceder a los datos y estos datos pueden ser visualizados por los ingenieros de software, el grado hasta el cual se puede mantener la seguridad e integridad de los datos, y la facilidad con que se puede ampliar el modelo ya existente para admitir nuevas necesidades [ WEL891.

El metamodelo es la plantilla en la cual se sitúa la información de ingeniería del software. Una descripción detallada de estos modelos va más allá del alcance de este libro. Para más información, el lector interesado podría consultar [WEL89], [SHA95] y [GRI95].

 
Características y contenidos

Las características y contenido del repositorio se entienden especialmente bien examinándolo desde dos perspectivas: ¿Qué es lo que hay que almacenar en el repositorio, y qué servicios específicos son los que proporciona el repositorio? En general, los tipos de cosas que habrá que almacenar en el repositorio incluyen:

  • El problema que hay que resolver

  • Información acerca del dominio del problema

  • La solución del sistema a medida que va surgiendo

  • Las reglas e instrucciones relativas al proceso de software (metodología) que se está siguiendo

  • El plan del proyecto, sus recursos y su historia

  • Información acerca del contexto organizativo.

En la Tabla 3 1.1 se ha incluido una lista detallada de tipos de representaciones, documentos y otros productos que se almacenan en el repositorio CASE. Un repositorio CASE robusto proporciona dos clases distintas de servicios:

(1)  los mismos tipos de servicios que puede uno esperar de cualquier sistema de gestión de bases de datos sofisticados;
(2)  servicios que son específicos del entorno CASE.

Muchos requisitos del repositorio son iguales a los de las aplicaciones típicas que se construyen tomando como base un sistema de gestión de bases de datos de comercial (SGBD). De hecho, muchos de los repositorios CASE actuales hacen uso de un SGBD (normalmente relaciona1 u orientado a objetos) como la tecnología de gestión de datos básica. Entre las características de un SGBD que dan soporte a la gestión de información de desarrollo del software se incluyen las siguientes:

  • Almacenamiento de datos no redundante. Cada objeto es almacenado sólo una vez, aunque es accesible por todas las herramientas CASE siempre y cuando estas lo necesiten.

  • Acceso de alto nivel. Se implementa un mecanismo común de acceso a los datos de tal modo que no sea preciso duplicar las funciones de gestión de datos en todas las herramientas CASE.

  • Independencia de datos. Las herramientas CASE y las aplicaciones destino se aíslan del almacenamiento físico para que no se vean afectadas cuando la configuración del hardware se cambie.

  • Control de transacciones. El repositorio implementa bloqueo de registros, admisiones de dos fases, registros de transacciones y procedimientos de recuperación para mantener la integridad de los datos cuando existen usuarios concurrentes.







  • Seguridad. El repositorio proporciona mecanismos para controlar quién puede visualizar y modificar la información contenida en él.

  • Consultas informes de datos ad hoc. El repositorio permite acceder directamente a su contenido mediante una interfaz de usuario cómoda tal como SQL, o mediante un «navegador»(browser) orientado a formularios, haciendo posible un análisis definido por el usuario que va más allá de los informes estándar proporcionados por el conjunto de herramientas CASE.

  • Apertura. Los repositorios suelen proporcionar un mecanismo de importación/exportación sencillo que hace posible las cargas o transferencias de información al por mayor.

  • Soporte multiusuario. Un repositorio robusto deberá permitir que múltiples desarrolladores trabajen en una aplicación al mismo tiempo. Deberá gestionar el acceso concurrente a la base de datos mediante múltiples herramientas y por parte de múltiples usuarios, con arbitraje de accesos y con bloqueos en el nivel de archivos o registros. Para los entornos basados en redes, el soporte multiusuario implica también que el repositorio se podrá comunicar mediante interfaz con protocolos (agentes de solicitud de objetos) y servicios comunes de red.

El entorno CASE también efectúa demandas especiales con respecto al repositorio que van más allá de lo que está disponible directamente en un SGBD comercial. Entre las características especiales de los repositorios CASE se incluyen las siguientes:

Ø  Almacenamiento de estructuras de datos sofisticadas. El repositorio debe admitir tipos de datos complejos tales como diagramas, documentos y archivos, así como sencillos elementos de datos. Un repositorio también incluye un modelo de información (o metamodelo) que describe la estructura, relaciones y semántica de los datos almacenados en él. El metamodelo deberá poder ampliarse para dar cabida a representaciones nuevas y a una información organizativa única. El repositorio no solamente almacena modelos y descripciones de los sistemas en desarrollo, sino que los metamodelos asociados (esto es, una información adicional que describe la información de ingeniería del software en sí, tal como el momento en que se ha creado un componente de diseño concreto, su estado actual y la lista de componentes de los cuales depende).

Ø  Imposición de una integridad. El modelo de información del repositorio contiene también reglas, o políticas, que describen reglas de negocios válidas y otras restricciones y requisitos acerca de la información que se inserta en el repositorio (directamente o a través de una herramienta CASE). Es posible emplear un servicio llamadodisparador para activar las reglas asociadas a un objeto siempre que este sea modificado, lo cual hace posible verificar la validez de los modelos de diseño en tiempo real.

Ø  Interfaz de herramientas ricas en términos semánticos. El modelo de información del repositorio (el metamodelo) contiene una semántica que hace posible que toda una gama de herramientas interpreten el significado de los datos almacenados en el repositorio. Por ejemplo, un diagrama de flujo de datos creado mediante una herramienta CASE se almacena en el repositorio en un formulario basado en el modelo de información e independiente de toda representación interna que pueda utilizar la herramientas en sí. Entonces otra herramienta CASE puede interpretar el contenido del repositorio y utilizar la información cuando la necesite para su tarea. De este modo, la semántica almacenada en un repositorio permite compartir datos entre una gran variedad de herramientas, a diferencia de las conversiones específicas entre herramientas, o entre «puentes».

Ø  Gestión de proceso y proyectos. Un repositorio contiene información no sólo acerca de la aplicación de software en sí, sino también acerca de las características de cada proyecto en particular, y del proceso general de la organización para el desarrollo del software (fases, tareas y productos). Esto abre posibilidades para la coordinación automatizada de la actividad de desarrollo técnico con la actividad de gestión del proyecto. Por ejemplo, la actualización del estado de las tareas de proyectos se podría efectuar de forma automática o bien como un producto derivado de la utilización de herramientas CASE. La actualización de estado resultará muy fácil para los desarrolladores, sin tener que abandonar el entorno de desarrollo normal. La asignación de tareas y consultas también se puede gestionar por correo electrónico. Los informes de problemas, las tareas de mantenimiento, las autorizaciones de cambios, y los estados de reparación se pueden coordinar y monitorizar mediante herramientas que acceden al repositorio.

Las siguientes características del repositorio son abarcadas todas ellas por la gestión de configuración del software. Se vuelven a examinar aquí para hacer hincapié en su interrelación con los entornos 1-CASE.

Ø  Versiones. A medida que avanza un proyecto, se irán creando muchas versiones de productos individuales. El repositorio deberá ser capaz de guardar todas estas versiones para hacer posible una gestión efectiva de las versiones de los productos y para permitir que los desarrolladores vuelvan a las versiones anteriores durante la comprobación y depuración. El repositorio CASE deberá ser capaz de controlar una amplia variedad de tipos de objetos entre los que se incluyen texto, gráficos, mapas de bits, documentos complejos y objetos Únicos como definiciones de pantalla y de informes, archivos de objetos, datos de comprobación y resultados. Un repositorio maduro rastrea las versiones de objetos con niveles arbitrarios de granularidad, por ejemplo, se puede rastrear cada definición de datos o agrupamiento de módulos. Para dar apoyo al desarrollo paralelo, el mecanismo de control de versiones deberá permitir múltiples derivados (variantes) a partir de un solo predecesor. Así pues, un desarrollador podrá estar trabajando al mismo tiempo, en dos soluciones posibles para un problema de diseño generadas las dos desde el punto de partida.

Ø  Seguimiento de dependencias y gestión de cambios. El repositorio gestiona una amplia variedad de relaciones entre los elementos de datos almacenados en él. Entre estas se cuentan las relaciones entre entidades y procesos de la empresa, entre las partes de un diseño de aplicación, entre componentes del diseño y la arquitectura de la información de la empresa, entre elementos de diseño y productos, etc. Algunas de las relaciones son meramente asociaciones, y algunas son dependencias o relaciones obligatorias. El mantenimiento de estas relaciones entre objetos de desarrollo se denomina administración de enlaces.

La capacidad de seguir la pista de todas estas relaciones es crucial para la integridad de la información almacenada en el repositorio y para la generación de productos basados en ella, y es una de las contribuciones más importantes que efectúa el concepto de repositorio para la mejora del proceso de desarrollo del software. Entre las muchas funciones que apoya la gestión de enlaces se cuenta la capacidad de identificar y estimar los efectos del cambio. Amedida que los diseños evolucionan para satisfacer nuevos requisitos, la capacidad de identificar todos los objetos que podrían verse afectados hace posible una estimación más precisa del coste, del tiempo no operativo,
y del grado de dificultad. También se ayuda a evitar efectos colaterales que en caso contrario dan lugar a defectos y a fallos del sistema. La gestión de enlaces ayuda al mecanismo de repositorio para asegurar que la información del diseño sea correcta manteniendo sincronizadas las partes de un diseño. Por ejemplo, si se modifica un diagrama de flujo de datos, el repositorio puede detectar si los diccionarios de datos relacionados, definiciones de pantallas y módulos de códigos también requieren modificación y puedan llamar la atención del desarrollador los componentes afectados.

Ø  Seguimiento de requisitos. Esta función especial depende de la gestión de enlaces y proporciona la capacidad de hacer seguimiento de los componentes de diseño y de los productos derivados que proceden de una especificación de requisitos específica (seguimiento progresivo). Además, proporciona la capacidad de identificar cuáles son los requisitos que generaron cualquier producto derivado (seguimiento regresivo).

Ø  Gestión de configuración. Una función de gestión de configuración que trabaja muy cerca de las funciones de versiones y gestión de enlaces para hacer seguimiento de una serie de configuraciones que representarán hitos específicos del proyecto o de versiones de producción. La gestión de versiones proporciona las versiones necesarias, y la gestión de enlaces hace seguimiento de las interdependencias.

Ø  Seguimiento de auditoría. El seguimiento de auditoría establece información extra acerca de cuándo, por qué, y por quién son efectuados los cambios. La información acerca de las fuentes de las modificaciones se pueden introducir en forma de atributos de objetos específicos del repositorio. Un mecanismo disparador del repositorio resultará útil para solicitar al desarrollador o a la herramienta que esté utilizando que inicie la introducción de información de auditoría. (tal como la razón del cambio) siempre que se modifique un elemento de diseño.

No hay comentarios:

Publicar un comentario