Um método para verificação formal e dinâmica de sistemas de software concorrentes

Detalhes bibliográficos
Ano de defesa: 2016
Autor(a) principal: Santos, Bruno Roberto lattes
Orientador(a): Silva, Leandro Dias da lattes
Banca de defesa: Brito, Patrick Henrique da Silva lattes, Perkusich, Angelo lattes
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Federal de Alagoas
Programa de Pós-Graduação: Programa de Pós-Graduação em Modelagem Computacional de Conhecimento
Departamento: Não Informado pela instituição
País: Brasil
Palavras-chave em Português:
Área do conhecimento CNPq:
Link de acesso: http://www.repositorio.ufal.br/handle/riufal/1540
Resumo: Neste trabalho é apresentado um método para verificação formal e dinâmica de software concorrentes. O objetivo é oferecer um método capaz de identificar problemas inerentes a programas cuja execução baseia-se em múltiplas threads, além de analisar propriedades comportamentais descritas com base nos preceitos da lógica temporal. Propõe-se um método capaz de detectar problemas e verificar formalmente a adequação da execução de sistemas de software concorrentes com relação ao comportamento desejável a tais sistemas, baseando-se em informações coletadas dinamicamente, ou seja, em tempo de execução. As informações coletadas correspondem às sequências de execução de sistemas de software, bem como dados sobre a maneira como se comunicam seus componentes durante sua execução. Os dados colhidos refletem a execução do sistema de software propriamente dito, o que garante maior confiança às informações coletadas. Tais informações são analisadas de modo a identificar impasses e condições de corrida em um processo denominado Análise Dinâmica. Ademais, estas informações também são utilizadas para geração automática de um modelo que descreve o comportamento do sistema de software, o qual é utilizado para verificação de propriedades comportamentais. A este processo de verificação dá-se o nome de Verificação Formal. A geração automática do modelo elimina a necessidade de construção manual do mesmo, que requer muito esforço e conhecimento acerca de métodos formais, isso pode aumentar custos e tempo de desenvolvimento do sistema de software. Entretanto, a análise dinâmica é conhecida por apenas realizar cobertura sobre o comportamento atual de sistemas de software concorrentes, sem considerar a análise de todas as outras possíveis sequências de execuções devido ao não determinismo. Em razão do comportamento não determinístico, sistemas de software concorrentes são capazes de produzir resultados diferentes para a mesma entrada a cada nova execução. Deste modo, reproduzir o comportamento que leva sistemas de software concorrente à falha é uma tarefa complexa. O presente trabalho propõe um método para realizar verificação formal e dinâmica de sistemas de software concorrente capaz de capturar o comportamento não determinístico desses sistemas, além de proporcionar a redução de custos de desenvolvimento através da eliminação da necessidade de construção manual de modelos de sistemas de software concorrente. O método é validado através de um estudo de caso composto por testes em três sistemas de software.
id UFAL_19f10f0373964fbfe82d04d53073ed26
oai_identifier_str oai:www.repositorio.ufal.br:riufal/1540
network_acronym_str UFAL
network_name_str Repositório Institucional da Universidade Federal de Alagoas (UFAL)
repository_id_str
spelling Silva, Leandro Dias dahttp://lattes.cnpq.br/7856968264410259Ribeiro, Márcio de Medeiroshttp://lattes.cnpq.br/9300936571715992Brito, Patrick Henrique da Silvahttp://lattes.cnpq.br/4155051332618408Perkusich, Angelohttp://lattes.cnpq.br/9439858291700830http://lattes.cnpq.br/1897725328508650Santos, Bruno Roberto2017-01-23T15:05:21Z2017-01-232017-01-23T15:05:21Z2016-05-20SANTOS, Bruno Roberto. Um método para verificação formal e dinâmica de sistemas de software concorrentes. 2016. 77 f. Dissertação (Mestrado em Modelagem Computacional de Conhecimento) – Instituto de Computação, Programa Pós Graduação em Modelagem Computacional de Conhecimento, Universidade Federal de Alagoas, Maceió, 2016.http://www.repositorio.ufal.br/handle/riufal/1540Neste trabalho é apresentado um método para verificação formal e dinâmica de software concorrentes. O objetivo é oferecer um método capaz de identificar problemas inerentes a programas cuja execução baseia-se em múltiplas threads, além de analisar propriedades comportamentais descritas com base nos preceitos da lógica temporal. Propõe-se um método capaz de detectar problemas e verificar formalmente a adequação da execução de sistemas de software concorrentes com relação ao comportamento desejável a tais sistemas, baseando-se em informações coletadas dinamicamente, ou seja, em tempo de execução. As informações coletadas correspondem às sequências de execução de sistemas de software, bem como dados sobre a maneira como se comunicam seus componentes durante sua execução. Os dados colhidos refletem a execução do sistema de software propriamente dito, o que garante maior confiança às informações coletadas. Tais informações são analisadas de modo a identificar impasses e condições de corrida em um processo denominado Análise Dinâmica. Ademais, estas informações também são utilizadas para geração automática de um modelo que descreve o comportamento do sistema de software, o qual é utilizado para verificação de propriedades comportamentais. A este processo de verificação dá-se o nome de Verificação Formal. A geração automática do modelo elimina a necessidade de construção manual do mesmo, que requer muito esforço e conhecimento acerca de métodos formais, isso pode aumentar custos e tempo de desenvolvimento do sistema de software. Entretanto, a análise dinâmica é conhecida por apenas realizar cobertura sobre o comportamento atual de sistemas de software concorrentes, sem considerar a análise de todas as outras possíveis sequências de execuções devido ao não determinismo. Em razão do comportamento não determinístico, sistemas de software concorrentes são capazes de produzir resultados diferentes para a mesma entrada a cada nova execução. Deste modo, reproduzir o comportamento que leva sistemas de software concorrente à falha é uma tarefa complexa. O presente trabalho propõe um método para realizar verificação formal e dinâmica de sistemas de software concorrente capaz de capturar o comportamento não determinístico desses sistemas, além de proporcionar a redução de custos de desenvolvimento através da eliminação da necessidade de construção manual de modelos de sistemas de software concorrente. O método é validado através de um estudo de caso composto por testes em três sistemas de software.This work presents a method to perform formal and dynamic verification of concurrent software. The objective is to provide a method capable of identifying problems in programs whose execution is based on multiple threads, and analyze behavioral properties. The method is able to detect problems in concurrent software, as well as check conformity of the concurrent software with desirable behavior, based on information collected dynamically, i.e. at runtime. The information collected consists of the software execution flow as well as data about the way communicate the software components during this run. The data collected reflect the software's execution, which ensures greater confidence to the information collected. This information is analyzed to identify deadlocks and race conditions in a process called Dynamic Analysis. In addition, this information is also used to automatically generate a model that describes the behavior of a software, which is used for verification of behavioral properties. This process is called Formal Verification. The automatic model generation eliminates the need for manual construction of the model, which requires much effort and knowledge of formal methods, this can increase costs and development time software. However, the dynamic analysis is known to only perform coverage of the current behavior of competing software systems. Current behavior is one that occurs only during an execution of concurrent software systems, without considering all other possible behaviors from the non-determinism. Due to the non-determinism, concurrent software can produce different results for the same input to each execution of software. Therefore reproduce the behavior that leads to competitive software failure is a complex task. This paper proposes a method to perform formal verification and dynamic concurrent software capable of capturing the non-deterministic behavior of these systems and provide reduced development costs by eliminating the need for manual construction of concurrent software system models. The method is validated by a case study consists of three test software systems.Fundação de Amparo a Pesquisa do Estado de AlagoasporUniversidade Federal de AlagoasPrograma de Pós-Graduação em Modelagem Computacional de ConhecimentoUFALBrasilCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOVerificação formalSistemas concorrentesAnálise dinâmicaFormal verificationConcurrent systemsDynamic analysisUm método para verificação formal e dinâmica de sistemas de software concorrentesA method for formal and dynamic verification of concurrent software systemsinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da Universidade Federal de Alagoas (UFAL)instname:Universidade Federal de Alagoas (UFAL)instacron:UFALORIGINALUm método para verificação formal e dinâmica de sistemas .pdfUm método para verificação formal e dinâmica de sistemas .pdfapplication/pdf2015148http://www.repositorio.ufal.br/jspui/bitstream/riufal/1540/1/Um%20m%c3%a9todo%20para%20verifica%c3%a7%c3%a3o%20formal%20e%20din%c3%a2mica%20de%20sistemas%20.pdf1f77e57a622f995583d2dabb288e64d2MD51LICENSElicense.txtlicense.txttext/plain; charset=utf-81866http://www.repositorio.ufal.br/jspui/bitstream/riufal/1540/2/license.txt43cd690d6a359e86c1fe3d5b7cba0c9bMD52riufal/15402018-10-25 20:58:45.112oai:www.repositorio.ufal.br:riufal/1540TElDRU7Dh0EgREUgRElTVFJJQlVJw4fDg08gTsODTy1FWENMVVNJVkEKCkNvbSBhIGFwcmVzZW50YcOnw6NvIGRlc3RhIGxpY2Vuw6dhLCB2b2PDqiAobyBhdXRvciAoZXMpIG91IG8gdGl0dWxhciBkb3MgZGlyZWl0b3MgZGUgYXV0b3IpIGNvbmNlZGUgYW8gUmVwb3NpdMOzcmlvIApJbnN0aXR1Y2lvbmFsIG8gZGlyZWl0byBuw6NvLWV4Y2x1c2l2byBkZSByZXByb2R1emlyLCAgdHJhZHV6aXIgKGNvbmZvcm1lIGRlZmluaWRvIGFiYWl4byksIGUvb3UgZGlzdHJpYnVpciBhIApzdWEgcHVibGljYcOnw6NvIChpbmNsdWluZG8gbyByZXN1bW8pIHBvciB0b2RvIG8gbXVuZG8gbm8gZm9ybWF0byBpbXByZXNzbyBlIGVsZXRyw7RuaWNvIGUgZW0gcXVhbHF1ZXIgbWVpbywgaW5jbHVpbmRvIG9zIApmb3JtYXRvcyDDoXVkaW8gb3UgdsOtZGVvLgoKVm9jw6ogY29uY29yZGEgcXVlIG8gRGVwb3NpdGEgcG9kZSwgc2VtIGFsdGVyYXIgbyBjb250ZcO6ZG8sIHRyYW5zcG9yIGEgc3VhIHB1YmxpY2HDp8OjbyBwYXJhIHF1YWxxdWVyIG1laW8gb3UgZm9ybWF0byAKcGFyYSBmaW5zIGRlIHByZXNlcnZhw6fDo28uCgpWb2PDqiB0YW1iw6ltIGNvbmNvcmRhIHF1ZSBvIERlcG9zaXRhIHBvZGUgbWFudGVyIG1haXMgZGUgdW1hIGPDs3BpYSBkZSBzdWEgcHVibGljYcOnw6NvIHBhcmEgZmlucyBkZSBzZWd1cmFuw6dhLCBiYWNrLXVwIAplIHByZXNlcnZhw6fDo28uCgpWb2PDqiBkZWNsYXJhIHF1ZSBhIHN1YSBwdWJsaWNhw6fDo28gw6kgb3JpZ2luYWwgZSBxdWUgdm9jw6ogdGVtIG8gcG9kZXIgZGUgY29uY2VkZXIgb3MgZGlyZWl0b3MgY29udGlkb3MgbmVzdGEgbGljZW7Dp2EuIApWb2PDqiB0YW1iw6ltIGRlY2xhcmEgcXVlIG8gZGVww7NzaXRvIGRhIHN1YSBwdWJsaWNhw6fDo28gbsOjbywgcXVlIHNlamEgZGUgc2V1IGNvbmhlY2ltZW50bywgaW5mcmluZ2UgZGlyZWl0b3MgYXV0b3JhaXMgCmRlIG5pbmd1w6ltLgoKQ2FzbyBhIHN1YSBwdWJsaWNhw6fDo28gY29udGVuaGEgbWF0ZXJpYWwgcXVlIHZvY8OqIG7Do28gcG9zc3VpIGEgdGl0dWxhcmlkYWRlIGRvcyBkaXJlaXRvcyBhdXRvcmFpcywgdm9jw6ogZGVjbGFyYSBxdWUgCm9idGV2ZSBhIHBlcm1pc3PDo28gaXJyZXN0cml0YSBkbyBkZXRlbnRvciBkb3MgZGlyZWl0b3MgYXV0b3JhaXMgcGFyYSBjb25jZWRlciBhbyBEZXBvc2l0YSBvcyBkaXJlaXRvcyBhcHJlc2VudGFkb3MgCm5lc3RhIGxpY2Vuw6dhLCBlIHF1ZSBlc3NlIG1hdGVyaWFsIGRlIHByb3ByaWVkYWRlIGRlIHRlcmNlaXJvcyBlc3TDoSBjbGFyYW1lbnRlIGlkZW50aWZpY2FkbyBlIHJlY29uaGVjaWRvIG5vIHRleHRvIApvdSBubyBjb250ZcO6ZG8gZGEgcHVibGljYcOnw6NvIG9yYSBkZXBvc2l0YWRhLgoKQ0FTTyBBIFBVQkxJQ0HDh8ODTyBPUkEgREVQT1NJVEFEQSBURU5IQSBTSURPIFJFU1VMVEFETyBERSBVTSBQQVRST0PDjU5JTyBPVSBBUE9JTyBERSBVTUEgQUfDik5DSUEgREUgRk9NRU5UTyBPVSBPVVRSTyAKT1JHQU5JU01PLCBWT0PDiiBERUNMQVJBIFFVRSBSRVNQRUlUT1UgVE9ET1MgRSBRVUFJU1FVRVIgRElSRUlUT1MgREUgUkVWSVPDg08gQ09NTyBUQU1Cw4lNIEFTIERFTUFJUyBPQlJJR0HDh8OVRVMgCkVYSUdJREFTIFBPUiBDT05UUkFUTyBPVSBBQ09SRE8uCgpPIERlcG9zaXRhIHNlIGNvbXByb21ldGUgYSBpZGVudGlmaWNhciBjbGFyYW1lbnRlIG8gc2V1IG5vbWUgKHMpIG91IG8ocykgbm9tZShzKSBkbyhzKSBkZXRlbnRvcihlcykgZG9zIGRpcmVpdG9zIAphdXRvcmFpcyBkYSBwdWJsaWNhw6fDo28sIGUgbsOjbyBmYXLDoSBxdWFscXVlciBhbHRlcmHDp8OjbywgYWzDqW0gZGFxdWVsYXMgY29uY2VkaWRhcyBwb3IgZXN0YSBsaWNlbsOnYS4KRepositório InstitucionalPUBhttp://www.repositorio.ufal.br/oai/requestri@sibi.ufal.bropendoar:46482018-10-25T20:58:45Repositório Institucional da Universidade Federal de Alagoas (UFAL) - Universidade Federal de Alagoas (UFAL)false
dc.title.pt_BR.fl_str_mv Um método para verificação formal e dinâmica de sistemas de software concorrentes
dc.title.alternative.pt_BR.fl_str_mv A method for formal and dynamic verification of concurrent software systems
title Um método para verificação formal e dinâmica de sistemas de software concorrentes
spellingShingle Um método para verificação formal e dinâmica de sistemas de software concorrentes
Santos, Bruno Roberto
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
Verificação formal
Sistemas concorrentes
Análise dinâmica
Formal verification
Concurrent systems
Dynamic analysis
title_short Um método para verificação formal e dinâmica de sistemas de software concorrentes
title_full Um método para verificação formal e dinâmica de sistemas de software concorrentes
title_fullStr Um método para verificação formal e dinâmica de sistemas de software concorrentes
title_full_unstemmed Um método para verificação formal e dinâmica de sistemas de software concorrentes
title_sort Um método para verificação formal e dinâmica de sistemas de software concorrentes
author Santos, Bruno Roberto
author_facet Santos, Bruno Roberto
author_role author
dc.contributor.advisor1.fl_str_mv Silva, Leandro Dias da
dc.contributor.advisor1Lattes.fl_str_mv http://lattes.cnpq.br/7856968264410259
dc.contributor.advisor-co1.fl_str_mv Ribeiro, Márcio de Medeiros
dc.contributor.advisor-co1Lattes.fl_str_mv http://lattes.cnpq.br/9300936571715992
dc.contributor.referee1.fl_str_mv Brito, Patrick Henrique da Silva
dc.contributor.referee1Lattes.fl_str_mv http://lattes.cnpq.br/4155051332618408
dc.contributor.referee2.fl_str_mv Perkusich, Angelo
dc.contributor.referee2Lattes.fl_str_mv http://lattes.cnpq.br/9439858291700830
dc.contributor.authorLattes.fl_str_mv http://lattes.cnpq.br/1897725328508650
dc.contributor.author.fl_str_mv Santos, Bruno Roberto
contributor_str_mv Silva, Leandro Dias da
Ribeiro, Márcio de Medeiros
Brito, Patrick Henrique da Silva
Perkusich, Angelo
dc.subject.cnpq.fl_str_mv CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
topic CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
Verificação formal
Sistemas concorrentes
Análise dinâmica
Formal verification
Concurrent systems
Dynamic analysis
dc.subject.por.fl_str_mv Verificação formal
Sistemas concorrentes
Análise dinâmica
Formal verification
Concurrent systems
Dynamic analysis
description Neste trabalho é apresentado um método para verificação formal e dinâmica de software concorrentes. O objetivo é oferecer um método capaz de identificar problemas inerentes a programas cuja execução baseia-se em múltiplas threads, além de analisar propriedades comportamentais descritas com base nos preceitos da lógica temporal. Propõe-se um método capaz de detectar problemas e verificar formalmente a adequação da execução de sistemas de software concorrentes com relação ao comportamento desejável a tais sistemas, baseando-se em informações coletadas dinamicamente, ou seja, em tempo de execução. As informações coletadas correspondem às sequências de execução de sistemas de software, bem como dados sobre a maneira como se comunicam seus componentes durante sua execução. Os dados colhidos refletem a execução do sistema de software propriamente dito, o que garante maior confiança às informações coletadas. Tais informações são analisadas de modo a identificar impasses e condições de corrida em um processo denominado Análise Dinâmica. Ademais, estas informações também são utilizadas para geração automática de um modelo que descreve o comportamento do sistema de software, o qual é utilizado para verificação de propriedades comportamentais. A este processo de verificação dá-se o nome de Verificação Formal. A geração automática do modelo elimina a necessidade de construção manual do mesmo, que requer muito esforço e conhecimento acerca de métodos formais, isso pode aumentar custos e tempo de desenvolvimento do sistema de software. Entretanto, a análise dinâmica é conhecida por apenas realizar cobertura sobre o comportamento atual de sistemas de software concorrentes, sem considerar a análise de todas as outras possíveis sequências de execuções devido ao não determinismo. Em razão do comportamento não determinístico, sistemas de software concorrentes são capazes de produzir resultados diferentes para a mesma entrada a cada nova execução. Deste modo, reproduzir o comportamento que leva sistemas de software concorrente à falha é uma tarefa complexa. O presente trabalho propõe um método para realizar verificação formal e dinâmica de sistemas de software concorrente capaz de capturar o comportamento não determinístico desses sistemas, além de proporcionar a redução de custos de desenvolvimento através da eliminação da necessidade de construção manual de modelos de sistemas de software concorrente. O método é validado através de um estudo de caso composto por testes em três sistemas de software.
publishDate 2016
dc.date.issued.fl_str_mv 2016-05-20
dc.date.accessioned.fl_str_mv 2017-01-23T15:05:21Z
dc.date.available.fl_str_mv 2017-01-23
2017-01-23T15:05:21Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.citation.fl_str_mv SANTOS, Bruno Roberto. Um método para verificação formal e dinâmica de sistemas de software concorrentes. 2016. 77 f. Dissertação (Mestrado em Modelagem Computacional de Conhecimento) – Instituto de Computação, Programa Pós Graduação em Modelagem Computacional de Conhecimento, Universidade Federal de Alagoas, Maceió, 2016.
dc.identifier.uri.fl_str_mv http://www.repositorio.ufal.br/handle/riufal/1540
identifier_str_mv SANTOS, Bruno Roberto. Um método para verificação formal e dinâmica de sistemas de software concorrentes. 2016. 77 f. Dissertação (Mestrado em Modelagem Computacional de Conhecimento) – Instituto de Computação, Programa Pós Graduação em Modelagem Computacional de Conhecimento, Universidade Federal de Alagoas, Maceió, 2016.
url http://www.repositorio.ufal.br/handle/riufal/1540
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv Universidade Federal de Alagoas
dc.publisher.program.fl_str_mv Programa de Pós-Graduação em Modelagem Computacional de Conhecimento
dc.publisher.initials.fl_str_mv UFAL
dc.publisher.country.fl_str_mv Brasil
publisher.none.fl_str_mv Universidade Federal de Alagoas
dc.source.none.fl_str_mv reponame:Repositório Institucional da Universidade Federal de Alagoas (UFAL)
instname:Universidade Federal de Alagoas (UFAL)
instacron:UFAL
instname_str Universidade Federal de Alagoas (UFAL)
instacron_str UFAL
institution UFAL
reponame_str Repositório Institucional da Universidade Federal de Alagoas (UFAL)
collection Repositório Institucional da Universidade Federal de Alagoas (UFAL)
bitstream.url.fl_str_mv http://www.repositorio.ufal.br/jspui/bitstream/riufal/1540/1/Um%20m%c3%a9todo%20para%20verifica%c3%a7%c3%a3o%20formal%20e%20din%c3%a2mica%20de%20sistemas%20.pdf
http://www.repositorio.ufal.br/jspui/bitstream/riufal/1540/2/license.txt
bitstream.checksum.fl_str_mv 1f77e57a622f995583d2dabb288e64d2
43cd690d6a359e86c1fe3d5b7cba0c9b
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
repository.name.fl_str_mv Repositório Institucional da Universidade Federal de Alagoas (UFAL) - Universidade Federal de Alagoas (UFAL)
repository.mail.fl_str_mv ri@sibi.ufal.br
_version_ 1785016980854538240