[pt] A demanda por desenvolvimento de software incremental tem impulsionado a busca por técnicas de programação avançadas, tais como programação orientada a aspectos e programação orientada a características. Estas técnicas têm por objetivo apoiar a implementação de mudanças de software de forma localizada, a fim de promover a estabilidade do programa. Para atingir este objetivo, elas oferecem uma grande variedade de sofisticados mecanismos de composição, que fornecem meios para definir de forma flexível a composição de dois ou mais módulos de um programa. No entanto, dada a complexidade do código composição resultante, a definição inicial e alterações posteriores na especificação de uma simples composição podem afetar a estrutura e o comportamento de vários módulos, prejudicando assim a estabilidade do programa. Um fator complicador é que essas mudanças geralmente exigem raciocínio sobre certas propriedades da composição, que não estão explícitas nos artefatos de implementação ou de projeto. Infelizmente, não há conhecimento do estado da arte sobre as propriedades da composição que afetam positivamente ou negativamente a estabilidade do programa. Esse entendimento não é possível ainda, uma vez que: (i) não há uma caracterização conceitual e meios de quantificação referentes às propriedades do código de composição, e (ii) não há nenhuma investigação empírica sobre a influência dessas propriedades na estabilidade do programa. Um efeito colateral dessas lacunas é que os desenvolvedores têm recorrido a métricas convencionais, tais como o acoplamento, para determinar ou prever a estabilidade de um programa implementado usando técnicas de programação avançadas. Neste contexto, a presente tese apresenta três contribuições. Primeiro, são apresentados os resultados de um estudo empírico, revelando que as métricas convencionais utilizadas, tais como acoplamento, não são indicadores eficazes de estabilidade quando técnicas avançadas de programação são usadas. Em segundo lugar, é apresentado um arcabouço de medição que engloba um conjunto de métricas de composição destinado a quantificar as propriedades do código de composição. Este arcabouço foi desenvolvido com base em uma metamodelo e uma terminologia usada para caracterizar os elementos e propriedades do código de composição. Trata-se de um arcabouço extensível e que pode ser usado independente da técnica de programação adotada. Terceiro, nós também investigamos meios para aliviar o esforço de manutenção quando mudanças relacionadas ao código de composição precisam ser realizadas.Nesta investigação, nós avaliamos se modelos enriquecidos com a especificação das propriedades de composição ajudam os desenvolvedores a melhorar a estabilidade do programa em suas tarefas de manutenção. / [en] The demand for incremental software development has driven a search for advanced programming techniques, such as aspect-oriented programming and feature-oriented programming. These techniques share the goal of supporting localized implementation of software changes in order to promote program stability. To achieve this goal, they offer a wide range of sophisticated composition mechanisms, which provide means to flexibly define the composition of two or more modules in a program. However, given the complexity of the resulting composition code, the initial definition and further changes to a single composition specification might affect the structure and behaviour of multiple modules, thereby harming the program stability. A complicating factor is that those changes often require some reasoning about certain composition properties, which are not explicit in the implementation or design artefacts. Unfortunately, there is no understanding in the state of the art about the composition properties that affect positively or negatively the program stability. This understanding is not yet possible as: (i) there is no conceptual characterization and quantification means for composition code properties, and (ii) there is no empirical investigation on the influence of these properties on program stability. A side effect of these gaps is that developers have resorted to conventional metrics, such as coupling, to determine or predict the stability of a program implemented with advanced programming techniques. In this context, this thesis presents three contributions to overcome the aforementioned problems. First, we have developed an empirical study revealing that widely-used metrics, such as coupling, are not effective indicators of stability when advanced programming techniques are used. Second, we propose a measurement framework encompassing a suite of composition metrics intended to quantify properties of the composition code. This framework is based on a meta-model and terminology for characterizing the elements and properties of the composition code. This framework is extensible and agnostic to particular programming techniques. Third, we also investigate how to alleviate the maintenance effort in performing changes related to the composition code. We evaluate if the availability of design models enriched with specification of composition properties help developers to improve program stability in their maintenance tasks.
Identifer | oai:union.ndltd.org:puc-rio.br/oai:MAXWELL.puc-rio.br:28723 |
Date | 17 January 2017 |
Creators | FRANCISCO DANTAS DE MEDEIROS NETO |
Contributors | ALESSANDRO FABRICIO GARCIA, ALESSANDRO FABRICIO GARCIA |
Publisher | MAXWELL |
Source Sets | PUC Rio |
Language | English |
Detected Language | Portuguese |
Type | TEXTO |
Page generated in 0.0023 seconds