Bibliography
BIBLIOGRAPHY
MagicMobileUWE
Como se mencionó en las Secciones 6.1 a la 6.7, para el funcionamiento de
MagicMobileUWE se crearon estereotipos específicos para cada modelo. Logrando de esta manera agregarle a cada modelo la semántica correspondiente. Veamos como se
definen cada uno de estos estereotipos, indicando además, cuáles tienen en su definición valores etiquetados que son usados para guardar información, y de esta manera proveer funcionalidad específica al diseñador.
Para el Modelo de Contenido se creó el estereotipo <<mobileUWEContentDiagram>> como se muestra en la Figura 6.52. Para este estereotipo no fue necesario definir ningún valor etiquetado.
Figura 6.52: Estereotipo para el Modelo de Contenido.
Para el Modelo Unificado (Figura 6.53) se definió el estereotipo llamado
<<mobileUWEUnifiedDiagram>>, el cual define el valor etiquetado contentDiagram.
Este valor etiquetado permite guardar el Modelo de Contenido desde el cual fue derivado el Modelo Unificado, cuando se usó una transformación.
En el caso que el Modelo Unificado no se haya creado desde una transformación, este valor etiquetado no tiene ningún Modelo de Contenido asignado.
Figura 6.53: Estereotipo para el Modelo Unificado.
Algo similar ocurre con el Modelo Navegacional, se creó el estereotipo
<<mobileUWENavigationDiagram>> que define como valor etiquetado
unifiedDiagram (como se visualiza en la Figura 6.54). Este valor etiquetado, es
inicializado con un Modelo Unificado, sólo en el caso que el Modelo Navegacional haya sido generado mediante una transformación.
Se usa este estereotipo cuando se debe buscar los Modelos Navegacionales, para listarlos como posibles modelos a ser seleccionados como base de un Modelo de Instancias Navegacional, o para definirles una presentación.
Figura 6.54: Estereotipo para el Modelo Navegacional.
Como se muestra en la Figura 6.55 en el caso del Modelo de Instancia Navegacional se creó el estereotipo<<mobileUWENavigationDiagram>>.
Figura 6.55: Estereotipo para el Modelo de Instancias.
En la Figura 6.55 se puede visualizar, el estereotipo tiene dos valores etiquetados. Uno de ellos es navigationDiagram, el cual se completa con el Modelo Navegacional base que se quiere instanciar. Este valor etiquetado siempre debe tener un Modelo Navegacional seteado.
El otro valor etiquetado asociado al estereotipo es wasComplete, el cual se define inicialmente como falso, representando que dicho modelo todavía no fue completado.
Este valor etiquetado toma valor verdadero cuando el diseñador elige la opción de completar el Modelo de Instancias Navegacional. Se verifica el valor de esta etiqueta
(wasComplete) para proveer, o no, el menú contextual con las opciones de completar
el Modelo de Instancias Navegacional.
Para los Modelos de Presentación, se definió el estereotipo denominado
<<mobileUWELayoutDiagram>> (ver Figura 6.56) que tiene un valor etiquetado
navigationDiagram. Este valor etiquetado siempre debe tener el Modelo
Navegacional base al cual se le está definiendo una presentación.
Este estereotipo es usado para buscar todos los Modelos de Presentación a ser listados como posibles presentaciones que puede tener un Modelo de Instancias Navegacional, cuando se crea un Modelo del Usuario.
Figura 6.56: Estereotipo para el Modelo de Presentación.
Los Modelos del Usuario tienen el estereotipo <<mobileUWEUserModelDiagram>>. Este estereotipo no requiere definir ningún valor etiquetado en particular como se visualiza en la Figura 6.57.
Figura 6.57: Estereotipo para el Modelo del Usuario.
Cada uno de los estereotipos especificados para cada uno de nuestros modelos, fue agregado en alguno de los perfiles presentados tanto en la Sección 4.2 como en las Secciones 5.7 y 5.8.
La Figura 6.58 muestra a qué perfil fue agregado cada estereotipo. Se puede apreciar que en el perfil Mobile UWE se agregaron los estereotipos relacionados a los Modelos de Contenido, Unificado, Navegacional y de Instancias Navegacional. El estereotipo del Modelo de Presentación se agrego al perfil Layout mientras que el estereotipo del Modelo del Usuario, se agrego al perfil User Model.
Figura 6.58: Estereotipos de los modelos en sus correspondientes perfiles.
En la Tabla 6.1 se muestran los estereotipos definidos para cada uno de los modelos,
los mismos son definidos para el elemento UML llamado Diagram [UML
Superstructure]. En la segunda columna, se detalla a qué modelo caracteriza el estereotipo.
Tabla 6.1: Estereotipos definidos para representar cada uno de nuestros modelos.
Estereotipo Modelos que representa el estereotipo
mobileUWEContentDiagram Modelo de Contenido
mobileUWEUnifedDiagram Modelo Unificado
mobileUWENavigationDiagram Modelo Navegacional
mobileUWENavigationInstanceDiagram Modelo de Instancia Navegacional
mobileUWELayoutDiagram Modelo de Presentación
mobileUWEUserModelInstanceDiagram Modelo del Usuario
En las Secciones 6.2 a la 6.7 se definió cada modelo dentro de paquetes con nombres específicos. Este concepto se tomo de UWE, que define para su plugin MagicUWE
paquetes para almacenar y agrupar los diferentes modelos.
Cada paquete en realidad es un elemento Model [UML Superstructure] de UML. En
UML, este elemento (Model) representa un paquete que contiene específicamente
modelos. Para que un elemento Model tenga la semántica de contener
específicamente nuestros diferentes modelos, se definen estereotipos particulares para cada paquete Model.
MagicUWE tiene dos estereotipos51 para representar paquetes que almacenan sus
modelos de contiendo y navegacionales. Es decir, para el paquete de modelos llamado Content definen el estereotipo <<contentModel>> y para el paquete de modelos llamado Navigation definen el estereotipo <<navigationModel>>.
Para que la herramienta sea compatible con el plugin MagicUWE se usan los dos estereotipos de Model mencionados anteriormente para almacenar nuestros Modelos de Contenido y Navegacionales respectivamente. De esta manera, se logra que la herramienta utilice toda la funcionalidad definida por MagicUWE para sus Modelos Navegacionales.
Para nuestros otros cuatro modelos, se crearon cuatro estereotipos nuevos de Model. Para el paquete Unified que contiene los Modelos Unificados se definió el estereotipo
<<unifiedModel>>. El paquete Navigation Instance que almacena los modelos de
instancia se le creó el estereotipo <<navigationInstanceModel>>.Al paquete Layout (que almacena los Modelos de Presentación) se le creó el estereotipo
<<layoutModel>>. Y por último, al paquete User Model que contiene los modelos del
usuario se le creó el estereotipo <<userModelInstance>>.
En la Figura 6.59 se puede apreciar cómo es la visualización de cada uno de los paquetes de modelos con sus correspondientes estereotipos. En el caso de tener paquetes de modelos internos, estos también deben tener el estereotipo adecuado. El buen funcionamiento de las operaciones, depende de tener bien estereotipados los paquetes de modelos, ya que mucha funcionalidad hace controles relacionados con los estereotipos de los modelos.
Figura 6.59: Estereotipos definidos para los paquetes de modelos.
51UWE tiene definidos otros estereotipos de Model que no son mencionados ya que no son usados por la herramienta.
La solapa Containment permite elegir si mostrar o no los estereotipos de los elementos. Por una cuestión de no sobrecargar las figuras de esta sección con demasiada información, se optó por no mostrar el estereotipo asociado a cada paquete de modelos.
Los estereotipos creados de Model se agregaron en nuestros diferentes perfiles. En el perfil Mobile UWE se agregaron los estereotipos <<unifiedModel>> y
<<navigationInstanceModel>>, en el perfil Layout se agrego el estereotipo
<<layoutModel>> mientras que en el perfil User Model se agrego el estereotipo
<<userModelInstance>>. En la Figura 6.60 se muestra estos cuatro estereotipos
creados y los perfiles donde fueron agregados. Además se puede visualizar en la figura los dos estereotipos que se usan del perfil de UWE.
Figura 6.60: Estereotipos de los paquetes de modelos.
En la Tabla 6.2 se muestran los estereotipos definidos para cada uno de las paquetes que contienen nuestros modelos, los mismos son definidos para el elemento UML
llamado Model [UML Superstructure]. En la segunda columna se detalla a que modelos contiene el paquete que usa el estereotipo y en la tercera columna quien provee el estereotipo, UWE o nuestro enfoque.
Tabla 6.2: Estereotipos usados para representar cada uno de los paquetes que contienen a
nuestros modelos.
Estereotipo Modelos que contiene el paquete Provisto
contentModel Modelo de Contenido UWE
unifedModel Modelo Unificado Nuestro enfoque
navigationModel Modelo Navegacional UWE
navigationInstanceModel Modelo de Instancia Navegacional Nuestro enfoque
layoutModel Modelo de Presentación Nuestro enfoque
userModelInstance Modelo del Usuario Nuestro enfoque
6.10. Resumen
En este capítulo se presentó la funcionalidad de la herramienta MagicMobileUWE, la cual permite el desarrollo dirigido por modelos para aplicaciones de HM.
La herramienta permite además de la creación de cada uno de los modelos de nuestro enfoque, realizar las siguientes transformaciones:
• Mobile UWE Content Mobile UWE Unified (Selected some concerns) • Mobile UWE Unified Mobile UWE Navigation
Además, cuenta con diferentes menús contextuales que agilizan la tarea del diseñador. En la Tabla 6.3 se mencionan todos los menús de la herramienta, indicando el nombre del menú, el elemento para el cual esta disponible el menú (usando el estereotipo del mismo) y en qué modelo esta disponible.
Tabla 6.3: Menús definidos por MagicMobileUWE
Menú Estereotipos para el cual esta disponible el menú
junto con el correspondiente modelo
MagicMobileUWE: Create Location Property
<<physcialContent>>
Modelo de Contenido
MagicMobileUWE: Set Location as Property
<<physcialContent>>
Modelo de Contenido
MagicMobileUWE: Create Derived Walking Link Operation
<<physcialNode>>
Modelo Navegacional
MagicMobileUWE: Create an Instance of navigationClass
<<digitalNavigation>>
Modelo de Instancias Navegacional
MagicMobileUWE: Create an Instance of physicalNode
<<physcialNavigation>>
Modelo de Instancias Navegacional
MagicMobileUWE: Set Classifier <<navigationClass>> y <<physcialNode>>
Modelo de Instancias Navegacional
MagicMobileUWE: Complete the Mobile UWE Instance Navigation Diagram (only properties and roleOf)
<<magicUWENavigationInstanceDiagram>>
Modelo de Instancias Navegacional
MagicMobileUWE: Complete the Mobile UWE Instance Navigation Diagram
<<magicUWENavigationInstanceDiagram>>
Modelo de Instancias Navegacional
MagicMobileUWE: Set Stylesheet <<navigationClassLayout>> y <<physcialNodeLayout>>
Modelo de Presentación
Nuestro desarrollo dirigido por modelos cumple con uno de los puntos básicos asociados a este tipo de desarrollo, como es automatizar la tarea del diseñador y proveer funcionalidad para agilizar la tarea de crear aplicaciones de HM.
En la Figura 6.60 se puede apreciar un esquema general, que muestra un proyecto de
MagicDraw, el cual contiene los perfiles (UWE y Mobile Hypermedia) que utiliza cada proyecto que representa una aplicación de HM y además, se índica los modelos que puede contener el proyecto. Se puede observar que, en particular para el Modelo de Presentación, se destaca la implementación presentada (modelo basado en XSLT). Lo mismo ocurre con el Modelo del Usuario, se especifica el modelo (del Usuario) básico y el que considera estados.
Se puede ver en la Figura 6.61 que las relaciones entre nuestros modelos pueden estar dadas porque:
• De un modelo a otro se llega aplicando una transformación, como es el caso de
las dos transformaciones entre el Modelo de Contenido y el Modelo Unificado, o la transformación entre el Modelo Unificado y el Modelo Navegacional.
• Un modelo es la instanciación de otro, como en el caso del Modelo de
• Un modelo se define en base a otro, es decir necesita conocer a otro modelo
para que tenga sentido su creación. Como por ejemplo, del Modelo de Presentación (que necesita el Modelo Navegacional base) o el Modelo del Usuario (que necesita el Modelo de Instancias Navegacional y el Modelo de Presentación).