Verificação de Programas Embarcados ANSI-C baseada em indução Matemática e Invariantes
Submitted by Divisão de Documentação/BC Biblioteca Central (ddbc@ufam.edu.br) on 2018-03-21T17:40:38Z No. of bitstreams: 2 license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5) Dissertação_Raimundo W. R. Melo.pdf: 1511352 bytes, checksum: 35f1429da9fc237f23a6e983f4c6abd9 (MD5) ==...
Main Authors: | , |
---|---|
Other Authors: | |
Format: | Others |
Language: | Portuguese |
Published: |
Universidade Federal do Amazonas
2018
|
Subjects: | |
Online Access: | https://tede.ufam.edu.br/handle/tede/6261 |
id |
ndltd-IBICT-oai-http---localhost-tede-6261 |
---|---|
record_format |
oai_dc |
collection |
NDLTD |
language |
Portuguese |
format |
Others
|
sources |
NDLTD |
topic |
Verificação formal Indução matemática Invariantes indutivas PIPS PAGAI Verificação de Software Sistemas embarcados ENGENHARIAS: ENGENHARIA ELÉTRICA |
spellingShingle |
Verificação formal Indução matemática Invariantes indutivas PIPS PAGAI Verificação de Software Sistemas embarcados ENGENHARIAS: ENGENHARIA ELÉTRICA Melo, Raimundo Williame Rocha de 92-99345-3625 Verificação de Programas Embarcados ANSI-C baseada em indução Matemática e Invariantes |
description |
Submitted by Divisão de Documentação/BC Biblioteca Central (ddbc@ufam.edu.br) on 2018-03-21T17:40:38Z
No. of bitstreams: 2
license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5)
Dissertação_Raimundo W. R. Melo.pdf: 1511352 bytes, checksum: 35f1429da9fc237f23a6e983f4c6abd9 (MD5) === Approved for entry into archive by Divisão de Documentação/BC Biblioteca Central (ddbc@ufam.edu.br) on 2018-03-21T17:40:50Z (GMT) No. of bitstreams: 2
license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5)
Dissertação_Raimundo W. R. Melo.pdf: 1511352 bytes, checksum: 35f1429da9fc237f23a6e983f4c6abd9 (MD5) === Made available in DSpace on 2018-03-21T17:40:50Z (GMT). No. of bitstreams: 2
license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5)
Dissertação_Raimundo W. R. Melo.pdf: 1511352 bytes, checksum: 35f1429da9fc237f23a6e983f4c6abd9 (MD5)
Previous issue date: 2017-08-10 === FAPEAM - Fundação de Amparo à Pesquisa do Estado do Amazonas === The use of embedded systems, i.e., computer systems focused on performing specific
functions in larger (electronic or mechanical) systems, has been growing lately, and ensuring
the robustness of such systems has become increasingly important. There are several techniques
to ensure that a system is released without errors. In particular, formal verification of programs
is proving itself to be effective in the search for failures. In this work, an induction-proof
algorithm is described, which combines k-induction and invariants to verify and refute safety
properties in embedded ANSI-C software. Moreover, the proposed k-induction-based approach
infers invariants in the program to assist in verification tasks, using constraint refinement (i.e.,
polyhedral) to specify pre- and post-conditions.
We adopted two invariant generators to produce such and feed the k-induction algorithm,
which is implemented in the Efficient SMT-Based Context-Bounded Model Checker tool.
Public benchmarks were used to assess the effectiveness of our approach. In addition, a
comparison to other state-of-the-art verification tools using a set of benchmarks from the International
Competition for Software Verification in addition to embedded systems applications.
Experimental results have shown that the proposed approach, with and without invariants,
can verify a wide variety of safety properties in programs with loops and embedded software
from telecommunications, control systems, and medical domains. === O uso de sistemas embarcados, sistemas computacionais especializados para execução
em sistemas eletrônicos ou mecânicos tem crescido de forma vertiginosa devido a utilização
cada vez mais intensa de sensores, interfaces de rede e protocolos de comunicação em diversas
áreas. Por isso, é cada vez mais importante garantir a robustez desses sistemas, uma vez
que estão se tornando mais complexos e integrados. Existem várias técnicas para garantir que
um sistema seja entregue ao cliente sem erros, em particular, a verificação formal dos programas
tem se revelado eficaz na busca de falhas. Neste trabalho é descrito um algoritmo de
indução matemática conhecido como k-induction combinado ao uso de invariantes para verificar
e refutar propriedades de segurança em programas desenvolvidos na linguagem ANSI-C.
Em particular, a abordagem proposta infere invariantes no programa para auxiliar na verificação
de programas ANSI-C através da técnica de indução matemática através do refinamento
de restrição (i.e, poliédrico) para especificar pré- e pós-condições.
No método proposto, adotamos dois geradores de invariantes para produzir e alimentar
o algoritmo de indução matemática o qual é implementado na ferramenta Efficient SMT-Based
Context-Bounded Model Checker. A motivação para a combinação de invariantes com o algoritmo
de indução matemática é fechar um gap na verificação formal de programas que possuam
variáveis globais, além de programas com loops que possuem desvios condicionais e o número
de iterações é desconhecido. PIPS e PAGAI são as ferramentas utilizadas para analisar o código
e produzir invariantes indutivas responsáveis por guiar o algoritmo de indução matemática na
verificação do benchmark, sendo este o principal desafio do método proposto.
Para avaliar a eficácia da abordagem proposta neste trabalho, além de aplicações de
Sistemas Embarcados foram utilizados benchmarks públicos disponibilizados pela Competição
Internacional de Verificação de Software onde participam Universidades, pesquisadores, estudandantes
de doutorado de várias partes do mundo, e fornece amplo conjunto de casos de teste
para verificação. Além disso, foram utilizadas ferramentas estado-da-arte para a comparação
dos resultados e, assim mensurar a eficácia do método proposto.
Os resultados experimentais foram positivos e mostraram que o algoritmo de indução
matemática com invariantes pode verificar uma grande variedade de propriedades de segurança
em programas com loops e aplicações de sistemas embarcados de telecomunicações, sistemas
de controle e dispositivos médicos. |
author2 |
ppgee@ufam.edu.br |
author_facet |
ppgee@ufam.edu.br Melo, Raimundo Williame Rocha de 92-99345-3625 |
author |
Melo, Raimundo Williame Rocha de 92-99345-3625 |
author_sort |
Melo, Raimundo Williame Rocha de |
title |
Verificação de Programas Embarcados ANSI-C baseada em indução Matemática e Invariantes |
title_short |
Verificação de Programas Embarcados ANSI-C baseada em indução Matemática e Invariantes |
title_full |
Verificação de Programas Embarcados ANSI-C baseada em indução Matemática e Invariantes |
title_fullStr |
Verificação de Programas Embarcados ANSI-C baseada em indução Matemática e Invariantes |
title_full_unstemmed |
Verificação de Programas Embarcados ANSI-C baseada em indução Matemática e Invariantes |
title_sort |
verificação de programas embarcados ansi-c baseada em indução matemática e invariantes |
publisher |
Universidade Federal do Amazonas |
publishDate |
2018 |
url |
https://tede.ufam.edu.br/handle/tede/6261 |
work_keys_str_mv |
AT meloraimundowilliamerochade verificacaodeprogramasembarcadosansicbaseadaeminducaomatematicaeinvariantes AT 92993453625 verificacaodeprogramasembarcadosansicbaseadaeminducaomatematicaeinvariantes |
_version_ |
1718896352592658432 |
spelling |
ndltd-IBICT-oai-http---localhost-tede-62612019-01-21T22:37:33Z Verificação de Programas Embarcados ANSI-C baseada em indução Matemática e Invariantes Melo, Raimundo Williame Rocha de 92-99345-3625 ppgee@ufam.edu.br Cordeiro, Lucas Carvalho Lima Filho, Eddie Batista de Barreto, Raimundo da Silva Rocha, Herbert Oliverira Verificação formal Indução matemática Invariantes indutivas PIPS PAGAI Verificação de Software Sistemas embarcados ENGENHARIAS: ENGENHARIA ELÉTRICA Submitted by Divisão de Documentação/BC Biblioteca Central (ddbc@ufam.edu.br) on 2018-03-21T17:40:38Z No. of bitstreams: 2 license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5) Dissertação_Raimundo W. R. Melo.pdf: 1511352 bytes, checksum: 35f1429da9fc237f23a6e983f4c6abd9 (MD5) Approved for entry into archive by Divisão de Documentação/BC Biblioteca Central (ddbc@ufam.edu.br) on 2018-03-21T17:40:50Z (GMT) No. of bitstreams: 2 license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5) Dissertação_Raimundo W. R. Melo.pdf: 1511352 bytes, checksum: 35f1429da9fc237f23a6e983f4c6abd9 (MD5) Made available in DSpace on 2018-03-21T17:40:50Z (GMT). No. of bitstreams: 2 license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5) Dissertação_Raimundo W. R. Melo.pdf: 1511352 bytes, checksum: 35f1429da9fc237f23a6e983f4c6abd9 (MD5) Previous issue date: 2017-08-10 FAPEAM - Fundação de Amparo à Pesquisa do Estado do Amazonas The use of embedded systems, i.e., computer systems focused on performing specific functions in larger (electronic or mechanical) systems, has been growing lately, and ensuring the robustness of such systems has become increasingly important. There are several techniques to ensure that a system is released without errors. In particular, formal verification of programs is proving itself to be effective in the search for failures. In this work, an induction-proof algorithm is described, which combines k-induction and invariants to verify and refute safety properties in embedded ANSI-C software. Moreover, the proposed k-induction-based approach infers invariants in the program to assist in verification tasks, using constraint refinement (i.e., polyhedral) to specify pre- and post-conditions. We adopted two invariant generators to produce such and feed the k-induction algorithm, which is implemented in the Efficient SMT-Based Context-Bounded Model Checker tool. Public benchmarks were used to assess the effectiveness of our approach. In addition, a comparison to other state-of-the-art verification tools using a set of benchmarks from the International Competition for Software Verification in addition to embedded systems applications. Experimental results have shown that the proposed approach, with and without invariants, can verify a wide variety of safety properties in programs with loops and embedded software from telecommunications, control systems, and medical domains. O uso de sistemas embarcados, sistemas computacionais especializados para execução em sistemas eletrônicos ou mecânicos tem crescido de forma vertiginosa devido a utilização cada vez mais intensa de sensores, interfaces de rede e protocolos de comunicação em diversas áreas. Por isso, é cada vez mais importante garantir a robustez desses sistemas, uma vez que estão se tornando mais complexos e integrados. Existem várias técnicas para garantir que um sistema seja entregue ao cliente sem erros, em particular, a verificação formal dos programas tem se revelado eficaz na busca de falhas. Neste trabalho é descrito um algoritmo de indução matemática conhecido como k-induction combinado ao uso de invariantes para verificar e refutar propriedades de segurança em programas desenvolvidos na linguagem ANSI-C. Em particular, a abordagem proposta infere invariantes no programa para auxiliar na verificação de programas ANSI-C através da técnica de indução matemática através do refinamento de restrição (i.e, poliédrico) para especificar pré- e pós-condições. No método proposto, adotamos dois geradores de invariantes para produzir e alimentar o algoritmo de indução matemática o qual é implementado na ferramenta Efficient SMT-Based Context-Bounded Model Checker. A motivação para a combinação de invariantes com o algoritmo de indução matemática é fechar um gap na verificação formal de programas que possuam variáveis globais, além de programas com loops que possuem desvios condicionais e o número de iterações é desconhecido. PIPS e PAGAI são as ferramentas utilizadas para analisar o código e produzir invariantes indutivas responsáveis por guiar o algoritmo de indução matemática na verificação do benchmark, sendo este o principal desafio do método proposto. Para avaliar a eficácia da abordagem proposta neste trabalho, além de aplicações de Sistemas Embarcados foram utilizados benchmarks públicos disponibilizados pela Competição Internacional de Verificação de Software onde participam Universidades, pesquisadores, estudandantes de doutorado de várias partes do mundo, e fornece amplo conjunto de casos de teste para verificação. Além disso, foram utilizadas ferramentas estado-da-arte para a comparação dos resultados e, assim mensurar a eficácia do método proposto. Os resultados experimentais foram positivos e mostraram que o algoritmo de indução matemática com invariantes pode verificar uma grande variedade de propriedades de segurança em programas com loops e aplicações de sistemas embarcados de telecomunicações, sistemas de controle e dispositivos médicos. 2018-03-21T17:40:50Z 2017-08-10 info:eu-repo/semantics/publishedVersion info:eu-repo/semantics/masterThesis MELO, Raimundo Williame Rocha de. Verificação de Programas Embarcados ANSI-C baseada em indução Matemática e Invariantes. 2017. 70 f. Dissertação (Mestrado em Engenharia Elétrica) - Universidade Federal do Amazonas, Manaus, 2017. https://tede.ufam.edu.br/handle/tede/6261 por -5930111888266832212 500 http://creativecommons.org/licenses/by-nc-nd/4.0/ info:eu-repo/semantics/openAccess application/pdf Universidade Federal do Amazonas Programa de Pós-graduação em Engenharia Elétrica UFAM Brasil Faculdade de Tecnologia reponame:Biblioteca Digital de Teses e Dissertações da UFAM instname:Universidade Federal do Amazonas instacron:UFAM |