Um modelo de referência para ferramenta de identificação de violações da lei de demeter

Uma das principais preocupações consideradas na Engenharia de Software consiste na redução do custo de manutenção durante seu ciclo de vida, que pode compreender até 67% de seu custo total. A qualidade interna do código-fonte de um software representa um dos aspectos relacionados ao seu grau de manu...

Full description

Bibliographic Details
Main Author: Roberto Pepato Mellado
Other Authors: Adilson Marques da Cunha
Format: Others
Language:Portuguese
Published: Instituto Tecnológico de Aeronáutica 2015
Subjects:
Online Access:http://www.bd.bibl.ita.br/tde_busca/arquivo.php?codArquivo=3233
Description
Summary:Uma das principais preocupações consideradas na Engenharia de Software consiste na redução do custo de manutenção durante seu ciclo de vida, que pode compreender até 67% de seu custo total. A qualidade interna do código-fonte de um software representa um dos aspectos relacionados ao seu grau de manutenibilidade. Características de seu design como sua estruturação e facilidade de compreensão podem influenciar o esforço associado à sua manutenção. Especialistas em projetos de sistemas Orientados a Objetos (OO) defendem que a manutenção de baixo acoplamento entre os módulos resultam em produtos de software mais confiáveis e manuteníveis. Ao longo dos anos, autores formularam heurísticas para auxiliar os programadores a realizarem a tarefa de controlar o acoplamento entre módulos de um software. Uma destas heurísticas, a Lei de Demeter (Law of Demeter - LoD), foi proposta com a motivação de favorecer a modularização de um software através de sua aplicação. A Análise Estática de Código (AES) consiste em uma dentre as possíveis abordagens para automação da verificação da aderência ou violação da LoD no código-fonte de um software. Entretanto, sua aplicaçãoo pode apre- sentar alguns desafios como longos tempos de execução de análise, ruído excessivo e taxas inaceitáveis de falsos-positivos. Neste trabalho de pesquisa, se investiga, concebe, implementa e verifica um framework, denominado Law Of Demeter Reduced (LoDRed), para identificação automatizada de violações da LoD utilizando AES e redução do volume de ruídos resultantes. Nele, propõe-se ainda uma extensão para LoD, a Extensão da Lei de Demeter (Law of Demeter Extension - LoD-E) com a finalidade de investigar, definir e suportar, sob a ótica da LoD, elementos para análise de algumas construções particulares de linguagens OO como generics e lambda expressions, além de considerar a aplicação de filtros sobre agrupamentos lógicos. O framework LoDRed consiste na principal contribuição desta pesquisa. Ele define um processo, composto por quatro métodos que, em conjunto, têm a finalidade de identificar e reportar, de forma automatizada, violações da LoD e da LoD-E nos códigos-fonte de softwares. A sua implementação resultou em três produtos de software de código aberto e foi verificada nesta pesquisa por meio da execução de um experimento que apresentou redução no volume de ruídos da ordem de até 95%.