13
Suporte ao Desenvolvimento Baseado em Modelos de Aplicações Móveis Sensíveis ao Contexto Cléver R. G. de Farias 1 , Ciro de Barros Barbosa 2 , Marcos Medina Leite 3 , Rodrigo Mantovaneli Pessoa 4 , Camilo Zardo Calvi 5 , José Gonçalves Pereira Filho 5 1 Departamento de Física e Matemática – Faculdade de Filosofia Ciências e Letras de Ribeirão Preto (FFCLRP) – Universidade de São Paulo (USP) Av. Bandeirantes, 3900 CEP 14040-901 Ribeirão Preto (SP) 1 Departamento de Ciência da Computação Universidade Federal de Juiz de Fora (UFJF) Campus Universitário - Bairro Martelos CEP 36036-330 – Juiz de Fora (MG) 3 Programa de Mestrado em Informática Universidade Católica de Santos (Unisantos) Rua Dr. Carvalho de Mendonça, 144 CEP 11070-906 – Santos (SP) 4 Centre for Telematics and Information Technology University of Twente PO Box 217, 7500 AE, Enschede, the Netherlands 5 Programa de Pós-Graduação em Informática Departamento de Informática – Universidade Federal do Espírito Santo (UFES) Caixa Postal 01-9011 – CEP 29060-970 – Vitória (ES) [email protected], [email protected], [email protected], [email protected], {camilozc, zegonc}@inf.ufes.br Abstract. Model driven engineering is increasingly attracting interest in the research community, due to its applicability in different application domains. In this sense, this paper proposes a platform independent model (PIM) support infrastructure for the development of such applications. To facilitate the development of this class of applications, we propose a UML profile, so-called UML Context-Aware (UML-CW). This profile was developed according to a corresponding context metamodel. The paper also presents a case study illustrating the application of our profile and discusses the creation and use of context models by a context-aware application support platform. Resumo. O desenvolvimento baseado em modelos tem se apresentado como uma abordagem promissora para o desenvolvimento de sistemas em diferentes domínios de aplicação. Neste sentido, este artigo apresenta uma proposta de suporte ao desenvolvimento baseado em modelos de aplicações móveis sensíveis ao contexto. O artigo propõe o uso de um perfil UML para a II Workshop on Ontologies and Metamodeling in Software and Data Engineering WOMSDE 2007 29

Suporte ao Desenvolvimento Baseado em Modelos de ... · desenvolvimento de um sistema computacional. Um terceiro nível, viz., Computational ... O PIM captura a parte da especificação

Embed Size (px)

Citation preview

Page 1: Suporte ao Desenvolvimento Baseado em Modelos de ... · desenvolvimento de um sistema computacional. Um terceiro nível, viz., Computational ... O PIM captura a parte da especificação

Suporte ao Desenvolvimento Baseado em Modelos de Aplicações Móveis Sensíveis ao Contexto

Cléver R. G. de Farias1, Ciro de Barros Barbosa2, Marcos Medina Leite3, Rodrigo Mantovaneli Pessoa4, Camilo Zardo Calvi5, José Gonçalves Pereira Filho5

1Departamento de Física e Matemática – Faculdade de Filosofia Ciências e Letras de Ribeirão Preto (FFCLRP) – Universidade de São Paulo (USP)

Av. Bandeirantes, 3900 CEP 14040-901 − Ribeirão Preto (SP)

1Departamento de Ciência da Computação Universidade Federal de Juiz de Fora (UFJF)

Campus Universitário - Bairro Martelos CEP 36036-330 – Juiz de Fora (MG)

3Programa de Mestrado em Informática Universidade Católica de Santos (Unisantos)

Rua Dr. Carvalho de Mendonça, 144 CEP 11070-906 – Santos (SP)

4Centre for Telematics and Information Technology University of Twente

PO Box 217, 7500 AE, Enschede, the Netherlands

5Programa de Pós-Graduação em Informática Departamento de Informática – Universidade Federal do Espírito Santo (UFES)

Caixa Postal 01-9011 – CEP 29060-970 – Vitória (ES)

[email protected], [email protected], [email protected], [email protected], {camilozc, zegonc}@inf.ufes.br

Abstract. Model driven engineering is increasingly attracting interest in the research community, due to its applicability in different application domains. In this sense, this paper proposes a platform independent model (PIM) support infrastructure for the development of such applications. To facilitate the development of this class of applications, we propose a UML profile, so-called UML Context-Aware (UML-CW). This profile was developed according to a corresponding context metamodel. The paper also presents a case study illustrating the application of our profile and discusses the creation and use of context models by a context-aware application support platform.

Resumo. O desenvolvimento baseado em modelos tem se apresentado como uma abordagem promissora para o desenvolvimento de sistemas em diferentes domínios de aplicação. Neste sentido, este artigo apresenta uma proposta de suporte ao desenvolvimento baseado em modelos de aplicações móveis sensíveis ao contexto. O artigo propõe o uso de um perfil UML para a

II Workshop on Ontologies and Metamodeling in Software and Data EngineeringWOMSDE 2007

29

Page 2: Suporte ao Desenvolvimento Baseado em Modelos de ... · desenvolvimento de um sistema computacional. Um terceiro nível, viz., Computational ... O PIM captura a parte da especificação

modelagem de aplicações sensíveis ao contexto. Este perfil é denominado UML Context-Aware (UML-CW) e foi desenvolvido a partir de um metamodelo de contexto correspondente. Uma ferramenta customizada para esse perfil foi desenvolvida para dar suporte ao processo de desenvolvimento dentro dos padrões MDA. Este artigo também apresenta um estudo de caso ilustrando o uso do perfil UML-CW e discute alguns aspectos relacionados à criação de modelos de contexto e sua subseqüente utilização por uma plataforma de suporte a aplicações sensíveis ao contexto.

1. Introdução Aplicações móveis sensíveis ao contexto têm despertado um interesse crescente na comunidade acadêmica neste início de milênio. Estas aplicações caracterizam-se pelo uso de informações sobre o contexto físico e computacional de seus usuários nas tomadas de decisões. Ao invés de tratar a mobilidade como um problema, elas exploram a natureza contextual provocada pela mobilidade do usuário, com a clara intenção de produzir serviços mais flexíveis, adaptáveis, ricos em funcionalidade e centrados no usuário. Neste sentido, as aplicações sensíveis ao contexto são programadas para reagir e explorar as mudanças de contexto dentro de um domínio dinâmico.

O desenvolvimento dessas aplicações implica a superação de vários desafios teóricos e tecnológicos, e requer a existência de uma infra-estrutura de suporte adequada ao seu projeto e execução, particularmente para apoio à manipulação de contextos diversos, provenientes de ambientes altamente distribuídos, heterogêneos e em constantes mudanças. Nesse sentido, tem-se presenciado um grande esforço e o surgimento de várias pesquisas relacionadas à construção de plataformas de serviços com suporte à execução dessas aplicações, tais como [Dey 2000, Chen and Kotz 2002, Dockhorn Costa 2003, Ranganathan 2004, Chen 2004]. Essas plataformas visam fornecer aos projetistas ferramentas extras de programação e suporte arquitetônico adequado para o desenvolvimento dessas aplicações, usando serviços, mecanismos e interfaces que escondam a complexidade da manipulação e do uso de contexto.

Apesar das facilidades oferecidas pelas plataformas de suporte, um dos grandes desafios do desenvolvimento de aplicações context-aware continua sendo a forma ad hoc com que essas aplicações são desenvolvidas. Adicionalmente, problemas de portabilidade, interoperabilidade e a necessidade de integração de dados heterogêneos e distribuídos contribuem para aumentar a complexidade de tais aplicações. Neste sentido, o Object Management Group (OMG) tem patrocinado uma iniciativa, chamada de Model-Driven Architecture (MDA) [OMG 2003b], cujo objetivo principal reside no uso de modelos para tratar problemas de portabilidade, interoperabilidade e longevidade freqüentemente associados ao desenvolvimento de aplicações distribuídas em um nível maior de abstração e de forma independente de soluções tecnológicas específicas. O aspecto mais importante de MDA é a criação explícita de modelos independentes de plataforma (Platform-Independent Models ou PIMs) e sua posterior transformação em modelos específicos de plataforma (Platform-Specific Models ou PSMs).

Neste sentido, este artigo propõe um perfil UML, chamado perfil UML Context-Aware (UML-CW), para a criação de modelos independentes de plataforma de aplicações móveis sensíveis ao contexto. Este perfil foi desenvolvido com base em um metamodelo de serviços sensíveis ao contexto baseado em MOF [Leite et al. 2006, de Farias et al.

II Workshop on Ontologies and Metamodeling in Software and Data EngineeringWOMSDE 2007

30

Page 3: Suporte ao Desenvolvimento Baseado em Modelos de ... · desenvolvimento de um sistema computacional. Um terceiro nível, viz., Computational ... O PIM captura a parte da especificação

2007, Leite 2007]. Alguns aspectos do metamodelo de serviços e do perfil UML-CW foram desenvolvidos com base na arquitetura de uma plataforma de serviços associada, a plataforma Infraware [Pereira Filho et al. 2006]. Um ambiente de modelagem, denominado Context Modeler, dá suporte a atividades como diagramação, verificação de consistência dos modelos e manipulação dos modelos segundo padrões MDA.

O restante do artigo está organizado da seguinte forma: a seção 2 apresenta uma visão geral de MDA; a seção 3 apresenta os principais aspectos do perfil UML-CW; a seção 4 discute a criação e o uso dos modelos de contexto pela plataforma Infraware; a seção 5 apresenta um estudo de caso que ilustra a utilização do nosso perfil; a seção 6 descreve brevemente alguns trabalhos relacionados à modelagem de contexto; finalmente, a seção 7 apresenta algumas considerações finais e perspectivas de trabalhos futuros.

2. Model Driven Architecture (MDA) Model Driven Architecture (MDA) é uma iniciativa proposta pelo Object Management Group (OMG) [OMG 2003b] que sustenta uma nova abordagem para a especificação e o desenvolvimento de sistemas computacionais, voltados a endereçar principalmente, mas não exclusivamente, a questão da longevidade dos sistemas computacionais distribuídos. MDA propõe isolar os esforços referentes à especificação do software dos aspectos particulares relacionados a sua implementação, aumentando o grau de independência de um sistema em relação à plataforma tecnológica utilizada.

Em MDA, o termo plataforma refere-se a detalhes tecnológicos, de engenharia ou de implementação que são irrelevantes para a caracterização das funcionalidades de um componente, mas que suportam a execução destes modelos, quer diretamente ou indiretamente após a tradução para código [OMG 2003b].

Para alcançar o isolamento entre a especificação do sistema e sua efetiva implementação, MDA se estrutura a partir de uma hierarquia de modelos, em níveis de abstração diferenciados. A proposta da MDA é modelo-cêntrica [Frankel 2003], pois está focada no uso de modelos para encaminhar a especificação, o projeto, a construção, a implantação, a manutenção e as modificações de um sistema. Em MDA, as linguagens de modelagem atuam como linguagens de programação.

MDA define basicamente dois níveis de modelagem, ao longo de esforço de desenvolvimento de um sistema computacional. Um terceiro nível, viz., Computational Independent Model (CIM) não será discutido no contexto deste trabalho. Neste sentido, os principais níveis de modelagem previstos em MDA são:

• Platform Independent Model (PIM), definido a partir do ponto de vista independente de plataforma (Platform Independent Viewpoint) e tem foco na arquitetura do sistema, abstraindo os detalhes necessários para a operação em uma plataforma em particular. O PIM captura a parte da especificação do sistema que não muda de uma plataforma para outra;

• Platform Specific Model (PSM), definido a partir do ponto de vista específico de uma plataforma tecnológica escolhida, e tem foco nos detalhes específicos de implementação, a serem adicionados ao PIM. A partir de um PIM, pode-se produzir vários PSM, cada qual desenvolvido em função de uma plataforma tecnológica em particular.

II Workshop on Ontologies and Metamodeling in Software and Data EngineeringWOMSDE 2007

31

Page 4: Suporte ao Desenvolvimento Baseado em Modelos de ... · desenvolvimento de um sistema computacional. Um terceiro nível, viz., Computational ... O PIM captura a parte da especificação

Os níveis de modelagem previstos em MDA permitem que se distingam os aspectos relativos ao domínio de aplicação daqueles referentes à plataforma tecnológica. Tal diferenciação produz modelos orientados à aplicação, os PIMs, que são potencialmente mapeáveis (transformados) sobre diversas plataformas tecnológicas, através de modelos orientados à plataforma, os PSMs [Mellor et al. 2003]. Perfis UML [OMG 2007a, OMG 2007b] podem ser definidos para facilitar o desenvolvimento de PIMs e PSMs.

Para sustentar a abordagem MDA é preciso assegurar o formalismo na definição de cada modelo empregado ao longo do ciclo de desenvolvimento do sistema. Assim, MDA pressupõe a definição de um metamodelo que produza referência formal ao longo do processo de modelagem e viabilize ações de transformação nas transições de nível de abstração. MDA faz uso de MOF [OMG 2006] como o meta-metamodelo de referência e adota uma hierarquia de metamodelagem de 4 níveis do OMG [OMG 2007a]. Conseqüentemente, quaisquer dos metamodelos derivados do MOF Model, que corresponde ao topo da Hierarquia de Metamodelos, podem ser utilizados dentro da abordagem MDA: UML [OMG 2007a, OMG 2007b], XMI [OMG 2005b], CWM [OMG 2003a] e outros construídos a partir do MOF Model ou estendidos de algum dos metamodelos oriundos do MOF Model.

A utilização de MOF e da hierarquia de metamodelos do OMG oferece à abordagem MDA a garantia de recursos padronizados para acesso e manipulação do repositório de metadados de cada linguagem de modelagem utilizada, de forma padronizada e independente da semântica particular da aplicação. MOF ainda possibilita à MDA que se utilize das facilidades de extensão de metamodelos para tratar da diversidade de domínios de aplicações.

3. Perfil UML-CW A construção de um metamodelo é semanticamente importante, pois oferece melhores condições à modelagem de domínios específicos de aplicação. No entanto, as práticas atuais da engenharia de software exigem um amplo suporte de ferramentas CASE, com facilidades gráficas, verificações sintáticas, mecanismos de exportação, desenho assistido, e fundamentalmente, aderentes a padrões de mercado.

O metamodelo de contexto proposto em [Leite et al. 2006, de Farias et al. 2007, Leite 2007] necessita de uma sintaxe concreta para que efetivamente possam ser elaborados os modelos de contextos. Isso implica a necessidade de construir um compilador específico a partir do metamodelo e, respondendo às demandas da engenharia de software, dotá-lo de uma série de facilidades, incluindo a concepção gráfica dos modelos.

Tendo em vista que a UML é atualmente um padrão de fato para a modelagem de sistemas, optou-se por definir a sintaxe concreta do metamodelo a partir da UML, explorando mecanismos de extensibilidade previstos na própria linguagem. A UML prevê a definição de perfis, como um amplo mecanismo de extensão de sua semântica. Essa decisão possibilita utilizar as facilidades já disponíveis nas ferramentas que suportam UML e que são abundantes no mercado. Outro benefício importante é a garantia de compatibilidade com softwares que lêem repositórios de metadados para a transformação de modelos e para geração automática de código.

II Workshop on Ontologies and Metamodeling in Software and Data EngineeringWOMSDE 2007

32

Page 5: Suporte ao Desenvolvimento Baseado em Modelos de ... · desenvolvimento de um sistema computacional. Um terceiro nível, viz., Computational ... O PIM captura a parte da especificação

Para tratar das especificidades previstas no metamodelo de contexto definiu-se um perfil, chamado de UML Context-Aware (UML-CW). A Figura 1 mostra os principais elementos definidos no perfil UML-CW.

Figura 1. Perfil UML-CW

Os estereótipos cwclassifier e cwassociation são extensões da metaclasse Class da UML. Estes representam, respectivamente, uma estrutura abstrata (metaclasse CWClassifier) que generaliza os conceitos centrais de um contexto, viz., entidades e seus atributos, e uma estrutura que promove a associação entre entidades e atributos do metamodelo (metaclasse CWAssociation). Estes estereótipos são abstratos e não podem ser usados diretamente para qualificar classes de um modelo de contexto.

O estereótipo cwclassifier é especializado através dos estereótipos cwentity e cwattribute. Estes estereótipos representam, respectivamente, os conceitos de CWEntity e CWAttribute do metamodelo de contexto. Estas subclasses herdam as características da metaclasse base, i.e., a metaclasse Class. Assim, podemos utilizar os conceitos de metaatributos e metaassociações relacionados, oferecendo ao projetista de um modelo de contexto, a possibilidade de incorporar quantos atributos quiser para melhor qualificar as classes sendo estereotipadas.

II Workshop on Ontologies and Metamodeling in Software and Data EngineeringWOMSDE 2007

33

Page 6: Suporte ao Desenvolvimento Baseado em Modelos de ... · desenvolvimento de um sistema computacional. Um terceiro nível, viz., Computational ... O PIM captura a parte da especificação

O estereótipo cwassociation é especializado através dos estereótipos static, sensed, profiled e derived. Estes estereótipos representam, respectivamente, associações duradouras (metaclasse Static), associações sensoriais (metaclasse Sensed), associações baseadas em perfil (metaclasse Profiled) e associações derivadas (metaclasse Derived). Estas subclasses também herdam as características de sua metaclasse base.

O estereótipo dynamic possui a tag temporalConstraints; trata-se de uma tag cujo estado deve ser derivado a partir de uma expressão OCL, e que relaciona todas as restrições de temporalidade aplicáveis a uma dada associação dinâmica. O estereótipo derived também possui uma tag, chamada expression que representa a função de derivação.

Os estereótipos parameter e metric também são extensões da metaclasse Class da UML e representam, respectivamente, um parâmetro de qualidade das informações de contexto (metaclasse Parameter) e métricas a partir dos quais os parâmetros de qualidade podem ser avaliados (metaclasse Metric) definidos no metamodelo de contexto.

O estereótipo scale é uma extensão da metaclasse Class da UML representa o conceito de escala de valores utilizadas pelos parâmetros (metaclasse Scale) no metamodelo de contexto. As tags label, lowerBound e upperBound correspondem respectivamente aos metaatributos label, lowerBound e upperBound da metaclasse Scale.

O estereótipo equivalencegroup representa a metaclasse EquivalenceGroup do metamodelo, utilizada na especificação de vínculos de equivalência entre associações, e também é uma extensão da metaclasse Class da UML. equivalencegroup possui a tag equivalenceExpression, que mantém a expressão de equivalência entre associações, em OCL.

O estereótipo abstrato temporalconstraint é outra extensão da metaclasse Class da UML. temporalconstraint possui duas derivações, relativeinterval e fixedinterval, que correspondem aos conceitos de intervalos relativos (metaclasse RelativeInterval) e fixo (metaclasse FixedInterval) do metamodelo de contexto. O estereótipo fixedinterval tem duas tags (startTime e endTime) que retratam um intervalo de tempo a condicionar a validade das informações de contexto. O estereótipo relativeinterval também prevê duas tags (value e timeUnit) conforme os metaatributos presentes na metaclasse RelativeInterval do metamodelo de contexto. A tag timeUnit tem seu domínio de valores circunscrito ao tipo enumerado TimeUnit.

O estereótipos content foi definido como extensão da metaclasse Class da UML. Este estereótipo representa os estados que um atributo pode assumir, representado pela metaclasse Content do metamodelo, e pode ser adicionado como atributo de classes modeladas como cwattribute. O estereótipo content contém a tag timestamp, que indica o momento no qual a informação de contexto foi obtida.

Os estereótipos simple, collection, alternative e owns são extensões da metaclasse Association da UML. Esses estereótipos representam, respectivamente, conceitos relativos à multiplicidade da associação (metaclasses Simple, Collection, Alternative) e da metaassociação owns do metamodelo de contexto. A tag multiplicity tem seu valor default redefinido no estereótipo simple, conforme tipo enumerado Multiplicity. A metaassociação owns representa a propriedade de uma CWAssociation por uma CWEntity.

O estereótipo cwdependency é uma extensão da metaclasse Dependency da UML. Este estereótipo representa o conceito de Dependency do metamodelo e representa um

II Workshop on Ontologies and Metamodeling in Software and Data EngineeringWOMSDE 2007

34

Page 7: Suporte ao Desenvolvimento Baseado em Modelos de ... · desenvolvimento de um sistema computacional. Um terceiro nível, viz., Computational ... O PIM captura a parte da especificação

vínculo direcionado de dependência entre metaclasses Class que retrata de modo apropriado o sentido de cwdependency na modelagem de contexto. Segundo o metamodelo de contexto, o uso deste estereótipo deve se restringir às classes estereotipadas como derived e se dirige exclusivamente a classes caracterizadas como cwassociation.

isbasedupon e isequivalentto são dois outros estereótipos estendidos da metaclasse Dependency da UML, que representam os conceitos das metaassociações is based upon e is equivalent to, presentes no metamodelo de contexto. Esses estereótipos estão limitados a retratar vínculos de equivalência entre estruturas estereotipadas como cwassociation, ou alguma de suas derivações, através de elementos de modelagem que sigam o estereótipo equivalencegroup. Maiores informações sobre o perfil UML-CW podem ser encontradas em [Leite 2007].

4. Edição, armazenamento e utilização de modelos de contexto O desenvolvimento de aplicações sensíveis ao contexto, segundo técnicas modernas de engenharia de software, pressupõe a existência de ferramentas de edição gráfica dos modelos. Através do perfil UML-CW, torna-se possível construir modelos de contexto utilizando uma ampla gama de ferramentas CASE padrão UML. Um modelo de contexto definido em uma ferramenta CASE pode ser portado para outras ferramentas aderentes ao padrão UML.

A criação de modelos de contexto pode ser realizada através do uso de ferramentas de modelagem UML genéricas, tais como Rational Rose, ArgoUML, Enterprise Architect, ou através do uso de uma ferramenta de modelagem específica. A primeira abordagem tem como principal vantagem a grande disponibilidade de ferramentas comerciais. Contudo, ao utilizarmos uma ferramenta genérica, estamos limitados ao suporte provido por esta ferramenta para a definição, aplicação e uso de um perfil UML.

Adicionalmente, a maioria das ferramentas comerciais ainda não oferece suporte para a importação de modelos MOF, e.g., metamodelo de contexto, e para a subseqüente criação de modelos a partir do modelo MOF importado, e.g., modelo de contexto. Dessa forma, não há como garantir que os modelos criados estejam de acordo com o metamodelo de contexto proposto.

Neste sentido, decidimo-nos pelo desenvolvimento de uma ferramenta específica para a criação dos modelos de contexto, o editor Context Modeler. Este editor garante que os modelos criados sigam a sintaxe abstrata definida pelo metamodelo de contexto proposto. O editor dá suporte à edição gráfica de modelos de contexto, a partir de uma sintaxe concreta adequada ao domínio das aplicações sensíveis ao contexto. O Context Modeler foi desenvolvido com base na API gráfica JGraph [JGRAPH 2006] para a implementação da interface gráfica.

A especificação MOF também prevê mecanismos padronizados de manipulação de um repositório de metadados, que possibilitam gerar representações em XML e a produção de APIs em CORBA IDL e Java, para o metamodelo de contexto. Através da especificação Java Metadata Interface (JMI) [JCP 2002], é possível manipular dinamicamente o repositório de modelos criados a partir do metamodelo de contexto, utilizando um mapeamento padrão MOF-Java. No contexto deste projeto, utilizamos o repositório NetBeans Metadata Repository (MDR) [MDR 2006].

II Workshop on Ontologies and Metamodeling in Software and Data EngineeringWOMSDE 2007

35

Page 8: Suporte ao Desenvolvimento Baseado em Modelos de ... · desenvolvimento de um sistema computacional. Um terceiro nível, viz., Computational ... O PIM captura a parte da especificação

A Figura 2 ilustra o processo de criação, armazenamento e utilização dos modelos de contexto. A partir da representação gráfica dos modelos, é possível exportar suas definições via XML para um repositório de metadados baseado em MOF. Estas definições podem então ser mais facilmente utilizadas tanto por ferramentas de transformação e geração de código quanto por plataformas de serviços, como por exemplo a plataforma Infraware.

Figura 2. Edição, armazenamento e uso de modelos de contexto.

O Context Modeler grava os modelos diretamente no repositório, compatível com MOF e implementando a JMI. A exportação de modelos para o formato XMI garante a interoperabilidade com outras ferramentas em linha com os padrões MDA, como por exemplo, geradores de código.

5. Estudo de caso Esta seção apresenta um estudo de caso que ilustra a aplicação do perfil UML-CW na modelagem de um cenário médico-hospitalar. O cenário considerado consiste de um plantão médico em um hospital hipotético. Neste hospital, médicos plantonistas realizam consultas a pacientes e atendimento a emergências que podem chegar a qualquer momento. O hospital contém diversas salas, tais como salas de emergência, salas de atendimento, sala de cirurgia, sala de raios-X, etc.

Cada médico plantonista possui um dispositivo Personal Digital Assistent (PDA), capaz de prover coordenadas de localização dentro do hospital. Cada PDA possui um identificador único. Um médico é identificado pelo seu nome e sua especialidade. Periodicamente, sensores capturam as coordenadas de localização dos dispositivos nas diferentes salas do hospital. Cada sala é identificada por um nome. A localização de um dado médico pode então ser inferida a partir destas informações. A Figura 3 mostra a modelagem deste contexto utilizando o perfil UML-CW.

II Workshop on Ontologies and Metamodeling in Software and Data EngineeringWOMSDE 2007

36

Page 9: Suporte ao Desenvolvimento Baseado em Modelos de ... · desenvolvimento de um sistema computacional. Um terceiro nível, viz., Computational ... O PIM captura a parte da especificação

Médicos e dispositivos foram modelados como as entidades de contexto Doctor e PDA, respectivamente. Um médico está associado a um dispositivo PDA através da associação de perfil isUsing. Esta associação possui uma multiplicidade alternativa.

Um dispositivo possui um tipo e um identificador, ambos modelados como os atributos associados DeviceType e DeviceId, respectivamente. O dispositivo está associado a seu tipo através da associação estática hasType. Esta associação possui multiplicidade simples. O dispositivo está associado a seu identificador através da associação do tipo perfil identifiedBy. Esta associação possui multiplicidade alternativa.

Figura 3. Modelo de contexto médico-hospitalar

Um dispositivo também possui um par de coordenadas de localização, modelado através do atributo LocationCoordinates. O dispositivo está associado a suas coordenadas através da associação sensorial has. Esta associação possui multiplicidade simples e está condicionada temporalmente, pela determinação de um intervalo relativo de tempo. As informações de coordenadas de localização do PDA estarão obsoletas quando vencido o intervalo de tempo especificado.

Cabe salientar que, por definição do metamodelo de contexto, todo conteúdo de informação de contexto tem associada a si uma referência temporal do momento de sua

II Workshop on Ontologies and Metamodeling in Software and Data EngineeringWOMSDE 2007

37

Page 10: Suporte ao Desenvolvimento Baseado em Modelos de ... · desenvolvimento de um sistema computacional. Um terceiro nível, viz., Computational ... O PIM captura a parte da especificação

obtenção. Em função disso, qualquer informação de contexto pode ser submetida à análise de temporalidade.

Um médico possui um nome e uma especialidade, ambos modelados como os atributos associados Name e Specialty, respectivamente. O médico está associado a Name através da associação estática named. Esta associação possui multiplicidade simples. O médico está associado a Specialty através da associação do tipo perfil hasSpecialty. Esta associação possui multiplicidade alternativa.

Um médico também possui um par de coordenadas de localização, modelado através do atributo LocationCoordinates. O médico está associado a suas coordenadas através da associação derivada locatedAt. Esta associação possui multiplicidade simples e está condicionada temporalmente, pela determinação de um intervalo relativo de tempo. As informações de coordenadas de localização do médico serão consideradas válidas apenas durante o intervalo de tempo especificado. locateAt é dependente da associação sensorial has e da associação estática isUsing. Através dessas associações é possível identificar qual o dispositivo usado pelo médico e, a partir da localização desse, concluir sobre as coordenadas de localização do médico.

Finalmente, um médico também possui um atributo representando a sala na qual ele se encontra, atributo Room. O médico está associado a este atributo através da associação derivada locatedAtRoom. Esta associação possui multiplicidade simples, e é validada em função do intervalo de tempo especificado. locatedAtRoom é dependente da associação locatedAt, isto é, a interpretação da sala onde se localiza um determinado médico ocorre através da derivação do nome da sala a partir das coordenadas de localização desse médico.

A partir do contexto modelado, pode-se sugerir uma gama de aplicações. Uma possível aplicação envolve a construção de um mapa de localização dos médicos no âmbito do hospital. Baseando-se nos dados de localização dos médicos em um dado instante, a aplicação pode elaborar um mapa que indique a provável localização de cada médico na planta do hospital.

6. Trabalhos relacionados Diferentes propostas para modelagem de contexto podem ser encontradas na literatura. Estas propostas refletem a diversidade de informações contextuais e de um espectro cada vez mais amplo para utilização de aplicações sensíveis a contexto [Mostéfaoui et al. 2004]. As abordagens correntes mais utilizadas para a modelagem de contexto podem ser classificadas de acordo com o esquema de estrutura de dados predominantemente utilizado para a representação das informações contextuais.

As tuplas de valores são a forma mais simples de estrutura de dados utilizada para modelagem da informação contextual. Tuplas de chaves e seus respectivos valores são utilizados para modelar as informações contextuais, que são providas às aplicações como variáveis de ambiente [Schilit et al. 1993]. A natureza simples deste tipo de modelagem permite apenas a realização de comparações exatas, tornando este tipo de abordagem inadequada para propósitos mais sofisticados.

Uma abordagem apoiada em Object-Role Modeling (ORM) é apresentada em [Henricksen et al. 2003] para a modelagem de contexto. Trata-se de uma extensão da técnica ORM, com o detalhamento de algumas características das informações

II Workshop on Ontologies and Metamodeling in Software and Data EngineeringWOMSDE 2007

38

Page 11: Suporte ao Desenvolvimento Baseado em Modelos de ... · desenvolvimento de um sistema computacional. Um terceiro nível, viz., Computational ... O PIM captura a parte da especificação

contextuais e descrição de suas propriedades [Henricksen et al. 2002]. Em ORM, o conceito básico de modelagem é um fato, e a modelagem de um domínio envolve a identificação apropriada de tipos de fatos e posteriormente o papel que cada entidade desempenha sobre os fatos. Em sua extensão à ORM, Henricksen classifica os fatos de acordo com sua natureza estática (fatos que se mantêm inalterados) ou dinâmica, sendo que estes últimos são ainda classificados de acordo com a forma pela qual foram obtidos (profiled, sensed ou derived). Além disso, são consideradas questões a respeito da natureza temporal de alguns fatos e a relação de dependência entre fatos.

Brézillon propõe a utilização de grafos de contexto na representação de um processo genérico de solução de problemas sensível ao ambiente [Brézillon 2003]. A abordagem implica a modelagem das informações de contexto como nós em grafos acíclicos, e utiliza uma classificação de três tipos de contexto: conhecimento contextual, contexto procedimental e conhecimento externo. O percorrimento do grafo depende das informações de contexto, e pode resultar em novos informes de contexto.

Sheng e Benatallah propõem um metamodelo de contexto apoiado no paradigma de objetos, numa abordagem alinhada com arquiteturas orientadas a serviços [Sheng and Benatallah 2005]. O metamodelo ContextUML não refina as informações de contexto, e mantém foco na vinculação das estruturas contextuais básicas com as interfaces para invocação de serviços, tanto dos provedores de informações contextuais, quanto das aplicações baseadas nessas informações. O metamodelo ContextUML é baseado em UML, e emprega estereótipos para qualificar os conceitos de modelagem específicos dos domínios de contexto e de serviço.

Ontologias também são utilizadas para modelagem de contexto, principalmente para realizar inferências sobre um domínio. O projeto CoBrA [Chen 2004] fornece uma arquitetura baseada em agentes para o desenvolvimento de aplicações sensíveis ao contexto. Trata-se de uma arquitetura centralizada num componente, context broker, que compartilha um modelo de contexto baseado em ontologia, provendo um conjunto de conceitos para a comunicação entre agentes distribuídos, serviços e dispositivos.

7. Conclusão Este artigo propõe um perfil UML para o desenvolvimento de modelos independentes de plataforma de aplicações móveis sensíveis ao contexto. O perfil UML-CW provê uma sintaxe concreta para um metamodelo de contexto proposto em [Leite et al. 2006, de Farias et al. 2007] e foi utilizado com sucesso na modelagem de uma aplicação no domínio médico-hospitalar. Um estudo de caso mais elaborado envolvendo um modelo de contexto para o atendimento emergencial em unidades cardiológicas pode ser encontrado em [Leite 2007].

A definição e uso de metamodelos baseados em MOF/UML possibilitam explorar o suporte de ambientes CASE para confecção de modelos. Ferramentas genéricas de modelagem UML podem ser utilizadas para a criação dos modelos a partir da definição do perfil UML-CW. Neste caso, o uso do perfil UML-CW deve estar subjacente às definições e restrições presentes no metamodelo de contexto. No escopo deste trabalho, optamos pelo desenvolvimento de uma ferramenta de modelagem específica, à qual o metamodelo de contexto está incorporado, e integrada a um repositório de metadados.

II Workshop on Ontologies and Metamodeling in Software and Data EngineeringWOMSDE 2007

39

Page 12: Suporte ao Desenvolvimento Baseado em Modelos de ... · desenvolvimento de um sistema computacional. Um terceiro nível, viz., Computational ... O PIM captura a parte da especificação

Atualmente estamos trabalhando na definição de um metamodelo específico de plataforma para a definição de PSM para serviços web. Adicionalmente, estamos trabalhando no mapeamento entre estes metamodelos utilizando a especificação MOF QVT [OMG 2005a]. Neste sentido, os primeiros resultados destes trabalhos podem ser encontrados em [Farias et al. 2007b].

Agradecimentos Agradecemos o apoio do CNPq para a realização deste trabalho (processo número 50.6284/2004-2) e o apoio da FAPESP para a apresentação do mesmo.

Referências Brézillon, P. (2003): Context-based modeling of operators’ practices by contextual

graphs. In Proceedings of the 14th Mini-Euro Conference on Human Centered Processes. Euro, pp. 129-137.

Chen, G. and Kotz, D. (2002): SOLAR: A Pervasive-Computing Infrastructure for Context-Aware Mobile Applications. Technical Report TR2002-421, Dartmouth College.

Chen, H. (2004): An Intelligent Broker Architecture for Pervasive Context-Aware Systems. Ph.D. Thesis, University of Maryland, USA.

Dey, A. K. (2000): Providing Architectural Support for Building Context-Aware Applications. Ph.D. Thesis, Georgia Institute of Technology.

de Farias, C. R. G., Leite, M. M., Calvi, C. Z., Pessoa, R. M., Pereira Filho, J. G. (2007a): A MOF Metamodel for the Development of Context-Aware Mobile Applications. In Proceedings of the 22nd ACM Symposium on Applied Computing (SAC 2007), pp. 947-952, 2007.

de Farias, C. R. G., Ferreira Pires, L. and van Sinderen, M. (2007b): A Case Study on the Transformation of Context-Aware Domain Data onto XML Schemas. In Proceedings of the 3rd International Workshop on Model-Driven Enterprise Information Systems (MDEIS 2007), pp. 63-72, 2007.

Frankel, D. S. (2003): Model Driven Architecture: Applying MDA to Enterprise Computing. John Wiley & Sons, 1st ed.

Henricksen, K., Indulska, J. and Rakotonirainy, A. (2002): Modeling Context Information in Pervasive Computing Systems. In Proceedings of the First International Conference on Pervasive Computing. Lecture Notes in Computer Science (2414), pp. 167-180.

Henricksen, K., Indulska, J. and Rakotonirainy, A. (2003): Generating Context Management Infrastructure from High-Level Context Models. In Proceedings of the 4th International Conference on Móbile Data Management, Industrial Track Proceedings. Melbourne (Australia), pp. 1-6.

JCP (2002): Java™ Metadata Interface(JMI) Specification. Java Community Process, version 1.0, Final Specification.

JGRAPH (2006): API JGraph. Disponível em http://www.jgraph.com.

II Workshop on Ontologies and Metamodeling in Software and Data EngineeringWOMSDE 2007

40

Page 13: Suporte ao Desenvolvimento Baseado em Modelos de ... · desenvolvimento de um sistema computacional. Um terceiro nível, viz., Computational ... O PIM captura a parte da especificação

Leite, M. M. (2007): Um Metamodelo MOF e um Perfil UML para o Suporte ao Desenvolvimento Baseado em Modelos de Aplicações Móveis Sensíveis ao Contexto. Dissertação de mestrado, Universidade Católica de Santos, 2007.

Leite, M. M., de Farias, C. R. G., Pessoa, R. M., Calvi, C. Z., Pereira Filho, J. G. Um Metamodelo MOF para o Desenvolvimento de Aplicações Móveis Sensíveis ao Contexto. Anais do First Workshop on Ontologies and Metamodeling in Software and Data Engineering (WOMSDE 2006), Florianópolis (SC), p. 21-31, 2006.

MDR (2006): Metadata Repository (MDR) Project. Disponível em http://mdr.netbeans.org.

Mellor, S. J., Clark, A. N., Futagami, T. (2003): Model-Driven Development. IEEE Software, September/October, pp. 14-18.

Mostéfaoui, G. K., Pasquier-Rocha, J., Brezillon, P. (2004): Context-Aware Computing: A Guide for the Pervasive Computing Community. In Proceedings of the IEEE/ACS International Conference on Pervasive Services (ICPS´04), pp. 39-48.

OMG (2003a): Common Warehouse Metamodel (CWM) Specification, Version 1.1, Volume 1, OMG Adopted Specification. Object Management Group.

OMG (2003b): MDA Guide, Version 1.0. Object Management Group.

OMG (2005a): Meta Object Facility (MOF) 2.0 Query/View/Transformation Specification, OMG Adopted Specification. Object Management Group (2005).

OMG (2005b): MOF 2.0 XMI Mapping Specification. OMG Specification, version 2.1. Object Management Group, formal/05-09-01.

OMG (2006): Meta Object Facility (MOF) Core Specification, OMG Available Specification, version 2.0. Object Management Group.

OMG (2007a): Unified Modeling Language: Infrastructure. OMG Specification, version 2.1.1, Object Management Group.

OMG (2007b): Unified Modeling Language: Superstructure. OMG Specification, version 2.1.1, Object Management Group.

Pereira Filho, J. G., Pessoa, R. M., Calvi, C. Z., de Oliveira, N. Q., do Carmo, R. R. M, Barbosa, A. C. P., de Farias, C. R. G. e Leite, M. M. (2006): Infraware: Um Middleware de Suporte a Aplicações Móveis Sensíveis ao Contexto. Anais XXIV Simpósio Brasileiro de Redes de Computadores.

Ranganathan, A., McGrath, R., Campbell, R. and Mickunas, M. (2004): Use of Ontologies in a Pervasive Computing Environment. In The Knowledge Engineering Review, 18(3), pp. 209-220, Cambridge University Press.

Schilit, W. N., Adams, N. I. and Want, R. (1994): Context-Aware Computing Applications In Proceedings of the Workshop on Mobile Computing Systems and Applications. IEEE Computer Society, pp 85-90.

Sheng, Q. Z., and Benatallah B. (2005): ContextUML: A UML-Based Modeling Language for Model-Driven Development of Context-Aware Web Services. In Proceedings of the Fourth International Conference on Mobile Business (ICMB'05), IEEE Computer Society, pp. 206-212.

II Workshop on Ontologies and Metamodeling in Software and Data EngineeringWOMSDE 2007

41