Loading article…
ソフトウェア工学において、コード所有権とは、個々のソフトウェア開発者または開発チームがモジュールまたは製品のソースコードの変更を制御することを表すために使用される用語です。[1]
定義
この用語は非常に人気がありますが、普遍的に受け入れられている定義はありません。Koanaらは、2024年の文献レビューで28の異なる定義を発見し、[2]次のように分類しました。
- 心理的所有権とは、開発者がプロジェクトの特定の要素に対して所有感と誇りを感じることである。[3]
- 所有権とは、特定のソフトウェア部分に対する責任を定義する公式または非公式のルールのセットです。ルールはチームが採用する開発アプローチによって異なりますが、一般的には「何が所有されているのか?」「誰がそれを所有しているのか?」「制御の程度は?」という線に沿って分割できます。[3]
- 「何?」という質問に対する答えは典型的にはソースコードの一部ですが、所有権の概念はプロジェクト全体や単一のソフトウェアバグなど、ソフトウェア開発の他の成果物にも適用されています。[4]
- 所有者(「誰?」)は、個々の開発者である場合もあれば、コードの作成者、レビュー担当者、管理者を含むグループである場合もあります。[5] 2つの極端な例は、特定のコードに対して1人の開発者だけが責任を負う専用所有権と、チームのすべてのメンバーがすべてのコードを所有する集合コード所有権です。 [5]
- 所有者による制御の程度は、必須のコードレビューからテストの責任、完全な実装までさまざまです。[要出典]
著作
一部の研究者は、ソフトウェアの著者(特定のソフトウェアラインを書いた人を特定する)を説明するためにこの用語を使用しています。Koanaらは、コードの所有者がソフトウェアの元の著者ではない可能性があるため、これは関連しているが異なる意味であると述べています。[3]
品質への影響
明確なコード所有権の欠如(通常は多くの開発者が共有コードに小さな変更を自由に適用する形)がエラーの原因になっていることは一般的に認められています。同時に、コード所有者がいない場合、成果物に関する知識が失われる可能性があります。これは、たとえばWindows 7とWindows Vistaを対象とした大規模な研究によって確認されています。[6]
バージョン管理におけるコード所有者
最新のバージョン管理システムでは、特定のファイルやディレクトリのコード所有者を明示的に指定できます( GitHub CODEOWNERS機能を参照)。通常、コード所有者は所有コードのすべての変更について通知を受け取るか、各変更を承認する必要があります。[7]
参考文献
- ^ メティウ 2006、424頁。
- ^ Koana et al. 2024、p.2。
- ^ abc Koana et al. 2024、p.8。
- ^ コアナら。 2024 年、9 ~ 11 ページ。
- ^ ab コアナら。 2024、p. 11.
- ^ グライラー、ヘルツィヒ、チェルウォンカ 2015、p. 2.
- ^ 「コード所有者について」。GitHub。
出典
- Greiler, Michaela; Herzig, Kim; Czerwonka, Jacek (2015)。「コード所有権とソフトウェア品質: レプリケーション研究」(PDF)。2015 IEEE/ACM 第 12 回ソフトウェア リポジトリ マイニング ワーキング カンファレンス。IEEE。pp. 2–12。doi : 10.1109/ msr.2015.8。ISBN 978-0-7695-5594-2。
- Koana, Umme Ayman; Le, Quang Hy; Rahman, Shadikur; Carlson, Chris; Chew, Francis; Nayebi, Maleknaz (2024-09-27). 「ソフトウェアチームにおける所有権モデルの検討」. Empirical Software Engineering . 29 (6). Springer Science and Business Media LLC. arXiv : 2405.15665 . doi :10.1007/s10664-024-10538-5. ISSN 1382-3256.
- Metiu, Anca (2006). 「コードの所有: 分散グループにおけるステータスの閉鎖」.組織科学. 17 (4). INFORMS: 418–435. doi :10.1287/orsc.1060.0195. ISSN 1047-7039. JSTOR 25146047. 2024-11-04に取得。
