• No se han encontrado resultados

6 ANÁLISIS DEL CASO DE ESTUDIO

8 RESULTADOS, CONCLUSIONES Y TRABAJO FUTURO

8.1 RESULTADOS OBTENIDOS

8.1.3 EL CASO DE ESTUDIO

La metodología propuesta fue aplicada al sistema demostrativo del proyecto @lis TechNet como caso de estudio. El resultado de la aplicación de la metodología al caso de

estudio es un diseño alterno para el sistema que se está desarrollando en el proyecto.

Antes de aplicar la metodología al sistema demostrativo, fue necesario establecer una política de seguridad acorde a las necesidades del sistema.

El diseño obtenido a través de la metodología propuesta presenta diversas ventajas con respecto al que se está utilizando actualmente en el proyecto.

La primera ventaja obtenida de la aplicación de la metodología es la reducción del costo del proceso de diseño, en comparación con el proceso de diseño seguido en el proyecto @lis. El costo se redujo ya que se emplearon menos recursos para llegar a un

diseño equivalente en cuanto a funcionalidad.

La aplicación de la metodología para obtener un diseño alterno para el sistema demostrativo del proyecto @lis requirió 1 persona a lo largo de un periodo de 2 meses,

mientras que en el ámbito del proyecto se emplearon en promedio 20 personas en un periodo de 18 meses.

El diseño alterno que se propone cumple con las mismas funcionalidades y características que el diseño utilizado en el proyecto, de las cuales las más relevantes se presentan a continuación:

• Permite al usuario buscar ofertas turísticas de diversos ámbitos de forma manual

• Permite realizar reservaciones de ofertas de manera individual

• Permite la monitorización y cancelación de reservaciones

• Realiza búsquedas automatizadas de ofertas turísticas de acuerdo a los criterios del usuario y las organiza en itinerarios de viaje

• Permite la reservación de itinerarios de viaje

• Permite la monitorización y cancelación de itinerarios reservados.

Además, el diseño propuesto está basado en una política de seguridad, a través de la cual ofrece las siguientes funcionalidades:

• Garantiza la privacidad de la información intercambiada entre los elementos del sistema

• Garantiza la privacidad de la información almacenada en los registros

• Garantiza la integridad de la información almacenada en los registros

• Garantiza que los elementos que interactúan en el sistema son legítimos

El diseño propuesto tiene un menor nivel de complejidad en cuanto a los componentes del sistema, lo cual facilita la gestión del sistema. No obstante, tiene una mayor complejidad en cuanto a las interacciones entre sus elementos, lo cual podría afectar el rendimiento del sistema.

por una política de seguridad. Sin embargo, aun con las restricciones impuestas por la política, es más flexible que el utilizado en el proyecto @lis, pues no establece un modelo

rígido en la distribución de los elementos.

En el diseño propuesto, la distribución de los elementos es flexible, con lo cual el sistema una vez implementado y desplegado puede cambiar su configuración para adaptarse al crecimiento del sistema y para proveer diversos grados de confianza en cuanto a la disponibilidad del sistema.

El nivel de abstracción en el diseño propuesto es bastante alto y define la estructura del sistema, sus elementos, sus interacciones y actividades, sin embargo no se define la lógica interna de cada actividad e interacción. Se deja en libertad al implementador establecer la lógica interna de los elementos del sistema.

Ambos diseños son equivalentes en cuanto a funcionalidades. En el proyecto @lis,

el desarrollo del sistema demostrativo está ya en fase de implementación, esto indica que la lógica interna de sus componentes ya está definida.

Gran parte de la lógica interna definida en la implementación del sistema demostrativo @lis puede ser reutilizada para la implementación del diseño alternativo

propuesto. Por ejemplo, las estructuras de datos creadas y las bases de datos utilizadas pueden ser reutilizadas para la implementación del diseño propuesto. Los algoritmos de planeación diseñados para la planeación de itinerarios pueden ser también reutilizados, así como los algoritmos de búsqueda de ofertas turísticas.

8.2 CONCLUSIONES

Existen muchos paradigmas que pueden ser utilizados para el desarrollo de sistemas computacionales. Cada uno de ellos ofrece un conjunto de ventajas y desventajas con respecto al resto y no es posible establecer cual de ellos es el mejor. Esto es debido a que la efectividad de un paradigma depende del dominio de aplicación.

El proceso de desarrollo de sistemas de software incluye una fase de análisis en la cual partiendo de la especificación del problema a resolver, el desarrollador deberá elegir el paradigma que mejor se adecué para desarrollar una solución.

El paradigma orientado a agentes es especialmente útil para el desarrollo de sistemas que operan en ambientes abiertos y en los que se requiere de negociación entre elementos en conflicto.

El uso del paradigma orientado a agentes debería de ser evaluado de acuerdo a las necesidades propias del sistema a implementar. Sin embargo, ya que este paradigma no goza de mucha popularidad en la comunidad desarrolladora (a pesar de no ser un paradigma propuesto recientemente), la comunidad investigadora que fomenta el uso de este paradigma se ha enfocado en la producción de sistemas multi-agente sin importar si el paradigma orientado a agentes es el más apropiado para resolver el problema planteado.

Comúnmente, en el ámbito del desarrollo de sistemas informáticos a nivel profesional, se presta mucha atención a la ingeniería de software y se considera de extrema importancia a la optimización del proceso de desarrollo. En el ámbito de la investigación, la ingeniería de software es rara vez tomada en cuenta cuando se trata de desarrollar una aplicación o sistema.

En el ámbito profesional, la aplicación rigurosa de metodologías y procesos bien estructurados han dado como resultado la capacidad de desarrollar grandes y complejos sistemas informáticos minimizando el costo del proceso de producción. En el ámbito de la investigación, se ha dado poca importancia al proceso de desarrollo y se da más importancia a la producción rápida y poco estructurada y documentada de aplicaciones que sirven como auxiliares en investigaciones.

El uso del paradigma orientado a agentes sin tomar en cuenta las necesidades del sistema a desarrollar y el realizar el desarrollo sin un enfoque estructurado y bien organizado causa que en la mayoría de los casos el desarrollo de sistemas multi-agente sea lento y no siempre este a la altura de los resultados deseados.

Por ejemplo, en el proyecto @lis TechNet, el sistema demostrativo tiene como

objetivo la demostración del uso de agentes (entre otras tecnologías) y la de resolver un problema específico. El problema a resolver se eligió de manera que el paradigma orientado a agentes fuera una de las mejores opciones para el desarrollo. Sin embargo, no se siguió de manera explícita una metodología de ingeniería de software y esto afectó el desarrollo del sistema generando errores indeseados y complicaciones haciéndolo más lento de lo necesario.

Es evidente que darle importancia a la ingeniería de software y seguir un proceso estructurado para el desarrollo de sistemas reduce los recursos utilizados en el desarrollo y reduce también la propensión a cometer errores en el desarrollo.

El diseño del sistema es una de las fases fundamentales del proceso de desarrollo pues en ella se define la conformación del sistema, sus elementos y las actividades que cada uno llevará a cabo, y las funcionalidades con las que el sistema proveerá al usuario. El diseño del sistema indica que es lo que se va a desarrollar.

La seguridad es una de las mayores preocupaciones en los sistemas informáticos modernos, y más en el caso de sistemas que operaran en ambientes abiertos como lo es Internet.

La seguridad puede ser tomada en cuenta en cualquier fase del proceso de desarrollo de sistemas y debería ser tomada en cuenta a lo largo de todo el proceso de desarrollo. Tratar de integrar una política de seguridad en un sistema ya implementado es una tarea difícil que en la mayoría de los casos implicaría realizar cambios estructurales en el sistema, es decir, rediseñar partes o inclusive todo el sistema. La mejor manera de desarrollar un sistema seguro es definir durante la fase de especificación el nivel de seguridad que será considerado aceptable para el sistema, tomar en cuenta dicha especificación durante el análisis e integrarla en el diseño del sistema de modo que la implementación del diseño traiga de manera inherente la implementación del nivel de seguridad deseado para el sistema.

Comparada con no aplicar una metodología de diseño o aplicar una que no tome en cuenta la seguridad como base del diseño, la metodología propuesta mejora el proceso de diseño reduciendo los costos asociados al proceso (en cuanto a personal y tiempo invertidos) y generando un diseño más coherente con la especificación del sistema y en especial con la política de seguridad del sistema.

Sin embargo, el diseño de sistemas es una labor prácticamente artesanal cuyo éxito o fracaso depende casi totalmente de la habilidad y experiencia del diseñador. Un mismo sistema puede ser diseñado de muchas maneras distintas por diferentes diseñadores o inclusive por el mismo desarrollador. Por lo tanto no se puede generalizar y concluir que cualquier diseño de un sistema obtenido con la metodología ESG sea en todos los casos mejor que cualquier otro diseño para el mismo sistema obtenido con otra metodología o sin ninguna metodología de diseño.

Específicamente hablando del caso de estudio, el proceso de diseño a prueba y error seguido por el equipo de desarrollo demostró no ser la mejor opción para el diseño del sistema. La aplicación de la metodología propuesta generó un diseño más flexible, más robusto y sobre todo más seguro en menos tiempo y empleando menos recursos.

Los sistemas multi-agente son especialmente útiles para desarrollar sistemas que emulan o se basan en una organización humana, en muchos casos estas organizaciones tienen políticas de seguridad bien definidas, las cuales pueden ser mapeadas de manera casi directa a una política de seguridad informática.

El modelado de políticas de seguridad, así como su validación no es una tarea sencilla pues el universo de posibles tipos de políticas es infinito y muy heterogéneo, por lo tanto no es factible que mediante una sola técnica de modelado se pueda modelar cualquier política factible. Sin embargo en cuanto se refiere a políticas basadas en organizaciones humanas, el modelado se puede realizar a través de los 4 tipos de restricciones propuestos en el capítulo 3.

Un mismo diseño puede ser implementado de muchas maneras y utilizando diversas herramientas y tecnologías disponibles. Para la implementación de diseños obtenidos con la metodología propuesta, la plataforma Jade, en conjunto con Jade-S es una buena opción.

Al inicio de este documento se presentaron tres objetivos específicos a cumplir en este trabajo:

1. Establecer una metodología estructurada, enfocada en las etapas de análisis y diseño de sistemas multi-agente y que guíe el proceso de desarrollo en cada una de estas etapas con base en las necesidades de seguridad del sistema.

2. Aplicar la metodología definida al sistema demostrativo del proyecto @lis TechNet

y obtener a través de esta aplicación un diseño alterno que garantice un nivel básico de seguridad.

3. Comparar el proceso de desarrollo seguido dentro del proyecto @lis TechNet con el

propuesto y aplicado en este trabajo y a partir de esta comparación establecer el grado de beneficio logrado por la metodología propuesta.

La metodología ESG, además de estar enfocada a las fases de análisis y diseño de sistemas multi-agente, propone el uso de políticas de seguridad como fundamento del proceso de diseño. La política de seguridad establece las necesidades de seguridad del sistema, por lo que a través de la propuesta de la metodología ESG el primer objetivo específico se cumplió completamente.

La metodología se aplicó al sistema demostrativo del proyecto @lis TechNet. Para

ello se diseñó una política de seguridad que cubre las necesidades de seguridad del sistema en cuanto a privacidad, integridad y disponibilidad. Al aplicar ESG en conjunto con la política de seguridad diseñada, el diseño resultante garantiza un nivel básico de seguridad y con esto se cumple en su totalidad el segundo objetivo específico.

El diseño obtenido mediante la aplicación de ESG y aquél utilizado en el proyecto

@lis TechNet, y los procesos mediante los cuales fueron obtenidos, fueron comparados

tomando como base de comparación a los recursos empleados en el desarrollo (tiempo y personal), la coherencia de los diseños con sus especificaciones y la robustez de cada diseño. El proceso de diseño propuesto redujo el costo del diseño, además de que el diseño alternativo propuesto superó al utilizado en el proyecto en cuanto a seguridad y flexibilidad. A través de la comparación realizada (descrita en el capítulo 6) se cumplió también el tercer objetivo específico.

El trabajo realizado propone una metodología estructurada cuya aplicación optimizó el proceso de desarrollo del sistema demostrativo del proyecto @lis TechNet en las fases de

análisis y diseño del sistema, lo cual es uno de los objetivos generales de este trabajo. El segundo objetivo general se cumplió. El diseño alternativo propuesto como parte de este trabajo es equivalente en cuanto a funcionalidades con el sistema diseñado en el proyecto @lis TechNet y ofrece garantías básicas de seguridad basadas en una política

definida para la protección de la integridad, privacidad y disponibilidad de la información.