44 research outputs found

    Inquiring the usage of aspect-oriented programming: an empirical study

    No full text
    International audienceBack in 2001, the MIT announced aspect-orientedprogramming as a key technology in the next 10 years.Nowadays, 8 years later, AOP is not widely adopted.Several reasons can explain this distrust in front ofAOP, and one of them is the lack of robust tools foranalysis, testing and maintenance. In order to developdedicated solutions for assisting the development withAOP, and increase its adoption, we need to understandhow it is actually used. In this paper we analyze 38aspect-oriented open source projects with respect tothe impact of aspects on the projects, and to coverageof the language features. This reveals that AOP iscurrently used in a cautious way. This work is a firststep to built support and development tools dedicatedto actual practices for AOP, based on empirical usage profiles

    Reverse-engineering of UML 2.0 Sequence Diagrams from Execution Traces

    Get PDF
    International audienceTo fully understand the behavior of a program, it is crucial to have ef?cient techniques to reverse dynamic views of the program. In this paper, we focus on the reverse engineering of UML 2.0 sequence diagrams showing loops and alternatives from execution traces. To build these complete sequence diagrams, we need to capture the systems state through dynamic analysis. We propose to build state vectors through trace analysis and we precisely discuss how the state of an object-oriented system can be captured. We also present an adaptable trace analysis tool that we have developed to experiment the ideas presented in this work

    Inquiring the usage of aspect-oriented programming: an empirical study

    Get PDF
    International audienceBack in 2001, the MIT announced aspect-orientedprogramming as a key technology in the next 10 years.Nowadays, 8 years later, AOP is not widely adopted.Several reasons can explain this distrust in front ofAOP, and one of them is the lack of robust tools foranalysis, testing and maintenance. In order to developdedicated solutions for assisting the development withAOP, and increase its adoption, we need to understandhow it is actually used. In this paper we analyze 38aspect-oriented open source projects with respect tothe impact of aspects on the projects, and to coverageof the language features. This reveals that AOP iscurrently used in a cautious way. This work is a firststep to built support and development tools dedicatedto actual practices for AOP, based on empirical usage profiles

    A Test-Driven Approach to Developing Pointcut Descriptors in AspectJ

    Get PDF
    International audienceAspect-oriented programming (AOP) languages introduce new constructs that can lead to new types of faults, which must be targeted by testing techniques. In particular, AOP languages such as AspectJ use a pointcut descriptor (PCD) that provides a convenient way to declaratively specify a set of joinpoints in the program where the aspect should be woven. However, a major difficulty when testing that the PCD matches the intended set of joinpoints is the lack of precise specification for this set other than the PCD itself. In this paper, we propose a test-driven approach for the development and validation of the PCD. We developed a tool, AdviceTracer, which enriches the JUnit API with new types of assertions that can be used to specify the expected joinpoints. In order to validate our approach, we also developed a mutation tool that systematically injects faults into PCDs. Using these two tools, we perform experiments to validate that our approach can be applied for specifying expected joinpoints and for detecting faults in the PCD

    Analyses Automatiques pour le Test de Programmes Orientés Aspect

    No full text
    Aspect-oriented programming is a new paradigm that separates the different concerns to improve the modularity. This paradigm introduces new challenges for the validation. To offer effective solutions to these problems, we have studied the use of Aspect in 38 open source projects. These observations have shown that the aspects are rarely used, and with great caution, and that aspect-oriented programming reduces the testability by increasing the coupling. We have developed a static analysis of the impact of aspects on the test cases. The objective is to statically determine which test cases are impacted by the aspects and should be modified to take the changes into account. This analysis, supported by a tool, aims at reducing the execution time of the test cases and allows the tester to focus on the test cases that need to be modified. We propose an approach, implemented in a tool, AdviceTracer, to test test the pointcut descriptors separately from the advices. This tool allows the definition of oracles that are specific to the detection of faults in the pointcut descriptors. This allows the oracle to test if an advice has been correctly woven without depending on the behavior of the advice. In the context of this thesis, we have developed different analysis tools. AjMetrics is a tool which measures different metrics on aspect-oriented programs, using a formalism. AjMutator is a tool for the mutation analysis of aspect-oriented programs, which is able to insert faults in the poincut descriptors.La programmation orientée aspects sépare les différentes préoccupations pour améliorer la modularité. Ce paradigme introduit de nouveaux défis pour le test. Afin de proposer des solutions efficaces à ces problèmes, nous avons étudié l'utilisation d'AspectJ dans 38 projets libres. Ces observations ont révélé que les aspects sont peu utilisé, et avec précaution, et que la programmation orientée aspect diminue la testabilité en augmentant le couplage. Nous avons développé une analyse statique de l'impact des aspects sur les cas de test. Le but est de déterminer statiquement quels sont les cas de test qui sont impactés par l'introduction d'un aspect et qui doivent être modifiés pour prendre en compte les changements. Cette analyse outillée, vise à limiter le temps d'exécution des cas de test et permet au testeur de se concentrer sur les cas de test qui doivent être modifiés. Nous proposons une approche, implémentée dans un outil nommé AdviceTracer, pour tester les expressions de point de coupe séparément des greffons. Cet outil permet la définition d'un oracle spécifiquement adapté à la détection d'erreurs dans un point de coupe. Ceci permet à l'oracle de tester si un greffon a été correctement tissé, sans dépendre du comportement du greffon. Dans le cadre de cette thèse nous avons eu besoin de différents outils d'analyse. AjMetrics est un outil qui mesure diverses métriques sur les programmes orientés aspect en utilisant un formalisme. AjMutator est un outil d'analyse de mutations de programmes orientés aspect, qui est capable d'insérer des erreurs dans les expressions de point de coupe

    ETUDE DE LA CROISSANCE THERMIQUE DES CAVITES INDUITES PAR IMPLANTATION D'HELIUM DANS LE SILICIUM

    No full text
    Jury : Mme C. LEBORGNE Professeur (GREMI, Orléans), Président M A. CLAVERIE Directeur de Recherche (CEMES, Toulouse), Rapporteur M A. VAN VEEN Professeur (Delft University of Technology, Pays Bas), Rapporteur M S. ASHOK Professeur (Pennsylvania State University, USA), Examinateur M B. PICHAUD Professeur (Université d'Aix-Marseille III), Examinateur M E. NTSOENZOK Ingénieur de recherche (CERI,Orléans), Directeur de thèseIn this study, we were interested in cavities induce by helium implantation in silicon. We wanted to determine the mechanisms which were involved in cavities formation and growth (Ostwald Ripening or Migration Coalescence). We used implantation energies from 10 keV to 1,55 MeV with implantation doses from 1.45.1016 to 1017 He.cm-2. We have shown vacancies, helium and implantation depth are the main parameters which are involved in cavities growth. We have also demonstrated Ostwald Ripening rules that growth when annealing temperature is below 1000°C so we propose a new model for cavities growth based on this mechanism.Dans cette étude, nous nous sommes intéressés aux cavités induites par l'implantation d'hélium dans le silicium. Nous avons voulu déterminer les mécanismes de formation et de croissance (Ostwald Ripening ou Migration Coalescence) des cavités en utilisant un large éventail de paramètres d'implantations. Les énergies d'implantation que nous avons réalisées, sont comprises entre 10 keV et 1,55 MeV, les doses allant de 1,45.1016 jusqu'à 1017 He.cm-2. Nous avons ainsi pu mettre en évidence le rôle de chacun des trois paramètres principaux que sont les lacunes, l'hélium et la surface dans la croissance des cavités. Nous avons également montré que c'est le même mécanisme qui gouverne la croissance des cavités pour des températures de recuit jusqu'à 900°C et que les cavités se forment dans la zone de création des lacunes dues à l'implantation. Avec ces données, nous avons pu élaborer un nouveau modèle de croissance pour les cavités

    Etude de la croissance thermique des cavités induites par l'implantation d'hélium dans le silicium

    No full text
    ORLEANS-BU Sciences (452342104) / SudocSudocFranceF

    Analyses automatiques pour le test de programme orientés aspect

    No full text
    La programmation orientée aspects sépare les différentes préoccupations pour améliorer la modularité et l'évolutivité. Ce paradigme introduit de nouveaux défis pour le test. Afin de proposer des solutions efficaces à ces problèmes, nous avons étudié l'utilisation d'AspectJ dans 38 projets libres. Ces observations ont révélé que les aspects sont peu utilisé, et avec précaution, et que la programmation orientée aspect diminue la testabilité en augmentant le couplage. Nous avons développé une analyse statique de l'impact des aspects sur les cas de test. Le but est de déterminer statiquement quels sont les cas de test qui sont impactés par l'introduction d'un aspect et qui doivent être modifiés pour prendre en compte les changements. Cette analyse outillée, vise à limiter le temps d'exécution des cas de test et permet au testeur de se concentrer sur les cas de test qui doivent être modifiés. Nous proposons une approche, implémentée dans un outil nommé AdviceTracer, pour tester les expressions de point de coupe séparément des greffons. Cet outil permet la définition d'un oracle spécifiquement adapté à la détection d'erreurs dans un point de coupe. Ceci permet à l'oracle de tester si un greffon a été correctement tissé, sans dépendre du comportement du greffon. Dans le cadre de cette thèse nous avons eu besoin de différentes outils d'analyse. AjMetrics est un outil qui mesure diverses métriques sur les programmes orientés aspect en utilisant un formalisme. AjMutator est un outil d'analyse de mutations de programmes orientés aspect, qui est capable d'insérer des erreurs dans les expressions de point de coupe.Aspect-oriented programming is a new paradigm that separates the different concerns to improve the modularity. This paradigm introduces new challenges for the validation. To offer effective solutions to these problems, we have studied the use of Aspect in 38 open source projects. These observations have shown that the aspects are rarely used, and with great caution, and that aspect-oriented programming reduces the testability by increasing the coupling. We have developed a static analysis of the impact of aspects on the test cases. The objective is to statically determine which test cases are impacted by the aspects and should be modified to take the changes into account. This analysis, supported by a tool, aims at reducing the execution time of the test cases and allows the tester to focus on the test cases that need to be modified. We propose an approach, implemented in a tool, AdviceTracer, to test test the pointcut descriptors separately from the advices. This tool allows the definition of oracles that are specific to the detection of faults in the pointcut descriptors. This allows the oracle to test if an advice has been correctly woven without depending on the behavior of the advice. In the context of this thesis, we have developed different analysis tools. AjMetrics is a tool which measures different metrics on aspect-oriented programs, using a formalism. AjMutator is a tool for the mutation analysis of aspect-oriented programs, which is able to insert faults in the poincut descriptors.GRENOBLE-MI2S (384212302) / SudocRENNES1-BU Sciences Philo (352382102) / SudocRENNES-INRIA Rennes Irisa (352382340) / SudocSudocFranceF

    Reverse-engineering of UML 2.0 Sequence Diagrams from Execution Traces

    Get PDF
    International audienceTo fully understand the behavior of a program, it is crucial to have ef?cient techniques to reverse dynamic views of the program. In this paper, we focus on the reverse engineering of UML 2.0 sequence diagrams showing loops and alternatives from execution traces. To build these complete sequence diagrams, we need to capture the systems state through dynamic analysis. We propose to build state vectors through trace analysis and we precisely discuss how the state of an object-oriented system can be captured. We also present an adaptable trace analysis tool that we have developed to experiment the ideas presented in this work
    corecore