Matches in SemOpenAlex for { <https://semopenalex.org/work/W636190832> ?p ?o ?g. }
- W636190832 abstract "Software systems evolve, requiring continuous maintenance and development. They undergo changes throughout their lifetimes as new features are added and bugs are fixed. As these systems evolved, their designs tend to decay with time and become less adaptable to changing users’ requirements. Consequently, software designs become more complex over time and harder to maintain; in some not-so-rare cases, developers prefer redesigning from scratch rather than prolonging the life of existing designs, which causes development and maintenance costs to rise. Therefore, developers must understand the factors that drive the decay of their designs and take proactive steps that facilitate future changes and slow down decay.Design decay occurs when changes are made on a software system by developers who do not understand its original design. On the one hand, making software changes without understanding their effects may lead to the introduction of bugs and the premature retirement of the system. On the other hand, when developers lack knowledge and–or experience in solving a design problem, they may introduce design defects, which are conjectured to have a negative impact on the evolution of systems, which leads to design decay. Thus, developers need mechanisms to understand how a change to a system will impact the rest of the system and tools to detect design defects.In this dissertation, we propose three principal contributions. The first contribution aims to evaluate design decay. Measuring design decay consists of using a diagram matching technique to identify structural changes among versions of a design, such as a class diagram. Finding structural changes occurring in long-lived, evolving designs requires the identification of class renamings. Thus, the first step of our approach concerns the identification of class renamings in evolving designs. Then, the second step requires to match several versions of an evolving design to identify decaying and stable parts of the design. We propose bit-vector and incremental clustering algorithms to match several versions of an evolving design. The third step consists of measuring design decay. We propose a set of metrics to evaluate this design decay. The second contribution is related to change impact analysis. We present a new metaphor inspired from seismology to identify the change impact. In particular, our approach considers changes to a class as an earthquake that propagates through a long chain of intermediary classes. Our approach combines static dependencies between classes and historical co-change relations to measure the scope of change propagation in a system, i.e., how far a change propagation will proceed from a “changed class” to other classes. The third contribution concerns design defect detection. We propose a metaphor inspired from a natural immune system. Like any living creature, designs are subject to diseases, which are design defects. Detection approaches are defense mechanisms of designs. A natural immune system can detect similar pathogens with good precision. This good precision has inspired a family of classification algorithms, Artificial Immune Systems (AIS) algorithms, which we use to detect design defects.The three contributions are evaluated on open-source object-oriented systems and the obtained results enable us to draw the following conclusions: • Design decay metrics, Tunnel Triplets Metric (TTM) and Common Triplets Metric ( CTM), provide developers useful insights regarding design decay. If TTM decreases, then the original design decays. If TTM is stable, then the original design is stable, which means that the system is more adapted to the new changing requirements.• Seismology provides an interesting metaphor for change impact analysis. Changes propagate in systems, like earthquakes. The change impact is most severe near the changed class and drops off away from the changed class. Using external information, we show that our approach helps developers to locate easily the change impact.• Immune system provides an interesting metaphor for detecting design defects. The results of the experiments showed that the precision and recall of our approach are comparable or superior to that of previous approaches." @default.
- W636190832 created "2016-06-24" @default.
- W636190832 creator A5044241450 @default.
- W636190832 creator A5048594006 @default.
- W636190832 creator A5062174059 @default.
- W636190832 date "2012-01-01" @default.
- W636190832 modified "2023-10-02" @default.
- W636190832 title "Evaluating design decay during software evolution" @default.
- W636190832 cites W1342665 @default.
- W636190832 cites W1481077949 @default.
- W636190832 cites W1486039312 @default.
- W636190832 cites W1487083903 @default.
- W636190832 cites W1499459826 @default.
- W636190832 cites W1506513518 @default.
- W636190832 cites W1511637839 @default.
- W636190832 cites W1534729839 @default.
- W636190832 cites W1536294735 @default.
- W636190832 cites W1537775647 @default.
- W636190832 cites W1548254758 @default.
- W636190832 cites W1560808444 @default.
- W636190832 cites W1572281730 @default.
- W636190832 cites W157294606 @default.
- W636190832 cites W1586187046 @default.
- W636190832 cites W1595220170 @default.
- W636190832 cites W1596404996 @default.
- W636190832 cites W1597810835 @default.
- W636190832 cites W1600979142 @default.
- W636190832 cites W1639032689 @default.
- W636190832 cites W1647671624 @default.
- W636190832 cites W1649645444 @default.
- W636190832 cites W1660390307 @default.
- W636190832 cites W1677598599 @default.
- W636190832 cites W1800478330 @default.
- W636190832 cites W1854214752 @default.
- W636190832 cites W1936022305 @default.
- W636190832 cites W1941013187 @default.
- W636190832 cites W1974655094 @default.
- W636190832 cites W1980851144 @default.
- W636190832 cites W1984248430 @default.
- W636190832 cites W1987869189 @default.
- W636190832 cites W1990104828 @default.
- W636190832 cites W1991435895 @default.
- W636190832 cites W1993438143 @default.
- W636190832 cites W1997841190 @default.
- W636190832 cites W2001730430 @default.
- W636190832 cites W2005568930 @default.
- W636190832 cites W2009543464 @default.
- W636190832 cites W2010887646 @default.
- W636190832 cites W2020376286 @default.
- W636190832 cites W2021672791 @default.
- W636190832 cites W2034400602 @default.
- W636190832 cites W2040311925 @default.
- W636190832 cites W2043825196 @default.
- W636190832 cites W2044556410 @default.
- W636190832 cites W2044807274 @default.
- W636190832 cites W2048819748 @default.
- W636190832 cites W2049585561 @default.
- W636190832 cites W2049624350 @default.
- W636190832 cites W2053703112 @default.
- W636190832 cites W2054580376 @default.
- W636190832 cites W2058335615 @default.
- W636190832 cites W2063958428 @default.
- W636190832 cites W2064873664 @default.
- W636190832 cites W2070948110 @default.
- W636190832 cites W2072267206 @default.
- W636190832 cites W2081326554 @default.
- W636190832 cites W2098975596 @default.
- W636190832 cites W2099056153 @default.
- W636190832 cites W2099069768 @default.
- W636190832 cites W2099630773 @default.
- W636190832 cites W2100310705 @default.
- W636190832 cites W2101567517 @default.
- W636190832 cites W2102772625 @default.
- W636190832 cites W2102948211 @default.
- W636190832 cites W2102964147 @default.
- W636190832 cites W2103188316 @default.
- W636190832 cites W2103640219 @default.
- W636190832 cites W2104830231 @default.
- W636190832 cites W2106013472 @default.
- W636190832 cites W2106286049 @default.
- W636190832 cites W2107967474 @default.
- W636190832 cites W2108112890 @default.
- W636190832 cites W2112533109 @default.
- W636190832 cites W2115443002 @default.
- W636190832 cites W2116334708 @default.
- W636190832 cites W2116574572 @default.
- W636190832 cites W2116707456 @default.
- W636190832 cites W2118023438 @default.
- W636190832 cites W2119033847 @default.
- W636190832 cites W2119070456 @default.
- W636190832 cites W2119821925 @default.
- W636190832 cites W2120703352 @default.
- W636190832 cites W2122581326 @default.
- W636190832 cites W2125999269 @default.
- W636190832 cites W2130388803 @default.
- W636190832 cites W2132992867 @default.
- W636190832 cites W2133437259 @default.
- W636190832 cites W2136224168 @default.
- W636190832 cites W2138621811 @default.
- W636190832 cites W2140922128 @default.