ソフトウェア開発を支援するためのSocioTechnical Information Space(STIS)
葉 雲文@SRA
SS2009 WG1
知識労働としてのソフトウェア開発
• 農業労働
– なにもないところから物質を生産する
• 工業労働
– 複数の物質を別の物質に変換させる
• 知識労働
– なにもないところから物質的な存在ではない新しい体験を作る
• 知識 -> 知識アーティファクト
• 知識収集と知識創出の繰り返し
知的協調作業としてのソフトウェア開発
• 複数の人手の総和から複数の頭脳の相乗へ
– Division of Labor vs Distributed Cognition(分散認知)
• 開発に必要となる知識が分散している
–
–
–
–
ドメイン知識
プログラミング知識
道具知識(開発環境、OS、API)
開発中のシステムに関する知識
開発者観察
あるベテラン開発者の14日間の開発活
動を観察した結果 (合計 157 イベン
ト)
サーチ
ソースコード閲覧
37回
33回
•Singer, J., Lethbridge, T., Vinson, N.,
and Anquetil, N., "An examination of
software engineering work practics," in
Proceedings of the 1997 conference
of the centre for advanced studies on
collaborative research (cascon'97),
1997, pp. 21 pages.
開発者観察
8人の開発者の開発活動を観察した結
果
(合計 356 イベント)
UNIX
デバッグ
ハードウェア
サーチ
ソースコード閲覧
ソースコード編集
54回
52回
36回
32回
31回
30回
•Singer, J., Lethbridge, T., Vinson, N.,
and Anquetil, N., "An examination of
software engineering work practics," in
Proceedings of the 1997 conference
of the centre for advanced studies on
collaborative research (cascon'97),
1997, pp. 21 pages.
ソフトウェアプロジェクトがSTISを生成する
STISのノード
p1 開発者
c1 さまざまな粒度のコードの集まり
file, class, module, block, statement
d1
各種ドキュメント
requirements, design, cvs logs, emails, bug reports
STISの関連
構造的 / 概念的 / 開発履歴的
ソーシャル依存度 SocialDependence(p1, p2):
c1, c2 : Modify(p1, c1) & Modify(p2, c2) & Use(c1, c2)
ソーシャルカプリング SocialCoupling(p1, p2):
COUNT(c : Modify(p1, c, t1) & Modify(p2, c, t2) & (t1 – t2)< )
サイトカプリング SiteCoupling(s1, s2):
SUM(pms1 & pns2 : SocialCoupling(pm, pn))
助けてくれる可能性 HelpingProbablity(p1, p2, c):
Modify(p1, c) & Affinity(p1, p2)
サイト・カプリング site-coupling
他のプロジェクトからなるSTIS
自分のプロジェクトからなるSTIS
組織全体が織り出すSTIS
OSSが織り出すSTIS
codepot:コード検索
メソッド検索
を指定
入力変数は
2個のintを指定
キーワード
random string を
指定
キーワード
を含む場所を
メソッド定義に指定
出力タイプは
string を指定
ライセンスはASF
codepot:知識の蓄積と共有
ダウンロード

Software as Socio-Technical Information System(STIS