11 |
Toward Improved Understanding and Management of Software ClonesWang, Wei 18 April 2012 (has links)
The cloning of code is controversial as a development practice. Empirical studies on the long-term effects of cloning on software quality and maintainability have produced mixed results. Some studies have found that cloning has a negative impact on code readability, bug propagation, and the presence of cloning may indicate wider problems in software design and management. At the same time, other studies have found that cloned code is less likely to have defects, and thus is arguably more stable, better designed, and better maintained. These results suggest that the effect of cloning on software quality and maintainability may be determinable only on a case-by-case basis, and this only aggravates the challenge of establishing a principled framework of clone management and understanding.
This thesis aims to improve the understanding and management of clones within software systems. There are two main contributions.
First, we have conducted an empirical study on cloning in one of the major device drivers families of the Linux kernel. Different from many previous empirical studies on cloning, we incorporate the knowledge about the development style, and the architecture of the subject system into our study; our findings address the evolution of clones; we have also found that the presence of cloning is a strong predictor (87\% accuracy) of one aspect of underlying hardware similarity when compared to a vendor-based model (55\% accuracy) and a randomly chosen model (9\% accuracy). The effectiveness of using the presence of cloning to infer high-level similarity suggests a new perspective of using cloning information to assist program comprehension, aspect mining, and software product-line engineering.
Second, we have devised a triage-oriented taxonomy of clones to aid developers in prioritizing which kinds of clones are most likely to be problematic and require attention; a preliminary validation of the utility of this taxonomy has been performed against a large open source system. The cloning-based software quality assurance (QA) framework based on our taxonomy adds a new dimension to traditional software QA processes; by exploiting the clone detection results within a guided framework, the developer is able to evaluate which instances of cloning are most likely to require urgent attention.
|
12 |
Quantitative Evaluation of Software Quality Metrics in Open-Source ProjectsBarkmann, Henrike January 2009 (has links)
<p>The validation of software quality metrics lacks statistical</p><p>significance. One reason for this is that the data collection</p><p>requires quite some effort. To help solve this problem,</p><p>we develop tools for metrics analysis of a large number of</p><p>software projects (146 projects with ca. 70.000 classes and</p><p>interfaces and over 11 million lines of code). Moreover, validation</p><p>of software quality metrics should focus on relevant</p><p>metrics, i.e., correlated metrics need not to be validated independently.</p><p>Based on our statistical basis, we identify correlation</p><p>between several metrics from well-known objectoriented</p><p>metrics suites. Besides, we present early results of</p><p>typical metrics values and possible thresholds.</p>
|
13 |
Design metrics forensics : an analysis of the primitive metrics in the Zage design metricsKwan, Pak Leung January 1994 (has links)
The Software Engineering Research Center (SERC) Design Metrics Research Team at Ball State University has developed a design metric D(G) of the form:D(G) = D~ + DiWhere De is the architectural design metric (external design metric) and D; is the detailed design metric (internal design metric).Questions to be investigated in this thesis are:Why can D, be an indicator of the potential error modules?Why can D; be an indicator of the potential error modules?Are there any significant factors that dominate the design metrics?In this thesis, the report of the STANFINS data is evaluated by using correlation analysis, regression analysis, and several other statistical techiques. The STANFINS study is chosen because it contains approximately 532 programs, 3,000 packages and 2,500,000 lines of Ada.The design metrics study was completed on 21 programs (approximately 24,000 lines of code) which were selected by CSC development teams. Error reports were also provided by CSC personnel. / Department of Computer Science
|
14 |
Toward Improved Understanding and Management of Software ClonesWang, Wei 18 April 2012 (has links)
The cloning of code is controversial as a development practice. Empirical studies on the long-term effects of cloning on software quality and maintainability have produced mixed results. Some studies have found that cloning has a negative impact on code readability, bug propagation, and the presence of cloning may indicate wider problems in software design and management. At the same time, other studies have found that cloned code is less likely to have defects, and thus is arguably more stable, better designed, and better maintained. These results suggest that the effect of cloning on software quality and maintainability may be determinable only on a case-by-case basis, and this only aggravates the challenge of establishing a principled framework of clone management and understanding.
This thesis aims to improve the understanding and management of clones within software systems. There are two main contributions.
First, we have conducted an empirical study on cloning in one of the major device drivers families of the Linux kernel. Different from many previous empirical studies on cloning, we incorporate the knowledge about the development style, and the architecture of the subject system into our study; our findings address the evolution of clones; we have also found that the presence of cloning is a strong predictor (87\% accuracy) of one aspect of underlying hardware similarity when compared to a vendor-based model (55\% accuracy) and a randomly chosen model (9\% accuracy). The effectiveness of using the presence of cloning to infer high-level similarity suggests a new perspective of using cloning information to assist program comprehension, aspect mining, and software product-line engineering.
Second, we have devised a triage-oriented taxonomy of clones to aid developers in prioritizing which kinds of clones are most likely to be problematic and require attention; a preliminary validation of the utility of this taxonomy has been performed against a large open source system. The cloning-based software quality assurance (QA) framework based on our taxonomy adds a new dimension to traditional software QA processes; by exploiting the clone detection results within a guided framework, the developer is able to evaluate which instances of cloning are most likely to require urgent attention.
|
15 |
Curbing Dependencies in Software Evolution of Object-Oriented SystemsSkoglund, Mats January 2006 (has links)
<p>Relationships between classes and objects in object-oriented software are necessary in order for the parts of the systems to provide dynamic behavior. These inherent relationships also create dependencies which can give rise to problems for software evolution of object-oriented software systems. Dependencies in software make systems difficult to understand, reuse, change and verify.</p><p>This thesis presents analytical and empirical investigations of dependency-related problems in software evolution of object-oriented software and on how such problems can be handled with dependency focused techniques, methods and processes.</p><p>The research presented in this thesis includes: Development of a programming language construct for controlling dependencies; formal experiments on code inspection techniques; exploring change strategies' effects on test suites; an industrial case study of regression test selection techniques for object-oriented software; proving the efficiency and defect detection capabilities of a novel regression test selection technique.</p><p>The thesis contributes to increased knowledge on the role of dependencies in software evolution of object-oriented software. Specific contributions are a programming language construct that can control access to dependencies in software. Other main contributions are insights on the efficiency of dependency focused code inspection techniques and contribution to the knowledge on dependency-based regression test selection techniques for large scale software. Another contribution is a novel change-based regression test selection technique.</p>
|
16 |
STUDYING SOFTWARE QUALITY USING TOPIC MODELSChen, TSE-HSUN 14 January 2013 (has links)
Software is an integral part of our everyday lives, and hence the quality of software is very important. However, improving and maintaining high software quality is a difficult task, and a significant amount of resources is spent on fixing software defects. Previous studies have studied software quality using various measurable aspects of software, such as code size and code change history. Nevertheless, these metrics do not consider all possible factors that are related to defects. For instance, while lines of code may be a good general measure for defects, a large file responsible for simple I/O tasks is likely to have fewer defects than a small file responsible for complicated compiler implementation details. In this thesis, we address this issue by considering the conceptual concerns (or features). We use a statistical topic modelling approach to approximate the conceptual concerns as topics. We then use topics to study software quality along two dimensions: code quality and code testedness. We perform our studies using three versions of four large real-world software systems: Mylyn, Eclipse, Firefox, and NetBeans.
Our proposed topic metrics help improve the defect explanatory power (i.e., fitness of the regression model) of traditional static and historical metrics by 4–314%. We compare one of our metrics, which measures the cohesion of files, with other topic-based cohesion and coupling metrics in the literature and find that our metric gives the greatest improvement in explaining defects over traditional software quality metrics (i.e., lines of code) by 8–55%.
We then study how we can use topics to help improve the testing processes. By training on previous releases of the subject systems, we can predict not well-tested topics that are defect prone in future releases with a precision and recall of 0.77 and 0.75, respectively. We can map these topics back to files and help allocate code inspection and testing resources. We show that our approach outperforms traditional prediction-based resource allocation approaches in terms of saving testing and code inspection efforts.
The results of our studies show that topics can be used to study software quality and support traditional quality assurance approaches. / Thesis (Master, Computing) -- Queen's University, 2013-01-08 10:10:37.878
|
17 |
Are There Too Many R Packages?Hornik, Kurt January 2012 (has links) (PDF)
The number of R extension packages available from the CRAN
repository has tremendously grown over the past 10 years. We look at this
phenomenon in more detail, and discuss some of its consequences. In particular,
we argue that the statistical computing community needs a more common
understanding of software quality, and better domain-specific semantic
resources.
|
18 |
Fatores humanos no processo de desenvolvimento de software: um estudo visando qualidade. / Human factors in software development process.Sandhof, Karen 05 November 2004 (has links)
Os modelos para melhoria da qualidade de software são fundamentados na tríade processo-pessoas-tecnologia. Este trabalho busca a relação entre dois destes pilares da qualidade de software: o processo de desenvolvimento e o ser humano. Este trabalho avalia como os modelos de qualidade de software consideram o ser humano e caracteriza a inserção de defeitos no software por seus desenvolvedores como erros humanos cometidos no processo de desenvolvimento. Fatores humanos condicionantes do desempenho são identificados e, através de pesquisa de campo cujo objetivo é explorar a realidade do processo de desenvolvimento de software, analisam-se os fatores humanos que podem afetar a qualidade de software, principalmente no que diz respeito às características de funcionalidade e confiabilidade. / Software quality improvement models are based on the triplet process-people-technology. This research works on the relationship between two of these fundamental structures of software quality: human beings and the development process. This work evaluates how software quality models consider human beings and characterizes defect insertion in software products by developers as human errors throughout the development process. Some human factors are identified as performance-shaping and, by the means of a field study intended to explore the reality of software development, they are analyzed as influences on software quality, mainly respective to functionality and reliability characteristics.
|
19 |
Fatores humanos no processo de desenvolvimento de software: um estudo visando qualidade. / Human factors in software development process.Karen Sandhof 05 November 2004 (has links)
Os modelos para melhoria da qualidade de software são fundamentados na tríade processo-pessoas-tecnologia. Este trabalho busca a relação entre dois destes pilares da qualidade de software: o processo de desenvolvimento e o ser humano. Este trabalho avalia como os modelos de qualidade de software consideram o ser humano e caracteriza a inserção de defeitos no software por seus desenvolvedores como erros humanos cometidos no processo de desenvolvimento. Fatores humanos condicionantes do desempenho são identificados e, através de pesquisa de campo cujo objetivo é explorar a realidade do processo de desenvolvimento de software, analisam-se os fatores humanos que podem afetar a qualidade de software, principalmente no que diz respeito às características de funcionalidade e confiabilidade. / Software quality improvement models are based on the triplet process-people-technology. This research works on the relationship between two of these fundamental structures of software quality: human beings and the development process. This work evaluates how software quality models consider human beings and characterizes defect insertion in software products by developers as human errors throughout the development process. Some human factors are identified as performance-shaping and, by the means of a field study intended to explore the reality of software development, they are analyzed as influences on software quality, mainly respective to functionality and reliability characteristics.
|
20 |
Software design measures for distributed enterprise Information systemsRossi, Pablo Hernan, pablo@cs.rmit.edu.au January 2004 (has links)
Enterprise information systems are increasingly being developed as distributed information systems. Quality attributes of distributed information systems, as in the centralised case, should be evaluated as early and as accurately as possible in the software engineering process. In particular, software measures associated with quality attributes of such systems should consider the characteristics of modern distributed technologies. Early design decisions have a deep impact on the implementation of distributed enterprise information systems and thus, on the ultimate quality of the software as an operational entity. Due to the fact that the distributed-software engineering process affords software engineers a number of design alternatives, it is important to develop tools and guidelines that can be used to assess and compare design artefacts quantitatively. This dissertation makes a contribution to the field of Software Engineering by proposing and evaluating software design measures for distributed enterprise information systems. In previous research, measures developed for distributed software have been focused in code attributes, and thus, only provide feedback towards the end of the software engineering process. In contrast, this thesis proposes a number of specific design measures that provide quantitative information before the implementation. These measures capture attributes of the structure and behaviour of distributed information systems that are deemed important to assess their quality attributes, based on the analysis of the problem domain. The measures were evaluated theoretically and empirically as part of a well defined methodology. On the one hand, we have followed a formal framework based on the theory of measurement, in order to carry out the theoretical validation of the proposed measures. On the other hand, the suitability of the measures, to be used as indicators of quality attributes, was evaluated empirically with a robust statistical technique for exploratory research. The data sets analysed were gathered after running several experiments and replications with a distributed enterprise information system. The results of the empirical evaluation show that most of the proposed measures are correlated to the quality attributes of interest, and that most of these measures may be used, individually or in combination, for the estimation of these quality attributes-namely efficiency, reliability and maintainability. The design of a distributed information system is modelled as a combination of its structure, which reflects static characteristics, and its behaviour, which captures complementary dynamic aspects. The behavioural measures showed slightly better individual and combined results than the structural measures in the experimentation. This was in line with our expectations, since the measures were evaluated as indicators of non-functional quality attributes of the operational system. On the other hand, the structural measures provide useful feedback that is available earlier in the software engineering process. Finally, we developed a prototype application to collect the proposed measures automatically and examined typical real-world scenarios where the measures may be used to make design decisions as part of the software engineering process.
|
Page generated in 0.0772 seconds