1 |
Deriving refactorings for aspectJCole Neto, Leonardo January 2005 (has links)
Made available in DSpace on 2014-06-12T16:00:59Z (GMT). No. of bitstreams: 2
arquivo7122_1.pdf: 1649883 bytes, checksum: 5e4109867fef651c2cd98d144b166e55 (MD5)
license.txt: 1748 bytes, checksum: 8a4605be74aa9ea9d79846c1fba20a33 (MD5)
Previous issue date: 2005 / Refactoring tem sido muito útil na reestruturação de programas orientados a objetos. Esta técnica pode proporcionar benefícios similares aos programas orientados a aspectos. Sendo assim, refactoring pode ser uma técnica interessante para introduzir aspectos em uma aplicação existente, orientada a objetos. No intuito de explorar os benefícios proporcionados pelos refactorings, desenvolvedores de aplicações orientadas a aspectos estão identificando transformações comuns para tais aplicações, em sua maioria, para a linguagem AspectJ, uma linguagem orientada a aspectos de propósito geral que estende Java. No entanto, estas transformações não possuem suporte para garantir que preservam o comportamento externo da aplicação. Tal propriedade garante que as transformações são de fato refactorings. Este trabalho foca neste problema e introduz leis de programação para AspectJ que podem ser usadas para derivar transformações que preservam comportamento (refactorings) para um subconjunto desta linguagem. Leis de programação definem equivalência entre dois programas, desde que algumas restrições sejam respeitadas. Nosso conjunto de leis não somente define como introduzir ou remover construções de AspectJ, como também como reestruturar aplicações nesta linguagem. Aplicando e compondo as leis, pode-se mostrar que uma transformação AspectJ é de fato um refactoring. Leis são apropriadas para isso pois são bem mais simples do que a maioria dos refactorings. Comparando com refactorings, as leis envolvem transformações localizadas e somente uma construção da linguagem por vez, além de seram bi-direcionais. As leis formam uma base para a definição de refactorings com uma certa confiança de que estes preservam comportamento. Nós avaliamos as leis de duas formas. A primeira utiliza as leis para derivar refactorings já existentes na literatura. Isto ajuda a definir com mais precisão as precondições associadas a estes refactorings, alem de verificar se eles preservam comportamento. A segunda forma de avaliação utiliza as leis e alguns refactorings derivados destas para reestruturar duas aplicações Java. A implementação de comportamento transversal nestas aplicações é reestruturada utilizando construções de AspectJ para tornar tal comportamento modular. Isto ilustra que as leis podem também ser úteis para transformar aplicações orientadas a objetos em aplicações orientadas a aspectos
|
2 |
Um método de refatoração para modularização de interesses transversais / A refactoring method for crosscutting concerns modularisationSilva, Bruno Carreiro da January 2009 (has links)
Sistemas de software bem modularizados podem trazer diversos benefícios como reu- sabilidade, compreensão, adaptabilidade, manutenibilidade, entre outros. O conceito de separação de interesses está diretamente ligado à ideia de modularização e consiste na capacidade de manter cada interesse em sua própria unidade modular. Um interesse pode estar relacionado tanto a requisitos funcionais como não-funcionais e em diferentes níveis de abstração. Algumas das técnicas que têm sido utilizadas para modularização de interes- ses são a Programação Orientada a Aspectos (POA) e Refatoração. Entretanto, a maioria das propostas de refatoração que envolvem a POA possui limitações para a modularização de interesses transversais: muitas delas são de granularidade fina; algumas são definidas imprecisamente e possuem sobreposição de intenções. A seleção e composição de tais refatorações para a modularização de interesses é uma tarefa difícil e não-trivial, além de variar em cada contexto específico, o que dificulta o reuso. Algumas das propostas de refatorações são voltadas especialmente para interesses transversais, no entanto possuem um nível de abstração pouco elevado e encontram-se acopladas a mecanismos específicos de linguagens de programação OO e OA. Adicionalmente, a aplicação de refatorações deve ser planejada e acompanhada sistematicamente durante o desenvolvimento e manu- tenção de um software, pois envolve alocação de recursos e avaliação de custo/benefício. O objetivo deste trabalho é apresentar um método de refatoração para modularização de interesses transversais, através de refatorações de granularidade alta, baseado em padrões recorrentes de estruturas transversais (chamados de sintomas). Além disso, como parte do método, propõem-se algoritmos para análise de impacto a fim de apoiar desenvolve- dores no processo decisório de aplicação de refatorações candidatas. Inicialmente, dois estudos bibliográficos foram conduzidos: o primeiro sobre propostas de refatorações que envolvem aspectos e o segundo sobre trabalhos de medição de interesses. Dois estudos de caso foram realizados totalizando 22 interesses de dois sistemas alvos. Este trabalho de avaliação possibilitou uma análise quantitativa e qualitativa dos resultados onde foi possível verificar a aplicabilidade do proposta. / Well-modularized software systems can bring several benefits such as reuse, com- prehension, adaptability, maintainability, among others. The concept of separation of concerns refers to the idea of modularisation, which consists on the ability to keep every concern in its own modular unit. A concern can refer to functional and non-functional requirements and can also be in different abstraction levels. Some of the techniques which have been applied for crosscutting concerns modularization are Aspect-Oriented Programming (AOP) and Refactoring. However, most of the aspect-oriented refactor- ings have limitations regarding the modularisation of crosscutting concerns. A number of them presents fine-grained transformations. While some of them are well-documented catalogues, a number of them are defined imprecisely, addressing the same situation and having overlapping intentions. They do not allow the designer to holistically reason about the elements involved in a crosscutting concern. It becomes difficult and non-trivial to choose a set of fine-grained refactorings and organize them in a feasible order to achieve the concern modularisation in a specific context. Some of the refactoring techniques are particularly focused on crosscutting concerns, however they are not placed in a suf- ficient abstraction level. Moreover they are coupled to specific OO and AO language mechanisms. Additionally, the application of refactorings should be planned and realized systematically during software development and maintenance since it involves resource allocation and tradeoff analysis. The goal of this work is to present a refactoring method for crosscutting concerns modularisation, through coarse-grained refactorings based on recurring patterns of crosscutting shapes (called symptoms). Also, as part of the method, algorithms for change-impact analysis are proposed in order to support developers during the decision process of the application of refactoring candidates. Initially, two biblio- graphic studies were made: the first one about refactoring approaches which involve as- pects, and the second one about concern measurement techniques. Two case studies were carried out totalizing 22 concerns of two target systems. This evaluation work allowed a quantitative and qualitative analysis of the results. Thus it was possible to verify the applicability of our approach.
|
3 |
Um método de refatoração para modularização de interesses transversais / A refactoring method for crosscutting concerns modularisationSilva, Bruno Carreiro da January 2009 (has links)
Sistemas de software bem modularizados podem trazer diversos benefícios como reu- sabilidade, compreensão, adaptabilidade, manutenibilidade, entre outros. O conceito de separação de interesses está diretamente ligado à ideia de modularização e consiste na capacidade de manter cada interesse em sua própria unidade modular. Um interesse pode estar relacionado tanto a requisitos funcionais como não-funcionais e em diferentes níveis de abstração. Algumas das técnicas que têm sido utilizadas para modularização de interes- ses são a Programação Orientada a Aspectos (POA) e Refatoração. Entretanto, a maioria das propostas de refatoração que envolvem a POA possui limitações para a modularização de interesses transversais: muitas delas são de granularidade fina; algumas são definidas imprecisamente e possuem sobreposição de intenções. A seleção e composição de tais refatorações para a modularização de interesses é uma tarefa difícil e não-trivial, além de variar em cada contexto específico, o que dificulta o reuso. Algumas das propostas de refatorações são voltadas especialmente para interesses transversais, no entanto possuem um nível de abstração pouco elevado e encontram-se acopladas a mecanismos específicos de linguagens de programação OO e OA. Adicionalmente, a aplicação de refatorações deve ser planejada e acompanhada sistematicamente durante o desenvolvimento e manu- tenção de um software, pois envolve alocação de recursos e avaliação de custo/benefício. O objetivo deste trabalho é apresentar um método de refatoração para modularização de interesses transversais, através de refatorações de granularidade alta, baseado em padrões recorrentes de estruturas transversais (chamados de sintomas). Além disso, como parte do método, propõem-se algoritmos para análise de impacto a fim de apoiar desenvolve- dores no processo decisório de aplicação de refatorações candidatas. Inicialmente, dois estudos bibliográficos foram conduzidos: o primeiro sobre propostas de refatorações que envolvem aspectos e o segundo sobre trabalhos de medição de interesses. Dois estudos de caso foram realizados totalizando 22 interesses de dois sistemas alvos. Este trabalho de avaliação possibilitou uma análise quantitativa e qualitativa dos resultados onde foi possível verificar a aplicabilidade do proposta. / Well-modularized software systems can bring several benefits such as reuse, com- prehension, adaptability, maintainability, among others. The concept of separation of concerns refers to the idea of modularisation, which consists on the ability to keep every concern in its own modular unit. A concern can refer to functional and non-functional requirements and can also be in different abstraction levels. Some of the techniques which have been applied for crosscutting concerns modularization are Aspect-Oriented Programming (AOP) and Refactoring. However, most of the aspect-oriented refactor- ings have limitations regarding the modularisation of crosscutting concerns. A number of them presents fine-grained transformations. While some of them are well-documented catalogues, a number of them are defined imprecisely, addressing the same situation and having overlapping intentions. They do not allow the designer to holistically reason about the elements involved in a crosscutting concern. It becomes difficult and non-trivial to choose a set of fine-grained refactorings and organize them in a feasible order to achieve the concern modularisation in a specific context. Some of the refactoring techniques are particularly focused on crosscutting concerns, however they are not placed in a suf- ficient abstraction level. Moreover they are coupled to specific OO and AO language mechanisms. Additionally, the application of refactorings should be planned and realized systematically during software development and maintenance since it involves resource allocation and tradeoff analysis. The goal of this work is to present a refactoring method for crosscutting concerns modularisation, through coarse-grained refactorings based on recurring patterns of crosscutting shapes (called symptoms). Also, as part of the method, algorithms for change-impact analysis are proposed in order to support developers during the decision process of the application of refactoring candidates. Initially, two biblio- graphic studies were made: the first one about refactoring approaches which involve as- pects, and the second one about concern measurement techniques. Two case studies were carried out totalizing 22 concerns of two target systems. This evaluation work allowed a quantitative and qualitative analysis of the results. Thus it was possible to verify the applicability of our approach.
|
4 |
Um método de refatoração para modularização de interesses transversais / A refactoring method for crosscutting concerns modularisationSilva, Bruno Carreiro da January 2009 (has links)
Sistemas de software bem modularizados podem trazer diversos benefícios como reu- sabilidade, compreensão, adaptabilidade, manutenibilidade, entre outros. O conceito de separação de interesses está diretamente ligado à ideia de modularização e consiste na capacidade de manter cada interesse em sua própria unidade modular. Um interesse pode estar relacionado tanto a requisitos funcionais como não-funcionais e em diferentes níveis de abstração. Algumas das técnicas que têm sido utilizadas para modularização de interes- ses são a Programação Orientada a Aspectos (POA) e Refatoração. Entretanto, a maioria das propostas de refatoração que envolvem a POA possui limitações para a modularização de interesses transversais: muitas delas são de granularidade fina; algumas são definidas imprecisamente e possuem sobreposição de intenções. A seleção e composição de tais refatorações para a modularização de interesses é uma tarefa difícil e não-trivial, além de variar em cada contexto específico, o que dificulta o reuso. Algumas das propostas de refatorações são voltadas especialmente para interesses transversais, no entanto possuem um nível de abstração pouco elevado e encontram-se acopladas a mecanismos específicos de linguagens de programação OO e OA. Adicionalmente, a aplicação de refatorações deve ser planejada e acompanhada sistematicamente durante o desenvolvimento e manu- tenção de um software, pois envolve alocação de recursos e avaliação de custo/benefício. O objetivo deste trabalho é apresentar um método de refatoração para modularização de interesses transversais, através de refatorações de granularidade alta, baseado em padrões recorrentes de estruturas transversais (chamados de sintomas). Além disso, como parte do método, propõem-se algoritmos para análise de impacto a fim de apoiar desenvolve- dores no processo decisório de aplicação de refatorações candidatas. Inicialmente, dois estudos bibliográficos foram conduzidos: o primeiro sobre propostas de refatorações que envolvem aspectos e o segundo sobre trabalhos de medição de interesses. Dois estudos de caso foram realizados totalizando 22 interesses de dois sistemas alvos. Este trabalho de avaliação possibilitou uma análise quantitativa e qualitativa dos resultados onde foi possível verificar a aplicabilidade do proposta. / Well-modularized software systems can bring several benefits such as reuse, com- prehension, adaptability, maintainability, among others. The concept of separation of concerns refers to the idea of modularisation, which consists on the ability to keep every concern in its own modular unit. A concern can refer to functional and non-functional requirements and can also be in different abstraction levels. Some of the techniques which have been applied for crosscutting concerns modularization are Aspect-Oriented Programming (AOP) and Refactoring. However, most of the aspect-oriented refactor- ings have limitations regarding the modularisation of crosscutting concerns. A number of them presents fine-grained transformations. While some of them are well-documented catalogues, a number of them are defined imprecisely, addressing the same situation and having overlapping intentions. They do not allow the designer to holistically reason about the elements involved in a crosscutting concern. It becomes difficult and non-trivial to choose a set of fine-grained refactorings and organize them in a feasible order to achieve the concern modularisation in a specific context. Some of the refactoring techniques are particularly focused on crosscutting concerns, however they are not placed in a suf- ficient abstraction level. Moreover they are coupled to specific OO and AO language mechanisms. Additionally, the application of refactorings should be planned and realized systematically during software development and maintenance since it involves resource allocation and tradeoff analysis. The goal of this work is to present a refactoring method for crosscutting concerns modularisation, through coarse-grained refactorings based on recurring patterns of crosscutting shapes (called symptoms). Also, as part of the method, algorithms for change-impact analysis are proposed in order to support developers during the decision process of the application of refactoring candidates. Initially, two biblio- graphic studies were made: the first one about refactoring approaches which involve as- pects, and the second one about concern measurement techniques. Two case studies were carried out totalizing 22 concerns of two target systems. This evaluation work allowed a quantitative and qualitative analysis of the results. Thus it was possible to verify the applicability of our approach.
|
5 |
Active Behavior in a Configurable Real-Time Database for Embedded SystemsDu, Ying January 2006 (has links)
<p>An embedded system is an application-specific system that is typically dedicated to performing a particular task. Majority of embedded systems are also real-time, implying that timeliness in the system need to be enforced. An embedded system needs to be enforced efficient management of a large amount of data, including maintenance of data freshness in an environment with limited CPU and memory resources. Uniform and efficient data maintenance can be ensured by integrating database management functionality with the system. Furthermore, the resources can be utilized more efficiently if the redundant calculations can be avoided. On-demand updating and active behavior are two solutions that aim at decreasing the number of calculations on data items in embedded systems.</p><p>COMET is a COMponent-based Embedded real-Time database, developed to meet the increasing requirements for efficient data management in embedded real-time systems. The COMET platform has been developed using a novel software engineering technique, AspeCtual COmponent-based Real-time software Development (ACCORD), which enables creating database configurations, using software components and aspects from the library, based on the requirements of an application. Although COMET provides uniform and efficient data management for real-time and embedded systems, it does not provide support for on-demand and active behavior.</p><p>This thesis is focusing on design, implementation, and evaluation of two new COMET configurations, on-demand updating of data and active behavior. The configurations are created by extending the COMET component and aspect library with a set of aspects that implement on-demand and active behavior. The on-demand updating aspect implements the ODDFT algorithm, which traverses the data dependency graph in the depth-first manner, and triggers and schedules on-demand updates based on data freshness in the value domain. The active behavior aspect enables the database to take actions when an event occurs and a condition coupled with that event and action is fulfilled.</p><p>As we show in the performance evaluation, integrating on-demand and active behavior in COMET improves the performance of the database system, gives a better utilization of the CPU, and makes the management of data more efficient.</p>
|
6 |
Improving the search for refactoring opportunities on object-oriented and aspect-oriented software / Melhorando a busca por oportunidades de refatoração em software orientado a objetos e orientado a aspectosPiveta, Eduardo Kessler January 2009 (has links)
Refatoração é o processo de melhorar o projeto de sistemas de software sem modificar seu comportamento externamente observável. O processo de refatoração pode auxiliar a incrementalmente melhorar a qualidade de software de um sistema através da aplicação de transformações que preservam comportamento chamadas de padrões de refatoração. O principal objetivo da pesquisa que esta tese descreve é prover um processo detalhado para refatoração, incluindo mecanismos para (i) seleção e criação de modelos de qualidade, padrões de refatoração e funções heurísticas, (ii) a busca e priorização de oportunidades de refatoração, (iii) a avaliação dos efeitos da refatoração na qualidade de software e (iv) a análise de vantagens e desvantagens e a aplicação de padrões de refatoração. Para exemplificar como os mecanismos propostos funcionam e como o processo pode ser usado, diferentes estudos de caso são usados ao longo da tese. A seleção dos padrões de refatoração, dos modelos de qualidade e das funções heurísticas são exemplificados para software orientado a objetos, bem como os mecanismos de busca e priorização. A avaliação dos efeitos da refatoração na qualidade de software, a análise de vantagens e desvantagens e a aplicação de padrões de refatoração são discutidos no contexto de programação orientada a aspectos. Além da definição de um processo de refatoração, um conjunto adicional de contribuições desta tese são: (i) a definição de uma abordagem para a seleção e ranking de padrões de refatoração baseada no AHP (Analytic Hierarchy Process), (ii) uma abordagem para reduzir o espaço de busca para oportunidades de refatoração ao manipular refatorações sucessivas, (iii) a definição de mecanismos de busca para oportunidades de refatoração, (iv) uma abordagem para avaliar os efeitos de refatoração na qualidade de software, (v) um catálogo de problemas encontrados em software orientado a aspectos e seus padrões de refatoração associados, e também um conjunto de recomendações para evitar estes problemas e (vi) um estudo de métricas orientadas a aspectos, incluindo a sua definição formal, avaliação analítica e interpretação de dados. / Refactoring is the process of improving the design of software systems without changing their externally observable behaviour. Refactoring can help to incrementally improve the quality of a software system through the application of behavioural preserving transformations called refactoring patterns. The main goal of the research this thesis reports is to provide a detailed process for refactoring, including mechanism for (i) the selection and creation of quality models, the selection of refactoring patterns, and the creation and use of heuristic rules, (ii) the search for refactoring opportunities and prioritisation, (iii) the assessment of the effects of refactoring on software quality, and (iv) the trade-off analysis and the application of refactoring patterns. To exemplify how the approach works and how the process can be used, different case studies are being used throughout the thesis. The selection of refactoring patterns, quality models and heuristic rules, and the search and prioritisation mechanisms are exemplified for object-oriented software. The assessment of refactoring effects on software quality, the trade-off analysis and the application of refactoring patterns are discussed in the context of aspect-oriented programming. Besides the definition of a refactoring process, a set of additional contributions of this thesis are (i) the definition of an approach for the selection and ranking of refactoring patterns, (ii) an approach for reducing the search space for refactoring opportunities when dealing with successive refactoring, (iii) the definition of search mechanisms for refactoring opportunities, (iv) an approach to evaluate the effects of refactoring on software quality, (v) a catalogue of shortcomings in aspect-oriented software and their related refactoring patterns, and (vi) an study of metrics for aspect-oriented software, including their formal definition, analytical evaluation and data interpretation.
|
7 |
Improving the search for refactoring opportunities on object-oriented and aspect-oriented software / Melhorando a busca por oportunidades de refatoração em software orientado a objetos e orientado a aspectosPiveta, Eduardo Kessler January 2009 (has links)
Refatoração é o processo de melhorar o projeto de sistemas de software sem modificar seu comportamento externamente observável. O processo de refatoração pode auxiliar a incrementalmente melhorar a qualidade de software de um sistema através da aplicação de transformações que preservam comportamento chamadas de padrões de refatoração. O principal objetivo da pesquisa que esta tese descreve é prover um processo detalhado para refatoração, incluindo mecanismos para (i) seleção e criação de modelos de qualidade, padrões de refatoração e funções heurísticas, (ii) a busca e priorização de oportunidades de refatoração, (iii) a avaliação dos efeitos da refatoração na qualidade de software e (iv) a análise de vantagens e desvantagens e a aplicação de padrões de refatoração. Para exemplificar como os mecanismos propostos funcionam e como o processo pode ser usado, diferentes estudos de caso são usados ao longo da tese. A seleção dos padrões de refatoração, dos modelos de qualidade e das funções heurísticas são exemplificados para software orientado a objetos, bem como os mecanismos de busca e priorização. A avaliação dos efeitos da refatoração na qualidade de software, a análise de vantagens e desvantagens e a aplicação de padrões de refatoração são discutidos no contexto de programação orientada a aspectos. Além da definição de um processo de refatoração, um conjunto adicional de contribuições desta tese são: (i) a definição de uma abordagem para a seleção e ranking de padrões de refatoração baseada no AHP (Analytic Hierarchy Process), (ii) uma abordagem para reduzir o espaço de busca para oportunidades de refatoração ao manipular refatorações sucessivas, (iii) a definição de mecanismos de busca para oportunidades de refatoração, (iv) uma abordagem para avaliar os efeitos de refatoração na qualidade de software, (v) um catálogo de problemas encontrados em software orientado a aspectos e seus padrões de refatoração associados, e também um conjunto de recomendações para evitar estes problemas e (vi) um estudo de métricas orientadas a aspectos, incluindo a sua definição formal, avaliação analítica e interpretação de dados. / Refactoring is the process of improving the design of software systems without changing their externally observable behaviour. Refactoring can help to incrementally improve the quality of a software system through the application of behavioural preserving transformations called refactoring patterns. The main goal of the research this thesis reports is to provide a detailed process for refactoring, including mechanism for (i) the selection and creation of quality models, the selection of refactoring patterns, and the creation and use of heuristic rules, (ii) the search for refactoring opportunities and prioritisation, (iii) the assessment of the effects of refactoring on software quality, and (iv) the trade-off analysis and the application of refactoring patterns. To exemplify how the approach works and how the process can be used, different case studies are being used throughout the thesis. The selection of refactoring patterns, quality models and heuristic rules, and the search and prioritisation mechanisms are exemplified for object-oriented software. The assessment of refactoring effects on software quality, the trade-off analysis and the application of refactoring patterns are discussed in the context of aspect-oriented programming. Besides the definition of a refactoring process, a set of additional contributions of this thesis are (i) the definition of an approach for the selection and ranking of refactoring patterns, (ii) an approach for reducing the search space for refactoring opportunities when dealing with successive refactoring, (iii) the definition of search mechanisms for refactoring opportunities, (iv) an approach to evaluate the effects of refactoring on software quality, (v) a catalogue of shortcomings in aspect-oriented software and their related refactoring patterns, and (vi) an study of metrics for aspect-oriented software, including their formal definition, analytical evaluation and data interpretation.
|
8 |
Active Behavior in a Configurable Real-Time Database for Embedded SystemsDu, Ying January 2006 (has links)
An embedded system is an application-specific system that is typically dedicated to performing a particular task. Majority of embedded systems are also real-time, implying that timeliness in the system need to be enforced. An embedded system needs to be enforced efficient management of a large amount of data, including maintenance of data freshness in an environment with limited CPU and memory resources. Uniform and efficient data maintenance can be ensured by integrating database management functionality with the system. Furthermore, the resources can be utilized more efficiently if the redundant calculations can be avoided. On-demand updating and active behavior are two solutions that aim at decreasing the number of calculations on data items in embedded systems. COMET is a COMponent-based Embedded real-Time database, developed to meet the increasing requirements for efficient data management in embedded real-time systems. The COMET platform has been developed using a novel software engineering technique, AspeCtual COmponent-based Real-time software Development (ACCORD), which enables creating database configurations, using software components and aspects from the library, based on the requirements of an application. Although COMET provides uniform and efficient data management for real-time and embedded systems, it does not provide support for on-demand and active behavior. This thesis is focusing on design, implementation, and evaluation of two new COMET configurations, on-demand updating of data and active behavior. The configurations are created by extending the COMET component and aspect library with a set of aspects that implement on-demand and active behavior. The on-demand updating aspect implements the ODDFT algorithm, which traverses the data dependency graph in the depth-first manner, and triggers and schedules on-demand updates based on data freshness in the value domain. The active behavior aspect enables the database to take actions when an event occurs and a condition coupled with that event and action is fulfilled. As we show in the performance evaluation, integrating on-demand and active behavior in COMET improves the performance of the database system, gives a better utilization of the CPU, and makes the management of data more efficient.
|
9 |
Improving the search for refactoring opportunities on object-oriented and aspect-oriented software / Melhorando a busca por oportunidades de refatoração em software orientado a objetos e orientado a aspectosPiveta, Eduardo Kessler January 2009 (has links)
Refatoração é o processo de melhorar o projeto de sistemas de software sem modificar seu comportamento externamente observável. O processo de refatoração pode auxiliar a incrementalmente melhorar a qualidade de software de um sistema através da aplicação de transformações que preservam comportamento chamadas de padrões de refatoração. O principal objetivo da pesquisa que esta tese descreve é prover um processo detalhado para refatoração, incluindo mecanismos para (i) seleção e criação de modelos de qualidade, padrões de refatoração e funções heurísticas, (ii) a busca e priorização de oportunidades de refatoração, (iii) a avaliação dos efeitos da refatoração na qualidade de software e (iv) a análise de vantagens e desvantagens e a aplicação de padrões de refatoração. Para exemplificar como os mecanismos propostos funcionam e como o processo pode ser usado, diferentes estudos de caso são usados ao longo da tese. A seleção dos padrões de refatoração, dos modelos de qualidade e das funções heurísticas são exemplificados para software orientado a objetos, bem como os mecanismos de busca e priorização. A avaliação dos efeitos da refatoração na qualidade de software, a análise de vantagens e desvantagens e a aplicação de padrões de refatoração são discutidos no contexto de programação orientada a aspectos. Além da definição de um processo de refatoração, um conjunto adicional de contribuições desta tese são: (i) a definição de uma abordagem para a seleção e ranking de padrões de refatoração baseada no AHP (Analytic Hierarchy Process), (ii) uma abordagem para reduzir o espaço de busca para oportunidades de refatoração ao manipular refatorações sucessivas, (iii) a definição de mecanismos de busca para oportunidades de refatoração, (iv) uma abordagem para avaliar os efeitos de refatoração na qualidade de software, (v) um catálogo de problemas encontrados em software orientado a aspectos e seus padrões de refatoração associados, e também um conjunto de recomendações para evitar estes problemas e (vi) um estudo de métricas orientadas a aspectos, incluindo a sua definição formal, avaliação analítica e interpretação de dados. / Refactoring is the process of improving the design of software systems without changing their externally observable behaviour. Refactoring can help to incrementally improve the quality of a software system through the application of behavioural preserving transformations called refactoring patterns. The main goal of the research this thesis reports is to provide a detailed process for refactoring, including mechanism for (i) the selection and creation of quality models, the selection of refactoring patterns, and the creation and use of heuristic rules, (ii) the search for refactoring opportunities and prioritisation, (iii) the assessment of the effects of refactoring on software quality, and (iv) the trade-off analysis and the application of refactoring patterns. To exemplify how the approach works and how the process can be used, different case studies are being used throughout the thesis. The selection of refactoring patterns, quality models and heuristic rules, and the search and prioritisation mechanisms are exemplified for object-oriented software. The assessment of refactoring effects on software quality, the trade-off analysis and the application of refactoring patterns are discussed in the context of aspect-oriented programming. Besides the definition of a refactoring process, a set of additional contributions of this thesis are (i) the definition of an approach for the selection and ranking of refactoring patterns, (ii) an approach for reducing the search space for refactoring opportunities when dealing with successive refactoring, (iii) the definition of search mechanisms for refactoring opportunities, (iv) an approach to evaluate the effects of refactoring on software quality, (v) a catalogue of shortcomings in aspect-oriented software and their related refactoring patterns, and (vi) an study of metrics for aspect-oriented software, including their formal definition, analytical evaluation and data interpretation.
|
10 |
Aspect Analyzer: Ett verktyg för automatiserad exekveringstidsanalys av komponenter och aspekter / Aspect Analyzer: A Tool for Automated WCET Analysis of Aspects and ComponentsUhlin, Pernilla January 2002 (has links)
<p>The increasing complexity in the development of a configurable real-time system has emerged new principles of software techniques, such as aspect-oriented software development and component-based software development. These techniques allow encapsulation of the system's crosscutting concerns and increase the modularity of the software. The properties of a component that influences the systems performance or semantics are specified separately in entities called aspects, while basic functionality of the property still remains in the component. </p><p>When building a real-time system, different sets of configurations of aspects and components can be combined, resulting in different configurations of the system. The temporal behavior of the system changes and a way to ensure the predictability of the system is needed. </p><p>This thesis presents a tool for aspect-level worst-case execution time analysis, which gives a priori information about the temporal behavior of the system, before the process of composing aspects with components.</p>
|
Page generated in 0.1701 seconds