13 research outputs found

    Améliorer la testabilité et les tests des systèmes à l'aide des patrons

    Get PDF
    Les activités de test sont très complexes et coûteuses mais elles restent cependant le moyen le plus répandu pour assurer la fiabilité des systèmes et augmenter notre confiance en eux. De nombreux travaux ont pour objectif la réduction de ces coûts et de cette complexité à travers diverses approches : critères de test plus efficaces, automatisation des activités de tests, augmentation de la testabilité. Cette dernière approche est intensivement explorée car pour de nombreux chercheurs, la testabilité peut permettre de réduire significativement les coûts de test surtout si elle est évaluée et exploitée tôt dans le cycle de développement du logiciel notamment à la phase de conception. C'est dans ce domaine très actif des conceptions testables que s'inscrit notre projet de recherche. Ce projet vise à contribuer à réduire les coûts de test et en augmenter l'efficacité en exploitant les microarchitectures, telles que les patrons de conceptions et les anti-patrons. Ces microarchitectures existent largement dans les systèmes orientés objets et sont reconnus comme ayant un impact sur plusieurs attributs de qualité. Notre objectif est donc, à travers ce projet de recherche et la méthodologie proposée dans le présent document, d'étudier l'impact des microarchitectures sur la testabilité des systèmes, d'exploiter les résultats de cette étude pour améliorer la testabilité des conceptions mais aussi exploiter directement les microarchitectures dans la phase de test

    An exploratory study of the impact of software changeability

    Get PDF
    Antipatterns are poor design choices that make object-oriented systems hard to maintain by developers. In this study, we investigate if classes that participate in antipatterns are more change-prone than classes that do not. Specifically, we test the general hypothesis: classes belonging to antipatterns are not more likely than other classes to undergo changes, to be impacted when fixing issues posted in issue- tracking systems, and in particular to unhandled exceptions-related issues - a crucial problem for any software system. We detect 11 antipatterns in 13 releases of Eclipse and study the relations between classes involved in these antipatterns and classes change-, issue-, and unhandled exception-proneness. We show that, in almost all releases of Eclipse, classes with antipatterns are more change-, issue-, and unhandled-exception-prone than others. These results justify previous work on the specification and detection of antipatterns and could help focusing quality assurance and testing activities

    An Empirical Study of the Relationships between Design Pattern Roles and Class Change Proneness

    No full text
    Analyzing the change-proneness of design patterns and the kinds of changes occurring to classes playing role(s) in some design pattern(s) during software evolution poses the basis for guidelines to help developers who have to choose, apply or maintain design patterns. Building on previous work, this paper shifts the focus from design patterns as wholes to the finer-grain level of design pattern roles. The paper presents an empirical study to understand whether there are roles that are more change-prone than others and whether there are changes that are more likely to occur to certain roles. The study relies on data extracted from the source code repositories of three different systems (JHotDraw, Xerces, and Eclipse-JDT) and from 12 design patterns. Results obtained confirm the intuitive behavior about changeability of many roles in design motifs, but also warns about properly designing parts of the motif subject to frequent changes.

    Étude empirique sur l'utilisation des patrons JEE et leur impact sur la modifiabilité des applications JEE

    Get PDF
    Les patrons de conception décrivent des pratiques qui permettent la conception de logiciels de qualité. Beaucoup de patrons de conception fournissent des solutions qui visent à promouvoir la maintenabilité des logiciels et, plus précisément, la modifiabilité en facilitant la mise en oeuvre de futurs changements du logiciel, ce qui réduit considérablement les coûts de la maintenance. Plusieurs travaux visent à supporter l’utilisation des patrons de conception ou à identifier des occurrences de ces patrons dans des systèmes existants. Cependant, peu d’études empiriques évaluent l’impact des patrons JEE sur la modifiabilité des applications. Dans ce mémoire, nous présentons une étude empirique sur l'utilisation des patrons JEE et leur impact sur la modifiabilité des applications JEE. Nous avons analysé 17 applications JEE libres pour identifier les patrons JEE qui sont utilisés et qui supportent la modifiabilité. Puis, nous avons évalué leur impact sur la modifiabilité de ces applications en étudiant les corrélations possibles entre l'utilisation de ces patrons et un ensemble de métriques liées à la modifiabilité. De plus, nous avons analysé différentes versions de trois de ces applications JEE afin d'évaluer l'évolution de la distribution des patrons appliqués et aussi l'impact de cette évolution sur la modifiabilité de ces applications. Afin de combler le manque d’outils qui permettent de détecter les patrons JEE, nous avons adapté l’outil Ptidej et nous avons développé un parseur basé sur l’arbre syntaxique du code source analysé. Une analyse manuelle des applications est effectuée pour valider les occurrences des patrons identifiés. Les résultats de notre étude confirment qu’un bon nombre de patrons JEE supportant la modifiabilité sont utilisés dans les applications JEE. Ces patrons sont généralement ceux qui reflètent les bonnes pratiques d’une architecture en couches. Nous avons aussi constaté qu’il y a très peu de corrélations entre l’utilisation de ces patrons et la modifiabilité des applications. Les quelques corrélations observés suggèrent que l’application de certains patrons complexifient l’application. Cependant, notre analyse manuelle des applications JEE étudiées a permis de constater que l’utilisation de ces patrons facilite la compréhension du code et la délimitation des couches de l’architecture de ces applications

    Applying patterns in embedded systems design for managing quality attributes and their trade-offs

    Get PDF
    Embedded systems comprise one of the most important types of software-intensive systems, as they are pervasive and used in daily life more than any other type, e.g., in cars or in electrical appliances. When these systems operate under hard constraints, the violation of which can lead to catastrophic events, the system is classified as a critical embedded system (CES). The quality attributes related to these hard constraints are named critical quality attributes (CQAs). For example, the performance of the software for cruise-control or self-driving in a car are critical as they can potentially relate to harming human lives. Despite the growing body of knowledge on engineering CESs, there is still a lack of approaches that can support its design, while managing CQAs and their trade-offs with noncritical ones (e.g., maintainability and reusability). To address this gap, the state-of-research and practice on designing CES and managing quality trade-offs were explored, approaches to improve its design identified, and the merit of these approaches empirically investigated. When designing software, one common approach is to organize its components according to well-known structures, named design patterns. However, these patterns may be avoided in some classes of systems such as CES, as they are sometimes associated with the detriment of CQAs. In short, the findings reported in the thesis suggest that, when applicable, design patterns can promote CQAs while supporting the management of trade-offs. The thesis also reports on a phenomena, namely pattern grime, and factors that can influence the extent of the observed benefits
    corecore