共查询到20条相似文献,搜索用时 15 毫秒
1.
Stefan Hanenberg Sebastian Kleinschmager Romain Robbes Éric Tanter Andreas Stefik 《Empirical Software Engineering》2014,19(5):1335-1382
Static type systems play an essential role in contemporary programming languages. Despite their importance, whether static type systems impact human software development capabilities remains open. One frequently mentioned argument in favor of static type systems is that they improve the maintainability of software systems—an often-used claim for which there is little empirical evidence. This paper describes an experiment that tests whether static type systems improve the maintainability of software systems, in terms of understanding undocumented code, fixing type errors, and fixing semantic errors. The results show rigorous empirical evidence that static types are indeed beneficial to these activities, except when fixing semantic errors. We further conduct an exploratory analysis of the data in order to understand possible reasons for the effect of type systems on the three kinds of tasks used in this experiment. From the exploratory analysis, we conclude that developers using a dynamic type system tend to look at different files more frequently when doing programming tasks—which is a potential reason for the observed differences in time. 相似文献
2.
Subjective evaluation of software evolvability using code smells: An empirical study 总被引:2,自引:2,他引:0
This paper presents the results of an empirical study on the subjective evaluation of code smells that identify poorly evolvable
structures in software. We propose use of the term software evolvability to describe the ease of further developing a piece
of software and outline the research area based on four different viewpoints. Furthermore, we describe the differences between
human evaluations and automatic program analysis based on software evolvability metrics. The empirical component is based
on a case study in a Finnish software product company, in which we studied two topics. First, we looked at the effect of the
evaluator when subjectively evaluating the existence of smells in code modules. We found that the use of smells for code evaluation
purposes can be difficult due to conflicting perceptions of different evaluators. However, the demographics of the evaluators
partly explain the variation. Second, we applied selected source code metrics for identifying four smells and compared these
results to the subjective evaluations. The metrics based on automatic program analysis and the human-based smell evaluations
did not fully correlate. Based upon our results, we suggest that organizations should make decisions regarding software evolvability
improvement based on a combination of subjective evaluations and code metrics. Due to the limitations of the study we also
recognize the need for conducting more refined studies and experiments in the area of software evolvability.
相似文献
Casper LasseniusEmail: |
3.
4.
In this paper, we investigate the impact of team size on the software development effort. Using field data of over 200 software
projects from various industries, we empirically test the impact of team size and other variables—such as software size in
function points, ICASE tool and programming language type—on software development effort. Our results indicate that software
size in function points significantly impacts the software development effort. The two-way interactions between function points
and use of ICASE tool, and function points and language type are significant as well. Additionally, the interactions between
team size and programming language type, and team size and use of ICASE tool were all significant.
相似文献
James A. RodgerEmail: |
5.
Jie-Cherng Chen Author Vitae Author Vitae 《Journal of Systems and Software》2009,82(6):981-992
Many problem factors in the software development phase affect the maintainability of the delivered software systems. Therefore, understanding software development problem factors can help in not only reducing the incidence of project failure but can also ensure software maintainability. This study focuses on those software development problem factors which may possibly affect software maintainability. Twenty-five problem factors were classified into five dimensions; a questionnaire was designed and 137 software projects were surveyed. A K-means cluster analysis was performed to classify the projects into three groups of low, medium and high maintainability projects. For projects which had a higher level of severity of problem factors, the influence on software maintainability becomes more obvious. The influence of software process improvement (SPI) on project problems and the associated software maintainability was also examined in this study. Results suggest that SPI can help reduce the level of severity of the documentation quality and process management problems, and is only likely to enhance software maintainability to a medium level. Finally, the top 10 list of higher-severity software development problem factors was identified, and implications were discussed. 相似文献
6.
Suresh Thummalapenta Luigi Cerulo Lerina Aversano Massimiliano Di Penta 《Empirical Software Engineering》2010,15(1):1-34
Code cloning has been very often indicated as a bad software development practice. However, many studies appearing in the
literature indicate that this is not always the case. In fact, either changes occurring in cloned code are consistently propagated,
or cloning is used as a sort of templating strategy, where cloned source code fragments evolve independently. This paper (a)
proposes an automatic approach to classify the evolution of source code clone fragments, and (b) reports a fine-grained analysis
of clone evolution in four different Java and C software systems, aimed at investigating to what extent clones are consistently
propagated or they evolve independently. Also, the paper investigates the relationship between the presence of clone evolution
patterns and other characteristics such as clone radius, clone size and the kind of change the clones underwent, i.e., corrective
maintenance or enhancement. 相似文献
7.
Concern about the quality of software is widespread. Reliable data about current practice are hard to get as no one likes to admit that they are producing poor software. In a recent survey, Wilson has taken an approach to obtaining data about the practice of software quality assurance among companies in Australia. The same technique has been used here to investigate practice among companies in Europe and America. The survey ams to investigate quality systems used by the organizations, and the application of these systems by software fevelopers. In this paper they are compared with the Australian experience and the results of the survey shown. The company's demographic data and overall response pattern from this survey are compared with Wilson's. Patterns in software quality assurance programs of organizations are suggested by comparing the management's perspective with that of the developers. The most popular software development techniques identified by the developers are prioritized in the order of their popularity by using a weighting scheme and their implications are discussed. 相似文献
8.
9.
Release notes are an important source of information about a new software release. Such notes contain information regarding what is new, changed, and/or got fixed in a release. Despite the importance of release notes, they are rarely explored in the research literature. Little is known about the contained information, e.g., contents and structure, in release notes. To better understand the types of contained information in release notes, we manually analyzed 85 release notes across 15 different software systems. In our manual analysis, we identify six different types of information (e.g., caveats and addressed issues) that are contained in release notes. Addressed issues refer to new features, bugs, and improvements that were integrated in that particular release. We observe that most release notes list only a selected number of addressed issues (i.e., 6-26 % of all addressed issues in a release). We investigated nine different factors (e.g., issue priority and type) to better understand the likelihood of an issue being listed in release notes. The investigation is conducted on eight release notes of three software systems using four machine learning techniques. Results show that certain factors, e.g., issue type, have higher influence on the likelihood of an issue to be listed in release notes. We use machine learning techniques to automatically suggest the issues to be listed in release notes. Our results show that issues listed in all release notes can be automatically determined with an average precision of 84 % and an average recall of 90 %. To train and build the classification models, we also explored three scenarios: (a) having the user label some issues for a release and automatically suggest the remaining issues for that particular release, (b) using the previous release notes for the same software system, and (c) using prior releases for the current software system and the rest of the studied software systems. Our results show that the content of release notes vary between software systems and across the versions of the same software system. Nevertheless, automated techniques can provide reasonable support to the writers of such notes with little training data. Our study provides developers with empirically-supported advice about release notes instead of simply relying on adhoc advice from on-line inquiries. 相似文献
10.
Daniel M. German 《Empirical Software Engineering》2006,11(3):369-393
Software is typically improved and modified in small increments (we refer to each of these increments as a modification record—MR).
MRs are usually stored in a configuration management or version control system and can be retrieved for analysis. In this
study we retrieved the MRs from several mature open software projects. We then concentrated our analysis on those MRs that
fix defects and provided heuristics to automatically classify them. We used the information in the MRs to visualize what files
are changed at the same time, and who are the people who tend to modify certain files. We argue that these visualizations
can be used to understand the development stage of in which a project is at a given time (new features are added, or defects
are being fixed), the level of modularization of a project, and how developers might interact between each other and the source
code of a system. 相似文献
11.
Source code documentation often contains summaries of source code written by authors. Recently, automatic source code summarization tools have emerged that generate summaries without requiring author intervention. These summaries are designed for readers to be able to understand the high-level concepts of the source code. Unfortunately, there is no agreed upon understanding of what makes up a “good summary.” This paper presents an empirical study examining summaries of source code written by authors, readers, and automatic source code summarization tools. This empirical study examines the textual similarity between source code and summaries of source code using Short Text Semantic Similarity metrics. We found that readers use source code in their summaries more than authors do. Additionally, this study finds that accuracy of a human written summary can be estimated by the textual similarity of that summary to the source code. 相似文献
12.
Miyoshi T. Azuma M. 《IEEE transactions on pattern analysis and machine intelligence》1993,19(5):425-435
A study that evaluates new-paradigm-oriented software development environments which have been developed in the five-year formal approach to software environment technology (FASET) project is reviewed. For this study, a software environment evaluation technology based on a software quality evaluation process model defined in ISO/IEC 9126 has been developed. The evaluation technology has been applied to the R&D project at the middle and final phase of development. The evaluation results provide useful information to develop a widely acceptable evaluation technology and to improve the new-paradigm-oriented software development environments that are based on various specification methods: the algebraic specification method, function-oriented specification method, declarative specification method, natural-language-oriented specification method, diagrammatic specification method, state-transition-oriented specification method, and model-based specification method 相似文献
13.
Finding and fixing software code defects is crucial to product quality. It also, however, often proves difficult and time-consuming, especially late in the development cycle. While some believe that code analysis provides a simple way to detect quality defects, the authors argue otherwise. To prove their point, they analyzed data from error reports, and their results show that code analysis detects only a small percentage of meaningful defects 相似文献
14.
Best practices in code inspection for safety-critical software 总被引:1,自引:0,他引:1
One of the most important issues in analyzing safety-critical systems is code verification through an inspection checklist, whose items must be applied to the source code. The attention given to this list will help ensure obedience to good coding rules and represents an important factor in the design of safety-critical systems. This list also helps in the development of non-safety-critical systems, improving their quality and correctness. 相似文献
15.
16.
Context
Cost advantage has been one of the primary drivers of successful offshoring engagements of Indian software and services companies. However, the emphasis has shifted to the ability of the vendors to provide high quality over cost advantage in delivering software products and services. Meeting high quality requirements of the clients is a challenge due to the very nature of development and delivery of software through offshoring.Objective
The objective of this research paper is to identify and evaluate the key determinants of quality in the case of software projects delivered through offshoring model.Method
A detailed survey was conducted among project managers/project leaders (leads) of a leading midsize Indian IT services company to evaluate the relationship of the determinants on the attributes of quality.Results
Out of six determinants, our research reveals requirements uncertainty has significant association with all the attributes of quality. While process maturity and trained personnel have moderate association, communication and control, knowledge transfer and integration and technical infrastructure have relatively low association on software quality attributes in the case of offshoring.Conclusion
It is concluded that the complexities in offshoring necessitates proper capturing of requirements. In addition high level of process maturity and availability of trained personnel to the project will help vendors to achieve software quality. The paper provides a set of implications for practice and directions for further research. 相似文献17.
18.
《Information and Software Technology》2000,42(1):47-65
In software engineering there is a need for technologies that will significantly decrease effort in developing software products, increase quality of software products and decrease time-to-markets. The software development industry can be improved by utilizing and managing software reuse with an “empirically validated reference model” that can be customized for different kinds of software development enterprises. Our research thesis is that software development based on a software reuse reference model improves the competitive edge and time-to-market of many software development enterprises. The definition and study of such a model has been carried out using four steps. First, the reference model developed here is based on the existing software reuse concepts. Second, this reference model is an empirical study which uses both legacy studies and lessons learned studies. Third, the impact of the reference model on software development effort, quality, and time-to-market is empirically derived. Fourth, an initial set of successful cases, which are based on the software reuse reference model utilization, are identified. The main contribution of this paper is a reference model for the practice of software reuse. A secondary contribution is an initial set of cases from software development enterprises which are successful in the practice of reuse in terms of decreased effort, increased quality and a high correlation in their application of our software reuse reference model activities. 相似文献
19.
Paulson J.W. Succi G. Eberlein A. 《IEEE transactions on pattern analysis and machine intelligence》2004,30(4):246-256
We describe an empirical study of open-source and closed-source software projects. The motivation for this research is to quantitatively investigate common perceptions about open-source projects, and to validate these perceptions through an empirical study. We investigate the hypothesis that open-source software grows more quickly, but does not find evidence to support this. The project growth is similar for all the projects in the analysis, indicating that other factors may limit growth. The hypothesis that creativity is more prevalent in open-source software is also examined, and evidence to support this hypothesis is found using the metric of functions added over time. The concept of open-source projects succeeding because of their simplicity is not supported by the analysis, nor is the hypothesis of open-source projects being more modular. However, the belief that defects are found and fixed more rapidly in open-source projects is supported by an analysis of the functions modified. We find support for two of the five common beliefs and conclude that, when implementing or switching to the open-source development model, practitioners should ensure that an appropriate metrics collection strategy is in place to verify the perceived benefits. 相似文献
20.
Software Quality Journal - In software engineering predictive modeling, early prediction of software modules or classes that possess high maintainability effort is a challenging task. Many... 相似文献