WISS2008

ソフトウェア開発における協調支援のためのプロジェクト構造可視化ツール
A Tool for Supporting Collaboration in Software Development Project

大蔵 君治

川口 真司

中道上飯田元∗Summary. ソフトウェアに起因するシステム障害が頻発する原因として，新メンバーとの協調開発の難しさ，ソフトウェアの持つ「目に見えない」という特徴のため開発プロジェクトの進捗把握が困難であることが挙げられる．本研究では，成果物間の構造に着目したプロジェクトの可視化手法を提案する．ソフト
ウェア開発プロジェクトにおける成果物は，プロジェクトの進捗を直接的に表すものであり，また，プロジェクトマネージャと他設計担当者の双方にとって理解が容易である．本研究では，コンセプト層・モデル層・プロダクト層の３つの層と時間軸から成る可視化を用いてソフトウェア開発における協調支援・プロジェクト管理を試みる．

1

はじめに継続的に成長を続ける現代の情報化社会において，ソフトウェア開発の需要は高まる一方である．
しかし，銀行のオンラインシステム障害など，ソフトウェアに起因する事故が今なお頻発している．その原因として，ソフトウェア開発を進めていくとともにサブシステム担当者やコーディング担当者といった関係者が新たに加わり，協調して開発を進めることが難しい点がある．また，ソフトウェアの持つ「目に見えない」という特徴のため開発プロジェクトの進捗把握が困難であることが挙げられる [1]．プロ
ジェクトの進捗管理には WBS (Work BreakdownStructure)[2] やガントチャート [3] といった手法・図が用いられ，作業時間（ヒト）を主軸として管理している．プロジェクトマネージャ（以下 PM と言う）
はこれらの手法を用いて見積もったスケジュールを可視化し，進捗状況に合わせて適宜修正を加える．
プロジェクトの成果物（モノ）の管理には版管理が用いられる．PM だけでなくサブシステム担当者，コーディング担当者といったプロジェクトの設計担当者が設計した仕様書等の成果物の更新状況をSubversion といったツールを利用して管理する．これらのプロジェクト管理では，進捗管理は PM，成果物管理は個々の担当者に委ねられる部分が大きい．
そのため，PM と開発チームとの間に意識のずれを生みやすく，プロジェクト全体で成果物間の関連に対するイメージが異なるという状況に陥りやすい．
本研究では，従来のヒト（作業時間），モノ（成果物）の個別管理ではなく，PM と開発チーム間を協調支援するため，成果物間の構造に着目したプロジェクトの可視化手法を提案する．プログラムを始∗Copyright is held by the author(s).
Kimiharu Ohkura, Shinji Kawaguchi, Hajimu Iida,
奈良先端科学技術大学院大学 情報科学研究科, NoboruNakamichi, 南山大学 数理情報学部 情報通信学科

め，設計書や仕様書といったソフトウェア開発プロ
ジェクトにおける成果物は，プロジェクトの進捗を直接的に表すものである．我々は，成果物が作成されていく段階を記録し，成果物そのものやそれらの関連の構造の変遷を可視化することで，PM だけでなく開発チームにとっても理解しやすい進捗の表現が可能であると考え，その可視化手法についての枠組みを制定し，プロジェクトを可視化するためのシステム「LaP-MAP (Layered Project Map)」を試作した．

2

可視化フレームワーク

ソフトウェア開発には構造化プログラミングやオブジェクト指向といった様々な開発パラダイムが存在するが，開発形態に関わらず，コーディング作業に入る前にはモジュールに関する種々の設計を行うのが一般的である．本研究では，最終成果物ができるまで（リリースまで）に個々の成果物がどのように出来上がってきたか，成果物間の構造に着目し，プロジェクト構造の可視化を行う．
可視化の適用対象が開発パラダイムに依存しないようにするため，3 つの層を定義する．図 1 にその概念図を示す．それぞれの層にはその役割と抽象化された表現記法のみが定義され，特定の図法には依存しない．各層は，コンセプト層を 2 層，モデル層を 4 層のようにそれぞれ反復可能である．また，成果物の観点から捉えたプロジェクト構造の変化を記録するための時間軸を持つ．それぞれの層と時間軸の役割を次に述べる．

2.1

コンセプト層

本フレームワークを構成する 3 つの層の中で最も上位に位置するコンセプト層の役割は，開発するシステム全体の，抽象化された完成予想図を提示することである．PM によって作成されたコンセプト層

WISS 2008

図 1. 提案フレームワークの概念図から開発に新たに加わったメンバーは開発するシス
テムに対する共通の目的意識を共有することが可能となり，メンバー間の協調作業を支援する．

2.2

モデル層

モデル層は，コンセプト層で示されたシステムの具体的な設計を示す役割を持つ．サブシステム担当者によって作成されたモデル層から，成果物間の構造を理解したうえで協調して開発を進めることが可能となる．

2.3

プロダクト層

プロダクト層は，モデル層で設計された各モジュールの実体を配置する．モジュールの実体とは，ソースコード，あるいは結合されたライブラリといった実際に作成された各々の成果物を指す．コーディン
グ担当者によって作成されたプロダクト層からプロジェクト全体の進捗度合いを PM だけでなく，プロジェクトメンバー全員が把握することが可能となる．

2.4

時間軸

上記 3 層のビューは，プロジェクトが進むに従い，PM が設定したスパンで定期的に更新される．PMは，ビューの更新履歴を見ていくことで開発が遅れている部分，あるいは遅れそうな部分を早期に発見することができる．

3

システム実装提案したフレームワークに基づき，プロジェクトを可視化する Web アプリケーション「LaP-MAP(Layered Project Map) 」を試作した．スクリー
ンショットを図 2 に示す．LaP-MAP は 3 層に配置する画像をアップロードする機能や，階層及び時間軸を移動するためのユーザインターフェイスを備える. 我々はオープンソースプロジェクトとして公開されているソフトウェア (JBoss Project) のシステ

図 2. システムのプロトタイプ

ム設計図を基に入力データサンプルを作成し，階層表示のテストを行った結果，本システムが分析を行うにあたって十分な速度で実行可能であることを確認した．

4

まとめ

本稿では，成果物の視点からソフトウェア開発プロジェクトを可視化し，協調開発・進捗管理を支援するためのフレームワークを提案・試作し，手法がもたらす有効性の一部と実現可能性を確認した．ソフトウェアエンジニアには，コーディング担当者からサブシステム担当者，PM へとキャリアアップが求められるが，そのためにはプロジェクト全体の把握と成果物間の構造の理解が必要である．ソフトウェ
ア開発業界では，上流工程を担当できるエンジニアの不足が問題となっており，本システムの利用により，早期の人材育成にもつながることが期待される．

謝辞
本研究の一部は，文部科学省「次世代 IT 基盤構築のための研究開発」の委託に基づいて行われた．
本研究の一部は南山大学 2008 年度パッヘ研究奨励金 I-A-2 の助成を受けた．

参考文献[1] Frederick P. Brooks, Jr., The Mythical ManMonth Essays on Software Engineering, AddisonWesley, 1975.
[2] Robert C. Tausworthe, Work Breakdown Structure in Software Project Management, Journal ofSystems and Software, Vol. 1, pp. 181-186, 1980.
[3] Clark, Wallace, The Gantt Chart, a Working Toolof Management, second edition, Sir Isaac Pitman& Sons, Ltd., London, 1942.