11
平成 24年度社会知能情報学専攻 修士論文中間発表会
ゴールモデルを用いた機能モデルの生成
および共通機能と可変機能の分類 システム設計基礎学講座 大須賀・田原研究室 1151025 中村 祐貴
指導教員:田原 康之 准教授
1 はじめに 近年,顧客の要求が多様化しており,製品やサービスのライフ
サイクルが短縮化してきている.一方で,開発規模は大型化
しており,こういった背景に対応できるよう,より効率よ
くシステム開発を行うための方法論が求められている.そ
の中でも,Software Product Line Engineering (SPLE) と
呼ばれる既存システムの再利用手法が高い注目を集めてい
る[1].SPLE ではまず,既存システムから再利用資産を開
発する.その後,再利用資産を用いて開発を行うことで,1
から開発を行うよりも効率よく新システムの開発が行える
ようになる.そのために,後に効率よく新システムを開発
できるよう,計画的に再利用資産を開発することが重要と
なる.そこで本研究では,可変性が高く,かつ顧客の要求
を反映しやすい再利用資産の開発方法に着目する.
2 Software Product Line Engineering Software Product Line Engineering (SPLE) とは,既存シ
ステムを再利用し効率よく新システムを開発するための方法論
である.SPLEでは既存システムから再利用資産を開発する.
顧客が必要とする機能はそれぞればらつきがあり,それらに対
応できるように再利用資産は可変性が高いものでなければなら
ない.また,顧客の要求をミスなく新システムに反映させるため
に,既存システムの機能の中から顧客の要求を満たすために必
要なものを選択する必要がある.そのため再利用資産は,顧客
の要求を反映しやすいものでなければならない.こういった理由
から,再利用資産には互いにリンクした機能レベルのモデルと
要求レベルのモデルが必要である.本研究では,機能レベルの
モデルとしてフィーチャモデルを,要求レベルのモデルとしてゴ
ールモデルを用いる.
2.1 フィーチャモデル SPLEでは複数の既存システムの共通機能と可変機能を表現
するためにフィーチャモデルが広く用いられている[2].図 1にフ
ィーチャモデルの例を示す.
図 1 フィーチャモデルの例
フィーチャとは再利用される可能性があるシステムの機能を表し
ている.またフィーチャはより具体的な機能を表すサブフィーチ
ャを持つことができる.フィーチャモデルはフィーチャの木構造
で表現される.フィーチャモデルから可変性を排除することで開
発する新システムに必要なフィーチャを選択できる.すべてのシ
ステムの構成に必要なフィーチャを必須フィーチャと呼び,それ
以外のフィーチャを任意フィーチャと呼ぶ.またフィーチャ関係
と呼ばれる制約関係を任意のフィーチャ間に表現できる.フィー
チャ関係には,フィーチャ間の依存関係を表す dependency関
係やフィーチャ間の排他関係を表す conflicts関係がある.
2.2 ゴールモデル ゴール指向要求分析とはシステムに求められる要求をゴール
として表現し,抽象的なゴールをそれを達成するための具体的
なゴールへと分解していくことで製品に必要な要求を得るという
要求分析法の一つである[3].ゴール指向要求分析では要求分
析の結果をゴールモデルを用いて表現する.図 2にゴールモデ
ルの例を示す.
図 2 ゴールモデルの例
ゴールモデルを用いると,要求を木構造で構造化し整理して表
現できる.また,非機能要求をモデル上に表現できる.こういっ
た点で,他の要求分析モデルよりも優れている.あるゴールを分
解して得られたゴールをサブゴールといい,分解する元のゴー
ルを親ゴールという.ゴール分解にはAND分解とOR分解の 2
種類がある.AND分解はそのサブゴールすべてが達成された
場合にその親ゴールも達成されることを表す.OR分解はそのサ
ブゴールのいずれかが達成された場合にその親ゴールも達成
されることを表す.
3 既存研究
3.1 ゴールモデルからフィーチャモデルの生成
既存システムのゴールモデルから,フィーチャモデルを導出す
る手法がある[4].再利用資産の機能を表現するためにフィーチ
ャモデルを作成する必要があるが,それには対象とする分野に
関する幅広いドメイン知識が必要になる.ここでゴールモデルに
はそれぞれのシステムに必要な要求が記述されており,それら
は対象とする分野に関する知識を含んでいる.こういった理由
から,既存システムのゴールモデルからフィーチャモデルを導出
する方法を提案することで SPLE の導入を支援しようとしている.
具体的な手法としては,ゴールモデルの葉ゴールの構造から関
係のあるフィーチャの集合を特定する.その後,特定されたフィ
ーチャをグループに分け,含んでいるフィーチャすべてを適切
に表現するようなグループ名を指定する.
3.2 共通機能と可変機能の分類 複数のゴールモデルを結合することで,複数のシステムが持
つ要求の共通性を明確化し,一つのモデルに表現する手法が
ある[5].ゴールモデルからフィーチャモデルを生成する手法と
組み合わせることで,可変性が高くかつ顧客の要求を反映しや
すい再利用資産を開発できると言われている.具体的には,ま
ず複数のゴールモデルにおいて同一ゴールを特定する.その
: 必須フィーチャ
: 任意フィーチャ
+dependency : 依存関係
+conflicts : 排他関係
: 機能要求
: 非機能要求
AND : すべてのサブゴールを満たす必要がある
OR : いずれかのサブゴールを満たせばよい
12
後,同一ゴールをまとめて一つにし,それ以外のゴールを OR
分解で追加することでゴールモデルを結合する.
3.3 既存研究の問題点 両研究共に,組織がゴール指向要求分析を用いてシステムの
要求獲得を行っており,既存システムのゴールモデルが既に存
在していることが前提となっている.さらに,「3.1 ゴールモデル
からフィーチャモデルの生成」の手法でフィーチャモデルを生成
するためには,ゴールモデルが顧客の要求とシステム開発に関
する専門知識の両方を含んでいる必要がある.実際の現場で
はゴール指向要求分析で要求を獲得していないため,そのよう
な既存システムのゴールモデルは存在しない.こういった理由
から,顧客の要求とシステム開発に関する専門知識の両方を含
むゴールモデルを作成する方法論が必要である.また,「3.2
共通機能と可変機能の分類」では,提案手法をツールに実装し
ているが,どのようにしてゴールを比較・結合するかという手順が
明確に示されていない.さらに,ゴールの名称は作成する人に
よって異なるため,実際には違う名称で同じ内容のゴールがで
きる可能性がある.この手法では,同一ゴールを同一の名称を
持つゴールとしているため,そういったゴールを同一ゴールとし
て判別できない.これらの理由から,違う名称で同じ内容のゴー
ルを同一ゴールとして判別する手法が必要である.
4 提案手法と進捗状態 前述した問題点を解決するために,現在までに以下の 2 つの
手法を提案した.
(1)説明書からゴールモデルを作成
(2)結合プロセスの定型化
4.1 説明書からゴールモデルを作成 本研究では,既存システムの取扱説明書やマニュアル(以下
説明書)からゴールモデルを作成することで顧客の要求をモデ
ル化する.説明書には顧客がシステムを用いて要求を達成でき
るような情報が記載されている.また,既存システムの説明書が
存在する可能性は非常に高いと考えられるため,実用的な手法
だと言える.具体的には,説明書の章番号の段落に基づきゴー
ルモデルのレイヤを定め,その章のタイトルをゴール名とする.
図 3に説明書からゴールモデルを作成するイメージを示す.
図 3 説明書からゴールモデルを生成
例えば,説明書で「1 テレビを見る」,「1-1 放送の種類を選ぶ」,
「1-2 チャンネルを選ぶ」と記述されている場合,「テレビを見る」
が親ゴールとなり,「放送の種類を選ぶ」と「チャンネルを選ぶ」
がそのサブゴールとなる.今までに,既存システムとしてテレビ
の説明書からゴールモデルを作成している.手間はかかるが,
特に思考を用いない単純なプロセスなので,説明書のレイヤを
判別することができれば,今後計算機に実装し機械的に処理す
ることも可能であると考える.
4.2 結合プロセスの定型化 既存研究に沿って,作成された複数のゴールモデルを結合す
ることで,共通ゴールと可変ゴールを分類する.その中で,既存
研究の問題点を解決していくことで結合プロセスをより高精度に
していく.今までに,既存研究で述べられていない結合プロセス
の比較・結合手順を明確化し定型化した.図 4 に結合プロセス
の定型化のイメージを示す.
図 4 結合プロセスの定型化
具体的には,ゴールモデルを表形式にしたレイヤシートを提案
し,ゴール名を比較しやすいように書き換えるための規則を定め
た.また,2 つのゴールモデルの最上レイヤから順に比較するこ
とで,共通ゴールと可変ゴールを分類する手順を考案した.さら
に,同一ゴールのレイヤが異なる場合の結合方法や,結合時に
重複したゴールをミスなく消去する方法を考案した.ゴール数が
増えると結合プロセスにかかる手間と時間が指数関数的に増加
するが,プロセスを定型化することでそれらを短縮化できると考
える.
5 まとめと今後の研究課題 既存システムを再利用し効率よく開発を行うためには,可変性
が高くかつ顧客の要求を反映しやすい再利用資産を開発する
ことが重要である.そのために,本研究では既存研究の問題点
を解決していくことでより高精度な方法論を提案していく.現在
までに,顧客の要求をゴールモデル上に表現する手法を提案し,
ゴールモデルの結合プロセスを定型化した.今後は,システム
開発に関する知識をゴールモデル上に表現する手法と,違う名
称で同じ内容のゴールを同一ゴールとして判別する手法を提案
していく.また本手法は,システムに詳しい現場の技術者が既存
システムから再利用資産を開発することを想定している.そのた
め手法の評価方法として,製品に詳しい人に独自の手法と本手
法の両方で開発を行ってもらい,正解率やかかった時間などを
計測・比較することを考えている.
参考文献 [1]Betty H.C Cheng,Joanne M. Atlee:Research Directions
in Requirements Engineering,Future of Software
Engineering,pp.285-303,(2007)
[2]Czarnecki,K.,Helsen,S.andEisenecker,U.Formalizing:
cardinality-based feature models and their
specialization,Software Process.Improvement and
Practice,Vol.10,No.1,pp.7-29,(2005)
[3] 山本修一郎,海谷治彦,Karl Cox,Steven Bleistein:ゴール
指向要求工学の動向と課題,電子情報通信学会技術研究報
告.KBSE,知能ソフトウェア工学,106(382),pp.31-36,(2006)
[4] Yijun Yu,Alexei Lapouchnian,Sotirios Liaskos,John
Mylopoulos,and Julio C.S.P.Leite:From Goals to
High-Variability Software Design,In Proc.17th
International conference on Foundations of intelligent
systems,(2008)
[5] Uno K,Hayashi S,Saki M:Constructing Feature
Models using Goal Oriented Analysis. In Proc.9th
International conference on Quality Software,
pp.412-417,(2009)
レイヤが違う同一ゴールは
レイヤ 1
レイヤ 2
レイヤ 3
レイヤ 4
レイヤ 5
レイヤ 1 はテレビを利用できる
レイヤ 2 レイヤ 3
レイヤ 4 レイヤ 5
低い方のレイヤに合わせて結合
親も子も同一ゴールのときは
どちらかを消去
子が同一で
親が同一でないときは
両方の親のサブゴール
として結合