slide - POSL

ウィンターワークショップ2012・イン・琵琶湖
図書館問題 2.0:
ソフトウェア工学研究における
共通問題例
鵜林 尚靖
亀井 靖高
九州大学 大学院システム情報科学研究院
2012年1月19・20日
1
概要 ー 共通問題の事例提示
 共通問題はソフトウェア工学研究コミュニティにおいて重要な研
究目標を提示する。
 本発表では、先達が残した財産を活かしつつ、既存の共通問題を
現在の研究トレンドの観点から再生し、それらをカタログ化する
方法を提案する。
 具体例
 図書館問題 2.0
2
発表内容
 共通問題に関わる現状の課題
 共通問題のカタログ化
 事例: 図書館問題 2.0
 まとめ
3
共通問題に関わる現状の課題
4
共通問題とは
 概要
 ソフトウェア工学の研究成果を評価するための例題。
 皆が同一課題に取り組むことにより、その成果を同じ土俵で評価でき
る(評価のためのモノサシ)。
 形態
 ベンチマーク型(分析比較型)
 コンテスト型(結果比較型)
 グランドチャレンジ型(課題達成型)
 課題
 作成が容易ではない  既存の問題が再利用できないか?(本発表)
5
既存の共通問題
 図書館問題
 酒屋の在庫問題
 国際会議チェア問題
 話題沸騰ポット
 ESSロボットチャレンジ(飛行船)
 MSR(Mining Software Repository)Challenge
6
現状の課題
 カタログという形で整備されていない。
 複数のバリエーションが存在する共通問題はどれが正式版か
分からない。
 現在的な研究チャレンジの視点が含まれていない(内容が若
干時代遅れ)。
7
提案するアプローチ
 先達が残した財産を活かしつつ、既存の共通問題を現在の研
究トレンドの観点から再生し、それらをカタログ化する。
 新たな共通問題を作るのも重要であるが、まずはその前に慣
れ親しんだ問題を甦らせようというアプローチ。
8
共通問題のカタログ化
9
カタログの構成
 「対象(問題文)」と「研究チャレンジ」の二次元で表現。
 同じ図書館問題でも、研究チャレンジを差し替えることにより、
新たな共通問題として定義しようという考え方。
10
既存問題の再生例(1)
 図書館システムを対象とした設計・コードの同期問題
 概要
 オブジェクト指向によるソフトウェア開発で、どのように
アーキテクチャ設計と実装の同期をとって行けば良いかと
いう共通問題
 組み合わせ
 対象:図書館問題
 研究チャレンジ:設計・コードの同期
11
既存問題の再生例(2)
 組み込みシステム(電気ポット)を対象とした設計・
コードの同期問題
 概要
 ハードウェア制約を考慮した設計・コードの同期問題は
どうなるかという共通問題
 組み合わせ
 対象:話題沸騰ポット
 研究チャレンジ:設計・コードの同期
12
事例: 図書館問題 2.0
13
カタログの内容
 研究課題名(課題タイプ)
 図書館問題 2.0
(グランドチャレンジ型)
 研究チャレンジ
 抽象度を考慮した設計・コード間の同期
 説明
 図書館での図書の貸し出しシステムを考える。図書館は開架式であり、ユーザ
は自分で図書を選び、借りたい図書を窓口に持って行き、ユーザカードを沿え
て、貸し出しを申し込む。窓口の係員は貸し出し情報を登録し、図書とユーザ
カードを利用者に返す。返却時には同じく図書とユーザカードを沿えて、窓口
で返却を依頼する。窓口の係員は返却処理を行い、ユーザカードを返す。窓口
の係員は毎日、貸し出し状況をチェックし、2週間以上延滞しているユーザに
は電話により督促を行う。
 上記の問題に対し、以下を行う。
 設計モデルとコードの間で双方向のトレーサビリィティが確保されるよう
にせよ。トレーサビリティとはモデルを変更すると対応するコードが同期
して変更され、その逆も成立することをいう。
 同期の抽象度が設定できるようにせよ。
14
カタログの内容(つづき)
 テーマの妥当性説明
 アーキテクチャ設計はソフトウェア開発において重要な役割を果たす。
 しかし、その一方で、開発者の意図を正確に反映し整合性のとれたアーキテク
チャを構築すること、そのアーキテクチャを正しく実装につなげることは必ず
しも容易ではない。
 Taylor, R. N.らは、ソフトウェア設計における重要研究テーマの一つとして、
「アーキテクチャ設計から実装への移行」と「両者の間の頻繁な行き来への適
切な支援」を指摘している。
 現状の課題をまとめると以下のようになる。
 抽象化: ソフトウェア開発において、抽象化は要求分析、設計、プログラ
ミング、テストを通じて最も重要な能力である。しかし、現在のソフト
ウェア工学は、抽象化に対して、ほとんど支援できていないし、そのため
の理論基盤もない。
 トレーサビリティ: 要求と設計、設計とコード、要求とテスト、などソフ
トウェア開発では、様々なレベルでトレーサビリティが求められる。しか
し、現状のソフトウェア工学が提供するトレーサビリティのための技術は
実用レベルに達しているとは言い難い。特に、上記の「抽象化」を考慮し
たトレーサビリティは実用化されていない。
15
カタログの内容(つづき)
 研究内容例
 現在、アーキテクチャが記述可能なプログラミング言語(ArchJavaなど)やインタ
フェース機構(Archfaceなど)が提案されているが、まだ研究の初期段階にある。
 DSL(Domain-Specific Language)を用いた同期機構、トレーサビリティの自動
検証機構など、多くの研究の余地が残されている。
 上記の図書館システムの問題文では、実装については触れられていない。抽象度を
どう設定し、どのように設計とコードの間の同期をとるか、考える必要がある。
 評価方法
 以下の実現度により評価する。
 抽象度を測定するためのメトリクスが提供されており、実際に図書館システム
を例にその値が算出されている。
 設定した抽象度に基づいて、設計とコードの間で同期をとるための機構が提供
されている。さらに、それをサポートするツールが提供されている。
 研究例
 Ubayashi, N., Nomura, J., and Tamai, T.: Archface: A Contract Place Where
Architectural Design and Code Meet Together,ICSE 2010.
16
まとめ
17
まとめ
 共通問題の事例として、「図書館問題 2.0」を提示。
 今後、ソフトウェア工学研究会の活動の一環として、まずは
既存の共通問題を現在的視点から再生しカタログ化すること
が重要だと思われる。
18