[pt] ABORDAGEM ORIENTADA À REUTILIZAÇÃO DE SOFTWARE PARA DESENVOLVIMENTO INCREMENTAL E SISTEMÁTICO DE APLICAÇÕES UBÍQUAS INTENCIONAIS - MILENE SERRANO (2017)
[pt] Aplicações ubíquas estão inseridas em ambientes inteligentes integrados ao mundo físico e compostos de usuários com diferentes preferências, dispositivos heterogêneos e vários provedores de serviço e conteúdo. Além disso, essas aplicações são especializadas em oferecer serviços e conteúdos em qualquer lugar e momento, auxiliando os usuários em suas atividades diárias sem incomodá-los. Baseado nesse mundo idealizado, o paradigma em qualquer lugar e momento impõe alguns desafios para a comunidade de Engenharia de Software, tais como: heterogeneidade de dispositivos, ambientes distribuídos, mobilidade, satisfação de usuário, adaptação de conteúdo, sensibilidade de contexto, privacidade, personalização, transparência, invisibilidade e constante evolução das tendências tecnológicas. Visando lidar com esses novos desafios tecnológicos, é proposta uma abordagem orientada à reutilização de software para desenvolvimento incremental e sistemático de aplicações ubíquas intencionais. Foram escolhidos dois principais objetivos para conduzir a pesquisa dessa tese: (i) a construção de conjuntos de apoio, orientados à reutilização de software, com base em uma investigação detalhada de aplicações ubíquas e do paradigma de Sistemas Multi-Agentes Intencionais – ou seja, Desenvolvimento para Reutilização; e (ii) o desenvolvimento incremental e sistemático de aplicações ubíquas, dirigidas por Sistemas Multi-Agentes Intencionais, com base na abordagem orientada à reutilização de software – ou seja, Desenvolvimento com Reutilização. Algumas contribuições do nosso trabalho são: (i) uma arquitetura orientada à reutilização de software e baseada nos conjuntos de apoio – i.e. blocos de construção principalmente compostos de modelos conceituais, frameworks, padrões e bibliotecas – obtidos a partir da Engenharia de Domínio das Aplicações Ubíquas; (ii) uma Engenharia de Aplicações Ubíquas orientada à reutilização de software visando o desenvolvimento incremental e sistemático de aplicações ubíquas com base nos blocos de construção propostos; (iii) um modelo de raciocínio focado em regras condicionais de lógica nebulosa e no modelo Crença-Desejo-Intenção para melhorar a capacidade cognitiva dos agentes; (iv) um mecanismo específico, baseado em agentes intencionais, para lidar com questões de privacidade, balanceando privacidade e personalização bem como transparência e invisibilidade; (v) um catálogo que graficamente apresenta os principais requisitos não-funcionais ubíquos, as interdependências entre eles e formas de se operacionalizá-los com base na combinação de tecnologias tradicionais e emergentes; (vi) ontologias para permitir a construção dinâmica de interfaces e melhorar a comunicação e inter-operabilidade dos agentes de software; e (vii) um modelo de banco de dados dinâmico para carregar e recuperar os perfis ubíquos (ex. perfis de usuário, dispositivo, rede e contrato), melhorando o gerenciamento de dados em tempo de execução. A abordagem proposta foi avaliada desenvolvendo diferentes aplicações ubíquas (ex. aplicações ubíquas de comércio eletrônico e de clínica odontológica).