Empirical Software Engineering

Công bố khoa học tiêu biểu

* Dữ liệu chỉ mang tính chất tham khảo

Sắp xếp:  
A practice-driven systematic review of dependency analysis solutions
Empirical Software Engineering - Tập 16 - Trang 544-586 - 2011
Trosky B. Callo Arias, Pieter van der Spek, Paris Avgeriou
When following architecture-driven strategies to develop large software-intensive systems, the analysis of the dependencies is not an easy task. In this paper, we report a systematic literature review on dependency analysis solutions. Dependency analysis concerns making dependencies due to interconnections between programs or system components explicit. The review is practice-driven because its research questions, execution, and reporting were influenced by the practice of a group of software architects at Philips Healthcare MRI. The review results in an overview and assessment of the state-of-the-art and applicability of dependency analysis. The overview provides insights about definitions related to dependency analysis, the sort of development activities that need dependency analysis, and the classification and description of a number of dependency analysis solutions. The contribution of this paper is for both practitioners and researchers. They can take it as a reference to learn about dependency analysis, match their own practice to the presented results, and to build similar overviews of other techniques and methods for other domains or types of systems.
Understanding the motivations, challenges and needs of Blockchain software developers: a survey
Empirical Software Engineering - Tập 24 - Trang 2636-2673 - 2019
Amiangshu Bosu, Anindya Iqbal, Rifat Shahriyar, Partha Chakraborty
The blockchain technology has potential applications in various areas such as smart-contracts, Internet of Things (IoT), land registry, supply chain management, storing medical data, and identity management. Although GitHub currently hosts more than six thousand active Blockchain software (BCS) projects, few software engineering researchers have investigated these projects and their contributors. Although the number of BCS projects is growing rapidly, the motivations, challenges, and needs of BCS developers remain a puzzle. Therefore, the primary objective of this study is to understand the motivations, challenges, and needs of BCS developers and analyze the differences between BCS and non-BCS development. On this goal, we sent an online survey to 1,604 active BCS developers identified by mining the GitHub repositories of 145 popular BCS projects. The survey received 156 responses that met our criteria for analysis. The results suggest that the majority of the BCS developers are experienced in non-BCS development and are primarily motivated by the ideology of creating a decentralized financial system. Although most of the BCS projects are Open Source Software (OSS) projects by nature, more than 93% of our respondents found BCS development somewhat different from a non-BCS development as BCS projects have higher emphasis on security and reliability than most of the non-BCS projects. Other differences include: higher costs of defects, decentralized and hostile environment, technological complexity, and difficulty in upgrading the software after release. These differences were also the primary sources of challenges to them. Software development tools that are tuned for non-BCS development are inadequate for BCS and the ecosystem needs an array of new or improved tools, such as: customized IDE for BCS development tasks, debuggers for smart-contracts, testing support, easily deployable simulators, and BCS domain specific design notations.
How and why we end up with complex methods: a multi-language study
Empirical Software Engineering - Tập 27 Số 5 - 2022
Mateus Eustáquio Lopes, André Hora
Using structural and semantic measures to improve software modularization
Empirical Software Engineering - Tập 18 Số 5 - Trang 901-932 - 2013
Gabriele Bavota, Andrea De Lucia, Andrian Marcus, Rocco Oliveto
Revisiting process versus product metrics: a large scale analysis
Empirical Software Engineering - Tập 27 - Trang 1-42 - 2022
Suvodeep Majumder, Pranav Mody, Tim Menzies
Numerous methods can build predictive models from software data. However, what methods and conclusions should we endorse as we move from analytics in-the-small (dealing with a handful of projects) to analytics in-the-large (dealing with hundreds of projects)? To answer this question, we recheck prior small-scale results (about process versus product metrics for defect prediction and the granularity of metrics) using 722,471 commits from 700 Github projects. We find that some analytics in-the-small conclusions still hold when scaling up to analytics in-the-large. For example, like prior work, we see that process metrics are better predictors for defects than product metrics (best process/product-based learners respectively achieve recalls of 98%/44% and AUCs of 95%/54%, median values). That said, we warn that it is unwise to trust metric importance results from analytics in-the-small studies since those change dramatically when moving to analytics in-the-large. Also, when reasoning in-the-large about hundreds of projects, it is better to use predictions from multiple models (since single model predictions can become confused and exhibit a high variance).
EASE 2000 Editorial
Empirical Software Engineering - Tập 5 - Trang 171-174 - 2000
Studying the urgent updates of popular games on the Steam platform
Empirical Software Engineering - Tập 22 - Trang 2095-2126 - 2016
Dayi Lin, Cor-Paul Bezemer, Ahmed E. Hassan
The steadily increasing popularity of computer games has led to the rise of a multi-billion dollar industry. This increasing popularity is partly enabled by online digital distribution platforms for games, such as Steam. These platforms offer an insight into the development and test processes of game developers. In particular, we can extract the update cycle of a game and study what makes developers deviate from that cycle by releasing so-called urgent updates. An urgent update is a software update that fixes problems that are deemed critical enough to not be left unfixed until a regular-cycle update. Urgent updates are made in a state of emergency and outside the regular development and test timelines which causes unnecessary stress on the development team. Hence, avoiding the need for an urgent update is important for game developers. We define urgent updates as 0-day updates (updates that are released on the same day), updates that are released faster than the regular cycle, or self-admitted hotfixes. We conduct an empirical study of the urgent updates of the 50 most popular games from Steam, the dominant digital game delivery platform. As urgent updates are reflections of mistakes in the development and test processes, a better understanding of urgent updates can in turn stimulate the improvement of these processes, and eventually save resources for game developers. In this paper, we argue that the update strategy that is chosen by a game developer affects the number of urgent updates that are released. Although the choice of update strategy does not appear to have an impact on the percentage of updates that are released faster than the regular cycle or self-admitted hotfixes, games that use a frequent update strategy tend to have a higher proportion of 0-day updates than games that use a traditional update strategy.
Multi-language design smells: a backstage perspective
Empirical Software Engineering - Tập 27 - Trang 1-52 - 2022
Mouna Abidi, Md Saidur Rahman, Moses Openja, Foutse Khomh
Multi-language systems became prevalent with technological advances. Developers opt for the combination of programming languages to build a single application. Such combinations of programming languages allow the reuse of existing code and libraries without re-implementing the code from scratch. Software quality is achieved by following good software development practices and avoiding the bad ones. However, most of the practices in the literature apply to mono-language systems only and do not consider the interaction between programming languages. We previously defined a catalog of bad practices i.e., design smells related to multi-language systems. This paper aims to provide empirical evidence on the relevance of multi-language design smells and their perceived impacts on software quality. We analysed eight open source projects to detect occurrences of 15 types of multi-language design smells. We also extracted information about the developers that contributed to those systems. We performed an open and a closed survey targeting developers in general but also developers who contributed to those systems. We surveyed developers about the perceived prevalence of multi-language design smells their severity, and their impact on software quality attributes. We report that most of the studied design smells are perceived as design or implementation problems. Our results suggest that the studied design smells could be introduced mainly during refactoring and maintenance activities, and during regular development tasks. Our results also point that multi-language design smells are perceived as harmful and have negative impacts on software quality. The perceived prevalence of design smells and their impact varies from one specific smell type to the others. We believe that our findings are important for developers and researchers interested in improving the quality of multi-language systems as it can help them prioritize design smells during maintenance activities.
Correction to: Wait for it: identifying “On-Hold” self-admitted technical debt
Empirical Software Engineering - Tập 26 - Trang 1-2 - 2021
Rungroj Maipradit, Christoph Treude, Hideaki Hata, Kenichi Matsumoto
A Correction to this paper has been published: https://doi.org/10.1007/s10664-021-09939-7
Studying backers and hunters in bounty issue addressing process of open source projects
Empirical Software Engineering - - 2021
Jiayuan Zhou, Shaowei Wang, Haoxiang Zhang, Tse-Hsun Chen, Ahmed E. Hassan
Tổng số: 1,120   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 10