Dynamic Variability Management in Product Lines: An Approach Based on Architectural Contracts

Tamanho: px
Começar a partir da página:

Download "Dynamic Variability Management in Product Lines: An Approach Based on Architectural Contracts"

Transcrição

1 Dynamic Variability Management in Product Lines: An Approach Based on Architectural Contracts Sergio T. Carvalho, Orlando Loques, Leonardo Murta Instituto de Computação - Universidade Federal Fluminense (UFF) Niterói - RJ - Brasil Instituto de Informática - Universidade Federal de Goiás (UFG) Goiânia - GO - Brasil {scarvalho, loques, leomurta}@ic.uff.br Resumo Linhas de produto de software capturam características comuns e variabilidades de produtos com o objetivo de facilitar o processo de desenvolvimento de novos produtos. No entanto, o gerenciamento de variabilidades é tradicionalmente feito apenas em tempo de desenvolvimento e implantação, não atendendo a classes de aplicações que demandam um alto grau de adaptabilidade tais como as aplicações ubíquas/pervasivas e sensíveis ao contexto. Este artigo apresenta uma abordagem para o gerenciamento de variabilidades em tempo de execução, considerando linhas de produto voltadas para aplicações sensíveis ao contexto. A abordagem está centrada na descrição da arquitetura da linha de produto de forma associada a contratos, usados para gerenciar as variabilidades dinâmicas. Em um contrato podem ser definidos serviços e regras de contexto em um nível alto de abstração. Serviços encapsulam variabilidades e são capazes de adaptar/reconfigurar a arquitetura de um produto dinamicamente, enquanto que as regras determinam um contexto no qual determinado serviço deve ser ativado. Essa abordagem foi aplicada em cenários envolvendo variabilidades dinâmicas de uma linha de produto voltada para aplicações de assistência domiciliar à saúde, nos quais foi possível observar a sua viabilidade. Abstract Software product lines capture commonalities and variabilities of products in order to facilitate the process development of new products. However, variability management is traditionally done just in development time and deployment time, not attending classes of applications that require a high degree of adaptability such as ubiquitous/pervasive and contextaware applications. This paper presents an approach for runtime variability management, considering product lines aimed at context-aware applications. The approach focuses on product line architecture description associated to contracts, which are used to manage dynamic variabilities. In a contract can be set services and context rules at a high level of abstraction. Services encapsulate variabilities and are capable of adapting/reconfiguring architecture of a product on dynamic way, while the rules determine a context which a particular service should be activated. This approach was applied in scenarios involving dynamic variabilities in a product line focused on home health care applications, where it was possible to observe its feasibility. I. INTRODUÇÃO De acordo com Northrop [1] o uso de técnicas de Linha de Produto de Software (LPS) tem como foco a concepção, desenvolvimento e evolução de uma família de produtos de software relacionados. Todos os produtos da linha compartilham um único conjunto de características e são diferenciados uns dos outros por um conjunto de variabilidades. A criação de um produto específico consiste em um processo denominado derivação, onde são selecionadas as variabilidades que devem estar presentes no produto em questão. Uma vez resolvidas as variabilidades, inclusive relacionadas aos componentes reutilizáveis que são necessários, o produto pode ser implantado e executado. Essa abordagem proporciona a redução do tempo de desenvolvimento e dos custos [2], assim como a melhoria da qualidade na criação de um produto de software [1]. Por exemplo, ao criar um produto de uma linha de produto voltada a aplicações de monitoramento de pacientes, uma variabilidade a ser resolvida pode ser referente à existência ou não de sensor do tipo botão de pânico nos produtos. Este equipamento, geralmente portado pelo próprio paciente, emite um alarme para a central de supervisão médica ao ser pressionado. Em muitas situações, entretanto, o seu uso pode ser desnecessário, ou mesmo inapropriado, de acordo com o cuidado e/ou tratamento daquele paciente. Desta forma, a derivação de produtos com ou sem esse equipamento é prevista e desejada em função do contexto de utilização. Linhas de produto têm se mostrado uma forma eficiente de lidar com as diferentes necessidades dos usuários [3], uma vez que é possível personalizar um produto de software por meio da seleção das variabilidades antes mesmo da sua implantação. No entanto, essa técnica na sua forma tradicional não é conveniente para produtos cujas arquiteturas precisem se adaptar em tempo de execução tais como as aplicações sensíveis ao contexto e/ou baseadas em computação ubíqua/pervasiva. Essas aplicações possuem variabilidades dinâmicas (resolvidas em tempo de execução), exigindo que a arquitetura da linha de produto tenha características de adaptação dinâmica e que mecanismos de monitoramento do contexto e controle das adaptações estejam disponíveis [4]. Em outras palavras, o processo de derivação que acontece tradicionalmente de forma completa em tempo de desenvolvimento passa a ocorrer parcialmente, produzindo um produto flexível (sub linha de produto), que permite adaptações posteriores em função de demandas só detectáveis em tempo de execução. As aplicações de monitoramento de pacientes em ambiente residencial, por exemplo, dependem da qualidade e da disponibilidade dos recursos usados (e.g., sensores, dispositivos, etc.), uma vez que esses recursos podem ser adicionados, removidos ou simplesmente falhar. Há ainda aspectos relacionados às 66

2 necessidades e preferências do paciente, as quais podem mudar de acordo com os seus problemas de saúde: um paciente com hipertensão, por exemplo, pode progredir para insuficiência cardíaca, exigindo novas prescrições médicas e sensores fisiológicos adequados. Neste exemplo, a presença dos sensores e dos dispositivos pode exigir variabilidades dinâmicas no software, uma vez que esses elementos são percebidos somente durante a execução da aplicação. Um produto, criado e personalizado com as características individuais de um paciente na sua residência, deve ter uma arquitetura capaz de se adaptar, em consequência do gerenciamento das variabilidades dinâmicas, de acordo com o contexto, o ambiente e os estados dos recursos [5]. Uma infraestrutura de suporte especializada deve estar disponível para verificar continuamente as informações do contexto, tanto do paciente (e.g., localização, estado de saúde, dados fisiológicos, atividades, etc.) quanto da residência (e.g., layout, distribuição dos sensores e dispositivos nos ambientes, dados ambientais, etc.), e para controlar as adaptações, gerando novas configurações arquiteturais para o produto em operação. Neste artigo apresentamos uma abordagem para o gerenciamento de variabilidades dinâmicas baseada em contratos arquiteturais, os quais especificam serviços que realizam a adaptação/reconfiguração da arquitetura dinamicamente conforme regras de contexto previamente especificadas. Contratos são associados à descrição da arquitetura da linha de produto e encapsulam as variabilidades dinâmicas. Além disso, contêm uma máquina de negociação que especifica os níveis desejados de qualidade e como devem ser impostos à arquitetura. Um framework de suporte realiza o monitoramento do contexto, a execução dos serviços e o controle da adaptação da arquitetura. Para demonstrar a viabilidade da abordagem, apresentamos dois cenários baseados em variabilidades dinâmicas observadas em uma linha de produto que está sendo desenvolvida no contexto de um projeto voltado para a aplicação da computação ubíqua/pervasiva em sistemas de assistência domiciliar à saúde. No primeiro cenário, é selecionada a tecnologia de comunicação usada para ligar a residência do paciente e a central de supervisão médica e, no segundo cenário, é selecionado um dispositivo na residência (e.g., TV, celular, etc.) para notificar o paciente lembrando-o de realizar suas prescrições médicas. Neste último, são descritas regras de contexto para selecionar o dispositivo que esteja mais próximo ao paciente e que tenha a sua preferência. O artigo está organizado da seguinte forma: a Seção II descreve conceitos relativos a linhas de produto e arquitetura de software, importantes para a contextualização deste trabalho; a Seção III apresenta uma linha de produtos para sistemas ubíquos/pervasivos de assistência domiciliar à saúde, focando as variabilidades dinâmicas e os requisitos de adaptação próprios dessa classe de aplicações; a Seção IV descreve a abordagem e os cenários baseados na linha de produto apresentada na Seção III; a Seção V menciona os trabalhos relacionados; e a Seção VI traz as conclusões. II. LINHA DE PRODUTO E ARQUITETURA DE SOFTWARE Muitas aplicações possuem conceitos e características similares, constituindo uma família de produtos de software relacionados. Esse aspecto aliado às necessidades de redução de custo e esforço no desenvolvimento de sistemas constituem os princípios das LPSs. O planejamento de uma LPS tem como objetivo a construção de produtos relacionados e que atendam às necessidades específicas de uma missão ou segmento de mercado [1]. As similaridades entre os produtos permitem que o desenvolvimento seja feito levando-se em conta um conjunto de artefatos básicos, os quais podem ser reutilizados. Para isso, uma LPS deve capturar, através de um modelo de características, as semelhanças e diferenças entre os produtos [2]. Em um modelo de características [6], as semelhanças entre os produtos da linha são denominadas características comuns (obrigatórias), e as diferenças são denominadas variabilidades, as quais são divididas em três tipos: opcionais, alternativas e alternativas opcionais. Uma característica opcional se refere àquela que pode ou não estar presente em um produto; uma alternativa se refere àquela que está presente, mas pode ser selecionada dentre um conjunto de alternativas; e uma alternativa opcional se refere a uma alternativa que pode ou não estar presente em um produto. O modelo de características é uma forma de representar um domínio, inter-relacionando as suas características comuns e as suas variabilidades. Além disso, ele possui um alto nível de abstração, orientando no gerenciamento de variabilidades a fim de derivar (criar) um produto específico (personalizado) da LPS. A Figura 2 mostra um modelo de características parcial de uma LPS voltada para o monitoramento remoto de pacientes em ambiente domiciliar (Seção III). Nesse modelo existem características obrigatórias (círculos pretos) tais como o alarme que deve ser enviado para uma central de supervisão e o mecanismo de notificação ao paciente, e características opcionais (círculos brancos) tais como os sensores fisiológicos que devem ser usados pelo paciente na sua casa. Durante a derivação de um produto específico, as duas primeiras características são necessariamente selecionadas, enquanto as opcionais (variabilidades) podem ou não ser selecionadas. A seleção pode ser por um sensor de pressão arterial, para o caso da derivação de um sistema personalizado para um paciente com hipertensão, ou por um sensor de frequência cardíaca, para um paciente com insuficiência cardíaca, ou ainda por ambos. Além do modelo de características, uma LPS é constituída basicamente de um conjunto de componentes reutilizáveis e de uma arquitetura de software [1]. Um produto é criado a partir da seleção das variabilidades e da configuração de componentes seguindo a descrição da arquitetura da LPS. Os componentes utilizados no produto são buscados junto a um repositório comum de componentes reutilizáveis. A arquitetura de uma LPS fornece abstrações para representar a estrutura e o comportamento dos produtos. De forma geral, uma arquitetura de software pode ser definida como um conjunto de componentes, um conjunto de conectores 67

3 (interconexões entre estes componentes), e a organização destes elementos (configuração) para um determinado sistema de software [7]. A especificação dos elementos da arquitetura de um sistema são feitas por meio de uma Linguagem de Descrição Arquitetural - Architectural Description Language (ADL). Diferentemente da arquitetura concebida para sistemas isolados (não relacionados), a arquitetura de uma LPS deve representar os elementos arquiteturais correspondentes às características comuns, e os elementos opcionais e alternativos correspondentes às variabilidades. Assim, a arquitetura de um produto específico pode ser derivada da arquitetura da LPS por meio da incorporação dos elementos comuns e da seleção dos elementos relativos às variabilidades que serão incluídas [8]. A seleção das variabilidades em uma LPS é feita apenas em tempo de desenvolvimento e de implantação de um produto [4]. Isso significa que, uma vez selecionadas as variabilidades e com o produto implantado, não é possível que estas mudem ou se adaptem durante a sua operação. No entanto, há classes de aplicações que demandam um alto grau de adaptabilidade tais como as aplicações ubíquas/pervasivas e sensíveis ao contexto. Em tais aplicações as variações no ambiente, na disponibilidade ou na qualidade dos recursos, ou ainda mudanças quanto às necessidades dos usuários, exigem respostas da aplicação no sentido de adaptar a sua arquitetura em tempo de execução. III. UMA LINHA DE PRODUTO COM VARIABILIDADES DINÂMICAS Uma classe de aplicações que exige um alto grau de adaptabilidade é a dos sistemas ubíquos/pervasivos de assistência domiciliar à saúde [9], [5], nos quais pacientes são monitorados remotamente. A Figura 1 mostra a estrutura geral de um sistema desta classe. Figura 1. Estrutura geral de um sistema de assistência domiciliar à saúde. Neste sistema, o paciente tem seus dados (fisiológicos e comportamentais) e dados do ambiente residencial coletados por sensores e processados por uma Central de Saúde Residencial (CSR). Os dados coletados são representados por variáveis fuzzy e analisados por meio de técnicas de inteligência artificial. A eventual identificação de uma situação anormal do paciente pode ativar um dispositivo local (uma TV, por exemplo), aumentar a frequência de monitoramento [10] ou ainda, dependendo da gravidade, enviar um alarme de emergência para uma Central de Supervisão Médica (CSM). Um plano de cuidados orienta o paciente quanto às medições que deve realizar (e.g., pressão arterial), aos medicamentos que deve tomar, e a outras recomendações personalizadas conforme o tratamento. Mais detalhes sobre este sistema estão disponíveis em [11], [12], [13]. Sistemas de assistência domiciliar à saúde têm sido propostos de forma especializada não levando em conta as diferenças entre os pacientes, especialmente quanto às suas preferências e necessidades, inclusive relacionadas à doença tratada [9]. Cada sistema deve ser personalizado tanto em relação ao paciente quanto em relação à residência (layout da casa, distribuição e tipo dos sensores e dispositivos, etc.). Neste contexto, a abordagem de linha de produto possibilita a personalização de sistemas e, ao mesmo tempo, com custo e esforço de desenvolvimento reduzidos. A Figura 2 mostra um modelo de características parcial de uma LPS para a assistência domiciliar à saúde (ADS). Este modelo foi gerado a partir da análise de diversos trabalhos relacionados à área de computação ubíqua/pervasiva na assistência domiciliar à saúde (e.g., [14], [15], [16]), do conhecimento obtido junto a especialistas da área de saúde, e da experiência adquirida no desenvolvimento de um protótipo voltado à contínua identificação da situação de saúde do paciente associada à definição de um plano de cuidados [13]. A partir deste modelo pode-se verificar que, para um determinado paciente em sua residência, seus requisitos de monitoramento e características de software necessárias ao seu suporte podem variar bastante. Tal variação pode ocorrer tanto durante a implantação de um sistema quanto durante a sua operação. Durante a implantação de um sistema personalizado na residência deve-se, em princípio, especificar um conjunto de regras médicas especializadas para determinada doença e um conjunto apropriado de sensores para coletar os dados fisiológicos e de contexto relevantes. Além disso, um plano de cuidados personalizado deve ser definido de acordo com recomendações médicas aplicadas ao paciente [17]. Durante a operação do sistema, por sua vez, mudanças nos problemas de saúde do paciente podem exigir modificações nos recursos previamente configurados (sensores, dispositivos médicos, etc.) ou no plano de cuidados, exigindo a reconfiguração (adaptação dinâmica) do sistema. Por exemplo, o médico ao perceber mudanças de saúde do paciente monitorado, pode indicar através do plano de cuidados que ele use um novo dispositivo para medir sua frequência cardíaca periodicamente. O sistema, inicialmente personalizado para um paciente com hipertensão, deve ter sua arquitetura reconfigurada dinamicamente para atender a essa nova demanda. É importante notar que em uma utilização tradicional de LPS, ao constatar a necessidade de monitoramento de um 68

4 Figura 2. Uma LPS para Assistência Domiciliar à Saúde (ADS). Os círculos brancos identificam as características opcionais e os círculos pretos identificam as características obrigatórias. Notação usada: Kang et al. [6]. determinado paciente, um produto seria derivado da LPS e implantado na residência do paciente. A arquitetura desse produto estaria totalmente acoplada às necessidades do paciente e às características da sua residência daquele momento no tempo. Se no futuro o quadro do paciente mudasse (e.g., quadro de hipertensão progredisse para insuficiência cardíaca) ou mesmo novos dispositivos fossem adicionados na sua residência, uma nova versão do produto teria que ser derivada e implantada. A demora envolvida nessa avaliação estática e necessidade de nova implantação poderia resultar em consequências graves para essa classe de sistema. Um elemento fundamental durante a operação do sistema é o plano de cuidados, uma vez que pode ser visto como uma sequência de tarefas similar a um fluxo e pode ser usado para a interação do sistema com o paciente. Por exemplo, o sistema pode lembrar o paciente, através da tela da TV ou do celular, que precisa tomar um medicamento em determinado horário. A escolha do dispositivo de interação pode ser feita durante a implantação do sistema, no entanto a casa pode dispor de diferentes dispositivos (TVs, monitor da CSR, etc.), assim como o próprio paciente (celular, PDA, etc.). Nessa situação, a escolha de qual dispositivo o paciente deve receber as mensagens do plano de cuidados pode ser postergada para a execução do sistema e realizada seguindo regras de contexto, como por exemplo, escolher o dispositivo mais próximo ao paciente e que seja o seu preferido (veja o cenário descrito na Subseção IV-B). A seleção da variabilidade em tempo de execução implica na adaptação dinâmica da arquitetura do sistema a fim de configurar o dispositivo escolhido. Requisitos de adaptação do sistema passam ainda pela sua capacidade de lidar com a disponibilidade dos recursos. Por exemplo, para prover mecanismos de tolerância a falhas para a comunicação entre a residência e a central, são necessárias adaptações dinâmicas da arquitetura a fim de selecionar a melhor dentre as tecnologias de comunicação alternativas, incluindo o caso de falhas entre elas (veja o cenário descrito na Subseção IV-A). A LPS para sistemas de assistência domiciliar à saúde (Figura 2) possui, portanto, variabilidades que são resolvidas em tempo de execução. Estas variabilidades são denominadas de variabilidades dinâmicas e exigem mecanismos para prover a adaptação/reconfiguração da arquitetura do produto durante a sua operação. A próxima seção apresenta a nossa abordagem de um mecanismo de adaptação baseado em contratos arquiteturais para o gerenciamento de variabilidades dinâmicas. IV. GERENCIAMENTO DE VARIABILIDADES DINÂMICAS COM CONTRATOS ARQUITETURAIS Nossa abordagem para o gerenciamento de variabilidades em tempo de execução está centrada na descrição da arquitetura da LPS de forma associada a contratos, usados para gerenciar as variabilidades. Em um contrato podem ser definidos serviços capazes de adaptar/reconfigurar a arquitetura de um produto dinamicamente, com base em regras de contexto. Os serviços podem encapsular variabilidades dinâmicas enquanto que as regras determinam um contexto no qual determinado serviço deve ser realizado. As características comuns e as variabilidades selecionadas em tempo de implantação de um produto são representadas diretamente como elementos arquiteturais. As variabilidades dinâmicas, por sua vez, são encapsuladas em contratos arquiteturais, os quais são instanciados durante a operação do produto. Por exemplo, pode-se derivar um produto cuja configuração da arquitetura tenha dois componentes interligados por um conector responsável por prover uma tecnologia de comunicação. Durante a operação do produto, um contrato 69

5 pode ser instanciado com o objetivo de tratar esta característica de comunicação, selecionando e configurando o conector mais adequado para, de acordo com a tecnologia de comunicação disponível, interligar os componentes. Os contratos são construídos com a linguagem de descrição de contratos CBabel [18] a qual permite descrever serviços de adaptação e regras de contexto. A semântica dos contratos é imposta em tempo de execução por um framework de suporte à configuração, desenvolvido em nosso grupo de pesquisa. Ele provê, dentre outros recursos, o monitoramento de contexto e o controle da adaptação, centrais em uma Linha de Produto de Software Dinâmica (LPSD) [4]. As principais funções do framework são: (i) interpretar as especificações descritas no contrato e armazená-las como informações de meta-nível associadas ao produto, (ii) prover mecanismos de reflexão e adaptação dinâmica, os quais permitem gerenciar e adaptar as configurações arquiteturais a fim de atender as demandas definidas nos contratos, e (iii) monitorar e gerenciar os contratos associados ao produto. Além disso, o framework integra serviços de contexto, monitoramento e descoberta de recursos. Mais detalhes dos componentes e do funcionamento do framework de suporte estão disponíveis em [19], [18], [20]. Um contrato possui os seguintes elementos: Categorias: descrevem, em um nível abstrato, propriedades associadas ao contexto no qual o produto executa (e.g., localização do paciente, localização de equipamentos tais como TV, celular, tipos de sensores, etc.). Categorias são associadas a entidades do framework de suporte que vão alocar e monitorar suas respectivas propriedades. Perfis: quantificam e valoram as propriedades de uma categoria. A quantificação restringe cada propriedade de acordo com a sua descrição, funcionando como uma instância de valores aceitáveis para determinada categoria. Serviços: definem restrições que devem ser aplicadas ao produto no nível da sua arquitetura. A aplicação destas restrições tem como consequência a configuração ou reconfiguração dinâmica da arquitetura do produto, realizada através da associação de um ou mais perfis aos seus elementos arquiteturais. Cada serviço define um possível estado de operação para o produto. Negociação: descreve uma política, definida por uma máquina de estados, que estabelece uma ordem arbitrária para a implantação dos serviços. De acordo com o descrito na cláusula de negociação, quando um serviço de maior preferência não puder mais ser mantido, o framework de suporte tentará implantar um serviço com menor preferência. O retorno para um serviço de maior preferência também pode ser descrito, permitindo que um serviço de melhor qualidade seja implantado se os perfis associados se tornarem válidos. Nas próximas duas subseções são apresentados dois cenários com o objetivo de ilustrar e tornar mais clara a abordagem. Os cenários estão relacionados com a LPS para sistemas de assistência domiciliar à saúde apresentada na Figura 2. O primeiro trata da comunicação entre a CSR (Central de Saúde Residencial) e a CSM (Central de Supervisão Médica), enquanto o segundo seleciona um dispositivo (TV, celular, etc.) mais próximo ao paciente e de sua preferência, com o objetivo de enviar mensagens lembrando-o de realizar as prescrições médicas. A. Cenário 1: Comunicação A transmissão de dados de emergência da CSR para a CSM pode sofrer descontinuidades, geralmente associadas à qualidade do serviço prestado pelos provedores de acesso, uma vez que primariamente a comunicação é feita através da Internet commodity. Neste sentido, pode-se prover características relacionadas à tolerância a falhas utilizando um canal alternativo via rede celular, ou mesmo via linha fixa. A Figura 3 mostra uma arquitetura e um contrato ilustrando a característica de comunicação. Figura 3. Arquitetura e contrato para comunicação. Os conectores pontilhados (Figura 3a) representam as alternativas desta característica, as quais são disponíveis como tecnologias de comunicação que podem ser selecionadas para a interconexão entre os componentes CSR e CSM. A Figura 3b apresenta a descrição simplificada da arquitetura, na qual são 70

6 definidos os componentes CSR e CSM (linhas 02-03) e a interconexão entre eles (linha 04). O conector entre os componentes deve ser dinamicamente estabelecido pelo contrato disponível na Figura 3c. A execução dessa configuração arquitetural associa o respectivo contrato à arquitetura. O contrato (Figura 3c) define três diferentes serviços, sendo que cada serviço encapsula uma alternativa de comunicação (linhas 07-10, e 15-18). O suporte necessário para cada serviço está encapsulado em um conector (construção link), seguindo a regra de contexto descrita no perfil, o qual é definido diretamente usando a propriedade Comunicacao.tecnologia. Para cada opção de canal há uma interface de comunicação e um sensor específico que detecta se o respectivo canal está disponível ou não. Para estabelecer o enlace de comunicação, o framework de suporte configura o respectivo conector e, durante a operação, tenta manter o enlace relativo ao canal preferencial. A cláusula de negociação (linhas 19-25) define que o serviço preferencial é sinternet e que, caso não esteja disponível, os serviços slinhafixa e scelular devem ser tentados. A linha 21 indica que o serviço sinternet deve ser executado assim que o enlace referente à Internet commodity se restabeleça. As transições entre os serviços dependem da disponibilidade desses serviços. Pode-se perceber com este cenário o emprego de contratos no tratamento de variabilidades relacionadas a aspectos não funcionais, neste caso a disponibilidade do recurso de comunicação. Outros aspectos não funcionais podem ser considerados nesta arquitetura, como por exemplo, a confiabilidade, associando um protocolo de comunicação confiável a um conector na arquitetura do produto. B. Cenário 2: Notificação Sensível ao Contexto O segundo cenário manipula características opcionais relacionadas a dispositivos tais como TV, monitor da CSR, celular, etc., os quais podem ser usados para notificar o paciente para realizar as prescrições médicas tais como tomar um medicamento, realizar uma medida com um sensor fisiológico (e.g., pressão arterial, frequência cardíaca, etc.) e outras recomendações personalizadas conforme o tratamento. O plano de cuidados mantém essas prescrições e deve interagir com o notificador, o qual envia as mensagens aos dispositivos disponíveis na casa do paciente. Os dispositivos são características da LPS e, neste cenário, são representados como variabilidades dinâmicas. Assim, a seleção de qual dispositivo usar para apresentar as mensagens ao paciente deve ser feita em tempo de execução e de acordo com regras de contexto. Para isso a arquitetura do produto deve ser estabelecida com instâncias dos componentes Plano de Cuidados e Notificador, por serem características comuns da LPS, e com um conector interligando-as (Figura 4a). As linhas descrevem a instanciação destes componentes e a linha 04 descreve a interligação (Figura 4b). A arquitetura estabelece ainda os componentes relativos ao celular (linha 05), à TV (linha 07) e ao monitor da CSR (linha 08), e a interconexão entre estes dispositivos e o notificador Figura 4. Arquitetura para a notificação ao paciente. (linha 09). Para que os dispositivos sejam selecionados em tempo de execução, parte desta arquitetura (linhas 07-09) deve ser associada a contratos que definem regras de contexto para a seleção. Neste cenário, a instanciação da TV está condicionada a uma situação de contexto: ela deve estar próxima ao paciente. A mesma regra de contexto se aplica ao monitor da CSR, enquanto que o celular não depende de qualquer regra de contexto e sempre é instanciado. A interconexão ao notificador, por sua vez, será feita a apenas um dos dispositivos (TV, monitor da CSR ou celular), de acordo com as preferências do paciente descritas no perfil. O paciente terá, portanto, a mensagem de notificação apresentada em um dispositivo da sua preferência, dentre aqueles localizados mais próximos a ele (no mesmo ambiente). Duas categorias foram definidas na Figura 5a, Paciente e Dispositivo, com as propriedades de contexto que devem ser avaliadas pelos serviços do contrato associado à arquitetura. Os valores a serem consultados junto ao serviço de contexto estão definidos em dois perfis, perfildispmaisprox e perfildisppref, apresentados na Figura 5b. Um contrato pode ser construído para selecionar os dispositivos (TV ou monitor da CSR) que estejam no mesmo ambiente do paciente (Figura 6). Ele descreve um serviço para selecionar as variabilidades (linhas 04-09), no qual somente os dispositivos que atendem ao perfil perfilmaisprox são instanciados. No exemplo, se nenhum dos dispositivos atender ao perfil ou se a TV estiver desligada ou não operacional, o 71

7 um dispositivo no mesmo ambiente do paciente. No exemplo, se o paciente estiver na sala, o serviço pode selecionar a TV e o monitor da CSR, supondo que ambos estejam também na sala. Portanto, além dessas informações de contexto, devem ser usadas as informações relacionadas à preferência do paciente, importantes quando se trata de pacientes em assistência domiciliar à saúde. O contrato apresentado na Figura 7, também associado à arquitetura do produto, interliga o notificador ao dispositivo preferido do paciente. Figura 5. a) Categorias Paciente e Dispositivo; b) Perfis perfildispmaisprox e perfildisppref. serviço servtodosdisp não iniciará sua execução, mas sim o serviço servcsr, de acordo com a cláusula de negociação definida nas linhas Além disso o contrato recebe, no momento de sua instanciação, duas variáveis de contexto numéricas, usadas respectivamente para identificar o paciente e o ambiente da casa no qual ele está (linhas 01-02). Um serviço de localização monitora estas variáveis e pode ser integrado ao framework de suporte [10], [21]. Figura 6. Contrato para selecionar o dispositivo mais próximo ao paciente. A instrução instantiate instancia (seleciona) o dispositivo apenas se o paciente localizado pelo serviço de localização (idpaciente na linha 01 do contrato) for o paciente registrado no sistema (Paciente.id na linha 10 do perfil perfildispmaisprox), e se o ambiente que ele está (localpaciente na linha 01 do contrato) for o mesmo do dispositivo que está sendo instanciado (Dispositivo.localizacao nas linhas do perfil perfildispmaisprox). Se estas regras das linhas do perfil não forem atendidas a instanciação (seleção) do dispositivo em questão não será realizada. O serviço do contrato da Figura 6 pode selecionar mais de Figura 7. próximos. Contrato para selecionar o dispositivo preferido dentre os mais A construção select (linhas 04-05) faz com que o framework de suporte localize as instâncias da classe Dispositivo (TV, monitorcsr, celular) correspondentes aos dispositivos mais próximos ao paciente e selecione, dentre estes dispositivos (Dispositivo@casa), o preferido pelo paciente conforme as regras definidas no perfil de seleção perfildisppref, nas suas linhas 15 e 16 (Figura 5b). O dispositivo selecionado (@disp) é então interligado ao notificador. Se o paciente estiver na sala as mensagens serão mostradas no seu dispositivo preferido, neste exemplo a TV, e caso esta não esteja ligada ou mesmo não esteja operacional, serão mostradas no monitor da CSR (linhas do contrato da Figura 6). O celular será escolhido se o paciente estiver em outro ambiente que não seja a sala. A partir da descrição da arquitetura, das categorias, dos perfis e dos contratos, o paciente receberá suas notificações por meio do dispositivo que esteja mais próximo a ele, respeitando suas preferências de uso. Mais detalhes sobre o mecanismo de descoberta e de ligação dinâmica de recursos estão disponíveis em [19], [21]. V. TRABALHOS RELACIONADOS Vários trabalhos em LPS abordam o gerenciamento de variabilidades de forma estática sem considerar as mudanças que podem ocorrer em tempo de execução [2], [1], [22]. Outros propõem o gerenciamento de variabilidades em tempo de execução empregando técnicas baseadas em parametrização e diretivas [23], [24]. Há ainda pesquisas em torno do modelo de características de LPS tais como [25] que propõe uma técnica para se desenvolver componentes dinamicamente reconfiguráveis, e [26] que propõe uma extensão ao modelo de características para representar informações de contexto. Estes trabalhos não adotam uma representação arquitetural, diferentemente da nossa abordagem que é centrada em arquiteturas e que trata componentes e conectores como entidades de primeira classe. 72

8 Há vários trabalhos que tratam de adaptação dinâmica baseada em modelos arquiteturais. Floch et al. [3] tratam as variabilidades dinâmicas como configurações, de forma semelhante à nossa abordagem. A reconfiguração é feita com base em funções utilidade, também adotadas no nosso mecanismo de reconfiguração [27]. O foco deles, no entanto, está restrito a aplicações móveis. Morin et al. [28] tratam a adaptação considerando quatro aspectos: variabilidades, ambiente e contexto do sistema, arquitetura do sistema e lógica de adaptação. Os autores usam técnicas de modelagem orientadas a aspectos para construir as configurações arquiteturais, enquanto que a nossa abordagem provê a separação de interesses por meio de outros mecanismos, visto que os contratos representam as variabilidades em um nível alto de abstração e podem ser descritos distintamente da arquitetura. Rainbown [29] usa invariantes coordenadas com estratégias de adaptação, às quais são semelhantes aos perfis e serviços empregados no contrato, e as adaptações são encapsuladas em procedimentos que implementam as ações de configuração. De forma diferente, as adaptações na nossa abordagem são governadas pelo contrato com base em uma ADL, o que permite a validação formal do procedimento de adaptação antes da implantação do produto de software [30]. Complementar à nossa pesquisa é a proposta descrita em [31]. Os autores dimensionam as variabilidades em duas: variabilidade de ambiente que define as condições sob as quais um sistema deve se adaptar, e variabilidade estrutural que define as configurações arquiteturais resultantes. A reconfiguração é feita por meio de um middleware baseado em componentes e utiliza uma máquina de estados para representar as configurações do sistema. Em relação ao domínio da assistência domiciliar à saúde, sistemas têm sidos propostos (e.g., [15], [16]), no entanto não abordam aspectos de personalização como argumentados na Seção III. Uma ideia semelhante à LPS mostrada na Figura 2 é apresentada em [32] com o objetivo de personalizar os sistemas. No entanto, os autores não tratam de diversas características tais como o uso de um serviço de contexto e a integração de informações fisiológicas e comportamentais do paciente, dentre outras. VI. CONCLUSÃO Este artigo apresentou uma abordagem para o gerenciamento de variabilidades dinâmicas em LPSs. As variabilidades são gerenciadas por contratos arquiteturais, os quais são instanciados por um framework de suporte responsável por monitorar o contexto e controlar a adaptação da arquitetura. Com o intuito de demonstrar a viabilidade da abordagem, foram descritos cenários envolvendo variabilidades dinâmicas de uma LPS. A principal contribuição do mecanismo proposto está na possibilidade de expressar as variabilidades dinâmicas em um nível alto de abstração. A linguagem de descrição de contratos permite representar tanto as ações de adaptação (serviços) que devem ser realizadas junto à arquitetura quanto as regras de contexto (perfis) usadas para guiar estas adaptações. Considerando ainda que a semântica do contrato é traduzida em ações junto ao framework de suporte, a construção do contrato pode ser vista como um padrão [33], facilitando a especificação das variabilidades dinâmicas da LPS. Além disso, a semântica dos contratos facilita a aplicação de procedimentos de verificação e de validação formal das suas especificações, antes mesmo da implantação do produto de software [30]. Outro aspecto é o fato dos contratos não fazerem parte da arquitetura da LPS, mas sim estarem associados a ela. Essa propriedade permite que as variabilidades dinâmicas sejam tratadas separadamente das características obrigatórias durante o processo de desenvolvimento de um produto. Isso traz benefícios em termos da separação de interesses, facilitando a reutilização dos componentes entre os produtos que compõem a linha. O domínio da assistência domiciliar à saúde tem orientado nossos esforços em torno da identificação de requisitos que exijam a aplicação de técnicas de adaptação dinâmica. Atualmente estamos investigando mecanismos que permitam adaptar os contratos em tempo de execução, ou mesmo criar e instanciar novos contratos, para que possam manipular variabilidades e requisitos não previstos em tempo de desenvolvimento, como argumentado em [34]. O objetivo é a concepção de uma linha de produto dinâmica que contemple suas diversas características, variabilidades e requisitos. AGRADECIMENTOS Os autores agradecem ao CNPq e à FAPERJ pelo financiamento parcial deste trabalho. REFERÊNCIAS [1] L. M. Northrop, Sei s software product line tenets, IEEE Software, vol. 19, pp , [2] G. Jilles van, J. Bosch, and M. Svahnberg, On the notion of variability in software product lines, in WICSA 01: Proceedings of the Working IEEE/IFIP Conference on Software Architecture. Washington, DC, USA: IEEE Computer Society, 2001, p. 45. [3] S. Hallsteinsen, E. Stav, A. Solberg, and J. Floch, Using product line techniques to build adaptive systems, in 10th Int. Conference on Software Product Line, Washington, DC, USA, 2006, pp [4] S. Hallsteinsen, M. Hinchey et al., Dynamic software product lines, Computer, vol. 41, no. 4, pp , [5] O. Loques and A. Sztajnberg, Adaptation issues in software architectures of remote health care systems, in 2nd Workshop on Software Engineering in Health Care - SEHC ACM/IEEE 32nd Int. Conference on Software Engineering, Cape Town, South Africa, may [6] K. Kang, S. Cohen, J. Hess, W. Nowak, and S. Peterson, Feature- Oriented Domain Analysis (FODA) Feasibility Study. Technical Report, CMU/SEI-90-TR-21, Software Engineering Institute (Carnegie Mellon), Pittsburgh, PA 15213, Tech. Rep., [7] N. Medvidovic and R. N. Taylor, A classification and comparison framework for software architecture description languages, IEEE Trans. Softw. Eng., vol. 26, no. 1, pp , [8] A. Garg, M. Critchlow, P. Chen, C. Van der Westhuizen, and A. Van der Hoek, An environment for managing evolving product line architectures, in Software Maintenance, ICSM Proceedings. International Conference on, 2003, pp

9 [9] M. Z. Eslami and M. J. van Sinderen, Flexible home care automation adapting to the personal and evolving needs and situations of the patient, in 3rd Int. Conference on Pervasive Computing Technologies for Healthcare, 2009, London, UK, Los Alamitos, CA, March 2009, pp [10] A. Sztajnberg, A. Rodrigues, L. Bezerra, O. Loques, A. Copetti, and S. T. Carvalho, Applying context-aware techniques to design remote assisted living applications, Int. Journal of Functional Informatics and Personalised Medicine, vol. 2, no. 4, pp , [11] A. Copetti, Monitoramento Inteligente e Sensível ao Contexto na Assistência Domiciliar Telemonitorada, Ph.D. dissertation, (em preparação) Instituto de Computação, Universidade Federal Fluminense, Niterói, RJ, Brasil, [12] A. Copetti, O. Loques, J. Leite, T. Barbosa, and A. da Nóbrega, Intelligent context-aware monitoring of hypertensive patients, in 1st Workshop for Situation Recognition and Medical Data Analysis. 3rd Int. Conference on Pervasive Computing Technologies for Healthcare, London, UK, [13] S. T. Carvalho, M. Erthal, D. Mareli, A. Sztajnberg, A. Copetti, and O. Loques, Monitoramento remoto de pacientes em ambiente domiciliar, in XXVIII Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos - Salão de Ferramentas, Gramado, RS, Brasil, may 2010, pp [14] C. Orwat, A. Graefe, and T. Faulwasser, Towards pervasive computing in health care A literature review, BMC Medical Informatics and Decision Making, vol. 8, p. 26, [15] M. ElHelw, J. Pansiot, McIlwraith et al., An integrated multi-sensing framework for pervasive healthcare monitoring, in 3rd Int. Conf. on Pervasive Comp. Technologies for Healthcare, april 2009, pp [16] P. Leijdekkers, V. Gay, and E. Lawrence, Smart homecare system for health tele-monitoring, in Digital Society, ICDS 07, jan. 2007, pp [17] S. T. Carvalho and O. Loques, Arquitetura de software para sistemas pervasivos de assistência domiciliar à saúde, in X Workshop de Informática Médica, XXX Congresso da Sociedade Brasileira de Computação, Belo Horizonte, MG, Brasil, jul 2010, pp [18] O. Loques, R. Cerqueira, A. Sztajnberg, and S. Ansaloni, A contractbased approach to describe and deploy non-functional adaptations in software architectures, Journal of the Brazilian Computer Society, vol. 10, no. 1, pp. 5 18, [19] L. Cardoso, A. Sztajnberg, and O. Loques, Self-adaptive applications using ADL contracts, Lecture Notes in Computer Science, vol. 3996, p. 87, [20] A. L. B. Rodrigues, L. N. Bezerra, A. Sztajnberg, and O. Loques, Self-adaptation of fault tolerance requirements using contracts, Computational Science and Engineering, IEEE International Conference on, vol. 2, pp , [21] L. X. T. Cardoso, Integração de serviços de monitoração e descoberta de recursos a um suporte para arquiteturas adaptáveis de software, Master s thesis, Instituto de Computação, Universidade Federal Fluminense, Niterói, RJ, Brasil, [22] C. Krueger, Variation management for software production lines, Software Product Lines, pp , [23] M. Goedicke, C. Köllmann, and U. Zdun, Designing runtime variation points in product line architectures: three cases, Science of Computer Programming, vol. 53, no. 3, pp , [24] M. Svahnberg, J. Van Gurp, and J. Bosch, A taxonomy of variability realization techniques, Software: Practice and Experience, vol. 35, no. 8, pp , [25] J. Lee and D. Muthig, Feature-oriented variability management in product line engineering, Communications of the ACM, vol. 49, no. 12, p. 59, [26] P. Fernandes, C. Werner, and L. Murta, Feature modeling for contextaware software product lines, in Twentieth International Conference on Software Engineering and Knowledge Engineering (SEKE 08), 2008, pp [27] D. A. S. Leal, Suportando a adaptação de aplicações pervasivas pelo uso de funções utilidade, Master s thesis, Instituto de Computação, Universidade Federal Fluminense, Niterói, RJ, Brasil, [28] B. Morin et al., Models at runtime to support dynamic adaptation, Computer, vol. 42, no. 10, pp , oct [29] D. Garlan, S. Cheng, A. Huang, B. Schmerl, and P. Steenkiste, Rainbow: Architecture-based self-adaptation with reusable infrastructure, Computer, vol. 37, no. 10, pp , [30] C. Braga, F. Chalub, and A. Sztajnberg, A formal semantics for a quality of service contract language, Electron. Notes Theor. Comput. Sci., vol. 203, no. 7, pp , [31] N. Bencomo, P. Sawyer, G. Blair, and P. Grace, Dynamically adaptive systems are product lines too: Using model-driven techniques to capture dynamic variability of adaptive systems, in 2nd Int. Workshop on Dynamic Software Product Lines, Limerick, Ireland, [32] M. Laguna, J. Finat, and J. González, Remote Health Monitoring: A Customizable Product Line Approach, Distributed Computing, Artificial Intelligence, Bioinformatics, Soft Computing, and Ambient Assisted Living, pp , [33] J. Lisbôa and O. Loques, Adaptação dinâmica guiada por contrato, in VII Latin American Conference on Pattern Languages of Programming - SugarLoafPloP 2008, [34] N. Bencomo, J. Whittle, P. Sawyer, A. Finkelstein, and E. Letier, Requirements reflection: Requirements as runtime entities, in International Conference on Software Engineering (ICSE), vol. 2, may 2010, pp

Utilização de técnicas de Process Mining em Sistemas de Middleware Adaptativos Proposta de Trabalho de Graduação

Utilização de técnicas de Process Mining em Sistemas de Middleware Adaptativos Proposta de Trabalho de Graduação UNIVERSIDADE FEDERAL DE PERNAMBUCO GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA 2017.1 Utilização de técnicas de Process Mining em Sistemas de Middleware Adaptativos Proposta de Trabalho de

Leia mais

Um Sistema Computacional Inteligente de Assistência Domiciliar à Saúde

Um Sistema Computacional Inteligente de Assistência Domiciliar à Saúde Um Sistema Computacional Inteligente de Assistência Domiciliar à Saúde Sergio T. Carvalho 1, Alessandro Copetti 2, Orlando G. Loques Filho 3 1,2,3 Instituto de Computação (IC), Universidade Federal Fluminense

Leia mais

Apresentação do Curso de Gerência de Configuração

Apresentação do Curso de Gerência de Configuração Apresentação do Curso de Gerência de Configuração Leonardo Gresta Paulino Murta leomurta@ic.uff.br Apresentações Quem sou eu? Leonardo Murta http://www.ic.uff.br/~leomurta Quem são vocês? Nome? Fez mestrado

Leia mais

Uma Abordagem para Geração de uma Arquitetura de Linha de Produtos de Software Dinâmica

Uma Abordagem para Geração de uma Arquitetura de Linha de Produtos de Software Dinâmica Uma Abordagem para Geração de uma Arquitetura de Linha de Produtos de Software Dinâmica Eldânae ogueira Teixeira Orientadora: Claúdia M. L. Werner PESC/COPPE Universidade Federal do Rio de Janeiro Caixa

Leia mais

Pesquisa em Sistemas Distribuídos

Pesquisa em Sistemas Distribuídos Pesquisa em Sistemas Distribuídos Alexandre Sztajnberg PEL/FEN e DICC/IME UERJ - Rio de Janeiro, RJ, Brazil alexszt@uerj.br 1 Introdução Contexto Aplicações concorrentes e distribuídas com requisitos não-funcionais

Leia mais

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

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Engenharia de Software I Informática 2006 Profa. Dra. Itana Gimenes RUP: Projeto Artefatos Modelo de Projeto: Lista de classes de

Leia mais

2 Fundamentação conceitual

2 Fundamentação conceitual 2 Fundamentação conceitual O middleware Kaluana permite a implementação de aplicações móveis dinamicamente adaptáveis, constituídas pela composição de componentes desenvolvidos seguindo o modelo Kaluana,

Leia mais

Adaptação Dinâmica desistemas Distribuídos p.1/54

Adaptação Dinâmica desistemas Distribuídos p.1/54 Adaptação Dinâmica de Sistemas Distribuídos Francisco José da Silva e Silva Orientadores: Prof. Dr. Markus Endler Prof. Dr. Fabio Kon Instituto de Matemática e Estatística da Universidade de São Paulo

Leia mais

INF1013 MODELAGEM DE SOFTWARE

INF1013 MODELAGEM DE SOFTWARE INF1013 MODELAGEM DE SOFTWARE Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 1 O Paradigma Orientado a Objetos A Linguagem UML Descrição da Arquitetura 1 Programa

Leia mais

Descobrindo a Computação Ubíqua

Descobrindo a Computação Ubíqua Descobrindo a Computação Ubíqua Autor: Vando de Freitas Batista Orientador: Giovanni Cordeiro Barroso UFC IV Encontro de Pós-Graduação e Agenda Introdução Materiais e Métodos Resultados Discussão Conclusão

Leia mais

Uma Proposta para Geração de uma Arquitetura de Linha de Produtos de Software Dinâmica

Uma Proposta para Geração de uma Arquitetura de Linha de Produtos de Software Dinâmica Uma Proposta para Geração de uma Arquitetura de Linha de Produtos de Software Dinâmica Position Paper Eldânae ogueira Teixeira, Cláudia M. L. Werner, Paula Fernandes PESC/COPPE Universidade Federal do

Leia mais

Desenvolvimento Baseado em Componentes e o Enfoque de Linha de Produtos

Desenvolvimento Baseado em Componentes e o Enfoque de Linha de Produtos Desenvolvimento Baseado em Componentes e o Enfoque de Linha de Produtos Segundo Workshop de Desenvolvimento Baseado em Componentes Itana Maria de Souza Gimenes itana@din.uem.br Departamento de Informática

Leia mais

Renato Figueiró Maia. Um Framework para Sistemas Baseados em Componentes Distribuídos. Informática DEPARTAMENTO DE INFORMÁTICA

Renato Figueiró Maia. Um Framework para Sistemas Baseados em Componentes Distribuídos. Informática DEPARTAMENTO DE INFORMÁTICA Renato Figueiró Maia Um Framework para Adaptação Dinâmica de Sistemas Baseados em Componentes Distribuídos DISSERTAÇÃO DE MESTRADO DEPARTAMENTO DE INFORMÁTICA Programa de Pós graduação em Informática Rio

Leia mais

Análise de Sistemas. Aula 5

Análise de Sistemas. Aula 5 Análise de Sistemas Aula 5 Prof. Emerson Klisiewicz CONTEXTUALIZAÇÃO Aula 5 Análise Orientada a Objetos Introdução a UML Histórico e Visão Geral Ferramentas CASE O Sucesso... Clientes satisfeitos Eles

Leia mais

Plano de pesquisa de mestrado em ciência da computação. Márcio G. Morais

Plano de pesquisa de mestrado em ciência da computação. Márcio G. Morais Plano de pesquisa de mestrado em ciência da computação. Márcio G. Morais Introdução Falhas em Robótica Sistema de múltiplos robôs Software em robótica Estado da Arte Situação dos Frameworks c/ tolerância

Leia mais

Desenvolvimento de Software Baseado em Componentes. Paulo C. Masiero

Desenvolvimento de Software Baseado em Componentes. Paulo C. Masiero Desenvolvimento de Software Baseado em Componentes Paulo C. Masiero 1 Introdução Frustração com as promessas da Orientação a objetos em relação ao reuso de classes. Frameworks são uma solução para um domínio

Leia mais

Run-Time Variability through Component Dynamic Loading

Run-Time Variability through Component Dynamic Loading Run-Time Variability through Component Dynamic Loading Leonardo Murta, Aline Vasconcelos Ana Paula Blois, Marco Lopes Carlos Júnior, Marco Mangan Cláudia Werner Agenda Contexto e Motivação Variabilidades

Leia mais

Proposta de uma ontologia para um ambiente homecare pervasivo

Proposta de uma ontologia para um ambiente homecare pervasivo Proposta de uma ontologia para um ambiente homecare pervasivo Ederson Bastiani 1 1 Programa de Pós-Graduação em Informática Universidade Federal de Santa Maria (UFSM) Santa Maria, RS Brasil edersonbastiani

Leia mais

3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks

3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks 48 3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks Este capítulo apresenta uma visão geral da contribuição principal deste trabalho: uma abordagem orientada a aspectos para o

Leia mais

Arquitetura de Software: Documentação

Arquitetura de Software: Documentação Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Arquitetura de Software: Documentação SSC-0527 Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa Tiago Volpato Introdução

Leia mais

5 Processo de Reificação e de Desenvolvimento com ACCA

5 Processo de Reificação e de Desenvolvimento com ACCA Uma Arquitetura para a Coordenação e a Composição de Artefatos de Software 53 5 Processo de Reificação e de Desenvolvimento com ACCA Resumo Este capítulo visa esclarecer e descrever atividades existentes

Leia mais

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

6.1. Teste Baseado em Gramática e Outras Abordagens de Teste 6 Discussão Além das técnicas de teste usando modelos gramaticais, existem outras abordagens de teste funcional de sistemas que estão sendo estudadas pela comunidade científica. Algumas delas se dedicam

Leia mais

Visões Arquiteturais. Visões Arquiteturais

Visões Arquiteturais. Visões Arquiteturais Visões Arquiteturais Separar diferentes aspectos em visões separadas com o objetivo de gerenciar complexidade. Cada visão descreve diferentes conceitos da Engenharia. Visões permitem reduzir a quantidade

Leia mais

3 Kaluana Arquitetura

3 Kaluana Arquitetura Kaluana 31 3 Kaluana O middleware Kaluana original [12] tem como objetivo oferecer ao desenvolvedor de aplicações móveis, maior facilidade na implementação de aplicações dinamicamente adaptáveis. Ele define

Leia mais

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

JADEX: A BDI REASONING ENGINE. Alexander Pokahr, Lars Braubach e Winfried Lamersdorf Springer US - Multi-Agent Programming 2005 pp. JADEX: A BDI REASONING ENGINE Alexander Pokahr, Lars Braubach e Winfried Lamersdorf Springer US - Multi-Agent Programming 2005 pp. 149-174 Volume 15 Motivação Existem muitas plataformas para desenvolvimento

Leia mais

Ciência da Computação ENGENHARIA DE SOFTWARE. Capítulo 1 Introdução

Ciência da Computação ENGENHARIA DE SOFTWARE. Capítulo 1 Introdução Ciência da Computação ENGENHARIA DE SOFTWARE Capítulo 1 Introdução Prof. Claudinei Dias email: prof.claudinei.dias@gmail.com Plano de Ensino 1. Introdução à Engenharia de Software Importância da Engenharia

Leia mais

Autor 1 Orientador: 1. dia de mês de ano

Autor 1 Orientador: 1. dia de mês de ano Título Autor 1 Orientador: 1 1 Laboratório de Sistemas de Computação Universidade Federal de Santa Maria dia de mês de ano Roteiro Introdução Fundamentação Desenvolvimento Resultados Conclusão e Trabalhos

Leia mais

Contexto. Motivação. variabilidade. variabilidade

Contexto. Motivação. variabilidade. variabilidade Representação de Variabilidades em Componentes de Negócio no Contexto da Engenharia de Domínio Regiane Oliveira Ana Paula Blois Aline Vasconcelos Claudia Werner Roteiro Contexto Motivação Variabilidade

Leia mais

Arquitetura de Software: Introdução

Arquitetura de Software: Introdução Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Arquitetura de Software: Introdução SSC-121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2012 Conteúdo

Leia mais

Ciclo de vida: fases x atividades

Ciclo de vida: fases x atividades Ciclo de vida Fase de definição Análise e Especificação Estudo de Viabilidade Estimativas Planejamento Fase de desenvolvimento Design Implementação e integração Verificação e Validação Fase de operação

Leia mais

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

EXEHDA-SS: Uma Contribuição a Sensibilidade ao Contexto na Medicina Ubíqua Universidade Católica de Pelotas Centro Politécnico Programa de Pós-Graduação em Informática EXEHDA-SS: Uma Contribuição a Sensibilidade ao Contexto na Medicina Ubíqua Luthiano Venecian, João Lopes, Adenauer

Leia mais

Carga Dinâmica de Componentes via Biblioteca Brechó

Carga Dinâmica de Componentes via Biblioteca Brechó Carga Dinâmica de Componentes via Biblioteca Brechó Paula Fernandes, João Gustavo Prudêncio, Anderson Marinho, Marco Lopes, Leonardo Murta, Cláudia Werner PESC/COPPE Universidade Federal do Rio de Janeiro

Leia mais

Desenvolvido pelo Software Engineering Institute-SEI em 1992 Possui representação por estágios (5 níveis)e contínua (6 níveis)

Desenvolvido pelo Software Engineering Institute-SEI em 1992 Possui representação por estágios (5 níveis)e contínua (6 níveis) CMMI / MPS.BR Modelos de Maturidade de Qualidade de Software Aplicações criteriosas de conceitos de gerenciamento de processos e de melhoria da qualidade ao desenvolvimento e manutenção de software CMMI

Leia mais

Desenvolvimento de Software Baseado em Componentes. Paulo C. Masiero

Desenvolvimento de Software Baseado em Componentes. Paulo C. Masiero Desenvolvimento de Software Baseado em Componentes Paulo C. Masiero 1 Introdução Frustração com as promessas da Orientação a objetos em relação ao reuso de classes. Frameworks são uma solução para um domínio

Leia mais

3.1 Reflexão Computacional

3.1 Reflexão Computacional 3 Adaptação Dinâmica Adaptação dinâmica é a capacidade de um sistema ser modificado durante sua execução para se adequar a novas necessidades. Recentemente, esse tem se tornado um tópico de pesquisa proeminente

Leia mais

2 O Modelo: SetModel. 2.1 Modelo de Informação

2 O Modelo: SetModel. 2.1 Modelo de Informação O Modelo: SetModel 2 O Modelo: SetModel 2.1 Modelo de Informação Modelo de informação é uma representação abstrata e formal de entidades incluindo suas propriedades, relações e operações que podem ser

Leia mais

Rosana T.Vaccare Braga

Rosana T.Vaccare Braga Rosana T.Vaccare Braga Processo de remover detalhes físicos,espaciais ou temporais no estudo de objetos ou sistemas com o objetivo de focar em outros aspectos de interesse (Colburn) Similar ao processo

Leia mais

ALM Aplicações em Linguagem de Montagem. Introdução. A produção de Software é uma atividade build and fix. build. fix

ALM Aplicações em Linguagem de Montagem. Introdução. A produção de Software é uma atividade build and fix. build. fix Introdução A produção de Software é uma atividade build and fix. 1 Introdução build 2 Introdução fix 3 1 Introdução 4 P s Só pessoas motivadas e comprometidas com o projeto garantem o respectivo sucesso;

Leia mais

3 Trabalhos Relacionados

3 Trabalhos Relacionados Trabalhos Relacionados 31 3 Trabalhos Relacionados Nesta seção, são descritos alguns trabalhos relacionados, a relação entre eles e o trabalho proposto, além da relação com os desafios mencionados na subseção

Leia mais

Marcelo Henrique dos Santos

Marcelo Henrique dos Santos Marcelo Henrique dos Santos Mestrado em Educação (em andamento) MBA em Negócios em Mídias Digitais (em andamento) MBA em Marketing e Vendas Especialista em games Bacharel em Sistema de Informação Email:

Leia mais

5 Trabalhos Relacioandos

5 Trabalhos Relacioandos 5 Trabalhos Relacioandos Neste capítulo, são descritos alguns trabalhos relacionados enfatizando a relação entre eles e o trabalho proposto. A principal contribuição deste trabalho é a proposta de um framework

Leia mais

Composição e Geração de Aplicações usando Aspectos

Composição e Geração de Aplicações usando Aspectos Composição e Geração de Aplicações usando Aspectos Carlos Alberto de Freitas Pereira Júnior 1 Rosana Teresinha Vaccare Braga 1 1 Programa de Mestrado em Ciências de Computação e Matemática Computacional

Leia mais

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

Bruno Loureiro Rezende. Um Framework para a Automação de Testes com Linguagens de Especificação Configuráveis DISSERTAÇÃO DE MESTRADO Bruno Loureiro Rezende Um Framework para a Automação de Testes com Linguagens de Especificação Configuráveis DISSERTAÇÃO DE MESTRADO DEPARTAMENTO DE INFORMÁTICA Programa de Pós-graduação em Informática

Leia mais

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

Engenharia de Software I: Introdução. Graduação em Informática 2009 Profa. Itana Gimenes Engenharia de Software I: Introdução Graduação em Informática 2009 Profa. Itana Gimenes Programa 1. O processo de engenharia de software 2. Engenharia de requisitos 3. Modelagem de sistemas 4. Conceitos

Leia mais

FUNDAMENTOS DA ANÁLISE E PROJETO DE SISTEMAS. Projeto de Programas PPR0001

FUNDAMENTOS DA ANÁLISE E PROJETO DE SISTEMAS. Projeto de Programas PPR0001 FUNDAMENTOS DA ANÁLISE E PROJETO DE SISTEMAS Projeto de Programas PPR0001 2 Introdução Antes de desenvolver ou construir qualquer produto ou sistema em engenharia é necessário um... o PROJETO O que é um

Leia mais

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

Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP: Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP: 8429016 Definição de MDA OMG (Object Management Group) propôs uma aplicação abrangente das práticas

Leia mais

As principais contribuições do presente trabalho são as seguintes:

As principais contribuições do presente trabalho são as seguintes: 5 Conclusões Nesta dissertação, foram estudadas algumas das principais características que dificultam a provisão de QoS em sistemas operacionais de propósito geral, de forma a relacioná-las com soluções

Leia mais

Um mecanismo de monitoramento de serviços na plataforma OSGi

Um mecanismo de monitoramento de serviços na plataforma OSGi U N I V E R S I D A D E F E D E R A L D E P E R N A M B U C O GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA 2010.2 Um mecanismo de monitoramento de serviços na plataforma OSGi Proposta de Trabalho

Leia mais

Documento de Arquitetura de Software- SGE

Documento de Arquitetura de Software- SGE Documento de Arquitetura de Software- SGE IFG Autor: Marcelo Roldrin Barros Silva 1. Introdução 1.1 Finalidade Este documento oferece uma visão geral arquitetural abrangente do sistema SGE (Sistema de

Leia mais

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Mestrado em Ciência da Computação 1o. Semestre / 2006 Prof. Fábio M. Costa fmc@inf.ufg.br www.inf.ufg.br/~fmc/ds-msc2006 Aula

Leia mais

DEFINING METRIC THRESHOLDS FOR SOFTWARE PRODUCT LINES: A COMPARATIVE STUDY

DEFINING METRIC THRESHOLDS FOR SOFTWARE PRODUCT LINES: A COMPARATIVE STUDY DEFINING METRIC THRESHOLDS FOR SOFTWARE PRODUCT LINES: A COMPARATIVE STUDY APRESENTADO POR: BRUNO LUAN DE SOUSA QUA L I DA DE E MEDIÇÃO DE SOFTWA R E U N I V E R S I DA D E F E D E R A L D E MINAS G E

Leia mais

Professor Emiliano S. Monteiro

Professor Emiliano S. Monteiro Professor Emiliano S. Monteiro To-Do Doing Done Conhecer os processos de desenvolvimento habilita o aluno a realizar uma melhor escolha de processo para uso em projetos futuros. A vantagem de conhecer

Leia mais

Estilos Arquiteturais. Prof. Fellipe Aleixo

Estilos Arquiteturais. Prof. Fellipe Aleixo Estilos Arquiteturais Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Introdução Em An Introduction to Software Architecture, artigo de 1994, David Garlan e Mary Shaw definiram: An architectural style,

Leia mais

Uma Abordagem para Engenharia de Requisitos no Domínio de Software Embarcado

Uma Abordagem para Engenharia de Requisitos no Domínio de Software Embarcado Uma Abordagem para Engenharia de Requisitos no Domínio de Software Embarcado Milena R. S. Marques, Eliane Siegert, Lisane de Brisolara Ciência da Computação, Grupo de Arquiteturas e Circuitos Integrados,

Leia mais

UMA ARQUITETURA BASEADA EM COMPUTAÇÃO UBÍQUA PARA MONITORAMENTO DE INDIVÍDUOS EM AMBIENTES RESTRITOS

UMA ARQUITETURA BASEADA EM COMPUTAÇÃO UBÍQUA PARA MONITORAMENTO DE INDIVÍDUOS EM AMBIENTES RESTRITOS UMA ARQUITETURA BASEADA EM COMPUTAÇÃO UBÍQUA PARA MONITORAMENTO DE INDIVÍDUOS EM AMBIENTES RESTRITOS Pablo Lopes¹, Alan Tavares², Arthur Gorgônio³, Flavius Gorgônio ¹Estudante do Curso de Bacharelado de

Leia mais

Uma Infra-estrutura para Gerência de Conhecimento em ODE

Uma Infra-estrutura para Gerência de Conhecimento em ODE Uma Infra-estrutura para Gerência de Conhecimento em ODE Ana Candida Cruz Natali, Ricardo de Almeida Falbo Departamento de Informática, Universidade Federal do Espírito Santo UFES Av. Fernando Ferrari

Leia mais

Engenharia de Requisitos

Engenharia de Requisitos Engenharia de Requisitos Criado: mar/2001 Atualizado: set/2005 Tópicos Definição de Requisitos Participantes Processo Documento de Requisitos (SRS) Evolução dos Requisitos 2 Referência I.Sommerville. Sw

Leia mais

PELADA UM PRONTUÁRIO ELETRÔNICO LARISSA-DATASUS, PARA UMA PLATAFORMA SENSÍVEL AO CONTEXTO

PELADA UM PRONTUÁRIO ELETRÔNICO LARISSA-DATASUS, PARA UMA PLATAFORMA SENSÍVEL AO CONTEXTO PELADA UM PRONTUÁRIO ELETRÔNICO LARISSA-DATASUS, PARA UMA PLATAFORMA SENSÍVEL AO CONTEXTO PINHEIRO, Taciano Universidade Federal do Ceará taciano@ufc.br OLAVO, Cesar Instituto Federal do Ceará cesar@ifce.edu.br

Leia mais

Soluções IoT Inovadoras Plataforma Link IoT

Soluções IoT Inovadoras Plataforma Link IoT Soluções IoT Inovadoras Plataforma Link IoT Tecnologia Beacon Como Funciona A Taggen está desenvolvendo produtos inovadores para auxiliar na criação de soluções voltadas à Internet das Coisas A Internet

Leia mais

Introdução à Análise e Projeto de Sistemas

Introdução à Análise e Projeto de Sistemas Introdução à I. O Que vamos fazer na Disciplina? Saber uma linguagem de programação orientada a objeto (OO) não é suficiente para criar sistemas OO Tem que saber Análise e Projeto OO (APOO) Isto é, Análise

Leia mais

Uso de Sistemas Multi-Agentes para Implementação de Aplicações Sensíveis a Contexto

Uso de Sistemas Multi-Agentes para Implementação de Aplicações Sensíveis a Contexto Uso de Sistemas Multi-Agentes para Implementação de Aplicações Sensíveis a Contexto José Viterbo Filho viterbo@lac.inf.puc-rio.br Laboratory for Advanced Collaboration PUC Rio, Brazil Motivação Algumas

Leia mais

Reutilização de Software

Reutilização de Software Reutilização de Software Cláudia Maria Lima Werner werner@cos.ufrj.br COPPE/UFRJ Programa de Engenharia de Sistemas e Computação Tópicos Engenharia de Software Processo de Software Reutilização de Software

Leia mais

Desenvolvimento de Software para Sistemas Multiagentes

Desenvolvimento de Software para Sistemas Multiagentes Desenvolvimento de Software para Sistemas Multiagentes Hyggo Oliveira de Almeida 1, Evandro Costa 2, Angelo Perkusich 1 1 Departamento de Engenharia Elétrica Universidade Federal de Campina Grande Av.

Leia mais

Teste de Software. Competência: Entender as técnicas e estratégias de testes de Software

Teste de Software. Competência: Entender as técnicas e estratégias de testes de Software Teste de Software Competência: Entender as técnicas e estratégias de testes de Software Conteúdo Programático Introdução O que é teste de software? Por que é necessário testar um software? Qual a causa

Leia mais

Engenharia de Domínio e Desenvolvimento Baseado em Componentes. Processo DBC-Arch-DE Apoio do Ambiente Odyssey no Processo Considerações Finais

Engenharia de Domínio e Desenvolvimento Baseado em Componentes. Processo DBC-Arch-DE Apoio do Ambiente Odyssey no Processo Considerações Finais Um Processo de Engenharia de Domínio com foco no Projeto Arquitetural Baseado em Componentes Ana Paula Blois Cláudia Werner Karin Becker Agenda Motivação Engenharia de Domínio e Desenvolvimento Baseado

Leia mais

Introdução ao Catalysis

Introdução ao Catalysis Introdução ao Catalysis Tópicos Avançados de Engenharia de Software João Bosco jbapf@cin.ufpe.br Roteiro Dificuldades Motivação Componentes Desenvolvimento Baseado em Componentes (DBC) Catalysis jbapf@cin.ufpe.br

Leia mais

MANUTENÇÃO DINÂMICA DE MODELOS EM COMPUTAÇÃO SENSÍVEL AO CONTEXTO. PALAVRAS-CHAVE: CEP, Esper, Computação Sensível ao Contexto, SBE.

MANUTENÇÃO DINÂMICA DE MODELOS EM COMPUTAÇÃO SENSÍVEL AO CONTEXTO. PALAVRAS-CHAVE: CEP, Esper, Computação Sensível ao Contexto, SBE. MANUTENÇÃO DINÂMICA DE MODELOS EM COMPUTAÇÃO SENSÍVEL AO CONTEXTO Rodrigo Hernandez SOARES 1 ; Ricardo Couto Antunes da ROCHA 2 PALAVRAS-CHAVE: CEP, Esper, Computação Sensível ao Contexto, SBE. 1 - INTRODUÇÃO

Leia mais

Reuso de Software Aula Maio 2012

Reuso de Software Aula Maio 2012 Reuso de Software Aula 19 Tópicos da Aula Engenharia de Software baseada em Componentes (CBSE) Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com Componentes Modelos de Componentes

Leia mais

5 Implementação 5.1 Plataforma 5.2 Arquitetura

5 Implementação 5.1 Plataforma 5.2 Arquitetura 5 Implementação Neste capítulo são apresentados os detalhes sobre a implementação da ferramenta. São discutidas as tecnologias envolvidas, assim como as limitações e problemas encontrados durante o desenvolvimento.

Leia mais

Engenharia de Software

Engenharia de Software Instituto Superior Politécnico de Ciências e Tecnologia Engenharia de Software Prof Pedro Vunge www.pedrovunge.com I Semestre de 2018 Capítulo 1 Introdução SUMÁRIO Engenharia de Software Definição; Objectivos

Leia mais

Forneça dados ao Smart Net Total Care por meio do coletor Netformx

Forneça dados ao Smart Net Total Care por meio do coletor Netformx Forneça dados ao Smart Net Total Care por meio do coletor Netformx Este documento descreve como descobrir, coletar e carregar seu inventário e dados do dispositivo no portal Cisco Smart Net Total Care

Leia mais

Visão Geral do RUP (Rational Unified Process)

Visão Geral do RUP (Rational Unified Process) Visão Geral do RUP (Rational Unified Process) Objetivos deste módulo Apresentar as características do RUP Discutir os conceitos que existem no RUP: fases, fluxos de atividades (worklows), iterações, responsáveis,

Leia mais

Inteligência Artificial Agentes Inteligentes

Inteligência Artificial Agentes Inteligentes Inteligência Artificial Jarley P. Nóbrega, Dr. Faculdade Nova Roma Bacharelado em Ciência da Computação jpn@jarley.com Semestre 2018.2 Jarley P. Nóbrega, Dr. (Nova Roma) Inteligência Artificial Semestre

Leia mais

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

Curso de Sistemas de Informação. Karla Donato Fook DESU / DComp. Modelagem de Dados UML Curso de Sistemas de Informação Karla Donato Fook karladf@ifma.edu.br DESU / DComp 2017 Modelagem de Dados UML 2 1 Eduardo Bezerra Editora Campus/Elsevier Porcentagem de projetos que terminam dentro do

Leia mais

1 Introdução. 1.1 Contextualização

1 Introdução. 1.1 Contextualização 1 Introdução Sistemas supervisores envolvendo software embarcados são encontrados com freqüência e são responsáveis pela supervisão de equipamentos que vão desde máquinas industriais e eletrodomésticos,

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Processos de Software Professor: Charles Leite O processo de software Um conjunto estruturado de atividades, procedimentos, artefatos e ferramentas necessários para o desenvolvimento

Leia mais

Estilo: BlackBoard. BlackBoard = repositório de dados compartilhados

Estilo: BlackBoard. BlackBoard = repositório de dados compartilhados Estilo: BlackBoard Útil para problemas no qual não há uma solução determinística Uma coleção de programas independentes que trabalham cooperativamente em uma estrutura de dados comum (blackboard) Vários

Leia mais

UTILIZAÇÃO DE REGRAS PARA ADAPTAÇÃO DE HIPERMÍDIA

UTILIZAÇÃO DE REGRAS PARA ADAPTAÇÃO DE HIPERMÍDIA UTILIZAÇÃO DE REGRAS PARA ADAPTAÇÃO DE HIPERMÍDIA Eliane Pozzebon eliane@inf.ufsc.br Jorge Muniz Barreto barreto@inf.ufsc.br Universidade Federal de Santa Catarina (UFSC) Departamento de Ciências Exatas

Leia mais

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

Q d( ) P. a( ) c( ) e( ) c( ) S. c( ) d( ) ELEMENTOS BÁSICOS DA LINGUAGEM JAVA Patricia Della Méa Plentz INE-CTC-UFSC E-Mail: plentz@inf.ufsc.br URL: http://moodle.ufsc.br INE5605-Turma 0238B Sumário 2.1 Classes e Objetos na POO 2.2 2 Revisão da

Leia mais

IA346 M Métodos de Pesquisa Para Engenharia de Computação. Atividade 07

IA346 M Métodos de Pesquisa Para Engenharia de Computação. Atividade 07 IA346 M Métodos de Pesquisa Para Engenharia de Computação Atividade 07 Nome: Janize Monteiro de Castilho RA: 150148 1. Tema de Pesquisa: Implementação de monitores para verificação de padrões de cenários

Leia mais

The Adaptive Pipeline Aspect Pattern

The Adaptive Pipeline Aspect Pattern MAC5715 - Tópicos Avançados em POO Professor: Fábio Kon The Adaptive Pipeline Aspect Pattern Raoni Kulesza e Eduardo Oliveira de Souza 20 de setembro de 2006 1. Objetivos O padrão Adaptive Pipeline Aspect

Leia mais

UML (Unified Modelling Language)

UML (Unified Modelling Language) UML (Unified Modelling Language) Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Referências: Booch, G. et al. The Unified Modeling Language User Guide

Leia mais

Histórico: Linha de Produção

Histórico: Linha de Produção Escola Regional de Informática ERI-MG Linha de Produtos de Software: Conceitos Histórico: Linha de Produção Produtos em geral eram feitos manualmente Com o crescimento do consumo, foi necessário automatizar

Leia mais

Escalonamento de Aplicações BoT em Ambiente de Nuvem

Escalonamento de Aplicações BoT em Ambiente de Nuvem Escalonamento de Aplicações BoT em Ambiente de Nuvem Maicon Ança dos Santos 1 Fernando Angelin 1 Gerson Geraldo H. Cavalheiro 1 1 Universidade Federal de Pelotas {madsantos,fangelin,gerson.cavalheiro}@inf.ufpel.edu.br

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Curso: Engenharia de Software Arquitetura de Software Prof.: Fabrízzio A A M N Soares Aula 1 - Apresentação Ementa Definição de arquitetura de software. Importância e impacto

Leia mais

INTRODUÇÃO À ENGENHARIA DE SOFTWARE. Prof.: Tiago Alves

INTRODUÇÃO À ENGENHARIA DE SOFTWARE. Prof.: Tiago Alves INTRODUÇÃO À ENGENHARIA DE SOFTWARE Prof.: Tiago Alves (tiagofga@gmail.com) UML UNIFIED MODELING LANGUAGE Livro: Utilizando UML e Padrões, 3.ed. Autor(es): Craig Larman Modelagem de Sistemas Orientados

Leia mais

Tarefas de Gerenciamento de Configuração

Tarefas de Gerenciamento de Configuração Tarefas de Gerenciamento de Configuração 1- Tarefas Preliminares 2- Identificação 3- Controle de Mudanças 4- Controle de Versão 5- Auditoria de Configuração 6- Relato de Situação 7- Controle de Interface

Leia mais

Componentes de Software Baseados em Engenharia de

Componentes de Software Baseados em Engenharia de 19 a 21 de mar o de 2010 117 Componentes de Software Baseados em Engenharia de Domínio Leonardo Ciocari, Rafael Cancian 1 Centro de Ciências Tecnológicas da Terra e do Mar (CTTMar) Universidade do Vale

Leia mais

UMA PROPOSTA DE ESPECIFICAÇÃO DA FERRAMENTA S.A.Do.M (Software Artifacts Documentation and Management)

UMA PROPOSTA DE ESPECIFICAÇÃO DA FERRAMENTA S.A.Do.M (Software Artifacts Documentation and Management) ISBN 978-85-61091-05-7 Encontro Internacional de Produção Científica Cesumar 27 a 30 de outubro de 2009 UMA PROPOSTA DE ESPECIFICAÇÃO DA FERRAMENTA S.A.Do.M (Software Artifacts Documentation and Management)

Leia mais

Manual de instalação, configuração e utilização do Enviador XML

Manual de instalação, configuração e utilização do Enviador XML Manual de instalação, configuração e utilização do Enviador XML 1 Manual de instalação, configuração e utilização do Enviador XML 1. Conceitos e termos importantes XML Empresarial: é um sistema web (roda

Leia mais

Aplicações Móveis Cientes de Contexto Proposta de Trabalho de Graduação

Aplicações Móveis Cientes de Contexto Proposta de Trabalho de Graduação Universidade Federal de Pernambuco Graduação em Ciência da Computação Centro de Informática Aplicações Móveis Cientes de Contexto Proposta de Trabalho de Graduação Aluno: André Galamba Rodrigues dos Anjos

Leia mais

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

Um Método para Melhoria de Dados Estruturados de Imóveis Universidade Federal de Pernambuco Centro de Informática Graduação em Ciência da Computação Um Método para Melhoria de Dados Estruturados de Imóveis Lucas Nunes de Souza Proposta de Trabalho de Graduação

Leia mais

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

3 Arquitetura para a Coordenação e a Composição de Artefatos de Software Uma Arquitetura para a Coordenação e a de Artefatos de 23 3 Arquitetura para a Coordenação e a de Artefatos de Resumo Este capítulo apresenta a arquitetura ACCA, que é a parte central deste trabalho. A

Leia mais

Visões Arquiteturais. Visões Arquiteturais. Visões Arquiteturais. Visão Conceitual

Visões Arquiteturais. Visões Arquiteturais. Visões Arquiteturais. Visão Conceitual Visões Arquiteturais Separar diferentes aspectos em visões separadas com o objetivo de gerenciar complexidade. Cada visão descreve diferentes conceitos da Engenharia. Visões permitem reduzir a quantidade

Leia mais

Agenda da Aula. Arquitetura de Software e Padrões Arquiteturais. Elementos de um Padrão. Arquitetura de Software. Arquitetura de Software

Agenda da Aula. Arquitetura de Software e Padrões Arquiteturais. Elementos de um Padrão. Arquitetura de Software. Arquitetura de Software Reuso de Software Aula 04 Agenda da Aula Arquitetura de Software e Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com 14 Março 2012 Arquitetura de Software Padrões arquiteturais

Leia mais

Plataforma NextSAÚDE - Uma solução de interoperabilidade para a gestão pública de saúde baseada no padrão OpenEHR

Plataforma NextSAÚDE - Uma solução de interoperabilidade para a gestão pública de saúde baseada no padrão OpenEHR Plataforma NextSAÚDE - Uma solução de interoperabilidade para a gestão pública de saúde baseada no padrão OpenEHR Aluno: Henrique Nogueira da Gama Mota Orientador: Prof. Dr. Antonio Mauro Barbosa de Oliveira

Leia mais

2 Conceitos. 2.1 Sistema Multiagentes Abertos e Abordagens de Leis

2 Conceitos. 2.1 Sistema Multiagentes Abertos e Abordagens de Leis 2 Conceitos Neste capítulo são apresentados alguns conceitos necessários para o entendimento desta dissertação. Visto que esta proposta está inserida no contexto de sistemas multiagentes abertos, serão

Leia mais

5 Usando as Representações de Design Rationale

5 Usando as Representações de Design Rationale 5 Usando as Representações de Design Rationale Como mencionamos anteriormente, representar design rationale em uma linguagem formal usando o modelo formal dos artefatos nos permite atribuir semântica ao

Leia mais