Uma abordagem de dois níveis baseada em verificação de modelos de uma lógica modal para auxiliar na análise de conformidade arquitetural de software

Detalhes bibliográficos
Autor(a) principal: Rocha, Bruno Menezes
Data de Publicação: 2021
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Repositório Institucional da Universidade Federal do Ceará (UFC)
Texto Completo: http://www.repositorio.ufc.br/handle/riufc/66700
Resumo: Formal methods are fundamental to ensure that software systems behave as expected. These methods are used to identify errors in system design and to certificate that systems follow the proper requirements. In Software Engineering, preserving the correspondence between the design architecture and the architecture indeed implemented by software developers is a crucial issue. Architecture Conformance Checking is the process of checking if these two architectures are in accordance along the software development course. We propose a Model Checking based method to aid Architecture Conformance Checking, which is a fundamental analysis to ensure software quality, dependability and maintainability. In this work, a new logic, which combines temporal logic, hybrid logic and a new logical operator in order to formalize software specifications, is proposed. The method described in this paper uses two structures, namely call graphs and software version graphs. The first one is used to check specifications related to classes and methods and we apply it intending to analyze a specific software version. The latter one gives us an overview of the software development process and we employ it to check global software requirements. These two graphs allow us to design a two-level checking method. The first level deals with specifications of a single software version that must be inspected in the call graph. The second level handles the global requirements throughout all software versions. Using our new operator and a function, we are able to use the same logic in both levels, allowing them to communicate with each other and handle the verification process in a neat and uniform manner. Our two-level approach is the great differential of this work, since the current approaches available in the literature focus on an unique software version at a time. We also present an algorithm, which has polynomial time complexity, to perform Model Checking for our proposed temporal logic.
id UFC-7_ed40b7856c152eaf46278bab16f7e77e
oai_identifier_str oai:repositorio.ufc.br:riufc/66700
network_acronym_str UFC-7
network_name_str Repositório Institucional da Universidade Federal do Ceará (UFC)
repository_id_str
spelling Uma abordagem de dois níveis baseada em verificação de modelos de uma lógica modal para auxiliar na análise de conformidade arquitetural de softwareA two-level approach based on model checking of a modal logic to support software architecture conformance checkingVerificação formalVerificação de modelosConformidade arquitetural de softwareLógicas temporaisLógicas híbridasFormal methods are fundamental to ensure that software systems behave as expected. These methods are used to identify errors in system design and to certificate that systems follow the proper requirements. In Software Engineering, preserving the correspondence between the design architecture and the architecture indeed implemented by software developers is a crucial issue. Architecture Conformance Checking is the process of checking if these two architectures are in accordance along the software development course. We propose a Model Checking based method to aid Architecture Conformance Checking, which is a fundamental analysis to ensure software quality, dependability and maintainability. In this work, a new logic, which combines temporal logic, hybrid logic and a new logical operator in order to formalize software specifications, is proposed. The method described in this paper uses two structures, namely call graphs and software version graphs. The first one is used to check specifications related to classes and methods and we apply it intending to analyze a specific software version. The latter one gives us an overview of the software development process and we employ it to check global software requirements. These two graphs allow us to design a two-level checking method. The first level deals with specifications of a single software version that must be inspected in the call graph. The second level handles the global requirements throughout all software versions. Using our new operator and a function, we are able to use the same logic in both levels, allowing them to communicate with each other and handle the verification process in a neat and uniform manner. Our two-level approach is the great differential of this work, since the current approaches available in the literature focus on an unique software version at a time. We also present an algorithm, which has polynomial time complexity, to perform Model Checking for our proposed temporal logic.Métodos de verificação formal são essenciais para garantir que sistemas de software se comportem da maneira esperada. Tais métodos são utilizados na identificação de erros nos projetos dos sistemas e na comprovação que os sistemas funcionam da maneira esperada, o que aumenta a confiabilidade dos mesmos. Em Engenharia de Software, manter a correspondência entre a arquitetura de software planejada e a arquitetura que está sendo implementada é essencial para garantir a credibilidade do sistema, permitir reuso de componentes de software e criar sistemas que sejam fáceis de atualizar. Análise de Conformidade Arquitetural de Software é o processo de avaliar se a arquitetura do projeto e a arquitetura implementada estão de acordo. Neste texto, propomos uma maneira de utilizar o método de verificação formal conhecido como Verificação de Modelos para auxiliar na análise da Conformidade Arquitetural. Para formalizar as especificações, propomos uma lógica que combina conectivos de lógicas temporais, conectivos de lógicas híbridas e um operador definido neste trabalho. Para representar o sistema, usamos grafos de chamadas, que nos permitem verificar especificações de Conformidade Arquitetural relacionadas às classes e aos métodos de um sistema. Por exemplo, mostramos como formalizar especificações a respeito de padrões arquiteturais usando fórmulas da lógica que desenvolvemos com no máximo quatro conectivos temporais e simples de serem compreendidas. Grafos de versões são estruturas usadas para organizar o processo de desenvolvimento de sistemas. Aplicamos essas estruturas na verificação de requisitos globais a respeito do desenvolvimento de software, ou seja, especificações que contemplam várias versões. Combinando essas duas estruturas, desenvolvemos dois níveis de verificação: um nível que lida com uma versão específica de software e usa como base os grafos de chamadas e um nível que trata de várias versões de software por meio da síntese das mesmas no grafo de versões. Utilizando o operador proposto neste trabalho e uma função, conseguimos tratar esses dois níveis de maneira homogênea e elegante, utilizando uma única lógica em ambos, ao realizar a Verificação de Modelos tendo as duas estruturas citadas como base. Essa metodologia com dois níveis de verificação é a inovação deste trabalho quando comparado com outros trabalhos disponíveis na literatura de Análise de Conformidade Arquitetural: aqui, levamos em consideração a evolução do desenvolvimento do sistema. A metodologia que propomos é genérica ao funcionar como um framework que permite a análise de outros aspectos do sistema trocando o grafo de versões por uma estrutura adequada. Apresentamos um algoritmo de tempo polinomial para a Verificação de Modelos com a lógica desenvolvida. A análise de complexidade do algoritmo demonstra que conseguimos conciliar expressividade e complexidade de uma maneira que pode ser aplicada na prática.Matins, Ana Teresa de CastroRocha, Thiago AlvesRocha, Bruno Menezes2022-06-27T11:54:04Z2022-06-27T11:54:04Z2021info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfROCHA, Bruno Menezes. Uma abordagem de dois níveis baseada em verificação de modelos de uma lógica modal para auxiliar na análise de conformidade arquitetural de software. 2021. 117 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal do Ceará, Fortaleza, 2021.http://www.repositorio.ufc.br/handle/riufc/66700porreponame:Repositório Institucional da Universidade Federal do Ceará (UFC)instname:Universidade Federal do Ceará (UFC)instacron:UFCinfo:eu-repo/semantics/openAccess2022-06-27T11:54:04Zoai:repositorio.ufc.br:riufc/66700Repositório InstitucionalPUBhttp://www.repositorio.ufc.br/ri-oai/requestbu@ufc.br || repositorio@ufc.bropendoar:2024-09-11T18:52:11.678204Repositório Institucional da Universidade Federal do Ceará (UFC) - Universidade Federal do Ceará (UFC)false
dc.title.none.fl_str_mv Uma abordagem de dois níveis baseada em verificação de modelos de uma lógica modal para auxiliar na análise de conformidade arquitetural de software
A two-level approach based on model checking of a modal logic to support software architecture conformance checking
title Uma abordagem de dois níveis baseada em verificação de modelos de uma lógica modal para auxiliar na análise de conformidade arquitetural de software
spellingShingle Uma abordagem de dois níveis baseada em verificação de modelos de uma lógica modal para auxiliar na análise de conformidade arquitetural de software
Rocha, Bruno Menezes
Verificação formal
Verificação de modelos
Conformidade arquitetural de software
Lógicas temporais
Lógicas híbridas
title_short Uma abordagem de dois níveis baseada em verificação de modelos de uma lógica modal para auxiliar na análise de conformidade arquitetural de software
title_full Uma abordagem de dois níveis baseada em verificação de modelos de uma lógica modal para auxiliar na análise de conformidade arquitetural de software
title_fullStr Uma abordagem de dois níveis baseada em verificação de modelos de uma lógica modal para auxiliar na análise de conformidade arquitetural de software
title_full_unstemmed Uma abordagem de dois níveis baseada em verificação de modelos de uma lógica modal para auxiliar na análise de conformidade arquitetural de software
title_sort Uma abordagem de dois níveis baseada em verificação de modelos de uma lógica modal para auxiliar na análise de conformidade arquitetural de software
author Rocha, Bruno Menezes
author_facet Rocha, Bruno Menezes
author_role author
dc.contributor.none.fl_str_mv Matins, Ana Teresa de Castro
Rocha, Thiago Alves
dc.contributor.author.fl_str_mv Rocha, Bruno Menezes
dc.subject.por.fl_str_mv Verificação formal
Verificação de modelos
Conformidade arquitetural de software
Lógicas temporais
Lógicas híbridas
topic Verificação formal
Verificação de modelos
Conformidade arquitetural de software
Lógicas temporais
Lógicas híbridas
description Formal methods are fundamental to ensure that software systems behave as expected. These methods are used to identify errors in system design and to certificate that systems follow the proper requirements. In Software Engineering, preserving the correspondence between the design architecture and the architecture indeed implemented by software developers is a crucial issue. Architecture Conformance Checking is the process of checking if these two architectures are in accordance along the software development course. We propose a Model Checking based method to aid Architecture Conformance Checking, which is a fundamental analysis to ensure software quality, dependability and maintainability. In this work, a new logic, which combines temporal logic, hybrid logic and a new logical operator in order to formalize software specifications, is proposed. The method described in this paper uses two structures, namely call graphs and software version graphs. The first one is used to check specifications related to classes and methods and we apply it intending to analyze a specific software version. The latter one gives us an overview of the software development process and we employ it to check global software requirements. These two graphs allow us to design a two-level checking method. The first level deals with specifications of a single software version that must be inspected in the call graph. The second level handles the global requirements throughout all software versions. Using our new operator and a function, we are able to use the same logic in both levels, allowing them to communicate with each other and handle the verification process in a neat and uniform manner. Our two-level approach is the great differential of this work, since the current approaches available in the literature focus on an unique software version at a time. We also present an algorithm, which has polynomial time complexity, to perform Model Checking for our proposed temporal logic.
publishDate 2021
dc.date.none.fl_str_mv 2021
2022-06-27T11:54:04Z
2022-06-27T11:54:04Z
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.uri.fl_str_mv ROCHA, Bruno Menezes. Uma abordagem de dois níveis baseada em verificação de modelos de uma lógica modal para auxiliar na análise de conformidade arquitetural de software. 2021. 117 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal do Ceará, Fortaleza, 2021.
http://www.repositorio.ufc.br/handle/riufc/66700
identifier_str_mv ROCHA, Bruno Menezes. Uma abordagem de dois níveis baseada em verificação de modelos de uma lógica modal para auxiliar na análise de conformidade arquitetural de software. 2021. 117 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal do Ceará, Fortaleza, 2021.
url http://www.repositorio.ufc.br/handle/riufc/66700
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.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Institucional da Universidade Federal do Ceará (UFC)
instname:Universidade Federal do Ceará (UFC)
instacron:UFC
instname_str Universidade Federal do Ceará (UFC)
instacron_str UFC
institution UFC
reponame_str Repositório Institucional da Universidade Federal do Ceará (UFC)
collection Repositório Institucional da Universidade Federal do Ceará (UFC)
repository.name.fl_str_mv Repositório Institucional da Universidade Federal do Ceará (UFC) - Universidade Federal do Ceará (UFC)
repository.mail.fl_str_mv bu@ufc.br || repositorio@ufc.br
_version_ 1813028977693949952