SlideShare ist ein Scribd-Unternehmen logo
1 von 35
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
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
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].
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];
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];
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);
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;
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;
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
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;
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
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;
Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
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
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];
Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
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;
Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
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
Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
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;
Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)

  <owl:Restriction>
   <owl:onProperty>
   <owl:onProperty>
        onProperty

    <owl:ObjectProperty rdf:ID=quot;E_Armazenado_no_Siloquot;/>
     owl:               rdf:ID=quot;E_Armazenado_no_Siloquot;/>
   </owl:onProperty>
   </owl:onProperty>
         onProperty
   <owl:maxCardinality rdf:datatype=quot;http://www.w3.org/2001/XMLSchema intquot;>
   <owl:maxCardinality rdf:datatype=quot;http://www.w3.org/2001/XMLSchema#intquot;> 1
                                   =quot;http://www.w3.org/2001/XMLSchema#
   </owl:maxCardinality>
   </owl:maxCardinality>
         maxCardinality
  </owl:Restriction>
  <owl:ObjectProperty rdf:about=quot;#E_Armazenado_no_Siloquot;>
   owl:               rdf:about=quot;#E_Armazenado_no_Siloquot;>

  <rdfs:domain rdf:resource=quot;#Insumoquot;/>
   rdfs:domain rdf:resource=quot;#Insumoquot;/>
                  :resource=quot;#Insumo

  <rdfs:range rdf:resource=quot;#Siloquot;/>
   rdfs:range rdf:resource=quot;#Siloquot;/>
  <owl:inverseOf rdf:resource=quot;#Possui_Insumoquot;/>
   owl:          rdf:resource=quot;#Possui_Insumoquot;/>

  </owl:ObjectProperty>
  </owl:ObjectProperty>
    owl
Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
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;);
          }
     }
 }
Criação de Regras de Negócio desacopladas dos
Modelos MDA (Model-Driven Architecture)
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
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;
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;
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
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;

Weitere ähnliche Inhalte

Ähnlich wie MDA Regras Negócio Desacopladas Modelos

Módulo+10+-+Arquitetura+de+nuvem_nn+(1)_abcdpdf_pdf_para_ppt.pptx
Módulo+10+-+Arquitetura+de+nuvem_nn+(1)_abcdpdf_pdf_para_ppt.pptxMódulo+10+-+Arquitetura+de+nuvem_nn+(1)_abcdpdf_pdf_para_ppt.pptx
Módulo+10+-+Arquitetura+de+nuvem_nn+(1)_abcdpdf_pdf_para_ppt.pptxgetuliodasilvasantos
 
Refactoring Databases
Refactoring DatabasesRefactoring Databases
Refactoring DatabasesIsmael
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsCloves Moreira Junior
 
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Daniel Makiyama
 
Microsoft ALM = Produtividade
Microsoft ALM = ProdutividadeMicrosoft ALM = Produtividade
Microsoft ALM = ProdutividadeAdriano Bertucci
 
Documentação CakePHP - Português Br
Documentação CakePHP -  Português BrDocumentação CakePHP -  Português Br
Documentação CakePHP - Português BrLuiz Ladeira
 
Identificando requisitos comuns e variantes em linhas de produtos de software
Identificando requisitos comuns e variantes em linhas de produtos de softwareIdentificando requisitos comuns e variantes em linhas de produtos de software
Identificando requisitos comuns e variantes em linhas de produtos de softwareAndré Agostinho
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareNorberto Santos
 
Treinamento Básico de Django
Treinamento Básico de DjangoTreinamento Básico de Django
Treinamento Básico de DjangoLeandro Zanuz
 
Utilização de Mock Objects em Testes Unitários
Utilização de Mock Objects em Testes UnitáriosUtilização de Mock Objects em Testes Unitários
Utilização de Mock Objects em Testes UnitáriosComunidade NetPonto
 

Ähnlich wie MDA Regras Negócio Desacopladas Modelos (20)

ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Travalho versao final
Travalho versao finalTravalho versao final
Travalho versao final
 
Módulo+10+-+Arquitetura+de+nuvem_nn+(1)_abcdpdf_pdf_para_ppt.pptx
Módulo+10+-+Arquitetura+de+nuvem_nn+(1)_abcdpdf_pdf_para_ppt.pptxMódulo+10+-+Arquitetura+de+nuvem_nn+(1)_abcdpdf_pdf_para_ppt.pptx
Módulo+10+-+Arquitetura+de+nuvem_nn+(1)_abcdpdf_pdf_para_ppt.pptx
 
Refactoring Databases
Refactoring DatabasesRefactoring Databases
Refactoring Databases
 
Palestra ASP.NET MVC
Palestra ASP.NET MVCPalestra ASP.NET MVC
Palestra ASP.NET MVC
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular js
 
EBAC Django
EBAC DjangoEBAC Django
EBAC Django
 
Oficina cake php
Oficina cake phpOficina cake php
Oficina cake php
 
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
 
Aula 2 - Modelos de processos
Aula 2 -  Modelos de processosAula 2 -  Modelos de processos
Aula 2 - Modelos de processos
 
Apresentando o CakePHP
Apresentando o CakePHPApresentando o CakePHP
Apresentando o CakePHP
 
Boas práticas, erros comuns, resolução de problemas e dicas de uso no Scholar...
Boas práticas, erros comuns, resolução de problemas e dicas de uso no Scholar...Boas práticas, erros comuns, resolução de problemas e dicas de uso no Scholar...
Boas práticas, erros comuns, resolução de problemas e dicas de uso no Scholar...
 
Aula04 3
Aula04 3Aula04 3
Aula04 3
 
Microsoft ALM = Produtividade
Microsoft ALM = ProdutividadeMicrosoft ALM = Produtividade
Microsoft ALM = Produtividade
 
Documentação CakePHP - Português Br
Documentação CakePHP -  Português BrDocumentação CakePHP -  Português Br
Documentação CakePHP - Português Br
 
Identificando requisitos comuns e variantes em linhas de produtos de software
Identificando requisitos comuns e variantes em linhas de produtos de softwareIdentificando requisitos comuns e variantes em linhas de produtos de software
Identificando requisitos comuns e variantes em linhas de produtos de software
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de Software
 
Treinamento Básico de Django
Treinamento Básico de DjangoTreinamento Básico de Django
Treinamento Básico de Django
 
Utilização de Mock Objects em Testes Unitários
Utilização de Mock Objects em Testes UnitáriosUtilização de Mock Objects em Testes Unitários
Utilização de Mock Objects em Testes Unitários
 
Curso AngularJS - Parte 1
Curso AngularJS - Parte 1Curso AngularJS - Parte 1
Curso AngularJS - Parte 1
 

Mehr von Jaguaraci Silva

Mobilidade Urbana por Meio de Vias Inteligentes
Mobilidade Urbana por Meio de Vias InteligentesMobilidade Urbana por Meio de Vias Inteligentes
Mobilidade Urbana por Meio de Vias InteligentesJaguaraci Silva
 
GranDIHC-BR: prospecção de grandes desafios de pesquisa em interação humano-c...
GranDIHC-BR: prospecção de grandes desafios de pesquisa em interação humano-c...GranDIHC-BR: prospecção de grandes desafios de pesquisa em interação humano-c...
GranDIHC-BR: prospecção de grandes desafios de pesquisa em interação humano-c...Jaguaraci Silva
 
Mapa mental tecnologias de separação de interesses
Mapa mental tecnologias de separação de interessesMapa mental tecnologias de separação de interesses
Mapa mental tecnologias de separação de interessesJaguaraci Silva
 
Mapa mental programação extrema
Mapa mental programação extremaMapa mental programação extrema
Mapa mental programação extremaJaguaraci Silva
 
Mapa mental desenvolvimento ágil
Mapa mental desenvolvimento ágilMapa mental desenvolvimento ágil
Mapa mental desenvolvimento ágilJaguaraci Silva
 
Mapa Mental sobre Engenharia de Software
Mapa Mental sobre Engenharia de SoftwareMapa Mental sobre Engenharia de Software
Mapa Mental sobre Engenharia de SoftwareJaguaraci Silva
 
Mapa mental envolvendo os conceitos sobre dependabilidade
Mapa mental envolvendo os conceitos sobre dependabilidadeMapa mental envolvendo os conceitos sobre dependabilidade
Mapa mental envolvendo os conceitos sobre dependabilidadeJaguaraci Silva
 
Sound Empirical Evidence in Software Testing
Sound Empirical Evidence in Software TestingSound Empirical Evidence in Software Testing
Sound Empirical Evidence in Software TestingJaguaraci Silva
 
Managing Technical Debt - A Practical Approach Using Continuous Integration a...
Managing Technical Debt - A Practical Approach Using Continuous Integration a...Managing Technical Debt - A Practical Approach Using Continuous Integration a...
Managing Technical Debt - A Practical Approach Using Continuous Integration a...Jaguaraci Silva
 
What agile teams think about agile principles
What agile teams think about agile principlesWhat agile teams think about agile principles
What agile teams think about agile principlesJaguaraci Silva
 
FRAMEWORK FACTO - Governança Tecnológica Corporativa
FRAMEWORK FACTO - Governança Tecnológica CorporativaFRAMEWORK FACTO - Governança Tecnológica Corporativa
FRAMEWORK FACTO - Governança Tecnológica CorporativaJaguaraci Silva
 
FACTO Framework - Introdução Amigável a Governança de TI
FACTO Framework - Introdução Amigável a Governança de TIFACTO Framework - Introdução Amigável a Governança de TI
FACTO Framework - Introdução Amigável a Governança de TIJaguaraci Silva
 
SOA Service-oriented Architecture Fundamentals IBM Certification
SOA Service-oriented Architecture Fundamentals IBM CertificationSOA Service-oriented Architecture Fundamentals IBM Certification
SOA Service-oriented Architecture Fundamentals IBM CertificationJaguaraci Silva
 
Fundamentos Em Business Process Management Modelagem de Processos de Negócio ...
Fundamentos Em Business Process Management Modelagem de Processos de Negócio ...Fundamentos Em Business Process Management Modelagem de Processos de Negócio ...
Fundamentos Em Business Process Management Modelagem de Processos de Negócio ...Jaguaraci Silva
 
Windows Server 2008 R2 Overview
Windows Server 2008 R2 OverviewWindows Server 2008 R2 Overview
Windows Server 2008 R2 OverviewJaguaraci Silva
 
Business Rules Separation and Reuse Using MDA, OWL and AspectJ
Business Rules Separation and Reuse Using MDA, OWL and AspectJBusiness Rules Separation and Reuse Using MDA, OWL and AspectJ
Business Rules Separation and Reuse Using MDA, OWL and AspectJJaguaraci Silva
 
Protocolos De Transporte Para Redes Sem Fio
Protocolos De Transporte Para Redes Sem FioProtocolos De Transporte Para Redes Sem Fio
Protocolos De Transporte Para Redes Sem FioJaguaraci Silva
 
Controle Remoto de Residências
Controle Remoto de ResidênciasControle Remoto de Residências
Controle Remoto de ResidênciasJaguaraci Silva
 
Utilizando RUP e Modelagem de processo para especificar aplicações Web 2.0
Utilizando RUP e Modelagem de processo para especificar aplicações Web 2.0Utilizando RUP e Modelagem de processo para especificar aplicações Web 2.0
Utilizando RUP e Modelagem de processo para especificar aplicações Web 2.0Jaguaraci Silva
 

Mehr von Jaguaraci Silva (20)

Oracle soa suite 11 g
Oracle soa suite 11 gOracle soa suite 11 g
Oracle soa suite 11 g
 
Mobilidade Urbana por Meio de Vias Inteligentes
Mobilidade Urbana por Meio de Vias InteligentesMobilidade Urbana por Meio de Vias Inteligentes
Mobilidade Urbana por Meio de Vias Inteligentes
 
GranDIHC-BR: prospecção de grandes desafios de pesquisa em interação humano-c...
GranDIHC-BR: prospecção de grandes desafios de pesquisa em interação humano-c...GranDIHC-BR: prospecção de grandes desafios de pesquisa em interação humano-c...
GranDIHC-BR: prospecção de grandes desafios de pesquisa em interação humano-c...
 
Mapa mental tecnologias de separação de interesses
Mapa mental tecnologias de separação de interessesMapa mental tecnologias de separação de interesses
Mapa mental tecnologias de separação de interesses
 
Mapa mental programação extrema
Mapa mental programação extremaMapa mental programação extrema
Mapa mental programação extrema
 
Mapa mental desenvolvimento ágil
Mapa mental desenvolvimento ágilMapa mental desenvolvimento ágil
Mapa mental desenvolvimento ágil
 
Mapa Mental sobre Engenharia de Software
Mapa Mental sobre Engenharia de SoftwareMapa Mental sobre Engenharia de Software
Mapa Mental sobre Engenharia de Software
 
Mapa mental envolvendo os conceitos sobre dependabilidade
Mapa mental envolvendo os conceitos sobre dependabilidadeMapa mental envolvendo os conceitos sobre dependabilidade
Mapa mental envolvendo os conceitos sobre dependabilidade
 
Sound Empirical Evidence in Software Testing
Sound Empirical Evidence in Software TestingSound Empirical Evidence in Software Testing
Sound Empirical Evidence in Software Testing
 
Managing Technical Debt - A Practical Approach Using Continuous Integration a...
Managing Technical Debt - A Practical Approach Using Continuous Integration a...Managing Technical Debt - A Practical Approach Using Continuous Integration a...
Managing Technical Debt - A Practical Approach Using Continuous Integration a...
 
What agile teams think about agile principles
What agile teams think about agile principlesWhat agile teams think about agile principles
What agile teams think about agile principles
 
FRAMEWORK FACTO - Governança Tecnológica Corporativa
FRAMEWORK FACTO - Governança Tecnológica CorporativaFRAMEWORK FACTO - Governança Tecnológica Corporativa
FRAMEWORK FACTO - Governança Tecnológica Corporativa
 
FACTO Framework - Introdução Amigável a Governança de TI
FACTO Framework - Introdução Amigável a Governança de TIFACTO Framework - Introdução Amigável a Governança de TI
FACTO Framework - Introdução Amigável a Governança de TI
 
SOA Service-oriented Architecture Fundamentals IBM Certification
SOA Service-oriented Architecture Fundamentals IBM CertificationSOA Service-oriented Architecture Fundamentals IBM Certification
SOA Service-oriented Architecture Fundamentals IBM Certification
 
Fundamentos Em Business Process Management Modelagem de Processos de Negócio ...
Fundamentos Em Business Process Management Modelagem de Processos de Negócio ...Fundamentos Em Business Process Management Modelagem de Processos de Negócio ...
Fundamentos Em Business Process Management Modelagem de Processos de Negócio ...
 
Windows Server 2008 R2 Overview
Windows Server 2008 R2 OverviewWindows Server 2008 R2 Overview
Windows Server 2008 R2 Overview
 
Business Rules Separation and Reuse Using MDA, OWL and AspectJ
Business Rules Separation and Reuse Using MDA, OWL and AspectJBusiness Rules Separation and Reuse Using MDA, OWL and AspectJ
Business Rules Separation and Reuse Using MDA, OWL and AspectJ
 
Protocolos De Transporte Para Redes Sem Fio
Protocolos De Transporte Para Redes Sem FioProtocolos De Transporte Para Redes Sem Fio
Protocolos De Transporte Para Redes Sem Fio
 
Controle Remoto de Residências
Controle Remoto de ResidênciasControle Remoto de Residências
Controle Remoto de Residências
 
Utilizando RUP e Modelagem de processo para especificar aplicações Web 2.0
Utilizando RUP e Modelagem de processo para especificar aplicações Web 2.0Utilizando RUP e Modelagem de processo para especificar aplicações Web 2.0
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)
  • 27. Criação de Regras de Negócio desacopladas dos Modelos MDA (Model-Driven Architecture) <owl:Restriction> <owl:onProperty> <owl:onProperty> onProperty <owl:ObjectProperty rdf:ID=quot;E_Armazenado_no_Siloquot;/> owl: rdf:ID=quot;E_Armazenado_no_Siloquot;/> </owl:onProperty> </owl:onProperty> onProperty <owl:maxCardinality rdf:datatype=quot;http://www.w3.org/2001/XMLSchema intquot;> <owl:maxCardinality rdf:datatype=quot;http://www.w3.org/2001/XMLSchema#intquot;> 1 =quot;http://www.w3.org/2001/XMLSchema# </owl:maxCardinality> </owl:maxCardinality> maxCardinality </owl:Restriction> <owl:ObjectProperty rdf:about=quot;#E_Armazenado_no_Siloquot;> owl: rdf:about=quot;#E_Armazenado_no_Siloquot;> <rdfs:domain rdf:resource=quot;#Insumoquot;/> rdfs:domain rdf:resource=quot;#Insumoquot;/> :resource=quot;#Insumo <rdfs:range rdf:resource=quot;#Siloquot;/> rdfs:range rdf:resource=quot;#Siloquot;/> <owl:inverseOf rdf:resource=quot;#Possui_Insumoquot;/> owl: rdf:resource=quot;#Possui_Insumoquot;/> </owl:ObjectProperty> </owl:ObjectProperty> owl
  • 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;