2
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 : いずれかのサブゴールを満たせばよい

平成24年度社会知能情報学専攻修士論文中間発表会(予稿)

  • Upload
    n-yuki

  • View
    430

  • Download
    4

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: 平成24年度社会知能情報学専攻修士論文中間発表会(予稿)

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 : いずれかのサブゴールを満たせばよい

Page 2: 平成24年度社会知能情報学専攻修士論文中間発表会(予稿)

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

低い方のレイヤに合わせて結合

親も子も同一ゴールのときは

どちらかを消去

子が同一で

親が同一でないときは

両方の親のサブゴール

として結合