78 research outputs found
Investigating the Impact of Continuous Integration Practices on the Productivity and Quality of Open-Source Projects
Background: Much research has been conducted to investigate the impact of
Continuous Integration (CI) on the productivity and quality of open-source
projects. Most of studies have analyzed the impact of adopting a CI server
service (e.g, Travis-CI) but did not analyze CI sub-practices. Aims: We aim to
evaluate the impact of five CI sub-practices with respect to the productivity
and quality of GitHub open-source projects. Method: We collect CI sub-practices
of 90 relevant open-source projects for a period of 2 years. We use regression
models to analyze whether projects upholding the CI sub-practices are more
productive and/or generate fewer bugs. We also perform a qualitative document
analysis to understand whether CI best practices are related to a higher
quality of projects. Results: Our findings reveal a correlation between the
Build Activity and Commit Activity sub-practices and the number of merged pull
requests. We also observe a correlation between the Build Activity, Build
Health and Time to Fix Broken Builds sub-practices and number of bug-related
issues. The qualitative analysis reveals that projects with the best values for
CI sub-practices face fewer CI-related problems compared to projects that
exhibit the worst values for CI sub-practices. Conclusions: We recommend that
projects should strive to uphold the several CI sub-practices as they can
impact in the productivity and quality of projects.Comment: Paper accepted for publication by The ACM/IEEE International
Symposium on Empirical Software Engineering and Measurement (ESEM
Tracy: A Business-driven Technical Debt Prioritization Framework
Technical debt is a pervasive problem in software development. Software
development teams have to prioritize debt items and determine whether they
should address debt or develop new features at any point in time. This paper
presents "Tracy", a framework for the prioritization of technical debt using a
business-driven approach built on top of business processes. The current stage
of the proposed framework is at the beginning of the third phase of Design
Science Research, which is usually divided into the phases of exploration,
engineering, and evaluation. The exploration and engineering phases involved
the participation of 49 professionals from 12 different groups of three
companies. The initial evaluation shows that the presented framework is
coherent in its structure and that its results contribute to business-driven
decision making on technical debt prioritization.Comment: Preprint submitted to the 35th International Conference on Software
Maintenance and Evolution (ICSME'19
Business-Driven Technical Debt Prioritization: An Industrial Case Study
Incorporating the business perspective into prioritizing technical debt is
essential to contribute to decision making in industry. In this paper, we
evolve and evaluate a business-driven approach for technical debt
prioritization. The approach was evaluated during a five-month industrial case
study with business and technical stakeholders' active participation. The
results show that the approach contributed to aligning business criteria
between the business and technical stakeholders. We also observed a downward
trend in the amount of technical debt that affects high-value business assets.
Moreover, we identified eight business factors that affect the decision making
related to the prioritization of technical debt. The study results suggest that
the proposed business-driven technical debt prioritization approach can help
teams to focus their efforts on paying off the business' most relevant debt.Comment: Accepted for publication at the International Conference on Technical
Debt 2021 (https://2021.techdebtconf.org/
How do Machine Learning Projects use Continuous Integration Practices? An Empirical Study on GitHub Actions
Continuous Integration (CI) is a well-established practice in traditional
software development, but its nuances in the domain of Machine Learning (ML)
projects remain relatively unexplored. Given the distinctive nature of ML
development, understanding how CI practices are adopted in this context is
crucial for tailoring effective approaches. In this study, we conduct a
comprehensive analysis of 185 open-source projects on GitHub (93 ML and 92
non-ML projects). Our investigation comprises both quantitative and qualitative
dimensions, aiming to uncover differences in CI adoption between ML and non-ML
projects. Our findings indicate that ML projects often require longer build
durations, and medium-sized ML projects exhibit lower test coverage compared to
non-ML projects. Moreover, small and medium-sized ML projects show a higher
prevalence of increasing build duration trends compared to their non-ML
counterparts. Additionally, our qualitative analysis illuminates the
discussions around CI in both ML and non-ML projects, encompassing themes like
CI Build Execution and Status, CI Testing, and CI Infrastructure. These
insights shed light on the unique challenges faced by ML projects in adopting
CI practices effectively.Comment: 10 pages, Mining Software Repositories, MSR 202
A model-driven traceability framework for software product lines
International audienceSoftware product line (SPL) engineering is a recent approach to software development where a set of software products are derived for a well defined target application domain, from a common set of core assets using analogous means of production (for instance, through Model Driven Engineering). Therefore, such family of products are built from reuse, instead of developed individually from scratch. SPL promise to lower the costs of development, increase the quality of software, give clients more flexibility and reduce time to market. These benefits come with a set of new problems and turn some older problems possibly more complex. One of these problems is traceability management. In the Europe an AMPLE project we are creating a common traceability framework across the various activities of the SPL development. We identified four orthogonal traceability dimensions in SPL development, one of which is an extension of what is often considered as "traceability of variability". This constitutes one of the two contributions of this paper. The second contribution is the specification of a metamodel for a repository of traceability links in the context of SPL and the implementation of a respective traceability framework. This framework enables fundamental traceability management operations, such as trace import and export, modification, query and visualization. The power of our framework is highlighted with an example scenari
- …