JP5818706B2 - 仕様書の検査方法、プログラム及びシステム - Google Patents

仕様書の検査方法、プログラム及びシステム Download PDF

Info

Publication number
JP5818706B2
JP5818706B2 JP2012016377A JP2012016377A JP5818706B2 JP 5818706 B2 JP5818706 B2 JP 5818706B2 JP 2012016377 A JP2012016377 A JP 2012016377A JP 2012016377 A JP2012016377 A JP 2012016377A JP 5818706 B2 JP5818706 B2 JP 5818706B2
Authority
JP
Japan
Prior art keywords
rule
candidate
rules
deriving
application table
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.)
Expired - Fee Related
Application number
JP2012016377A
Other languages
English (en)
Other versions
JP2013156811A (ja
Inventor
安部 麻里
麻里 安部
大賀 中村
大賀 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2012016377A priority Critical patent/JP5818706B2/ja
Priority to US13/751,187 priority patent/US8914378B2/en
Publication of JP2013156811A publication Critical patent/JP2013156811A/ja
Application granted granted Critical
Publication of JP5818706B2 publication Critical patent/JP5818706B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3346Query execution using probabilistic model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • G06N5/025Extracting rules from data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Description

この発明は、コンピュータの処理により、コンピュータ可読な形式で保存された仕様書を検査する方法、プログラム及びシステムに関するものである。
近年、SIプロジェクトなどで、コンピュータ・システム上で動作するソフウトェア・ツールを駆使して仕様書の検査を自動化する手法が提案されている。しかしながら、所定のルールに則ったフォーマルな記述様式で記述されていない仕様書に対しては、検査箇所の特定方法や、検査内容の記述方法が定まらず、仕様書検査の自動化は困難である。
一方で、完全にフォーマルな記述形式の制約は制限が厳しすぎるため、担当者の学習コストがかかる等、仕様書の記述に困難をきたし現場にそぐわない。
仕様書の自動検査が重要な役割を果たす大規模SIプロジェクトで、検査の自動化が進んでいないことは、開発プロセスの遅延や、ソフトウェアの深刻なバグを誘発するなどの問題を引き起こす要因になっている。
大規模SIプロジェクトの開発現場では、仕様書は、Excel(R)ファイルなど、概ね形式が定められたセミフォーマルなテンプレートに従って記述される場合が多い。しかしながら、上述した理由により、仕様書検査の自動化が困難であるため、仕様書検査は依然として人が検査項目を逐一目視して行っており、作業効率が悪い。
そこで、テンプレートを基に記述された大量の仕様書を対象に、自動検査を効率的に行うことを可能ならしめる技術的ブレークスルーが要望されている。
特開2009−64339号公報は、仕様書の内容を検査するために、単語抽出部によって作成された設計仕様書から単語を抽出し、抽出された単語の出現頻度を測定し、網羅性検査部に記憶されている予め設計仕様書の特徴を表す特徴語とこの特徴語の出現する度合いの閾値と比較することにより、設計仕様書が記載されるべき項目をどの程度網羅しているかを示す品質を機械的に検査することを開示する。
特開2010−118050公報は、仕様書の検査ではなく、特許文献自動検索方法に関するものであるが、データベースに格納されている特許文献データに対し形態素解析を行う形態素解析手段と、形態素解析されたデータに対し語の出現頻度とエントロピーから重みを求めて特徴語を選択することを特徴としている統計情報計算手段と、特徴語を機械学習し特許文献を判別する識別器と、識別器の判別結果から検索出力に係る技術分野に属する全ての特許文献を抽出する抽出手段とを備えたシステムを開示する。
XSLbyDemo (K. Ono, T. Koyanagi, M. Abe, and M. Hori, “XSLT Stylesheet Generation by Example with WYSIWYG Editing,”in Proceedings of the 2002 Symposium on Applications and the Internet (SAINT2002), pp. 150-159, January 2002)は、複数の構造化文書(HTML) に対しユーザがGUI上で編集作業を行う際、ツールの内部で発生するオペレーションコマンドを記録し、オペレーションコマンドに般化処理を加えた後XSLTファイルを生成する技法を開示する。この技法においては、構造化文書が仕様書群、XSLTが抽出ルールに相当する。
これらの開示技術は、コンピュータにより仕様書を検査するための背景技術ではあるものの、大規模SIプロジェクトで採用される、階層構造化された複雑な仕様書を検査するためには、適用できない。
特開2009−64339号公報 特開2010−118050公報
XSLbyDemo (K. Ono, T. Koyanagi, M. Abe, and M. Hori, "XSLT Stylesheet Generation by Example with WYSIWYG Editing,"in Proceedings of the 2002 Symposium on Applications and the Internet (SAINT2002), pp. 150-159, January 2002)
大量の仕様書を自動的に検査するには、仕様書の情報を抽出するためのルール記述が前提となる。仕様書群に応じて抽出ルールの質を高めることができれば、取得できる仕様情報が増え、自動検査の質が高まり効率よく行われることが期待される。
従って、この発明の目的は、仕様書群に応じて、抽出ルールの修正・編集を効率よく行うための技法を提供することにある。
本発明に係るシステムは、以下の処理を行うルーチンを有する。
(1) 仕様書情報抽出ルールと仕様書群を元に、抽出ルールの修正優先順位を算出する処理。
(2) 抽出ルールの修正優先順位、仕様書群、仕様書情報抽出ルールから、抽出ルール修正候補を算出する処理。
(3) 抽出ルール修正候補の提示、及びユーザーによる確認・入力作業に必要なユーザーインターフェースを提供する処理。
本発明に係るシステムは、検査すべき仕様書を、コンピュータ可読な形式で記憶装置に保存するとともに、検査を行うためのルールをグラフ構造で保存する。
本発明に係るシステムは次に、各仕様書が、各ルールの適用対象となる要素を持つかどうかのルール適用表を作成し、ルールのグラフ構造を探索することにより、前記グラフ構造の各ノードのルールで、当該ルールを前記仕様書が満たすかどうかの平均情報量を導出する。
本発明に係るシステムは次に、ルールのグラフ構造を深さ優先で探索しつつ、各ノードのルールに対して、ルール適用表から、優先順位指数を導出する。そして、優先順位指数の値に従って修正候補のルールを表示する。
本発明の1つの側面によれば、優先順位指数を導出する処理は、ルール適用表においてルールの欄からマッチしない仕様書の要素の数をカウントし、当該ルールの子孫ルールを探索しつつ、当該子孫ルールについて、当該ルールと当該子孫ルールの結合エントロピーを導出し、マッチしない仕様書の要素の数と前記結合エントロピーとを用いて前記優先順位指数を導出する処理を含む。
本発明のさらに別の側面によれば、本発明に係るシステムは、各ルールの制約を包括する制約を作成して修正された候補ルールを作成する処理と、修正された候補ルールを仕様書に適用して、修正された候補ルール及びその子ルールに対してルール適用表を作成する処理と、新たに該当するようになった前記修正された候補ルールが存在するかどうか判断し、もし存在するなら、前記修正された候補ルールのオブジェクトツリーの数に従って、修正された候補ルールを新しいルール適応表に追加する処理を行う。
この発明によれば、修正された優先順位に従って抽出ルールを修正することで、抽出ルールの質を効率よく高めることができる。従って、大規模SIプロジェクトにおける仕様書検査の質の向上と、仕様書検査の大幅な時間短縮がはかられる。
本発明を実施するための一例のハードウェア構成のブロック図を示す図である。 本発明を実施するための機能構成のブロック図を示す図である。 画面レイアウト仕様のテンプレートを示す図である。 抽出ルールの例を示す図である。 抽出ルールと、それに対応するルール適用表を示す図である。 本発明の処理の全体の概要フローチャートを示す図である。 本発明の処理の流れを説明するための図である。 本発明の処理の流れの一部を詳細に示す図である。 優先順位導出処理のフローチャートを示す図である。 統計データに対して前処理を行う処理のフローチャートを示す図である。 ルール適用表から優先順位を導出する処理のフローチャートを示す図である。 ルール修正処理のフローチャートを示す図である。 オブジェクト・ツリーを含むルール適用表の例を示す図である。 従来技術のユーザ・インターフェースの画面を示す図である。 本発明のユーザ・インターフェースの画面を示す図である。
以下、図面に基づき、この発明の実施例を説明する。特に断わらない限り、同一の参照番号は、図面を通して、同一の対象を指すものとする。尚、以下で説明するのは、本発明の一実施形態であり、この発明を、この実施例で説明する内容に限定する意図はないことを理解されたい。
図1を参照すると、本発明の一実施例に係るシステム構成及び処理を実現するためのコンピュータ・ハードウェアのブロック図が示されている。図1において、システム・パス102には、CPU104と、主記憶(RAM)106と、ハードディスク・ドライブ(HDD)108と、キーボード110と、マウス112と、ディスプレイ114が接続されている。CPU104は、好適には、32ビットまたは64ビットのアーキテクチャに基づくものであり、例えば、インテル社のPentium(商標) 4、Core(商標)2 Duo、Xeon(商標)、AMD社のAthlon(商標)などを使用することができる。主記憶106は、好適には、4GB以上の容量をもつものである。ハードディスク・ドライブ108は、好適には例えば、500GB以上の容量をもつものである。
ハードディスク・ドライブ108には、個々に図示しないが、オペレーティング・システムが、予め格納されている。オペレーティング・システムは、Linux(商標)、マイクロソフト社のWindows(商標)7、Windows XP(商標)、アップルコンピュータのMac OS(商標)などの、CPU104に適合する任意のものでよい。
ハードディスク・ドライブ108にはさらに、図2に関連して後述するメイン・ルーチン202、仕様書群のファイル204、ルール木206、ルール適用表作成ルーチン208、ルール適用表210、ルール木探索ルーチン212、統計データ前処理ルーチン214、優先順位指数導出ルーチン216、及びルール修正ルーチン218が格納されている。これらの処理ルーチンは、C、C++、C#、Java(R)などの既存のプログラミング言語処理系で作成することができ、オペレーティング・システムの働きで、これらのルーチンは適宜主記憶106にロードされて実行される。これらのルーチンの動作の詳細は、図2の機能ブロック図を参照して、より詳細に説明する。
キーボード110及びマウス112は、所定のGUI画面(図示しない)を操作して、上述の処理ルーチンなどを起動したり、文字を打ち込んだりするために使用される。
ディスプレイ114は、好適には、液晶ディスプレイであり、例えば、XGA(1024×768の解像度)、またはUXGA(1600×1200の解像度)などの任意の解像度のものを使用することができる。ディスプレイ114は、仕様の検証候補などを表示するために使用される。
図1のシステムは更に、好適には、バス102に接続された通信インターフェース116を介して、LAN、WANなどの外部ネットワークに接続されている。通信インターフェース116は、イーサネット(商標)などの仕組みにより、外部ネットワーク上にあるサーバやクライアント・コンピュータなどのシステムとデータのやりとりを行う。このように本発明のシステムがネットーワークに接続されている場合、図1のシステムをサーバとして、別のクライアント・システムから操作することができる。あるいは、図1のシステムをスタンドアロンのシステムとして使用してもよい。
図2は、本発明を実行するための論理構成のブロック図を示す図である。メイン・ルーチン202は、ユーザのキーボード110及びマウス112などの操作を受け入れて、全体の処理を制御する働きを行う。
仕様書群204は、好適にはMicrosoft(R) Excel(R)で作成され、ハードディスク・ドライブ108に保存されているファイル群であり、その例を図3に示す。仕様書群204には、一般的な仕様書群や、過去のプロジェクト・データも含まれていてもよい。
なお、仕様書群204のフォーマットは、Excel(R)以外にも、Microsoft(R) Word(R)、XMLなど任意のフォーマットを使用することができる。
次に、ルール木206を説明する前に、抽出ルールについて説明する。抽出ルールとは,少なくとも以下の情報が記載されており,階層構造を持つものである。
・仕様書探索条件
− Microsoft(R) Word(R), Excel(R)など,ファイルの種類やファイル内の要素の種類にあわせて探索条件を記述する
型(例えば、Worksheet(ワークシート)、Cell(セル)、Shape(シェイプ)、Comment(コメント)など)
− 型に対応する要素の文字列(例えば、ファイル名、ワークシート名、セル文字列、シェイプ文字列など)にマッチする文字列パターンを記述する。文字列パターンは、正規表現などで記述する。
文字列パターン(例えば、“^画面レイアウト仕様”, “画面操作概要$”)
型・文字列パターンを連結し,取得したい仕様書情報までの探索方向を記述する.
− 探索条件(例えば、direction=RIGHT, traversal type=BORDER(境界線を基準に探索), 座標指定)
・Requirement level(要求レベル)
− 仕様書においてどの程度必須な情報かを記述する
例えば、must, should, may...
− Cardinality(濃度)
仕様書内の出現回数をcardinalityとして記述する(例えば、 0...1, 1, 0...*, 1...*)
図4は、抽出ルールの例であり、図示されているように、一般的に階層をもつ木構造であらわされる。ルール木206は、XMLなどの、このような木構造を記述する形式で、抽出ルールをハードディスク・ドライブ108に保存したものである。
ルール適用表作成ルーチン208は、ルール木206から、ルール適用表210を生成する処理を行う。図5は、ルール木206である抽出ルール502から抽出された、ルール適用表504を示す図である。ルール適用表504において、S0, S1, S2は仕様書であり、R0〜R5は、ルールを示す。チェック・マークは、どのルールがどの仕様書に適用されるかを示す。
ルール木探索ルーチン212は、深さ優先探索のような既知のアルゴリズムにより、ルール木206のノードを辿る処理を行う。
統計データ前処理ルーチン214は、仕様書群、過去のプロジェクト・データ、一般的な仕様書群、過去のプロジェクト・データに基づき統計データに前処理を施す。
優先順位指数導出ルーチン216は、各ルールについて、ルール適用表210から優先順位指数を導出する処理を行う。
ルール修正ルーチン218は、適宜ユーザーとの対話的インターフェースを用いながら、ルールを修正し、ルール適用表210に反映させる処理を行う。
図6は、本発明の処理全体の概要のフローチャートを示す図である。図2の機能ブロック図で示すシステムは、ステップ602で、抽出ルール修正の優先順位を導出する。このために、ルール木探索ルーチン212、統計データ前処理ルーチン214、及び優先順位指数導出ルーチン216が呼び出される。
ステップ604では、本発明のシステムは、最優先のルールに対して、修正候補を導出し、ユーザに提示する。このために、ルール修正ルーチン218が呼び出される。
ステップ606では、本発明のシステムは、全てのルールに対して修正作業が終わったかどうか判断し、そうでなければ、ステップ602に戻る。なお、ステップ606は、ユーザの判断で終了することもできるので、全てのルールに対して修正作業が終わったわけではなくても、優先順位の高いいくつかのルールに対して修正作業をしただけで、処理を終了することもできる。
図7は、本発明の処理を別の観点から説明する図である。図7において、ルール木206から抽出された仕様書情報抽出ルール702があり、処理1は、仕様書情報抽出ルール702と、仕様書群204を元に、優先順位指数導出ルーチン216を呼び出して、抽出ルール修正優先順位704を計算する。
処理2は、仕様書群204、仕様書情報抽出ルール702、及び抽出ルール修正優先順位704から、ルール修正ルーチン218を呼び出して、抽出ルール修正候補706を算出する。
処理3は、ルール修正ルーチン218を呼び出して、抽出ルール修正候補706の提示、及びユーザによる確認・入力作業に必要なユーザ・インターフェースを与える。
図8は、図7の処理1に関連して、より詳細に説明する図である。すなわち、処理1は、図8に示すように、仕様書群204のみならず、必要に応じて、過去のプロジェクト・データ802と、一般的な仕様書群804も参照する。
次に、図9のフローチャートを参照して、優先順位導出処理を説明する。この処理は、基本的には図2に示すメイン・ルーチン202によって実行される。メイン・ルーチン202は、必要に応じて、ルール適用表作成ルーチン208、ルール木探索ルーチン212、統計データ前処理ルーチン214、優先順位指数導出ルーチン216、及びルール修正ルーチン218を呼び出す。
図9のステップ902で、メイン・ルーチン202は、ルール適用表作成ルーチン208を呼び出して、ルールRn(n = 0,...,N)と仕様書Si(i=0,...,I)の適用状況を示すルール適用表210を作成する。ルール適用表210の例を、図5にルール適用表504として示す。
ステップ904で、ルール適用表作成ルーチン208は、ルールの適用対象となる仕様書の要素が存在する(マッチする)場合、やはり図5にルール適用表504として示すように、その欄にチェックを入れる。実際上、コンピュータ上で、表のデータの所定のメモリの位置に1を書き込むなどの処理を行う。
ステップ906で、メイン・ルーチン202は、各ルールがマッチする確率を計算するための統計データがあるかどうか判断する。もし統計データが存在しないなら、メイン・ルーチン202は直ちにステップ910に進む。
もし統計データが存在するなら、メイン・ルーチン202は、統計データ前処理ルーチン214を呼び出す。そこで、図10のフローチャートを参照して、統計データ前処理ルーチン214の処理について説明する。
図10において、統計データ前処理ルーチン214は、ステップ1002でルール木206を探索する。
ステップ1004では、統計データ前処理ルーチン214は、統計データより、当該のルールRnに対して確率Pnを求める。統計データは、図8に示す過去のプロジェクト・データ802及び一般的な仕様書群804などを基に予め得られているデータである。
統計データ前処理ルーチン214はステップ1006で、ルールRnの子孫ルールを探索する。
統計データ前処理ルーチン214はステップ1008で、ルールRnの子孫ルールの間の共起確率を求める。
統計データ前処理ルーチン214はステップ1010で、ルールRnの子孫ルールをすべて探索したかどうか判断し、もしそうならステップ1012に進み、そうでなければ、ステップ1006に戻る。
統計データ前処理ルーチン214はステップ1012で、ルール木を全て探索したかどうかを判断し、そうでなければステップ1002に戻り、そうならば、図9のステップ908に戻る。
メイン・ルーチン202は、ステップ908からステップ910に進んで、ルール木探索ルーチン212を呼ぶことで、ステップ910でルール木を探索する。
メイン・ルーチン202は、ステップ912で、ルール木を全て探索したかどうか判断し、そうでなければステップ914で、探索中のノードRnの平均情報量H(Rn)を下記の式で計算する。
H(Rn) = -PRnlog PRn - (1-PRn)log(1-PRn)
ここで、対数の底は2であるとする。また、PRnは、あるルールRnが仕様書にマッチする確率である。確率PRnの算出には、上述のように、過去のプロジェクトにおいて利用した仕様書群や、一般的に用いられるランダムなファイル群などの統計データを用いる。もし統計データがない場合は、PRn = 1/2とおく。
ステップ914からステップ910に戻って、更にルール木を探索し、ステップ912で、ルール木を全て探索したと判断すると、メイン・ルーチン202は、ステップ916に進んで、ルール木探索ルーチン212を呼ぶことで、ステップ916でルール木を深さ優先順位探索する。
ステップ918で、メイン・ルーチン202は、ルール木を全て探索したかどうか判断し、そうでなければ、ステップ920で、優先順位指数導出ルーチン216を呼び出す。
そこで、優先順位指数導出ルーチン216のより詳細な処理を、図11のフローチャートを参照して説明する。
図11において、優先順位指数導出ルーチン216は、ステップ1102で、ルール適用表のRnの欄から、マッチしない仕様書の数をカウントする。
次に優先順位指数導出ルーチン216は、ステップ1104で、抽出ルールから、RnのRequirementLevelを取得し、α(Rn)を決定する。ここで、α(Rn)とは、RnのRequirementLevelに応じた値であり、例えば、RnのRequirementLevel = mustならα(Rn) = 1.0、RnのRequirementLevel = shouldならα(Rn) = 0.9、RnのRequirementLevel = mayならα(Rn) = 0.6、RnのRequirementLevel = optionalならα(Rn) = 0.5のように選ばれる。
次に優先順位指数導出ルーチン216は、ステップ1106で、ルールRnの子孫ルールを探索する。
次にステップ1108で、子孫ルールを全て探索したかどうか判断し、もしそうなら、ステップ1114に進む。
ステップ1108で、子孫ルールを全て探索したのでないと判断すると、優先順位指数導出ルーチン216はステップ1110で、探索中のノードRnの子孫ルールRmについて、相互情報量I(Rn,Rm)を計算する。相互情報量I(Rn,Rm)は、以下の式で与えられる。
I(Rn,Rm) = H(Rn) + H(Rm) - H(Rn,Rm)
ここで、H(Rn)及びH(Rm)は、ステップ914に関連して説明した平均情報量である。
また、H(Rn,Rm)は、RnとRmの結合エントロピーであり、以下の式で与えられる。
Figure 0005818706

結合エントロピーの式を具体的に書き下すと、以下のとおりである。
-P(Rnがマッチ∧Rmがマッチ)logP(Rnがマッチ∧Rmがマッチ)
-P(Rnがマッチ∧Rmがマッチせず)logP(Rnがマッチ∧Rmがマッチせず)
-P(Rnがマッチせず∧Rmがマッチ)logP(Rnがマッチせず∧Rmがマッチ)
-P(Rnがマッチせず∧Rmがマッチせず)logP(Rnがマッチせず∧Rmがマッチせず)
優先順位指数導出ルーチン216は次に、ステップ1112で、抽出ルールから、RmのRequirementLevelを取得し、α(Rm)を決定して、ステップ1106に戻る。
こうして、優先順位指数導出ルーチン216が、ステップ1108で子孫ルールを全て探索したと判断すると、ステップ1114で、優先順位指数導出の式より、Rnの指数を計算する。ここで、優先順位指数導出の式は以下で与えられる。
Figure 0005818706

この式で、NRnは、Rnのマッチしない仕様書の数であり、優先順位指数が高ければ高いほど、修正順位は高い。
尚、ここで示す優先順位指数導出の式は一例であって、例えば、Rnのマッチしない仕様書の数×子孫ノードのうちのmustノードの数×α(Rn)のような式を使用することもできる。但し、優先順位指数導出の式に相互情報量を含めないと、ルール修正優先順位導出のポリシーのいつくかは満たせなくなることがあり、従って、相互情報量を含む優先順位指数導出の式を用いることが望ましい。
なお、説明のため、優先順位導出の例をいくつか示す。
例えば、PRn = 1/2、PRm = 1/2の場合、
H(Rn) = -(1-1/2)log(1-1/2) - (1/2)log(1/2) = 1
H(Rm) = -(1-1/2)log(1-1/2) - (1/2)log(1/2) = 1
このとき、RnがマッチしなければRmは絶対マッチしない。例えば、worksheetが見つからなければ、その中のcellは見つからない。さらにこの場合、RnがマッチしたときのRmがマッチする確率はPRmと同じ(RmとRnは独立)。
さらに、Rn、RmのRequirement Levelはmust(α=1)、Rnの子ノードはRmのみとする。
上記のような場合、計算は次のようになる。
P(Rnがマッチ∧Rmがマッチ) = 1/4
P(Rnがマッチ∧Rmがマッチせず) = 1/4
P(Rnがマッチせず∧Rmがマッチ) = P(Rnがマッチせず)*P(Rmがマッチ|Rnがマッチせず) = 0
P(Rnがマッチせず∧Rmがマッチせず) = P(Rnがマッチせず)*P(Rmがマッチせず|Rnがマッチせず) = 1/2
以上から、H(Rn,Rm) = -1/4log(1/4)-1/4log(1/4)-1/2log(1/2) = 1/2+1/2+1/2=3/2
I(Rn,Rm) = 1+1-3/2 = 1/2
すると、Rnの優先順位指数 =
α(Rn) * H(Rn) + α(Rm) * I(Rn,Rm) * H(Rm)
= 1*1 + 1*(1/2)*1 = 1.5
さらに別の例で、
例えば、PRn = 1/2、PRm = 1/2の場合、
H(Rn) = -(1-1/2)log(1-1/2) - (1/2)log(1/2) = 1
H(Rm) = -(1-1/2)log(1-1/2) - (1/2)log(1/2) = 1
ここで、RnとRmが独立の場合は、
P(Rnがマッチ∧Rmがマッチ) = 1/4
P(Rnがマッチ∧Rmがマッチせず) = 1/4
P(Rnがマッチせず∧Rmがマッチ) = P(Rnがマッチせず)*P(Rmがマッチ|Rnがマッチせず) = 1/4
P(Rnがマッチせず∧Rmがマッチせず) = P(Rnがマッチせず)*P(Rmがマッチせず|Rnがマッチせず) = 1/4
以上から、H(Rn,Rm) = -1/4log(1/4)-1/4log(1/4)-1/4log(1/4)-1/4log(1/4) = 1/2+1/2+1/2+1/2=2
I(Rn,Rm) = 1+1-2 = 0
すると、Rnの優先順位指数 =
α(Rn) * H(Rn) + α(Rm) * I(Rn,Rm) * H(Rm)
= 1*1 + 1*0*1 = 1
以上から、RnとRmが独立の場合は、RnとRmに依存関係がある場合よりも優先順位指数が低いことがわかる。
こうして優先順位指数を計算すると、優先順位指数導出ルーチン216はステップ920に戻る。
ステップ916からステップ918に至って、メイン・ルーチン202は、ステップ918でルール木を全て探索したと判断すると、ステップ922で、優先順位指数の最も高いものを修正候補ルールRnとし、ステップ924で、ルール修正ルーチン218を呼び出す。
次に、図12のフローチャートを参照して、ルール修正処理について説明する。
ルール修正ルーチン218は、ステップ1202で、Rnの制約を包含する制約を作成し、修正の候補Ri n(i = 0,...,I)とする。ここで、Rnの制約を包含する制約とは、例で示すと次のとおりである。すなわち、例えばR0の制約として、"文字列パターン「画面レイアウト仕様」を名前に含むシート" と記述されていたとする。そして、仕様書S0に"「画面レイアウト仕様」シート、仕様書S1には「画面レイアウト仕様」シート(半角カタカナ)が存在したとする。その際、「画面レイアウト仕様」と「画面レイアウト仕様」(半角カタカナの共通文字列を算出し、R0の制約を包含する制約画面(レイアウト or レイアウト(半角カタカナ)仕様というパターンを作成する。共通文字列を算出する方法として例えば、一般的なアルゴリズムである、Longest Common Subsequence 等を使用することができる。
ルール修正ルーチン218は、ステップ1204で、Ri n(i = 0,...,I)を仕様Sm(m= 0,...,M)に適用し、Ri n及びその子ルールに対して、オブジェクト・ツリーを含むルール適用表を作成する。オブジェクト・ツリーを含むルール適用表の例を図13に示す。
ステップ1206では、ルール修正ルーチン218は、Ri nに対して、Cardinalityに違反しているSmが存在するかどうか判断し、もしそうなら、ステップ1208で、違反しているRi nを修正候補から除去してステップ1210に進み、そうでないなら直ちに、ステップ1210に進む。
ステップ1210では、ルール修正ルーチン218は、新たにマッチするようになったRi nが存在するかどうか判断し、そうでないなら、ステップ1214に進み、Rnの修正候補をユーザに入力してもらうための画面をディスプレイ114に表示する。修正候補をユーザに入力してもらうための画面の例は、図15に示す。尚、比較のため、従来技術における修正候補をユーザに入力してもらうための画面の例を図14に示す。図15の画面は、修正候補が優先順位付けされており、修正すべき候補が見て取りやすいことが分かる。
一方、ステップ1210で、ルール修正ルーチン218が新たにマッチするようになったRi nが存在すると判断すると、ステップ1212で、オブジェクト・ツリーの数が最も多いルールRi nを新しいルールRnとして確認画面を提示する。この確認画面も基本的には、図15と同様のインターフェースである。
ステップ1212、あるいはステップ1214からは、ステップ1216に進み、そこでルール修正ルーチン218は、新しいルールが確認された、あるいは、修正候補が入力されたかどうか判断し、もしそうなら、ステップ1218で、新しいルールをRnとしてルール適用表210に登録して、処理を終了する。
新しいルールは確認されず、且つ、修正候補も入力されないなら、ルール修正ルーチン218は、Rnにマッチしない仕様書Rnに対して例外処理を行うよう警告して処理を終わる。ここで例外処理とは、対象となっている仕様書はテンプレートから逸脱していると判断して、仕様書を改訂する、あるいは仕様書を除去するように担当者に連絡する、等である。
図15に示すインターフェースでルールを修正することは、図7では、処理3を経て、ユーザが抽出ルールの確認・入力作業を行い、こうして修正した仕様書情報抽出ルール702で、処理を再開することを意味する。
以上のように、特定の実施例に従い、本発明を説明してきたが、本発明は、特定のオペレーティング・システムやプラットフォームに限定されず、任意のコンピュータ・システム上で実現可能であることを、この分野の当業者なら理解するであろう。
104・・・CPU
106・・・RAM
108・・・ハードディスク・ドライブ
114・・・ディスプレイ
204・・・仕様書群
206・・・ルール木
208・・・ルール適用表作成ルーチン
210・・・ルール適用表
212・・・ルール木探索ルーチン
214・・・統計データ前処理ルーチン
216・・・優先順位指数導出ルーチン
218・・・ルール修正ルーチン

Claims (9)

  1. 記憶手段をもち、検査すべき仕様書が、該記憶手段にコンピュータ可読な形式で保存され、さらに検査を行うためのルールをグラフ構造で用意され該記憶手段に保存されているコンピュータ・システムにおいて、該コンピュータ・システムにおける処理により、仕様書を検査する方法であって、
    前記仕様書の要素が前記ルールが適用対象であるかどうかのルール適用表を作成するステップと、
    前記ルールのグラフ構造を探索することにより、前記グラフ構造の各ノードのルールで、当該ルールを前記仕様書が満たすかどうかの平均情報量を導出するステップと、
    前記ルールのグラフ構造を深さ優先で探索しつつ、各ノードのルールで、前記ルール適用表から、前記平均情報量を用いて、優先順位指数を導出するステップと、
    前記優先順位指数の値に従って修正候補のルールを表示するステップを有する、
    仕様書検査方法。
  2. 前記優先順位指数を導出するステップが、前記ルール適用表において当該ルールの欄からマッチしない仕様書の要素の数をカウントするステップと、当該ルールの子孫ルールを探索しつつ、当該子孫ルールについて、当該ルールと当該子孫ルールの相互情報量を導出するステップと、前記マッチしない仕様書の要素の数と前記相互情報量とを用いて前記優先順位指数を導出するステップを有する、請求項1に記載の方法。
  3. 前記各ルールの制約を包含する制約を持つ代替可能な候補ルールを作成するステップと、
    前記候補ルールを前記仕様書に適用して、
    前記候補ルール及びその子ルールに対してルール適用表を作成するステップと、
    前記候補ルールのうち,新たに該当するようになった仕様書の要素が存在するかどうか判断し、
    もし存在するなら、前記候補ルールのオブジェクトツリーの数に従って、前記候補ルールを新しいルール適応表に追加するステップをさらに有する、請求項1に記載の方法。
  4. 記憶手段をもち、検査すべき仕様書が、該記憶手段にコンピュータ可読な形式で保存され、さらに検査を行うためのルールをグラフ構造で用意され該記憶手段に保存されているコンピュータ・システムにおいて、該コンピュータ・システムにおける処理により、仕様書を検査するプログラムであって、
    前記コンピュータ・システムに、
    前記仕様書の要素が前記ルールが適用対象であるかどうかのルール適用表を作成するステップと、
    前記ルールのグラフ構造を探索することにより、前記グラフ構造の各ノードのルールで、当該ルールを前記仕様書が満たすかどうかの平均情報量を導出するステップと、
    前記ルールのグラフ構造を深さ優先で探索しつつ、各ノードのルールで、前記ルール適用表から、前記平均情報量を用いて、優先順位指数を導出するステップと、
    前記優先順位指数の値に従って修正候補のルールを表示するステップを実行させる、
    仕様書検査プログラム。
  5. 前記優先順位指数を導出するステップが、前記ルール適用表において当該ルールの欄からマッチしない仕様書の要素の数をカウントするステップと、当該ルールの子孫ルールを探索しつつ、当該子孫ルールについて、当該ルールと当該子孫ルールの相互情報量を導出するステップと、前記マッチしない仕様書の要素の数と前記相互情報量とを用いて前記優先順位指数を導出するステップを有する、請求項4に記載のプログラム。
  6. 前記コンピュータ・システムに、
    前記各ルールの制約を包含する制約を持つ代替可能な候補ルールを作成するステップと、
    前記候補ルールを前記仕様書に適用して、
    前記候補ルール及びその子ルールに対してルール適用表を作成するステップと、
    前記候補ルールのうち,新たに該当するようになった仕様書の要素が存在するかどうか判断し、
    もし存在するなら、前記候補ルールのオブジェクトツリーの数に従って、前記候補ルールを新しいルール適応表に追加するステップをさらに実行させる、請求項4に記載のプログラム。
  7. コンピュータ・システムにおける処理により、仕様書を検査するシステムであって、
    記憶手段と、
    前記記憶手段にコンピュータ可読な形式で保存された、検査すべき仕様書と、
    前記記憶手段にコンピュータ可読な形式で保存された、検査を行うためのルールをグラフ構造のデータと、
    前記仕様書の要素が前記ルールが適用対象であるかどうかのルール適用表を作成する手段と、
    前記ルールのグラフ構造を探索することにより、前記グラフ構造の各ノードのルールで、当該ルールを前記仕様書が満たすかどうかの平均情報量を導出する手段と、
    前記ルールのグラフ構造を深さ優先で探索しつつ、各ノードのルールで、前記ルール適用表から、前記平均情報量を用いて、優先順位指数を導出する手段と、
    前記優先順位指数の値に従って修正候補のルールを表示する手段を有する、
    仕様書検査システム。
  8. 前記優先順位指数を導出する手段が、前記ルール適用表において当該ルールの欄からマッチしない仕様書の要素の数をカウントする手段と、当該ルールの子孫ルールを探索しつつ、当該子孫ルールについて、当該ルールと当該子孫ルールの相互情報量を導出する手段と、前記マッチしない仕様書の要素の数と前記相互情報量とを用いて前記優先順位指数を導出する手段を有する、請求項7に記載のシステム。
  9. 前記各ルールの制約を包含する制約を持つ代替可能な候補ルールを作成する手段と、
    前記候補ルールを前記仕様書に適用して、
    前記候補ルール及びその子ルールに対してルール適用表を作成する手段と、
    前記候補ルールのうち,新たに該当するようになった仕様書の要素が存在するかどうか判断し、
    もし存在するなら、前記候補ルールのオブジェクトツリーの数に従って、前記候補ルールを新しいルール適応表に追加する手段をさらに有する、
    請求項7に記載のシステム。
JP2012016377A 2012-01-30 2012-01-30 仕様書の検査方法、プログラム及びシステム Expired - Fee Related JP5818706B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012016377A JP5818706B2 (ja) 2012-01-30 2012-01-30 仕様書の検査方法、プログラム及びシステム
US13/751,187 US8914378B2 (en) 2012-01-30 2013-01-28 Specification document check method, program, and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012016377A JP5818706B2 (ja) 2012-01-30 2012-01-30 仕様書の検査方法、プログラム及びシステム

Publications (2)

Publication Number Publication Date
JP2013156811A JP2013156811A (ja) 2013-08-15
JP5818706B2 true JP5818706B2 (ja) 2015-11-18

Family

ID=48871205

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012016377A Expired - Fee Related JP5818706B2 (ja) 2012-01-30 2012-01-30 仕様書の検査方法、プログラム及びシステム

Country Status (2)

Country Link
US (1) US8914378B2 (ja)
JP (1) JP5818706B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9715625B2 (en) 2012-01-27 2017-07-25 Recommind, Inc. Hierarchical information extraction using document segmentation and optical character recognition correction
US9483477B2 (en) * 2015-01-19 2016-11-01 Sas Institute Inc. Automated data intake system
US10956401B2 (en) * 2017-11-28 2021-03-23 International Business Machines Corporation Checking a technical document of a software program product
US11048762B2 (en) 2018-03-16 2021-06-29 Open Text Holdings, Inc. User-defined automated document feature modeling, extraction and optimization
US10762142B2 (en) * 2018-03-16 2020-09-01 Open Text Holdings, Inc. User-defined automated document feature extraction and optimization
US11610277B2 (en) 2019-01-25 2023-03-21 Open Text Holdings, Inc. Seamless electronic discovery system with an enterprise data portal
WO2020252614A1 (en) * 2019-06-17 2020-12-24 Beijing Voyager Technology Co., Ltd. Systems and methods for data processing

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1894151A2 (en) * 2005-06-20 2008-03-05 Future Route Limited Analytical system for discovery and generation of rules to predict and detect anomalies in data and financial fraud
WO2007002468A2 (en) * 2005-06-23 2007-01-04 1Stworks Corporation Modeling for enumerative encoding
JP4945383B2 (ja) 2007-09-07 2012-06-06 株式会社日立ハイテクノロジーズ 仕様書内容検査方法および仕様書内容検査システム
US9411864B2 (en) * 2008-08-26 2016-08-09 Zeewise, Inc. Systems and methods for collection and consolidation of heterogeneous remote business data using dynamic data handling
JP2010118050A (ja) 2008-10-17 2010-05-27 Toyohashi Univ Of Technology 特許文献自動検索システムおよび特許文献自動検索方法
US8849725B2 (en) * 2009-08-10 2014-09-30 Yahoo! Inc. Automatic classification of segmented portions of web pages

Also Published As

Publication number Publication date
US20130198201A1 (en) 2013-08-01
US8914378B2 (en) 2014-12-16
JP2013156811A (ja) 2013-08-15

Similar Documents

Publication Publication Date Title
JP5818706B2 (ja) 仕様書の検査方法、プログラム及びシステム
Zhang et al. Automated information transformation for automated regulatory compliance checking in construction
US10210249B2 (en) Method and system of text synthesis based on extracted information in the form of an RDF graph making use of templates
JP4767694B2 (ja) 不正ハイパーリンク検出装置及びその方法
Nguyen et al. Auto-locating and fix-propagating for HTML validation errors to PHP server-side code
Shokripour et al. Automatic bug assignment using information extraction methods
Thakur et al. Automatic generation of sequence diagram from use case specification
Reder et al. Model/analyzer: a tool for detecting, visualizing and fixing design errors in UML
US9336207B2 (en) Measuring linguistic markers and linguistic noise of a machine-human translation supply chain
Mariani et al. Semantic matching of gui events for test reuse: are we there yet?
Nguyen et al. Rule-based extraction of goal-use case models from text
CN113987199B (zh) 一种规范自动解译的bim智能审图方法、系统和介质
Zhong et al. Inferring specifications for resources from natural language API documentation
Bacchelli et al. Benchmarking lightweight techniques to link e-mails and source code
US20090204889A1 (en) Adaptive sampling of web pages for extraction
Zhang et al. Automatically reproducing android bug reports using natural language processing and reinforcement learning
Zhang et al. An Accurate Identifier Renaming Prediction and Suggestion Approach
Carvalho et al. DMOSS: Open source software documentation assessment
Alhindawi et al. A Topic Modeling Based Solution for Confirming Software Documentation Quality
Ferrara et al. Design of automatically adaptable web wrappers
Berta et al. Employing issues and commits for in-code sentence based use case identification and remodularization
Liu et al. CrawLabel: computing natural-language labels for UI test cases
CN107544906A (zh) 一种基于内容非敏感性DOM骨架等价判定的Web自动化测试方法
Both et al. Quality assurance of a german covid-19 question answering systems using component-based microbenchmarking
Alabbas et al. Online multilingual plagiarism detection system using multi search engines

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140808

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150827

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150908

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150929

R150 Certificate of patent or registration of utility model

Ref document number: 5818706

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees