Izon Thomaz Mielke UMA ABORDAGEM BASEADA EM MODELOS PARA ESPECIFICAÇÃO E DETECÇÃO DE SITUAÇÕES EM SISTEMAS SENSÍVEIS AO CONTEXTO

Documentos relacionados
Bruno Loureiro Rezende. Um Framework para a Automação de Testes com Linguagens de Especificação Configuráveis DISSERTAÇÃO DE MESTRADO

Uma meta-ferramenta de geração de diagramas utilizada na engenharia reversa de sistemas legados.

Ontologias: Definições e Tipos

Usando a abordagem MDA no desenvolvimento de sistemas multi-agentes

PROJETO DE INTERFACES PARA ÁLGEBRA DE MAPAS EM GEOPROCESSAMENTO NO AMBIENTE SPRING

Desenvolvimento Orientado a Modelos

Igor Magri Vale UMA ABORDAGEM ORIENTADA A MODELOS PARA DESENVOLVIMENTO DE APLICAÇÕES SENSÍVEIS AO CONTEXTO NO AMBIENTE DE TV DIGITAL

Utilização de uma estratégia para identificação de fontes de informação na fase de elicitação

Um ambiente de suporte para uma linguagem de modelagem de sistemas multi-agentes

Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP:

Ontologias: Definições e Tipos

UML 2.0 Método, Linguagem e Ferramenta. Prof. Cesar Augusto Tacla

132 6 Conclusão 6.1. Contribuições da Tese

Introdução. Introdução. Introdução. Planejamento da disciplina. Modelagem de Processos de Negócio. Prof.: Clarindo Isaías Pereira da Silva e Pádua

Model Driven Development (MDD)

6.1. Teste Baseado em Gramática e Outras Abordagens de Teste

TACIANO PINHEIRO DE ALMEIDA ALCÂNTARA. Erro! Fonte de referência não encontrada. FORTALEZA

Desenvolvimento de Software Baseado em Componentes. Paulo C. Masiero

7 Conclusão e Trabalhos Futuros

Integração de Ontologia com Modelagem de Processo: Um Método para Facilitar a Elicitação de Requisitos

Metamodelos para Banco de Dados. Carlos Julian Menezes Araújo Prof. Dr. Robson do Nascimento Fidalgo

Capítulo 5 Modelação do Sistema 1

ONTOBRAS Seminário de Pesquisa em Ontologia do Brasil

INF1013 MODELAGEM DE SOFTWARE

MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro

Marcos Borges Pessoa. Geração e execução automática de scripts de teste para aplicações web a partir de casos de uso direcionados por comportamento

UML Visão Geral UML Visão geral v.1.1, Novembro de 2001

MANUAL PARA DESENVOLVIMENTO DE SOFTWARE TRABALHO DE CONCLUSAO DE CURSO EM SISTEMAS DE INFORMAÇÃO

INF1012 MODELAGEM DE DADOS. Departamento de Informática PUC-Rio. Ivan Mathias Filho A Abordagem Entidade-Relacionamento

Aula 01 Conceito de Banco de Dados e SGBD

Análise e projeto de sistemas

Engenharia de Usabilidade

especificação por meio de exemplos não é garantia de corretude, mas a experiência mostra que tende a ser melhor do que o estado da prática hoje

Geração semi-automática de massas de testes funcionais a partir da composição de casos de uso e tabelas de decisão

Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

Q d( ) P. a( ) c( ) e( ) c( ) S. c( ) d( )

Requisitos de sistemas

Introdução ao Catalysis

Ciência da Computação. Análise e Projeto Orientado a Objetos UML. Anderson Belgamo

2 Metodologias para Projetos de Aplicações Hipermidia

Projeto de Banco de Dados. Componentes de um Sistema de Informação. Arquitetura de SI. Sistema de Informação (SI) SI nas Organizações

Fábio Amado João Maio 33306

APLICAÇÃO DA ENGENHARIA DE REQUISITOS E ESPECIFICAÇÃO DE REQUISITOS NA IDENTIFICAÇÃO DE ESCOPO DE SISTEMA

1.1. Declaração do Problema e Limitações dos Trabalhos Relacionados Um Framework Conceitual para SMAs

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Princípios da Engenharia de Software aula 03

SABiO: Systematic Approach for Building Ontologies

Como Modelar com UML 2

Sabrina Silva de Moura

EXEHDA-SS: Uma Contribuição a Sensibilidade ao Contexto na Medicina Ubíqua

Desenvolvimento Dirigido por Modelos: Conceitos, Aplicações, e Perspectivas. Prof. Valdemar Neto INF-UFG

DIAGRAMAS DE CLASSE UML

Desenvolvimento de Software Baseado em Componentes. Paulo C. Masiero

6. Considerações Finais

Interligação de pessoas, habilidades técnicas e fazeres e preservação da memória institucional

Pedro Pignaton Negri

Notas de Aula 03: Introdução a Orientação a Objetos e a UML

Model Driven Architecture. Centro de Informática/UFPE Fernando Trinta

JADEX: A BDI REASONING ENGINE. Alexander Pokahr, Lars Braubach e Winfried Lamersdorf Springer US - Multi-Agent Programming 2005 pp.

Projeto e Implementação de uma Ferramenta Gráfica para UID

Matchmaking Uma infraestrutura para alinhamento de esquemas

FERRAMENTA DE AUXÍLIO AO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE INTEGRANDO TECNOLOGIAS OTIMIZADORAS

RUP Unified Process. Profª Jocelma Rios

Introdução à UML. Universidade Federal de Mato Grosso do Sul Sistemas de Informação - CPCX. Prof. Fernando Maia da Mota

Prof. Fábio Lúcio Meira

6 Considerações Finais

Curso de Sistemas de Informação. Karla Donato Fook DESU / DComp. Modelagem de Dados UML

Engenharia de Software I: Introdução. Graduação em Informática 2009 Profa. Itana Gimenes

6 Conclusão. 6.1 Trabalhos relacionados

S14 - Engenharia de Requisitos cap.5

Elaboração de uma metodologia para o desenvolvimento de interfaces com o

3 Arquitetura para a Coordenação e a Composição de Artefatos de Software

Introdução à Gestão de Processos de Negócios

IMPLEMENTAÇÃO DE UM SITE E-COMMERCE

Teste Funcional baseado em Modelos Gramaticais

Aula 1.7 Introdução a APOO e UML

Heron Vilela de Oliveira e Silva

Um Método para Melhoria de Dados Estruturados de Imóveis

! Introdução. " Motivação para Processos de Software. ! Processo Unificado (USDP) " Definições " RUP x USDP " Características do Processo Unificado

MODELAGEM E DESENVOLVIMENTO DE UMA FERRAMENTA HIPERMÍDIA DE ENSINO VOLTADA AO SETOR AGROPECUÁRIO, USANDO OOHDM

ENGENHARIA DE USABILIDADE E INTERFACES

POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos

Requisitos de Sistemas

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Geraldo da Silva Rocha Netto. Escalonamento Flexível de Workflows com Restrições Temporais. Dissertação de Mestrado

Visão Geral da UML. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

Um Método para o Desenvolvimento de Software Baseado em Componentes e Aspectos

Engenharia de Software

Uma ferramenta para Definição de Mapeamentos entre Vocabulários usados na publicação de Dados Linkados

SHDM.Net - um Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

5 Modelo Conceitual de Teste

Aula 01 Revisão Geral Banco de Dados I Conceito de Banco de Dados e SGBD

Componente de aplicação. Figura 1 - Elementos funcionais de uma aplicação sendo executados de forma distribuída

Tópicos da Aula. Conceitos de programação orientada a objetos. Projeto orientado a objetos com UML

Oferta de disciplinas para o período 2013/2

Model Driven Development (MDD)

Engenharia de Software I Processos de desenvolvimento de SW. profa. Denise Neves

Transcrição:

Izon Thomaz Mielke UMA ABORDAGEM BASEADA EM MODELOS PARA ESPECIFICAÇÃO E DETECÇÃO DE SITUAÇÕES EM SISTEMAS SENSÍVEIS AO CONTEXTO Vitória - ES 25 de janeiro de 2013

Izon Thomaz Mielke UMA ABORDAGEM BASEADA EM MODELOS PARA ESPECIFICAÇÃO E DETECÇÃO DE SITUAÇÕES EM SISTEMAS SENSÍVEIS AO CONTEXTO Dissertação apresentada para obtenção do grau de Mestre em Informática pela Universidade Federal do Espirito Santo. Orientadora: Prof a. Dr a. Patrícia Dockhorn Costa Coorientador: Prof. Dr. João Paulo Andrade Almeida UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO TECNOLÓGICO DEPARTAMENTO DE INFORMÁTICA Vitória - ES 25 de janeiro de 2013

Dissertação de Mestrado sob o título Uma Abordagem Orientada a Modelos Para Especificação e Detecção de Situações em Sistemas Sensíveis ao Contexto, defendida por Izon Thomaz Mielke e aprovada em 25 de janeiro de 2013, em Vitória, Estado do Espírito Santo, pela banca examinadora constituída por: Prof a. Dr a. Patrícia Dockhorn Costa Orientadora Prof. Dr. João Paulo Andrade Almeida Coorientador Prof. Dr. José Gonçalves Pereira Filho Universidade Federal do Espírito Santo Prof. Dr. Luís Ferreira Pires Universidade de Twente, Holanda

DEDICATÓRIA A todos aqueles que, de alguma forma, contribuíram para a conclusão deste trabalho.

AGRADECIMENTOS Agradeço primeiramente a Deus por esta conquista. Aos meus pais, pelo incentivo que sempre me deram, aos os familiares que me apoiaram nesta jornada e à minha namorada, por estar sempre ao meu lado. Aos meus colegas de mestrado, pela amizade e pelos bons momentos, em especial ao Roberto, pelas discussões e auxilio em todas as disciplinas; e ao Isaac por conceber a plataforma de implementação utilizada neste trabalho. Gostaria de agradecer especialmente à minha orientadora Patrícia e ao meu coorientador João Paulo por toda ajuda e esforço no desenvolvimento deste trabalho. Sem vocês este trabalho não seria possível. A todos aqueles que, de uma forma ou de outra, me ajudaram a chegar até aqui, muito obrigado!

RESUMO Aplicações sensíveis ao contexto usam informações contextuais para customizar serviços de acordo com as situações e as necessidades dos seus usuários. Um dos desafios associados ao desenvolvimento deste tipo de aplicação está em especificar os modelos conceituais que representam as situações de interesse da aplicação. O objetivo desta dissertação é propor uma metodologia orientada a modelos para auxiliar o desenvolvimento de aplicações sensíveis ao contexto, com foco na especificação e detecção de situações contextuais. Para atingir este objetivo, o trabalho propõe uma linguagem gráfica de modelagem de situações, chamada SML (Situation Modeling Language), que permite especificar diferentes tipos de situação considerando aspectos como composição de situações e inferência temporal. A fim de permitir a detecção de situações, os modelos descritos em SML podem ser utilizados para gerar uma implementação baseada em regras que observa contexto e controla o ciclo de vida das situações de interesse da aplicação. O trabalho descreve como os elementos especificados em SML são transformados em código a ser executado pela máquina de regras Drools. Finalmente, para apoiar o desenvolvimento de aplicações sensíveis ao contexto, são propostas ferramentas que auxiliam o processo de modelagem e de transformação do modelo em código. Os conceitos envolvidos na construção de SML e na geração automática de código são exemplificados por meio de um cenário de detecção de fraudes bancárias. Palavras-chave: Especificação de Situações, Detecção de Situações, Implementação baseada em Regras, Desenvolvimento Orientado a Modelos.

ABSTRACT Context-aware applications manipulate context information to adapt services according to the users current situation and needs. One of the challenges of developing context-aware applications refers to the specification of the conceptual models that represent the situations of interest. The objective of this thesis is to propose a model-driven methodology to assist the development of context-aware applications, focusing on the specification and the detection of contextual situations. To achieve this goal, the work proposes a graphical language for modeling situations, coined SML (Situation Modeling Language), which allows the user to specify situation types considering aspects such as composition of situations and their temporal reasoning. In order to allow situation detection, the models described in SML can be used to generate a rule-based implementation, which is capable of observing context and controlling situations lifecycle. The work describes how the elements specified in SML are transformed into code to be executed in the Drools rule engine. Finally, to support the development of applications, we propose tools to assist the modeling phase, as well as the implementation phase, by means of code generation. The concepts involved in the design of SML and the transformations of SML models to Drools code are exemplified by means of a banking scenario for detecting fraudsusceptible behavior. Keywords: Situation Specification, Situation Detection, Rule-based Implementation, Model-Driven Development.

SUMÁRIO 1 INTRODUÇÃO... 10 1.1 MOTIVAÇÃO... 10 1.2 OBJETIVOS... 12 1.3 METODOLOGIA... 13 1.4 ESTRUTURA... 15 2 CONCEITOS BÁSICOS... 17 2.1 SENSIBILIDADE AO CONTEXTO... 17 2.1.1 Contexto... 18 2.1.2 Aplicação Sensível ao Contexto... 19 2.2 SITUAÇÕES... 21 2.3 MODELAGEM DE CONTEXTO... 23 2.3.1 Entidades e Contexto... 24 2.4 DESENVOLVIMENTO ORIENTADO A MODELOS... 25 2.4.1 Modelo e Metamodelo... 25 2.4.2 Abordagem MDD... 26 2.5 PLATAFORMA SCENE... 29 2.6 CONSIDERAÇÕES DO CAPÍTULO... 31 3 TRABALHOS RELACIONADOS... 32 3.1 A SOFTWARE ENGINEERING FRAMEWORK FOR CONTEXT-AWARE PERVASIVE COMPUTING... 33 3.2 CONTEXT AWARE ENVIRONMENTS : FROM SPECIFICATION TO IMPLEMENTATION 35 3.3 ONTOLOGY-BASED SITUATION AWARENESS... 37 3.4 HIERARCHICAL SITUATION MODELING AND REASONING FOR PERVASIVE COMPUTING... 39 3.5 SITUATION DETERMINATION WITH REUSABLE SITUATION SPECIFICATIONS... 40 3.6 SITUATION SPECIFICATION AND REALIZATION IN RULE-BASED CONTEXT- AWARE APPLICATIONS... 42 3.7 DISCUSSÃO... 44

4 LINGUAGEM DE MODELAGEM DE SITUAÇÕES (SML)... 46 4.1 REQUISITOS... 46 4.2 CENÁRIO DE APLICAÇÃO... 47 4.3 MODELO ESTRUTURAL DE CONTEXTO... 48 4.3.1 Exemplo de Modelo de Contexto... 49 4.3.2 Metamodelo de Contexto... 51 4.4 MODELO DE SITUAÇÕES... 56 4.5 METAMODELO DE SITUAÇÕES... 63 4.6 SINTAXE CONCRETA DE SML... 69 4.7 CONSIDERAÇÕES DO CAPÍTULO... 73 5 AVALIAÇÃO DA NOTAÇÃO GRÁFICA... 74 5.1 PRINCÍPIOS GRÁFICOS... 74 5.1.1 Princípio da Clareza Semiótica... 75 5.1.2 Princípio da Discriminabilidade Perceptual... 76 5.1.3 Princípio da Transparência Semântica... 79 5.1.4 Princípio da Expressividade Visual... 80 5.1.5 Princípio da Codificação Dupla... 81 5.1.6 Princípio da Economia Gráfica... 81 5.2 CONSIDERAÇÕES DO CAPÍTULO... 83 6 FORMALIZAÇÃO SEMÂNTICA DE SML... 84 6.1 MODELO BASEADO EM FRAMES... 84 6.2 TIPOS SIMPLES DE SITUAÇÃO... 87 6.3 TIPOS COMPLEXOS DE SITUAÇÕES.... 89 6.4 CONCLUSÕES DO CAPÍTULO... 91 7 REALIZAÇÃO DE SITUAÇÕES... 93 7.1 VISÃO GERAL DA TRANSFORMAÇÃO... 93 7.2 DETECÇÃO DE SITUAÇÕES... 95 7.3 REGRAS DE TRANFORMAÇÃO... 99 7.4 APLICAÇÃO DE MONITORAMENTO BANCÁRIO... 102 7.5 CONSIDERAÇÕES DO CAPÍTULO... 106 8 SUPORTE FERRAMENTAL... 107

8.1 DO MODELO UML PARA MODELO DE CONTEXTO... 107 8.2 EDITOR DE DIAGRAMAS SML... 109 8.2.1 Obeo Designer... 110 8.3 TRANSFORMAÇÃO DE MODELOS SML EM CÓDIGO... 112 8.4 CONSIDERAÇÕES DO CAPÍTULO... 113 9 CONSIDERAÇÕES FINAIS... 114 9.1 CONCLUSÕES... 114 9.2 TRABALHOS FUTUROS... 116 REFERÊNCIAS... 118 ANEXO A COMPARAÇÃO COM A ABORDAGEM DE MODELAGEM DE (COSTA, 2007)... 123 ANEXO B VISÃO COMPLETA DO METAMODELO DE CONTEXTO... 128 ANEXO C VISÃO COMPLETA DO METAMODELO DE SITUAÇÕES... 129 ANEXO D CÓDIGO UTILIZADO NA TRANSFORMAÇÃO DE MODELOS EM CÓDIGO DROOLS... 130 ANEXO E CÓDIGO UTILIZADO NA TRANSFORMAÇÃO DE MODELOS UML EM MODELOS DE CONTEXTO... 150 PUBLICAÇÕES DO AUTOR... 153

10 1 INTRODUÇÃO 1.1 MOTIVAÇÃO A computação ubíqua, também conhecida como computação pervasiva (HANSMANN et al., 2003), suporta a visão na qual a computação é transparentemente integrada no ambiente cotidiano. Nesta visão, há uma total integração da computação nas atividades humanas. Microprocessadores se tornam pequenos e baratos o suficiente para serem embutidos em quase tudo - não somente em dispositivos digitais, carros, eletroeletrônicos, brinquedos, ferramentas, mas também em objetos (lápis, por exemplo) e roupas. Uma característica essencial da computação ubíqua que possibilita esta transparência é a sensibilidade ao contexto, que lida com a habilidade das aplicações utilizarem informações sobre o ambiente do usuário (contexto) para acionar serviços de acordo com a necessidade ou a situação atual do usuário (COSTA, 2007). De acordo com (DEY, 2001) contexto é qualquer informação que pode ser usada para caracterizar a situação das entidades (uma pessoa, um lugar, ou um objeto) que são relevantes para uma aplicação, incluindo próprio usuário e a própria aplicação. Portanto, segundo essa definição, se uma informação é utilizado para caracterizar um participante da interação usuário-aplicação, esta informação é contexto. Capacitando os computadores com sensibilidade ao contexto dos usuários, a comunicação homem-computador pode ser enriquecida, levando a uma aplicação mais centrada no usuário e que oferece serviços mais adequados. Um dos grandes desafios na concepção de aplicações sensíveis ao contexto está relacionado à carência de abordagens sistemáticas para lidar com a diversidade de fontes de dados contextuais, combinada com as múltiplas tecnologias de sensoriamento atualmente disponíveis (DEY; ABOWD, 1999). Outro aspecto inerente às aplicações sensíveis ao contexto é a necessidade de realizar inferência. Em geral, este tipo de aplicação não tem interesse apenas nos valores associados a uma determinada condição contextual, mas no significado que aquele valor

11 representa (chamado de estado de interesse de uma aplicação). Uma aplicação pode, por exemplo, estar interessada em saber se uma pessoa está com febre, ou seja, se o valor da temperatura é maior que um determinado número, sem estar necessariamente interessada no valor exato da temperatura. Os estados de interesse de uma aplicação sensível ao contexto são denominados Situações Contextuais (COSTA, 2007). Uma situação contextual representa um contexto de alto nível de abstração, podendo ser formada por um conjunto de estados de interesse e combinada a outras situações. Por exemplo, uma situação que pode significar boas condições para ir à praia pode ser definida como: é manhã, não há previsão de chuva e não faz frio. A modelagem de contexto e situações é uma parte importante do processo de desenvolvimento de uma aplicação sensível ao contexto. Um modelo contextual identifica e representa as entidades e os contextos que são relevantes para a aplicação sensível ao contexto, como por exemplo a localização e a temperatura de uma pessoa. Um modelo de situações é construído com base no modelo de contexto e permite ao desenvolvedor explicitar situações que são de interesse da aplicação. Um exemplo simples é a situação de febre, que pode ser definida como a situação na qual uma pessoa está com a temperatura superior a 37 C. Situações podem ser definidas de maneira complexa, por meio da composição de outras situações. Por exemplo, uma situação de suspeita de dengue pode ser definida como a ocorrência de uma situação de febre seguida da ocorrência de uma situação de dor muscular. Portanto, uma abordagem de modelagem de situações contextuais deve considerar requisitos de expressividade, como por exemplo, a composição de situações e a inferência temporal entre situações (YE et al., 2012), a fim de permitir a especificação dos mais diversos tipos de situação. Além disso, os modelos de especificação de situações muitas vezes são manipulados por especialistas de domínio, que podem não entender por completo os aspectos semânticos da abordagem de modelagem. Portanto, a linguagem utilizada para especificação de situações deve ser de fácil entendimento, considerando também aspectos de usabilidade.

12 Outro requisito associado a uma abordagem de modelagem de situações é a separação entre a linguagem utilizada para especificação de modelos e a plataforma de implementação. Esta separação permite que os modelos sejam definidos mais precisamente e que o modelador foque em aspectos de modelagem relacionados à solução do problema. Em contrapartida, deve ser possível mapear os conceitos utilizados na modelagem para uma plataforma de execução, permitindo que os modelos especificados sejam utilizados para geração de implementações de detecção de situações. As propostas de modelagem de situações presentes na literatura geralmente falham em aspectos de usabilidade, ou na separação entre aspectos de modelagem e implementação. Portanto, este trabalho visa definir uma metodologia apropriada para o desenvolvimento de aplicações sensíveis ao contexto, com foco na modelagem e realização de situações contextuais. Essa metodologia deve minimizar os esforços despendidos nas fases de modelagem e de implementação de situações contextuais. 1.2 OBJETIVOS Este trabalho tem como objetivo geral propor uma metodologia para auxiliar o desenvolvimento de aplicações sensíveis ao contexto, com foco na especificação e realização de situações contextuais. Esse objetivo geral pode ser detalhado nos seguintes objetivos específicos: Objetivo 1: Definir conceitos de modelagem de situações que sirvam de fundamentação para especificação de aplicações sensíveis ao contexto em diversos domínios. Os conceitos de modelagem propostos devem ser adequados para especificar situações contextuais, levando em conta os aspectos temporais e composição de situações. Objetivo 2: Definir uma linguagem para especificação de situações, que permita expressar os conceitos propostos no Objetivo 1 de maneira objetiva. Esta linguagem deve ter como base um modelo de contexto,

13 como o proposto em (COSTA, 2007), e, além disso, deve ser de fácil entendimento por especialistas de domínio. Objetivo 3: Transformar os modelos de situação em código específico de uma plataforma de implementação de situações, a fim de facilitar o desenvolvimento de aplicações sensíveis ao contexto e permitir a execução dos modelos de situação propostos. 1.3 METODOLOGIA O primeiro passo para o desenvolvimento do trabalho foi o estudo de propostas de modelagem de contexto e situações para aplicações sensíveis ao contexto relatadas na literatura, com o objetivo de promover o entendimento sobre os conceitos e requisitos de modelagem e sobre os desafios no desenvolvimento desta classe de aplicações. Neste sentido, o trabalho apresentado em (COSTA, 2007) serviu de inspiração para o desenvolvimento da abordagem proposta. Esse trabalho defende o desenvolvimento de aplicações sensíveis ao contexto começando pela definição de modelos de contexto e situação, que são especificados por meio de diagramas de classe UML de propósito geral, juntamente com restrições OCL. Uma vez que UML e OCL são linguagens de propósito geral, elas não oferecem conceitos nativos de modelagem de contexto e situação, o que pode trazer problemas relacionados à usabilidade. A fim de propor uma metodologia de desenvolvimento orientado a situações, foram definidos os principais conceitos de modelagem, por meio de um metamodelo de situações, com base em um modelo estrutural de contexto, como o apresentado em (COSTA, 2007). Para a concepção do metamodelo de situações buscou-se permitir especificar os mais diversos tipos de conceitos, considerando, dentre outros aspectos, a composição, e a especificações de dependência temporal entre situações. A construção do modelo de situações foi baseada em técnicas de desenvolvimento orientado a modelos (MDD) (ALMEIDA et al., 2004), com o auxilio da ferramenta de modelagem EMF do Eclipse (THE ECLIPSE FOUNDATION,

14 2012a), o que permite a utilização deste modelo para a construção de editores e geração automática de código. Após definido o metamodelo de situações, foi necessário projetar a sintaxe concreta para representação de instâncias do modelo de situações (Objetivo 2). Optou-se por utilizar uma notação gráfica que facilitasse a interpretação por não especialistas. A definição dos elementos gráficos que compõem a linguagem de especificação de situações levou em consideração algumas das melhores práticas de definição de diagramas levantadas por (MOODY, 2009), a fim de evitar inconsistências de representação e buscar uma notação que seja facilmente assimilada. Para a manipulação dos diagramas, foi desenvolvido um editor que combina a sintaxe abstrata dos modelos de situação e a sintaxe gráfica definida. Este editor foi construído com base na ferramenta Obeo Designer, que é totalmente integrada ao ambiente Eclipse e permite a especificação de diversos tipos de editores para modelos construídos na plataforma EMF. Tendo em vista que o propósito deste trabalho não se limita a definir uma linguagem de especificação de situações, mas também fornecer apoio ao desenvolvimento de aplicações sensíveis ao contexto utilizando técnicas de desenvolvimento orientado a modelos, foi definida uma transformação das instâncias de modelos de situação para uma plataforma alvo de detecção de situações (Objetivo 3). Para este fim, a máquina de regras Drools (BALI, 2009) foi escolhida, tendo em vista que Drools oferece suporte nativo para realização de inferências temporais entre eventos, facilitando, portanto, a definição das transformações. Os conceitos envolvidos na construção da linguagem e na geração automática de código são exemplificados por meio de um cenário de detecção de fraudes bancárias. Este cenário aborda a modelagem de contexto, a especificação de situações, a transformação destes modelos em código executável para a plataforma alvo e a construção de uma aplicação que faz uso do código gerado para detectar situações automaticamente. A execução do cenário permite avaliar a viabilidade da abordagem proposta e validar a transformação dos modelos em código.

15 1.4 ESTRUTURA Este trabalho está estruturado como segue: O Capítulo 2 apresenta os principais conceitos referentes a área de sensibilidade ao contexto, modelagem contextual, desenvolvimento orientado a modelos e plataformas de regras; O Capítulo 3 discute os trabalhos relacionados analisando-os a fim de reforçar a justificativa e a relevância do trabalho que está sendo proposto; O Capítulo 4 apresenta os conceitos de modelagem propostos, juntamente com a linguagem utilizada para representar estes conceitos, chamada de Linguagem de Modelagem de Situações, ou SML (Situation Modeling Language); O Capítulo 5 discute alguns aspectos relacionados à qualidade perceptual da notação gráfica da linguagem proposta para especificar situações; O Capítulo 6 define uma semântica formal para a linguagem de modelagem de situações com base no mapeamento dos elementos sintáticos da linguagem para um framework lógico baseado em frames; O Capítulo 7 discute como modelos de tipos de situação podem ser transformados em código para detecção de situações, com base em uma plataforma de regras. Além disso, apresenta a implementação de um estudo de caso desenvolvido com base no código gerado; O Capítulo 8 apresenta as ferramentas desenvolvidas para apoiar o desenvolvimento de aplicações sensíveis ao contexto com base na definição de situações contextuais e na transformação dos modelos em código executável;

16 Finalmente, o Capítulo 9 traz as conclusões e as indicações de trabalhos futuros.