aplicação de métodos formais no desenvolvimento de sistemas multimídia distribuídos cláudia...
TRANSCRIPT
Aplicação de Métodos Formais no Desenvolvimento de Sistemas
Multimídia Distribuídos
Cláudia Araújo RibeiroUFPE
Junho/2000
Sumário
• Introdução• Métodos Formais• Sistemas Multimídia Distribuídos• Aplicação de Métodos Formais - um
exemplo• Conclusões
Introdução• A complexidade crescente dos sistemas • Sistemas críticos envolvendo dinheiro e
vidas• A necessidade de construção de sistemas
confiáveis• A ambigüidade das especificações
informais• Surgimento de ferramentas automatizadas
Métodos Formais• Linguagens, técnicas e ferramentas baseadas na
lógica e na matemática discreta, usadas para especificação e verificação de sistemas
• Reduz a dependência da intuição e julgamento humanos
• Grande poder de abstração• Aumenta a compreensão do sistema• Detecta inconsistências e ambigüidades na
especificação
Classificação dos Métodos Formais
• Nível de formalização
- Conceitos matemáticos e notações, análise informal, sem ferramentas automatizadas
- Linguagens de especificações formais, pouco suporte mecânico
Linguagens de especificações formais, ambiente próprio, ferramentas de análise
• Escopo de uso
1 Fases do ciclo de vida: todas/selecionadas
2 Componentes do sistema: todos/selecionados
3 Funcionalidade do sistema:todo/selecionado
Custo dos Métodos Formais
• Depende:– das características do projeto– da produtividade da equipe– dos recursos disponíveis
• Reduzido através da reusabilidade e do uso de ferramentas automatizadas
• Decomposição de grandes sistemas antes da aplicação
• Limitar o escopo a componentes e propriedades críticas
O método sob os Métodos Formais• Fase de Caracterização
– rigorosa compreensão do sistema• Fase de Modelagem
– Define representação matemática mais adequada• Fase de Especificação
– Formaliza aspectos relevantes da aplicação e ambiente• Fase de Análise
– Valida a especificação• Fase de Documentação• Fase de Manutenção e Generalização
FerramentasFase Ferramenta Função
Especificação Parser Checa consistênciasintática
Especificação Unparser Traduz representaçãointernaem formatotexto
Especificação Typechecker Checa a consistênciasemântica
Análise Animador, simulador Exibe ocomportamento dosistema modelado
Análise Model checker,theorem proving
Executa provas sobre aespecificação sintática esemanticamentecorretas
Especificação Formal• Caracterização de um sistema expresso em uma
linguagem formal• Linguagem Formal: coleção de símbolos extraídos
de um alfabeto e um conjunto de regras sintáticas que regem as expressões
• Especificação e diferente de Programa• Especificação: expressa restrições, não precisa ser
completo• Linguagens: baseada em estado ou em álgebra de
processos
Características de Sistemas Multimídia Distribuídos
• Sincronização– restrições temporais e concorrência– Intermídia (múltiplas mídias) e Intramídia
• Qualidade de Serviço– características das mídia e percepção humana,Mídia
contínua, Níveis de QoS• Distribuição
– Capacidade de transmissão, delay, gerenciamento de recursos em ambiente distribuído
• Heterogeneidade de plataformas de execução• Especificação do documento multimídia
Sistemas Multimídia Distribuídos e Métodos Formais
• Especificação formal:– do estado, – do comportamento funcional– das relações temporais– dos requisitos não-funcionais (novo)
• Integração entre múltiplas especificações• Necessidade de ferramentas: simulação e
verificação
Uma aplicação exemplo• Características:
– configuração:• Configuração do ambiente para apresentação e
Políticas de gerenciamento de recursos– apresentação:
• documento de 2 mídias (áudio/vídeo) sincronizadas• mecanismos de recuperação de sincronismo
intermídia e interações do usuário• Desenvolvimento a partir do framework PREMO• Especificação Formal: Z, Object-Z e RT-LOTOS
RT-LOTOS
Extensão Temporal do LOTOS TDF baseada em álgebra de processos Operadores de tempo: delay e latência Especificação incremental a partir da
decomposição hierárquica de processos e seus eventos visíveis externamente
Ferramentas utilizadas: RTL e bcg_edit
Modelo Proposto
user
plataform
application
start
start
start end
end
end
r_open r_close
Especificação de primeiro nível
application
client
virtual device virtual connection release resource
virtual device release resource
virtual resource manag policy ag
server
resource manager
Aquisição de recursos
Conexão Virtual
Liberação de recursos
Fase de Configuração
29
28
27
24
3
2
1
i(exit)
i(end)
i(close<2>)
i(r_open<2>)
Ir_open<1>)
0
25
23
22 31
33
35
34
15
32 30
17
14
19
21
20
18
16
12
13
11
10
9 8 36
37
4 6 7
5
i(close<1>)
i(stop_presentation)
i(start_presentation)
i(connect<1,2>)i(sync_start_connection)
i(r_unbind<1>)
i(disconnect<2>)
i(r_bind<1>)
i(r_unbind<1>)
i(r_unbind<2>)
i(r_unbind<2>)i(disconnect<1>)
i(sync_end_connection)i(sync_end_connection) i(disconnect<1>)
i(disconnect<1>)
i(disconnect<2>)
i(disconnect<2>)i(sync_end_connection) i(sync_end_connection)
i(sync_end_connection)
i(sync_end_connection) i(sync_end_connection)
i(sync_end_connection)
i(r_unbind<1>)
i(disconnect<1>)i(disconnect<2>)
i(r_unbind<2>)
i(r_unbind<2>) i(r_unbind<1>)
i(r_bind<2>)
i(r_bind<2>) i(r_bind<1>)
i(r_avail<2>)
i(r_avail<2>)
i(r_bind<1>)i(r_avail<1>)
i(r_avail<1>)
i(r_bind<2>)
i(r_avail<2>) i(r_avail<1>)
i(start
Fase de ExecuçãoDuas mídias perfeitamente sincronizadas
Mídia mestre
Mídia escravo
28
3
19
20
24
25
21
23
18
17
22
15
16
12
13
11
14
10
9
26
8
74
6
27
5
2
1
0
i(stop_presentation)
i(end)
i(exibit<2,2>)
i(f<2,2>)
i(ref<1>)
i(exibit<2,1>)
i(exibit<2,2>) i(exibit<2,1>)
i(exibit<2,1>)i(f<2,2>)
i(f<2,1>)i(f<2,2>)
i(f<2,1>)
i(exibit<2,2>)i(f<2,1>)
i(ref<1>)i(ref<2>)
i(ref<2>)
i(exibit<1,1>) i(exibit<1,2>)
i(exibit<1,1>)i(exibit<1,2>)
i(exibit<1,2>)i(exibit<1,1>)
i(f<1,2>)
i(f<1,2>)i(f<1,1>)
i(f<1,2>) i(f<1,1>)
i(f<1,1>)
i(start_presentation)
i(start)
Mídia mestre atrasada em relação à mídia escravo
Mídia mestre
Mídia escravo
26
3
22
23
20
19
21
16
17
1511
12
8
5
2
1
i(stop_presentation)
i(end)
i(exibit<2,1>)i(end_media)
i(exibit<2,1>) i(end_media)
i(ref<1>)i(f<2,2>)
i(exibit<1,1>)
i(start_presentation)
i(start)
18 24
14
7
25 13
10i(exibit<1,1>)
i(ref<2>)
i(ref<2>)
i(f<1,1>)
i(f<1,1>)
i(ref<2>)
i(ref<1>)
i(ref<1>)
i(exibit<2,2>)
i(f<2,2>)i(exibit<2,2>)
4
6
9
0
i(f<1,2>)
i(exibit<1,2>)
i(f<2,1>)
Mídia mestre adiantada em relação a mídia escravo
Mídia escravo
Mídia mestre
26
3
12
13
16
15
11
17
18
10
7
8
23
5
2
1
i(stop_presentation)
i(end)
i(exibit<2,2>)i(end_media)
i(exibit<2,2>) i(end_media)
i(f<2,1>)
i(ref<1>)
i(start_presentation)
i(start)
14 20
19
21
9 25
22i(f<1,2>)
i(f<1,2>) i(ref<1>)
i(exibit<1,2>)
i(exibit<1,2>)
i(exibit<2,1>)
i(ref<2>)
i(ref<2>)i(exibit<2,2>)i(f<2,1>)
4
6
24
0
i(f<1,1>)
i(exibit<1,1>)
i(ref<1>)
i(ref<2>)
i(f<1,2>)
Conclusões• Métodos Formais são complementares aos
métodos tradicionais• Reduzem, mas não eliminam erros• O uso de métodos formais pode ocorrer de forma
parcial• Melhor relação custo-benefício se implantado nas
fases iniciais do ciclo de vida• Sistemas complexos exigem normalmente
múltiplos formalismos• Possibilita várias análise sobre o comportamento
do sistema