Skip to main content
QUICK REVIEW

[论文解读] Code forking in open-source software: a requirements perspective

Neil Ernst, Steve Easterbrook|arXiv (Cornell University)|Apr 16, 2010
Software Engineering Research参考文献 24被引用 25
一句话总结

本文從需求工程的視角探討開放原始碼軟體中的程式碼分叉,以 Trac 分叉為 DrProject 為案例研究。研究發現,分叉成功滿足了新需求——特別是易用性與可維護性——顯示當功能需求產生分歧時,分叉可作為將既有開放原始碼軟體適應新情境的有效策略。

ABSTRACT

To fork a project is to copy the existing code base and move in a direction different than that of the erstwhile project leadership. Forking provides a rapid way to address new requirements by adapting an existing solution. However, it can also create a plethora of similar tools, and fragment the developer community. Hence, it is not always clear whether forking is the right strategy. In this paper, we describe a mixed-methods exploratory case study that investigated the process of forking a project. The study concerned the forking of an open-source tool for managing software projects, Trac. Trac was forked to address differing requirements in an academic setting. The paper makes two contributions to our understanding of code forking. First, our exploratory study generated several theories about code forking in open source projects, for further research. Second, we investigated one of these theories in depth, via a quantitative study. We conjectured that the features of the OSS forking process would allow new requirements to be addressed. We show that the forking process in this case was successful at fulfilling the new projects requirements.

研究动机与目标

  • 理解需求在推動開放原始碼專案程式碼分叉中的角色。
  • 檢視分叉既有開放原始碼工具以滿足新功能與非功能需求的過程與挑戰。
  • 評估分叉是否能有效應對原始專案中不存在的新需求。
  • 從需求工程的觀點探討分叉在社會、技術與可維護性方面的影響。

提出的方法

  • 進行混合方法的序列研究:首先對 Trac 與 DrProject 開發者的訪談與問卷進行質性分析(基於扎根理論)。
  • 識別分叉相關的關鍵理論,並選取其中一項進行量化驗證。
  • 使用靜態程式碼度量(例如,循環複雜度、程式碼變更頻率)衡量 Trac 與 DrProject 的程式碼維護性。
  • 透過質性介面分析評估易用性,著重於介面複雜度與使用者友善程度。
  • 採用驗證性方法測試分叉系統是否達成關鍵非功能需求。
  • 應用逆向工程技術比較目標模型,並評估需求演變中的權衡。

实验结果

研究问题

  • RQ1不同的需求在促使開放原始碼軟體分叉中扮演何種角色?
  • RQ2分叉如何影響所產生軟體系統的可維護性與易用性?
  • RQ3分叉在多大程度上能成功應對原始專案中不存在的新需求?
  • RQ4分叉涉及哪些社會與技術上的權衡,特別是在社群凝聚力與程式碼演進方面?
  • RQ5模組化與測試性等非功能需求在分叉系統中如何變化?

主要发现

  • DrProject 的分叉成功應對了針對大學部軟體專案管理的特定新需求,特別是在易用性與可維護性方面。
  • 程式碼度量顯示,與 Trac 相較,DrProject 的可維護性有所提升,其循環複雜度較低且程式碼結構更佳。
  • 質性易用性分析顯示,與 Trac 相較,DrProject 的介面對新手使用者更為簡化且直覺。
  • 分叉未引發負面社群反饋,顯示技術動機的分叉可與社群善意共存。
  • 分叉的主要成本在於失去共享的錯誤修復,以及從零開始建立新社群的挑戰。
  • 本研究確認,當需求顯著分歧時,分叉可作為將開放原始碼軟體適應新領域的可行策略。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。