Modelagem Conceitual Orientada a Regras Aluno: Diorbert Corra - - PowerPoint PPT Presentation

modelagem conceitual orientada a regras
SMART_READER_LITE
LIVE PREVIEW

Modelagem Conceitual Orientada a Regras Aluno: Diorbert Corra - - PowerPoint PPT Presentation

Modelagem Conceitual Orientada a Regras Aluno: Diorbert Corra Pereira Orientador: Joo Paulo A. Almeida Co-Orientadora: Patrcia Dockhorn Costa o Modelagem Conceitual o Motivao o Objetivos o Framework Comparativo o Sintaxe Concreta o


slide-1
SLIDE 1

Modelagem Conceitual Orientada a Regras

Aluno: Diorbert Corrêa Pereira Orientador: João Paulo A. Almeida Co-Orientadora: Patrícia Dockhorn Costa

slide-2
SLIDE 2
  • Modelagem Conceitual
  • Motivação
  • Objetivos
  • Framework Comparativo
  • Sintaxe Concreta
  • Expressividade
  • Conclusão
slide-3
SLIDE 3

Abstração Abstração

Modelo

slide-4
SLIDE 4

Abstração Abstração

Modelo

slide-5
SLIDE 5
  • As abordagens possuem características

diferenciadas

  • A escolha da abordagem correta pode

aumentar a qualidade da representação

slide-6
SLIDE 6
  • Criar um framework comparativo
  • Fornecer uma base de experiência
slide-7
SLIDE 7
  • Sintaxe Concreta
  • Expressividade
  • Apoio Ferramental
slide-8
SLIDE 8

LINGUAGENS AVALIADAS Linguagem Aplicação Tipo de Modelagem Apoio Ferramental AORML Sistemas Multi-Agentes Visual

  • ECA-DL

Sensibilidade ao Contexto Textual

  • OMT-A

Geral Visual

  • rBPMN

Geral Visual

  • Editor: rBPMN Editor

Drools Geral Textual

  • Editor: Eclipse
  • Motor: Drools Expert

Reaction RuleML Web Semântica Textual

  • Editor: Reaction RuleML Editor
  • Motor: jDREW

BROCOM Regras de Negócio Híbrida

slide-9
SLIDE 9

Metodologia

  • Avaliação das linguagens segundo as

características apresentadas em (Moody,2009)

slide-10
SLIDE 10
  • Variáveis de Codificação Utilizadas
  • Clareza Semiótica
  • Discriminalidade Perceptiva
  • Transparência Semântica
  • Gerenciamento de Complexidade
  • Integração Cognitiva
  • Expressividade Visual
  • Ajuste Cognitivo
slide-11
SLIDE 11
  • Variáveis de Codificação Utilizadas
slide-12
SLIDE 12
  • Clareza Semiótica
  • Redundância de Símbolos
  • Sobrecarga de Símbolos
  • Excesso de Símbolos
  • Déficit de Símbolos
slide-13
SLIDE 13
  • Clareza Semiótica
  • Redundância de Símbolos

Símbolos Construtores Semânticos

slide-14
SLIDE 14
  • Clareza Semiótica
  • Redundância de Símbolos
slide-15
SLIDE 15
  • Clareza Semiótica
  • Redundância de Símbolos
slide-16
SLIDE 16
  • Clareza Semiótica
  • Sobrecarga de Símbolos

Símbolos Construtores Semânticos

slide-17
SLIDE 17
  • Clareza Semiótica
  • Excesso de Símbolos

Símbolos Construtores Semânticos

slide-18
SLIDE 18
  • Clareza Semiótica
  • Déficit de Símbolos

Símbolos Construtores Semânticos

slide-19
SLIDE 19
  • Clareza Semiótica
  • Déficit de Símbolos

Como representar eventos complexos ?

slide-20
SLIDE 20
  • Discriminalidade Perceptiva
slide-21
SLIDE 21
  • Transparência Semântica
slide-22
SLIDE 22
  • Gerenciamento de Complexidade
slide-23
SLIDE 23
  • Gerenciamento de Complexidade
slide-24
SLIDE 24
  • Gerenciamento de Complexidade
slide-25
SLIDE 25
  • Integração Cognitiva
slide-26
SLIDE 26
  • Expressividade Visual
slide-27
SLIDE 27
  • Ajuste Cognitivo

Classe de Usuários A Classe de Usuários B Complexidade

slide-28
SLIDE 28

Metodologia

  • Definição de características comuns

recorrentes em sistemas reativos

slide-29
SLIDE 29
  • Utilizar eventos complexos
  • Utilizar eventos temporais
  • Possuir regras que geram cadeia de eventos

(fluxo de regras)

  • Avaliar condições baseando-se no vocabulário

do domínio

slide-30
SLIDE 30
  • Possuir regras com tempo de vida programado
  • Possuir regras aplicáveis a um subconjunto de

instâncias de um tipo do vocabulário

slide-31
SLIDE 31

Metodologia

  • Definição de características comuns

recorrentes em sistemas reativos

  • Definição de um estudo de caso e

modelagem do mesmo a partir das linguagens

slide-32
SLIDE 32

Domínio: Venda por Atacado

slide-33
SLIDE 33
slide-34
SLIDE 34

R1 - “Desconto promocional” Evento: E01:Alteração dos itens da venda(Venda v) Condição: (v.valorTotal > 200 & dayOfWeek() = Monday) | (v.valorTotal > 1000) Ação: A01:v.setDescontoTotal(5) Requisitos: REQ04, REQ06

slide-35
SLIDE 35

Business Rule [R1] 'Desconto promocional' ON (Alteracao dos itens da venda) IF ((totalVenda > 200) AND (dia da semana é segunda- feira)) OR (totalVenda > 1000) THEN Fornecer desconto de 5%

BROCOM

slide-36
SLIDE 36

R3 - “Encaminhamento para entrega rápida” Evento: E02:Finalização de Venda(Venda v) Condição: now() <= 14:00 Ação: A03:v.cliente.solicitarEntrega(v,today()); trigger(E03) Requisitos: REQ03, REQ06

slide-37
SLIDE 37

rule ‘Encaminhamento para entrega rápida’ when $venda : Venda (recemFinalizada == true) new GregorianCalendar()).get(Calendar.HOUR_OF_DAY) <= 14 then $venda.cliente.solicitarEntrega(v,today()); $venda.cliente.entregaRecemSolicitada = true; $venda.recemFinalizada = false; update($venda); end

DROOLS

slide-38
SLIDE 38

R4 - “Encaminhamento para entrega agendada” Evento: E02:Finalização de Venda(Venda v) Condição: now() > 14:00 Ação: A03:v.cliente.solicitarEntrega(v,nextUsefulDay()); trigger(E03) Requisitos: REQ03, REQ06

slide-39
SLIDE 39

R5 - “Calculo do valor de entrega” Evento: E03:Entrega Solicitada(Venda v,Entrega e) Condição: v.cliente.volumeCompras <= 500 Ação: A04:e.setTaxa(10) Tempo de Vida: Regra válida no período de Janeiro a Novembro Requisitos: REQ04, REQ05, REQ06

slide-40
SLIDE 40

//R5 - Calculo do valor da entrega Upon EntregaSolicitada(v,e) When v.cliente.volumeCompras <= 500 Do e.setTaxa(10); from <January> to <November>

ECA-DL

slide-41
SLIDE 41

R6 - “Iniciar contagem de hora extra” Escopo: Para todo Funcionário (f) em Caixa Evento: E05:Fim de Expediente Condição: f.ehEfetivo = True Ação: A06:f.iniciarContagemHoraExtra() Requisitos: REQ04, REQ06

slide-42
SLIDE 42

rBPMN (R2ML)

slide-43
SLIDE 43

//R6 - Iniciar contagem de hora extra Scope(Select(Caixa.*;c;c.aberto = true);c) { Upon FimExpediente When c.funcionario.ehEfetivo = True Do c.funcionario.iniciarContagemHoraExtra(); }

ECA-DL

slide-44
SLIDE 44

R7 - “Hora extra” Escopo: Para todo Funcionário (f) em Caixa Evento: E05:Fim de Expediente BEFORE E06:Saída de Funcionário(Funcionario f) Condição: f.ehEfetivo = True & f.getVolumeVendas(Today,Today) > 300 Ação: A05:f.contabilizarHoraExtraDia() Requisitos: REQ01, REQ02, REQ04, REQ06

slide-45
SLIDE 45

rBPMN (R2ML)

slide-46
SLIDE 46

rBPMN

slide-47
SLIDE 47

//R7 - Hora extra Scope(Select(Caixa.*;c;c.aberto = true);c) { Upon FimExpediente; SaidaFuncionario(f) When f = c.funcionario and f.ehEfetivo = True and f.getVolumeVendas(Today,Today) > 300 Do f.contabilizarHoraExtraDia(); }

ECA-DL

slide-48
SLIDE 48

R8 - “Verificar saúde do estoque” Escopo: Para todo Produto (p) presente na venda Evento: E02:Finalização de Venda(Venda v) Condição: p.verificarNivelCritico() = True Ação: trigger(E04) Requisitos: REQ03, REQ04, REQ06

slide-49
SLIDE 49

Business Rule [R8] 'Verificar saúde do estoque' ON Finalização de Venda IF Produto vendido está em nível crítico THEN raise event 'Alerta Estoque Nível Crítico' BROCOM

slide-50
SLIDE 50

rule ‘Verificar saúde do estoque’ when $estoque : Estoque($estoque.nivelCritico == false); $venda : Venda (recemFinalizada == true) $itens : ArrayList(Size >= 1) from collect(ItemVenda(venda == $venda)) eval($itens.produto.verificarNivelCritico() == true) then $estoque.setNivelCritico (true); update($estoque); end DROOLS

slide-51
SLIDE 51

R2 - “Pré-processamento de pedido de compra” Evento: E04:Alerta Estoque Nível Crítico | E07:Fim de Semana Condição: Ação: A02:Estoque.gerarPedidoCompra() Requisitos: REQ01, REQ02

slide-52
SLIDE 52

Business Rule [R2] 'Pré-processamento de pedido de coompra' ON (Alerta estoque nível crítico) OR (Fim de semana) IF THEN Gerar pedido de compra BROCOM

slide-53
SLIDE 53

rule ‘Pré-processamento de pedido de compra’ when $estoque : Estoque(nivelCritico == true || (new GregorianCalendar()).get(Calendar.DAY_OF_WEEK) == Calendar.THURSDAY)) then $estoque.gerarPedidoCompra(); end DROOLS

slide-54
SLIDE 54

OMT-A

slide-55
SLIDE 55

OMT-A

slide-56
SLIDE 56

EVENTOS COMPLEXOS ACESSO AO VOCABULÁRIO DO DOMÍNIO TEMPO DE VIDA SELEÇÃO DE SUBCONJUNTO DE INSTÂNCIAS CONJ. DISJ. TEMP. AORML + BROCOM + + + Drools + +

  • +

ECA-DL + + + + + + OMT-A + + + rBPMN +

  • +

+ + Reaction RuleML + + +

slide-57
SLIDE 57

O modelador deve verificar...

  • Compatibilidade da linguagem ao

problema

  • Maturidade da abordagem
  • Apoio ferramental
  • A fase de desenvolvimento que

deseja apoiar

slide-58
SLIDE 58

Obrigado pela atenção