Capítulo 4. Prueba de Adaptabilidad



Documentos relacionados
Unidad VI: Supervisión y Revisión del proyecto

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl

COPPEL MANUAL TÉCNICO MCC DE SISTEMAS PROGRAMACIÓN DESCRIPCIÓN DEL PROCESO DE ARQUITECTURA DE SOFTWARE

1.2 Qué es un Sistemas de Información Geográfica?

En este capítulo se describe las herramientas, así como los procesos involucrados en el análisis y desarrollo de sistemas de información, por otro

Diagramas del UML. A continuación se describirán los diagramas más comunes del UML y los conceptos que representan: Diagrama de Clases

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

Capítulo 5. Cliente-Servidor.

MATERIAL 2 EXCEL 2007

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos.

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Patrones de Diseño Orientados a Objetos 2 Parte

Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 9: CRITERIOS DE CALIDAD DE DISEÑO MODULAR

Guía de uso de Moodle para participantes

1 Vista de Casos de Uso

Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech

TEMA 7: DIAGRAMAS EN UML

Ingeniería de Software. Pruebas

GLOSARIO DE TÉRMINOS

8. Las VLAN 8.1. Visión general de las VLAN La solución para la comunidad de la universidad es utilizar una tecnología de networking

BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN

Conceptos de redes. LAN (Local Area Network) WAN (Wide Area Network)

Historia de revisiones Fecha Versión Descripción Autor 12/11/ Versión final con cambios sobre extensión de ArcGIS Viewer y recorte de alcance

Gestión de la Configuración

La vida en un mundo centrado en la red

Diferencias entre nivel 2 y nivel 3 y una estrategia de implantación

Operación 8 Claves para la ISO

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 5. Sistemas de Bases de Datos. frente a Sistemas de Ficheros

TEMA 12: CUALIDADES DE UN BUEN DISEÑO

Sistemas de Operación II

GESTIÓN DE LA DOCUMENTACIÓN

Servicio de hospedaje de servidores

Capítulo 3. Análisis y Diseño

CAPÍTULO I. Sistemas de Control Distribuido (SCD).

Capítulo 11. Conclusiones y trabajo futuro

Curso: Arquitectura Empresarial basado en TOGAF

BANCOS. Manejo de Bancos. Como crear una ficha de Banco? Como modificar los datos de una ficha de Banco? Como borrar una ficha de Banco?

EL COMPUTADOR. Las computadoras son actualmente

Guía para el Paso 2: Desarrollo de la Fase A Explorar y Reflexionar

PROCEDIMIENTO OPERATIVO DESARROLLAR SISTEMAS INFORMÁTICOS PDO-COCTI-DTIN-04

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

Programa de soporte técnico ampliado MSA Start

Por qué es importante la planificación?

Fundamentos del diseño 3ª edición (2002)

INTRODUCCION AL CONTROL AUTOMATICO DE PROCESOS

Análisis y gestión de riesgo

Capítulo 9 Redes y Teleinformática 9.1 Introducción

Estimación de Tamaño de Software: Puntos Funcionales. Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes

PRODUCTIVIDAD. Contenido. 1. Introducción. 2. Importancia de la Productividad. 3. Que es productividad? 4. Como se mide la productividad?

PRC-DTI-006 Administración de Roles de los Sistemas de Información de la DTI Procedimiento Dirección de TI - COSEVI

SIGAN 1.0 SISTEMA DE INFORMACIÓN DE GESTIÓN ADMINISTRATIVA DE NÓMINA

ORIENTACIONES SIMCE TIC

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.1 UML: Introducción

6.8 La Arquitectura del Sistema. [Proceso]

Tema 8 Procesos. * Definición informal: un proceso es un programa en ejecución

4. EVALUACIÓN DEL PROGRAMA DE CAPACITACIÓN

Figure 16-1: Phase H: Architecture Change Management

BASE DE DATOS RELACIONALES

[PROYECTO] DOCUMENTO DE PRACTICA DE LAS NIIF. Aplicación de la Materialidad o Importancia Relativa en los Estados Financieros

Propiedad Colectiva del Código y Estándares de Codificación.

MARCO TEÓRICO CONCEPTUAL ELEMENTOS DE UN SISTEMA COMPUTARIZADO

IAP ENTORNOS INFORMATIZADOS CON SISTEMAS DE BASES DE DATOS

4 ARQUITECTURA DE COMUNICACIONES

Repetir el proceso para cada abstracción identificada hasta que el diseño este expresado en términos sencillos

CAPITULO VI ESTRATEGIAS DE OUTSOURCING

2. Conceptos básicos Abstracción La abstracción como un proceso mental natural La abstracción en el desarrollo de software

DISEÑO DE COMPONENTES DE SOFTWARE *

INTRODUCCIÓN AL MONITOREO ATMOSFÉRICO 214

LINEAMIENTOS PARA LA ELABORACIÓN DEL PROGRAMA ANUAL DE TRABAJO

DIAGRAMA DE CLASES EN UML

Capítulo 4. Diseño de un sistema para reconocimiento y consulta de las tarjetas Hu

LAS NUEVAS METODOLOGIAS DIDACTICAS BASADAS EN INTERNET COMO FACTOR CLAVE PARA EL DESARROLLO DE LA TELEFORMACION

Sistemas de Calidad Empresarial

Figura 4.1 Clasificación de los lenguajes de bases de datos

Licenciatura en Computación

DESARROLLO DE SOFTWARE DEFINICIÓN GENERAL DEL PROCESO GABY LORENA GUERRERO LEYDI ROCIO ERAZO PABLO FELIPE MIRANDA WALTER ALEXIS ANTE

Curso: FT433 - Introducción a la virtualización con VirtualBox

Análisis y Diseño de Soluciones de Software

1. Aplicación de la conmutación de circuitos y la conmutación de paquetes. 1.1 Sistema de señalización número 7 (SS7).

CAPITULO 3: SISTEMAS ADICIONALES PARA EL CENTRO DE LLAMADAS DE EMERGENCIA

Introducción a Visual Studio.Net

CUESTIONARIO DE AUTOEVALUACIÓN

BOLETÍN OFICIAL DEL ESTADO

Manual de Procedimientos

UNIVERSIDAD DE ORIENTE FACULTAD DE ICIENCIAS ECONOMICAS LAS REDES I. Licda. Consuelo Eleticia Sandoval

SISTEMAS DE INFORMACIÓN II TEORÍA

EJEMPLO DE REPORTE DE LIBERTAD FINANCIERA

4. METODOLOGÍA. 4.1 Materiales Equipo

Estrategias para la implementación exitosa de la tecnología en el aula. Juan Carlos Xique Anaya

LEY QUE NORMA EL USO, ADQUISICIÓN Y ADECUACIÓN DEL SOFTWARE EN LA ADMINISTRACIÓN PUBLICA

Redes I Clase # 3. Licda. Consuelo E. Sandoval

SELECCIÓN N Y DISEÑO DEL PRODUCTO Y SERVICIO

Diseño y desarrollo de una aplicación informática para la gestión de laboratorios

Grupo de Trabajo del Tratado de Cooperación en materia de Patentes (PCT)

ANEXO XII. Denominación: Administración y programación en sistemas de planificación de recursos empresariales y de gestión de relaciones con clientes.

Plataforma de Formación Online con Moodle!

Transcripción:

Capítulo 4 Prueba de Adaptabilidad

Capítulo 4. Prueba de Adaptabilidad Como se mencionó en el capítulo 2 actualmente no es válido que el software únicamente funcione bien y resuelva el problema que le corresponde, idealmente el sistema debe poder crecer y modificarse para solucionar algún otro problema ligeramente diferente. A esta característica se le llama Adaptabilidad. 4.1 Introducción Propiamente dicho, el concepto de Adaptabilidad consiste en la habilidad de modificar un sistema para que funcione con conceptos de dominios de aplicaciones diferentes [Bruegge, Dutoit, 2004]. Para medir qué tan adaptable puede ser un sistema, se plantean las siguientes preguntas [McCall, Cavano, 1978]: Se podrá usar el software en otra máquina? (Portabilidad) Se podrá reutilizar alguna parte del programa? (Reusabilidad) Podrá el sistema interactuar con otro programa? (Interoperabilidad) Las características planteadas en forma de pregunta se explican a continuación, además se expone la forma en que se evaluó CASSIEL. 4.2 Portabilidad La portabilidad, aunque tiene cierta relación con la reusabilidad, es importante mencionar que no es lo mismo, ya que se refiere a la facilidad con que un sistema o

componente del mismo puede ser transferido a diferentes ambientes de hardware o software [Bruegge, Dutoit, 2004]. A pesar de que las metodologías de desarrollo no incorporan alguna estrategia para lograr la portabilidad, esta característica es considerada como una meta para cualquier clase de software. Existen dos tipos de adaptabilidad [Mooney, 1990]: Portabilidad Binaria: Se refiere a portar la forma ejecutable, la cual ofrece varias ventajas, pero sólo es posible llevarla a cabo a través de ambientes muy similares. Portabilidad de Código Fuente: Como su nombre lo indica, asume la disponibilidad del código fuente, pero provee la oportunidad de adaptar la unidad de software a una amplia variedad de ambientes. El proceso de portabilidad, se lleva a cabo mediante dos componentes principales, los cuales son denominados Transportación y Adaptación [Mooney, 1990]. La transportación es el movimiento físico. La Adaptación es cualquier modificación llevada a cabo a la versión original. En sí no existe una manera de calcular la portabilidad de un sistema, sin embargo existen algunos procesos y métricas que emplean las técnicas de estimación de costos para obtener indicadores aproximados. El costo de redesarrollar el software y el costo de portar el software (el cual implica analizar el match entre las interfaces de la

unidad de software y aquellas del objetivo), se puede obtener mediante una sencilla función llamada Grado de portabilidad (GP). GP = 1 (costo de portar el software / costo de redesarrollar el software) Donde si el valor obtenido es mayor a cero, se concluye que la portabilidad es más efectiva que el redesarrollar. En el caso de CASSIEL, debido a que el código del sistema se encontraba hardcoded, se llevaron a cabo algunas modificaciones tal y como lo indica el capítulo 3, que permitieron que éste aumentara su nivel de portabilidad. Para llevar a cabo el cálculo de los costos, se empleó el cálculo del número de líneas de código. Para lograr que CASSIEL se ejecute en otra máquina, en su versión hardcoded, se tendrían que modificar aproximadamente 10 líneas de 15 clases que manejaban alguna conexión a la base de datos, datos de e-mail, etc., lo cual da un total de aproximadamente 150 líneas de código. En la versión portable, sólo se debe llevar a cabo la modificación del archivo propiedades (Properties), donde se manejan las variables empleadas en las conexiones ya sea a la base de datos o al mail; dicho archivo cuenta con 38 líneas que deberán ser modificadas para la adaptación.

siguiente: El cálculo del grado de portabilidad de CASSIEL en la versión portable, sería el GP = 1 (38 / 150) = 1 - (0.2533) = 0.7466 Por lo tanto, el grado de portabilidad de CASSIEL es de 0.74. Lo cual indica que actualmente es más fácil portar el sistema a distintos ambientes. 4.3 Reusabilidad El desarrollo de un sistema es una tarea muy cara, sin embargo hay una forma de hacer que el costo baje, esto es mediante la reusabilidad, ya que se utilizan componentes elaborados previamente y que son fácilmente empleados en una variedad de sistemas, por lo tanto, se reduce el costo de diseño, desarrollo (tiempo y dinero), y de mantenimiento debido a que estas partes ya están consolidadas y fueron ampliamente probadas. La reusabilidad es la capacidad de reutilización de un sistema o partes de él, es decir, hasta qué punto se puede volver a emplear un programa en otras aplicaciones, en relación al empaquetamiento y alcance de las funciones que realiza. [Pressman, 2002]. Para medir la reusabilidad de un sistema se deben tomar en cuenta el nivel de abstracción, las interfaces entre los módulos, cohesividad entre clases y el acoplamiento entre los objetos o clases. El mantenimiento de un diseño es mejorado cuando los cambios pueden ser hechos fácilmente sin propagarse a otras partes del sistema. [Chatterjee, 2003].

Para lograr que un software sea reutilizable, el acoplamiento debe ser reducido, lo cual implica que el número de relaciones entre todas las clases del sistema sean mínimas; y la cohesión debe ser grande, ya que ayuda a flexibilizar la estructura entre clases. Una forma importante de reducir de la complejidad de un programa es mediante el incremento de la modularización, la cual puede ser medida mediante la cohesión y el acoplamiento: Acoplamiento: Grado en que las clases de un sistema son dependientes una de otra, existen diversos tipos de acoplamiento como se puede observar en la tabla 4.1: Acoplamiento de Contenido Acoplamiento Común Acoplamiento de Control Acoplamiento de Estampa Acoplamiento de Datos Acoplamiento de llamado de Rutinas Acoplamiento de uso de Tipos Cuando un componente modifica datos que son internos a otros componentes. Cuando se usan variables globales. Cuando un procedimiento llama a otro usando una bandera o un comando que controla explícitamente lo que hace un segundo procedimiento. Cuando una de las clases de aplicación es declarada como tipo de un argumento de un método. Cuando los tipos de los argumentos de los métodos son primitivos o librerías. Cuando una rutina llama a otra. Cuando un método usa un tipo de dato definido en otro módulo. Inclusión Cuando un componente importa un Acoplamiento externo paquete. Cuando un módulo tiene dependencia en cosas tales como el sistema operativo, librerías compartidas o hardware. Tabla 4.1: Tipos de Acoplamiento

En el caso de CASSIEL, se presentan dos tipos de acoplamiento: Inclusión, ya que los distintos paquetes que conforman el sistema hacen uso de las clases contenidas en otros, aislando así tareas específicas en cada módulo y a su vez facilitando la integración de los servicios Llamado de Rutinas, ya que existen servicios remotos (servidor de recursos y servidor de mensajes de CASSIEL) que inclusive, no tienen que estar necesariamente en el mismo servidor ya que las llamadas se ejecutan remotamente a manera de una comunicación cliente-servidor Acoplamiento de los Datos, afortunadamente cada modulo maneja sus propios datos (por ejemplo, el UMS maneja una base de datos y CASSIEL la suya) permitiendo así el aislamiento de las funciones de manipulación de información, pero también haciendo posible la integración de ésta en un solo sistema. Cohesión: Grado en que una entidad soporta un propósito singular en el sistema, la tabla 4.2 muestra los diversos niveles de cohesión:

Cohesión funcional Cohesión de capa Cohesión Comunicativa Cohesión Secuencial Cohesión Procedural Cohesión Temporal Cohesión de utilidad Cuando todo el código que computa un resultado en particular, están juntos y lo demás esta separado. Cuando todas las facilidades para dar o acceder a un conjunto de servicios relacionados están juntos, y lo demás esta separado. Cuando todos los módulos que accedan o manipulan ciertos datos están juntos, y lo demás esta separado. Cuando los procedimientos, donde un procedimiento da entradas para el siguiente procedimiento, juntos y lo demás esta separado. Juntar procedimientos que son usados uno tras otro. Cuando las operaciones que son llevadas a cabo durante la misma fase de la ejecución del programa está junto, y lo demás esta separado. Cuando utilidades relativas que no pueden ser lógicamente colocadas en otras unidades de cohesión están juntas. Tabla 4.2: Niveles de Cohesión Por el orden en el que se encuentra el código de CASSIEL, se le puede ubicar en el caso de Cohesión de Capa, ya que, cada modulo del sistema (ver figura 4.1) forma parte de un paquete independiente al cual a su vez separa sus componentes de acuerdo a la filosofía del MVC (Model View Controller) de manera que es muy fácil integrar esos módulos para crear la aplicación y reutilizarlos para varios propósitos Se puede ver que hay diferentes paquetes comunes usados por CASSIEL y el resto de las aplicaciones, de manera que se puede usar la reutilización de diferentes módulos.

Fig. 4.1 Diagrama de Paquetes en CASSIEL Existen tres clases de componentes de software que forman parte de una típica aplicación de software dependiendo de su relación y dependencia con el dominio de acción. A continuación se presenta una tabla (tabla 4.3) que muestra dicha clasificación, y otra (tabla 4.4) que muestra el caso específico de CASSIEL. Tipo Porcentaje Idóneo Descripción Dominio- Independiente Dominio- Específica Aplicación- Específica 20% Incluye ADTs (Abstract Data Types), rutinas de utilidad, librerías, que son útiles en un amplio rango de problemas. 65% Este es para software, que solo es útil dentro del dominio específico. 15% Incluye software que solo implementa el único detalle de requerimientos de una aplicación Tabla 4.3 Tipos de componentes en una aplicación

Tipo Porcentaje Idóneo Observaciones Dominio- Independiente 30% Ya que incluye los módulos que manipulan los perfiles de usuario Dominio- 50% Todos los módulos dedicados a Específica mantener el plan de aprendizaje Aplicación- 20% Debido a la cantidad de clases Específica necesarias para el control y presentación Tabla 4.4 Tipos de componentes en CASSIEL 4.4 Interoperatividad La interoperatividad es la habilidad de dos o más sistemas o componentes para intercambiar y compartir información, para usarla de manera adecuada [Sanders, Hamilton Jr., 2003]. Para efectos de unificación y análisis de interoperabilidad en una arquitectura, se ha creado un diagrama [Chatfield, 1998] (ver figura 4.2) que describe tres vistas de una arquitectura (operacional, de sistemas y técnica) junto con su relación de funcionamiento. Esto permite especificar criterios técnicos para implementar sistemas. Fig. 4.2 Las tres vistas de interoperabilidad en una arquitectura [Chatfield, 1998]

La medición de interoperabilidad de un sistema no es tarea sencilla y se debe hacer a varios niveles, en el caso específico de CASSIEL se empleó el modelo LISI, para poder realizar un análisis de este aspecto de la adaptabilidad. LISI (Levels of Information Systems Interoperability), es una disciplina y un proceso para definir, determinar y certificar el grado de interoperatividad requerido o logrado entre organizaciones o sistemas. [Chatfield, 1998], tratando a la interoperatividad como simples conexiones entre sistemas. El usar LISI identifica el nivel de interoperatividad requerido por la vista operacional de nodo a nodo. El modelo de Madurez de Interoperabilidad clasifica 5 niveles de la naturaleza general de la interoperabilidad, como Aislado, Conectado, Funcional, Dominio y Empresa [Sanders, Hamilton, 2003], cada uno con características representativas (ver tabla 4.5). Nivel 4: Universal Manipulación interactiva Datos compartidos y aplicaciones 3: Integrado Datos compartidos Aplicaciones separadas 2: Distribuido Funciones comunes mínimas Aplicaciones y datos separados 1: Conectado Conexiones electrónicas, aplicaciones y datos Aplicaciones y datos separados 0: Aislado No conectado Tabla 4.5: Modelo de Madurez LISI Intercambio de Información Información de dominios diferentes y colaboración compartida Colaboración avanzada Bases de datos compartidas Colaboración sofisticada Intercambio heterogéneo de productos Colaboración Básica Intercambio homogéneo de productos Enlace Manual

Las vistas del sistema responden identificando y determinando características en términos de cuatro atributos: Procedimientos, Aplicaciones, Infraestructura y Datos (PAID) los cuales representan las capacidades del sistema. Esto integra un Modelo de Referencia que toma los 5 niveles de interoperatividad describiéndolos con los atributos ya mencionados [Sanders, Hamilton, 2003] (Figura 4.3). Fig. 4.3 El Modelo de Referencia LISI [Sanders, Hamilton, 2003] En el caso de CASSIEL y tomando en cuenta el modelo LISI, se podría decir que como un todo cae en el nivel 1: Conectado, ya que separa aplicaciones y datos. Sin embargo, al verlo hacia adentro, CASSIEL incorpora subsistemas, por lo que cae en el nivel 3: Integrado ya que cuenta con aplicaciones compartidas y trabaja con varias bases de datos. Para hacer de CASSIEL un sistema con nivel de madurez Universal, habría que abrir sus servicios, probablemente mediante el uso de Servicios Web (Web Services)

para que otras aplicaciones utilicen su modelo de usuario y demás componentes del sistema y de esta manera puedan enriquecerse con el plan de aprendizaje y recursos disponibles en el sistema de aprendizaje colaborativo. 4.5 Comentarios Finales En este capítulo se presentó un análisis extenso de la adaptabilidad de CASSIEL, se mencionaron las mejoras tanto en portabilidad, reusabilidad e interoperabilidad alcanzadas en el estado actual del sistema, después de haber realizado algunos cambios. A pesar de que es difícil afirmar que CASSIEL es 100% adaptable, el software posee un grado de adaptabilidad que permite al sistema: Ser implantado en diversos ambientes, bajo distintas condiciones y modificando ciertas variables de su entorno Ser ampliamente reutilizable por otras aplicaciones que necesiten emplear el mismo modelo de aprendizaje implementado Estar en comunicación con otros módulos o sistemas, algo que quizás no ha sido explorado aún y que se podría mejorar desarrollando servicios en base a los componentes ya elaborados.