O documento discute a criação de regras de negócio desacopladas dos modelos MDA (Model-Driven Architecture) através da formalização das regras junto ao modelo conceitual e da extração das regras antes da geração do modelo PSM (Platform Specific Model), permitindo o reuso das regras. Um estudo de caso sobre supervisão e controle de fornos industriais é usado para ilustrar a abordagem.
Utilizando RUP e Modelagem de processo para especificar aplicações Web 2.0
MDA Regras Negócio Desacopladas Modelos
1. Criação de Regras de Negócio
desacopladas dos Modelos
MDA (Model-Driven Architecture)
Universidade Federal da Bahia
Especialização Avançada em Sistemas
Distribuídos
Jaguaraci Silva
2. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
Introdução & Motivação
Contribuições
Recursos Utilizados
Construção do Estudo de Caso
Conclusões
Trabalhos Futuros
3. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
Várias tecnologias recentes buscam
tratar os aspectos de variabilidade em
um domínio conceitual de aplicação;
Alguns trabalhos vistos na literatura
utilizam as aproximações entre MDA
(Model-Driven Architecture) e
ontologias [Djuric et al, 2004] ou MDA e
AOP (Aspect-Oriented Programming)
[Dhondt et al, 2008].
4. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
Principal Objetivo da AOP e MDA:
Separação de interesses (e.g. requisitos
não-funcionais) [AOSD, 2005];
Regras de Negócios [Dhondt et al,
2006];
Geração de Modelos PSM em uma LOA
(Linguagem Orientada a Aspectos)
[AOSD, 2005];
5. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
Principal Objetivo da MDA e Ontologias:
Reuso de Modelos Conceituais de
Domínio [OMG, 2003];
Geração de Modelos com base no Perfil
OWL [Djuric et al, 2004][OMG, 2004];
Formalização de artefatos em UML por
ser uma linguagem semi-formal
[Freitas, 2003] [Silva et al, 2007];
6. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
Problemas relacionados as abordagens:
O Modelo PSM normalmente é gerado
sem as regras de negócio (e.g.
estruturas condicionais);
As regras de negócios são semânticas,
peculiares e precisam aderir de forma
coesa a um conceito (e.g. Um forno só
pode ser abastecido por um operador);
7. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
A geração de um Modelo PSM para as regras
de negócios pode ser feito automaticamente,
porém não é feita qualquer verificação formal
das regras;
Problema 1: Como garantir a satisfação das
regras de negócio em relação aos Modelos
MDA?;
Hipótese 1: Formalizar as regras Junto ao
Modelo Conceitual;
8. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
Problema 2: Como reutilizar as regras de
negócio se elas estarão acopladas aos
Modelos PSMs?;
Hipótese 2: Extrair as regras do Modelo
Conceitual antes da geração do PSM;
Problema 3: As regras não podem sofrer
alterações manuais, pois foram formalmente
verificadas;
Hipótese 3: Criação de uma ferramenta para
extração e geração de regras de negócios
com base nas tecnologias utilizadas;
9. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
Introdução & Motivação
Contribuições
Recursos Utilizados
Construção do Estudo de Caso
Conclusões
Trabalhos Futuros
10. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
Ao realizar uma aproximação entre as
tecnologias emergentes: MDA, OWL e
AOP criou-se uma ferramenta única
para este propósito;
Foi criado um Modelo de Processo para
nortear as atividades;
Metodologia para Construção e
Verificação de Ontologias;
11. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
Introdução & Motivação
Contribuições
Recursos Utilizados
Construção do Estudo de Caso
Conclusões
Trabalhos Futuros
12. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
Foi criado e utilizado um processo de
desenvolvimento baseado em casos de uso
[Booch et al, 1999];
O processo pode ser incorporado a qualquer
modelo de processo existente (e.g. Rational
Unified Process (RUP), Extreme Program
(XP) e metodologias ágeis).
Define os passos desde a captura até a
verificação das regras em run-time;
13. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
14. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
15. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
16. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
Introdução & Motivação
Contribuições
Recursos Utilizados
Construção do Estudo de Caso
Conclusões
Trabalhos Futuros
17. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
Foi desenvolvido um estudo de caso para
uma aplicação de supervisão e controle de
abastecimento de fornos industriais;
São nesses tipos de aplicações, que se pode
obter grandes vantagens na utilização da
verificação formal de um domínio conceitual;
A verificação do domínio foi realizada com um
editor de ontologias Protégé e um reasoner
Racer [Haarslev, 2004] [Silva et al, 2006];
18. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
19. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
20. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
Formalização do Domínio Conceitual:
Definição da relação Casos de Uso x
Elementos da Ontologia;
Conceitos, Propriedades, Axiomas e
Relacionamentos entre os Conceitos;
Criação da Ontologia de Domínio;
Verificação das Instâncias;
Verificação das Regras de Negócios;
21. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
22. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
Regras PAL
1- Para cada forno, é produzido um único tipo de produto. Possui_um_Forno min 1
2- Quando do carregamento do forno, o mesmo não deve Produz_um_Produto exactly 1
aceitar um insumo que não seja parte da receita do seu Possui_uma_Receita exactly 1
produto. Possui_uma_Receita only Receita
3- Os insumos devem ser carregados com suas respectivas Possui_uma_Unidade exactly 1
unidades, ex: Kg, m3.
4 - O administrador não pode abastecer o forno, apenas o E_Carregado_por_Operador only
operador. Operador
Not (Carrega_Forno some Forno)
5 - Cada forno está residente em uma unidade de Possui_um_Forno max 1
fabricação.
6 - No momento da carga do forno, o usuário deve ser A regra 4 já contempla o requisito.
identificado.
7 – Uma receita possui ao menos 1 insumo. Possui_Insumos some Insumo
8- Um silo só pode armazenar um tipo de insumo. E_Armazenado_no_Silo max 1
23. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
24. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
Criação dos Modelos PSMs:
Verificação da conformidade do Modelo PIM
gerado com MOF;
Classes, Atributos e Relacionamentos entre as
Classes;
Criação do Modelo para plataforma Java;
Criação do Modelo de Regras de Negócio:
Utilização da Ferramenta OWLtoAspectJ;
Extração e geração automática das Regras de
Negócios com base no Domínio Conceitual;
25. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
26. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
28. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
29. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
package businessRules;
import abastecimento.Operador;
public aspect FornoE_carregado_por_Operador {
public pointcut Operador() :
call(* *.*Forno(..)) &&
(!(call(* *.getForno(*)) || call(* *.setForno(*))));
before():Operador() {
Object obj = thisJoinPoint.getTarget();
if (!(obj instanceof Operador)){
System.out.print(quot;n Exception Rule:
FornoE_carregado_por_Operadorquot;);
}
}
}
30. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
31. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
Introdução & Motivação
Contribuições
Recursos Utilizados
Construção do Estudo de Caso
Conclusões
Trabalhos Futuros
32. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
Foi possível formalizar as regras Junto ao
modelo conceitual rapidamente utilizando um
editor de Ontologias e um Reasoner;
A extração das regras do Modelo Conceitual
antes da geração do PSM, possibilita o Reuso
das Regras em outros PSMs para plataforma
Java;
A criação da ferramenta OWLtoAspectJ
possibilitou a extração e geração de regras de
negócios automaticamente garantindo a
semântica e satisfação da regras verificadas
no domínio;
33. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
Os métodos são definidos no Modelo PIM e
não possuem implementação de regras;
Através dos pontos de combinação [Chaves,
2005], as regras encontram dinamicamente
quais os métodos devem ser verificados,
assim, podem ser capturados vários métodos
em uma única regra;
Diminuição no tempo total de codificação;
34. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
Introdução & Motivação
Contribuições
Recursos Utilizados
Construção do Estudo de Caso
Conclusões
Trabalhos Futuros
35. Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
Avaliar a concorrência entre aspectos,
sob o ponto de vista de sobreposição
das regras de negócio;
Melhorar a ferramenta OWLtoAspectJ
para padronizar as mensagens de
violação de regras e gerar as regras
para a plataforma WEB;