SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Uma Abordagem para Extração de Especificação CSP a partir de uma Implementação em Linguagem C Farley Millano ( [email_address] ) Orientador: Alexandre Mota ( [email_address] )
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Metrô Santiago, Chile :  Controladora Geral de Portas
Metrô: Controladora Geral de Portas ,[object Object],[object Object],[object Object],[object Object]
PROBLEMA!
Contexto - Problema ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Contexto ,[object Object],Documento de Requisitos Modelagem CSP inicial Geração automática Implementação (Código fonte) Extração de modelo Modelagem CSP final Análise de propriedades  Análise na FDR (Model Checker)
CSP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
CSP ,[object Object]
Linguagem C ,[object Object],[object Object],[object Object],[object Object]
Solução...
Desenvolvimento da solução ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Desenvolvimento da solução ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Desenvolvimento da solução ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],AvaliaPrograma [ programa ] ~> AvaliaListaConst[listConst] AvaliaListaDefinicaoVariaveis[listVar] AvaliaListaFuncoes[listFunc]
Desenvolvimento da solução ,[object Object],AvaliaPrograma[ int Teclado_enviarValor_Calculadora; int Tela_enviarImagem_Teclado; void Teclado (void){ Teclado_enviarValor_Calculadora = 1; Teclado_enviarImagem_Tela = 1; } ] Canais Processo Comunicações
Resultado:Exemplo ,[object Object],[object Object],[object Object],[object Object],[object Object]
Código CGP em C 5 - Atribuições às variáveis globais.  4 – Condições externas de comandos ou notificações 2 - Escolha de estado do lado das portas 3 – Ações de acordo com cada estado 1 - Verificações iniciais
Trechos da extração - CGP  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Canais E Constantes AvaliaFuncao[ void  CGP_CML( void ) ... ] AvaliaIfElse[ if(MEMORIA_informaVelocidadeMenorQueTres_CGP == TRUE ){... ] AvaliaIfElse[ if(MEMORIA_informaChaveSeletoraLadoDireito_CGP == TRUE ) {... ]... Próximo slide => AvaliaListAtribuicao[ CGP_receberComandoDireito_MEMORIA = FECHA; CGP_receberComandoEsquerdo_MEMORIA = FECHA;  CGP_informarProximoEstadoDireita_MEMORIA  = 0;  CGP_informarProximoEstadoEsquerda_MEMORIA  = 0; ]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Verificação de propriedades ,[object Object]
Verificação de propriedades ,[object Object],Estado 6 inalcançável
Conclusão e Trabalhos futuros...
Conclusão ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Trabalhos futuros ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Uma Abordagem para Extração de Especificação CSP a partir de uma Implementação em Linguagem C Farley Millano ( [email_address] ) Orientador: Alexandre Mota ( [email_address] )

Weitere ähnliche Inhalte

Was ist angesagt?

Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
apolllorj
 
(A07) LabMM3 - JavaScript - Estruturas de decisão
(A07) LabMM3 - JavaScript - Estruturas de decisão(A07) LabMM3 - JavaScript - Estruturas de decisão
(A07) LabMM3 - JavaScript - Estruturas de decisão
Carlos Santos
 
Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição
Aula 10 - Comando de Decisão Múltipla e Comandos de RepetiçãoAula 10 - Comando de Decisão Múltipla e Comandos de Repetição
Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição
André Constantino da Silva
 
Linguagem C 03 Estruturas De Decisao
Linguagem C 03 Estruturas De DecisaoLinguagem C 03 Estruturas De Decisao
Linguagem C 03 Estruturas De Decisao
Regis Magalhães
 
LabMM3 - Aula teórica 06
LabMM3 - Aula teórica 06LabMM3 - Aula teórica 06
LabMM3 - Aula teórica 06
Carlos Santos
 
Logica Algoritmo 05 Repeticao
Logica Algoritmo 05 RepeticaoLogica Algoritmo 05 Repeticao
Logica Algoritmo 05 Repeticao
Regis Magalhães
 
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
André Constantino da Silva
 
Logica Algoritmo 04 Decisao
Logica Algoritmo 04 DecisaoLogica Algoritmo 04 Decisao
Logica Algoritmo 04 Decisao
Regis Magalhães
 
A linguagem de programação c
A linguagem de programação cA linguagem de programação c
A linguagem de programação c
Clausia Antoneli
 

Was ist angesagt? (20)

Algoritmos Aula 08
Algoritmos Aula 08Algoritmos Aula 08
Algoritmos Aula 08
 
Linguagem C - Entrada e Saída
Linguagem C - Entrada e SaídaLinguagem C - Entrada e Saída
Linguagem C - Entrada e Saída
 
Visualg
VisualgVisualg
Visualg
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Display de 7 segmentos multiplexados
Display de 7 segmentos multiplexadosDisplay de 7 segmentos multiplexados
Display de 7 segmentos multiplexados
 
(A07) LabMM3 - JavaScript - Estruturas de decisão
(A07) LabMM3 - JavaScript - Estruturas de decisão(A07) LabMM3 - JavaScript - Estruturas de decisão
(A07) LabMM3 - JavaScript - Estruturas de decisão
 
Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição
Aula 10 - Comando de Decisão Múltipla e Comandos de RepetiçãoAula 10 - Comando de Decisão Múltipla e Comandos de Repetição
Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição
 
Introdução à Linguagem C
Introdução à Linguagem CIntrodução à Linguagem C
Introdução à Linguagem C
 
Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)
 
C++
C++C++
C++
 
Linguagem C 03 Estruturas De Decisao
Linguagem C 03 Estruturas De DecisaoLinguagem C 03 Estruturas De Decisao
Linguagem C 03 Estruturas De Decisao
 
Linguagem C - Controle de Programa
Linguagem C - Controle de ProgramaLinguagem C - Controle de Programa
Linguagem C - Controle de Programa
 
LabMM3 - Aula teórica 06
LabMM3 - Aula teórica 06LabMM3 - Aula teórica 06
LabMM3 - Aula teórica 06
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Logica Algoritmo 05 Repeticao
Logica Algoritmo 05 RepeticaoLogica Algoritmo 05 Repeticao
Logica Algoritmo 05 Repeticao
 
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
 
Logica Algoritmo 04 Decisao
Logica Algoritmo 04 DecisaoLogica Algoritmo 04 Decisao
Logica Algoritmo 04 Decisao
 
A linguagem de programação c
A linguagem de programação cA linguagem de programação c
A linguagem de programação c
 
Caderno de exercicios algoritmos-v.1.3
Caderno de exercicios   algoritmos-v.1.3Caderno de exercicios   algoritmos-v.1.3
Caderno de exercicios algoritmos-v.1.3
 

Andere mochten auch

Exerccios algoritmos comando_se
Exerccios algoritmos comando_seExerccios algoritmos comando_se
Exerccios algoritmos comando_se
Patrick_turma10
 
Introdução Ao Princípio De Contagem
Introdução Ao  Princípio De  ContagemIntrodução Ao  Princípio De  Contagem
Introdução Ao Princípio De Contagem
Adélia Filha
 
PHP para aplicações Web de grande porte
PHP para aplicações Web  de grande portePHP para aplicações Web  de grande porte
PHP para aplicações Web de grande porte
Felipe Ribeiro
 
Apostila leitura dinamica curso completo - 57 páginas
Apostila leitura dinamica   curso completo - 57 páginasApostila leitura dinamica   curso completo - 57 páginas
Apostila leitura dinamica curso completo - 57 páginas
farnanda
 
Leitura dinâmica e memorização técnicas e aplicação
Leitura dinâmica e memorização técnicas e aplicaçãoLeitura dinâmica e memorização técnicas e aplicação
Leitura dinâmica e memorização técnicas e aplicação
Rodrigo Cisco
 

Andere mochten auch (20)

Exerccios algoritmos comando_se
Exerccios algoritmos comando_seExerccios algoritmos comando_se
Exerccios algoritmos comando_se
 
Ec2 Commands
Ec2 CommandsEc2 Commands
Ec2 Commands
 
Direito do Consumidor Aula Única
Direito do Consumidor Aula ÚnicaDireito do Consumidor Aula Única
Direito do Consumidor Aula Única
 
PHP-CLI em 7 passos
PHP-CLI em 7 passosPHP-CLI em 7 passos
PHP-CLI em 7 passos
 
Qualitypress - Segurança em Aplicações Web com PHP
Qualitypress - Segurança em Aplicações Web com PHPQualitypress - Segurança em Aplicações Web com PHP
Qualitypress - Segurança em Aplicações Web com PHP
 
Desenvolvimento iOS - Aula 5
Desenvolvimento iOS - Aula 5Desenvolvimento iOS - Aula 5
Desenvolvimento iOS - Aula 5
 
Minicurso Objective-C
Minicurso Objective-CMinicurso Objective-C
Minicurso Objective-C
 
Disponibilizando dependências PHP com Composer, GitHub e Packagist
Disponibilizando dependências PHP com Composer, GitHub e PackagistDisponibilizando dependências PHP com Composer, GitHub e Packagist
Disponibilizando dependências PHP com Composer, GitHub e Packagist
 
Tudo o que você precisa saber sobre o php7
Tudo o que você precisa saber sobre o php7Tudo o que você precisa saber sobre o php7
Tudo o que você precisa saber sobre o php7
 
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...
 
Segurança PHP - por Samyr Abdo
Segurança PHP - por Samyr AbdoSegurança PHP - por Samyr Abdo
Segurança PHP - por Samyr Abdo
 
Construindo uma Aplicação PHP à Prova de Balas
Construindo uma Aplicação PHP à Prova de BalasConstruindo uma Aplicação PHP à Prova de Balas
Construindo uma Aplicação PHP à Prova de Balas
 
Introdução Ao Princípio De Contagem
Introdução Ao  Princípio De  ContagemIntrodução Ao  Princípio De  Contagem
Introdução Ao Princípio De Contagem
 
PHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de ComandoPHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de Comando
 
Lidando com Código Duplicado - DevInSantos 2013
Lidando com Código Duplicado - DevInSantos 2013Lidando com Código Duplicado - DevInSantos 2013
Lidando com Código Duplicado - DevInSantos 2013
 
Curso de Linguagem C
Curso de Linguagem CCurso de Linguagem C
Curso de Linguagem C
 
PHP para aplicações Web de grande porte
PHP para aplicações Web  de grande portePHP para aplicações Web  de grande porte
PHP para aplicações Web de grande porte
 
Apostila leitura dinamica curso completo - 57 páginas
Apostila leitura dinamica   curso completo - 57 páginasApostila leitura dinamica   curso completo - 57 páginas
Apostila leitura dinamica curso completo - 57 páginas
 
curso-leitura-dinamica
curso-leitura-dinamicacurso-leitura-dinamica
curso-leitura-dinamica
 
Leitura dinâmica e memorização técnicas e aplicação
Leitura dinâmica e memorização técnicas e aplicaçãoLeitura dinâmica e memorização técnicas e aplicação
Leitura dinâmica e memorização técnicas e aplicação
 

Ähnlich wie Converting an implementation using the C language to CSP modelling

02 JAVAEstrutura sequencial (slides).pptx
02 JAVAEstrutura sequencial (slides).pptx02 JAVAEstrutura sequencial (slides).pptx
02 JAVAEstrutura sequencial (slides).pptx
william Sarti José
 
Linguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosLinguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros Passos
Regis Magalhães
 
18.ago ouro i 14.00_298_rge
18.ago ouro i 14.00_298_rge18.ago ouro i 14.00_298_rge
18.ago ouro i 14.00_298_rge
itgfiles
 

Ähnlich wie Converting an implementation using the C language to CSP modelling (20)

Codificação segura em C para sistemas embarcados
Codificação segura em C para sistemas embarcadosCodificação segura em C para sistemas embarcados
Codificação segura em C para sistemas embarcados
 
Bibliotecas c
Bibliotecas cBibliotecas c
Bibliotecas c
 
certificado_361334
certificado_361334certificado_361334
certificado_361334
 
certificado_361334
certificado_361334certificado_361334
certificado_361334
 
Desafio de Robótica - Católica de Santa Catarina - Joinville
Desafio de Robótica - Católica de Santa Catarina - JoinvilleDesafio de Robótica - Católica de Santa Catarina - Joinville
Desafio de Robótica - Católica de Santa Catarina - Joinville
 
The mathematics used by technicians in the automotive electronics industry.
The mathematics used by technicians in the automotive electronics industry.The mathematics used by technicians in the automotive electronics industry.
The mathematics used by technicians in the automotive electronics industry.
 
[PRJ32][Christopher] Aula 14 – controle
[PRJ32][Christopher] Aula 14 – controle[PRJ32][Christopher] Aula 14 – controle
[PRJ32][Christopher] Aula 14 – controle
 
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
 
Projeto de Controlo de Silo para Parqueamento
Projeto de Controlo de Silo para ParqueamentoProjeto de Controlo de Silo para Parqueamento
Projeto de Controlo de Silo para Parqueamento
 
Aula 1 | Introdução a C++
Aula 1 | Introdução a C++Aula 1 | Introdução a C++
Aula 1 | Introdução a C++
 
02 JAVAEstrutura sequencial (slides).pptx
02 JAVAEstrutura sequencial (slides).pptx02 JAVAEstrutura sequencial (slides).pptx
02 JAVAEstrutura sequencial (slides).pptx
 
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
 
Microcontroladores pic ling c unicamp
Microcontroladores pic ling c unicampMicrocontroladores pic ling c unicamp
Microcontroladores pic ling c unicamp
 
Intro Sist Embarcados - Sergio cavalcante
Intro Sist Embarcados - Sergio cavalcanteIntro Sist Embarcados - Sergio cavalcante
Intro Sist Embarcados - Sergio cavalcante
 
Linguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosLinguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros Passos
 
Comandos de Controle de Programa em C
Comandos de Controle de Programa em CComandos de Controle de Programa em C
Comandos de Controle de Programa em C
 
Relatório final
Relatório finalRelatório final
Relatório final
 
Algoritmos Genéticos para Ajuste de Controlador PID em Sistemas Espaciais
Algoritmos Genéticos para Ajuste de Controlador PID em Sistemas EspaciaisAlgoritmos Genéticos para Ajuste de Controlador PID em Sistemas Espaciais
Algoritmos Genéticos para Ajuste de Controlador PID em Sistemas Espaciais
 
18.ago ouro i 14.00_298_rge
18.ago ouro i 14.00_298_rge18.ago ouro i 14.00_298_rge
18.ago ouro i 14.00_298_rge
 
Desenvolvimento de drivers para sistemas embarcados
Desenvolvimento de drivers para sistemas embarcadosDesenvolvimento de drivers para sistemas embarcados
Desenvolvimento de drivers para sistemas embarcados
 

Kürzlich hochgeladen

Kürzlich hochgeladen (8)

Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 

Converting an implementation using the C language to CSP modelling

  • 1. Uma Abordagem para Extração de Especificação CSP a partir de uma Implementação em Linguagem C Farley Millano ( [email_address] ) Orientador: Alexandre Mota ( [email_address] )
  • 2.
  • 3. Metrô Santiago, Chile : Controladora Geral de Portas
  • 4.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17. Código CGP em C 5 - Atribuições às variáveis globais. 4 – Condições externas de comandos ou notificações 2 - Escolha de estado do lado das portas 3 – Ações de acordo com cada estado 1 - Verificações iniciais
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 25.
  • 26.
  • 27. Uma Abordagem para Extração de Especificação CSP a partir de uma Implementação em Linguagem C Farley Millano ( [email_address] ) Orientador: Alexandre Mota ( [email_address] )