Al transformar un modelo
de dominio (182) en una arquitectura de software técnica. . .
. . . hay que considerar
que en ocasiones diferentes responsabilidades funcionales de una
aplicación puede requerir diferentes paradigmas de interfaz de
usuario.
✦✦✦
Una interfaz
hombre-máquina permite a los usuarios interactuar con una aplicación
a través de un 'paradigma', como formularios o menús y cuadros de
diálogo. Sin embargo, algunas aplicaciones están mejor operado a
través de un paradigma de interfaz distinta para cada tipo de
funcionalidad que se ofrecen.
Por ejemplo, en un
sistema de control del robot, la funcionalidad para la definición de
una misión requiere una interfaz de usuario diferente de la
funcionalidad de control de un robot móvil durante una misión. Sin
embargo, debemos asegurarnos de que todas las funciones y sus
interfaces de usuario forman un sistema coherente. Además, los
cambios en cualquier interfaz de usuario no afecta a la aplicación
de su funcionalidad correspondiente, ni la de las demás funciones y
sus interfaces de usuario asociados. Del mismo modo, los cambios en
las implementaciones de una función distinta no debe afectar a las
interfaces de usuario y las implementaciones de otras funciones.
Por lo tanto:
La estructura de la
aplicación interactúa como una jerarquía de agentes desconectados:
un agente de nivel superior, varios agentes de nivel intermedio, y
muchos agentes de nivel inferior. Cada agente es responsable de una
funcionalidad específica de la aplicación y proporciona una
interfaz de usuario especial para ello.
Los agentes de nivel
inferior implementan de forma autónoma la funcionalidad con la que
los usuarios pueden interactuar, por ejemplo la administración,
manejo de errores, y la manipulación de datos. En el nivel medio se
localizan los coordinar que son múltiples agentes relacionados con
los agentes de nivel inferior, por ejemplo, todos los puntos de vista
que visualizan un determinado tipo de datos. El agente de alto nivel
proporciona la funcionalidad básica que es compartido por todos los
agentes, como el acceso a una base de datos.
Dividir cada agente en
tres partes. Una parte de la presentación define el agente de la
interfaz de usuario. Una parte de la abstracción proporciona un
agente específico del dominio funcionalidad. Una parte de control
conecta la presentación con la abstracción y permite al agente
comunicarse con otro agentes. La conexión de los agentes en la
jerarquía se realiza a través de sus controles.
Dividir cada agente en
tres partes. A parte de la presentación se definen los usuarios
interactúan con un agente a través de su presentación. Todas las
peticiones de usuario a la funcionalidad respectiva en su abstracción
están mediados por el control del agente. Si una acción del usuario
requiere el acceso o la coordinación de otros agentes, mediar esta
solicitud a los mandos de estos agentes, ya sea hacia arriba o hacia
abajo en la jerarquía, y de allí a sus abstracciones.
Los usuarios interactúan
con un agente a través de su presentación. Todas las peticiones de
usuario a la funcionalidad respectiva en su abstracción se realizan
mediante el agente del control. Si una acción del usuario requiere
el acceso o la coordinación de otros agentes, mediar esta solicitud
a los controles de estos agentes, ya sea hacia arriba o hacia abajo
en la jerarquía, y de allí a sus abstracciones.
✦✦✦
Una arquitectura
PRESENTATION-ABSTRACTION-CONTROL ayuda a conectar múltiples
subsistemas autónomos o aplicaciones completas, incluso con modelos
especializados de interacción hombre-máquina a un sistema coherente
(distribuido). La desventaja es su complejidad: varias interfaces de
usuario debe ser proporcionada, y las acciones promovidas por una
interfaz de usuario específico debe ser coordinada cuidadosamente y
de forma explícita si el flujo de control se extiende por varios
subsistemas y las reacciones de las causas o ver los cambios en su
interfaz de usuario asociados. En consecuencia, una arquitectura
PRESENTATION-ABSTRACTION-CONTROL sólo es rentable si un sistema de
software no puede ser aplicado por un paradigma de interfaz de
usuario única.
Para especificar una
PRESENTATION-ABSTRACTION-CONTROL (PAC), la arquitectura, identificar
todas las responsabilidades independientes que la aplicación debe
ofrecer a sus usuarios. Cada responsabilidad se encapsula dentro del
nivel bajo del agente. Si varios agentes de la funcionalidad social o
necesidad de coordinación, factor cabo esta funcionalidad
(coordinación) en un agente de nivel intermedio. No puede haber
múltiples niveles de agentes de nivel intermedio dentro de una
arquitectura PAC. Funcionalidad compartida por todos los agentes es
proporcionado por el agente de nivel superior. Tal disociación
soporta la modificación independiente de los agentes sin afectar a
otros agentes, y permite a cada agente proporcionar su propia
interfaz de usuario. Proporcionar a todos los agentes una
arquitectura modelo-vista-controlador (188): la abstracción
correspondiente con el modelo y su división en objetos de dominio
(208), y la presentación de las vistas y controladores. Cambios en
la interfaz del agente por lo tanto afectará a su realización.
El desacoplar la
abstracción de un agente de su presentación a través de un
componente de control que es un MEDIATOR (410) con una doble
responsabilidad. En primer lugar, debe encaminar todas las
solicitudes de los usuarios de la presentación del agente para la
funcionalidad adecuada en su abstracción. También debe encaminar
todos notificaciones de propagación del cambio de la abstracción a
las opiniones de la presentación. En segundo lugar, el control debe
coordinar la cooperación entre los agentes. Si una solicitud de
usuario recibida por un agente particular no puede ser manejado por
el agente sólo, las rutas de control de la solicitud a los controles
apropiados de agentes de alto o de nivel inferior, junto con sus
datos de entrada asociados. Los resultados se devuelven en la misma
forma, pero a la inversa. De manera similar, el control de un agente
puede recibir solicitudes y datos de los controles de otros agentes.
Las solicitudes para ser enrutados se pueden encapsular dentro de
objetos COMMAND (412), y los datos que contiene DATA TRANSFER OBJECTS
(418). Los controles son la clave para un acoplamiento débil entre
los agentes: si cambia de un agente de extracción, los efectos sobre
otros agentes se limitan a sus controles.
NOTA
Tipo: Arquitectónico
Descompone un software interactivo en
una jerarquía de agentes que colaboran. Cada agente desempeña
alguna función de presentación por pantalla, funcionalidad básica
(abstracción) o comunicación entre agentes (control).
No hay comentarios:
Publicar un comentario