Title: Uma Metodologia para Verifica
1Uma Metodologia para Verificação de Modelos de
Sistemas de Comércio Eletrônico
- Adriano Machado Pereira (adrianoc_at_dcc.ufmg.br)
- Orientador Wagner Meira Jr. (meira_at_dcc.ufmg.br)
- Co-orientador Sérgio Campos (scampos_at_dcc.ufmg.br)
28 de Agosto de 2002
2Introdução
- Comércio eletrônico (C.E.)
- Popularização
- Usuários web mais exigentes
- Serviços cada vez mais complexos
- Difícil projeto.
- Processo de concepção de sistemas de comércio
eletrônico maioria das abordagens são ad-hoc - Sistemas menos confiáveis
- Alto custo.
2
3Introdução
- Garantir a corretude de sistemas de comercio
eletrônico - Tarefa não trivial
- Testes e Simulações são pouco eficientes.
- Qual a solução?
3
4Metodologia CAFE
- Níveis
- Conceitual
- Aplicação
- Funcional
- Execução ou Arquitetural
4
5Metodologia CAFE
C
A
F
E
Entidades
Itens
Serviços
Arquitetura
Ciclo de Vida
Produtos
Ambiente de Execução
Ações
Requisitos Funcionais
Modelo de Execução
Agentes
Estratégia de Armazenamento
Ferramentas
6Metodologia CAFE
- Direcionada para concepção de sistemas de
comércio eletrônico. - Por que não adotá-la simplesmente?
- Quem projeta os sistemas?
- Quem produz os equipamentos de informática?
Ser humano não é perfeito!
6
7Motivação
- Erros existentes nos sites são empecilhos para um
maior crescimento do comércio eletrônico, pois
podem trazer prejuízos para os usuários web, site
ou ambos, dependendo de sua natureza - Processos de engenharia de software voltados para
sistemas genéricos (RUP, Praxis) - Ausência de metodologia (grau de formalidade)
específica para sistemas onde há comercialização
de bens.
7
8Objetivo
- Elaborar uma metodologia que utiliza métodos
formais, mais especificamente verificação de
modelos, para projetar sistemas de comércio
eletrônico e verificar automaticamente se suas
regras de negócio são satisfeitas - Validar a metodologia através de estudos de caso
de comércio eletrônico.
8
9Verificação de Modelos em Sistemas De Comércio
Eletrônico
- Regras de negócio
- Modelo formal de sistemas de comércio eletrônico
- Propriedades
- Completeza
- Transitividade
- Suporte Transacional do Servidor de Transação
(Atomicidade, Consistência, Isolamento)
9
10A Metodologia Formal-CAFE
- Baseada na metodologia CAFE de especificação de
sistemas de comércio eletrônico - Estende a CAFE definindo método que possibilita a
verificação de modelos de sistemas de comércio
eletrônico - Incremental e dividida em 4 níveis.
10
11A Metodologia Formal-CAFE
C
A
F
E
Model. Formal
Regras De Negócio
Model. Formal
Model. Formal
Espec. Formal
Espec. Formal
Espec. Formal
Sistema Correto
Verif. Formal
Verif. Formal
Verif. Formal
11
12A Metodologia Formal-CAFE
Explicação dos níveis e acompanhamento através
de um estudo de caso de uma Loja Virtual.
- Conceitual
- Tupla lt P, I, D, Ag, Ac, S gt
- Regras de negócio
- Quanto mais detalhado for, melhor!
12
13Estudo de Caso Loja VirtualNível Conceitual
- Produto livro
- Itens são unidades deste livro
- Domínio não disponível, disponível, reservado,
vendido, excluído - Agentes comprador e vendedor
- Ações
- Comprador Navegar, Reservar, Cancelar Reserva,
Comprar - Vendedor Disponibilizar, Excluir, Alterar
- Serviços Efetuar reserva, Excluir produto, etc.
13
14Estudo de Caso Loja Virtual Nível Conceitual
- Regras de negócio
- Se um item está indisponível e a ação
Disponibilizar é executada sobre ele, então o
item deverá estar disponível no estado seguinte. - Se o item está reservado para um comprador e este
executa a ação comprar, então o estado seguinte
deste item será vendido.
14
15Estudo de Caso Loja Virtual Nível Conceitual
- Regras de negócios
- Reservar um item e cancelar a reserva de outro
item do mesmo produto devem ser serviços
atômicos. - Se o estoque é positivo, então deve
necessariamente existir pelo menos um item no
estado disponível. - Etc.
15
16A Metodologia Formal-CAFE
16
17A Metodologia Formal-CAFE
- Aplicação
- ciclo de vida do bem comercializado (item)
17
18Estudo de Caso Loja Virtual Nível Aplicação
- Propriedade de Completeza
- EF (item1.estado Indisponível)
- EF (item1.estado Excluído)
item
- EF (comprador.ação Reservar)
- EF (comprador.ação Comprar)
comprador
- EF (vendedor.ação Disponibilizar)
- EF (vendedor.ação Excluir)
vendedor
18
19A Metodologia Formal-CAFE
- Funcional
- Serviços providos pelo sistema
- Múltiplos agentes
- Múltiplos itens.
19
20Estudo de Caso Loja Virtual Nível Funcional
- Propriedade de Transitividade
- AG (estado Indisponível serviço
Disponibilizar) ? AX (estado Disponível) - AG (estado Disponível serviço Excluir) ? AX
(estado Excluído) - AG (estado Reservado serviço Comprar) ? AX
(estado Vendido)
20
21Estudo de Caso Loja Virtual Nível Funcional
- Propriedades Transacionais
- Atomicidade
- Ex Se um item está disponível e um comprador
tenta reservá-lo, o item deverá estar reservado
no próximo estado e o estoque alterado ou então o
estado deve ser mantido.
AG ((estado Disponível serviço Reservar
estoque v) ? AX ((estado Disponível
estoque v) (estado Reservado estoque v
1)))
21
22Estudo de Caso Loja Virtual Nível Funcional
- Propriedades Transacionais
- Isolamento
- Ex Se existirem dois compradores, um reservando
um item e outro cancelando a reserva de outro
item do mesmo produto, o estoque do produto deve
ser mantido consistente.
AG ((serviço_comprador1 Reservar
serviço_comprador2 Cancelar Reserva estoque
v) ? AX (estoque v))
22
23Estudo de Caso Loja Virtual Nível Funcional
- Propriedades Transacionais
- Consistência
- Ex o estoque de um determinado produto nunca
deve ser negativo.
AG !(estoque lt 0)
- Ex Se o estoque é positivo, então deve
existirpelo menos um item disponível.
AG ((estoque gt 0) ? (estado_produto Disponível))
23
24Estudo de Caso Loja Virtual Nível Funcional
- Atomicidade e Isolamento evitam inconsistência no
sistema - Erro grave detectado violação da propriedade de
isolamento, que ocasionou que um mesmo item de um
produto fosse vendido duas vezes. - Solução mecanismo de exclusão mútua no processo
de reserva de itens.
24
25Estudo de Caso Loja Virtual Nível Funcional
next (em_uso) case ... em_uso 0 serviço
comprador 1 Reservar serviço comprador 2
Reservar estoque gt 0 estoque lt 2
1,2 em_uso 1 serviço comprador 1
Cancelar Reserva 0 em_uso 1 serviço
comprador 1 Comprar 0 em_uso 2 serviço
comprador 2 Cancelar Reserva 0 em_uso 2
serviço comprador 2 Comprar 0 ... 1
em_uso esac
next (sessão_usuário) case ... sessão_usuári
o seleção de produto serviço comprador
Reservar next(produto disponível 1)
carrinho de compras sessão_usuário seleção de
produto serviço comprador Reservar
next(produto disponível 0) erro (produto
indisponível) ... 1 sessão_usuário esac
- Resultado
- Quando um comprador solicitar a reserva de um
item, caso a variável - em_uso contenha a identificação de outro
comprador, então a adição do - item ao seu carrinho de compras não é efetuada.
26A Metodologia Formal-CAFE
- Execução ou Arquitetural
- Componentes do sistema
- Interações do usuário.
26
27Estudo de Caso Loja Virtual Nível Execução /
Arquitetural
- Verificação de todas as propriedades verificadas
nos níveis antecedentes. - Novas especificações para verificar o correto
funcionamento dos componentes da arquitetura do
sistema. - 71 especificações verificadas.
- Modelo completo mais de 1023 estados, com mais
de 1014 estados alcançáveis.
27
28Conclusão
- A aplicação de verificação de modelos em comércio
eletrônico tem se mostrado promissora - Área pouco explorada
- Processo de verificação em sistemas de software
não é trivial, porém a definição de uma
metodologia para tal é necessária e tende a
atrair pessoas para a área.
28
29Contribuições
- Definição uma metodologia que possibilite
- Identificar antecipadamente erros no projeto
- Projetar sistemas de comércio eletrônico mais
confiáveis e robustos. - Oportunidade de estender o trabalho a outras
áreas de aplicação - Demonstração que a aplicação de técnicas formais
pode ser útil e promissora.
29
30Publicações
- ICFEM02
- A Formal Methodology to Specify e-Commerce
Systems - Artigo WMF2002
- Uma Metodologia para Verificação de Modelos de
Sistemas de Comércio Eletrônico - Artigo ICECR-5
- Formal-CAFE Methodology an E-commerce System's
Case Study
30
31Trabalhos Futuros
- Definição de padrões para especificação formal de
regras de negócio de comércio eletrônico (CE) - Definição de padrões para construção do modelo
formal proposto pela metodologia - Definição de uma linguagem formal para construção
de sistemas de CE - Aplicação da metodologia em outras áreas, tais
como comércio eletrônico móvel e telecomunicações.
31
32(No Transcript)
33Grau de Formalidade Nível 0
- Nenhum uso de métodos formais
- Corresponde a prática padrão, na qual a
verificação é um processo manual de revisão e
inspeção aplicada a documentos escritos em
linguagem natural - A validação é baseada em testes.
34Grau de Formalidade Nível 1
- Uso de conceitos e notações da matemática
discreta - Substitui-se a linguagem natural utilizada na por
notações e conceitos da lógica e matemática
discreta.
35Grau de Formalidade Nível 2
- Uso de Linguagens de especificação formal
- Ferramenta de suporte automático limitado, como
um analisador, um verificador de tipos ou apenas
capacidade de prova de teoremas
36Grau de Formalidade Nível 3
- Uso de Linguagens de especificação formal mais
completas - Ambiente de suporte amplo, incluindo prova de
teoremas automática e verificadores de provas - Verificação de modelos totalmente automática.
37CAFE Conceitual
- Define quais são as entidades que caracterizam um
serviço de comercio eletrônico - Entidades base para elaboração dos níveis
subseqüentes.
38CAFE Aplicação
- São instanciados os possíveis valores para cada
entidade - Descrito o funcionamento da aplicação sob a
perspectiva do itens que estão sendo
comercializados.
39CAFE Funcional
- Descrição dos serviços providos pelo servidor de
transação - Especificação da estratégia de implementação dos
serviços - Estratégia de armazenamento.
40CAFE Execução
- Determina como a aplicação vai ser implementada
- Arquitetura do sistema
- Tecnologias a serem adotadas.
- Complementa o processo de concepção do servidor
de comercio eletrônico.
41Arquitetura Típica
42Comércio eletrônico
- Conjunto de técnicas e tecnologias computacionais
utilizadas para realizar ou facilitar transações
comerciais de bens e serviços.
43Sistemas de comércio eletrônico
- Arquitetura típica
- Servidor WWW
- Servidor de transações
- Banco de dados.
- Requisitos
- Gerenciamento do estado da aplicação
- Suporte transacional
- Segurança
- Desempenho.
44Métodos Formais
- Consiste basicamente no uso de técnicas
matemáticas para auxiliar na documentação,
especificação, projeto, análise e certificação de
sistemas de computação. - Exemplo
- provadores de teoremas
- matemática discreta
- verificação de modelos.
45Métodos Formais
- Benefícios
- Capacidade de fornecer especificações precisas e
não ambíguas - Possibilidade de verificar especificações
iniciais do projeto, onde normalmente não há
outra forma de validação - Mudanças na especificação podem ser realizadas de
maneira mais confiável.
46Grau de formalidade
- Nível 0
- Nível 1
- Nível 2
- Nível 3
- Verificação de modelos (model checking)
47Verificação de Modelos
- Exploração exaustiva de todas as possibilidades
de comportamento de um sistema. - Processo de Verificação de Modelos
- Modelagem formal
- Especificação formal
- Verificação formal.
- SMV e NuSMV
48Verificação de Modelos
- Modelagem formal
- consiste em converter as características do
projeto para uma linguagem formal compatível com
a ferramenta de verificação que pretende-se
utilizar. - Como isso é feito?
- Qual a representação utilizada?
49Modelagem Formal
50Modelagem Formal
Ação comprador 1 reservar Ação comprador 2
navegar Ação vendedor disponibilizar Estado
item 1 (L1) disponível Estado item 2 (L2)
alocado ... Estoque do Livro 1 1
51Modelagem Formal
... Estoque do Livro 1 lt 0
52Especificação Formal
Em minha aplicação modelada, existe alguma
situação onde o estoque é negativo?
- Lógica Temporal
- Fórmulas CTL
EG (estoque lt 0)
53Verificação Formal
Em minha aplicação modelada, existe alguma
situação onde o estoque é negativo?
- Lógica Temporal
- Fórmulas CTL
EG (estoque lt 0)
Não