Software development that meets the demand of Ubiquitous Computing, in which access to applications occurs anywhere, anytime and from different devices, has raised new challenges for Software Engineering. Among these challenges it stands out the development of context-sensitive ubiquitous applications. Much of the effort required for building such applications can be reduced through the reuse of the application's modeling. Different parts of a ubiquitous application can be reused, such as the user interface. Generate the interfaces' code so that they can self-adapt according to the different access contexts makes the application more dynamic and personalized. Therefore, by combining the conceptions of rich interfaces, domain-specific modeling, and context sensitivity, this paper presents a development process, called Model Driven RichUbi, to support the construction of rich interfaces for context-sensitive ubiquitous applications.
Boas práticas de programação com Object Calisthenics
Model Driven RichUbi - A Model-Driven Process to Construct Rich Interfaces for Context-Sensitive Ubiquitous Applications
1. Universidade Federal de São Carlos
Centro de Ciências Exatas e Tecnologia
Programa de Pós-Graduação em Ciência da Computação
Carlos Eduardo Cirilo
Antonio Francisco do Prado
Wanderley Lopes de Souza
Luciana Aparecida Martinez Zaina
Model Driven RichUbi - Processo Dirigido a
Modelos para a Construção de Interfaces Ricas
de Aplicações Ubíquas Sensíveis ao Contexto
Grupo de Engenharia
de Software
1
Available in: http://dx.doi.org/10.1109/SBES.2010.20
2. 2
Agenda
Motivação e Objetivos
Modelagem Específica de Domínio (DSM)
Model Driven RichUbi
Engenharia de Domínio (ED)
Engenharia de Aplicação (EA)
Trabalhos Correlatos
Conclusões e Trabalhos Futuros
3. 3
Motivação
• Web 2.0
•Visual e aparência ricos
o interfaces ricas
o multimídia, painéis
deslizantes, clique &
arraste, auto-completar,
planilhas eletrônicas,
mapas, etc...
• Melhor responsividade e
desempenho
o Comunicação assíncrona
• Melhor interação dos
usuários (facilita e motiva)
Aplicações de Internet Rica (RIAs)
4. 4
Motivação
Computação Ubíqua
Heterogeneidade dos dispositivos de acesso
Necessidade de adaptação das interfaces das aplicações
5. 5
Motivação
Computação Ubíqua
Esforços adicionais no desenvolvimento
Sensibilidade ao Contexto
Adaptação da aplicação
(comportamento e conteúdo)
conforme o contexto de acesso
Pode-se adaptar a interface de
acordo com o perfil do
dispositivo de acesso
6. 6
Motivação
Desenvolvimento Dirigido a Modelos (MDD)
Redução dos esforços de desenvolvimento
Foco na modelagem da aplicação
Maior nível de abstração
Geração de código (total ou parcialmente) a partir dos modelos
7. 7
Objetivos do Trabalho
Definir um processo dirigido a modelos para a construção de interfaces
ricas de aplicações ubíquas que se adaptam conforme o perfil do
dispositivo recuperado do contexto
Simplificar o processo de desenvolvimento de aplicações ubíquas
sensíveis ao contexto
Favorecer o reúso de artefatos:
Metamodelo do domínio de interfaces ricas
Transformações Modelo para Código (M2C)
Adaptadores dinâmicos de conteúdo
8. 8
Modelagem Específica de Domínio (DSM)
Uso de Linguagens Específicas de Domínio (DSLs)
Metamodelos do domínio
Modelagem usando termos e conceitos familiares ao domínio do
problema
Facilita o mapeamento para o domínio da solução
Modelos mais específicos e completos
Geração de código para diferentes tecnologias de implementação
10. 10
Model Driven RichUbi
Dar suporte o desenvolvimento de software na Computação Ubíqua
com foco na construção de interfaces ricas adaptativas
Engenharia de Domínio (ED)
Construção de um metamodelo de componentes de interfaces
ricas
Construção das transformações M2C
Construção dos adaptadores de conteúdo
Engenharia de Aplicação (EA)
Construção das aplicações ubíquas com interfaces ricas
Reúso dos artefatos produzidos na ED
12. 12
Engenharia de Domínio
Especificar Metamodelo dos Componentes de Interface Rica
Os requisitos do domínio de interfaces ricas são especificados e
representados num metamodelo de componentes de interfaces ricas
14. 14
Engenharia de Domínio
Projetar Metamodelo dos Componentes de Interface Rica
A especificação do metamodelo é refinada através da adoção de
padrões, tecnologias e plataformas de hardware e software
16. 16
Engenharia de Domínio
Implementar Metamodelo dos Componentes de Interface
Rica
Código Java gerado através do
Eclipse Modeling Framework
(EMF)
Geração de um editor de
modelos
Persistência do modelos em
XML Metadata Interchange
(XMI)
Plug-in Eclipse integrado à
ferramenta MVCASE
18. 18
Engenharia de Domínio
Construir Transformações Modelo para Código
São construídas as transformações que serão aplicadas aos
modelos de interface para geração de código durante a EA
20. 20
Engenharia de Domínio
Construir Adaptadores de Conteúdo dos Componentes de
Interface Rica
São construídos os adaptadores que realizarão a adaptação
dinâmica da interface conforme o perfil do dispositivo
Regra 1:
Condições
inputNode.size >
DEVICE_DISPLAY_COLUMNS_NUMBER
AND (inputNode.type == “text” OR
inputNode.type == “password”)
Ações
adaptInput(inputNode)
Regra 2:
Condições
imageNode.height >
DEVICE_DISPLAY_RESOLUTION_HEIGHT
OR imageNode.width >
DEVICE_DISPLAY_RESOLUTION_WIDTH
Ações
adaptImage(imageNode)
21. 21
Engenharia de Aplicação
São construídas as aplicações ubíquas com interfaces ricas
Reúso dos artefatos produzidos na ED
Segue as disciplinas de Análise, Projeto, Implementação e Testes
Estudo de Caso: Módulo Web do WebRES
permite que médicos cardiologistas acessem os dados pressóricos
de seus pacientes
WebRES
25. 25
Engenharia de Aplicação
Projetar
Refinamento das
especificações da aplicação
Modelagem das
interfaces da aplicação
como instância do
metamodelo
27. 27
Engenharia de Aplicação
Implementar e Testar
Geração parcial de código usando as transformações M2C
Reúso dos adaptadores de conteúdo
21/01/15Carlos Eduardo Cirilo 27
28. 28
Trabalhos Correlatos
Contextual Elements Modeling and Management through
Incremental Knowledge Acquisition (CEManTIKA) [Vieira et al.
2009]
Processo que define atividades de Engenharia de Software
relacionadas à especificação do contexto e projeto de sistemas sensíveis
ao contexto
Xmobile [Viana &Andrade 2008]
Ambiente para a geração de aplicações adaptativas baseadas em
formulários para dispositivos móveis
É composto por um framework de componentes abstratos de
interface, que permite modelar as interfaces da aplicação, e por uma
ferramenta de geração de código.
29. 29
Trabalhos Correlatos
Semantic Transformer [Paternò et al. 2008]
Ferramenta para transformação automática de páginas Web
desenvolvidas para desktop em páginas Web adequadas para
dispositivos móveis
Extended Internet Content Adaptation Framework (EICAF)
[Forte et al. 2008]
Framework de adaptação de conteúdo para aplicações Web.
Utiliza ontologias para descrição dos perfis e Web Services que
desempenham a adaptação de conteúdo.
Semantic COntext-aware Ubiquitous scouT (SCOUT) [van
Woensel et al. 2009]
Framework para a construção de aplicações sensíveis ao contexto para
dispositivos móveis
“Presenças Web” serviços/recursos específicos de localização
30. 30
Conclusões e Trabalhos Futuros
Principais contribuições para a ES:
Reúso de Software
Modelagem Específica de Domínio (DSM)
Sensibilidade ao Contexto
Apoio Computacional
Trabalhos Futuros:
Sistematização dos testes dos artefatos reutilizáveis produzidos na ED
Inclusão de novos componentes de interface rica ao metamodelo
Construção de uma notação gráfica (GMF)
Refinamento dos adaptadores de conteúdo (características
contextuais mais dinâmicas)
Otimizações nas transformações M2C
Experimentação formal do processo (em andamento)