17 research outputs found

    Um modelo de suporte a programaĆ§Ć£o orientada a aspectos

    Get PDF
    DissertaĆ§Ć£o (mestrado) - Universidade Federal de Santa Catarina, Centro TecnolĆ³gico. Programa de PĆ³s-GraduaĆ§Ć£o em CiĆŖncia da ComputaĆ§Ć£o

    An empirical study of aspect-oriented metrics

    Get PDF
    Metrics for aspect-oriented software have been proposed and used to investigate the benefits and the disadvantages of crosscutting concerns modularisation. Some of these metrics have not been rigorously defined nor analytically evaluated. Also, there are few empirical data showing typical values of these metrics in aspect-oriented software. In this paper, we provide rigorous definitions, usage guidelines, analytical evaluation, and empirical data from ten open source projects, determining the value of six metrics for aspect-oriented software (lines of code, weighted operations in module, depth of inheritance tree, number of children, crosscutting degree of an aspect, and coupling on advice execution). We discuss how each of these metrics can be used to identify shortcomings in existing aspect-oriented software. (C) 2012 Elsevier B.V. All rights reserved.CNPq [140046/06-2]; Project CNPQ-PROSUL [490478/06-9]; Capes-Grices [2051-05-2]; FAPERGS [10/0470-1]; FCT MCTESinfo:eu-repo/semantics/publishedVersio

    Melhorando a busca por oportunidades de refatoraĆ§Ć£o em software orientado a objetos e orientado a aspectos

    No full text
    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

    Melhorando a busca por oportunidades de refatoraĆ§Ć£o em software orientado a objetos e orientado a aspectos

    No full text
    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

    RepresentaĆ§Ć£o do Conhecimento de forma a Buscar Oportunidades de RefatoraĆ§Ć£o atravĆ©s de uma Ontologia

    Get PDF
    Durante o ciclo de vida dos sistemas de software, eles precisam ser melhorados, modificados e adaptados a novas funcionalidades. Tais modificaƧƵes podem aumentar a complexidade e diminuir sua qualidade. Uma das maneiras de melhorar sua qualidade Ć© aplicar transformaƧƵes, mais especificamente, refatoraƧƵes. Uma das atividades do processo de refatoraĆ§Ć£o proposto por Piveta (2009), Ć© a seleĆ§Ć£o do conjunto de refatoraƧƵes a serem aplicadas em um sistema de software. A partir desse cenĆ”rio, este trabalho tem como objetivo: (i) Representar o conhecimento de refatoraĆ§Ć£o atravĆ©s de uma ontologia OWL; (ii) Utilizar a ontologia proposta como base de dados para selecionar o conjunto de refatoraƧƵes a serem aplicadas. A fim de facilitar a seleĆ§Ć£o, desenvolveu-se uma aplicaĆ§Ć£o Java utilizando a API Jena. Essa possibilita filtrar as refatoraƧƵes por algumas caracterĆ­sticas como vantagem e domĆ­nio

    Architecture of an XML-based Aspect Weaver

    No full text
    This paper proposes an architecture to enable the development of an XML-based aspect weaver, providing ways to manipulate programs using and XML representation of source code information. The main advantages on using this approach when implementing an aspect weaver is that there are several tools to support XML documents manipulation and the use of XML provides a standard way to represent and manipulate source code

    RUP Based Analysis and Design with Aspects

    No full text
    Aspect-Oriented Software Development (AOSD) is a new paradigm aiming to solve problems that are not adequately addressed by the Object-Oriented paradigm. Therefore, it seems appropriate to adapt software processes showing when and how crosscutting concerns should be considered. The Rational Unified Process (RUP) is one of the most widely used software development processes focusing on object-oriented software development, but RUP was not originally conceived considering separation of crosscutting concerns. This work proposes adjustments to one of the most affected RUP disciplines, Analysis and Design, in order to use new concepts and techniques of AOSD. A case study is developed to validate the proposed approach. 1

    Inference Rules for Generic Code Migration of Aspect-Oriented Programs

    No full text
    Abstract. Several changes occurred in the AspectJ language to provide support for parametric polymorphism, a.k.a. generics, which was recently introduced in the Java type system. Such changes aim to improve the type safety of the source code and to prepare the language to support generic code migration. Current approaches for this kind of migration focus only on object-oriented code. Thus, they do not consider the use of aspects to encapsulate crosscutting concerns. We propose a collection of type constraint rules for the polymorphic version of AspectJ. These rules are used together with an existing constraint based algorithm to enable the conversion of nongeneric legacy code to add actual type parameters in both Java and AspectJ languages
    corecore