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 em Engenharia de Domínio Notação Odyssey-FEX Refinamento do Processo CBD - Arch DE Mapeamento Características - Tipos de Negócio Agrupamento de Tipos de Negócio em Componentes de Negócio Considerações Finais 08/11/2005 WDBC'2005 2 1
Contexto Métodos de Reutilização de Software Engenharia de Domínio (ED) Desenvolvimento para Reutilização modelagem de variabilidade Engenharia de Aplicação (EA) Desenvolvimento com Reutilização recorte influenciado pela variabilidade Desenvolvimento Baseado em Componentes (DBC) Criação de artefatos de software auto-contidos e com interfaces bem definidas que podem ser reutilizados, i.e. componentes. 08/11/2005 WDBC'2005 3 Motivação Combinação ED e DBC: aumento no potencial de reutilização Métodos de DBC não são satisfatórios no contexto de ED, no que diz respeito à variabilidade Variabilidade dos artefatos mais abstratos do domínio não era considerada, nem propagada, para o modelo de componentes. Necessidade de suporte à propagação da variabilidade dos requisitos do domínio para artefatos de diferentes fases do processo. 08/11/2005 WDBC'2005 4 2
Variabilidade em Engenharia de Domínio Conceitos de Variabilidade Classificação quanto à Opcionalidade Elementos Mandatórios: devem estar presentes em todas as aplicações Elementos Opcionais: podem aparecer em apenas algumas aplicações Classificação quanto à Variabilidade Pontos de Variação e Variantes: pontos onde as aplicações do domínio podem ser configuradas Elementos Invariantes: elementos fixos, não permitem configuração no domínio Regras de Composição: elementos dependentes entre si ou mutuamente exclusivos na instanciação de uma aplicação 08/11/2005 WDBC'2005 5 Variabilidade em Engenharia de Domínio Modelagem de variabilidade Ponto de partida: modelo de características (features) Necessidade de um modelo rico semanticamente representação do domínio e sua variabilidade Notações para modelos de características propostas na literatura não representam explicitamente todos os conceitos [Kang 1990, 2002], [Griss, 1998], [Riebisch, 2002] Proposta: notação Odyssey-FEX 08/11/2005 WDBC'2005 6 3
Variabilidade em ED Notação Odyssey-FEX Domínio: Características intimamente ligadas à essência do domínio, representando suas funcionalidades (características funcionais) e/ou conceitos (características conceituais). Ambiente Operacional - Representam atributos de um ambiente que uma aplicação do domínio pode usar e operar. Tecnologia de Domínio - Representam tecnologias utilizadas para modelar ou implementar questões específicas de um domínio. Técnicas de Implementação Representam tecnologias utilizadas para implementar outras características, podendo ser compartilhadas por diversos domínios Características Tecnológicas 08/11/2005 WDBC'2005 7 Variabilidade em ED Notação Odyssey-FEX Classificação ortogonal das características 08/11/2005 WDBC'2005 8 4
Variabilidade em ED Notação Odyssey-FEX Relacionamentos UML associação, agregação e composição Relacionamento Alternativo Ponto de Variação e Variantes Regras de Composição (Composition Rules) Uso de operadores booleanos (Característica B AND AND CaracterísticaC) C) requer Característica D 08/11/2005 WDBC'2005 9 Notação Odyssey-FEX- Modelo de Características 08/11/2005 WDBC'2005 10 5
Refinamento do Processo CBD - Arch - DE Component-Based Development Architecture Domain Engineering atividades de ED com maior destaque ao projeto arquitetural baseado em componentes CBD - Arch DE extensão para dar suporte à variabilidade em artefatos de projeto 08/11/2005 WDBC'2005 11 Refinamento do Processo CBD - Arch - DE Heurísticas de Mapeamento Duas etapas: Componentes de Negócio Características Tipos de Negócio 08/11/2005 WDBC'2005 12 6
Mapeamento Características- Tipos de Negócio: Heurísticas H1. Para cada característica conceitual deve existir um tipo de negócio ou atributo. H2. Para cada ponto de variação e suas variantes podem existir tipos de negócio com estereótipos <<variation point>> e <<variant>>, respectivamente, relacionados através de herança. 08/11/2005 WDBC'2005 13 Mapeamento Características- Tipos de Negócio: Heurísticas H4. Para cada regra de composição do tipo "requer pode existir um relacionamento de dependência entre os tipos de negócio envolvidos, ou uma associação, com multiplicidade mínima igual a 1 para o tipo de negócio que requer um outro tipo. 08/11/2005 WDBC'2005 14 7
Mapeamento Características- Tipos de Negócio: Heurísticas H5. Para cada regra de composição do tipo exclui deve existir um estereótipo <<xor>> nos tipos de negócio correspondentes. H6. A propriedade opcional ou mandatória de uma característica deve ser transposta para o tipo de negócio ou atributo que represente a mesma. 08/11/2005 WDBC'2005 15 Mapeamento Características- Tipos de Negócio: Exemplo 08/11/2005 WDBC'2005 16 8
Mapeamento Tipos de Negócio Componentes de Negócio Componentes de Negócio: CBD-Arch-DE derivados a partir dos tipos de negócio Componentes de negócio agrupam tipos de negócio que se relacionam: Herança agrupamento obrigatório Demais relacionamentos agrupamento dependente dos respectivos graus de relevância Variabilidade passa a ser considerada no agrupamento que origina um componente de negócio no CBD-Arch-DE. 08/11/2005 WDBC'2005 17 Agrupamento de Tipos de Negócio em Componentes de Negócio: Heurísticas H1. Para tipos relacionados por meio de herança, deve ser gerado um componente com a característica de opcionalidade do tipo que representa o pai desta relação. Se os tipos de negócio são filhos nesta relação e representam variantes, cada um deve ter uma interface que é provida pelo componente. 08/11/2005 WDBC'2005 18 9
Agrupamento de Tipos de Negócio em Componentes de Negócio: Heurísticas H3. Para tipos relacionados por agregação, é indicada a geração de um componente que recebe a característica de opcionalidade do tipo que representa o todo desta relação. Se não forem agrupados, deve haver uma relação de dependência entre os componentes. 08/11/2005 WDBC'2005 19 Agrupamento de Tipos de Negócio em Componentes de Negócio: Heurísticas H4. Para tipos relacionados por associação ou dependência, é indicada a geração de um componente quando todos os tipos envolvidos são mandatórios ou opcionais. Se não forem agrupados, deve-se especificar a dependência entre os componentes gerados. 08/11/2005 WDBC'2005 20 10
Agrupamento de Tipos de Negócio em Componentes de Negócio: Heurísticas H5. Quando forem agrupados tipos de negócio obrigatórios e opcionais, o componente será sempre mandatório. H6. Não devem ser agrupado tipos de negócio que possue estereótipos XOR. 08/11/2005 WDBC'2005 21 Agrupamento de Tipos de Negócio em Componentes de Negócio: Exemplo 08/11/2005 WDBC'2005 22 11
Considerações Finais Representação de variabilidade do domínio em diferentes níveis de abstração Principais contribuições: arquitetura coerente em relação à variabilidade, dependência e exclusividade das características do domínio instanciação consistente da arquitetura de domínio na EA 08/11/2005 WDBC'2005 23 Considerações Finais Trabalhos Futuros: Desenvolvimento de um mecanismo de verificação de consistência entre os componentes, considerando a sua variabilidade; Formalização das heurísticas propostas; Validação das heurísticas através de estudos de caso reais 08/11/2005 WDBC'2005 24 12
Representação de Variabilidades em Componentes de Negócio no Contexto da Engenharia de Domínio {regiane, anablois, aline, werner}@cos.ufrj.br 13