Use este identificador para citar ou linkar para este item: http://repositorio.ufc.br/handle/riufc/66700
Tipo: Dissertação
Título: 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
Título em inglês: A two-level approach based on model checking of a modal logic to support software architecture conformance checking
Autor(es): Rocha, Bruno Menezes
Orientador: Matins, Ana Teresa de Castro
Coorientador: Rocha, Thiago Alves
Palavras-chave: Verificação formal;Verificação de modelos;Conformidade arquitetural de software;Lógicas temporais;Lógicas híbridas
Data do documento: 2021
Citação: 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.
Resumo: 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.
Abstract: 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.
URI: http://www.repositorio.ufc.br/handle/riufc/66700
Aparece nas coleções:DCOMP - Dissertações defendidas na UFC

Arquivos associados a este item:
Arquivo Descrição TamanhoFormato 
2021_dis_bmrocha.pdf1,49 MBAdobe PDFVisualizar/Abrir


Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.