<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>0798-4065</journal-id>
<journal-title><![CDATA[Revista de la Facultad de Ingeniería Universidad Central de Venezuela]]></journal-title>
<abbrev-journal-title><![CDATA[Rev. Fac. Ing. UCV]]></abbrev-journal-title>
<issn>0798-4065</issn>
<publisher>
<publisher-name><![CDATA[Universidad Central de Venezuela]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S0798-40652007000100004</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Modeling quality of adaptive mobile user interfaces]]></article-title>
<article-title xml:lang="es"><![CDATA[Caracterización de la adaptabilidad de la componente de interfaz de usuario para una aplicación móvil usando un modelo de calidad]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Canelon]]></surname>
<given-names><![CDATA[Rodolfo]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Losavio]]></surname>
<given-names><![CDATA[Francisca]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Matteo]]></surname>
<given-names><![CDATA[Alfredo]]></given-names>
</name>
<xref ref-type="aff" rid="A03"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad Lisandro Alvarado Decanato de Ciencias y Tecnología Dpto. Sistemas]]></institution>
<addr-line><![CDATA[Barquisimeto ]]></addr-line>
<country>Venezuela</country>
</aff>
<aff id="A02">
<institution><![CDATA[,Universidad Central de Venezuela Centro ISYS Laboratorio LaTecS]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<aff id="A03">
<institution><![CDATA[,Universidad Central de Venezuela Centro ISYS Laboratorio TOOLS]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>00</month>
<year>2007</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>00</month>
<year>2007</year>
</pub-date>
<volume>22</volume>
<numero>1</numero>
<fpage>37</fpage>
<lpage>44</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://ve.scielo.org/scielo.php?script=sci_arttext&amp;pid=S0798-40652007000100004&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://ve.scielo.org/scielo.php?script=sci_abstract&amp;pid=S0798-40652007000100004&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://ve.scielo.org/scielo.php?script=sci_pdf&amp;pid=S0798-40652007000100004&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="en"><p><![CDATA[The use of mobile devices is now worldwide. Mobile and pervasive computing deals with the development of software applications for these devices in wireless environments. The development cost is high since there are no market standards for these devices and the application is often designed ad hoc. The user interface in particular is constrained by limited resources such as memory, display size and resolution, and it varies for each type of commercial display. The goal of this work is to characterize the adaptive user interface component of a mobile application using a quality model for evaluating the quality provided by its architectural solutions. Quality properties are given for each architectural solution; as a consequence, the reliability of the application is improved, and the development costs are lowered. The identification of functional and non-functional requirements for the adaptive user interface plays an important role in our approach, since they are directly related with the quality properties which drive the architectural choices. Our approach is applied to a case study in the e-banking domain.]]></p></abstract>
<abstract abstract-type="short" xml:lang="es"><p><![CDATA[El empleo de dispositivos móviles esta siendo extendido por todo el mundo. La computación móvil estudia el desarrollo de aplicaciones de software para estos dispositivos en ambientes inalámbricos. Los costos de desarrollo son altos y no existen estándares de mercado para estos dispositivos y frecuentemente las aplicaciones son diseñadas ad hoc. La interfaz de usuario en particular, esta restringida por la limitación de recursos como memoria, el tamaño y resolución de la pantalla, y esto varía para cada tipo de dispositivo comercial. El objetivo de este trabajo es caracterizar la adaptabilidad de la componente de interfaz de usuario para una aplicación móvil usando un modelo de calidad que permita evaluar la calidad de las soluciones arquitectónicas propuestas. Se incorporan las propiedades de calidad para cada solución arquitectural de manera de garantizar la confiabilidad de la aplicación y la disminución en los costos de desarrollo. La identificación de los requisitos funcionales y no funcionales para la interfaz de usuario adaptable juega un rol importante en nuestro estudio, siendo directamente relacionadas con las propiedades de calidad las cuales guían la escogencia arquitectónica. Nuestra solución arquitectural es aplicada a un caso estudio, en el dominio de banca móvil.]]></p></abstract>
<kwd-group>
<kwd lng="en"><![CDATA[mobile computing]]></kwd>
<kwd lng="en"><![CDATA[adaptive user interfaces]]></kwd>
<kwd lng="en"><![CDATA[mobile agents]]></kwd>
<kwd lng="en"><![CDATA[mediator]]></kwd>
<kwd lng="en"><![CDATA[quality model]]></kwd>
<kwd lng="en"><![CDATA[software architecture]]></kwd>
<kwd lng="es"><![CDATA[computación móvil]]></kwd>
<kwd lng="es"><![CDATA[interfaces de usuarios adaptables]]></kwd>
<kwd lng="es"><![CDATA[agentes móviles]]></kwd>
<kwd lng="es"><![CDATA[mediadores]]></kwd>
<kwd lng="es"><![CDATA[modelos de calidad]]></kwd>
<kwd lng="es"><![CDATA[arquitectura de software]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <p ALIGN="center" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><b><font face="Verdana" size="3"><span style="mso-ansi-language: EN-US" lang="EN-US">Modeling quality of adaptive mobile user interfaces</span></font></b></p>     <p align="center" style="margin-bottom:0cm;margin-bottom:.0001pt;text-align:center"><b><font face="Verdana" size="2">Rodolfo Canelon <sup>1</sup>, Francisca Losavio <sup>2</sup>, Alfredo Matteo <sup>3</sup></font></b></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2"><sup>1</sup> Dpto. Sistemas, Decanato de Ciencias y Tecnología,</font> <font face="Verdana" size="2">Universidad «Lisandro Alvarado», Barquisimeto, Venezuela.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2"><sup>2</sup> Laboratorio LaTecS, Centro ISYS, Universidad Central de Venezuela.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2"><sup>3</sup> Laboratorio TOOLS, Centro ISYS, Universidad Central de Venezuela.</font></p> <b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">ABSTRACT</font></p> </b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">The use of mobile devices is now worldwide. Mobile and pervasive computing deals with the development of software</font> <font SIZE="2" face="Verdana">applications for these devices in wireless environments. The development cost is high since there are no market standards</font> <font SIZE="2" face="Verdana">for these devices and the application is often designed ad hoc. The user interface in particular is constrained by limited</font> <font SIZE="2" face="Verdana">resources such as memory, display size and resolution, and it varies for each type of commercial display. The goal of this</font> <font SIZE="2" face="Verdana">work is to characterize the adaptive user interface component of a mobile application using a quality model for evaluating</font> <font SIZE="2" face="Verdana">the quality provided by its architectural solutions. Quality properties are given for each architectural solution; as a</font> <font SIZE="2" face="Verdana">consequence, the reliability of the application is improved, and the development costs are lowered. The identification of</font> <font SIZE="2" face="Verdana">functional and non-functional requirements for the adaptive user interface plays an important role in our approach, since</font> <font SIZE="2" face="Verdana">they are directly related with the quality properties which drive the architectural choices. Our approach is applied to a case</font> <font SIZE="2" face="Verdana">study in the e-banking domain.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2"><b>Keywords: </b> mobile computing, adaptive user interfaces, mobile agents, mediator, quality model, software architecture.</font></p> <b>     <p style="margin-bottom:0cm;margin-bottom:.0001pt" align="center"><font face="Verdana" size="2">Caracterización de la adaptabilidad de la componente de interfaz de usuario para una aplicación móvil usando un modelo de calidad</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">RESUMEN</font></p> </b>     ]]></body>
<body><![CDATA[<p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">El empleo de dispositivos móviles esta siendo extendido por todo el mundo. La computación móvil estudia el desarrollo de</font> <font SIZE="2" face="Verdana">aplicaciones de software para estos dispositivos en ambientes inalámbricos. Los costos de desarrollo son altos y no</font> <font SIZE="2" face="Verdana">existen estándares de mercado para estos dispositivos y frecuentemente las aplicaciones son diseñadas ad hoc. La interfaz</font> <font SIZE="2" face="Verdana">de usuario en particular, esta restringida por la limitación de recursos como memoria, el tamaño y resolución de la pantalla,</font> <font SIZE="2" face="Verdana">y esto varía para cada tipo de dispositivo comercial. El objetivo de este trabajo es caracterizar la adaptabilidad de la</font> <font SIZE="2" face="Verdana">componente de interfaz de usuario para una aplicación móvil usando un modelo de calidad que permita evaluar la calidad</font> <font SIZE="2" face="Verdana">de las soluciones arquitectónicas propuestas. Se incorporan las propiedades de calidad para cada solución arquitectural</font> <font SIZE="2" face="Verdana">de manera de garantizar la confiabilidad de la aplicación y la disminución en los costos de desarrollo. La identificación de</font> <font SIZE="2" face="Verdana">los requisitos funcionales y no funcionales para la interfaz de usuario adaptable juega un rol importante en nuestro estudio,</font> <font SIZE="2" face="Verdana">siendo directamente relacionadas con las propiedades de calidad las cuales guían la escogencia arquitectónica. Nuestra</font> <font SIZE="2" face="Verdana">solución arquitectural es aplicada a un caso estudio, en el dominio de banca móvil.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2"><b>Palabras clave: </b> computación móvil, interfaces de usuarios adaptables, agentes móviles, mediadores, modelos de calidad,</font> <font face="Verdana" size="2">arquitectura de software.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana"><b>Recibido: </b> agosto de 2006 <b>Revisado:</b> febrero de 2007</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><b><font SIZE="2" face="Verdana">INTRODUCTION</font></p> </b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">Mobile computing differs from the standard «desktop»</font> <font SIZE="2" face="Verdana">computing since it imposes several challenges for the</font> <font SIZE="2" face="Verdana">development of low cost, efficient and reliable software</font> <font SIZE="2" face="Verdana">applications, which must run on heterogeneous mobile</font> <font SIZE="2" face="Verdana">devices, such as Personal Digital Assistant (PDA) and</font> <font SIZE="2" face="Verdana">mobile phones, with limited resources and transient</font> <font SIZE="2" face="Verdana">connections. Handheld mobile devices are used in complex</font> <font SIZE="2" face="Verdana">scenarios such as visual exploration, environmental</font> <font SIZE="2" face="Verdana">monitoring, freeway-traffic management, fire fighting and</font> <font SIZE="2" face="Verdana">natural disaster damage assessment, which require that anumber of new challenges that are affecting the whole</font> <font SIZE="2" face="Verdana">software engineering lifecycle be addressed. This new set</font> <font SIZE="2" face="Verdana">of challenges is characterized as Prism (programming in the</font> <font SIZE="2" face="Verdana">small and many), which refers to software development forhighly distributed, dynamic, mobile, heterogeneous</font> <font SIZE="2" face="Verdana">computations on large numbers of small resource</font> <font SIZE="2" face="Verdana">constrained platforms (Medvidovic, 2003). In general, these</font> <font SIZE="2" face="Verdana">«mobile applications» are built by recoding existing desktop</font> <font SIZE="2" face="Verdana">versions. In particular, user interfaces must deal with</font> <font SIZE="2" face="Verdana">miniaturization issues (display size and resolution) and</font> <font SIZE="2" face="Verdana">device heterogeneity, increasing the development costs to</font> <font SIZE="2" face="Verdana">assure their portability. The absence of traditional input/</font> <font SIZE="2" face="Verdana">output devices increases the difficulty of the design, limiting</font> <font SIZE="2" face="Verdana">the amount of information that can be handled. Application</font> <font SIZE="2" face="Verdana">mobility (Eisenstein, 2000], is defined as the ability of an</font> <font SIZE="2" face="Verdana">application to adapt itself to different mobile devices. The</font> <font SIZE="2" face="Verdana">context of use (Eisenstein, 2000), is the environment</font> <font SIZE="2" face="Verdana">associated with the mobile device. It is defined by a set of</font> <font SIZE="2" face="Verdana">parameters (platform, network, QoS, etc.) for each</font> <font SIZE="2" face="Verdana">environment. It affects the user interface usability. Anadaptable or adaptive application reconfigures itself</font> <font SIZE="2" face="Verdana">dynamically according to the context of use. In particular,</font> <font SIZE="2" face="Verdana">the problem of adaptive user interface design has been</font> <font SIZE="2" face="Verdana">addressed by several frameworks, an innovative method</font> <font SIZE="2" face="Verdana">for component-based software engineering, backed up by a</font> <font SIZE="2" face="Verdana">formalism for modeling components and by a generic</font> <font SIZE="2" face="Verdana">component architecture, all tailored to the needs of</font> <font SIZE="2" face="Verdana">embedded systems. Two other fields of application</font> <font SIZE="2" face="Verdana">development are integrated in the component orientedapproach:</font> <font SIZE="2" face="Verdana">the building of user interfaces for embedded</font> <font SIZE="2" face="Verdana">systems and the debugging of embedded systems. In the</font> <font SIZE="2" face="Verdana">MUSA (Menkhaus, 2005) framework the user interface is</font> <font SIZE="2" face="Verdana">modeled as an event graph using the EG-XML descriptive</font> <font SIZE="2" face="Verdana">language to describe dialogs and events (Musa, 2002). A</font> <font SIZE="2" face="Verdana">study of (Sousa, 2002) indicated that a promising approach</font> <font SIZE="2" face="Verdana">is to apply software architecture principles to the</font> <font SIZE="2" face="Verdana">development of software systems within the Prism context.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">The main goal of this work is to characterize architectural</font> <font SIZE="2" face="Verdana">solutions for the adaptive user interface problem. The</font> <font SIZE="2" face="Verdana">problem is described by its functional and non-functionalrequirements. The quality properties related with the</font> <font SIZE="2" face="Verdana">requirements are specified by a standard quality model (Iso/</font> <font SIZE="2" face="Verdana">Iec, 2001) and they are used to justify the architectural</font> <font SIZE="2" face="Verdana">choices. Only the logic view of the architecture, in the sense</font> <font SIZE="2" face="Verdana">of Krutchen, is considered (Krutchen, 1999). We consider</font> <font SIZE="2" face="Verdana">this view because it focuses on the main functionality of</font> <font SIZE="2" face="Verdana">the system, to provide a first broad structure of the system.</font> <font SIZE="2" face="Verdana">This is also a view that is very much used in practice to</font> <font SIZE="2" face="Verdana">establish a common understanding among the stakeholders.</font> <font SIZE="2" face="Verdana">An implementation of one of the solutions, the mobile agentbased</font> <font SIZE="2" face="Verdana">architecture is also presented, where Java and XML</font> <font SIZE="2" face="Verdana">are the constraints for the technological platform.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">The structure of this paper, besides this introduction and</font> <font SIZE="2" face="Verdana">the conclusion is the following: section 2 characterizes the</font> <font SIZE="2" face="Verdana">modeling elements of the user interface component in a</font> <font SIZE="2" face="Verdana">mobile context and the architecture used. Section 3</font> <font SIZE="2" face="Verdana">discusses in details the Mediator architectural solution for</font> <font SIZE="2" face="Verdana">adaptive interfaces. The UML model of this architecture ispresented with some implementation considerations and</font> <font SIZE="2" face="Verdana">examples. Finally, section 4 presents the characterization of</font> <font SIZE="2" face="Verdana">the problem and its architectural solution by functional and</font> <font SIZE="2" face="Verdana">non functional requirements and their quality properties.</font> <font SIZE="2" face="Verdana">These are expressed by a quality model and are used to</font> <font SIZE="2" face="Verdana">justify the architectural choices.</font></p> <b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">CHARACTERIZATION OF THE USER INTERFACE</font> </b> <b> <font SIZE="2" face="Verdana">COMPONENT FOR MOBILE DEVICES</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">Contexts of use</font></p> </b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">The graphical user interface (GUI) used in desktop</font> <font SIZE="2" face="Verdana">computing provide interaction based on the WYSIWYG</font> <font SIZE="2" face="Verdana">(What You See Is What You Get) and WIMP (Eisenstein,</font> <font SIZE="2" face="Verdana">2001) (Windows, Icons, Menus and Pointing devices)</font> <font SIZE="2" face="Verdana">principles. However these issues do not always apply to</font> <font SIZE="2" face="Verdana">the user interface for mobile devices, faced with limitedresources and different input/output systems. For example,</font> <font SIZE="2" face="Verdana">most mobile devices do not have pointing devices and menus</font> <font SIZE="2" face="Verdana">are used instead. Moreover, resource limitation imposes</font> <font SIZE="2" face="Verdana">reduced functionality for the application and the user</font> <font SIZE="2" face="Verdana">interface, which is not necessarily graphic. In consequence,</font> <font SIZE="2" face="Verdana">the term user interface (UI) will be used for the mobile</font> <font SIZE="2" face="Verdana">context, instead of GUI. Mobile devices are very different.</font> <font SIZE="2" face="Verdana">In this work we will refer mainly to PDAs and mobile phones.</font> <font SIZE="2" face="Verdana">The main standard functionalities of PDA are agenda, office</font> <font SIZE="2" face="Verdana">document, music and video playback. Mobile phones are</font> <font SIZE="2" face="Verdana">more oriented towards voice communication and text</font> <font SIZE="2" face="Verdana">messages. However, nowadays most of these functionalities</font> <font SIZE="2" face="Verdana">are common to both devices. UI must be adaptive to these</font> <font SIZE="2" face="Verdana">devices, where the human hand determines the size of the</font> <font SIZE="2" face="Verdana">display. There is also a limit on the optimal size of a text that</font> <font SIZE="2" face="Verdana">can be displayed in order to be captured by the human eye.</font> <font SIZE="2" face="Verdana">A multiple window system is impractical and applications</font> <font SIZE="2" face="Verdana">run always on full display mode. Hence, new input devices</font> <font SIZE="2" face="Verdana">are adopted, such as specific function buttons, touch pads</font> <font SIZE="2" face="Verdana">or touch displays. UI is in general designed ad hoc for each</font> <font SIZE="2" face="Verdana">specific device. Heterogeneity increases the development</font> <font SIZE="2" face="Verdana">costs of applications, in particular of the interface</font> <font SIZE="2" face="Verdana">component.</font></p> <b>     ]]></body>
<body><![CDATA[<p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">Main modeling elements</font></p> </b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">The classical user interface development models are (Coutaz,</font> <font SIZE="2" face="Verdana">1991):</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2">- The platform model<b>, </b>describes the computer system</font> <font face="Verdana" size="2">(platform) where the interface is running.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- The presentation model, describes the interface structure</font> <font SIZE="2" face="Verdana">(windows system and graphical components).</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- The tasks model presents the tasks that the user must</font> <font SIZE="2" face="Verdana">perform to execute the software functionality. It is a</font> <font SIZE="2" face="Verdana">hierarchical structure made up of goals and pre-post</font> <font SIZE="2" face="Verdana">conditions on the tasks.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">User interface modeling languages must be declarative and</font> <font SIZE="2" face="Verdana">independent from the implementation. The most used</font> <font SIZE="2" face="Verdana">modeling platform independent languages for mobile devices</font> <font SIZE="2" face="Verdana">are MIMIC, UIML, IML, and XIML model, the elementary</font> <font SIZE="2" face="Verdana">interface unit is an interaction object (IO), which is an element</font> <font SIZE="2" face="Verdana">that allows the user of an application to visualize or</font> <font SIZE="2" face="Verdana">manipulate information or execute an interactive task. An</font> <font SIZE="2" face="Verdana">abstract interaction object (AIO) represents a platform</font> <font SIZE="2" face="Verdana">independent interaction object. A concrete interaction object</font> <font SIZE="2" face="Verdana">(CIO) is an AIO implementation. An AIO is associated with</font> <font SIZE="2" face="Verdana">several CIOs, inheriting behavior from the AIO. The</font> <font SIZE="2" face="Verdana">presentation model is a tree-like structure of interaction</font> <font SIZE="2" face="Verdana">objects. When the model is interpreted, the appropriate CIO</font> <font SIZE="2" face="Verdana">is built automatically, according to the platform (Eisenstein,</font> <font SIZE="2" face="Verdana">2000). Each context of use imposes constraints on the input/</font> <font SIZE="2" face="Verdana">output capacity (Luyten, 2001 and Menkhaus, 2002). The</font> <font SIZE="2" face="Verdana">display resolution expressed in pixels must not be</font> <font SIZE="2" face="Verdana">confounded with the display surface. Two displays can havedifferent surfaces and the same resolution. An optimaldistribution of the interface presentation can work for a</font> <font SIZE="2" face="Verdana">device and not for another. The interface adaptability</font> <font SIZE="2" face="Verdana">depends on the number of the context of use. Three</font> <font SIZE="2" face="Verdana">parameters determine the space required for display:</font> <font SIZE="2" face="Verdana">individual IO, location of the IO within the window,</font> <font SIZE="2" face="Verdana">distribution of the IO. A Logical Window (LW) is a</font> <font SIZE="2" face="Verdana">constituted by composition of AIO. LWs are limited by the</font> <font SIZE="2" face="Verdana">display constraints of the device (Eisenstein, 2001;</font> <font SIZE="2" face="Verdana">Menkhaus, 2002; Eisenstein, 2000). A Presentation Unit (PU)</font> <font SIZE="2" face="Verdana">is the complete presentation environment required for the</font> <font SIZE="2" face="Verdana">interaction. Each PU can be decomposed into LWs; it is</font> <font SIZE="2" face="Verdana">composed by at least a main window from which other</font> <font SIZE="2" face="Verdana">windows may be accessed. Notice that this configuration is</font> <font SIZE="2" face="Verdana">supported by the PAC (Presentation, Abstraction, and</font> <font SIZE="2" face="Verdana">Control) pattern, which is a mediator-based architectural</font> <font SIZE="2" face="Verdana">pattern (Coutaz, 1991 and Losavio, 1994).</font></p> <b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">Architectures for user interface in mobile context</font></p> </b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">Several architectures have been proposed to handle the</font> <font SIZE="2" face="Verdana">constraints imposed by the mobile devices. Two of them are</font> <font SIZE="2" face="Verdana">presented in what follows.</font></p> <b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">Architecture 1: determine the convenient size of IOs</font></p> </b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">Two solutions are proposed:</font></p>     ]]></body>
<body><![CDATA[<p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- The size of the IO is reduced to reach a level so that its</font> <font SIZE="2" face="Verdana">usability is preserved.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- The IO is substituted by another IO with the same</font> <font SIZE="2" face="Verdana">functionality but requiring less space.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">A decision tree: is used to select the size and properties of</font> <font SIZE="2" face="Verdana">an IO as a function of the device context (Eisenstein, 2000).</font> <font SIZE="2" face="Verdana">The decision tree does not solve the problem of the efficient</font> <font SIZE="2" face="Verdana">location and distribution of IOs within one or multiple</font> <font SIZE="2" face="Verdana">windows. The following architecture gives an automatic</font> <font SIZE="2" face="Verdana">solution to this problem.</font></p> <b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">Architecture 2: determine automatic location and</font> </b> <b> <font SIZE="2" face="Verdana">distribution of AIOs within one or multiple windows</font></p> </b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">A mediator-based pattern is used to solve this problem</font> <font SIZE="2" face="Verdana">(Eisenstein, 2000 and 2001; Menkhaus, 2002; Luyten, 2001)</font> <font SIZE="2" face="Verdana">(<a href="#fig1">figure 1</a>). Mediator is an abstract class defining a</font> <font SIZE="2" face="Verdana">communication interface between Colleague classes and</font> <font SIZE="2" face="Verdana">controlling the data transmission. It enforces the interactions</font> <font SIZE="2" face="Verdana">among colleagues and it contains the basic methods to</font> <font SIZE="2" face="Verdana">manage the flow of information between independent</font> <font SIZE="2" face="Verdana">colleagues (Mediator, 2002). However, it does not solve the</font> <font SIZE="2" face="Verdana">problem of the automatic adaptation to the different contexts</font> <font SIZE="2" face="Verdana">of use.</font></p>     <p ALIGN="center" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><a name="fig1"><img border="0" src="/img/fbpe/rfiucv/v22n1/art04fig1.jpg" align="center" width="546" height="231"></a></p> <b>     
<p ALIGN="center" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2">Figure 1. </font></b><font size="2" face="Verdana">General structure of <i>Mediator </i>[Mediator02]</font><b><font face="Verdana" size="2">.</font></p> </b><b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">Architecture 3: Adaptability with mobile agents</font></p> </b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">Architectures based on software agents have been widely</font> <font SIZE="2" face="Verdana">used for distributed applications (Genesereth, 1994; Gomez,</font> <font SIZE="2" face="Verdana">2001). Agents are software entities with the followingcharacteristics: facility to capture and apply knowledge and</font> <font SIZE="2" face="Verdana">autonomous decision processing capacity for problem</font> <font SIZE="2" face="Verdana">solving (intelligence). Static agents can be executed only in</font> <font SIZE="2" face="Verdana">the machine where they are initiated. Mobile agents, instead,</font> <font SIZE="2" face="Verdana">can be transported from one machine to another, allowing</font> <font SIZE="2" face="Verdana">direct interaction with the agents of the system where the</font> <font SIZE="2" face="Verdana">required object is located. The agent can:</font>&nbsp;</p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- gather information from the architecture and the</font> <font SIZE="2" face="Verdana">environment;</font></p>     ]]></body>
<body><![CDATA[<p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- be triggered by the architecture and the environment in</font> <font SIZE="2" face="Verdana">the form of an exception generated by the application;</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- make proper decisions using rule-based intelligent</font> <font SIZE="2" face="Verdana">mechanism;</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- communicate with others agent components controlling</font> <font SIZE="2" face="Verdana">other relevant aspects of the architecture;</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- notify other agents that one or more modification have</font> <font SIZE="2" face="Verdana">occurred in the configuration that it controls;</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- Ensure, in collaboration together with others agents, some</font> <font SIZE="2" face="Verdana">quality aspects of a system by controlling systematically</font> <font SIZE="2" face="Verdana">components communication properties such as security,</font> <font SIZE="2" face="Verdana">reliability, etc; perform some action on the architecture to</font> <font SIZE="2" face="Verdana">manage the changes required by some modification.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><b><font SIZE="2" face="Verdana">Agent-based (Structure and Participants)</font></p> </b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">An agent emits a certain message sentmessage (reach,</font> <font SIZE="2" face="Verdana">persistence), using two parameters (Schelfthout, 2003):</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- Reach is the intensity of the message.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- Persistence is the time the message «hangs in the air».</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">The agents that should get the message are not statically</font> <font SIZE="2" face="Verdana">reachable. They move in the environment, and they only</font> <font SIZE="2" face="Verdana">«hear» the message when they are present at the right time,</font> <font SIZE="2" face="Verdana">and close enough to hear it.</font></p>     ]]></body>
<body><![CDATA[<p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">Basically, the environment consists of a «Communication</font> <font SIZE="2" face="Verdana">Broker» and a «Location Broker». According to the</font> <font SIZE="2" face="Verdana">message’s parameters <i>obtainTargets: void</i>, the Location</font> <font SIZE="2" face="Verdana">Broker selects the agent that hears the message, while the</font> <font SIZE="2" face="Verdana">Communication Broker actually delivers it with message:</font> <font SIZE="2" face="Verdana">void; resultSet : void. Due to the collaboration between the</font> <font SIZE="2" face="Verdana">Location Broker and the Communication Broker, the right</font> <font SIZE="2" face="Verdana">set of agents will receive the message in the right period of</font> <font SIZE="2" face="Verdana">time (Schelfthout, 2003) (<a href="#fig2">figure 2</a>).</font></p>     <p ALIGN="center" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><a name="fig2"><img border="0" src="/img/fbpe/rfiucv/v22n1/art04fig2.jpg" align="center" width="570" height="235"></a></p> <b>     
<p ALIGN="center" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2">Figure 2. </font></b><font face="Verdana" size="2">Structure of the communicator pattern between the mobile agent and the environment.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">A mobile agent-based architecture (Mediator) based on the</font> <font SIZE="2" face="Verdana">mediator pattern and on the mobile agent pattern is proposed</font> <font SIZE="2" face="Verdana">in <a href="#fig3"> figure 3</a> to achieve adaptability. This architecture uses</font> <font SIZE="2" face="Verdana">the planning processes established by architectures 1 and</font> <font SIZE="2" face="Verdana">2, with an optimal adaptation to the contexts of use. It</font> <font SIZE="2" face="Verdana">provides solution to the following adaptability problems:</font></p>     <p ALIGN="center" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><a name="fig3"><img border="0" src="/img/fbpe/rfiucv/v22n1/art03fig3.jpg" align="center" width="456" height="162"></a></p> <b>     
<p ALIGN="center" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2">Figure 3. </font></b><font face="Verdana" size="2">The <i>MEDIATOR </i>architecture.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- Determine the convenient size of IOs.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- Determine the automatic location and distribution of AIOs</font> <font SIZE="2" face="Verdana">within one or multiple windows.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- Determine the adaptation to the different contexts of use</font> <font SIZE="2" face="Verdana">at run-time (dynamic adaptability to the mobile environment).</font></p> <b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">The Mediator architecture is a mobile agent with the</font> </b> <b> <font SIZE="2" face="Verdana">following capabilities:</font></p> </b>     ]]></body>
<body><![CDATA[<p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- Exploit the information on the resource limits of the device.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- Compute the maximal usable display resolution for each</font> <font SIZE="2" face="Verdana">presentation structure.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- Determine the optimal context of use, as a function of its</font> <font SIZE="2" face="Verdana">parameters.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- It is part of the middleware for the mobile network.</font></p> <b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">The basic structure of the Mediator mobile agent is the</font> </b> <b> <font SIZE="2" face="Verdana">following:</font></p> </b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">Mediator is an instance of ConcreteMediator (<a href="#fig1">Figure 1</a>) and</font> <font SIZE="2" face="Verdana">is part of a Multi Agent System (MAS) hub of 3 layers:</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- Intelligent Agents (User Interface Agents)</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- Managing Agent (Coordination Monitoring)</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- Search Agents/Activity</font></p> <b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">Intelligent Agent/User Interface Layer</font></p> </b>     ]]></body>
<body><![CDATA[<p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">The Intelligent Agent (also called User Interface Agent) is a</font> <font SIZE="2" face="Verdana">static agent responsible for displaying the PU on the device.</font> <font SIZE="2" face="Verdana">The clients use the Intelligent Agents which are constituted</font> <font SIZE="2" face="Verdana">by AIOs, CIOs, or concrete LWs. They are defined as the</font> <font SIZE="2" face="Verdana">set of provided actions and required events. For each</font> <font SIZE="2" face="Verdana">intelligent agent we attach an Event/Condition/Action-rules</font> <font SIZE="2" face="Verdana">mechanism in order to react with the other layer (Managing</font> <font SIZE="2" face="Verdana">agents) and the environment and they are responsible of</font> <font SIZE="2" face="Verdana">performing the user interface.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><b><font SIZE="2" face="Verdana">Managing Agents (Coordination Monitoring) Layer</font></p> </b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">The Managing Agent is a static agent responsible for the</font> <font SIZE="2" face="Verdana">generation and transmission of the queries through the</font> <font SIZE="2" face="Verdana">Search Agents.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2">- </font><b><font face="Verdana" size="2">Search Agents Layer:</font></p> </b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">It is responsible for the environment information, the client</font> <font SIZE="2" face="Verdana">information, sent from the Managing Agent to the destination</font> <font SIZE="2" face="Verdana">device. It communicates with other Search Agents to</font> <font SIZE="2" face="Verdana">exchange intermediate data. It sends the result obtained to</font> <font SIZE="2" face="Verdana">the Managing Agent.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2">- </font><b><font face="Verdana" size="2">Environment:</font></p> </b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- The Metadata: The metadata dictionary in the environment</font> <font SIZE="2" face="Verdana">stores all data description and associated information from</font> <font SIZE="2" face="Verdana">several information sources that are used by Intelligent</font> <font SIZE="2" face="Verdana">Agents and Managing Agents (Ngamnij, 2003). It concerns</font> <font SIZE="2" face="Verdana">the data model for each device, the domain family and the</font> <font SIZE="2" face="Verdana">configuration of each information source that are required</font> <font SIZE="2" face="Verdana">by the Search Agents.</font></p> <b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2">- </font></b><font face="Verdana" size="2">Constraint functions: They are declarative approaches with</font> <font face="Verdana" size="2">explanation capabilities, heuristic control, generation and</font> <font face="Verdana" size="2">pruning of alternatives. The CIOs run on the client device</font> <font face="Verdana" size="2">and are associated to events activating the triggers on the</font> <font face="Verdana" size="2">environment database.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- Allocating: use thread allocation to PU, AIOs, CIOs agents</font> <font SIZE="2" face="Verdana">and the communication protocols.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">This architecture is dynamically adaptive to the changes of</font> <font SIZE="2" face="Verdana">the device display and to the platform changes. The enduser</font> <font SIZE="2" face="Verdana">has only to precise the available display size in terms</font> <font SIZE="2" face="Verdana">of resolution measures. The automatic generation of the</font> <font SIZE="2" face="Verdana">presentation structure is performed on a set of alternative</font> <font SIZE="2" face="Verdana">presentation structures and on a set of constraints on the</font> <font SIZE="2" face="Verdana">AIOs groups. The alternative presentation models will be</font> <font SIZE="2" face="Verdana">adapted to a specific mobile platform by decomposing</font> <font SIZE="2" face="Verdana">recursively the tree structure with the composite and simple</font> <font SIZE="2" face="Verdana">AIOs. The relation between the presentation model and the</font> <font SIZE="2" face="Verdana">tasks model is described in (Eisenstein, 2001; Menkhaus,</font> <font SIZE="2" face="Verdana">2002; Eisenstein, 2000). It is assumed that the same set of</font> <font SIZE="2" face="Verdana">tasks is performed for each device. The profile of each device</font> <font SIZE="2" face="Verdana">contains the elements of the execution platform, for example</font> <font SIZE="2" face="Verdana">the display size, the colors supported etc., are mapped on</font> <font SIZE="2" face="Verdana">the high level elements of the task model. The tasks are</font> <font SIZE="2" face="Verdana">mapped on the elements of the presentation model to be</font> <font SIZE="2" face="Verdana">executed.</font></p>     ]]></body>
<body><![CDATA[<p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">The Mediator mobile agent, based on the architectures</font> <font SIZE="2" face="Verdana">described previously, determines an optimal user interface</font> <font SIZE="2" face="Verdana">(best fitted to the runtime platform constraints). In Section</font> <font SIZE="2" face="Verdana">4, this assumption will be justified (Gamma, 1995; Mediator,</font> <font SIZE="2" face="Verdana">2002) on the basis of the quality properties accomplished.</font> <font SIZE="2" face="Verdana">This pattern promotes loose coupling by keeping the objects</font> <font SIZE="2" face="Verdana">from directly referring or even contact each other. If all signals</font> <font SIZE="2" face="Verdana">or messages are first sent through a mediator, to change the</font> <font SIZE="2" face="Verdana">behavior of the entire system would basically consist of</font> <font SIZE="2" face="Verdana">changing the methods within the mediator class. The</font> <font SIZE="2" face="Verdana">mediator is a class whose objects at runtime are responsible</font> <font SIZE="2" face="Verdana">for controlling and coordinating the interactions of a group</font> <font SIZE="2" face="Verdana">of other objects (Raj, 2002). The level of reuse for highly</font> <font SIZE="2" face="Verdana">communicative objects will increase with the localization</font> <font SIZE="2" face="Verdana">and changing of common tasks into Mediator subclasses</font> <font SIZE="2" face="Verdana">rather than Colleague classes (Raj, 2002).</font></p> <b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">Benefits of Mediator</font></p> </b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">1. Provide optimal interfaces to the different mobile platforms</font> <font SIZE="2" face="Verdana">at runtime.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">2. Promote a high level of reusability. Code reuse for the</font> <font SIZE="2" face="Verdana">migration of mobile applications to mobile platforms device,</font> <font SIZE="2" face="Verdana">specifically when domain applications are huge.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">3. Exploit the information on the resource limits of the device,</font> <font SIZE="2" face="Verdana">due to the centralized flow of information following</font> <font SIZE="2" face="Verdana">established constraints on the mobile platform in use.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">4. Reduce the application load introducing mediation,</font> <font SIZE="2" face="Verdana">translation and interaction services (Gamma, 1959). the</font> <font SIZE="2" face="Verdana">mediation between the platforms and the application is agent</font> <font SIZE="2" face="Verdana">function and translation to the mobile platforms the optimal</font> <font SIZE="2" face="Verdana">interfaces.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">5. Improve the system structure. Splitting up the system in</font> <font SIZE="2" face="Verdana">this way creates a better understanding of the objects in the</font> <font SIZE="2" face="Verdana">system: how they interact and how they are structured, since</font> <font SIZE="2" face="Verdana">all objects are bundled into one class (Raj, 2002). Different</font> <font SIZE="2" face="Verdana">optimal views of presentations for each platform are</font> <font SIZE="2" face="Verdana">obtained.</font></p> <b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">Mediator vs. Related patterns</font></p> </b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">Similar to the observer pattern, where related objects need</font> <font SIZE="2" face="Verdana">to communicate; in the observer a change in one object (the</font> <font SIZE="2" face="Verdana">subject) will sometimes require other objects (observers) to</font> <font SIZE="2" face="Verdana">be updated and the update is explicitly coded in the subject;</font> <font SIZE="2" face="Verdana">this relation requires knowledge about how the observers</font> <font SIZE="2" face="Verdana">should be updated. In Mediator, a change in one object</font> <font SIZE="2" face="Verdana">generates changes only in the inferior subclasses, minimizing</font> <font SIZE="2" face="Verdana">the knowledge shared between the colleague objects. The</font> <font SIZE="2" face="Verdana">observer is applicable with good results when the updates</font> <font SIZE="2" face="Verdana">are not independent. Encapsulating these aspects in</font> <font SIZE="2" face="Verdana">separate objects will increase the chance of reusing them</font> <font SIZE="2" face="Verdana">independently. Mediator or does not need to consider PU</font> <font SIZE="2" face="Verdana">dependencies among the colleague objects. Mediator</font> <font SIZE="2" face="Verdana">exhibits properties of both bridges and wrappers. The major</font> <font SIZE="2" face="Verdana">distinction from bridges and wrappers, however is that</font> <font SIZE="2" face="Verdana">Mediator incorporates a planning function that in effect</font> <font SIZE="2" face="Verdana">results in runtime determination of the translation (recall</font> <font SIZE="2" face="Verdana">that bridges establish this translation when the bridge is</font> <font SIZE="2" face="Verdana">constructed) (Bass, 1998). The translation process needs to</font> <font SIZE="2" face="Verdana">exploit the information on the device resource limits and</font> <font SIZE="2" face="Verdana">compute the maximal usable display resolution for the</font> <font SIZE="2" face="Verdana">presentation structure of the platform in use. The planning</font> <font SIZE="2" face="Verdana">function (located into Intelligent Agent) with its parameters</font> <font SIZE="2" face="Verdana">makes the choice of optimal user interfaces.</font></p> <b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">IMPLEMENTATION CONSIDERATIONS</font></p> </b>     ]]></body>
<body><![CDATA[<p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">ConcreteMediator is a subclass of Mediator. Mediator is an</font> <font SIZE="2" face="Verdana">instance of ConcreteMediator as shown in <a href="#fig4"> figure 4</a>, where</font> <font SIZE="2" face="Verdana">an example with two concrete presentations UPConcrete1</font> <font SIZE="2" face="Verdana">and UPConcrete2 is presented. The ConcreteColleague</font> <font SIZE="2" face="Verdana">number of classes will depend on the number of presentation</font> <font SIZE="2" face="Verdana">models for each specific platform.</font></p>     <p ALIGN="center" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><a name="fig4"><img border="0" src="/img/fbpe/rfiucv/v22n1/art04fig4.jpg" align="center" width="468" height="427"></a></p>     
<p ALIGN="center" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><b><font face="Verdana" size="2">Figure 4. </font></b><font face="Verdana" size="2"><i>Mediator </i>pattern showing two concrete presentations.</font></p> <b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">Mediator basic behavior</font></p> </b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">Communication between Mediator and the mobile device:</font> <font SIZE="2" face="Verdana">XML and Java are well suited interface modeling languages</font> <font SIZE="2" face="Verdana">because they are declarative and independent from the</font> <font SIZE="2" face="Verdana">platforms (Eisenstein, 2000) as shown in <a href="#fig5"> figure 5</a>: XML will</font> <font SIZE="2" face="Verdana">be used as follows in the communication process:</font></p>     <p ALIGN="center" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><a name="fig5"><img border="0" src="/img/fbpe/rfiucv/v22n1/art04fig5.jpg" align="center" width="559" height="515"></a></p>     
<p ALIGN="center" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><b><font face="Verdana" size="2">Figure 5. </font></b><font face="Verdana" size="2">UML Sequence Diagram of Communication between Mediator and device.</font></p> <b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">JUSTIFYING ARCHITECTURAL SOLUTIONS FOR</font> </b> <b> <font SIZE="2" face="Verdana">THE ADAPTIVE USER INTERFACE</font></p> </b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">In the previous section we have discussed the basic</font> <font SIZE="2" face="Verdana">elements involved in the UI component and some of the</font> <font SIZE="2" face="Verdana">architectural solutions. The architecture based on the</font> <font SIZE="2" face="Verdana">mediator pattern has been proposed in the literature as an</font> <font SIZE="2" face="Verdana">acceptable solution adopted by practitioners on a previous</font> <font SIZE="2" face="Verdana">experience (Vanderdonckt, 2001). In what follows, this choicewill be justified studying the quality properties enhanced</font> <font SIZE="2" face="Verdana">by this solution. In our approach, the architecture is</font> <font SIZE="2" face="Verdana">considered as a problem-solution pair (Lévy, 2004), hence</font> <font SIZE="2" face="Verdana">we have to identify the problem part by defining it in terms</font> <font SIZE="2" face="Verdana">of its functional and non functional requirements, define</font> <font SIZE="2" face="Verdana">the quality model (Iso/Iec, 2001) related with the problem</font> <font SIZE="2" face="Verdana">domain and study the choices that have been made to select</font> <font SIZE="2" face="Verdana">the architectural configuration as a solution. These choices</font> <font SIZE="2" face="Verdana">are driven by the quality properties related with the problem’s</font> <font SIZE="2" face="Verdana">requirements. Our approach is now also considered by the</font> <font SIZE="2" face="Verdana">Aspect Oriented Software Design (AOSD) paradigm where</font> <font SIZE="2" face="Verdana">the crosscutting concerns which are in general quality</font> <font SIZE="2" face="Verdana">properties derived from software requirements (Brito, 2003),must be taken into account very early in order to improve</font> <font SIZE="2" face="Verdana">the overall system structure. The architecture is a software</font> <font SIZE="2" face="Verdana">artifact where these issues must be taken into account.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">Architectures are the baseline on which a software system</font> <font SIZE="2" face="Verdana">is articulated. They are solutions to particular problems</font> <font SIZE="2" face="Verdana">described in detail, without ambiguity, and organized so</font> <font SIZE="2" face="Verdana">that they can be understood and reused (Gamma, 1995).</font> <font SIZE="2" face="Verdana">The transition from one abstraction level to another is not</font> <font SIZE="2" face="Verdana">straightforward. The Model Driven Architecture (MDA)</font> <font SIZE="2" face="Verdana">approach (Mda, 2001) is an attempt to fill this gap. Methodshave been developed for architectural design (Bosch, 2000;Clements, 2002) and this step is now included in generalsoftware development frameworks (Clements, 2002). On the</font> <font SIZE="2" face="Verdana">other hand, all these methods consider that non functional</font> <font SIZE="2" face="Verdana">requirements are crucial for architectural design, especially</font> <font SIZE="2" face="Verdana">when the application must respond to critical issues and to</font> <font SIZE="2" face="Verdana">a changing environment. However, their specification is very</font> <font SIZE="2" face="Verdana">often only superficially considered.</font></p>     ]]></body>
<body><![CDATA[<p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">In what follows, the problem is expressed in terms of its</font> <font SIZE="2" face="Verdana">functional and non functional requirements.</font></p> <b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">Problem: build context adaptive user interface</font></p> </b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">The considered problem consists in building user interfaces</font> <font SIZE="2" face="Verdana">that reconfigure dynamically to the context of use of a mobile</font> <font SIZE="2" face="Verdana">device in a wireless network environment.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">From the previous section, the main concerns faced by user</font> <font SIZE="2" face="Verdana">interface designers in wireless application development</font> <font SIZE="2" face="Verdana">(MOTI, 2004; IBM, 1999) are:</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- Limited bandwidth: A wireless device typically has much</font> <font SIZE="2" face="Verdana">less bandwidth available for transmitting and receiving data</font> <font SIZE="2" face="Verdana">than a wired device.</font> <font SIZE="2" face="Verdana">Intermittent connection: The connection to a wireless device</font> <font SIZE="2" face="Verdana">is typically unreliable. A persistent point-to-point connection</font> <font SIZE="2" face="Verdana">is difficult, if not impossible.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- Limited battery life: A wireless device is typically (also) a</font> <font SIZE="2" face="Verdana">mobile device. Since mobility dictates compactness in size,and since there is no wired power connection, batteries are</font> <font SIZE="2" face="Verdana">the only means of power supply. Even the longest lasting</font> <font SIZE="2" face="Verdana">batteries offer a very limited amount of power.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- Limited memory on client device: Once again, because of</font> <font SIZE="2" face="Verdana">the mobile nature of wireless devices and their requirements</font> <font SIZE="2" face="Verdana">to remain a small size, room for memory is limited. Memory is</font> <font SIZE="2" face="Verdana">also limited by the available power source (batteries) on the</font> <font SIZE="2" face="Verdana">device.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- Limited CPU: Because of the size of the devices and the</font> <font SIZE="2" face="Verdana">battery life, processing information on the device is very</font> <font SIZE="2" face="Verdana">expensive. Very few operations should be performed on the</font> <font SIZE="2" face="Verdana">device and they should be only performed where there is</font> <font SIZE="2" face="Verdana">strong justification for them.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- Limited user interface devices: A keyboard and/or a mouse</font> <font SIZE="2" face="Verdana">are normally not available for a wireless or a mobile device.</font> <font SIZE="2" face="Verdana">Also, the display is almost always very small. This makes</font> <font SIZE="2" face="Verdana">viewing and data entry more difficult.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">These concerns indicate that minimization of resource</font> <font SIZE="2" face="Verdana">consumption is a mandatory concern that can be measured</font> <font SIZE="2" face="Verdana">using the efficiency quality property.</font></p>     ]]></body>
<body><![CDATA[<p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">In consequence, from the analysis of the above concerns</font> <font SIZE="2" face="Verdana">we are able to state the following non functional</font> <font SIZE="2" face="Verdana">requirements for the software system.</font></p> <b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">Non functional requirements</font></p> </b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- Resource use minimization (battery life, data storage,</font> <font SIZE="2" face="Verdana">display size, etc.).</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- Data must be transmitted completely, consistently and</font> <font SIZE="2" face="Verdana">correctly, with transient connections (in spite of network</font> <font SIZE="2" face="Verdana">failures).</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- Limited data transmission time. Convenient range of</font> <font SIZE="2" face="Verdana">response time.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- Handle changes in communications among dynamic or</font> <font SIZE="2" face="Verdana">static components.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- Notice that the above non functional requirements are</font> <font SIZE="2" face="Verdana">constrained related to the problem domain environment,</font> <font SIZE="2" face="Verdana">where the software system will be executing. They indirectly</font> <font SIZE="2" face="Verdana">affect the system architecture.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- Centralized solution, due to the presence of the middleware.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- Handle reconfiguration of interfaces.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">These two non functional requirements are directly related</font> <font SIZE="2" face="Verdana">with the system architecture.</font></p> <b>     ]]></body>
<body><![CDATA[<p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">Business rules</font></p> </b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">They identify requirements such as company policy or rules</font> <font SIZE="2" face="Verdana">that must be considered by the software system.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- Established network communication protocols and</font> <font SIZE="2" face="Verdana">bandwidth.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">Requirements may be seen in general as main «goals» that</font> <font SIZE="2" face="Verdana">the system must accomplish. In fact, due to a changing</font> <font SIZE="2" face="Verdana">environment, the context may change in such a way that the</font> <font SIZE="2" face="Verdana">putting into operation of the goal is no longer valid. In this</font> <font SIZE="2" face="Verdana">sense requirements may be seen as trade-offs between thegoals and the actual reality. For example, a goal for a service</font> <font SIZE="2" face="Verdana">may be to provide for a highly interactive user experience. If</font> <font SIZE="2" face="Verdana">the context is favorable (high bandwidth, large color display,</font> <font SIZE="2" face="Verdana">Java Virtual Machine available, etc.), the goal is translated</font> <font SIZE="2" face="Verdana">into the service «use a Java applet to represent the shopping</font> <font SIZE="2" face="Verdana">basket» (Finkestein, 2004).</font></p> <b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">Functional requirements</font></p> </b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- Users install/uninstall applications (services) on the mobile</font> <font SIZE="2" face="Verdana">device. A service may be installed or uninstalled over a</font> <font SIZE="2" face="Verdana">device by a user because he explicitly requests it. The data</font> <font SIZE="2" face="Verdana">displayed by the required service must be attractive to the</font> <font SIZE="2" face="Verdana">user. Services must be related to the user rather than to a</font> <font SIZE="2" face="Verdana">specific device, or specific location. (User Oriented Services)</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">- Code and data are downloaded/uploaded from/to the server</font> <font SIZE="2" face="Verdana">and stored locally on the mobile device. Data must be</font> <font SIZE="2" face="Verdana">completely and correctly transmitted<b>. </b>Messages and datafrom the server are downloaded and stored locally. In apervasive computing environment, there are various waysof accessing different types of data according to differentusers needs. A combination of code and data mobility should</font> <font SIZE="2" face="Verdana">enable to construct a flexible data model. (Data</font> <font SIZE="2" face="Verdana">Management).</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">When the service is running, the adaptive user interface is</font> <font SIZE="2" face="Verdana">automatically and contextually reconfigured for thisenvironment. Failure can be caused by the user resource</font> <font SIZE="2" face="Verdana">scarcity (battery, memory, etc.) or by disconnection</font> <font SIZE="2" face="Verdana">(connection fails). Client-dependent adaptability such as a</font> <font SIZE="2" face="Verdana">changing environment requires the dynamicity of the user</font> <font SIZE="2" face="Verdana">interface component in applications, i.e. to dynamically</font> <font SIZE="2" face="Verdana">change according to the user’s device configuration.</font> <font SIZE="2" face="Verdana">Automatic contextual reconfiguration is a process of adding</font> <font SIZE="2" face="Verdana">new components, removing existing components, or altering</font> <font SIZE="2" face="Verdana">the connections between components due to context</font> <font SIZE="2" face="Verdana">changes.</font></p> <b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">Quality model and architectural solutions</font></p> </b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">According to the domain of context adaptive user interface</font> <font SIZE="2" face="Verdana">in a mobile environment (Lévy, 2004) and the requirements</font> <font SIZE="2" face="Verdana">stated above, the following internal and external quality</font> <font SIZE="2" face="Verdana">properties, specified according to (Iso/Iec, 2001), characterizethis domain and constitute its quality model: Reliability</font> <font SIZE="2" face="Verdana">(availability, consistency), Functionality (security for data</font> <font SIZE="2" face="Verdana">access control), Efficiency (performance with respect toresources utilization, response time), Maintainability(changeability with respect to the execution environment,scalability to adopt the device resources), Portability(adaptability, replaceability), Usability (attractiveness,</font> <font SIZE="2" face="Verdana">operability).</font></p>     ]]></body>
<body><![CDATA[<p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana"><a href="#tab1">Table 1</a> shows the direct relation between the adaptive user</font> <font SIZE="2" face="Verdana">interface quality properties, expressed in the quality model</font> <font SIZE="2" face="Verdana">and the non functional requirements, that is to say thequality that each requirement should accomplish. Notice</font> <font SIZE="2" face="Verdana">that the metrics for each quality property are given at</font> <font SIZE="2" face="Verdana">architectural design level, i.e. at a high abstraction level.</font> <font SIZE="2" face="Verdana">They must be provided very early in the developmentprocess and are meant as broad guidelines to document</font> <font SIZE="2" face="Verdana">decisions that can be shared by all stakeholders for a</font> <font SIZE="2" face="Verdana">common understanding on the software project.</font></p>     <p ALIGN="center" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><b><font face="Verdana" size="2"><a name="tab1">Table 1.</a> </font></b><font face="Verdana" size="2">Non functional requirements, quality properties and proposed architectural solutions for each requirement</font></p>     <p ALIGN="center" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><img border="0" src="/img/fbpe/rfiucv/v22n1/art04tab1.jpg" align="center" width="572" height="545"></p>     
<p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana"><a href="#tab2">Table 2</a> shows possible architectural solutions or design</font> <font SIZE="2" face="Verdana">patterns used to solve each functionality responding to a</font> <font SIZE="2" face="Verdana">precise quality property.</font></p>     <p ALIGN="center" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><b><font face="Verdana" size="2"><a name="tab2">Table 2.</a> </font></b><font face="Verdana" size="2">Quality properties and proposed architectural solution for each functionality</font></p>     <p ALIGN="center" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><img border="0" src="/img/fbpe/rfiucv/v22n1/art04tab2.jpg" align="center" width="570" height="763"></p> <b>     
<p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">CASE STUDY</font></p> </b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">Device-based mobile applications are developed using</font> <font SIZE="2" face="Verdana">technologies such as Java 2 Platform Micro Edition (J2ME)</font> <font SIZE="2" face="Verdana">of Sun Microsystems, which support a range of PDA</font> <font SIZE="2" face="Verdana">(Personal Digital Assistant), smart phones and other mobiledevices. In terms of advantages, device-based mobileapplications provide sophisticated interaction styles beyondthe simple navigation model of web based applications. Theyalso offer a more immediate experience since they are not so</font> <font SIZE="2" face="Verdana">heavily bound by request/response cycles inherent in webbaseddesign. Furthermore, such applications can be usedoffline, with information synchronized with the server uponconnection and disconnection. Disadvantages include theneed for more sophisticated devices, more costly</font> <font SIZE="2" face="Verdana">development and deployment (since existing web-based</font> <font SIZE="2" face="Verdana">applications cannot be readily ported to device based ones),</font> <font SIZE="2" face="Verdana">additional user configuration, and problems with client-sideincompatibilities. Note that device-based mobile</font> <font SIZE="2" face="Verdana">applications can be used in conjunction with web-based</font> <font SIZE="2" face="Verdana">mobile applications. The case study selected to illustrateour approach is taken from a real application in the e-banking</font> <font SIZE="2" face="Verdana">domain. We only present here the case of an account</font> <font SIZE="2" face="Verdana">summary services problem. In particular, let us consider that</font> <font SIZE="2" face="Verdana">a bank client has a few accounts and want an account</font> <font SIZE="2" face="Verdana">summary, according to his location and preferences. The</font> <font SIZE="2" face="Verdana">user wants interaction with the services from different</font> <font SIZE="2" face="Verdana">devices viewing the account summary in a quickly, easy</font> <font SIZE="2" face="Verdana">and secure way. The use case model for the</font> <font SIZE="2" face="Verdana">AccountSummary functionality is shown in <a href="#fig6"> figure 6</a>.</font></p>     <p ALIGN="center" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><a name="fig6"><img border="0" src="/img/fbpe/rfiucv/v22n1/art04fig6.jpg" align="center" width="536" height="132"></a></p> <b>     
<p ALIGN="center" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2">Figure 6. </font></b><font face="Verdana" size="2">Use case Model for Account Summary.</font></p> <b>     ]]></body>
<body><![CDATA[<p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">Functional requirements for AccountSummary</font></p> </b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">1. Users install/uninstall AccountSummary Services on the</font> <font SIZE="2" face="Verdana">mobile device. A service may be installed or uninstalled over</font> <font SIZE="2" face="Verdana">a device by a user because he explicitly requests it. (User-</font> <font SIZE="2" face="Verdana">Oriented Services)</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">2. The data must be attractively displayed by the required</font> <font SIZE="2" face="Verdana">AccountSummary Service (User-Oriented Services)</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">3. Code and data are downloaded/uploaded from/to the</font> <font SIZE="2" face="Verdana">server and stored locally on the mobile device. (Data</font> <font SIZE="2" face="Verdana">Management)</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">4. Data must be completely and correctly transmitted. (Data</font> <font SIZE="2" face="Verdana">Management)</font></p> <b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">Non functional requirements for AccountSummary</font></p> </b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">1. Resource use minimization (battery life, data storage,</font> <font SIZE="2" face="Verdana">display size, etc.).</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">2. Data must be transmitted completely, consistently and</font> <font SIZE="2" face="Verdana">correctly, with transient connections (in spite of network</font> <font SIZE="2" face="Verdana">failures).</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">3. Limited data transmission time. Convenient range of</font> <font SIZE="2" face="Verdana">response time.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">4. Handle changes in communications among dynamic or</font> <font SIZE="2" face="Verdana">static components.</font></p>     ]]></body>
<body><![CDATA[<p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">5. Centralized solution, due to the presence of the middleware.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">6. Dynamic reconfiguration of interfaces.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">7. The AccountSummary Service must be secure from the</font> <font SIZE="2" face="Verdana">user requirement in the problem definition.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">The quality properties related to the global configuration</font> <font SIZE="2" face="Verdana">shown in <a href="#fig7"> figure 7</a> are due to the user requirements stated</font> <font SIZE="2" face="Verdana">above: Efficiency, Portability Security and Usability. To</font> <font SIZE="2" face="Verdana">provide an architectural solution to the problem of the</font> <font SIZE="2" face="Verdana">AccountSummary, several components are introduced to</font> <font SIZE="2" face="Verdana">respond to specific quality properties: the component User-Oriented Services must respond to Usability (attractiveness,operability), Maintainability (scalability), Reliability (faulttolerance)</font> <font SIZE="2" face="Verdana">and Security; Data management must respond to</font> <font SIZE="2" face="Verdana">Reliability (consistency) and Efficiency (response time).</font></p>     <p ALIGN="center" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><a name="fig7"><img border="0" src="/img/fbpe/rfiucv/v22n1/art04fig7.jpg" align="center" width="578" height="366"></a></p> <b>     
<p ALIGN="center" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2">Figure 7. </font></b><font face="Verdana" size="2">Summary Account in Mobile Device.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">When the User-Oriented Services is running, the adaptive</font> <font SIZE="2" face="Verdana">user interface and the Security Server have the environment</font> <font SIZE="2" face="Verdana">parameters (<a href="#fig8">figure 8</a>). The GUI/Client-Side component is</font> <font SIZE="2" face="Verdana">introduced in response to Usability (attractiveness) and theSecurity Server component is introduced in response to</font> <font SIZE="2" face="Verdana">Security and Reliability (fault-tolerance). The Middlewarecomponent is then introduced to guarantee Efficiency and</font> <font SIZE="2" face="Verdana">Reliability (availability) in the communication, due to theCentralized solution model. Moreover it fulfills the</font> <font SIZE="2" face="Verdana">Maintainability (Scalability, Changeability) property. The</font> <font SIZE="2" face="Verdana">Data Bank Server component is a solution introduced fordata management for reliability (consistency); however, it</font> <font SIZE="2" face="Verdana">involves also security, which is a crosscutting concern since</font> <font SIZE="2" face="Verdana">it is also required by the GUI-Client Side, as shown in <a href="#fig8"> figure</a></font><a href="#fig8"> <font SIZE="2" face="Verdana">8</font></a><font SIZE="2" face="Verdana">.</font></p>     <p ALIGN="center" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><a name="fig8"><img border="0" src="/img/fbpe/rfiucv/v22n1/art04fig8.jpg" align="center" width="578" height="372"></a></p> <b>     
<p ALIGN="center" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2">Figure 8. </font></b><font face="Verdana" size="2">Balance account view.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">The mediator mobile agent is dynamically adaptive to the</font> <font SIZE="2" face="Verdana">changes of the device display and the platform. According</font> <font SIZE="2" face="Verdana">to <a href="#tab1"> Table 1</a>, Dynamic Reconfiguration of Interfaces mustaccomplish Portability (Adaptability, Replaceability),</font> <font SIZE="2" face="Verdana">Maintainability (Scalability, Changeability). Since the Data</font> <font SIZE="2" face="Verdana">Bank Server requires Security, a new Security component is</font> <font SIZE="2" face="Verdana">introduced, as shown in <a href="#fig9"> figure 9</a>.</font></p>     ]]></body>
<body><![CDATA[<p ALIGN="center" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><a name="fig9"><img border="0" src="/img/fbpe/rfiucv/v22n1/art04fig9.jpg" align="center" width="575" height="299"></a></p> <b>     
<p ALIGN="center" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2">Figure 9. </font></b><font face="Verdana" size="2">Balance account view with GUI.</font></p>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">To obtain the final architectural configuration for the</font> <font SIZE="2" face="Verdana">AccountSummary Services problem, we have to justify the</font> <font SIZE="2" face="Verdana">quality properties specified in the global configuration tag</font> <font SIZE="2" face="Verdana">and the properties on the communication between Mediator</font> <font SIZE="2" face="Verdana">and Bank Data Server (<a href="#fig9">figure 9</a>). On the one hand, with</font> <font SIZE="2" face="Verdana">regard to the efficiency and reliability of the communication,</font> <font SIZE="2" face="Verdana">the respective protocol will be responsible. On the other</font> <font SIZE="2" face="Verdana">hand, in the end, architectural portability is guaranteed by</font> <font SIZE="2" face="Verdana">the Mediator middleware, efficiency by the communication</font> <font SIZE="2" face="Verdana">protocol, security by the client-side Security Server and the</font> <font SIZE="2" face="Verdana">Bank Security Server and finally usability by the GUI clientside</font> <font SIZE="2" face="Verdana">component. Notice that, according to an AOSD</font> <font SIZE="2" face="Verdana">approach (Brito, 2003) we can think of having only one</font> <font SIZE="2" face="Verdana">Security component concentrating the security concerns</font> <font SIZE="2" face="Verdana">of the Client Side and Bank Data Server, to optimize the final</font> <font SIZE="2" face="Verdana">architectural configuration.</font></p> <b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">CONCLUSION</font></p> </b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">An architectural solution for adaptive user interfaces based</font> <font SIZE="2" face="Verdana">on the mediator design pattern has been proposed,</font> <font SIZE="2" face="Verdana">characterized and justified on the basis of the quality</font> <font SIZE="2" face="Verdana">properties issued from the system requirements. These</font> <font SIZE="2" face="Verdana">properties are specified by a standard quality model (Iso/</font> <font SIZE="2" face="Verdana">Iec, 2001), where high level metrics for architectural design</font> <font SIZE="2" face="Verdana">have been defined; they can be used to justify thearchitectural choices on more solid bases than the usualexperience bases. The components and connections of the</font> <font SIZE="2" face="Verdana">different architectural configurations incrementally</font> <font SIZE="2" face="Verdana">obtained, have been selected and justified on these bases.</font> <font SIZE="2" face="Verdana">This documentation favors a common understanding for</font> <font SIZE="2" face="Verdana">the stakeholders involved in the software project. A future</font> <font SIZE="2" face="Verdana">research trend is to generalize our approach to context aware</font> <font SIZE="2" face="Verdana">applications including explicitly AOSD issues.</font></p> <b>     <p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font SIZE="2" face="Verdana">REFERENCES</font></p> </b>     <!-- ref --><p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2">1. BASS L., (1998): Clements P., Kazman R. Software Architecture</font> <font face="Verdana" size="2">in Practice. pp. 337-344.</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1845776&pid=S0798-4065200700010000400001&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2">2. BOND G., (2002): «Research Methods Lecture». <a href="http://www.psynt.iupui.edu/gbond/gbond/I643%20Design%20241/index.htm"> http://www.psynt.iupui.edu/gbond/gbond/I643%20Design%20241/index.htm</a>.</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1845777&pid=S0798-4065200700010000400002&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2">3. BOSCH J., (2000): «Design and Use of Software Architecture»,</font> <font face="Verdana" size="2">Addison Wesley, Harlow, England.</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1845778&pid=S0798-4065200700010000400003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2">4. BRITO I, MOREIRA A., (2003): Towards a Composition Process</font> <font face="Verdana" size="2">for Aspect-Oriented Requirements, Early Aspects</font> <font face="Verdana" size="2">Workshop (AOSD Conference), Boston, USA.</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1845779&pid=S0798-4065200700010000400004&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2">5. CLEMENTS P., KAZMAN R., KLEIN M., (2002): «Evaluating</font> <font face="Verdana" size="2">Software Architecture Methods and Case Studies». SEI</font> <font face="Verdana" size="2">Series in Software Engineering. Addison-Wesley.</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1845780&pid=S0798-4065200700010000400005&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2">6. COUTAZ J., BASS L., (1991): «Developing Software for the User</font> <font face="Verdana" size="2">Interface» Addison Wesley Cummings Publishing</font> <font face="Verdana" size="2">Company.</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1845781&pid=S0798-4065200700010000400006&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2">7. EISENSTEIN J., VANDERDONCKT J., PUERTA A. «Adapting to</font> <font face="Verdana" size="2">Mobile Contexts with User-Interface Modeling».</font> <font face="Verdana" size="2">Proceedings of the Third IEEE Workshop on Mobile</font> <font face="Verdana" size="2">Computing Systems and Applications (WMCSA’00).</font> <font face="Verdana" size="2"><a href="http://www.ximl.org/documents/XIMLMobile.pdf">http://www.ximl.org/documents/XIMLMobile.pdf</a></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1845782&pid=S0798-4065200700010000400007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2">8. EISENSTEIN J., VANDERDONCKT J., PUERTA A., (2001): «Applying</font> <font face="Verdana" size="2">Model-Based Techniques to the Development of Uis for</font> <font face="Verdana" size="2">Mobile Computers». <a href="http://www.ximl.org/documents/XIMLMultiChannel.pdf"> http://www.ximl.org/documents/XIMLMultiChannel.pdf</a></font><font face="Verdana" size="2">. January</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1845783&pid=S0798-4065200700010000400008&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2">9. FINKESTEIN A., SAVIGNI A., (2004): «A Framework for</font> <font face="Verdana" size="2">Requirements Engineering for Context Aware Services».</font> <font face="Verdana" size="2"><a href="http://www.cin.ufpe.br/~straw01/epapers/paper14/paper14.html">http://www.cin.ufpe.br/~straw01/epapers/paper14/paper14.html</a>.</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1845784&pid=S0798-4065200700010000400009&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2">10. GAMMA E., HELM R., JOHNSON R., VLISSIDES J., (1995): «Design</font> <font face="Verdana" size="2">patterns Elements of Reusable Object Oriented</font> <font face="Verdana" size="2">Software». Addison Wesley, New York.</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1845785&pid=S0798-4065200700010000400010&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2">11. GENESERETH M., KETCHPEL R., (1994): S.P. Software agents.</font> <font face="Verdana" size="2">Communications of the ACM 37(7) (1994) pp. 48–53.</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1845786&pid=S0798-4065200700010000400011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2">12. GÓMEZ R., (2001): Agentes Móviles y CORBA. <a href="http://www.fie.us.es/~ramon/tesis/CORBA/Seminario-MASIF/"> http://www.fie.us.es/~ramon/tesis/CORBA/Seminario-MASIF/</a></font> <font face="Verdana" size="2">. Barcelona.</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1845787&pid=S0798-4065200700010000400012&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2">13. IBM SYSTEMS JOURNAL «Pervasive Computing»,</font> <font face="Verdana" size="2">(1999),Volume 38, Number 4, .</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1845788&pid=S0798-4065200700010000400013&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2">14. KRUTCHEN KRUTCHEN P., (1999): The Rational Unified Process,</font> <font face="Verdana" size="2">Addison Wesley, Reading, Massachusetts.</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1845789&pid=S0798-4065200700010000400014&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2">15. ISO/IEC ISO/IEC 9126-1. Software Engineering - Product</font> <font face="Verdana" size="2">Quality. Part 1: Quality Model, 2001.</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1845790&pid=S0798-4065200700010000400015&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2">16. LÉVY N., LOSAVIO F., (2004): «Architectural Choices for</font> <font face="Verdana" size="2">Dependable Systems». WADS, 26th ICSE, May.</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1845791&pid=S0798-4065200700010000400016&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2">17. LOSAVIO F., MATTEO A., ORDAZ O., MEZA O., GONTIER W., (1994):</font> <font face="Verdana" size="2">«An implementation of the PAC Architecture using</font> <font face="Verdana" size="2">ObjectOriented Techniques», IFIP Transactions, Volume:</font> <font face="Verdana" size="2">2 , No. 1 Elsevier Science B.H. (North Holland) pp. 149-</font> <font face="Verdana" size="2">155.</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1845792&pid=S0798-4065200700010000400017&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p ALIGN="justify" style="word-spacing: 0; line-height: 100%; margin-bottom: 0"><font face="Verdana" size="2">18. LUYTEN K., CONINX K., (2001): «An XML-based runtime user</font> <font face="Verdana" size="2">interface description languaje for mobile computing</font> <font face="Verdana" size="2">devices». <a href="http://xml.coverpages.org/LuytenDSVIS2001.pdf"> http://xml.coverpages.org/LuytenDSVIS2001.pdf</a></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=1845793&pid=S0798-4065200700010000400018&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> ]]></body>
<back>
<ref-list>
<ref id="B1">
<label>1</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[BASS]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
<name>
<surname><![CDATA[Clements]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Kazman]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<source><![CDATA[Software Architecture in Practice]]></source>
<year>1998</year>
<page-range>337-344</page-range></nlm-citation>
</ref>
<ref id="B2">
<label>2</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[BOND]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
</person-group>
<source><![CDATA[«Research Methods Lecture»]]></source>
<year>2002</year>
</nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[BOSCH]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<source><![CDATA[«Design and Use of Software Architecture»]]></source>
<year>2000</year>
<publisher-loc><![CDATA[Harlow ]]></publisher-loc>
<publisher-name><![CDATA[Addison Wesley]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[BRITO]]></surname>
<given-names><![CDATA[I]]></given-names>
</name>
<name>
<surname><![CDATA[MOREIRA]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<source><![CDATA[Towards a Composition Process for Aspect-Oriented Requirements]]></source>
<year>2003</year>
<conf-name><![CDATA[ Early Aspects Workshop (AOSD Conference)]]></conf-name>
<conf-loc> </conf-loc>
<publisher-loc><![CDATA[Boston ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B5">
<label>5</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[CLEMENTS]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[KAZMAN]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[KLEIN]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<source><![CDATA[«Evaluating Software Architecture Methods and Case Studies»]]></source>
<year>2002</year>
<publisher-name><![CDATA[Addison-Wesley]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B6">
<label>6</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[COUTAZ]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[BASS]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
</person-group>
<source><![CDATA[«Developing Software for the User Interface»]]></source>
<year>1991</year>
<publisher-name><![CDATA[ddison Wesley Cummings Publishing Company]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B7">
<label>7</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[EISENSTEIN]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[VANDERDONCKT]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[PUERTA]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<source><![CDATA[«Adapting to Mobile Contexts with User-Interface Modeling»]]></source>
<year></year>
<conf-name><![CDATA[ Proceedings of the Third IEEE Workshop on Mobile Computing Systems and Applications (WMCSA’00)]]></conf-name>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
<ref id="B8">
<label>8</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[EISENSTEIN]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[VANDERDONCKT]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[PUERTA]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<source><![CDATA[«Applying Model-Based Techniques to the Development of Uis for Mobile Computers»]]></source>
<year>2001</year>
</nlm-citation>
</ref>
<ref id="B9">
<label>9</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[FINKESTEIN]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[SAVIGNI]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<source><![CDATA[«A Framework for Requirements Engineering for Context Aware Services»]]></source>
<year>2004</year>
</nlm-citation>
</ref>
<ref id="B10">
<label>10</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[GAMMA]]></surname>
<given-names><![CDATA[E]]></given-names>
</name>
<name>
<surname><![CDATA[HELM]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[JOHNSON]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[VLISSIDES]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<source><![CDATA[«Design patterns Elements of Reusable Object Oriented Software»]]></source>
<year>1995</year>
<publisher-loc><![CDATA[New York ]]></publisher-loc>
<publisher-name><![CDATA[Addison Wesley]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B11">
<label>11</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[GENESERETH]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[KETCHPEL]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[S.P. Software agents]]></article-title>
<source><![CDATA[Communications of the ACM]]></source>
<year>1994</year>
<month>19</month>
<day>94</day>
<volume>37</volume>
<numero>7</numero>
<issue>7</issue>
<page-range>48-53</page-range></nlm-citation>
</ref>
<ref id="B12">
<label>12</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[GÓMEZ]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<source><![CDATA[Agentes Móviles y CORBA]]></source>
<year>2001</year>
</nlm-citation>
</ref>
<ref id="B13">
<label>13</label><nlm-citation citation-type="journal">
<source><![CDATA[IBM SYSTEMS JOURNAL «Pervasive Computing»]]></source>
<year>1999</year>
<volume>38</volume>
<numero>4</numero>
<issue>4</issue>
</nlm-citation>
</ref>
<ref id="B14">
<label>14</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[KRUTCHEN KRUTCHEN]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<source><![CDATA[The Rational Unified Process]]></source>
<year>1999</year>
<publisher-loc><![CDATA[Reading^eMassachusetts Massachusetts]]></publisher-loc>
<publisher-name><![CDATA[Addison Wesley]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B15">
<label>15</label><nlm-citation citation-type="">
<collab>ISO/IEC ISO/IEC 9126-1</collab>
<source><![CDATA[Software Engineering - Product Quality: Part 1: Quality Model]]></source>
<year>2001</year>
</nlm-citation>
</ref>
<ref id="B16">
<label>16</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[LÉVY]]></surname>
<given-names><![CDATA[N]]></given-names>
</name>
<name>
<surname><![CDATA[LOSAVIO]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
</person-group>
<source><![CDATA[«Architectural Choices for Dependable Systems»]]></source>
<year>2004</year>
</nlm-citation>
</ref>
<ref id="B17">
<label>17</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[LOSAVIO]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[MATTEO]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[ORDAZ]]></surname>
<given-names><![CDATA[O]]></given-names>
</name>
<name>
<surname><![CDATA[MEZA]]></surname>
<given-names><![CDATA[O]]></given-names>
</name>
<name>
<surname><![CDATA[GONTIER]]></surname>
<given-names><![CDATA[W]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[«An implementation of the PAC Architecture using ObjectOriented Techniques»]]></article-title>
<source><![CDATA[IFIP Transactions]]></source>
<year>1994</year>
<volume>2</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>149- 155</page-range><publisher-name><![CDATA[Elsevier Science B.H. (North Holland)]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B18">
<label>18</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[LUYTEN]]></surname>
<given-names><![CDATA[K]]></given-names>
</name>
<name>
<surname><![CDATA[CONINX]]></surname>
<given-names><![CDATA[K]]></given-names>
</name>
</person-group>
<source><![CDATA[«An XML-based runtime user interface description languaje for mobile computing devices»]]></source>
<year>2001</year>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
