Spelling suggestions: "subject:"fault proneness"" "subject:"vault proneness""
1 |
Studying the Relation BetweenChange- and Fault-proneness : Are Change-prone Classes MoreFault-prone, and Vice-versa?Abdilrahim, Ahmad, Alhawi, Caesar January 2020 (has links)
Software is the heartbeat of modern technology. To keep up with the new demands and expansion of requirements, changes are constantly introduced to the software, i.e., changes can also be made to fix an existing fault/defect. However, these changes might also cause further faults/defects in the software. This study aims to investigate the possible correlation between change-proneness and fault-proneness in object- oriented systems. Forty releases of five different open-source systems are analysed to quantify change- and fault-proneness; Beam, Camel, Ignite, Jenkins, and JMe- ter, then statistic evidence is presented as to answer the following: (1) Is there is a relationship between change-proneness and fault-proneness for classes in object- oriented systems? (2) Is there a relationship between size and fault-proneness for classes in object-oriented systems? and (3) Is there a relationship between size and change-proneness for classes in object-oriented systems? Using the Wilcoxon rank- sum test, the results show that: (1) there is a correlation between change- and fault- proneness at a statistically significant level and (2) a correlation also exists betweenclass size and its change- and fault-proneness at a statistically significant level.
|
2 |
Investigation Of The Effects Of Reuse On Software Quality In An Industrial SettingDeniz, Berkhan 01 January 2013 (has links) (PDF)
Software reuse is a powerful tool in order to reduce development and maintenance time and cost. Any software life cycle product can be reused, not only fragments of source code. A high degree of reuse correlates with a low defect density. In the literature, many theoretical and empirical researches have examined the relationship of software reuse and quality. In this thesis, the effects of reuse on software quality are investigated in an industrial setting. Throughout this study, we worked with Turkey&rsquo / s leading defense industry company: Aselsan&rsquo / s software engineering department. We aimed to explore their real-life software projects and interpret reuse and quality relations for their projects. With this intention, we defined four different hypotheses to determine reuse and quality relations / and in order to confirm these hypotheses / we designed three separate case studies. In these case studies, we collected and calculated reuse and quality metrics i.e. Object-oriented quality metrics, reuse rates and performance measures of individual modules, fault-proneness of software components, and productivity rates of different products. Finally, by analyzing these measurements, we developed suggestions to further benefit from reuse in Aselsan through systematic improvements to the reuse infrastructure and process. Similar case studies have been reported in the literature, however, in Turkey, there are not many case studies using real-life project data, particularly in the defense industry.
|
3 |
The impact of design complexity on software cost and qualityDuc, Anh Nguyen January 2010 (has links)
Context: Early prediction of software cost and quality is important for better software planning and controlling. In early development phases, design complexity metrics are considered as useful indicators of software testing effort and some quality attributes. Although many studies investigate the relationship between design complexity and cost and quality, it is unclear what we have learned from these studies, because no systematic synthesis exists to date. Aim: The research presented in this thesis is intended to contribute for the body of knowledge about cost and quality prediction. A major part of this thesis presents the systematic review that provides detail discussion about state of the art of research on relationship between software design metric and cost and software quality. Method: This thesis starts with a literature review to identify the important complexity dimensions and potential predictors for predicting external software quality attributes are identified. Second, we aggregated Spearman correlation coefficients and estimated odds ratios from univariate logistic regression models from 59 different data sets from 57 primary studies by a tailored meta-analysis approach. At last, it is an attempt to evaluate and explain for disagreement among selected studies. Result: There are not enough studies for quantitatively summarizing relationship between design complexity and development cost. Fault proneness and maintainability is the main focused characteristics that consume 75% total number of studies. Within fault proneness and maintainability studies, coupling and scale are two complexity dimensions that are most frequently used. Vote counting shows evidence about positive impact of some design metrics on these two quality attributes. Meta analysis shows the aggregated effect size of Line of code (LOC) is stronger than those of WMC, RFC and CBO. The aggregated effect sizes of LCOM, DIT and NOC are at trivial to small level. In subgroup analysis, defect collections phase explains more than 50% of observed variation in five out of seven investigated metrics. Conclusions: Coupling and scale metrics are stronger correlated to fault proneness than cohesion and inheritance metrics. No design metrics are stronger single predictors than LOC. We found that there is a strong disagreement between the individual studies, and that defect collection phase is able to partially explain the differences between studies.
|
4 |
Analysing artefacts dependencies to evolving software systemsJaafar, Fehmi 08 1900 (has links)
Les logiciels sont en constante évolution, nécessitant une maintenance et un développement continus. Ils subissent des changements tout au long de leur vie, que ce soit pendant l'ajout de nouvelles fonctionnalités ou la correction de bogues.
Lorsque les logiciels évoluent, leurs architectures ont tendance à se dégrader et deviennent moins adaptables aux nouvelles spécifications des utilisateurs. En effet, les architectures de ces logiciels deviennent plus complexes et plus difficiles à maintenir à cause des nombreuses dépendances entre les artefacts.
Par conséquent, les développeurs doivent comprendre les dépendances entre les artefacts des logiciels
pour prendre des mesures proactives qui facilitent les futurs changements et ralentissent la dégradation des architectures des logiciels.
D'une part, le maintien d'un logiciel sans la compréhension des les dépendances entre ses artefacts peut conduire à l'introduction de défauts.
D'autre part, lorsque les développeurs manquent de connaissances sur l'impact de leurs activités de maintenance, ils peuvent introduire des défauts de conception, qui ont un impact négatif sur l'évolution du logiciel. Ainsi, les développeurs ont besoin de mécanismes pour comprendre comment le changement d'un artefact impacte le reste du logiciel.
Dans cette thèse, nous proposons trois contributions principales :
La spécification de deux nouveaux patrons de changement et leurs utilisations pour fournir aux développeurs des informations utiles concernant les dépendances de co-changement.
La spécification de la relation entre les patrons d'évolutions des artefacts et les fautes.
La découverte de la relation entre les dépendances des anti-patrons et la prédisposition des différentes composantes d'un logiciel aux fautes. / Program maintenance accounts for the largest part of the costs of any program.
During maintenance activities, developers implement changes (sometimes simultaneously) on artefacts to fix bugs and to implement new requirements.
Thus, developers need knowledge to identify hidden dependencies among programs artefacts and detect correlated artefacts.
As programs evolved, their designs become more complex over time and harder to
change. In the absence of the necessary knowledge on artefacts dependencies, developers could introduce design defects and faults that causes development and maintenance costs to rise.
Therefore, developers must understand the dependencies among program artefacts
and take proactive steps to facilitate future changes and minimize fault proneness.
On the one hand, maintaining a program without understanding the different
dependencies between their artefacts may lead to the introduction of faults. On the
other hand, when developers lack knowledge about the impact of their maintenance
activities, they may introduce design defects, which have a negative impact on program evolution. Thus, developers need mechanisms to understand how a change to an artefact will impact the rest of the programs artefacts and tools to detect design defects impact.
In this thesis, we propose three principal contributions. The first contribution is two novel change patterns to model new co-change and change propagation scenarios.
We introduce the Asynchrony change pattern, corresponding to macro co-changes, i.e., of files that co-change within a large time interval (change periods), and the Dephase change pattern, corresponding to dephase macro co-changes, i.e., macro co-changes that always happen with the same shifts in time. We present our approach, named Macocha, and we show that such new change patterns provide interesting
information to developers.
The second contribution is proposing a novel approach to analyse the evolution of different classes in object-oriented programs and to link different evolution behaviour
to faults. In particular, we define an evolution model for each class to study the evolution and the co-evolution dependencies among classes and to relate such dependencies with fault-proneness.
The third contribution concerns design defect dependencies impact. We propose
a study to mine the link between design defect dependencies, such as co-change
dependencies and static relationships, and fault proneness.
We found that the negative impact of design defects propagate through their dependencies.
The three contributions are evaluated on open-source programs.
|
5 |
Analysing artefacts dependencies to evolving software systemsJaafar, Fehmi 08 1900 (has links)
Les logiciels sont en constante évolution, nécessitant une maintenance et un développement continus. Ils subissent des changements tout au long de leur vie, que ce soit pendant l'ajout de nouvelles fonctionnalités ou la correction de bogues.
Lorsque les logiciels évoluent, leurs architectures ont tendance à se dégrader et deviennent moins adaptables aux nouvelles spécifications des utilisateurs. En effet, les architectures de ces logiciels deviennent plus complexes et plus difficiles à maintenir à cause des nombreuses dépendances entre les artefacts.
Par conséquent, les développeurs doivent comprendre les dépendances entre les artefacts des logiciels
pour prendre des mesures proactives qui facilitent les futurs changements et ralentissent la dégradation des architectures des logiciels.
D'une part, le maintien d'un logiciel sans la compréhension des les dépendances entre ses artefacts peut conduire à l'introduction de défauts.
D'autre part, lorsque les développeurs manquent de connaissances sur l'impact de leurs activités de maintenance, ils peuvent introduire des défauts de conception, qui ont un impact négatif sur l'évolution du logiciel. Ainsi, les développeurs ont besoin de mécanismes pour comprendre comment le changement d'un artefact impacte le reste du logiciel.
Dans cette thèse, nous proposons trois contributions principales :
La spécification de deux nouveaux patrons de changement et leurs utilisations pour fournir aux développeurs des informations utiles concernant les dépendances de co-changement.
La spécification de la relation entre les patrons d'évolutions des artefacts et les fautes.
La découverte de la relation entre les dépendances des anti-patrons et la prédisposition des différentes composantes d'un logiciel aux fautes. / Program maintenance accounts for the largest part of the costs of any program.
During maintenance activities, developers implement changes (sometimes simultaneously) on artefacts to fix bugs and to implement new requirements.
Thus, developers need knowledge to identify hidden dependencies among programs artefacts and detect correlated artefacts.
As programs evolved, their designs become more complex over time and harder to
change. In the absence of the necessary knowledge on artefacts dependencies, developers could introduce design defects and faults that causes development and maintenance costs to rise.
Therefore, developers must understand the dependencies among program artefacts
and take proactive steps to facilitate future changes and minimize fault proneness.
On the one hand, maintaining a program without understanding the different
dependencies between their artefacts may lead to the introduction of faults. On the
other hand, when developers lack knowledge about the impact of their maintenance
activities, they may introduce design defects, which have a negative impact on program evolution. Thus, developers need mechanisms to understand how a change to an artefact will impact the rest of the programs artefacts and tools to detect design defects impact.
In this thesis, we propose three principal contributions. The first contribution is two novel change patterns to model new co-change and change propagation scenarios.
We introduce the Asynchrony change pattern, corresponding to macro co-changes, i.e., of files that co-change within a large time interval (change periods), and the Dephase change pattern, corresponding to dephase macro co-changes, i.e., macro co-changes that always happen with the same shifts in time. We present our approach, named Macocha, and we show that such new change patterns provide interesting
information to developers.
The second contribution is proposing a novel approach to analyse the evolution of different classes in object-oriented programs and to link different evolution behaviour
to faults. In particular, we define an evolution model for each class to study the evolution and the co-evolution dependencies among classes and to relate such dependencies with fault-proneness.
The third contribution concerns design defect dependencies impact. We propose
a study to mine the link between design defect dependencies, such as co-change
dependencies and static relationships, and fault proneness.
We found that the negative impact of design defects propagate through their dependencies.
The three contributions are evaluated on open-source programs.
|
Page generated in 0.0536 seconds