Instituto de Computação - Unicamp
O Sistema TeleMicro
Especificação e Validação
Marcelo Fantinato
Tarcisio da Rocha
Profa. Eliane Martins
Maio de 2002
O Projeto TeleMicro
 A proposta do sistema TeleMicro é dar a
seus usuários uma maior capacidade de
gerenciamento e acompanhamento de
suas ligações telefônicas realizadas a
partir de um microcomputador.
O Projeto TeleMicro
Pacotes
 Funcionalidades dividas em 3 pacotes:
Controle Telefônico
1. Efetuar Ligação
2. Receber Ligação
3. Programar Ligação Automática
Manutenção
1. Efetuar Login
2. Manter Cadastro de Operadoras
3. Cadastrar Nova Cidade
4. Manter Cadastro de Usuários
5. Alterar Perfil do Usuário
2. Manter Lista de Contatos
Consultas
1. Consultar Tarifas
2. Consultar Ligaçoes Realizadas
O Projeto TeleMicro
Pacote de Controle Telefônico
 Efetuar Ligação
Selecionar Operadora
<<include>>
<<extend>>
Selecionar Últimos Telefones
Discados
Usuário
Efetuar Ligação
<<extend>>
<<include>>
Selecionar Telefone de Contato
Acompanhar Ligação
O Projeto TeleMicro
Pacote de Controle Telefônico
 Receber Ligação
Chamador
Receber Ligação
<<include>>
Acompanhar Ligação
Usuário
O Projeto TeleMicro
O pacote de Controle Telefônico
 Programar Ligação Automática
<<extend>>
Usuário
Programar Ligação Automática
<<include>>
Verificar Ligações Automáticas a
Disparar
<<extend>>
Selecionar Operadora
Efetuar Ligação Automática
O Projeto TeleMicro
Diagrama de Classes
O Projeto TeleMicro
Diagrama de Classes
O Projeto TeleMicro
Diagrama de Classes
O Projeto TeleMicro
Diagrama de Classes
O Projeto TeleMicro
Outros Documentos
 Especificação Suplementar (Requisitos
Não Funcionais)
 Diagramas de Seqüência
 Dicionário de Dados
 Glossário
O Projeto TeleMicro
Especificação Formal
 Uso de Máquinas de Estados Finitos
Básicas
 Linguagem de especificação:
 Promela = Process Meta Language
 Ferramenta de Validação:
 Spin = Simple Promela Interpreter
 Visualizador Gráfico para Spin:
 XSpin
O Projeto TeleMicro
A Ferramenta Spin
 Apoio à verificação formal de sistemas.
 Enfoque em sistemas concorrentes.
 Análise da consistência lógica de uma
especificação.
 Deadlocks, livelocks, starvation, código
morto, violações...
 Permite o uso de assertivas.
 Permite simulação automática.
 Permite análise léxica
O Projeto TeleMicro
A Linguagem Promela
 Especificação de sistemas de estados
finitos.
 Parecida com a linguagem C.
 Modelo:





Declaração de Tipos
Declaração de Canais
Declaração de Variáveis
Declaração de Processos
O Processo Init
O Projeto TeleMicro
A Linguagem Promela
mtype = {MSG, ACK};
chan toS = ...
chan toR = ...
bool flag;
proctype Sender() { ...
}
proctype Receiver() { ...
}
init { ... }
Tipos
Canais
Variáveis
Processos
Init
O Projeto TeleMicro
A Linguagem Promela
mtype = { RED, YELLOW, GREEN } ;
proctype SinalDeTransito() {
byte state = GREEN;
do
:: (state == GREEN) -> state = YELLOW;
:: (state == YELLOW)-> state = RED;
:: (state == RED)
-> state = GREEN;
od;
}
init { run SinalDeTransito() }
O Projeto TeleMicro
A Linguagem Promela
mtype = { RED, YELLOW, GREEN } ;
proctype SinalNaoDetermimistico(){
byte state = GREEN;
do
:: state = YELLOW;
:: state = RED;
:: state = GREEN;
od;
}
init { run SinalDeTransito() }
O Projeto TeleMicro
Modelando o Controle Telefônico
Controle Telefônico
1. Efetuar Ligação
2. Receber Ligação
3. Programar Ligação Automática
 Pacote principal do sistema
 Compartilham recursos únicos (modem)
 Complementar os outros modelos
Imposs ível
Realizar Lig
Operadora Não
Cadastrada
Inf. No.
Manualmente
Es c. No. pela
Lis ta de Contatos
Dis cando
Atual. Lista de Últimos
Nos. Disc ados
Selec ionar a
Operadora
Reg. Dados
da Lig
Inf. No. de
Telelefone
Es c. pelos últimos
Nos. dis cados
Ac ompanhar
Ligaç ão
Aguardar Atend.
da Lig. "a Cobrar"
Ident. Tipo
de Ligação
Definir
Operaç ão
Enviar Ms g.
Padrão
Apres. No. do
Chamador
Apresentar Nome do
Chamador
Aguardar Atend. da
Lig. não "a Cobrar"
Atender a
Lig. Automat.
Inf. No.
Manualmente (P)
Inf. No. de
Telelefone (P)
Operadora não
Cadastrada (P)
Es c. No. pela Lista
de Contatos (P)
Es c. pelos últimos
Nos. dis cados (P)
Enviar Ms g.
Personal.
Inf. Data e Hora
a s er Real.
Selec ionar
Mens agem
Inc . a Lig.
Aut. na Lis ta
Selec ionar
Operadora (P)
Ex ec . o Verif.
de Lig. Aut.
Receber Ligação
Aguardando
Apres. Nome
22
Apres. número
24
23
25
Indet. Ligação
26 27
28
Lig a Cobrar
21
Lig Normal
29
31
Atender Autom.
30
Acomp. Lig
32
33
Msg Padrao
34
35
Reg Dados
Msg Person
36
O Projeto TeleMicro
Modelando o Controle Telefônico
 Análise Léxica
 Simulação
 Verificação
O Projeto TeleMicro
Conclusões
 Os modelos usados cobriram aspectos
complementares.
 O Modelo de Estados oferece uma descrição
global do comportamento do sistema, que não é
oferecida pelo Diagrama de Casos de Uso.
 O Modelo de Casos de Uso foi muito
importante para a modelagem de estados.
O Projeto TeleMicro
Conclusões
 Simulação e Verificação: possibilita a
identificação de inconsistências:
 no próprio modelo de estados, e
 em outros modelos, como o de casos de uso.
 O Potencial da ferramenta SPIN não foi
totalmente usado, pois o modelo de estados
básico é bem limitado.
 Percebeu-se que usando uma MEF Estendida,
o Modelo de Estados seria menor e mais
simples.
O Projeto TeleMicro
Conclusões
 Grandes benefícios ao Teste de Sistemas:
 Os cenários de uso do sistema podem ser facilmente
obtidos a partir do Modelo de Estados;
 Pode-se facilmente definir os casos de teste para
cada cenário (caminho a percorrer no modelo,
estado final esperado).
 Outros que serão cobertos em fase futura.
O Projeto TeleMicro
Referências Bibliográficas
 GILL, A., Introduction to the Theory of FSM. NY,
McGraw-Hill, 1962.
 PROMELA – Laguage Reference. Disponível em:
http://cm.bell-labs.com/cm/cs/what/spin/Man/promela.htm
 SPIN – Formal Verification. Disponível em: http://cm.belllabs.com/cm/cs/what/spin/
 OFFUTT, A. J.; LIU, S. E ABDURAZIK, A. Generating
Test Data From State-Based Specifications. JSTVR, 2000.
 Apfelbaum, L. e Meyer, S., Use Cases Are Not
Requirements. Disponível em: http://www.model-basedtesting.org
Download

TeleMicro - Instituto de Computação