SlideShare uma empresa Scribd logo
1 de 87
Baixar para ler offline
1
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Marcos Alves Vieira
Sérgio Teixeira de Carvalho
marcos.vieira@ifgoiano.edu.br
sergio@inf.ufg.br
17 de outubro de 2017
Engenharia Dirigida por Modelos no Desenvolvimento de
Aplicações Ubíquas:
Tecnologias, Ferramentas e Linguagens
Material de apoio:
http://bit.ly/webmedia2017
2
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Roteiro
1. Introdução
2. Fundamentação Teórica
i. Computação Ubíqua
ii. Computação Sensível ao Contexto
iii. Espaços Inteligentes Fixos
iv. Espaços Inteligentes Pessoais
v. Objetos Inteligentes
vi. Engenharia Dirigida por Modelos (Model-driven Engineering - MDE)
3. Fundamentação Tecnológica
i. Eclipse Modeling Framework (EMF)
ii. Eclipse Graphical Modeling Framework (GMF)
iii. Epsilon: uma família de linguagens e ferramentas relacionadas à MDE
4. Prática: desenvolvendo um editor gráfico de modelagem 1
3
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
1. Introdução
1
4
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Objetivo
– Construção de uma ferramenta de modelagem gráfica para
construção de modelos em conformidade com um metamodelo
Público-alvo
– Estudantes (graduação e pós-graduação)
– Profissionais (desenvolvimento de sistemas)
Abordagem
– Teórico/prática
1. Introdução
5
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
2. Fundamentação Teórica
1
6
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Fases da computação (Weiser e Brown, 1997):
1. Era dos mainframes
– Computador era recurso escasso e atendia diversos
usuários
2. Computadores pessoais (PCs)
– Cada pessoa tem acesso exclusivo a um PC
3. Computação ubíqua
– Computação invisível ao usuário, fundida a elementos do
dia-a-dia
– Não requer interação por dispositivos tradicionais (i.e.
teclado e mouse)
– Foco do usuário está na tarefa e não no dispositivo
2. Fundamentação Teórica
Computação Ubíqua
7
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Algumas definições:
(Schilit e Theimer, 1994):
Adaptação do software de acordo com a sua localização de uso, o
conjunto de pessoas e os objetos próximos, assim como as
mudanças que esses objetos sofrem no decorrer do tempo
(Abowd et al., 1999) e (Dey, 2001):
Qualquer informação que possa ser usada para caracterizar a
situação de uma pessoa, lugar ou objeto relevante para a
interação entre um usuário e uma aplicação, incluindo estes
dois últimos.
Exemplo:
2. Fundamentação Teórica
Computação Sensível ao Contexto
Temperatura Software Ar-condicionado
8
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Definição (Lupiana et al., 2009):
Um ambiente computacional e sensorial altamente integrado que
efetivamente raciocine sobre os contextos físico e de usuário do
espaço para agir transparentemente com base em desejos
humanos.
2. Fundamentação Teórica
Espaços Inteligentes Fixos (1/2)
9
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Definição (Lupiana et al., 2009):
Um ambiente computacional e sensorial altamente integrado que
efetivamente raciocine sobre os contextos físico e de usuário do
espaço para agir transparentemente com base em desejos
humanos.
Altamente integrado:
saturado com dispositivos de computação ubíqua e sensores
completamente integrados com redes sem fio
2. Fundamentação Teórica
Espaços Inteligentes Fixos (1/2)
10
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Definição (Lupiana et al., 2009):
Um ambiente computacional e sensorial altamente integrado que
efetivamente raciocine sobre os contextos físico e de usuário do
espaço para agir transparentemente com base em desejos
humanos.
Raciocínio efetivo:
mecanismo pseudo-inteligente para o ambiente como um todo
2. Fundamentação Teórica
Espaços Inteligentes Fixos (1/2)
11
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Definição (Lupiana et al., 2009):
Um ambiente computacional e sensorial altamente integrado que
efetivamente raciocine sobre os contextos físico e de usuário do
espaço para agir transparentemente com base em desejos
humanos.
Contexto de usuário:
perfis individuais, políticas, localização atual e status de mobilidade
2. Fundamentação Teórica
Espaços Inteligentes Fixos (1/2)
12
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Definição (Lupiana et al., 2009):
Um ambiente computacional e sensorial altamente integrado que
efetivamente raciocine sobre os contextos físico e de usuário do
espaço para agir transparentemente com base em desejos
humanos.
Transparência:
ações humanas e com o suporte à mobilidade sem necessidade de
interação direta do usuário
2. Fundamentação Teórica
Espaços Inteligentes Fixos (1/2)
13
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Possibilita um maior controle sobre (Cook e Das, 2007):
– Os problemas de integração
– O comportamento do usuário
– A aquisição de conhecimento do ambiente e usuário
Desvantagens (Taylor, 2011):
– Espaços geograficamente limitados
Ilhas de ubiquidade (Crotty et al., 2009):
– Suporte limitado à computação ubíqua
– Não há compartilhamento de serviços e dispositivos com outros
espaços inteligentes
2. Fundamentação Teórica
Espaços Inteligentes Fixos (2/2)
14
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Personal Smart Spaces (PSS)
– Computação ubíqua + redes corporais
Projeto PERSIST (Dolinar et al., 2008):
– PSS → interface entre o usuário e
os serviços e dispositivos
– Interação com outros espaços inteligentes
Características de um PSS (Roussaki et al., 2008):
1. É móvel
2. Tem um “dono”
3. Deve ser capaz de se adaptar
4. Pode aprender com interações anteriores
2. Fundamentação Teórica
Espaços Inteligentes Pessoais
Figura: PSS vs. espaço inteligente fixo.
Adaptado de (Gallacher et al., 2010).
mobilidade
autoaperfeiçoamento
15
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Definição (Kortuem et al., 2010):
Entidades físico/digitais, aumentados com capacidades de sensoriamento,
processamento e possibilidade de conexão em rede
Capacidades (Siegemund, 2004):
– Perceber o ambiente por
meio de sensores
– Se comunicar com outros
objetos inteligentes
2. Fundamentação Teórica
Objetos Inteligentes (1/2)
– Trabalhar colaborativamente
– Determinar o contexto
– Adaptar seu comportamento
16
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Propriedades (Kawsar, 2009):
– ID única
– Ser identificado unicamente
– Autoconsciência
– Saber seu estado operacional e situacional
– Capacidade se descrever
– Sociabilidade
– Comunicar com outros objetos inteligentes e entidades
computacionais (e.g., uma aplicação sensível ao contexto)
– Autonomia
– Tomar ações (e.g., mudar-se do estado desligado para ligado;
decisões autônomas)
2. Fundamentação Teórica
Objetos Inteligentes (2/2)
17
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Engenharia Dirigida por Modelos (Model-driven Engineering - MDE) (Seidewitz, 2003),
(Schmidt, 2006) e (Völter et al., 2013):
– Modelos são:
– Os principais artefatos no
desenvolvimento de um sistema
– Representação gráfica ou textual
de alto nível de um sistema
– Os relacionamentos e abstrações são
descritos por um metamodelo
Desenvolvimento Dirigido por Modelos
(Model-driven Development - MDD) e
Arquitetura Dirigida por Modelos
(Model-driven Architecture - MDA):
– Uso de abstrações mais próximas do domínio do problema
– Mitigar a distância semântica (semantic gap) existente entre o problema a ser
solucionado e o ferramental (software)
2. Fundamentação Teórica
Engenharia Dirigida por Modelos (1/4)
Modelos ≠ Diagramas UML
‒ UML é apenas uma linguagem
de modelagem
‒ Diferentes domínios têm
diferentes abstrações
‒ Modelos ≠ figuras
‒ Modelos podem ser
gráficos ou textuais
‒ ou ambos...
18
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Arquitetura de metamodelagem
Meta-Object Facility (MOF)
(Völter et al., 2013):
– Forma de padronização
para a construção de
modelos e metamodelos
– Apresentada pelo Object
Management Group (OMG)
– Cada elemento de uma
camada inferior é uma
instância de uma camada
superior
2. Fundamentação Teórica
Engenharia Dirigida por Modelos (2/4)
Figura: Camadas da arquitetura MOF.
Adaptado de (Völter et al., 2013).
19
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Camada M3:
– Representa o meta-metamodelo
da MOF, também chamado de
Modelo MOF
– Utilizado para construção
dos metamodelos
– Exemplos de membros dessa
camada:
– Modelo MOF
– Ecore
2. Fundamentação Teórica
Engenharia Dirigida por Modelos (2/4)
Figura: Camadas da arquitetura MOF.
Adaptado de (Völter et al., 2013).
20
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Camada M2:
– Contém os metamodelos
– Utilizados para modelar
sistemas de domínio
específico
– Exemplo de membro dessa
camada:
– UML (Unified Modeling
Language)
2. Fundamentação Teórica
Engenharia Dirigida por Modelos (2/4)
Figura: Camadas da arquitetura MOF.
Adaptado de (Völter et al., 2013).
21
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Camada M1:
– Composta por modelos
– Descrevem sistemas
utilizando as definições
constantes em seus
respectivos metamodelos
presentes em M2
– Exemplo de membro dessa
camada:
– Um diagrama de classes da
UML
2. Fundamentação Teórica
Engenharia Dirigida por Modelos (2/4)
Figura: Camadas da arquitetura MOF.
Adaptado de (Völter et al., 2013).
22
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Camada M0:
– Contém as entidades ou objetos
que formam o sistema em
execução
– São criadas a partir das
definições presentes em M1
– Exemplo de membro dessa
camada:
– O objeto cliente da classe
Pessoa de um sistema de
vendas
2. Fundamentação Teórica
Engenharia Dirigida por Modelos (2/4)
Figura: Camadas da arquitetura MOF.
Adaptado de (Völter et al., 2013).
23
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Linguagem de Modelagem Específica de Domínio
(Domain-specific Modeling Language - DSML)
(Van Deursen et al., 2000) e (Chiprianov et al., 2014)
– Linguagem textual ou gráfica para construção de modelos específicos de um
determinado domínio
– Definida por um metamodelo
– Possui sintaxe e semântica
– Sintaxe abstrata
– Conceitos e seus relacionamentos
– Sintaxe concreta
– Elementos visuais que representam a sintaxe abstrata
– Semântica
– Significado das representações da sintaxe
2. Fundamentação Teórica
Engenharia Dirigida por Modelos (3/4)
24
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Requisitos para construção de DSMLs (Kolovos et al., 2006):
1. Conformidade
2. Ortogonalidade
3. Suporte
4. Integração
5. Longevidade
6. Simplicidade
7. Qualidade
8. Escalabilidade
9. Usabilidade
2. Fundamentação Teórica
Engenharia Dirigida por Modelos (4/4)
Requisitos gerais
Requisitos adicionais
25
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Requisitos para construção de DSMLs (Kolovos et al., 2006):
1. Conformidade
– As construções devem corresponder a importantes conceitos do
domínio
2. Ortogonalidade
3. Suporte
4. Integração
5. Longevidade
6. Simplicidade
7. Qualidade
8. Escalabilidade
9. Usabilidade
2. Fundamentação Teórica
Engenharia Dirigida por Modelos (4/4)
26
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Requisitos para construção de DSMLs (Kolovos et al., 2006):
1. Conformidade
2. Ortogonalidade
– Cada construção da linguagem deve ser usada para representar
exatamente um conceito distinto do domínio
3. Suporte
4. Integração
5. Longevidade
6. Simplicidade
7. Qualidade
8. Escalabilidade
9. Usabilidade
2. Fundamentação Teórica
Engenharia Dirigida por Modelos (4/4)
27
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Requisitos para construção de DSMLs (Kolovos et al., 2006):
1. Conformidade
2. Ortogonalidade
3. Suporte
– Ferramentas para modelagem e gerenciamento de programação
e.g., criação de código, edição e transformação de modelos
4. Integração
5. Longevidade
6. Simplicidade
7. Qualidade
8. Escalabilidade
9. Usabilidade
2. Fundamentação Teórica
Engenharia Dirigida por Modelos (4/4)
28
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Requisitos para construção de DSMLs (Kolovos et al., 2006):
1. Conformidade
2. Ortogonalidade
3. Suporte
4. Integração
– A linguagem, e suas ferramentas podem ser utilizadas em conjunto
com outras linguagens e ferramentas com o mínimo de esforço
5. Longevidade
6. Simplicidade
7. Qualidade
8. Escalabilidade
9. Usabilidade
2. Fundamentação Teórica
Engenharia Dirigida por Modelos (4/4)
29
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Requisitos para construção de DSMLs (Kolovos et al., 2006):
1. Conformidade
2. Ortogonalidade
3. Suporte
4. Integração
5. Longevidade
– O domínio persista por um período de tempo suficiente para
justificar a construção da linguagem e suas ferramentas
6. Simplicidade
7. Qualidade
8. Escalabilidade
9. Usabilidade
2. Fundamentação Teórica
Engenharia Dirigida por Modelos (4/4)
30
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Requisitos para construção de DSMLs (Kolovos et al., 2006):
1. Conformidade
2. Ortogonalidade
3. Suporte
4. Integração
5. Longevidade
6. Simplicidade
– Uma linguagem deve ser o mais simples possível
7. Qualidade
8. Escalabilidade
9. Usabilidade
2. Fundamentação Teórica
Engenharia Dirigida por Modelos (4/4)
31
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Requisitos para construção de DSMLs (Kolovos et al., 2006):
1. Conformidade
2. Ortogonalidade
3. Suporte
4. Integração
5. Longevidade
6. Simplicidade
7. Qualidade
– Fornecer mecanismos para construção de sistemas de qualidade
8. Escalabilidade
9. Usabilidade
2. Fundamentação Teórica
Engenharia Dirigida por Modelos (4/4)
32
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Requisitos para construção de DSMLs (Kolovos et al., 2006):
1. Conformidade
2. Ortogonalidade
3. Suporte
4. Integração
5. Longevidade
6. Simplicidade
7. Qualidade
8. Escalabilidade
– Fornecer construções para ajudar a gerenciar descrições de larga
escala, além de permitir a construção de sistemas menores
9. Usabilidade
2. Fundamentação Teórica
Engenharia Dirigida por Modelos (4/4)
33
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Requisitos para construção de DSMLs (Kolovos et al., 2006):
1. Conformidade
2. Ortogonalidade
3. Suporte
4. Integração
5. Longevidade
6. Simplicidade
7. Qualidade
8. Escalabilidade
9. Usabilidade
– Economia, acessibilidade e facilidade de compreensão
– Coberto pelos requisitos gerais, e.g.,
simplicidade → compreensão → facilidade de uso
2. Fundamentação Teórica
Engenharia Dirigida por Modelos (4/4)
34
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
3. Fundamentação Tecnológica
1
35
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
O que é?
– Framework de modelagem construído sobre o IDE Eclipse
Características
– Fornece mecanismos para criação, edição e validação de modelos e
metamodelos
– Possibilita a geração automática de código a partir dos modelos
– Os metamodelos construídos no EMF são instâncias do meta-
metamodelo Ecore
– Ecore é a linguagem central do EMF
2. Fundamentação Tecnológica
Eclipse Modeling Framework (EMF) (1/5)
36
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
2. Fundamentação Tecnológica
Eclipse Modeling Framework (EMF) (2/5)
Figura: Meta-metamodelo Ecore (Merks e Sugrue, 2009).
37
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Um metamodelo com base no Ecore é definido por meio de instâncias de:
– EClass
– Representa uma classe composta por atributos e referências
– EAttribute
– É um atributo que possui um nome e um tipo
– EReference
– Define uma associação entre classes
– ESuperType
– Define a(s) super-classe(s) de uma classe (possibilita herança múltipla)
– EDataType
– Tipo de um atributo
– Primitivo (número inteiro ou real, string, booleano, etc...)
– Enumeração EEnum
– Referência a uma EClass
2. Fundamentação Tecnológica
Eclipse Modeling Framework (EMF) (3/5)
38
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Definindo metamodelos Ecore
– Editor com base em estrutura de árvore
– Editor com base em diagramas
– Linguagem Emfatic
– Sintaxe textual para definição de metamodelos Ecore
– Importação de
– Código Java
– Schema XML
2. Fundamentação Tecnológica
Eclipse Modeling Framework (EMF) (4/5)
39
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
2. Fundamentação Tecnológica
Eclipse Modeling Framework (EMF) (5/5)
Figura: Visão de estrutura de árvore.
Figura: Visão de diagrama.
Exemplo de metamodelo construído no EMF
Figura: Linguagem Emfatic.
40
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Linguagem textual para definição de metamodelos Ecore
– Bastante similar ao Java
Suportado pelo IDE Eclipse
– Destaque de código
– Reportagem de erros
Mapeamento entre Emfatic ↔ Ecore
– É possível gerar um metamodelo Ecore a partir de um arquivo Emfatic
– É possível gerar um arquivo Emfatic a partir de um metamodelo Ecore
2. Fundamentação Tecnológica
Emfatic (1/7)
41
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
2. Fundamentação Tecnológica
Emfatic (2/7)
Figura: Editor Emfatic.
42
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
2. Fundamentação Tecnológica
Emfatic (3/7)
‒ Especifica os atributos nsURI
e nsPrefix da classe
EPackage
43
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
2. Fundamentação Tecnológica
Emfatic (4/7)
‒ Definição do pacote
(EPackage)
‒ No Ecore, um EPackage é
semanticamente o mesmo
que um metamodelo
44
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
2. Fundamentação Tecnológica
Emfatic (5/7)
‒ Definição de classes
(EClass)
‒ A declaração de classes em
Ecore é bastante similar ao
Java
45
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Palavra-chave
Emfatic
Significado Ecore
attr EAttribute
op EOperation
ref
normal EReference
(EReference.containment = false)
val
"by value" EReference
(EReference.containment = true)
2. Fundamentação Tecnológica
Emfatic (6/7)
‒ Definição de características
das classes
‒ Atributos
‒ Referências
‒ Operações
Tabela: Palavras-chave para tipos de características
de classes.
46
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
2. Fundamentação Tecnológica
Emfatic (7/7)
‒ Multiplicidade das
características da classe
‒ Define o limite inferior
(lowerBound) e superior
(upperBound) para cada
relacionamento
Emfatic
ETypedElement
lowerBound
ETypedElement
upperBound
none 0 1
[?] 0 1
[] 0 ilimitado (-1)
[*] 0 ilimitado (-1)
[+] 1 ilimitado (-1)
[1] 1 1
[n] n n
[0..4] 0 4
[m..n] m n
[5..*] 5 ilimitado (-1)
[1..?] 1 não especificado (-2)
Tabela: Expressões de multiplicidade.
47
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
2. Fundamentação Tecnológica
Eclipse Graphical Modeling Framework (GMF) (1/7)
O que é?
– Framework com base no EMF para construção de editores gráficos
– Permite a criação de modelos em conformidade com um metamodelo
48
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
2. Fundamentação Tecnológica
Eclipse Graphical Modeling Framework (GMF) (2/7)
– Requer a criação de modelos específicos para a geração de um editor gráfico
– Modelo gráfico (GMFGraph)
– Especifica os elementos gráficos do editor
– Formas, conexões, rótulos, decorações, etc.
– Modelo da ferramenta (GMFTool)
– Especifica as ferramentas disponíveis na paleta do editor
– Criação de elementos do metamodelo
– Modelo de mapeamento (GMFMap)
– Mapeia
– Elementos gráficos no
modelo gráfico
– Ferramentas de criação no
modelo da ferramenta
‒ sintaxe abstrata no
metamodelo Ecore
(classes, atributos,
referências, etc.)
49
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
2. Fundamentação Tecnológica
Eclipse Graphical Modeling Framework (GMF) (3/7)
Obstáculos
– Os modelos do GMF são complexos e repletos de referências cruzadas
– O processo de geração dos modelos é propenso a erros
– Em caso de mudança no metamodelo, os modelos do GMF precisam ser
gerados novamente
50
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
2. Fundamentação Tecnológica
Eclipse Graphical Modeling Framework (GMF) (4/7)
Figura: GMF dashboard: assistente para criação dos modelos GMF (VIEIRA, 2016).
51
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
2. Fundamentação Tecnológica
Eclipse Graphical Modeling Framework (GMF) (5/7)
Figura: Processo de criação dos modelos GMF.
Adaptado de: <https://wiki.eclipse.org/Graphical_Modeling_Framework/Documentation/Index> (Vieira, 2016).
52
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
2. Fundamentação Tecnológica
Eclipse Graphical Modeling Framework (GMF) (6/7)
Figura: Exemplo de editor gráfico construído no GMF.
53
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
2. Fundamentação Tecnológica
Eclipse Graphical Modeling Framework (GMF) (7/7)
Figura: Editando o arquivo .gmfmap para customização do editor gráfico.
54
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
O que é?
– Família de linguagens e ferramentas para manipulação de modelos
– Geração de código, transformação, comparação, união, refatoramento
e validação de modelos
Composto pelas linguagens:
– Epsilon Object Language (EOL)
– Epsilon Validation Language (EVL)
– Epsilon Transformation Language (ETL)
– Epsilon Comparison Language (ECL)
Eugenia
– Ferramenta que auxilia na geração dos modelos requeridos pelo GMF
2. Fundamentação Tecnológica
Epsilon
– Epsilon Merging Language (EML)
– Epsilon Wizard Language (EWL)
– Epsilon Generation Language (EGL)
55
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
O que é?
– Núcleo das linguagens da família Epsilon
– As demais linguagens estendem a EOL em sintaxe e semântica
– Oferece funcionalidades sobre as quais as demais linguagens são
implementadas
– Pode ser usada independentemente
– Criar, consultar e modificar modelos
2. Fundamentação Tecnológica
Epsilon Object Language (EOL) (1/4)
56
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Características
– Todas as construções usuais em programação
– Laços while e for, variáveis, etc.
– Possibilidade de criar e realizar chamadas a métodos de objetos Java
– Suporte para a adição dinâmica de operações em metaclasses em tempo
de execução
– Suporte a interação com o usuário
– Possibilidade de criação de bibliotecas de operações para serem
importadas e utilizadas em outras linguagens Epsilon
2. Fundamentação Tecnológica
Epsilon Object Language (EOL) (2/4)
57
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
2. Fundamentação Tecnológica
Epsilon Object Language (EOL) (3/4)
Figura: Visão geral do sistema de tipos de dados da linguagem EOL (Kolovos et al., 2015).
58
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
2. Fundamentação Tecnológica
Epsilon Object Language (EOL) (4/4)
Código: Exemplo de código em linguagem EOL para calcular e imprimir a
profundidade de cada árvore (Tree) (Kolovos et al., 2015).
59
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Objetivo
– Oferecer funcionalidades de validação à família Epsilon
– Especificar e avaliar restrições (invariantes) em modelos de um metamodelo
Características
– Distinção entre erros (error) e avisos (warning) durante a validação
– Especificação de consertos (quick fix) para erros encontrados pelas restrições
– Permite definir dependências entre as invariantes
– e.g., se a restrição A falhar, então não avalie a restrição B
– Todas as funcionalidades oferecidas pela linguagem EOL
– Suporte a operações lógicas de primeira ordem oriundas da OCL (select,
reject, collect, etc.)
– Suporte a interação com usuário
2. Fundamentação Tecnológica
Epsilon Validation Language (EVL) (1/12)
60
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
– Especificações das validações são organizadas em módulos (EvlModule)
– Um módulo pode conter um conjunto de restrições (invariantes)
– Agrupadas pelo contexto em que serão aplicadas
2. Fundamentação Tecnológica
Código: Exemplo de código em linguagem EVL para impedir autoreferenciamento em
uma determinada metaclasse (Vieira, 2016). Figura: Descrição do erro
(Vieira, 2016).
Figura: Erro encontrado no modelo
(Vieira, 2016).
Epsilon Validation Language (EVL) (2/12)
61
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
2. Fundamentação Tecnológica
Figura: Sintaxe abstrata da linguagem EVL (Kolovos et al., 2015).
Epsilon Validation Language (EVL) (3/12)
62
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
2. Fundamentação Tecnológica
Context
– Especifica o tipo de instâncias sobre as quais as invariantes (Invariant) serão avaliadas
– Pode opcionalmente definir uma guarda (guard)
– Limita sua aplicabilidade para um subconjunto menor
– Se uma guarda falha para uma instância de um tipo específico, nenhuma de suas
invariantes é avaliada
Epsilon Validation Language (EVL) (4/12)
63
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
2. Fundamentação Tecnológica
Invariant
– Cada invariante define um nome e um corpo (check)
– Pode ser do tipo
– restrição (Constraint), que lança um erro (error)
– crítica (Critique), lançando um aviso (warning)
– Pode opcionalmente definir uma guarda
(guard)
– Pode definir uma mensagem (message)
descrevendo o erro
– Pode opcionalmente definir um ou mais
consertos (Fix)
Epsilon Validation Language (EVL) (5/12)
64
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
2. Fundamentação Tecnológica
Guard
– Limita a aplicabilidade das invariantes a instâncias do tipo especificado
– Pode ser usada em dois níveis:
– No nível do contexto (Contex), limita todas as invariantes do contexto
– No nível da invariante (Invariant), limita uma invariante específica
Epsilon Validation Language (EVL) (6/12)
65
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
2. Fundamentação Tecnológica
Fix
– Permite a correção semi-automática de erros encontrados durante a validação
– É possível definir um título (title) e um bloco do, onde a funcionalidade de
conserto deve ser definida usando a linguagem EOL
– Deve-se garantir que o conserto realmente repare a inconsistência
Epsilon Validation Language (EVL) (7/12)
66
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
2. Fundamentação Tecnológica
Constraint
– Define restrições que são usadas para capturar erros críticos que invalidam o
modelo
– Gera um erro (error)
– São uma subclasse de Invariant, herdando suas características
Epsilon Validation Language (EVL) (8/12)
67
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
2. Fundamentação Tecnológica
Critique
– Define restrições usadas para capturar situações que não invalidam o modelo,
mas devem ser consideradas para melhorar sua qualidade
– Gera um aviso (warning)
– São uma subclasse de Invariant, herdando suas características
Epsilon Validation Language (EVL) (9/12)
68
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
2. Fundamentação Tecnológica
Pre | Post
– Contém declarações EOL que podem ser executadas antes (pre) ou após
(post) a avaliação das invariantes
Epsilon Validation Language (EVL) (10/12)
69
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Fases da execução de um módulo EVL:
Fase 1
– Executa a seção pre
Fase 2
– Para cada instância, a guarda (guard) e o contexto (context) são avaliados
– Se a guarda (guard) de uma invariante for satisfeita, o corpo (body) da invariante é
avaliada
– Caso o corpo seja avaliado como falso, a mensagem (message) definida,
juntamente com os consertos (fix) disponíveis, são adicionados à
ValidationTrace
Fase 3
– Examina a ValidationTrace por restrições não satisfeitas
– As mensagens são apresentadas
– O usuário pode selecionar um ou mais consertos (fix)
Fase 4
– Executa a seção post
2. Fundamentação Tecnológica
Epsilon Validation Language (EVL) (11/12)
70
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
2. Fundamentação Tecnológica
Epsilon Validation Language (EVL) (12/12)
Código: Exemplo de código EVL (Vieira, 2016).
‒ Verifica se um nome foi
definido para instâncias
da metaclasse Actuator
‒ Gera um erro (error)
‒ Só é avaliada se satisfizer
a restrição HasName
‒ Verifica se o nome inicia
com letra minúscula
‒ Oferece duas opções para
conserto (fix)
‒ Gera um aviso (warning)
71
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
O que é?
– Ferramenta da família Epsilon que gera automaticamente os modelos
GMFGraph, GMFTool e GMFMap, necessários para a implementação de
um editor GMF
Objetivo
– Diminuir a complexidade na criação de ferramentas de modelagem gráficas
com base no GMF
Funcionamento
– Utiliza um metamodelo Ecore anotado, escrito em linguagem Emfatic
– Anotações de alto nível
– Realiza transformações automatizadas com base nas anotações
Código Emfatic anotado Modelos necessários pelo GMF
2. Fundamentação Tecnológica
Eugenia (1/10)
72
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Categorias de anotações
– @gmf.diagram
– @gmf.node
– @gmf.link
– @gmf.compartment
– @gmf.affixed
– @gmf.label
Atributos
– Cada categoria de anotação suporta uma série de atributos
– Cada atributo deve ter um valor, dentro de uma lista de valores possíveis
2. Fundamentação Tecnológica
Eugenia (2/10)
73
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
2. Fundamentação Tecnológica
Eugenia (3/10)
Código: Exemplo de código Emfatic com anotações oferecidas pela Eugenia.
74
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
@gmf.diagram
– Especifica configurações do diagrama, tais como o tipo do elemento raiz do
modelo e a extensão do arquivo do editor gráfico
2. Fundamentação Tecnológica
Eugenia (4/10)
Atributo Descrição Valores possíveis
diagram.extension A extensão do arquivo do diagrama Uma extensão de arquivo
model.extension A extensão do modelo do diagrama Uma extensão de arquivo
onefile Especifica que o modelo e o diagrama devem
ser salvos no mesmo arquivo
true, false
75
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
@gmf.node
– Indica quais elementos da sintaxe abstrata irão representar nós (vértices),
além da sua forma, cor, tamanho, rótulo, etc.
2. Fundamentação Tecnológica
Eugenia (5/10)

Atributo Descrição Valores possíveis
label Valor mostrado como rótulo do nó Nome do atributo da classe
label.text Valor mostrado como rótulo do nó Texto a ser mostrado como rótulo
figure A figura que irá representar o nó
rectangle, ellipse, rounded
(padrão), svg, polygon ou classe Java
que implemente Figure
svg.uri
Endereço do arquivo SVG para representar a
figura do nó (quando figure="svg")
Uma extensão de arquivo
76
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
@gmf.link (para referência (EReference))
– Indica quais elementos da irão representar arestas, além de especificar sua
espessura, cor, estilo, tipo de pontas das setas, rótulos, etc.
2. Fundamentação Tecnológica
Eugenia (6/10)
Atributo Descrição Valores possíveis
label ou label.text Valor mostrado como rótulo da aresta Texto a ser mostrado como rótulo
source.decoration Ilustração na origem da aresta
arrow, rhomb, filledrhomb, square,
filledsquare, closedarrow,
filledclosedarrow
target.decoration Ilustração no fim da aresta (como acima)
77
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Atributo Descrição Valores possíveis
label Valor mostrado como rótulo da aresta Nome do atributo da classe
label.text Valor mostrado como rótulo da aresta Texto a ser mostrado como rótulo
source (obrigatório) Indica a origem da aresta EReference indicando a origem da aresta
target (obrigatório) Indica o destino da aresta EReference indicando o destino da aresta
source.decoration Ilustração na origem da aresta
arrow, rhomb, filledrhomb, square,
filledsquare, closedarrow,
filledclosedarrow
target.decoration Ilustração no fim da aresta (como acima)
@gmf.link (para classe (EClass))
– Indica quais elementos da irão representar arestas, além de especificar sua
espessura, cor, estilo, tipo de pontas das setas, rótulos, etc.
2. Fundamentação Tecnológica
Eugenia (7/10)
78
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
@gmf.compartment
– Indica quais nós podem ser aninhados dentro de outros nós (e.g., atributos
são aninhados dentro das classes em um Diagrama de Classes da UML)
2. Fundamentação Tecnológica
Eugenia (8/10)
Atributo Descrição Valores possíveis
collapsible Redimensionar ou não o compartimento true, false (padrão)
layout Layout do compartimento free (padrão), list
79
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
@gmf.affixed
– Indica quais nós devem estar anexos à borda de outros nós na sintaxe
gráfica
2. Fundamentação Tecnológica
Eugenia (9/10)
80
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
@gmf.label (para atributo (EAttribute))
– Especifica rótulos adicionais para um nó na sintaxe gráfica
2. Fundamentação Tecnológica
Eugenia (10/10)
Atributo Descrição Valores possíveis
label.text Valor mostrado como rótulo da aresta
Texto a ser mostrado como rótulo
quando o atributo não estiver definido
label.readOnly Indica se o valor do rótulo pode ser modificado true, false
81
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Abowd, G. D., Dey, A. K., Brown, P. J., Davies, N., Smith, M., and Steggles, P. (1999). Towards a
better understanding of context and context-awareness. In Handheld and ubiquitous computing,
pages 304–307. Springer.
Chiprianov, V., Kermarrec, Y., Rouvrais, S., and Simonin, J. (2014). Extending enterprise
architecture modeling languages for domain specificity and collaboration: application to
telecommunication service design. Software & Systems Modeling, 13(3):963–974.
Cook, D. J. and Das, S. K. (2007). How smart are our environments? An updated look at the state of
the art. Pervasive and mobile computing, 3(2):53–73.
Crotty, M., Taylor, N., Williams, H., Frank, K., Roussaki, I., and Roddy, M. (2009). A Pervasive
Environment Based on Personal Self-improving Smart Spaces. In Gerhäuser, H., Hupp, J.,
Efstratiou, C., and Heppner, J., editors, Constructing Ambient Intelligence, volume 32 of
Communications in Computer and Information Science, pages 58–62. Springer Berlin
Heidelberg.
Dey, A. K. (2001). Understanding and using context. Personal and ubiquitous computing, 5(1):4–7.
Dolinar, K., Porekar, J., McKitterick, D., Roussaki, I., Kalatzis, N., Liampotis, N., Papaioannou, I.,
Papadopoulou, E., Burney, S. M., Frank, K., Hayden, P., and Walsh, A. (2008). PERSIST
Deliverable D3.1: Detailed Design for Personal Smart Spaces. http://www.ict-persist.eu/?q=
content/persist-deliverables-and-publications. [Online; acessado em Abril-2015].
Referências (1/4)
82
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Gallacher, S. M., Papadopoulou, E., Taylor, N. K., and Williams, M. H. (2010). Putting the ‘Personal’
into Personal Smart Spaces. In Proceedings of Pervasive Personalisation Workshop, volume
2010, pages 10–17.
Kawsar, F. (2009). A document-based framework for user centric smart object systems. PhD in
Computer Science, Waseda University, Japan.
Kolovos, D. S., Paige, R. F., Kelly, T., and Polack, F. A. (2006). Requirements for domain-specific
languages. In Proceedings of the First ECOOP Workshop on Domain-Specific Program
Development.
Kolovos, D. S., García-Domínguez, A., Rose, L. M., and Paige, R. F. (2015a). Eugenia: towards
disciplined and automated development of gmf-based graphical model editors. Software &
Systems Modeling, pages 1–27.
Kortuem, G., Kawsar, F., Fitton, D., and Sundramoorthy, V. (2010). Smart objects as building blocks
for the internet of things. Internet Computing, IEEE, 14(1):44–51.
Lupiana, D., O’Driscoll, C., and Mtenzi, F. (2009). Taxonomy for ubiquitous computing environments.
In Networked Digital Technologies, 2009. NDT ’09. First International Conference on, pages
469–475.
Referências (2/4)
83
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Roussaki, I., Kalatzis, N., Liampotis, N., Papaioannou, I., Pils, C., Crotty, M., AlanWalsh, Frank, K.,
Whitmore, J., McKitterick, D., Taylor, N., McBurney, S., Papadopoulou, E., Williams, H., Dolinar,
K., Porekar, J., Venezia, C., and Bucchiarone, A. (2008). PERSIST Deliverable D2.1: Scenario
Description and Requirements Specification. http://www.ict-persist.eu/?q=content/persist-
deliverables-and-publications. [Online; acessado em Abril-2015].
Schilit, B. N. and Theimer, M. M. (1994). Disseminating active map information to mobile hosts.
Network, IEEE, 8(5):22–32
Schmidt, D. C. (2006). Guest editor’s introduction: Model-driven engineering. Computer,
39(2):0025–31.
Seidewitz, E. (2003). What models mean. IEEE software, 20(5):26–32.
Siegemund, F. (2004). A context-aware communication platform for smart objects. In Pervasive
Computing, pages 69–86. Springer.
Taylor, N. (2011). Personal Smart Spaces. In Ferscha, A., editor, Pervasive Adaptation: The Next
Generation Pervasive Computing Research Agenda, pages 79–80. Institute for Pervasive
Computing, Johannes Kepler University Linz, Linz, AUS.
Van Deursen, A., Klint, P., and Visser, J. (2000). Domain-Specific Languages: An Annotated
Bibliography. Sigplan Notices, 35(6):26–36.
Referências (3/4)
84
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Vieira, M. A. (2016). Modelagem de espaços inteligentes pessoais e espaços inteligentes fixos no
contexto de cenários de computação ubíqua. Master’s thesis, Universidade Federal de Goiás,
Goiânia, Goiás, Brazil.
Völter, M., Stahl, T., Bettin, J., Haase, A., and Helsen, S. (2013). Model-driven software
development: technology, engineering, management. John Wiley & Sons.
Weiser, M. and Brown, J. S. (1997). The coming age of calm technology. In Beyond calculation,
pages 75–85. Springer.
Referências (4/4)
85
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
→ Referência da Linguagem Emfatic
http://www.eclipse.org/epsilon/doc/articles/emfatic/
→ Tutorial Eugenia
https://www.eclipse.org/epsilon/doc/articles/eugenia-gmf-tutorial/
→ Documentação da Epsilon
http://www.eclipse.org/epsilon/doc/
→ Fórum da Epsilon
https://www.eclipse.org/forums/index.php/f/22/
→ KOLOVOS, Dimitrios S. et al. Eugenia: towards disciplined and automated
development of GMF-based graphical model editors. Software &
Systems Modeling, v. 16, n. 1, p. 229-255, 2017.
→ KOLOVOS, Dimitrios S. et al. The Epsilon Book. 2017.
Para saber mais...
86
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Mãos à obra!
Agradecimentos:
87
Simpósio Brasileiro de Sistemas
Multimídia e Web (WebMedia)
Marcos Alves Vieira
Sérgio Teixeira de Carvalho
marcos.vieira@ifgoiano.edu.br
sergio@inf.ufg.br
17 de outubro de 2017
Engenharia Dirigida por Modelos no Desenvolvimento de
Aplicações Ubíquas:
Tecnologias, Ferramentas e Linguagens
Material de apoio:
http://bit.ly/webmedia2017

Mais conteúdo relacionado

Mais procurados

Conceitos Básicos Sobre Analise de Sistemas
Conceitos Básicos Sobre Analise de SistemasConceitos Básicos Sobre Analise de Sistemas
Conceitos Básicos Sobre Analise de SistemasClayton de Almeida Souza
 
Análise estruturada de sistemas - Modelo de contexto
Análise estruturada de sistemas - Modelo de contextoAnálise estruturada de sistemas - Modelo de contexto
Análise estruturada de sistemas - Modelo de contextoLuciano Almeida
 
Atividade fundamentos-de-redes
Atividade fundamentos-de-redesAtividade fundamentos-de-redes
Atividade fundamentos-de-redesArlimar Jacinto
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturaisthaisedd
 
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Leinylson Fontinele
 
Documento de requisitos_-_especificacoes 01
Documento de requisitos_-_especificacoes 01Documento de requisitos_-_especificacoes 01
Documento de requisitos_-_especificacoes 01gtiprotec
 
Teste de software - aula 01 (motivação)
Teste de software - aula 01 (motivação)Teste de software - aula 01 (motivação)
Teste de software - aula 01 (motivação)Elmano Cavalcanti
 
Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Leinylson Fontinele
 
Conceitos e arquitetura do sistema de banco de dados
Conceitos e arquitetura do sistema de banco de dadosConceitos e arquitetura do sistema de banco de dados
Conceitos e arquitetura do sistema de banco de dadosElaine Cecília Gatto
 
Descrição formal de Casos de Uso
Descrição formal de Casos de UsoDescrição formal de Casos de Uso
Descrição formal de Casos de UsoNatanael Simões
 
Aula 02 - Escolha caso
Aula 02 - Escolha casoAula 02 - Escolha caso
Aula 02 - Escolha casoEder Samaniego
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de RequisitosCloves da Rocha
 
Modelos de Processo de Software Parte 3
Modelos de Processo de Software Parte 3Modelos de Processo de Software Parte 3
Modelos de Processo de Software Parte 3Elaine Cecília Gatto
 
Especificação de requisitos
Especificação de requisitosEspecificação de requisitos
Especificação de requisitosFernando Palma
 

Mais procurados (20)

Conceitos Básicos Sobre Analise de Sistemas
Conceitos Básicos Sobre Analise de SistemasConceitos Básicos Sobre Analise de Sistemas
Conceitos Básicos Sobre Analise de Sistemas
 
Exercicios
ExerciciosExercicios
Exercicios
 
Diagramas uml
Diagramas umlDiagramas uml
Diagramas uml
 
Análise estruturada de sistemas - Modelo de contexto
Análise estruturada de sistemas - Modelo de contextoAnálise estruturada de sistemas - Modelo de contexto
Análise estruturada de sistemas - Modelo de contexto
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
 
Atividade fundamentos-de-redes
Atividade fundamentos-de-redesAtividade fundamentos-de-redes
Atividade fundamentos-de-redes
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturais
 
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
 
Documento de requisitos_-_especificacoes 01
Documento de requisitos_-_especificacoes 01Documento de requisitos_-_especificacoes 01
Documento de requisitos_-_especificacoes 01
 
Teste de software - aula 01 (motivação)
Teste de software - aula 01 (motivação)Teste de software - aula 01 (motivação)
Teste de software - aula 01 (motivação)
 
Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)
 
Teste de Software - Introdução
Teste de Software - IntroduçãoTeste de Software - Introdução
Teste de Software - Introdução
 
Conceitos e arquitetura do sistema de banco de dados
Conceitos e arquitetura do sistema de banco de dadosConceitos e arquitetura do sistema de banco de dados
Conceitos e arquitetura do sistema de banco de dados
 
Descrição formal de Casos de Uso
Descrição formal de Casos de UsoDescrição formal de Casos de Uso
Descrição formal de Casos de Uso
 
Aula 02 - Escolha caso
Aula 02 - Escolha casoAula 02 - Escolha caso
Aula 02 - Escolha caso
 
Modelos de Engenharia de Software
Modelos de Engenharia de SoftwareModelos de Engenharia de Software
Modelos de Engenharia de Software
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
Modelos de Processo de Software Parte 3
Modelos de Processo de Software Parte 3Modelos de Processo de Software Parte 3
Modelos de Processo de Software Parte 3
 
Aula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e PseudocódigoAula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e Pseudocódigo
 
Especificação de requisitos
Especificação de requisitosEspecificação de requisitos
Especificação de requisitos
 

Semelhante a MDE Ferramentas Modelagem

Modelagem de Espaços Inteligentes Pessoais e Espaços Inteligentes Fixos no co...
Modelagem de Espaços Inteligentes Pessoais e Espaços Inteligentes Fixos no co...Modelagem de Espaços Inteligentes Pessoais e Espaços Inteligentes Fixos no co...
Modelagem de Espaços Inteligentes Pessoais e Espaços Inteligentes Fixos no co...Marcos Alves Vieira
 
Proposta de Projeto de Pesquisa - CEFET - 2014
Proposta de Projeto de Pesquisa - CEFET - 2014Proposta de Projeto de Pesquisa - CEFET - 2014
Proposta de Projeto de Pesquisa - CEFET - 2014Waldir R. Pires Jr
 
Proposta de Projeto de Pesquisa - CEFET - 2014
Proposta de Projeto de Pesquisa - CEFET - 2014Proposta de Projeto de Pesquisa - CEFET - 2014
Proposta de Projeto de Pesquisa - CEFET - 2014Waldir R. Pires Jr
 
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...Henrique Gabriel Gularte Pereira
 
Poo apostila visual c
Poo apostila visual cPoo apostila visual c
Poo apostila visual cFabiano Lima
 
Projeto e interface_com_usuário_resumo
Projeto e interface_com_usuário_resumoProjeto e interface_com_usuário_resumo
Projeto e interface_com_usuário_resumoGustavo Alcantara
 
Web 2.0: conceito, tendências e desafios
Web 2.0: conceito, tendências e desafiosWeb 2.0: conceito, tendências e desafios
Web 2.0: conceito, tendências e desafiosMauricio Garcia
 
Georreferenciamento das Ocorrencias Públicas
Georreferenciamento das Ocorrencias PúblicasGeorreferenciamento das Ocorrencias Públicas
Georreferenciamento das Ocorrencias PúblicasJoão Carlos Mancuso Jr
 
Model Driven RichUbi - A Model-Driven Process to Construct Rich Interfaces fo...
Model Driven RichUbi - A Model-Driven Process to Construct Rich Interfaces fo...Model Driven RichUbi - A Model-Driven Process to Construct Rich Interfaces fo...
Model Driven RichUbi - A Model-Driven Process to Construct Rich Interfaces fo...Luciana Zaina
 
Apresentacao minicursofinal
Apresentacao minicursofinalApresentacao minicursofinal
Apresentacao minicursofinalAlmerindo Rehem
 
Disciplina Sistemas de Informação Empresarial | DCOMP, UFS | Prof Dr Rogério ...
Disciplina Sistemas de Informação Empresarial | DCOMP, UFS | Prof Dr Rogério ...Disciplina Sistemas de Informação Empresarial | DCOMP, UFS | Prof Dr Rogério ...
Disciplina Sistemas de Informação Empresarial | DCOMP, UFS | Prof Dr Rogério ...Rogerio P C do Nascimento
 
Sistemas Embarcados - 22 06-2011
Sistemas Embarcados - 22 06-2011Sistemas Embarcados - 22 06-2011
Sistemas Embarcados - 22 06-2011Steve Rogers
 
Convergência de Tecnologias
Convergência de TecnologiasConvergência de Tecnologias
Convergência de Tecnologiasdanielborzatto
 

Semelhante a MDE Ferramentas Modelagem (20)

Modelagem de Espaços Inteligentes Pessoais e Espaços Inteligentes Fixos no co...
Modelagem de Espaços Inteligentes Pessoais e Espaços Inteligentes Fixos no co...Modelagem de Espaços Inteligentes Pessoais e Espaços Inteligentes Fixos no co...
Modelagem de Espaços Inteligentes Pessoais e Espaços Inteligentes Fixos no co...
 
Computação ubíqua
Computação ubíquaComputação ubíqua
Computação ubíqua
 
Proposta de Projeto de Pesquisa - CEFET - 2014
Proposta de Projeto de Pesquisa - CEFET - 2014Proposta de Projeto de Pesquisa - CEFET - 2014
Proposta de Projeto de Pesquisa - CEFET - 2014
 
Proposta de Projeto de Pesquisa - CEFET - 2014
Proposta de Projeto de Pesquisa - CEFET - 2014Proposta de Projeto de Pesquisa - CEFET - 2014
Proposta de Projeto de Pesquisa - CEFET - 2014
 
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
 
AuraMiddleware
AuraMiddlewareAuraMiddleware
AuraMiddleware
 
Poo apostila visual c
Poo apostila visual cPoo apostila visual c
Poo apostila visual c
 
TEES - Apresentacao Final
TEES - Apresentacao FinalTEES - Apresentacao Final
TEES - Apresentacao Final
 
Projeto e interface_com_usuário_resumo
Projeto e interface_com_usuário_resumoProjeto e interface_com_usuário_resumo
Projeto e interface_com_usuário_resumo
 
Web 2.0: conceito, tendências e desafios
Web 2.0: conceito, tendências e desafiosWeb 2.0: conceito, tendências e desafios
Web 2.0: conceito, tendências e desafios
 
WDES 2014 paper: SECOView: Uma Abordagem Baseada em Visões para Apoiar a Gove...
WDES 2014 paper: SECOView: Uma Abordagem Baseada em Visões para Apoiar a Gove...WDES 2014 paper: SECOView: Uma Abordagem Baseada em Visões para Apoiar a Gove...
WDES 2014 paper: SECOView: Uma Abordagem Baseada em Visões para Apoiar a Gove...
 
Georreferenciamento das Ocorrencias Públicas
Georreferenciamento das Ocorrencias PúblicasGeorreferenciamento das Ocorrencias Públicas
Georreferenciamento das Ocorrencias Públicas
 
Model Driven RichUbi - A Model-Driven Process to Construct Rich Interfaces fo...
Model Driven RichUbi - A Model-Driven Process to Construct Rich Interfaces fo...Model Driven RichUbi - A Model-Driven Process to Construct Rich Interfaces fo...
Model Driven RichUbi - A Model-Driven Process to Construct Rich Interfaces fo...
 
Apresentacao minicursofinal
Apresentacao minicursofinalApresentacao minicursofinal
Apresentacao minicursofinal
 
Disciplina Sistemas de Informação Empresarial | DCOMP, UFS | Prof Dr Rogério ...
Disciplina Sistemas de Informação Empresarial | DCOMP, UFS | Prof Dr Rogério ...Disciplina Sistemas de Informação Empresarial | DCOMP, UFS | Prof Dr Rogério ...
Disciplina Sistemas de Informação Empresarial | DCOMP, UFS | Prof Dr Rogério ...
 
Seminario - Versão Final
Seminario - Versão FinalSeminario - Versão Final
Seminario - Versão Final
 
Introdução aos Padrões Web e Tecnologias para o Ambiente Digital - Aula 02 - ...
Introdução aos Padrões Web e Tecnologias para o Ambiente Digital - Aula 02 - ...Introdução aos Padrões Web e Tecnologias para o Ambiente Digital - Aula 02 - ...
Introdução aos Padrões Web e Tecnologias para o Ambiente Digital - Aula 02 - ...
 
Sistemas Embarcados - 22 06-2011
Sistemas Embarcados - 22 06-2011Sistemas Embarcados - 22 06-2011
Sistemas Embarcados - 22 06-2011
 
2012 sbseg-mc2
2012 sbseg-mc22012 sbseg-mc2
2012 sbseg-mc2
 
Convergência de Tecnologias
Convergência de TecnologiasConvergência de Tecnologias
Convergência de Tecnologias
 

MDE Ferramentas Modelagem

  • 1. 1 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Marcos Alves Vieira Sérgio Teixeira de Carvalho marcos.vieira@ifgoiano.edu.br sergio@inf.ufg.br 17 de outubro de 2017 Engenharia Dirigida por Modelos no Desenvolvimento de Aplicações Ubíquas: Tecnologias, Ferramentas e Linguagens Material de apoio: http://bit.ly/webmedia2017
  • 2. 2 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Roteiro 1. Introdução 2. Fundamentação Teórica i. Computação Ubíqua ii. Computação Sensível ao Contexto iii. Espaços Inteligentes Fixos iv. Espaços Inteligentes Pessoais v. Objetos Inteligentes vi. Engenharia Dirigida por Modelos (Model-driven Engineering - MDE) 3. Fundamentação Tecnológica i. Eclipse Modeling Framework (EMF) ii. Eclipse Graphical Modeling Framework (GMF) iii. Epsilon: uma família de linguagens e ferramentas relacionadas à MDE 4. Prática: desenvolvendo um editor gráfico de modelagem 1
  • 3. 3 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) 1. Introdução 1
  • 4. 4 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Objetivo – Construção de uma ferramenta de modelagem gráfica para construção de modelos em conformidade com um metamodelo Público-alvo – Estudantes (graduação e pós-graduação) – Profissionais (desenvolvimento de sistemas) Abordagem – Teórico/prática 1. Introdução
  • 5. 5 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) 2. Fundamentação Teórica 1
  • 6. 6 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Fases da computação (Weiser e Brown, 1997): 1. Era dos mainframes – Computador era recurso escasso e atendia diversos usuários 2. Computadores pessoais (PCs) – Cada pessoa tem acesso exclusivo a um PC 3. Computação ubíqua – Computação invisível ao usuário, fundida a elementos do dia-a-dia – Não requer interação por dispositivos tradicionais (i.e. teclado e mouse) – Foco do usuário está na tarefa e não no dispositivo 2. Fundamentação Teórica Computação Ubíqua
  • 7. 7 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Algumas definições: (Schilit e Theimer, 1994): Adaptação do software de acordo com a sua localização de uso, o conjunto de pessoas e os objetos próximos, assim como as mudanças que esses objetos sofrem no decorrer do tempo (Abowd et al., 1999) e (Dey, 2001): Qualquer informação que possa ser usada para caracterizar a situação de uma pessoa, lugar ou objeto relevante para a interação entre um usuário e uma aplicação, incluindo estes dois últimos. Exemplo: 2. Fundamentação Teórica Computação Sensível ao Contexto Temperatura Software Ar-condicionado
  • 8. 8 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Definição (Lupiana et al., 2009): Um ambiente computacional e sensorial altamente integrado que efetivamente raciocine sobre os contextos físico e de usuário do espaço para agir transparentemente com base em desejos humanos. 2. Fundamentação Teórica Espaços Inteligentes Fixos (1/2)
  • 9. 9 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Definição (Lupiana et al., 2009): Um ambiente computacional e sensorial altamente integrado que efetivamente raciocine sobre os contextos físico e de usuário do espaço para agir transparentemente com base em desejos humanos. Altamente integrado: saturado com dispositivos de computação ubíqua e sensores completamente integrados com redes sem fio 2. Fundamentação Teórica Espaços Inteligentes Fixos (1/2)
  • 10. 10 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Definição (Lupiana et al., 2009): Um ambiente computacional e sensorial altamente integrado que efetivamente raciocine sobre os contextos físico e de usuário do espaço para agir transparentemente com base em desejos humanos. Raciocínio efetivo: mecanismo pseudo-inteligente para o ambiente como um todo 2. Fundamentação Teórica Espaços Inteligentes Fixos (1/2)
  • 11. 11 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Definição (Lupiana et al., 2009): Um ambiente computacional e sensorial altamente integrado que efetivamente raciocine sobre os contextos físico e de usuário do espaço para agir transparentemente com base em desejos humanos. Contexto de usuário: perfis individuais, políticas, localização atual e status de mobilidade 2. Fundamentação Teórica Espaços Inteligentes Fixos (1/2)
  • 12. 12 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Definição (Lupiana et al., 2009): Um ambiente computacional e sensorial altamente integrado que efetivamente raciocine sobre os contextos físico e de usuário do espaço para agir transparentemente com base em desejos humanos. Transparência: ações humanas e com o suporte à mobilidade sem necessidade de interação direta do usuário 2. Fundamentação Teórica Espaços Inteligentes Fixos (1/2)
  • 13. 13 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Possibilita um maior controle sobre (Cook e Das, 2007): – Os problemas de integração – O comportamento do usuário – A aquisição de conhecimento do ambiente e usuário Desvantagens (Taylor, 2011): – Espaços geograficamente limitados Ilhas de ubiquidade (Crotty et al., 2009): – Suporte limitado à computação ubíqua – Não há compartilhamento de serviços e dispositivos com outros espaços inteligentes 2. Fundamentação Teórica Espaços Inteligentes Fixos (2/2)
  • 14. 14 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Personal Smart Spaces (PSS) – Computação ubíqua + redes corporais Projeto PERSIST (Dolinar et al., 2008): – PSS → interface entre o usuário e os serviços e dispositivos – Interação com outros espaços inteligentes Características de um PSS (Roussaki et al., 2008): 1. É móvel 2. Tem um “dono” 3. Deve ser capaz de se adaptar 4. Pode aprender com interações anteriores 2. Fundamentação Teórica Espaços Inteligentes Pessoais Figura: PSS vs. espaço inteligente fixo. Adaptado de (Gallacher et al., 2010). mobilidade autoaperfeiçoamento
  • 15. 15 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Definição (Kortuem et al., 2010): Entidades físico/digitais, aumentados com capacidades de sensoriamento, processamento e possibilidade de conexão em rede Capacidades (Siegemund, 2004): – Perceber o ambiente por meio de sensores – Se comunicar com outros objetos inteligentes 2. Fundamentação Teórica Objetos Inteligentes (1/2) – Trabalhar colaborativamente – Determinar o contexto – Adaptar seu comportamento
  • 16. 16 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Propriedades (Kawsar, 2009): – ID única – Ser identificado unicamente – Autoconsciência – Saber seu estado operacional e situacional – Capacidade se descrever – Sociabilidade – Comunicar com outros objetos inteligentes e entidades computacionais (e.g., uma aplicação sensível ao contexto) – Autonomia – Tomar ações (e.g., mudar-se do estado desligado para ligado; decisões autônomas) 2. Fundamentação Teórica Objetos Inteligentes (2/2)
  • 17. 17 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Engenharia Dirigida por Modelos (Model-driven Engineering - MDE) (Seidewitz, 2003), (Schmidt, 2006) e (Völter et al., 2013): – Modelos são: – Os principais artefatos no desenvolvimento de um sistema – Representação gráfica ou textual de alto nível de um sistema – Os relacionamentos e abstrações são descritos por um metamodelo Desenvolvimento Dirigido por Modelos (Model-driven Development - MDD) e Arquitetura Dirigida por Modelos (Model-driven Architecture - MDA): – Uso de abstrações mais próximas do domínio do problema – Mitigar a distância semântica (semantic gap) existente entre o problema a ser solucionado e o ferramental (software) 2. Fundamentação Teórica Engenharia Dirigida por Modelos (1/4) Modelos ≠ Diagramas UML ‒ UML é apenas uma linguagem de modelagem ‒ Diferentes domínios têm diferentes abstrações ‒ Modelos ≠ figuras ‒ Modelos podem ser gráficos ou textuais ‒ ou ambos...
  • 18. 18 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Arquitetura de metamodelagem Meta-Object Facility (MOF) (Völter et al., 2013): – Forma de padronização para a construção de modelos e metamodelos – Apresentada pelo Object Management Group (OMG) – Cada elemento de uma camada inferior é uma instância de uma camada superior 2. Fundamentação Teórica Engenharia Dirigida por Modelos (2/4) Figura: Camadas da arquitetura MOF. Adaptado de (Völter et al., 2013).
  • 19. 19 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Camada M3: – Representa o meta-metamodelo da MOF, também chamado de Modelo MOF – Utilizado para construção dos metamodelos – Exemplos de membros dessa camada: – Modelo MOF – Ecore 2. Fundamentação Teórica Engenharia Dirigida por Modelos (2/4) Figura: Camadas da arquitetura MOF. Adaptado de (Völter et al., 2013).
  • 20. 20 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Camada M2: – Contém os metamodelos – Utilizados para modelar sistemas de domínio específico – Exemplo de membro dessa camada: – UML (Unified Modeling Language) 2. Fundamentação Teórica Engenharia Dirigida por Modelos (2/4) Figura: Camadas da arquitetura MOF. Adaptado de (Völter et al., 2013).
  • 21. 21 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Camada M1: – Composta por modelos – Descrevem sistemas utilizando as definições constantes em seus respectivos metamodelos presentes em M2 – Exemplo de membro dessa camada: – Um diagrama de classes da UML 2. Fundamentação Teórica Engenharia Dirigida por Modelos (2/4) Figura: Camadas da arquitetura MOF. Adaptado de (Völter et al., 2013).
  • 22. 22 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Camada M0: – Contém as entidades ou objetos que formam o sistema em execução – São criadas a partir das definições presentes em M1 – Exemplo de membro dessa camada: – O objeto cliente da classe Pessoa de um sistema de vendas 2. Fundamentação Teórica Engenharia Dirigida por Modelos (2/4) Figura: Camadas da arquitetura MOF. Adaptado de (Völter et al., 2013).
  • 23. 23 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Linguagem de Modelagem Específica de Domínio (Domain-specific Modeling Language - DSML) (Van Deursen et al., 2000) e (Chiprianov et al., 2014) – Linguagem textual ou gráfica para construção de modelos específicos de um determinado domínio – Definida por um metamodelo – Possui sintaxe e semântica – Sintaxe abstrata – Conceitos e seus relacionamentos – Sintaxe concreta – Elementos visuais que representam a sintaxe abstrata – Semântica – Significado das representações da sintaxe 2. Fundamentação Teórica Engenharia Dirigida por Modelos (3/4)
  • 24. 24 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Requisitos para construção de DSMLs (Kolovos et al., 2006): 1. Conformidade 2. Ortogonalidade 3. Suporte 4. Integração 5. Longevidade 6. Simplicidade 7. Qualidade 8. Escalabilidade 9. Usabilidade 2. Fundamentação Teórica Engenharia Dirigida por Modelos (4/4) Requisitos gerais Requisitos adicionais
  • 25. 25 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Requisitos para construção de DSMLs (Kolovos et al., 2006): 1. Conformidade – As construções devem corresponder a importantes conceitos do domínio 2. Ortogonalidade 3. Suporte 4. Integração 5. Longevidade 6. Simplicidade 7. Qualidade 8. Escalabilidade 9. Usabilidade 2. Fundamentação Teórica Engenharia Dirigida por Modelos (4/4)
  • 26. 26 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Requisitos para construção de DSMLs (Kolovos et al., 2006): 1. Conformidade 2. Ortogonalidade – Cada construção da linguagem deve ser usada para representar exatamente um conceito distinto do domínio 3. Suporte 4. Integração 5. Longevidade 6. Simplicidade 7. Qualidade 8. Escalabilidade 9. Usabilidade 2. Fundamentação Teórica Engenharia Dirigida por Modelos (4/4)
  • 27. 27 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Requisitos para construção de DSMLs (Kolovos et al., 2006): 1. Conformidade 2. Ortogonalidade 3. Suporte – Ferramentas para modelagem e gerenciamento de programação e.g., criação de código, edição e transformação de modelos 4. Integração 5. Longevidade 6. Simplicidade 7. Qualidade 8. Escalabilidade 9. Usabilidade 2. Fundamentação Teórica Engenharia Dirigida por Modelos (4/4)
  • 28. 28 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Requisitos para construção de DSMLs (Kolovos et al., 2006): 1. Conformidade 2. Ortogonalidade 3. Suporte 4. Integração – A linguagem, e suas ferramentas podem ser utilizadas em conjunto com outras linguagens e ferramentas com o mínimo de esforço 5. Longevidade 6. Simplicidade 7. Qualidade 8. Escalabilidade 9. Usabilidade 2. Fundamentação Teórica Engenharia Dirigida por Modelos (4/4)
  • 29. 29 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Requisitos para construção de DSMLs (Kolovos et al., 2006): 1. Conformidade 2. Ortogonalidade 3. Suporte 4. Integração 5. Longevidade – O domínio persista por um período de tempo suficiente para justificar a construção da linguagem e suas ferramentas 6. Simplicidade 7. Qualidade 8. Escalabilidade 9. Usabilidade 2. Fundamentação Teórica Engenharia Dirigida por Modelos (4/4)
  • 30. 30 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Requisitos para construção de DSMLs (Kolovos et al., 2006): 1. Conformidade 2. Ortogonalidade 3. Suporte 4. Integração 5. Longevidade 6. Simplicidade – Uma linguagem deve ser o mais simples possível 7. Qualidade 8. Escalabilidade 9. Usabilidade 2. Fundamentação Teórica Engenharia Dirigida por Modelos (4/4)
  • 31. 31 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Requisitos para construção de DSMLs (Kolovos et al., 2006): 1. Conformidade 2. Ortogonalidade 3. Suporte 4. Integração 5. Longevidade 6. Simplicidade 7. Qualidade – Fornecer mecanismos para construção de sistemas de qualidade 8. Escalabilidade 9. Usabilidade 2. Fundamentação Teórica Engenharia Dirigida por Modelos (4/4)
  • 32. 32 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Requisitos para construção de DSMLs (Kolovos et al., 2006): 1. Conformidade 2. Ortogonalidade 3. Suporte 4. Integração 5. Longevidade 6. Simplicidade 7. Qualidade 8. Escalabilidade – Fornecer construções para ajudar a gerenciar descrições de larga escala, além de permitir a construção de sistemas menores 9. Usabilidade 2. Fundamentação Teórica Engenharia Dirigida por Modelos (4/4)
  • 33. 33 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Requisitos para construção de DSMLs (Kolovos et al., 2006): 1. Conformidade 2. Ortogonalidade 3. Suporte 4. Integração 5. Longevidade 6. Simplicidade 7. Qualidade 8. Escalabilidade 9. Usabilidade – Economia, acessibilidade e facilidade de compreensão – Coberto pelos requisitos gerais, e.g., simplicidade → compreensão → facilidade de uso 2. Fundamentação Teórica Engenharia Dirigida por Modelos (4/4)
  • 34. 34 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) 3. Fundamentação Tecnológica 1
  • 35. 35 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) O que é? – Framework de modelagem construído sobre o IDE Eclipse Características – Fornece mecanismos para criação, edição e validação de modelos e metamodelos – Possibilita a geração automática de código a partir dos modelos – Os metamodelos construídos no EMF são instâncias do meta- metamodelo Ecore – Ecore é a linguagem central do EMF 2. Fundamentação Tecnológica Eclipse Modeling Framework (EMF) (1/5)
  • 36. 36 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) 2. Fundamentação Tecnológica Eclipse Modeling Framework (EMF) (2/5) Figura: Meta-metamodelo Ecore (Merks e Sugrue, 2009).
  • 37. 37 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Um metamodelo com base no Ecore é definido por meio de instâncias de: – EClass – Representa uma classe composta por atributos e referências – EAttribute – É um atributo que possui um nome e um tipo – EReference – Define uma associação entre classes – ESuperType – Define a(s) super-classe(s) de uma classe (possibilita herança múltipla) – EDataType – Tipo de um atributo – Primitivo (número inteiro ou real, string, booleano, etc...) – Enumeração EEnum – Referência a uma EClass 2. Fundamentação Tecnológica Eclipse Modeling Framework (EMF) (3/5)
  • 38. 38 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Definindo metamodelos Ecore – Editor com base em estrutura de árvore – Editor com base em diagramas – Linguagem Emfatic – Sintaxe textual para definição de metamodelos Ecore – Importação de – Código Java – Schema XML 2. Fundamentação Tecnológica Eclipse Modeling Framework (EMF) (4/5)
  • 39. 39 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) 2. Fundamentação Tecnológica Eclipse Modeling Framework (EMF) (5/5) Figura: Visão de estrutura de árvore. Figura: Visão de diagrama. Exemplo de metamodelo construído no EMF Figura: Linguagem Emfatic.
  • 40. 40 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Linguagem textual para definição de metamodelos Ecore – Bastante similar ao Java Suportado pelo IDE Eclipse – Destaque de código – Reportagem de erros Mapeamento entre Emfatic ↔ Ecore – É possível gerar um metamodelo Ecore a partir de um arquivo Emfatic – É possível gerar um arquivo Emfatic a partir de um metamodelo Ecore 2. Fundamentação Tecnológica Emfatic (1/7)
  • 41. 41 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) 2. Fundamentação Tecnológica Emfatic (2/7) Figura: Editor Emfatic.
  • 42. 42 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) 2. Fundamentação Tecnológica Emfatic (3/7) ‒ Especifica os atributos nsURI e nsPrefix da classe EPackage
  • 43. 43 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) 2. Fundamentação Tecnológica Emfatic (4/7) ‒ Definição do pacote (EPackage) ‒ No Ecore, um EPackage é semanticamente o mesmo que um metamodelo
  • 44. 44 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) 2. Fundamentação Tecnológica Emfatic (5/7) ‒ Definição de classes (EClass) ‒ A declaração de classes em Ecore é bastante similar ao Java
  • 45. 45 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Palavra-chave Emfatic Significado Ecore attr EAttribute op EOperation ref normal EReference (EReference.containment = false) val "by value" EReference (EReference.containment = true) 2. Fundamentação Tecnológica Emfatic (6/7) ‒ Definição de características das classes ‒ Atributos ‒ Referências ‒ Operações Tabela: Palavras-chave para tipos de características de classes.
  • 46. 46 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) 2. Fundamentação Tecnológica Emfatic (7/7) ‒ Multiplicidade das características da classe ‒ Define o limite inferior (lowerBound) e superior (upperBound) para cada relacionamento Emfatic ETypedElement lowerBound ETypedElement upperBound none 0 1 [?] 0 1 [] 0 ilimitado (-1) [*] 0 ilimitado (-1) [+] 1 ilimitado (-1) [1] 1 1 [n] n n [0..4] 0 4 [m..n] m n [5..*] 5 ilimitado (-1) [1..?] 1 não especificado (-2) Tabela: Expressões de multiplicidade.
  • 47. 47 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) 2. Fundamentação Tecnológica Eclipse Graphical Modeling Framework (GMF) (1/7) O que é? – Framework com base no EMF para construção de editores gráficos – Permite a criação de modelos em conformidade com um metamodelo
  • 48. 48 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) 2. Fundamentação Tecnológica Eclipse Graphical Modeling Framework (GMF) (2/7) – Requer a criação de modelos específicos para a geração de um editor gráfico – Modelo gráfico (GMFGraph) – Especifica os elementos gráficos do editor – Formas, conexões, rótulos, decorações, etc. – Modelo da ferramenta (GMFTool) – Especifica as ferramentas disponíveis na paleta do editor – Criação de elementos do metamodelo – Modelo de mapeamento (GMFMap) – Mapeia – Elementos gráficos no modelo gráfico – Ferramentas de criação no modelo da ferramenta ‒ sintaxe abstrata no metamodelo Ecore (classes, atributos, referências, etc.)
  • 49. 49 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) 2. Fundamentação Tecnológica Eclipse Graphical Modeling Framework (GMF) (3/7) Obstáculos – Os modelos do GMF são complexos e repletos de referências cruzadas – O processo de geração dos modelos é propenso a erros – Em caso de mudança no metamodelo, os modelos do GMF precisam ser gerados novamente
  • 50. 50 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) 2. Fundamentação Tecnológica Eclipse Graphical Modeling Framework (GMF) (4/7) Figura: GMF dashboard: assistente para criação dos modelos GMF (VIEIRA, 2016).
  • 51. 51 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) 2. Fundamentação Tecnológica Eclipse Graphical Modeling Framework (GMF) (5/7) Figura: Processo de criação dos modelos GMF. Adaptado de: <https://wiki.eclipse.org/Graphical_Modeling_Framework/Documentation/Index> (Vieira, 2016).
  • 52. 52 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) 2. Fundamentação Tecnológica Eclipse Graphical Modeling Framework (GMF) (6/7) Figura: Exemplo de editor gráfico construído no GMF.
  • 53. 53 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) 2. Fundamentação Tecnológica Eclipse Graphical Modeling Framework (GMF) (7/7) Figura: Editando o arquivo .gmfmap para customização do editor gráfico.
  • 54. 54 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) O que é? – Família de linguagens e ferramentas para manipulação de modelos – Geração de código, transformação, comparação, união, refatoramento e validação de modelos Composto pelas linguagens: – Epsilon Object Language (EOL) – Epsilon Validation Language (EVL) – Epsilon Transformation Language (ETL) – Epsilon Comparison Language (ECL) Eugenia – Ferramenta que auxilia na geração dos modelos requeridos pelo GMF 2. Fundamentação Tecnológica Epsilon – Epsilon Merging Language (EML) – Epsilon Wizard Language (EWL) – Epsilon Generation Language (EGL)
  • 55. 55 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) O que é? – Núcleo das linguagens da família Epsilon – As demais linguagens estendem a EOL em sintaxe e semântica – Oferece funcionalidades sobre as quais as demais linguagens são implementadas – Pode ser usada independentemente – Criar, consultar e modificar modelos 2. Fundamentação Tecnológica Epsilon Object Language (EOL) (1/4)
  • 56. 56 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Características – Todas as construções usuais em programação – Laços while e for, variáveis, etc. – Possibilidade de criar e realizar chamadas a métodos de objetos Java – Suporte para a adição dinâmica de operações em metaclasses em tempo de execução – Suporte a interação com o usuário – Possibilidade de criação de bibliotecas de operações para serem importadas e utilizadas em outras linguagens Epsilon 2. Fundamentação Tecnológica Epsilon Object Language (EOL) (2/4)
  • 57. 57 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) 2. Fundamentação Tecnológica Epsilon Object Language (EOL) (3/4) Figura: Visão geral do sistema de tipos de dados da linguagem EOL (Kolovos et al., 2015).
  • 58. 58 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) 2. Fundamentação Tecnológica Epsilon Object Language (EOL) (4/4) Código: Exemplo de código em linguagem EOL para calcular e imprimir a profundidade de cada árvore (Tree) (Kolovos et al., 2015).
  • 59. 59 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Objetivo – Oferecer funcionalidades de validação à família Epsilon – Especificar e avaliar restrições (invariantes) em modelos de um metamodelo Características – Distinção entre erros (error) e avisos (warning) durante a validação – Especificação de consertos (quick fix) para erros encontrados pelas restrições – Permite definir dependências entre as invariantes – e.g., se a restrição A falhar, então não avalie a restrição B – Todas as funcionalidades oferecidas pela linguagem EOL – Suporte a operações lógicas de primeira ordem oriundas da OCL (select, reject, collect, etc.) – Suporte a interação com usuário 2. Fundamentação Tecnológica Epsilon Validation Language (EVL) (1/12)
  • 60. 60 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) – Especificações das validações são organizadas em módulos (EvlModule) – Um módulo pode conter um conjunto de restrições (invariantes) – Agrupadas pelo contexto em que serão aplicadas 2. Fundamentação Tecnológica Código: Exemplo de código em linguagem EVL para impedir autoreferenciamento em uma determinada metaclasse (Vieira, 2016). Figura: Descrição do erro (Vieira, 2016). Figura: Erro encontrado no modelo (Vieira, 2016). Epsilon Validation Language (EVL) (2/12)
  • 61. 61 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) 2. Fundamentação Tecnológica Figura: Sintaxe abstrata da linguagem EVL (Kolovos et al., 2015). Epsilon Validation Language (EVL) (3/12)
  • 62. 62 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) 2. Fundamentação Tecnológica Context – Especifica o tipo de instâncias sobre as quais as invariantes (Invariant) serão avaliadas – Pode opcionalmente definir uma guarda (guard) – Limita sua aplicabilidade para um subconjunto menor – Se uma guarda falha para uma instância de um tipo específico, nenhuma de suas invariantes é avaliada Epsilon Validation Language (EVL) (4/12)
  • 63. 63 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) 2. Fundamentação Tecnológica Invariant – Cada invariante define um nome e um corpo (check) – Pode ser do tipo – restrição (Constraint), que lança um erro (error) – crítica (Critique), lançando um aviso (warning) – Pode opcionalmente definir uma guarda (guard) – Pode definir uma mensagem (message) descrevendo o erro – Pode opcionalmente definir um ou mais consertos (Fix) Epsilon Validation Language (EVL) (5/12)
  • 64. 64 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) 2. Fundamentação Tecnológica Guard – Limita a aplicabilidade das invariantes a instâncias do tipo especificado – Pode ser usada em dois níveis: – No nível do contexto (Contex), limita todas as invariantes do contexto – No nível da invariante (Invariant), limita uma invariante específica Epsilon Validation Language (EVL) (6/12)
  • 65. 65 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) 2. Fundamentação Tecnológica Fix – Permite a correção semi-automática de erros encontrados durante a validação – É possível definir um título (title) e um bloco do, onde a funcionalidade de conserto deve ser definida usando a linguagem EOL – Deve-se garantir que o conserto realmente repare a inconsistência Epsilon Validation Language (EVL) (7/12)
  • 66. 66 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) 2. Fundamentação Tecnológica Constraint – Define restrições que são usadas para capturar erros críticos que invalidam o modelo – Gera um erro (error) – São uma subclasse de Invariant, herdando suas características Epsilon Validation Language (EVL) (8/12)
  • 67. 67 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) 2. Fundamentação Tecnológica Critique – Define restrições usadas para capturar situações que não invalidam o modelo, mas devem ser consideradas para melhorar sua qualidade – Gera um aviso (warning) – São uma subclasse de Invariant, herdando suas características Epsilon Validation Language (EVL) (9/12)
  • 68. 68 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) 2. Fundamentação Tecnológica Pre | Post – Contém declarações EOL que podem ser executadas antes (pre) ou após (post) a avaliação das invariantes Epsilon Validation Language (EVL) (10/12)
  • 69. 69 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Fases da execução de um módulo EVL: Fase 1 – Executa a seção pre Fase 2 – Para cada instância, a guarda (guard) e o contexto (context) são avaliados – Se a guarda (guard) de uma invariante for satisfeita, o corpo (body) da invariante é avaliada – Caso o corpo seja avaliado como falso, a mensagem (message) definida, juntamente com os consertos (fix) disponíveis, são adicionados à ValidationTrace Fase 3 – Examina a ValidationTrace por restrições não satisfeitas – As mensagens são apresentadas – O usuário pode selecionar um ou mais consertos (fix) Fase 4 – Executa a seção post 2. Fundamentação Tecnológica Epsilon Validation Language (EVL) (11/12)
  • 70. 70 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) 2. Fundamentação Tecnológica Epsilon Validation Language (EVL) (12/12) Código: Exemplo de código EVL (Vieira, 2016). ‒ Verifica se um nome foi definido para instâncias da metaclasse Actuator ‒ Gera um erro (error) ‒ Só é avaliada se satisfizer a restrição HasName ‒ Verifica se o nome inicia com letra minúscula ‒ Oferece duas opções para conserto (fix) ‒ Gera um aviso (warning)
  • 71. 71 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) O que é? – Ferramenta da família Epsilon que gera automaticamente os modelos GMFGraph, GMFTool e GMFMap, necessários para a implementação de um editor GMF Objetivo – Diminuir a complexidade na criação de ferramentas de modelagem gráficas com base no GMF Funcionamento – Utiliza um metamodelo Ecore anotado, escrito em linguagem Emfatic – Anotações de alto nível – Realiza transformações automatizadas com base nas anotações Código Emfatic anotado Modelos necessários pelo GMF 2. Fundamentação Tecnológica Eugenia (1/10)
  • 72. 72 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Categorias de anotações – @gmf.diagram – @gmf.node – @gmf.link – @gmf.compartment – @gmf.affixed – @gmf.label Atributos – Cada categoria de anotação suporta uma série de atributos – Cada atributo deve ter um valor, dentro de uma lista de valores possíveis 2. Fundamentação Tecnológica Eugenia (2/10)
  • 73. 73 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) 2. Fundamentação Tecnológica Eugenia (3/10) Código: Exemplo de código Emfatic com anotações oferecidas pela Eugenia.
  • 74. 74 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) @gmf.diagram – Especifica configurações do diagrama, tais como o tipo do elemento raiz do modelo e a extensão do arquivo do editor gráfico 2. Fundamentação Tecnológica Eugenia (4/10) Atributo Descrição Valores possíveis diagram.extension A extensão do arquivo do diagrama Uma extensão de arquivo model.extension A extensão do modelo do diagrama Uma extensão de arquivo onefile Especifica que o modelo e o diagrama devem ser salvos no mesmo arquivo true, false
  • 75. 75 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) @gmf.node – Indica quais elementos da sintaxe abstrata irão representar nós (vértices), além da sua forma, cor, tamanho, rótulo, etc. 2. Fundamentação Tecnológica Eugenia (5/10) Atributo Descrição Valores possíveis label Valor mostrado como rótulo do nó Nome do atributo da classe label.text Valor mostrado como rótulo do nó Texto a ser mostrado como rótulo figure A figura que irá representar o nó rectangle, ellipse, rounded (padrão), svg, polygon ou classe Java que implemente Figure svg.uri Endereço do arquivo SVG para representar a figura do nó (quando figure="svg") Uma extensão de arquivo
  • 76. 76 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) @gmf.link (para referência (EReference)) – Indica quais elementos da irão representar arestas, além de especificar sua espessura, cor, estilo, tipo de pontas das setas, rótulos, etc. 2. Fundamentação Tecnológica Eugenia (6/10) Atributo Descrição Valores possíveis label ou label.text Valor mostrado como rótulo da aresta Texto a ser mostrado como rótulo source.decoration Ilustração na origem da aresta arrow, rhomb, filledrhomb, square, filledsquare, closedarrow, filledclosedarrow target.decoration Ilustração no fim da aresta (como acima)
  • 77. 77 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Atributo Descrição Valores possíveis label Valor mostrado como rótulo da aresta Nome do atributo da classe label.text Valor mostrado como rótulo da aresta Texto a ser mostrado como rótulo source (obrigatório) Indica a origem da aresta EReference indicando a origem da aresta target (obrigatório) Indica o destino da aresta EReference indicando o destino da aresta source.decoration Ilustração na origem da aresta arrow, rhomb, filledrhomb, square, filledsquare, closedarrow, filledclosedarrow target.decoration Ilustração no fim da aresta (como acima) @gmf.link (para classe (EClass)) – Indica quais elementos da irão representar arestas, além de especificar sua espessura, cor, estilo, tipo de pontas das setas, rótulos, etc. 2. Fundamentação Tecnológica Eugenia (7/10)
  • 78. 78 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) @gmf.compartment – Indica quais nós podem ser aninhados dentro de outros nós (e.g., atributos são aninhados dentro das classes em um Diagrama de Classes da UML) 2. Fundamentação Tecnológica Eugenia (8/10) Atributo Descrição Valores possíveis collapsible Redimensionar ou não o compartimento true, false (padrão) layout Layout do compartimento free (padrão), list
  • 79. 79 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) @gmf.affixed – Indica quais nós devem estar anexos à borda de outros nós na sintaxe gráfica 2. Fundamentação Tecnológica Eugenia (9/10)
  • 80. 80 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) @gmf.label (para atributo (EAttribute)) – Especifica rótulos adicionais para um nó na sintaxe gráfica 2. Fundamentação Tecnológica Eugenia (10/10) Atributo Descrição Valores possíveis label.text Valor mostrado como rótulo da aresta Texto a ser mostrado como rótulo quando o atributo não estiver definido label.readOnly Indica se o valor do rótulo pode ser modificado true, false
  • 81. 81 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Abowd, G. D., Dey, A. K., Brown, P. J., Davies, N., Smith, M., and Steggles, P. (1999). Towards a better understanding of context and context-awareness. In Handheld and ubiquitous computing, pages 304–307. Springer. Chiprianov, V., Kermarrec, Y., Rouvrais, S., and Simonin, J. (2014). Extending enterprise architecture modeling languages for domain specificity and collaboration: application to telecommunication service design. Software & Systems Modeling, 13(3):963–974. Cook, D. J. and Das, S. K. (2007). How smart are our environments? An updated look at the state of the art. Pervasive and mobile computing, 3(2):53–73. Crotty, M., Taylor, N., Williams, H., Frank, K., Roussaki, I., and Roddy, M. (2009). A Pervasive Environment Based on Personal Self-improving Smart Spaces. In Gerhäuser, H., Hupp, J., Efstratiou, C., and Heppner, J., editors, Constructing Ambient Intelligence, volume 32 of Communications in Computer and Information Science, pages 58–62. Springer Berlin Heidelberg. Dey, A. K. (2001). Understanding and using context. Personal and ubiquitous computing, 5(1):4–7. Dolinar, K., Porekar, J., McKitterick, D., Roussaki, I., Kalatzis, N., Liampotis, N., Papaioannou, I., Papadopoulou, E., Burney, S. M., Frank, K., Hayden, P., and Walsh, A. (2008). PERSIST Deliverable D3.1: Detailed Design for Personal Smart Spaces. http://www.ict-persist.eu/?q= content/persist-deliverables-and-publications. [Online; acessado em Abril-2015]. Referências (1/4)
  • 82. 82 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Gallacher, S. M., Papadopoulou, E., Taylor, N. K., and Williams, M. H. (2010). Putting the ‘Personal’ into Personal Smart Spaces. In Proceedings of Pervasive Personalisation Workshop, volume 2010, pages 10–17. Kawsar, F. (2009). A document-based framework for user centric smart object systems. PhD in Computer Science, Waseda University, Japan. Kolovos, D. S., Paige, R. F., Kelly, T., and Polack, F. A. (2006). Requirements for domain-specific languages. In Proceedings of the First ECOOP Workshop on Domain-Specific Program Development. Kolovos, D. S., García-Domínguez, A., Rose, L. M., and Paige, R. F. (2015a). Eugenia: towards disciplined and automated development of gmf-based graphical model editors. Software & Systems Modeling, pages 1–27. Kortuem, G., Kawsar, F., Fitton, D., and Sundramoorthy, V. (2010). Smart objects as building blocks for the internet of things. Internet Computing, IEEE, 14(1):44–51. Lupiana, D., O’Driscoll, C., and Mtenzi, F. (2009). Taxonomy for ubiquitous computing environments. In Networked Digital Technologies, 2009. NDT ’09. First International Conference on, pages 469–475. Referências (2/4)
  • 83. 83 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Roussaki, I., Kalatzis, N., Liampotis, N., Papaioannou, I., Pils, C., Crotty, M., AlanWalsh, Frank, K., Whitmore, J., McKitterick, D., Taylor, N., McBurney, S., Papadopoulou, E., Williams, H., Dolinar, K., Porekar, J., Venezia, C., and Bucchiarone, A. (2008). PERSIST Deliverable D2.1: Scenario Description and Requirements Specification. http://www.ict-persist.eu/?q=content/persist- deliverables-and-publications. [Online; acessado em Abril-2015]. Schilit, B. N. and Theimer, M. M. (1994). Disseminating active map information to mobile hosts. Network, IEEE, 8(5):22–32 Schmidt, D. C. (2006). Guest editor’s introduction: Model-driven engineering. Computer, 39(2):0025–31. Seidewitz, E. (2003). What models mean. IEEE software, 20(5):26–32. Siegemund, F. (2004). A context-aware communication platform for smart objects. In Pervasive Computing, pages 69–86. Springer. Taylor, N. (2011). Personal Smart Spaces. In Ferscha, A., editor, Pervasive Adaptation: The Next Generation Pervasive Computing Research Agenda, pages 79–80. Institute for Pervasive Computing, Johannes Kepler University Linz, Linz, AUS. Van Deursen, A., Klint, P., and Visser, J. (2000). Domain-Specific Languages: An Annotated Bibliography. Sigplan Notices, 35(6):26–36. Referências (3/4)
  • 84. 84 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Vieira, M. A. (2016). Modelagem de espaços inteligentes pessoais e espaços inteligentes fixos no contexto de cenários de computação ubíqua. Master’s thesis, Universidade Federal de Goiás, Goiânia, Goiás, Brazil. Völter, M., Stahl, T., Bettin, J., Haase, A., and Helsen, S. (2013). Model-driven software development: technology, engineering, management. John Wiley & Sons. Weiser, M. and Brown, J. S. (1997). The coming age of calm technology. In Beyond calculation, pages 75–85. Springer. Referências (4/4)
  • 85. 85 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) → Referência da Linguagem Emfatic http://www.eclipse.org/epsilon/doc/articles/emfatic/ → Tutorial Eugenia https://www.eclipse.org/epsilon/doc/articles/eugenia-gmf-tutorial/ → Documentação da Epsilon http://www.eclipse.org/epsilon/doc/ → Fórum da Epsilon https://www.eclipse.org/forums/index.php/f/22/ → KOLOVOS, Dimitrios S. et al. Eugenia: towards disciplined and automated development of GMF-based graphical model editors. Software & Systems Modeling, v. 16, n. 1, p. 229-255, 2017. → KOLOVOS, Dimitrios S. et al. The Epsilon Book. 2017. Para saber mais...
  • 86. 86 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Mãos à obra! Agradecimentos:
  • 87. 87 Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia) Marcos Alves Vieira Sérgio Teixeira de Carvalho marcos.vieira@ifgoiano.edu.br sergio@inf.ufg.br 17 de outubro de 2017 Engenharia Dirigida por Modelos no Desenvolvimento de Aplicações Ubíquas: Tecnologias, Ferramentas e Linguagens Material de apoio: http://bit.ly/webmedia2017