1 / 78

Carlos Alberto de Freitas Pereira Júnior Orientadora : Rosana Teresinha Vaccare Braga

Geração de aplicações para linhas de produtos orientadas a aspectos com apoio da ferramenta Captor-AO. Carlos Alberto de Freitas Pereira Júnior Orientadora : Rosana Teresinha Vaccare Braga Universidade de São Paulo Instituto de Ciências Matemáticas e Computação - ICMC. Roteiro.

maisie
Download Presentation

Carlos Alberto de Freitas Pereira Júnior Orientadora : Rosana Teresinha Vaccare Braga

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Geração de aplicações para linhas de produtos orientadas a aspectos com apoio da ferramenta Captor-AO Carlos Alberto de Freitas Pereira Júnior Orientadora: RosanaTeresinhaVaccare Braga Universidade de São Paulo Instituto de CiênciasMatemáticas e Computação - ICMC

  2. Roteiro • Introdução • Revisão Bibliográfica • Gerador Captor • Desenvolvimento de LPS apoiado por geradores e aspectos • Gerador Estendido Captor-AO • Conclusão

  3. Introdução

  4. Introdução • O crescimento da demanda e da complexidade dos sistemas de software nas últimas décadas contribuiu para o surgimento de vários problemas inerentes ao desenvolvimento de software (Pressman, 2002). • A utilização de técnicas de reúso de software permite o desenvolvimento de aplicações mais confiáveis, flexíveis, de fácil manutenção e com custo e prazos de entrega viáveis.

  5. Introdução • O grupo de engenharia de software do ICMC tem desenvolvido diversos trabalhos relacionados à área de reúso de software. • Dentre essas técnicas pode-se citar orientação a objetos, componentes, frameworks, linguagens de padrões, geradores de aplicação, linhas de produtos e aspectos.

  6. Introdução • Com o advento da separação avançada de interesses (Kiczales et al., 1997) surgiu a idéia de modularizar características (features) transversais. • Features transversais são as features comuns que ficam espalhadas pelas divisões ou módulos de diferentes domínios. • Notou-se que determinadas features transversais de uma linha de produtos têm potencial de reúso em diferentes domínios.

  7. Introdução • Nesse trabalho é proposto um processo para o desenvolvimento de LPS e geração automatizada de produtos levando em consideração os interesses transversais existentes em cada domínio de aplicação. • Esse processo tem a finalidade de aumentar o reúso de características por meio da POA, permitindo que as LPS's sejam projetadas de forma mais coesa, facilitando assim, sua manutenção e evolução

  8. Introdução • Também é apresentado um gerador de aplicações que possibilita a geração de produtos sobre combinações entre features de diferentes domínios.

  9. Revisão Bibliográfica

  10. Revisão Bibliográfica • A seguir são detalhados os conceitos que formam parte do embasamento necessário para a proposta apresentada: • Linhas de Produto de Software; • Geradores de Aplicações; • Programação Orientada a Aspectos. • LPS versus POA

  11. Linhas de Produto de Software • Uma linha de produtos é um conjunto de produtos que compartilham conjuntos de requisitos em comum, mas ao mesmo tempo exibem variabilidade significativa nos requisitos (Griss, 2000). • Vários artefatos são disponibilizados para implementação das possíveis funcionalidades de um produto da linha. Um determinado produto é composto utilizando-se artefatos com diversos tipos de funcionalidades.

  12. Linhas de Produto de Software • Segundo Griss (2001) as principais vantagens relacionadas ao uso de linhas de produto são: • Redução no custo de desenvolvimento de um produto; • Redução da mão de obra de desenvolvimento de software (dos projetos de uma família); • Redução no tempo de entrega; • Aumento na qualidade dos sistemas desenvolvidos.

  13. Linhas de Produto de Software • Uma LMA é uma linguagem de alto nível de abstração utilizada para representar aplicações (Weiss e Lai, 1999). • O ambiente da engenharia de aplicação deve permitir a análise de especificações LMA e gerar código a partir dessas especificações.

  14. Geradores de Aplicações • Geradores de Aplicações são sistemas de software que transformam especificações em uma aplicação (Cleaveland, 1988). • As especificações descrevem o problema ou a tarefa que deve ser realizada pelo gerador. • Geradores por composição e por compilação.

  15. Geradores de Aplicações • Segundo Masiero e Meira (1993), pode-se classificar diferentes arquiteturas de geradores de aplicações de acordo com a capacidade de adaptação de um gerador para múltiplos domínios e/ou múltiplas aplicações. • Neste trabalho são abordados geradores capazes de gerar múltiplas aplicações em múltiplos domínios.

  16. Programação Orientada a Aspectos • Interesses (concerns) podem ser pensados como requisitos funcionais ou não funcionais que são úteis ou precisam estar presentes nos sistemas (Dijkstra, 1976). • Interesses transversais (crosscutting concerns) são interesses cujo código espalha-se pelas divisões ou módulos do programa.

  17. Programação Orientada a Aspectos • Na Programação Orientada a Aspectos (POA), interesses transversais podem ser modularizados por meio de uma nova unidade de encapsulamento, denominada aspecto (Kiczales et al., 1997).

  18. Programação Orientada a Aspectos • Classes: encapsulam requisitos modulares. • Aspectos:encapsulam requisitos transversais.

  19. Linhas de Produtos e Aspectos • Durante a condução desta pesquisa foi realizada uma uma revisão da literatura sobre trabalhos que relacionam linhas de produtos e aspectos. • Essas pesquisas foram agrupadas em quatro categorias principais: • Abordagens ad-hoc; • Abordagens sistemáticas; • Abordagens baseadas no desenvolvimento incremental; • Ferramentas.

  20. Gerador de Aplicações Configurável Captor

  21. Gerador Captor • O Captor é um gerador de aplicações configurável (MDMA) desenvolvido no trabalho de mestrado de Shimabukuro (2006). • Utiliza a abordagem de geração por composição.

  22. Gerador Captor • O Captor pode ser configurado para diversos domínios diferentes, por meio de um processo que inclui: • Criar uma linguagem de modelagem de aplicações (LMA) para o domínio; • Criar os artefatos reutilizáveis desse domínio; • Criar gabaritos em XML para cada um dos artefatos reutilizáveis; • Criar um arquivo de mapeamento da LMA para os gabaritos.

  23. Gerador Captor

  24. Gerador Captor • A interação do Captor com o engenheiro de aplicações é realizada por meio de um conjunto de formulários organizados hierarquicamente em forma de árvore. • O engenheiro de aplicações utiliza os campos desses formulários para preencher as variabilidades do produto que está sendo gerado.

  25. Gerador Captor

  26. Arquitetura Captor

  27. Desenvolvimento de LPS apoiado por geradores e aspectos

  28. Desenvolvimento de LPS apoiado por geradores e aspectos • Este trabalho aborda a separação de interesses de LPS utilizando a Programação Orientada a Aspectos (POA). • O processo apresentado tem a finalidade de aumentar o reúso em linhas de produtos por meio da POA.

  29. Desenvolvimento de LPS apoiado por geradores e aspectos Propõe-se que as features transversais implementadas em um determinado domínio sejam reusadas em diversas linhas de produtos. 29

  30. Desenvolvimento de LPS apoiado por geradores e aspectos São utilizados como base os processos de engenharia de domínio e de engenharia de aplicações apresentados no trabalho de Shimabukuro (2006). Esses processos foram estendidos para apoiar os conceitos da nova abordagem proposta. 30

  31. Conceitos Domínios-base, também denominados domínios específicos, representam a parte central do produto gerado e agrupam as features (obrigatórias ou não) que definem o negócio propriamente dito. Exemplo: Sistemas Hospitalares ou de Contabilidade. 31

  32. Conceitos • Domínios-transversais agrupam features que encapsulam comportamentos genéricos (funcionais ou não-funcionais) de um interesse transversal referentes a vários domínios-base. • As features de um domínio transversal devem ser mais genéricas e possuir um alto grau de reúso em diferentes domínios-base. • Propõe-se que a combinação entre as features transversais e os domínios-base seja feita por meio de aspectos. • Exemplo: Persistência e Segurança.

  33. Domínios-Base e Transversais Domínio Transversal T Produto T1 Produto T2 Domínio-base A Domínio-base B Produto A1 Produto A2 Produto B1

  34. Conceitos • Ponto de junção abstrato (PJA) • São os elementos responsáveis pelo acoplamento entre as features transversais de um domínio transversal com os produtos de um domínio-base. • Ponto de junção pré-definido (PJP) • É um valor fixo para um PJA que pode ser definido pelo engenheiro de domínio de acordo com o domínio-base que é afetado pelo PJA.

  35. Conceitos Instanciação do produto T1 Instanciação do produto A1 Combinação de T1 e A1 Produto T1 Produto T1 Produto T1 Ponto de Junção Concreto Ponto de JunçãoGenérico Ponto de JunçãoGenérico Produto A1 Produto A1 PJA de T1 35

  36. Conceitos • Variabilidades funcionais • São variabilidades inerentes às regras de negócios do domínio e ditam as características que variam de um produto para outro da LPS. • Variabilidades de junção • São as variabilidades existentes nos domínios transversais que permitirão a combinação desse domínio com um ou mais domínios-base.

  37. Conjuntos de Extensão • De acordo com o princípio da inconsciência (Filman e Friedman, 2000), a dependência entre um aspecto e o código-base deveria garantir que a aplicação desconheça a existência do código transversal. • No contexto deste trabalho, considera-se que o código-base pode ter consciência dos aspectos que atuam sobre ele

  38. Conjuntos de Extensão • Existem situações em que se torna necessário realizar pequenos ajustes em um domínio-base para suportar a combinação com determinados domínios transversais. • O conceito de conjunto de extensão (CE) representa um grupo de adaptações na implementação de um domínio-base de acordo com os domínios transversais aplicados no momento da instanciação.

  39. Desenvolvimento de LPS para Domínios-Base e Domínios Transversais • A seguir são apresentados processos de engenharia de domínio e engenharia de aplicações adaptados para a modelagem de LPS para domínios-base e domínios transversais. • Esses processos têm o foco voltado para a instanciação automatizada de produtos utilizando geradores de aplicações e especificações LMA.

  40. Engenharia de Domínio • Foi utilizado como referência o processo proposto no trabalho de Shimabukuro (2006).

  41. Engenharia de Domínio-Base • Deve-se indicar quais domínios transversais podem ser combinados (domínios compatíveis). • Pode ser necessário definir conjuntos de extensão e pontos de junção pré-definidos.

  42. Engenharia de Domínio-Base

  43. Engenharia de Domínio Transversal • Definição das variabilidades de junção na LMA do domínio. • Deve-se indicar os domínios-base compatíveis. • Pode ser necessário inserir CE’s e PJP’s no domínios-base compatíveis.

  44. Engenharia de Domínio Transversal

  45. Engenharia de Aplicação Processo de engenharia de aplicação (Shimabukuro, 2006). 45

  46. Engenharia de Aplicação • Novos produtos são definidos por meio da instanciação das LMA’s de seus respectivos domínios (Weiss e Lai, 1999). • Um produto específico pode ser composto a partir da combinação de mais de um domínio. Sendo um deles um domínio-base (domínio de aplicação) e os demais, domínios transversais.

  47. Engenharia de Aplicação

  48. Gerador de Aplicações Estendido Captor-AO

  49. Gerador Captor-AO • O gerador de aplicações Captor-AO é uma extensão do gerador Captor que permite a composição de aplicações baseadas em vários domínios. • Torna possível a geração de aplicações formadas por features de um domínio-base e features de diferentes domínios transversais, desde que a união dessas features não produza conflitos no produto resultante.

  50. Gerador Captor-AO

More Related