JP2014106719A - 影響関係解析装置 - Google Patents
影響関係解析装置 Download PDFInfo
- Publication number
- JP2014106719A JP2014106719A JP2012258872A JP2012258872A JP2014106719A JP 2014106719 A JP2014106719 A JP 2014106719A JP 2012258872 A JP2012258872 A JP 2012258872A JP 2012258872 A JP2012258872 A JP 2012258872A JP 2014106719 A JP2014106719 A JP 2014106719A
- Authority
- JP
- Japan
- Prior art keywords
- influence
- model
- influence relationship
- data
- sentence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
- Machine Translation (AREA)
Abstract
【課題】仕様間の影響関係をより正確に捉えることができる仕様間の影響関係解析装置を提供する。
【解決手段】ソフトウェアの仕様を構文解析して、仕様に存在する文の一つ一つから仕様を構成する仕様文へと変換する構文解析部と、仕様文を、分割処理によって、複数の仕様文に分割する仕様文分割部と、変換パターンを利用して、分割後の仕様文を、仕様を構成する用語間の影響関係を解析するための有向グラフ形式で表わされる影響関係モデルを構成するモデル要素へと変換する影響関係モデル作成部と、影響関係モデルを元に、モデル要素間の影響関係情報としてモデル要素間の距離データを算出する距離データ算出部と、距離データに基づいて、仕様間の影響関係を表示するための表示用データを生成する表示用データ生成部とを、備える影響関係解析装置。
【選択図】図1
【解決手段】ソフトウェアの仕様を構文解析して、仕様に存在する文の一つ一つから仕様を構成する仕様文へと変換する構文解析部と、仕様文を、分割処理によって、複数の仕様文に分割する仕様文分割部と、変換パターンを利用して、分割後の仕様文を、仕様を構成する用語間の影響関係を解析するための有向グラフ形式で表わされる影響関係モデルを構成するモデル要素へと変換する影響関係モデル作成部と、影響関係モデルを元に、モデル要素間の影響関係情報としてモデル要素間の距離データを算出する距離データ算出部と、距離データに基づいて、仕様間の影響関係を表示するための表示用データを生成する表示用データ生成部とを、備える影響関係解析装置。
【選択図】図1
Description
本発明の実施形態は、仕様間の影響関係解析装置に関する。
ソフトウェア開発では、仕様を元にソフトウェアを構築している。仕様の間には影響関係があり、ある仕様の変更、追加、削除が、他の仕様の変更、追加、削除につながる。そのため、ソフトウェア開発では仕様間の影響関係を明確にする必要が有る。
近時、システムの大規模化、システム間の機能統合などにより開発するソフトウェアの仕様が増加している。それに伴い、仕様の影響関係を明らかにする作業負荷も増加している。
そのため、仕様の変更や追加時に影響がおよぶ仕様の範囲が判断しにくい、という問題があった。
情報処理学会研究報告. ソフトウェア工学研究会報告2001(31), P39−46「波及効果解析によるソフトウェア要求仕様の変更支援」
本発明が解決しようとする課題は、仕様間の影響関係をより正確に捉えることができる仕様間の影響関係解析装置を提供することである。
実施形態の影響関係解析装置は、ソフトウェアの仕様を構文解析して、前記仕様に存在する文の一つ一つから前記仕様を構成する仕様文へと変換する構文解析部と、前記仕様文を、分割処理によって、複数の仕様文に分割する仕様文分割部と、変換パターンを利用して、前記分割後の仕様文を、前記仕様を構成する用語間の影響関係を解析するための有向グラフ形式で表わされる影響関係モデルを構成するモデル要素へと変換する影響関係モデル作成部と、前記影響関係モデルを元に、前記モデル要素間の影響関係情報としてモデル要素間の距離データを算出する距離データ算出部と、前記距離データに基づいて、前記仕様間の影響関係を表示するための表示用データを生成する表示用データ生成部とを、備える。
以下、本発明の一実施の形態について、図面を参照して説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。
まず、本実施形態で用いる主要な用語について説明する。
「文」とは、自然言語で記述された文字列で区切り文字から区切り文字の間の文字列をいう。区切り文字の例としては句点があげられる。
「仕様」とは、「文」が1つ以上集まった要素をいう。
「用語」とは、「文」・「仕様」を構成する単語で影響関係の解析対象となるものをいう。「用語」は後述する「影響関係モデル」を構成するノード要素の要素名にあたる。
「仕様書」とは、「仕様」の集まりをいう。ドキュメントが複数にまたがっていても「仕様書」と呼ぶ。
「仕様文」とは、構文解析にかけられる「文」とその解析結果をまとめあげる構成データをいう。構成データについては、後述する。
「影響関係」とは、仕様Aが変更、追加、削除された場合に、伴って変更、追加、削除が行われる可能性のある仕様Bがあるとき、“仕様Aが仕様Bに影響を与える”という。また、“仕様Aと仕様Bには影響関係がある”という。
「係り受け解析」とは、語句の間にある、“修飾する”あるいは“修飾される”関係を抽出する手法をいう。
「影響関係モデル」とは、仕様を構成する用語間の影響関係を解析できる有向グラフ形式のモデルをいう。
本実施形態においては、開発するソフトウェアの仕様書に含まれる全ての仕様を構文解析して影響関係モデルに変換し、生成された影響関係モデルから仕様間の影響関係を計算・提示するものである。
図1は、本発明の実施形態に係る影響関係解析装置の概略構成を示すブロック図である。この装置は汎用のコンピュータ(例えばパーソナルコンピュータ(PC)等)と、同コンピュータ上で動作するソフトウェアとを用いて実現される。コンピュータとしては、CAD(Computer Aided Design)やCAE(Computer Aided Engineering)に好適なエンジニアリングワークステーション(EWS)等も含む。本実施形態はこのようなコンピュータに、仕様の影響関係モデルへの変換及び仕様間の影響関係の提示に係る一連の手続きを実行させるプログラムとして実施することもできる。
図1に示すように、本実施形態に係る影響関係解析装置は、主として、入力部11、構文解析部12、仕様文分割部13、影響関係モデル作成部14、距離データ算出部15、表示用データ生成部16より構成されている。
入力部11は、ソフトウェアの仕様書を入力するものである。入力した仕様書は、構文解析部12に送られる。
構文解析部12は、構文解析によって、仕様書中に存在する文の一つ一つから仕様を構成する仕様文へと変換する。仕様文では、解析結果が木構造を形成する。変換された仕様文のデータは、仕様文分割部13へと送られる。
仕様文分割部13は、分割可能な仕様文を分割処理によって、複数の仕様文に分割する。仕様文は、単文で成り立つものに限られず、複文等で表現されている仕様文は影響関係モデルに変換できる粒度、例えば単語レベルにまで分割する。
分割後の仕様文のデータは、影響関係モデル作成部14へと送られる。
影響関係モデル作成部14は、所定の変換パターンを利用して、分割後の仕様文を影響関係モデルを構成するモデル要素へと変換する。この変換されたモデル要素を結合させ、グラフ構造で影響関係モデルを構築する。例えば、データフローダイヤグラム形式で影響関係モデルを表すことが好適である。影響関係モデルのデータは、距離データ算出部15へと送られる。
距離データ算出部15は、生成された影響関係モデルから、モデル要素間の影響関係情報としてモデル要素間の距離データを求める。ここでは、モデル要素の有向グラフの接続関係を利用してモデル要素間の距離データを算出する。算出した要素間の距離データは、影響関係を表示するための表示用データ生成部16へと送られる。
表示用データ生成部16は、要素間距離データに基づいて、仕様間の影響関係を表示するための表示用データを生成する。
次に、以上のように構成された影響関係解析装置100における影響関係解析処理の流れについて説明する。
図2は、実施形態に係る影響関係解析装置100における影響関係解析処理の流れを示すフローチャートである。ここでは、処理の概要を述べ、処理の詳細は後述する。
まず、入力部11を介して、ソフトウェアの仕様書の情報を入力する(ステップS21)。次いで、仕様を1つずつ構文解析し、仕様を構成する文を仕様文という形式で保存する(ステップS22)。
次に、仕様文を構成している要素を影響関係モデルに変換できる粒度に、仕様文を分割する(ステップS23)。
次に、分割後の仕様文を変換するパターンに応じて、影響関係モデルを構成するモデル要素に変換していく。この変換されたモデル要素を結合させ、グラフ構造にすることで影響関係モデルを構築する(ステップS24)。
次に、影響関係モデルのモデル要素を走査し、モデル要素の有向グラフの接続関係を利用してモデル要素間の影響関係情報を生成する(ステップS25)。ここで、モデル要素間の影響関係情報とは、後述する、距離を測る起点となるモデル要素、距離を測る終点となるモデル要素、要素間の距離データである。
次いで、モデル要素間の距離データを元にユーザに仕様間の影響関係を提示できる形式のデータを生成する(ステップS26)。
上記したステップS22からステップS24は影響関係モデルの構築に係る処理であり、ステップS25からステップS26は、仕様間の影響関係の提示処理である。
<仕様文の生成>
図3は、構文解析による仕様から仕様文を生成する処理を説明する図である。図3に示す例では、「蓋センサがonのとき、保温設定ボタンが100msec以上押されると、ブザーを100msec鳴らした後、保温行為のモードを高温、節約、ミルクの各モードに設定する。」という仕様を構文解析して、仕様文を生成する。日本語の構文解析は、主に文節間の係り受け構造を発見することである。係り受け解析により生成された仕様文は、“蓋センサ”、“on”、“保温設定ボタン”、“100msec以上押される”、“ブザー”、“100msec鳴らす”、“保温行為のモード”、“高温、節約、ミルクの各モード”、“設定する”の仕様文を構成する要素から成り立っている。各々の要素は図3中の実線のように関わりあっている。
図3は、構文解析による仕様から仕様文を生成する処理を説明する図である。図3に示す例では、「蓋センサがonのとき、保温設定ボタンが100msec以上押されると、ブザーを100msec鳴らした後、保温行為のモードを高温、節約、ミルクの各モードに設定する。」という仕様を構文解析して、仕様文を生成する。日本語の構文解析は、主に文節間の係り受け構造を発見することである。係り受け解析により生成された仕様文は、“蓋センサ”、“on”、“保温設定ボタン”、“100msec以上押される”、“ブザー”、“100msec鳴らす”、“保温行為のモード”、“高温、節約、ミルクの各モード”、“設定する”の仕様文を構成する要素から成り立っている。各々の要素は図3中の実線のように関わりあっている。
<構成データ>
仕様文の生成に際しては、例えば、“分割判定フラグ”、“仕様識別子”、“仕様文ID”、“解析結果”の構成データが作成される。“分割判定フラグ”は、仕様もしくは仕様文が分割可能か判定されたか否かを示すフラグで、未判定もしくは判定済がある。“仕様識別子”は、仕様を識別するものである。“仕様文ID”は、仕様文を識別するものである。“解析結果”は、後述する仕様文の分割処理と変換処理で利用するために必要なデータである。例えば、周知の係り受け解析機であるKNPの出力データがそれに該当する。
仕様文の生成に際しては、例えば、“分割判定フラグ”、“仕様識別子”、“仕様文ID”、“解析結果”の構成データが作成される。“分割判定フラグ”は、仕様もしくは仕様文が分割可能か判定されたか否かを示すフラグで、未判定もしくは判定済がある。“仕様識別子”は、仕様を識別するものである。“仕様文ID”は、仕様文を識別するものである。“解析結果”は、後述する仕様文の分割処理と変換処理で利用するために必要なデータである。例えば、周知の係り受け解析機であるKNPの出力データがそれに該当する。
仕様文の生成での構成データは、例えば、分割判定フラグ:未判定、仕様識別子:仕様1、仕様文ID:a1、解析結果:<句点><サ変><助詞>・・・である。
図4は、仕様文の生成処理の流れを示すフローチャートである。
まず、仕様書の中から仕様を1つ取得する(ステップS41)。
次に、当該仕様に含まれる文を1つ取得する(ステップS42)。
次いで、当該文について係り受けの解析を行う(ステップS43)。係り受けの解析は、仕様文として、記憶装置(図示しない)に保存する。
次に、解析すべき文が残っているか判定する(ステップS44)。解析すべき文が残っていれば(ステップS44でYes)、ステップS42に移行する。
解析すべき文が残っていなければ(ステップS44でNo)、解析すべき仕様が残っているか判定する(ステップS45)。解析すべき仕様が残っていれば(ステップS45でYes)、ステップS41に移行する。解析すべき仕様が残っていなければ(ステップS45でNo)、仕様文の生成処理を終了する。
<仕様文の分割処理>
仕様文を構成している要素を影響関係モデルに変換できる粒度に、仕様文を分割する。図5は、仕様文の複数の仕様文への分割処理を説明する図である。図3に示した仕様文に対して分割処理を施すことによって、4つの分割後の仕様文が出来ている。
仕様文を構成している要素を影響関係モデルに変換できる粒度に、仕様文を分割する。図5は、仕様文の複数の仕様文への分割処理を説明する図である。図3に示した仕様文に対して分割処理を施すことによって、4つの分割後の仕様文が出来ている。
分割ルールとなる分割パターンは、ユーザによって設定可能である。例えば、「連用係り+読点」パターンでは、仕様文の解析結果が「*<係:連用>*<読点>*」あるいは「*<読点>*<係:連用>*」のいずれかにマッチする場合には、仕様文を分割する。図6は、「連用係り+読点」パターンによる分割処理の一例を示す図である。ここでは、仕様文2と仕様文3に分割している。
同様に、「連用係り+〜たら」パターンでは、仕様文の解析結果が「*<係:連用>*<ID:〜たら>*」あるいは「*<ID:〜たら>*<係:連用>*」のいずれかにマッチする場合には、仕様文を分割する。
分割処理後の構成データは、例えば、仕様文1については分割判定フラグ:判定済、仕様識別子:仕様1、仕様文ID:a2、解析結果:<読点><係:ガ格>・・・、仕様文2については分割判定フラグ:判定済、仕様識別子:仕様1、仕様文ID:a3、解析結果:<読点><ID:〜たら>・・・、仕様文3については分割判定フラグ:判定済、仕様識別子:仕様1、仕様文ID:a4、解析結果:<読点><係:連用>・・・、仕様文4については分割判定フラグ:判定済、仕様識別子:仕様1、仕様文ID:a5、解析結果:<句点><スルナル>・・・である。
図7は、仕様文の分割処理の流れを示すフローチャートである。
まず、仕様文を1つ取得する(ステップS701)。
次いで、当該仕様文に対して、分割判定フラグを未判定に設定する(ステップS702)。
次に、分割判定フラグが設定されていない仕様文があるかを判定する(ステップS703)。分割判定フラグが設定されていない仕様文があれば(ステップS703でYes)ステップS701に移行し、分割判定フラグが設定されていない仕様文がなければ(ステップS703でNo)、分割可能か未判定の仕様文を1つ取得する(ステップS704)。
次いで、分割パターンを1つ取得する(ステップS705)。
次に、当該仕様文が当該分割パターンにマッチしているか判定する(ステップS706)。
当該分割パターンにマッチしていれば(ステップS706でYes)、仕様文に対して分割パターンに対応する分割処理を実施し(ステップS707)、分割された仕様文全ての判定フラグを未判定に設定する(ステップS708)。次いで、分割前の仕様文は削除し、分割後の複数の仕様文が記憶装置(図示しない)に保存され(ステップS709)、ステップS704に移行する。
当該仕様文が当該分割パターンにマッチしていなければ(ステップS706でNo)、分割の判定に利用していない分割パターンがあるかを判定する(ステップS710)。
利用していない分割パターンがあれば(ステップS710でYes)ステップS705に移行し、利用していない分割パターンがなければ(ステップS710でNo)分割判定フラグを判定済に設定する(ステップS711)。
次いで、分割判定フラグが未判定の仕様文があるかを判定する(ステップS712)。
分割判定フラグが未判定の仕様文があれば(ステップS712でYes)ステップS704に移行し、分割判定フラグが未判定の仕様文がなければ(ステップS712でNo)、仕様文の分割処理を終了する。
<影響関係モデルへの変換>
仕様文の解析結果が変換パターンと一致した場合、当該仕様文を影響関係モデルへと変換していく処理である。影響関係モデルは、モデル要素から成り立ち、データフローダイヤグラムの形式で表現することができる。データフローダイヤグラムは、データストア、プロセス及びデータフローによって、データの流れを示す矢印で繋いだ図である。図8は、分割後の仕様文を元にして影響関係モデルの要素へ変換の一例を示す図である。
仕様文の解析結果が変換パターンと一致した場合、当該仕様文を影響関係モデルへと変換していく処理である。影響関係モデルは、モデル要素から成り立ち、データフローダイヤグラムの形式で表現することができる。データフローダイヤグラムは、データストア、プロセス及びデータフローによって、データの流れを示す矢印で繋いだ図である。図8は、分割後の仕様文を元にして影響関係モデルの要素へ変換の一例を示す図である。
モデル要素となるデータは、大別するとノード要素とエッジ要素がある。
ノード要素は、“要素名”、“要素タイプ”、“出現箇所データ”から構成される。“要素名”は、影響関係モデルを構成するモデル要素を一意に識別するための文字列である。“要素タイプ”は、特段の制限なく定義可能で、プロセス、データストア等、他の要素が混じっても構わない。“出現箇所データ”は、この要素が含まれる仕様文識別子の列であって、全て保存しておく。
エッジ要素は、“要素名”、“要素タイプ”、“ソースノード名”、“ターゲットノード名”から構成される。“要素名”は、影響関係モデルを構成するモデル要素を一意に識別するための文字列である。“要素タイプ”は、エッジならば特段の制限なく定義可能で、データフロー等、他の要素が混じっても構わない。“ソースノード名”は、エッジの尾側のノード名の文字列である。“ターゲットノード名”は、エッジの頭側のノード名の文字列である。
次に、変換に際して利用する、変換パターンについて説明する。変換パターンそのものは、ユーザが設定可能である。例えば、ガ格パターン、ニ格・ガ格パターン、ニ格・ガ格(受動態)パターンである。ガ格パターンでは、仕様文の解析結果が「*<係:ガ格>*」というワイルドカードにマッチするか否かを判定する。ニ格・ガ格パターンでは、仕様文の解析結果が「*<係:ガ格>*<係:ニ格>*」又は「*<係:ニ格>*<係:ガ格>*」というワイルドカードにマッチするか否かを判定する。ニ格・ガ格(受動態)パターンでは、仕様文の解析結果が「*<係:ガ格>*<係:ニ格>*<態:受動>*」、「*<係:ニ格>*<係:ガ格>*<態:受動>*」、「*<態:受動>*<係:ガ格>*<係:ニ格>*」、「*<態:受動]>*<係:ニ格>*<係:ガ格>*」、「*<係:ガ格>*<態:受動>*<係:ニ格>*」、「*<係:ニ格>*<態:受動>*<係:ガ格>*」というワイルドカードのいずれかにマッチするか否かを判定する。
次に、変換パターンとのマッチングについて説明する。図9は、変換パターンがマッチした場合の変換処理例を示す図である。図9に示す例では、仕様文Aがガ格パターンにマッチし、仕様文Bがニ格・ガ格パターンにマッチし、仕様文Cがニ格・ガ格(受動態)パターンにマッチするので、それぞれ変換している。
図10は、仕様文の影響関係モデルのモデル要素への変換処理の流れを示すフローチャートである。
まず、分割後の仕様文を1つ取得する(ステップS1001)。
次に、変換パターンを1つ取得する(ステップS1002)。
続いて、仕様文が変換パターンにマッチするか否かを判断する(ステップS1003)。
仕様文が変換パターンにマッチしていなければ(ステップS1003でNo)、続いて判定に利用していない変換パターンがあるか否かを判断する(ステップS1004)。仕様文が変換パターンにマッチしていれば(ステップS1003でYes)、仕様文を影響関係モデル要素に変換パターンに対応する変換処理にかけ(ステップS1005)た後、ステップS1006に移行する。
判定に利用していない変換パターンがあれば(ステップS1004でYes)、ステップS1002に移行する。判定に利用していない変換パターンがなければ(ステップS1004でNo)、次に変換されたモデル要素データを1つ取得する(ステップS1006)。
次に、既に登録済みの要素データか否かを判断する(ステップS1007)。登録済みの要素データでなければ(ステップS1007でNo)、変換された要素データを登録する(ステップS1008)。登録済みの要素データであれば(ステップS1007でYes)、取り出された要素がエッジか否かを判断する(ステップS1009)。取り出された要素がエッジでなければ(ステップS1009でNo)、変換されたモデル要素データの出現箇所データを登録する(ステップS1010)。取り出された要素がエッジであれば(ステップS1009でYes)、変換されたモデル要素データが残っているか否かを判断する(ステップS1011)。変換されたモデル要素データが残っていれば(ステップS1011でYes)、ステップS1006に移行する。変換されたモデル要素データが残っていなければ(ステップS1011でNo)、処理する仕様文データが残っているか否かを判断する(ステップS1012)。処理する仕様文データが残っていれば(ステップS1012でYes)、ステップS1001に移行し、処理する仕様文データが残っていなければ(ステップS1012でNo)、影響関係モデルのモデル要素への変換処理を終了する。
<要素間距離データの計算>
生成された仕様の影響関係解析モデルから、モデル要素間の距離を求める。ここで、“距離”とは、影響関係解析モデルの任意のノード要素から任意のノード要素の間に定義される通過ノード情報の列の数である。ノードの辿り方は有向エッジを辿るだけであり、到達ノードが自身か末端まで辿ることにより、“距離”が求まる。
生成された仕様の影響関係解析モデルから、モデル要素間の距離を求める。ここで、“距離”とは、影響関係解析モデルの任意のノード要素から任意のノード要素の間に定義される通過ノード情報の列の数である。ノードの辿り方は有向エッジを辿るだけであり、到達ノードが自身か末端まで辿ることにより、“距離”が求まる。
尚、“距離”は複数の値になり得るので、その場合には、ユーザがいずれの値を採用するか決定することができる。常に、通過したノード情報を保持しておく。図11は、モデル要素間の距離を説明する図である。図11に示すように、通過ノード情報は、一意識別子として利用するノード名と、プロセスやデータストアなどのノード種別を有している。
図12は、モデル要素間の距離の算出を説明する図である。図12(a)に示す影響関係モデルにおいて、データストアである蓋センサA、保温設定ボタンB、ブザーD、保温行為のモードF、プロセスである100msec以上押下C、設定するEの各々がモデル要素である。モデル要素間の距離を算出するために、各モデル要素をソースとターゲットにそれぞれ配列して、図12(b)に示すマトリクス形式のデータ構造を作成する。ここで、ソースは、有向グラフのノードで距離の計算を開始する影響関係モデルのノード要素であり、ターゲットは、有向グラフのノードで距離の計算を終了する影響関係モデルのノード要素である。ソースを最初の列に並べ、ターゲットを最初の行に並べる。ソースのノードからターゲットのノードに有向エッジを辿って到達するまでの最短距離を各セル毎に算出していく。図12に示す例では、保温設定ボタンBと保温行為のモードF間の距離が最も大きく、保温設定ボタンBと保温行為のモードFは相互に影響しあう可能性が小さいことを表している。
要素間の距離算出に際し、計算のルールは、ユーザが独自に設定可能とするのが好適である。例えば、ノード数、プロセス数、データストア数などに着目し算出していくことができる。また、下流のあるデータストアから上流のあるデータストア(あるプロセス)に有向エッジが戻っており、循環する場合には距離をゼロとすることもできる。距離データを利用して、後述する「影響の強さ」について、ユーザが自由に設定できる。
<仕様(仕様文)と影響関係モデル要素との関係>
例として、次に示す仕様文について、影響関係モデル要素との関係を説明する。
(仕様文1)蓋センサが3sec以上onとなったら、蓋が閉じられたと判断する。
(仕様文2)蓋が閉じられ、水量が適正な場合、沸騰行為をする。
(仕様文3)蓋が閉じられても、水量が異常な場合、状態はアイドルのままである。
例として、次に示す仕様文について、影響関係モデル要素との関係を説明する。
(仕様文1)蓋センサが3sec以上onとなったら、蓋が閉じられたと判断する。
(仕様文2)蓋が閉じられ、水量が適正な場合、沸騰行為をする。
(仕様文3)蓋が閉じられても、水量が異常な場合、状態はアイドルのままである。
図13は、仕様(仕様文)と影響関係モデル要素との関係を説明するもので、図13(a)は、仕様の粒度で影響関係を説明する図である。図13(b)は、図13(a)に示すモデル要素間の距離を算出したマトリクス形式のデータ構造である。図13(c)は、仕様間の影響関係を例示する図である。
図13(a)に示すように、これら3つの仕様文を解析して得られる影響関係モデルによれば、仕様文1はモデル要素A、B、Cから成り、仕様文2はモデル要素C、D、Eから成り、仕様文3はモデル要素C、D、F、Gから成っている。各仕様文の共通するモデル要素に着目すれば、3つの仕様文の影響関係モデルの影響関係を把握することができる。
図13(b)からは、蓋センサAと状態G間の距離が最も大きく、蓋センサAと状態Gは相互に影響しあう可能性が小さいことがわかる。さらに、図13(b)からは、モデル要素A、モデル要素B は仕様文1にのみ所属し、モデル要素F、モデル要素Gは仕様文3にのみ所属し、モデル要素A、モデル要素Bはモデル要素F、モデル要素Gに影響していることがわかる。
以上のことから、図13(c)に示すように、仕様文1が仕様文3に影響していることがわかる。
図14は、モデル要素間の距離算出処理の流れを示すフローチャートである。
まず、影響関係解析モデル要素データを1つ取得する(ステップS1401)。
次に、取得した要素が有向エッジの方向に沿ってつながっている要素を再帰的に取得する(ステップS1402)。
次いで、有向エッジの方向に沿ってつながっている要素を1つ取得する(ステップS1403)。
次いで、有向エッジの方向に沿ってつながっている要素を1つ取得する(ステップS1403)。
次に、つながっているモデル要素との間の距離データ計算する(ステップS1404)。
次いで、つながっているモデル要素が残っているか否かを判定する(ステップS1405)。つながっているモデル要素が残っていれば(ステップS1405でYes)、ステップS1403に移行する。つながっているモデル要素が残っていなければ(ステップS1405でNo)、次に、処理すべき影響関係解析モデル要素データが残っているか否かを判定する(ステップS1406)。処理すべき影響関係解析モデル要素データが残っていれば(ステップS1406でYes)、ステップS1401に移行する。処理すべき影響関係解析モデル要素データが残っていなければ(ステップS1406でNo)、モデル要素間の距離算出処理を終了する。
次いで、つながっているモデル要素が残っているか否かを判定する(ステップS1405)。つながっているモデル要素が残っていれば(ステップS1405でYes)、ステップS1403に移行する。つながっているモデル要素が残っていなければ(ステップS1405でNo)、次に、処理すべき影響関係解析モデル要素データが残っているか否かを判定する(ステップS1406)。処理すべき影響関係解析モデル要素データが残っていれば(ステップS1406でYes)、ステップS1401に移行する。処理すべき影響関係解析モデル要素データが残っていなければ(ステップS1406でNo)、モデル要素間の距離算出処理を終了する。
<仕様の影響関係の表示>
上述してきた影響関係モデル及びモデル要素間の距離に基づいて、仕様の影響関係を表示することにより、仕様作成者や仕様を読む人が気づきにくい仕様の影響範囲や仕様の記述間違いに気づかせることが可能になる。
上述してきた影響関係モデル及びモデル要素間の距離に基づいて、仕様の影響関係を表示することにより、仕様作成者や仕様を読む人が気づきにくい仕様の影響範囲や仕様の記述間違いに気づかせることが可能になる。
本実施形態では、仕様の影響関係を表示させるためのデータを生成し、表示形式自体は、ユーザにより設定可能とする。また、影響関係解析装置において、仕様の影響関係を表示する表示部(図示しない)を備えることも好適である。
表示するためのデータとしては、“用語”、“出現箇所”、“影響先用語”がある。“用語”は、影響関係モデル構成要素のノード要素が持つ要素名で、文字列である。“出現箇所”は、“用語”が登場する仕様を一意に特定する要素であり、“用語”が含まれている仕様の配列である。“影響先用語”は、ある“用語”が影響を与える“用語”とその“用語”に与える“影響の強さ”を組みにしたものの配列である。“影響の強さ”は、上述したモデル要素間の距離を利用して表すことができ、距離の数値が小さいほど、影響が強いと判定することができる。すなわち、“影響の強さ”は、モデル要素間の距離の大きさに反比例する。
これらの表示用データを利用して、多様な表示を行うことができる。図15は、仕様の影響関係の表示例を示す図である。図15(a)に示すように、影響関係はテキスト表示することができ、図15(b)に示すように、グラフィカル表示することもできる。グラフィカル表示の例では、カーソルを仕様中のある要素(例えば、プロセス)にカーソルを合わせると、有向グラフのエッジにそって到達できる要素(例えば、別のプロセス)への関連を表すことができ、影響関係の強さなども分かるように表示させることができる。
テキスト表示の例では、プロセスAは仕様2に存在し、プロセスBとプロセスCに影響するが、その影響の強さはプロセスBへの影響が強いことがわかる。また数字は影響の強さを表しており、0から1までのスケールで、1に近づくほど影響が強いことがわかる。さらに、プロセスCは誰にも影響を与えていないため、影響を与える情報が空となっている。
本実施形態によれば、仕様間の影響関係を理解するための作業コストを低減することができる。仕様間の影響関係の理解をより正確に捉えることができる。仕様を解釈する側が仕様間の影響関係で不足・間違いを発見しやすくできる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
100・・・影響関係解析装置
11・・・入力部
12・・・構文解析部
13・・・仕様文分割部
14・・・影響関係モデル作成部
15・・・距離データ算出部
16・・・表示用データ生成部
11・・・入力部
12・・・構文解析部
13・・・仕様文分割部
14・・・影響関係モデル作成部
15・・・距離データ算出部
16・・・表示用データ生成部
Claims (16)
- ソフトウェアの仕様を構文解析して、前記仕様に存在する文の一つ一つから前記仕様を構成する仕様文へと変換する構文解析部と、
前記仕様文を、分割処理によって、複数の仕様文に分割する仕様文分割部と、
変換パターンを利用して、前記分割後の仕様文を、前記仕様を構成する用語間の影響関係を解析するための有向グラフ形式で表わされる影響関係モデルを構成するモデル要素へと変換する影響関係モデル作成部と、
前記影響関係モデルを元に、前記モデル要素間の影響関係情報としてモデル要素間の距離データを算出する距離データ算出部と、
前記距離データに基づいて、前記仕様間の影響関係を表示するための表示用データを生成する表示用データ生成部とを、
備える影響関係解析装置。 - 前記構文解析は、前記仕様の文節間の係り受け構造を発見するもので、解析結果が木構造である請求項1記載の影響関係解析装置。
- 前記変換パターンは、ユーザが任意で設定可能である請求項1又は請求項2記載の影響関係解析装置。
- 前記変換パターンは、ガ格パターン、ニ格・ガ格パターン、ニ格・ガ格(受動態)パターンのいずれかである請求項1又は請求項2記載の影響関係解析装置。
- 前記影響関係モデルは、データストア、プロセス及びデータフローによってデータの流れを示す矢印で繋いだデータフローダイヤグラムの形式で表す請求項1乃至請求項4のいずれか1項に記載の影響関係解析装置。
- 前記モデル要素は、ノード要素とエッジ要素とから構成され、
前記ノード要素は、前記モデル要素を一意に識別するための文字列である要素名と、プロセスやデータストア等の要素タイプと、当該要素が含まれる仕様文識別子の列である出現箇所データから有し、
前記エッジ要素は、前記要素名、前記要素タイプ、エッジの尾側のノード名の文字列であるソースノード名、エッジの頭側のノード名の文字列であるターゲットノード名を有する請求項1乃至請求項5のいずれか1項に記載の影響関係解析装置。 - 前記仕様文の生成に際しては、
前記仕様もしくは仕様文が分割可能か判定されたか否かを示す分割判定フラグと、
前記仕様を識別する仕様識別子と、
前記仕様文を識別する仕様文IDと、
前記係り受け解析における解析結果とから成る構成データを作成する請求項2記載の影響関係解析装置。 - 前記分割は、
連用係り+読点の分割パターンで、前記仕様文の解析結果がマッチングした場合には、前記仕様文を分割する請求項1乃至請求項7のいずれか1項に記載の影響関係解析装置。 - 前記分割処理におけるルールとなる分割パターンは、ユーザによって設定可能である請求項1乃至請求項8のいずれか1項に記載の影響関係解析装置。
- 前記距離は、影響関係解析モデルの任意のノード要素から任意のノード要素の間に定義される通過ノード情報の列の数で表す請求項1乃至請求項9のいずれか1項に記載の影響関係解析装置。
- 前記距離の算出では、
ソースを最初の列に並べ、ターゲットを最初の行に並べて配列して成るマトリクス形式のデータ構造において、前記ソースのノードから前記ターゲットのノードに有向エッジを辿って到達するまでの最短距離を各セル毎に算出するもので、
前記ソースは、各モデル要素を、有向グラフのノードで距離の計算を終了する影響関係モデルのノード要素であり、
前記ターゲットは、有向グラフのノードで距離の計算を終了する影響関係モデルのノード要素である請求項1乃至請求項10のいずれか1項に記載の影響関係解析装置。 - 前記ソフトウェアの仕様を入力する入力部を備え、入力した仕様は、前記構文解析部に送る請求項1乃至請求項11のいずれか1項に記載の影響関係解析装置。
- 前記表示用データは、
影響関係モデル構成要素のノード要素が持つ要素名で、文字列である用語と、
前記用語が登場する前記仕様を一意に特定する要素であり、前記用語が含まれる前記仕様の配列である出現箇所と、
前記用語が影響を与える用語と当該用語に与える影響の強さを組みにした配列である影響先用語である請求項1乃至請求項12のいずれか1項に記載の影響関係解析装置。 - 前記影響の強さは、前記モデル要素間の距離の大きさに反比例する請求項13記載の影響関係解析装置。
- 前記仕様間の影響関係をグラフィカル表示する表示部を備える請求項1乃至請求項14のいずれか1項に記載の影響関係解析装置。
- 前記仕様間の影響関係をテキスト表示する表示部を備える請求項1乃至請求項14のいずれか1項に記載の影響関係解析装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012258872A JP2014106719A (ja) | 2012-11-27 | 2012-11-27 | 影響関係解析装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012258872A JP2014106719A (ja) | 2012-11-27 | 2012-11-27 | 影響関係解析装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014106719A true JP2014106719A (ja) | 2014-06-09 |
Family
ID=51028153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012258872A Pending JP2014106719A (ja) | 2012-11-27 | 2012-11-27 | 影響関係解析装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014106719A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016021136A (ja) * | 2014-07-14 | 2016-02-04 | 株式会社東芝 | 類義語辞書作成装置 |
KR20180130733A (ko) * | 2017-05-30 | 2018-12-10 | 충북대학교 산학협력단 | 협업 의존성 기반 컴포넌트 재사용 추천 시스템 및 방법 |
WO2020122004A1 (ja) * | 2018-12-10 | 2020-06-18 | Necソリューションイノベータ株式会社 | 情報処理装置、情報処理方法、およびプログラム |
JP2021018487A (ja) * | 2019-07-17 | 2021-02-15 | 株式会社デンソー | データフロー生成装置、その方法、およびそのプログラム |
JP7413214B2 (ja) | 2020-09-09 | 2024-01-15 | 株式会社東芝 | 情報処理装置、情報処理方法及び情報処理プログラム |
CN117931093A (zh) * | 2024-03-20 | 2024-04-26 | 深圳鸿芯微纳技术有限公司 | 全局i/o分配方法、装置及电子设备 |
-
2012
- 2012-11-27 JP JP2012258872A patent/JP2014106719A/ja active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016021136A (ja) * | 2014-07-14 | 2016-02-04 | 株式会社東芝 | 類義語辞書作成装置 |
KR20180130733A (ko) * | 2017-05-30 | 2018-12-10 | 충북대학교 산학협력단 | 협업 의존성 기반 컴포넌트 재사용 추천 시스템 및 방법 |
KR101975272B1 (ko) * | 2017-05-30 | 2019-05-07 | 충북대학교 산학협력단 | 협업 의존성 기반 컴포넌트 재사용 추천 시스템 및 방법 |
WO2020122004A1 (ja) * | 2018-12-10 | 2020-06-18 | Necソリューションイノベータ株式会社 | 情報処理装置、情報処理方法、およびプログラム |
JPWO2020122004A1 (ja) * | 2018-12-10 | 2021-11-18 | Necソリューションイノベータ株式会社 | 情報処理装置、情報処理方法、およびプログラム |
JP7211661B2 (ja) | 2018-12-10 | 2023-01-24 | Necソリューションイノベータ株式会社 | 情報処理装置、情報処理方法、およびプログラム |
JP2021018487A (ja) * | 2019-07-17 | 2021-02-15 | 株式会社デンソー | データフロー生成装置、その方法、およびそのプログラム |
JP7163879B2 (ja) | 2019-07-17 | 2022-11-01 | 株式会社デンソー | データフロー生成装置、その方法、およびそのプログラム |
JP7413214B2 (ja) | 2020-09-09 | 2024-01-15 | 株式会社東芝 | 情報処理装置、情報処理方法及び情報処理プログラム |
CN117931093A (zh) * | 2024-03-20 | 2024-04-26 | 深圳鸿芯微纳技术有限公司 | 全局i/o分配方法、装置及电子设备 |
CN117931093B (zh) * | 2024-03-20 | 2024-05-24 | 深圳鸿芯微纳技术有限公司 | 全局i/o分配方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2014106719A (ja) | 影響関係解析装置 | |
US8312041B2 (en) | Resource description framework network construction device and method using an ontology schema having class dictionary and mining rule | |
US20130332812A1 (en) | Method and system to generate a process flow diagram | |
JP2004110161A (ja) | テキスト文比較装置 | |
US20170132115A1 (en) | Constraint extraction from natural language text for test data generation | |
JP5146750B2 (ja) | Ft図作成プログラム、ft図作成装置、記録媒体及びft図作成方法 | |
JP2014052863A (ja) | 情報処理装置、情報処理システム、情報処理方法 | |
JP5725014B2 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
JP2019032704A (ja) | 表データ構造化システムおよび表データ構造化方法 | |
KR20170134191A (ko) | 페이지랭크와 토픽 모델링을 이용한 소프트웨어 도메인 토픽 추출 시스템 | |
JP5577546B2 (ja) | 計算機システム | |
Khoufi et al. | Supervised learning model for parsing Arabic language | |
JPWO2014064777A1 (ja) | 文書評価支援システム、及び文書評価支援方法 | |
KR101243063B1 (ko) | 패스웨이 구축 시스템 및 방법 | |
CN115687651A (zh) | 知识图谱构建方法、装置、电子设备及存储介质 | |
CN112699642B (zh) | 复杂医疗文书的索引提取方法及装置、介质及电子设备 | |
JP6402637B2 (ja) | 分析プログラム、分析方法及び分析装置 | |
JP2018190017A (ja) | 技術マップ生成装置、技術マップ生成方法およびプログラム | |
JP2000194721A (ja) | 文書群分類装置および文書群分類方法 | |
CN112527278A (zh) | 智能表单生成及发布方法、装置、终端及存储介质 | |
Agić | K-best spanning tree dependency parsing with verb valency lexicon reranking | |
KR20140016784A (ko) | 패스웨이 확장을 위한 시스템 및 방법 | |
JP6235373B2 (ja) | 言語解析方法及びシステム | |
WO2023162129A1 (ja) | 学習用データ生成装置、リスク検知装置、学習用データ生成方法、リスク検知方法、学習用データ生成プログラム及びリスク検知プログラム | |
Shen | SRTK: A Toolkit for Semantic-relevant Subgraph Retrieval |