The demand for software in Ubiquitous Computing, in which access to applications occurs anywhere, anytime and from different devices, has raised new challenges for Software Engineering. One of these challenges is related to the adaptation of the contents of an application to the numerous devices that can access it in distinct contexts. Another challenge is related to the building of rich interfaces with multimedia content, asynchronous communication and other features that characterize Rich Internet Applications (RIAs). Searching for solutions focused on these challenges, a model-driven process for building rich interfaces of context-sensitive ubiquitous applications has been developed. The process, which is based on the conceptions of Domain-Specific Modeling (DSM), emphasizes the modeling reuse from a rich interface components metamodel. This metamodel provides a generic infrastructure for developing rich interfaces of applications, focusing on model-level reuse and on code generation for different Ubiquitous Computing platforms. In addition, the metamodel allows that the interface models are built by using the terms of rich interface domain, which facilitates the communication between users and developers.
What Are The Drone Anti-jamming Systems Technology?
Model driven RichUbi: a model driven process for building rich interfaces of context-sensitive ubiquitous applications
1. FEDERAL UNIVERSITY OF SÃO CARLOS
CENTER OF SCIENCES AND TECHNOLOGY
GRADUATE PROGRAM IN COMPUTER SCIENCE
Carlos Eduardo Cirilo
Antonio Francisco do Prado
Wanderley L. de Souza
Luciana Aparecida Martinez Zaina
MODEL DRIVEN RICHUBI - A MODEL
DRIVEN PROCESS FOR BUILDING RICH
INTERFACES OF CONTEXT-SENSITIVE
UBIQUITOUS APPLICATIONS
Software Engineering
Group
1
Available in: http://dx.doi.org/10.1145/1878450.1878485
2. 2
MOTIVATION
Rich interfaces
• The main proposal is to
provide the user with a rich
interaction
o Rich interface
components: multimedia,
drag & drop, sliding panels,
auto-completion fields,
online spreadsheets, etc...
• Better responsiveness and
performance
o Asynchronous
communication
o Avoid unnecessary page
reloads
• Better user interaction
(facilitates and motivates)
3. 3
MOTIVATION
Ubiquitous Computing
Computing has enabled users easy access to services and
applications from anywhere, anytime, and using any device.
Heterogeneity of access devices
Need to adapt applications’ interfaces
4. 4
GOALS OF THIS PAPER
To define a model-driven process (Model Driven RichUbi)
Support to the development of rich interfaces of context-
sensitive ubiquitous applications
Based on the conceptions of Domain-Specific Modeling (DSM)
Interfaces modeling based on a rich interface components
metamodel
Hides low level details
Facilitates communication between users and developers
Users can understand technical issues better and suggest
improvements directly on the conceptual level
Partial code generation to different platforms
Development of code generators and dynamic content adapters
6. 6
MODEL-DRIVEN DEVELOPMENT
Focuses on models instead of source code
Raises the level of abstraction during the development
Applies appropriate model-to-code (M2C) transformations to
generate the entire or most of the code for different platforms
The methodology to user interface:
Model-Based User Interface Development :
Definition of the different aspects of user interfaces
(presentation, dialog, user tasks structure) in an abstract
way, regardless the implementation platform
7. 7
MODEL-DRIVEN DEVELOPMENT
Domain Specific Modeling (DSM)
Models are built by using Domain Specific Languages
(DSLs), which can be defined through metamodels that
represent the knowledge of a particular domain
Reduces the effort in translating the concepts of problem
domain into concepts of the solution domain
The interface models are created in a more intuitive way
and are less associated with the technical details of
implementation
10. 10
MODEL DRIVEN RICHUBI
MDD (DSM) Rich Interfaces
Focuses on rich interface domain in order to support the
development of rich interfaces for different platforms
Modeling is performed from a rich interface components
metamodel
Employs a hybrid adaptation strategy:
Requirements are mapped into a few generic interface
versions, each being appropriate for a particular group of
devices (static adaptation)
Dynamic content adapters allow, at runtime, to select the
version that best fits the device profile, and to adapt the
code snippets to meet the characteristics of the access
device (dynamic adaptation)
12. 12
DOMAIN ENGINEERING
Construction of the Rich Interface Components Metamodel
The requirements of rich interface domain are elicited, specified,
analyzed and represented in a rich interface components metamodel
Interface components
identified in
environments of Web
development
(Dreamweaver, MS
Visual Studio)
13. 13
DOMAIN ENGINEERING
Construction of the Model to Code Transformations
The transformations that will be applied to the interface models for
code generation during the AE step are built
Construction of Content Adapters
Building of the content adapters that will accomplish the dynamic
adaptation of the interface components according to the device profile
during the application execution
15. 15
APPLICATION ENGINEERING
Ubiquitous applications with rich interfaces are built by reusing the
artifacts produced in the DE
Follows the Analysis, Design, Implementation and Testing disciplines
Case Study: Web module of the Ambulance Space Positioning System
(ASPS)
ASPS emerged from an experimental study which aimed at
investigating the use of the signals from GSM antennas for the
location of people or objects
ASPS allows the fleet management team to monitor the mobility of
the ambulances
18. 18
CONCLUSIONS AND FURTHER
WORK
Main contributions
Study and research on the use of DSM for building rich interfaces of
context-sensitive ubiquitous applications;
Specification of a rich interface components metamodel and M2C
transformations to support the modeling and code generation for
different platforms; and
Content adaptation carried out in a hybrid fashion with the use of
context.
Future Work
Addition of new rich interface components to the metamodel;
Construction of a graphical notation for the metamodel in order to
turn modeling more user-friendly; and
Optimizations in the M2C transformations that allow further
automation of code generation.
19. 19
Thank you!
Carlos E. Cirilo
carlos_cirilo@dc.ufscar.br
Antonio F. Prado
prado@dc.ufscar.br
Luciana A. M. Zaina
lzaina@ufscar.br
http://www.ges.dc.ufscar.br
Wanderley L. de Souza
desouza@dc.ufscar.br
Notas do Editor
The Rich interfaces main proposal is to provide the user with a rich interaction.
A imagem mostra um exemplo de interface rica, com recursos auto-completar (campo para busca de músicas no canto superior direito), componente de reprodução de áudio e vídeos, painel de abas (menu superior), e leiaute rico. No campo de busca de músicas, à medida que o usuário insere valores no campo, requisições assíncronas são enviadas ao servidor e retornadas as sugestões ao usuário, sem que o mesmo tenha que aguardar a resposta (ou seja, ele continua interagindo com a aplicação mesmo enquanto sua requisição está sendo processada – modelo assíncrono de comunicação – uso de AJAX).
Ubiquitous Computing has enabled users easy access to services and applications from anywhere, anytime, and using any device.
Pelo fato de os modelos (nos quais os requisitos da aplicação são mapeados em componentes de interfaces) serem elaborados na mesma linguagem e jargão do domínio, a comunicação entre os usuários e os desenvolvedores torna-se simplificada (o usuário sabe que o requisito X foi mapeado para o componente painel de aba, por exemplo). Os usuários podem sugerir melhorias diretamente nos modelos. Posteriormente, qdo o modelo tiver completo, aplica-se as transformações modelo-para-código apropriadas (geradores de código), para gerar versões estáticas da interface para diferentes tecnologias. Com o uso dos adaptadores dinâmicos de conteúdo desenvolvidos no processo é possível identificar o dispositivo de acesso, escolher a versão mais apropriada da interface para aquele dispositivo, e refina-la ainda mais conforme as peculiaridades do dispositivo de acesso identificado.
Pelo fato de os modelos (nos quais os requisitos da aplicação são mapeados em componentes de interfaces) serem elaborados na mesma linguagem e jargão do domínio, a comunicação entre os usuários e os desenvolvedores torna-se simplificada (o usuário sabe que o requisito X foi mapeado para o componente painel de aba, por exemplo). Os usuários podem sugerir melhorias diretamente nos modelos. Posteriormente, qdo o modelo tiver completo, aplica-se as transformações modelo-para-código apropriadas (geradores de código), para gerar versões estáticas da interface para diferentes tecnologias. Com o uso dos adaptadores dinâmicos de conteúdo desenvolvidos no processo é possível identificar o dispositivo de acesso, escolher a versão mais apropriada da interface para aquele dispositivo, e refina-la ainda mais conforme as peculiaridades do dispositivo de acesso identificado.
A parte da adaptação estática é facilitada com a geração de código a partir da modelagem para diferentes tecnologias (através do reúso do metamodelo e das transformações M2C)
A parte da adaptação dinâmica é facilitada com o emprego dos adaptadores de conteúdo (através do reúso desses componentes)
O processo é dividido nas etapas de ED e EA. Na ED constóem-se os artefatos para reúso (metamodelo, transformações M2C, e adaptadores de conteúdo). A EA constóem-se as interfaces ricas das aplicações ubíquas sensíveis ao contexto com o reúso dos artefatos previamente construídos na ED. Esses artefatos podem ser reutilizados em diferentes projetos na etapa de EA.
A figura mostra um exemplo de especificação dos componentes de interface. À esquerda o diagrama de classes especificando alguns dos componentes de interface que foram identificados a partir de ambientes de desenvolvimento Web (Dreamweaver, MS VisualStudio...). À direita tem-se a representação dos componentes (em azul) no metamodelo extraídos a partir do diagrama de classes. O metamodelo foi especificado utilizando o Eclipse Modeling Framework (EMF).
Pode-se criar transformações que geram código para diferentes tecnologias a partir do mesmo modelo (ex: XHTML para desktops e smartphones, WML, VoiceXML, HTML5 etc...)
Template JET para a geração do código do componente de inerface rica TabbedPanel. Uso das funções da biblioteca jQuery para renderizar o painel de abas na saída (linhas 2-4), e uso de folhas de estilo pré-fabricadas para pré-formatação do leiaute da interface (atributo class da tag div na linha 6).
As transformações também foram incorporadas à ferramenta MVCASE para suporte à geração de código na EA.
O processo é dividido nas etapas de ED e EA. Na ED constóem-se os artefatos para reúso (metamodelo, transformações M2C, e adaptadores de conteúdo). A EA constóem-se as interfaces ricas das aplicações ubíquas sensíveis ao contexto com o reúso dos artefatos previamente construídos na ED. Esses artefatos podem ser reutilizados em diferentes projetos na etapa de EA.
A figura ilustra como é feito o mapeamento dos requisitos para componentes de interface no modelo que satisfação esses requisitos. É ilustrado também a forma com que o metamodelo está sendo instanciado no backend.