JP6185148B2 - ソフトウェア仕様間依存関係検証装置、及びソフトウェア仕様間依存関係検証方法 - Google Patents

ソフトウェア仕様間依存関係検証装置、及びソフトウェア仕様間依存関係検証方法 Download PDF

Info

Publication number
JP6185148B2
JP6185148B2 JP2016509656A JP2016509656A JP6185148B2 JP 6185148 B2 JP6185148 B2 JP 6185148B2 JP 2016509656 A JP2016509656 A JP 2016509656A JP 2016509656 A JP2016509656 A JP 2016509656A JP 6185148 B2 JP6185148 B2 JP 6185148B2
Authority
JP
Japan
Prior art keywords
dependency
verification
items
rule
item
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
JP2016509656A
Other languages
English (en)
Other versions
JPWO2015145556A1 (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2015145556A1 publication Critical patent/JPWO2015145556A1/ja
Application granted granted Critical
Publication of JP6185148B2 publication Critical patent/JP6185148B2/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
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

本発明は、ソフトウェア仕様間依存関係検証装置及びソフトウェア仕様間依存関係検証方法に関する。
大規模ソフトウェア開発において、複数のソフトウェア仕様間に生じる不整合は、開発工程手戻りによる予算超過が発生する主な原因であり、そのような不整合を開発早期に検知し修正しておく必要がある。ソフトウェア仕様間の不整合を検知するために、ソフトウェア仕様間の依存関係に基づいて不整合を検証することが有効である。ここで、「依存関係」とは、あるソフトウェアの基本機能仕様と詳細機能仕様のように、対応する仕様中に含まれる対応する仕様項目間に成立する関係であって、例えば対応する仕様項目同士が「一致」すること等を意味している。なお、本明細書では、以下簡単のため、「ソフトウェア仕様」を単に「仕様」と略称する。
複数の仕様間での依存関係を検証するための従来技術として、対象とする仕様間の依存関係を示す情報を用いて、その情報を図または表形式でグラフィカルに表示する手法がある。この手法を活用すると、複数のソフトウェア仕様書を開いて横並びで見比べる手間をかけることなく一目で仕様間の依存関係を把握できるようにすることができる。これにより、仕様間依存関係の不備、矛盾などの不整合を検知できるようになる。
このような技術は、例えば特許文献1、2に開示されている。特許文献1は、「複数の工程からなるソフトウェアプロセスの各工程において作成される成果物を管理する成果物管理装置であり、入力装置により、所定のシステムを開発する前記ソフトウェアプロセスの所定の工程において作成された成果物を入力する成果物入力部と、処理装置により、前記成果物入力部が入力した成果物から所定のキーワードを検索して、検索された箇所を示す検索箇所情報を抽出する情報抽出部と、処理装置により、前記情報抽出部が抽出した検索箇所情報から、前記所定のシステムにおける前記各工程で作成された成果物間の関連を管理するためのトレーサビリティ情報を作成するトレーサビリティ情報作成部と、前記トレーサビリティ情報作成部が作成したトレーサビリティ情報を記憶装置に記憶するトレーサビリティ情報記憶部と」を備えている。また、特許文献2は、「ソフトウェア開発時に、要求仕様が正しく設計仕様に反映されたか否かを検証する方法であって、開発対象のソフトウェアに対する要求仕様を記述した要求ドキュメントに要求仕様識別子を付与して、ドキュメントデータベースに格納し(STEP11)、要求ドキュメントをもとにして作成した設計ドキュメントに設計仕様識別子を付与して、ドキュメントデータベースに格納し(STEP12)、前記ドキュメントデータベースから要求ドキュメントを入力して、要求仕様識別子をもとに要求仕様リストを生成し(STEP13)、前記ドキュメントデータベースから設計ドキュメントを入力して、設計仕様識別子をもとに設計仕様リストを生成し(STEP14)、前記要求ドキュメント、設計ドキュメントの項目ごとに付与された識別子の対応を照合し、要求仕様の過不足を検査し、(STEP15)、照合結果に過不足があった場合には、要求仕様の過不足警告メッセージを出力する(STEP16)」構成を開示している。
特開2011−253345号公報 特開平8−249168号公報
しかしながら、特許文献1,2の技術では、仕様間依存関係を検証するには、事前に仕様間の依存関係またはそれに準じる情報(特許文献1では所定のキーワード検索に基づく検索箇所情報から生成されるトレーサビリティ情報、特許文献2では要求仕様識別子)を仕様書の中または外に定義しておく必要がある。この場合、仕様の物量が多いと、すべてを定義するのには多くの工数がかかり、たとえ工数をかけて定義できたとしても、仕様の修正に追随して仕様間依存関係を抜け漏れなく更新するのは困難であるという問題がある。仮に、仕様間依存関係を抜け漏れなく更新できたとしても、検証結果の可視化処理の際に表示が大量かつ複雑に入り組むこととなり、実際に仕様間依存関係の把握が困難であるという問題がある。
また、上記した特許文献1,2の技術では、仕様間依存関係の不整合は項目の過不足として検出可能である。例えば特許文献1ではトレーサビリティ情報としてのトレーサビリティマトリクスに基づいて成果物間での不整合箇所の有無を判定している。また、特許文献2では要求ドキュメント、設計ドキュメントの項目ごとに付与された識別子の対応を照合し、要求仕様の過不足を検査している。このような項目の過不足で不整合を検出する手法では、依存関係間で矛盾があったとしても検出することができないという問題がある。仕様間依存関係の矛盾として、データロックの矛盾等がある。例えば、要求仕様で特定データに排他ロックをかけてアクセスする要求項目が定義されている場合、要求項目を詳細化して設計仕様で定義した対応する設計項目でも同様に同じデータに同じ排他ロックをかけてアクセスする定義とする必要がある。しかし、ファイルが分かれていて確認漏れが生じたりした場合、設計仕様項目では排他ロックではなく誤って共有ロックと定義されてしまうこともありうる。この場合、排他ロックと共有ロックというデータアクセスの依存関係が同時に発生し、要求仕様と設計仕様間で矛盾が生じていることになる。このような仕様間での矛盾は、仕様間依存関係の抜け漏れ確認だけでは検知できない。
以上の課題を踏まえ、本発明は、仕様間に依存関係が過不足なく存在することを確認でき、また依存関係間で発生する依存関係の矛盾をも検出することができるソフトウェア仕様間依存関係検証装置及びソフトウェア仕様間依存関係検証方法を提供することを目的としている。
上記の、および他の課題を解決するための本発明の一態様は、階層構造を有するソフトウェア仕様に含まれているデータ項目である仕様項目の整合性を検証するための検証装置であって、少なくとも一組の互いに対応するソフトウェア仕様を取得し、あらかじめ前記階層構造に従って前記ソフトウェア仕様中での相対位置が設定されている前記各仕様項目を抽出するように構成されている仕様構造解析部と、前記対応するソフトウェア仕様に含まれる前記仕様項目間で成立すべき対応関係である依存関係を記述してなるマッチングルールを格納しているマッチングルール格納部と、前記マッチングルールを用いて、前記各仕様項目間の依存関係の有無を判別するように構成されている仕様項目マッチング部と、前記仕様項目マッチング部で依存関係があると判定された前記仕様項目の組合せを指定する情報を依存関係情報として抽出するように構成されている依存関係情報生成部と、前記ソフトウェア仕様間で特定の前記仕様項目の組合せについて成立すべき整合条件をルール化して定義してなる検証ルールを格納している検証ルール格納部と、特定の前記仕様項目の組合せについて、前記抽出された依存関係情報に基づき、前記検証ルール格納部に格納されている前記検証ルールに規定されている前記整合条件を満たさない依存関係があるかを判定し、満たさない依存関係があると判定した場合、当該整合条件を満たさない依存関係を前記ソフトウェア仕様間の不整合を示す不整合情報として出力するように構成されている依存関係検証部と、前記依存関係検証部からの前記不整合情報を所定のユーザインタフェースによって出力するように構成されている検証結果出力部と、有し、前記マッチングルールには、当該マッチングルール毎に、当該マッチングルールが規定している依存関係の種類を示す情報である依存関係種類情報が含まれており、前記検証ルールには、複数の前記依存関係種類間で満たすべき論理条件が含まれており、前記依存関係情報生成部は、前記依存関係情報抽出時に、依存関係情報として仕様項目間の依存関係の有無とともに、当該依存関係の種類をも抽出し、前記依存関係検証部は、抽出した複数の前記依存関係種類間で満たすべき前記論理条件に基づいて、前記仕様項目間の依存関係種類の間の不整合を検出する、ソフトウェア仕様間整合性検証装置である。
本発明によれば、仕様間に依存関係が過不足なく存在することを確認でき、また依存関係間で発生する依存関係の矛盾をも検出することができるソフトウェア仕様間依存関係検証装置及びソフトウェア仕様間依存関係検証方法が提供される。
図1は、本発明の一実施形態によるソフトウェア仕様間依存関係検証装置のソフトウェア構成例を示す図である。 図2は、本発明の一実施形態によるソフトウェア仕様間依存関係検証装置のハードウェア構成例を示す図である。 図3は、検証対象となる機能に関する仕様データ例を示す図である。 図4は、図3の仕様データ構造を規定するスキーマ定義例を示す図である。 図5は、検証対象となる処理の流れに関する仕様データ例を示す図である。 図6は、図5の仕様データ構造を規定するスキーマ定義例を示す図である。 図7は、図4と図6のスキーマ定義間のマッチングルールを規定するマッチングルールデータベース104の構成例を示す図である。 図8は、依存関係情報データベース107の構成例を示す図である。 図9Aは、依存関係間で成立する検証ルールを規定する検証ルールデータベース108の構成例を示す図である。 図9Bは、複数の仕様項目間で成立する依存関係について例示する模式図である。 図10は、仕様構造解析処理フロー1000の一例を示す図である。 図11は、仕様項目マッチング処理フロー1100の一例を示す図である。 図12は、依存関係情報生成処理フロー1200の一例を示す図である。 図13は、依存関係検証処理フロー1300の一例を示す図である。 図14は、検証結果可視化処理フロー1400の一例を示す図である。 図15は、検証結果可視化画面の一例を示す図である。 図16は、検証結果可視化画面の他の例を示す図である。
以下、本発明について、その一実施形態に即して添付図面を参照しながら説明する。まず、本発明の一実施形態によるソフトウェア仕様間依存関係検証装置100の構成例について説明する。図1は、本実施形態のソフトウェア仕様間依存関係検証装置(以下「検証装置」と略称する。)100のソフトウェア構成例を示す図である。この検証装置100は、ソフトウェア仕様間の不整合を早期検出し開発の手戻りの低減を実現するための装置である。検証装置100は、検証対象の仕様データ、検証処理に使用する各種データ等を格納するデータベース(以下「DB」)と、DBに格納されている各種データを用いて本実施形態のソフトウェア仕様間依存関係検証処理を実行するための各処理部を含んでいる。
図1に示すように、DBとしては、検証対象となるソフトウェア仕様を格納する仕様DB101、検証対象となるソフトウェア仕様について適用される記述規則を規定するスキーマ定義を格納するスキーマ定義DB102、仕様データに含まれる仕様項目間の依存関係成立条件を記述したルールであるマッチングルールを格納するマッチングルールDB104、仕様項目間の依存関係の有無を仕様項目情報と対応付けて格納する依存関係情報DB107、及び用語の一致等の仕様間で成立すべき整合条件をルール化して定義した検証ルールを格納する検証ルールDB108が備えられる。これらのDBは、後述する検証装置100のメモリあるいは補助記憶装置に格納され、適時に読み出されて利用される。各DBの具体的な構成については後述する。
次に、処理部としては、同じく図1に示すように、仕様構造解析部103、仕様項目マッチング部105、依存関係情報生成部106、依存関係検証部109、及び検証結果可視化部110(検証結果出力部)が含まれる。図1では、以下に説明する本実施形態の検証装置100で実行されるデータ処理の流れに沿って各処理部等を矢印で関連付けている。仕様構造解析部103は、仕様DB101に格納されている解析対象の仕様を参照し、スキーマ定義DB102からその検証対象仕様に対応するスキーマ定義を取得して、仕様構造を解析して構造化された仕様データを抽出する処理を実行する。
仕様項目マッチング部105は、抽出された仕様データに含まれる仕様項目間の依存関係成立条件を記述したルールであるマッチングルールをマッチングルールDB104より抽出し、仕様構造解析部103で抽出した仕様データから仕様項目間の依存関係の有無を抽出する処理を実行する。
依存関係情報生成部106は、仕様項目マッチング部105で抽出した仕様項目間の依存関係の有無をリストアップして、検証対象となる各仕様から抽出した仕様項目と対応させて依存関係情報DB107に格納する処理を実行する。
依存関係検証部109は、依存関係情報DB107から依存関係情報を抽出し、検証ルールDB108から定義された検証ルールを取得して、依存関係情報間で検証ルールに違反する依存関係があるかを検証し、違反があると判定した場合にはそれを仕様間の不整合情報として出力する処理を実行する。
検証結果可視化部110は、依存関係検証部109が出力した仕様間の不整合情報を可視化して出力する処理を実行する。なお、不整合情報について、視覚情報以外の例えば音声情報等により出力することも適宜採用することができる。これらの処理部はコンピュータプログラムとして構成され、後述する検証装置100のメモリ又は補助記憶装置に格納され、プロセッサによって適時に実行される。各処理部が実行するデータ処理フローについては、処理フロー例を参照して後述する。
なお、検証装置100には、各プログラムが稼働する基盤となるオペレーティングシステム(OS)120と、各プログラムへのデータ入出力処理を担当するデータ入出力部(データI/O部)130とが設けられている。OS120、データI/O部130は、後述する検証装置100のハードウェア構成、プログラムの種類等に応じて適宜に選定して採用することができる。
次に、本実施形態の検証装置100のハードウェア構成について説明する。図2は、本実施形態の検証装置100のハードウェア構成例を示す図である。図2に示すように、検証装置100は、プロセッサ201、表示装置202、入力装置203、メモリ204、及び補助記憶装置205を備え、これらの構成要素間を内部ネットワーク206で通信可能に接続して構成される。プロセッサ201は、補助記憶装置205に保持されるプログラム(図1の各処理部)およびデータ(図1の各DB及び仕様DB101に格納されている検証対象のソフトウェア仕様書)をメモリ204上に読込み、仕様の管理および不整合検証に関する処理を実行するCPU(Central Processing Unit)等の演算装置である。表示装置202は、CPU201による処理結果を表示するための出力デバイスであり、適宜の形式のモニタディスプレイ等が用いられる。表示装置202には音声出力装置を含めてもよい。入力装置203は、処理部の実行要求や表示したひな型に対する設計内容を入力するための入力デバイスであり、キーボード、マウス、タッチパネル等が適宜採用される。メモリ204は、RAM(Random Access Memory)等の主記憶装置であり、CPU201が実行するためのプログラムおよびデータを読み込んで保持する。補助記憶装置205は、検証装置100のデータ処理実行に必要なプログラム(図1の各処理部)およびデータ(図1の各DB)を保持するHDD(Hard Disk Drive)、SSD(Solid State Drive)等の記憶デバイスである。
次に、本実施形態の検証装置100による仕様間依存関係検証処理の対象となるソフトウェア仕様書(以下「仕様書」)について説明する。図3は、検証装置100による検証対象となる構造化された仕様書300の一例を示す図である。図3では、XML(eXtensible Markup Language)で表現した仕様書を具体例として示している。検証対象となる仕様書300のデータは、検証処理を行うユーザが検証装置100に入力して、図1に示す検証装置100の仕様DB101に格納されている。仕様書300は、当該仕様書によって規定されるソフトウェアが奏する機能の一覧を表現した文書である。仕様書内には、XMLタグという形で仕様項目の意味が表現される。仕様書300は、符号301,302で指示する破線で囲んで示すように、各機能(Function)に対して"id","name","type"の各属性を有する"Data"が割当てられることを、一覧形式で表現するプログラムである。仕様書では、符号301で示すように、まずルート項目(Root schema)で仕様書の構造を規定するスキーマ定義のファイル参照パスが、"Root/Functions"と指定される。このように仕様書300上で適用されるスキーマ定義ファイル(図4)を指定することで、仕様書の種類と構造を判別できるようにしておく。なお、仕様書300は、内部に保持される仕様項目を識別できるように構造化されていれば、その形式は特定のものに制約されない。例えば、表形式あるいは図形式の仕様書においても、仕様項目を表の行・列、あるいは図のシェイプなどに割り当てることで、本XML例と同様に本発明を適用することができる。
次に、仕様書300の構造を規定するスキーマ定義について説明する。図4は、図3に示した仕様書300の構造を規定するスキーマ定義400の一例を示す図である。スキーマ定義400は、ユーザにより検証装置100に入力され、図1に示す検証装置100のスキーマ定義DB102に格納されている。図4では、XML Schemaで表現したスキーマ定義400を具体例として説明する。XML Schemaは仕様書300の階層構造を規定するための言語であり、図4の例では、まず符号401で示すように、"schema name"が"Functions"であることで、図3の仕様書300と対応付けられている。そして、符号402で示すように、"Root"項目が"Function"項目を子要素(element)として持ち、符号403で示すように"Function"項目が"Data"項目を含み、各"Data"項目は"id"属性、"name"属性、及び"type"属性を持つことを表現している。仕様書300は、このスキーマ定義400で規定する構造通りに記述する必要がある。
次に、図5および図6は、図3および図4と同様に、XMLで表現した仕様書500およびその仕様書構造を規定するスキーマ定義600の例を示している。図5に例示する仕様書500は、ルート項目が"Flow"と規定されているように(符号501)、データ処理の流れを複数の機能を含む処理フローとして表現するための仕様書であり、対応ソフトウェア機能を一覧形式で表現する図3の仕様書300と依存関係を持つ仕様書として位置付けられている。仕様書300と仕様書500との間にどのような依存関係が存在するかについては後述する。図5の仕様書500は、符号501,502で指示する破線で囲んで示すように、"Flow"項目に含まれる各プロセス(Process(図3のFunctionに対応))に対して"id","name","type"の各属性を有する"Data"が割当てられることを、フロー形式で表現するプログラムである。これを、"Flow"という"schema name"(符号601)で対応付けられるスキーマ定義600と対応させて説明すると、仕様書500では、まず"Root"項目が"Flow"項目を子要素(element)として持ち(符号602)、"Flow"項目がさらにProcess項目を子要素として備え(符号603)、"Process"項目が"Data"項目、"id"属性、"name"属性、及び"type"属性を持つことを表現している。仕様書500では、ルート項目(Root schema)で仕様書の構造を規定するスキーマ定義のファイル参照パスが、"Root/Flow"と指定される。そして、"id"属性、"name"属性、及び"type"属性の各仕様項目を指定するデータパスが、"Root/Flow/Process"と規定される。
次に、本実施形態の検証装置100に設けられている各DBについて説明する。まず、マッチングルールDB104について説明する。図7は、図3および図5に示した仕様書300、500間の依存関係の抽出方法を記述したマッチングルール700を格納しているマッチングルールDB104の構成例を示す図である。マッチングルールDB104に格納されているマッチングルール700は、2つのスキーマ定義400,600を対象とした依存関係抽出方法を記述している。図7に例示するマッチングルール700では、図4に示したスキーマ定義400に関する記述701、702と、図6に示したスキーマ定義600に関する記述703、704をそれぞれ記述している。各スキーマ定義400,600に関する記述では、依存関係抽出の対象となる仕様項目を、各仕様内での相対位置で指定するための項目のパス701、703と、依存関係有無を判定するための情報としてのマッチング要素702、704を記述している。また、マッチング方法について、仕様項目の比較手段705および組合せ706を記述している。図7では、マッチング要素702,704として、仕様書300,500のスキーマ定義400,600から、"id","name","type"の3つが抽出されている。比較手段705には、例えば「完全一致」、「部分一致」、「特定変換による一致」等の各マッチング要素702,704が持つ値の間で成立する条件を記述する。組合せ706は、複数行に渡って記述したマッチングルール700の同時または排他成立条件を、例えば「and」あるいは「or」の形で記述する。抽出する依存関係種類707については、マッチング方法705,706で比較して依存関係があると判定された場合に、抽出できる依存関係の種類名を記述する。図7の例では、2つの項目702と704が全く同一のものであるという関係として"一致関係"を定義している。他にも例えば、機能とデータとの間の関係であれば、排他ロック/共有ロック関係や、CRUD(Create, Read, Update, Delete)関係などさまざまな依存関係の種類が考えられる。なお、ここで用いる依存関係の種類は後述の依存関係検証処理で用いられる。具体的には、図7のマッチングルール700の例では、図3に示した仕様書300のRoot項目以下のFunction項目の属性値と、図5で示した仕様書500のRoot項目以下のFlow項目以下にあるProcess項目の属性値とが、id属性、name属性、およびtype属性と、それぞれ完全一致する場合に、2項目間に「一致関係」という名の依存関係があると判定するルールを定義している。
次に、依存関係情報DB107について説明する。図8は、図7のマッチングルール700を用いて抽出した図3の仕様書300の各仕様項目801と、図5の仕様書500の各仕様項目802との間の依存関係を対応付けて格納している依存関係情報DB107の構成例を示す図である。仕様書300,400に含まれている仕様項目1つ毎に探索し、マッチングルールDB104に規定されるマッチングルール700にマッチするとして抽出されたすべての仕様項目間の依存関係が、依存関係種類803と対応付けられて依存関係情報DB107に格納される。図8の例では、仕様"Flow"について記録されている仕様項目である"Start-End"が、仕様"Functions"については記録されていない。このように一方の仕様に存在する仕様項目に対応する仕様項目が他方の仕様に存在しないと判定された場合には、仕様項目の不整合が疑われることを示す情報としての依存関係候補情報として後述の依存関係検証部で109で抽出し、検証関係可視化部110を通じてユーザに提示することができる。
次に、検証ルールDB108について説明する。図9Aは、依存関係の種類の間で同時成立すべき条件を列挙した検証ルール900を格納する検証ルールDB108の構成例を示す図である。検証ルール900は、仕様間の不整合を検出するために規定されているルールであり、図9AではR1,R2,…といった記号で識別されている。検証ルール900を満たさない依存関係があると判定された場合、依存関係間で矛盾があると判定しそれを不整合として検出する。まず、検証に必要な入力項目の数901とその入力項目に対する事前条件902を記述する。事前条件902は、検証可能な仕様書の絞り込みに用いる。つまりその事前条件を満たす仕様書のみを検証可能な仕様書とみなして、検証ルール903のチェックを実施する。検証を実施した場合、事前条件902を満たし、かつ検証ルール903を満たすものは整合と判定し、事前条件902を満たし、かつ検証ルール903を満たさないものを不整合と判定する。
具体的には、図9の検証ルールDB108では、1つめのルールR1として、4つの仕様項目を入力した時に、項目1と項目2、項目3と項目4の間にそれぞれ"一致関係"があり、項目1と項目3の間に"排他(ロック)関係"がある場合、項目1、項目3とそれぞれ"一致関係"にある項目2と項目4の間にも"排他(ロック)関係"があるべきであると規定している。これは、一方で排他関係と定義しているのに、一致関係にある別の項目の方で排他関係でない(例えば共有関係である)と定義するような、依存関係が矛盾する定義を検出するためのルールである。入力項目数に制限はなく、検証ルール記述に必要な数の入力項目数901を定義することになる。入力項目数を指定するとその数分だけ事前条件902および検証ルール903の部分で"項目+番号"という形で定義に活用できる。実際に検証する際には、指定数の仕様項目を準備して"項目+番号"の部分に入力して検証実施することになる。なお、図9Aの検証ルールDB108で、事前条件902と検証ルール903で利用している"関係(項目1,項目2)"という記述は、図8に示した抽出済み依存関係情報800を探索して該当行を検出し、そこで定義されている依存関係種類803の値を返す機能を備えている。各検証ルール900は、対応する仕様に含まれる各仕様項目間に成立すべき関係としてあらかじめ設定しておく。図9Bには、図9Aに例示する検証ルール900の意味を模式的に示している。図9Bは、同一の基本機能仕様をリスト形式と図表形式で対応して表現するようにした場合、対応する項目1と項目3との間に排他関係が設定されていたとき、それぞれの構成をブレイクダウンして得られる詳細機能仕様においても、対応する項目2と項目4との間には排他関係が設定されていなければならないというルール(図9AのルールR1に相当)を例示している。
次に、本実施形態の検証装置100における各処理部でのデータ処理について具体的に説明する。まず、仕様構造解析部103における仕様構造解析処理について説明する。図10は、仕様構造解析部103における仕様構造解析処理フロー例を示すフローチャートである。仕様構造解析処理は、解析対象となる仕様ファイルを構造化されたデータとしてメモリ上に読み込む処理を実行する。検証装置100の全体処理フローが、検証装置100の電源投入等を契機として起動しているとの前提で、まず、仕様構造解析部103は、S1001で処理を開始した後、仕様とその仕様の構造を規定するスキーマ定義とを、補助記憶装置205に格納されている仕様DB101、スキーマ定義DB102からそれぞれ取得する(S1002)。本実施形態で取得される仕様およびスキーマ定義は、例えば仕様書300,500、およびスキーマ定義400,600が該当する。次に、仕様構造解析部103は、取得した仕様内にスキーマ定義に違反する記述がないことを、スキーマバリデーションによって確認する(S1003)。スキーマバリデーションは例えば、仕様がXMLでスキーマ定義がXML Schemaである場合、一般的なXMLバリデーション技術により実施できるため、ここでは詳述を省略する。次いで、仕様構造解析部103は、S1003での確認の結果、スキーマ定義に違反する項目があるか判定し(S1004)、スキーマ定義に違反する項目があると判定した場合(S1004,Yes)、正しく仕様の読み込みができないため、全体処理フローを終了して例外を発行する(S1007)。スキーマ定義に違反する項目がないと判定した場合(S1004,No)、仕様をスキーマ構造通りにメモリ上に読み込み(S1005)、仕様構造解析フローの実行を終了する(S1006)。この仕様構造解析処理により、仕様間依存関係検証の対象となる仕様が構造化データとして検証装置100に読み込まれる。
次に、仕様項目マッチング処理について説明する。図11は、仕様項目マッチング部105における仕様項目マッチング処理の処理フロー例を示すフローチャートである。仕様項目マッチング処理は、仕様構造解析処理で抽出済みの仕様に含まれる仕様項目間で依存関係があるかどうかを判定し、依存関係がある場合にそれを依存関係情報として抽出する処理を実行する。まず、仕様項目マッチング部105は、S1101で処理開始後、仕様構造解析部103より解析済み仕様データを取得し、仕様項目間の依存関係成立条件を記述したマッチングルール700をマッチングルールDB104より取得し読み込む(S1102)。次いで、仕様項目マッチング部105は、マッチングルールDB104に格納されている全マッチングルール700に対してそのルールを満たす依存関係抽出をループ処理する(S1103〜S1112)。各ループ処理において、仕様項目マッチング部105は、1つのマッチングルール700内に記載される1つめの仕様(本実施形態では図3の仕様書300)について、項目のパスで指定した仕様項目集合をすべて仕様データから抽出する(S1104)。また、仕様項目マッチング部105は、2つ目の仕様(本実施形態では図5の仕様書500)についても同様に項目のパスで指定した仕様項目集合をすべて仕様データから抽出する(S1105)。次いで、仕様項目マッチング部105は、1つめの仕様で抽出したすべての仕様項目に対してループ処理を実施し(S1106〜S1111)、同様に2つめの仕様で抽出したすべての仕様項目に対してもループ処理を実施する(S1107〜S1110)。仕様項目マッチング部105は、各ループ処理において、2つの仕様項目の各マッチング要素702,704(例えば仕様項目内の属性)がマッチング方法705,706に記載する条件を満たすかどうか判定する(S1108)。マッチング条件を満たし、依存関係があると判定した場合(S1108,Yes)、仕様項目マッチング部105は、2項目間の依存関係情報として、2項目のパス情報と依存関係の種類を依存関係情報DB107に設定する(S1109)。マッチング条件を満たさないと判定した場合(S1108,No)、仕様項目マッチング部105は、依存関係なしのため次のループ処理を実施する(S1106,S1107)。そこで全マッチングルール700に関して処理が終わってすべての依存関係情報を取得した時点で(S1112)、仕様項目マッチング処理フローを終了する(S1113)。
次に、依存関係情報生成処理について説明する。図12は、依存関係情報生成部106における依存関係情報生成処理1200の処理フロー例を示すフローチャートである。依存関係情報生成処理は、仕様項目マッチング処理1100によって抽出した依存関係情報を整形し、依存関係情報DB107に格納する処理である。依存関係情報生成部106は、まずS1201で処理開始後、抽出済みの依存関係情報を取得し(S1202)、依存関係が1つもない仕様項目については依存関係なしと設定する(S1203)。そして、依存関係情報生成部106は、依存関係情報を図8に例示する依存関係情報DB107の記録形式に整形して依存関係情報DB107に格納し(S1204)、依存関係情報生成処理フローを終了する(S1205)。
次に、依存関係検証処理について説明する。図13は、依存関係検証部109における依存関係検証処理の処理フロー例1300を示すフローチャートである。依存関係検証処理では、依存関係情報と仕様間で成立すべき整合条件をルール化してあらかじめ定義されている検証ルール900を用いて依存関係情報間で検証ルール900に違反する依存関係がないか検証し、違反があると判定した場合には、それを仕様間の不整合として抽出し、出力する。依存関係検証部109は、まずS1301で処理開始後、依存関係情報DB107から依存関係情報を取得し、検証ルールDB108から検証ルール900を取得する(S1302)。次いで、依存関係検証部109は、取得した検証ルール900毎にループ処理を実施する(S1303〜S1309)。この検証ルール900毎のループ処理内では、1つの検証ルール900に対して、必要入力項目数分の仕様項目の組合せをすべて作成し、全組合せ分ループ処理を実施する(S1304〜S1308)。仕様項目組合せのループ処理内で、依存関係検証部109は、入力項目が検証ルール900の事前条件を満たすかどうか(図9AのルールR1の例では、所定の一致関係、排他関係が成立しているか否か)判定する(S1305)。入力項目が事前条件902を満たさないと判定した場合(S1305,No)、検証ルール900を適用できないため次の検証ルール900について同様の判定処理を実施する(S1304)。入力項目が検証ルール900の事前条件902を満たすと判定した場合(S1305,Yes)、依存関係検証部109は、入力項目に対して検証ルール903が成立するかどうか検証する(S1306)。検証の結果、検証ルール903が成立すると判定した場合には不整合なし、検証の結果、検証ルール903が不成立と判定した場合には不整合ありとして、検証結果を依存関係情報と合わせて生成する(S1307)。仕様項目組合せのループ処理が終わったと判定した場合(S1308)、依存関係検証部109は、次の検証ルール900に対して再び仕様項目組合せのループ処理を実施する(S1304)。依存関係検証部109は、検証ルールDB108に格納されているすべての検証ルール900に対するループ処理を終了した時点で(S1309)、依存関係検証処理フロー1300の実行を終了する(S1310)。以上の依存関係検証処理により、対応する仕様間で所定の依存関係が成立しているかを検証することができる。なお、異なる検証ルール900において同一の事前条件902が設定されている場合、当該事前条件902について繰り返し判定処理を実行する必要はない。その観点から、特定の事前条件902に対する判定結果をメモリ204等に保持しておき、同一の事前条件902について既存の判定結果があればそれを利用するように構成することができる。
次に、検証結果可視化処理について説明する。図14は、検証結果可視化部110における検証結果可視化処理の処理フロー例1400を示すフローチャートである。検証結果可視化処理では、抽出した依存関係を表示した上に、検証ルール900を満たさない不整合部分を強調表示して、仕様間のどの部分に不整合が発生しているのかをユーザーにわかりやすく表示する。検証結果可視化部110は、まずS1401で処理開始後、依存関係情報DB107に格納されているすべての依存関係情報およびすべての依存関係検証結果を取得する(S1402)。検証結果可視化部110は、取得した依存関係情報800を用いて、まず全ての仕様項目とその間の依存関係情報を表示し(S1403)、その表示の該当する依存関係部分の上に、検証結果を重ねて表示し(S1404)、検証結果可視化処理フローの実行を終了する(S1405)。この検証結果可視化処理により、仕様間に生じている不整合があれば、直ちに視覚的に把握することが可能である。
図14に例示した検証結果可視化処理結果の一例を、図15に示している。図15は、本実施形態の検証装置100において採用したユーザインタフェースによって検証結果可視化を行った例を示す画面1500のサンプルである。検証結果可視化画面1500では、依存関係情報DB107に格納された全ての依存関係を表示装置202上に表示した上で、検証結果を該当部分に重ねて表示するようにしている。図15の例で言えば、仕様項目1(1501)や仕様項目3(1502)のように画面上の任意の位置に仕様項目を配置し、依存関係情報DB107を参照して依存関係のある仕様項目間を線で接続する(1503)。これにより、図15に例示するネットワーク形式の依存関係図が生成される。さらにこの依存関係図上に、検証ルール900を適用して得られた検証結果を参照して、不整合と判定されている部分を強調表示し(1504)、ユーザーに全体のうちどの部分に不整合があるか一目でわかるようにしている。
なお、全ての依存関係情報を画面上に一度に表示すると表示量が多くなりすぎて煩雑となる場合には、図14に例示した処理フローに代えて、最初はユーザーが選択した最小限の依存関係のみを表示しておき、その依存関係に直接的または間接的に関係する依存関係、つまり同じ仕様項目を共有している依存関係のみに絞って芋づる式に抽出して表示することもできる。これにより依存関係検証の対象としたい部分と関係のない依存関係の表示を省略し、画面表示の煩雑さを避けることができる。
図16は、上記した依存関係の一部を芋づる式に抽出して表示する、検証結果可視化の例を示す画面サンプルである。検証結果可視化画面1600は、図15による全依存関係の表示では、表示項目数や依存関係線の数が多く複雑に入り組んで確認するのが難しい場合に、必要最小限の依存関係情報のみを可視化するのに利用することができる。図16に例示する検証結果可視化画面1600は、項目選択ウィンドウ1601と芋づる依存関係表示ウィンドウ1602とを備えて構成される。項目選択ウィンドウ1601には、依存関係情報DB107に含まれている全ての仕様項目が一覧形式で表示され、検証装置100のユーザーが画面上でオブジェクトをクリックする等によりいずれかの仕様項目を選択可能に構成されている(1603)。ユーザーがいずれかの仕様項目を選択すると、その選択した仕様項目を始点として(1604)、始点とされた仕様項目に依存関係によって関連付けられている仕様項目が芋づる式に抽出されるように構成されている。このように抽出された依存関係は、芋づる依存関係表示ウィンドウ1602内にツリー構造で表示される。これにより、ユーザーが検証結果を確認したいと考える範囲の依存関係のみを取り出して表示し、かつツリー構造で依存関係線が入り組むことがないため、ユーザーはより短時間で所望の仕様項目に関する依存関係をチェックすることができる。なお、芋づる式に抽出された依存関係の上でどこに不整合が存在するかを系統的に示すため、例えば始点である仕様項目から不整合の箇所の仕様項目に至る経路に存在する仕様項目を強調表示するといった構成により、ユーザーにとって検証結果をよりわかりやすく提示することもできる。
以上説明したように、本実施形態の仕様間依存関係検証装置100によれば、対応する仕様書300、500に含まれる各仕様項目間の依存関係が過不足なく存在しているか容易に確認することができる。また、対応する仕様項目間に存在する依存関係の間で発生する不整合をも容易に発見することができる。
なお、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば,上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、実施形態の構成の一部を他の構成に置き換えることが可能であり、また、ある実施形態の構成に他の構成を加えることも可能である。
100…仕様間依存関係検証装置 101…仕様DB
102…スキーマ定義DB 103…仕様構造解析部
104…マッチングルールDB 105 …仕様項目マッチング部
106…依存関係情報生成部 107 …依存関係情報DB
108 …検証ルールDB 109…依存関係検証部
110 …検証結果可視化部 201…プロセッサ 202…表示装置
203…入力装置 204…メモリ 205…補助記憶装置

Claims (9)

  1. 階層構造を有するソフトウェア仕様に含まれているデータ項目である仕様項目の整合性を検証するための検証装置であって、
    少なくとも一組の互いに対応するソフトウェア仕様を取得し、あらかじめ前記階層構造に従って前記ソフトウェア仕様中での相対位置が設定されている前記各仕様項目を抽出するように構成されている仕様構造解析部と、
    前記対応するソフトウェア仕様に含まれる前記仕様項目間で成立すべき対応関係である依存関係を記述してなるマッチングルールを格納しているマッチングルール格納部と、
    前記マッチングルールを用いて、前記各仕様項目間の依存関係の有無を判別するように構成されている仕様項目マッチング部と、
    前記仕様項目マッチング部で依存関係があると判定された前記仕様項目の組合せを指定する情報を依存関係情報として抽出するように構成されている依存関係情報生成部と、
    前記ソフトウェア仕様間で特定の前記仕様項目の組合せについて成立すべき整合条件をルール化して定義してなる検証ルールを格納している検証ルール格納部と、
    特定の前記仕様項目の組合せについて、前記抽出された依存関係情報に基づき、前記検証ルール格納部に格納されている前記検証ルールに規定されている前記整合条件を満たさない依存関係があるかを判定し、満たさない依存関係があると判定した場合、当該整合条件を満たさない依存関係を前記ソフトウェア仕様間の不整合を示す不整合情報として出力するように構成されている依存関係検証部と、
    前記依存関係検証部からの前記不整合情報を所定のユーザインタフェースによって出力するように構成されている検証結果出力部と、
    を有し、
    前記マッチングルールには、当該マッチングルール毎に、当該マッチングルールが規定している依存関係の種類を示す情報である依存関係種類情報が含まれており、前記検証ルールには、複数の前記依存関係種類間で満たすべき論理条件が含まれており、前記依存関係情報生成部は、前記依存関係情報抽出時に、依存関係情報として仕様項目間の依存関係の有無とともに、当該依存関係の種類をも抽出し、前記依存関係検証部は、抽出した複数の前記依存関係種類間で満たすべき前記論理条件に基づいて、前記仕様項目間の依存関係種類の間の不整合を検出する、ソフトウェア仕様間整合性検証装置。
  2. 前記依存関係情報生成部は、前記マッチングルールに従って前記ソフトウェア仕様間の依存関係情報を抽出する際、一方の前記ソフトウェア仕様に当該マッチングルールを満たす仕様項目があり、他方の前記ソフトウェア仕様に当該マッチングルールを満たす仕様項目がないと判定した場合に、当該マッチングルールを満たす仕様項目を依存関係候補情報として抽出し、前記依存関係検証部は、各前記仕様項目の組合せにおける一致関係及び排他関係を記述した前記検証ルールを用いて、不整合の候補を検出する、請求項1に記載のソフトウェア仕様間整合性検証装置。
  3. 前記検証結果出力部は、抽出した前記依存関係情報を、依存関係を有する仕様項目間の関連が可視化される形態で表示し、表示した当該仕様項目間の関連に検出した不整合情報を重ねて表示する、請求項1に記載のソフトウェア仕様間整合性検証装置。
  4. 前記検証結果出力部は、抽出した依存関係情報を表示する際、検証対象である前記仕様に含まれる前記仕様項目を選択可能に表示する画面を表示し、選択された当該仕様項目を始点として、抽出済みの複数の前記依存関係情報を解析し、始点となっている前記仕様項目に直接的にまたは間接的に依存関係を有する仕様項目をすべて抽出して表示する、請求項に記載のソフトウェア仕様間整合性検証装置。
  5. 前記検証結果出力部は、選択された前記仕様項目に関連して表示された依存関係上に検出された前記不整合情報を重ねて表示する際、前記始点となっている仕様項目から不整合と判定された依存関係の部分までを接続している仕様項目を識別できるように表示する、請求項に記載のソフトウェア仕様間整合性検証装置。
  6. 前記仕様項目マッチング部は、前記仕様項目に付与されている属性を示す属性値に対して、当該属性値の一致をもって依存関係成立条件とした前記マッチングルールを用いて前記依存関係情報を抽出する、請求項1に記載のソフトウェア仕様間整合性検証装置。
  7. 前記検証ルールには、当該検証ルールに基づいて整合性を判定すべき仕様項目の数を示す入力項目数が設定されており、前記依存関係検証部は、前記依存関係情報を用いて前記仕様項目間の不整合を検出する際、前記検証ルールに設定されている前記入力項目数だけの仕様項目を仕様から抽出し、当該すべての仕様項目の組合せに対して前記検証ルールを用いて不整合を検証する、請求項に記載のソフトウェア仕様間整合性検証装置。
  8. 前記検証ルール毎に、前記入力項目数だけ抽出した前記仕様項目のうちで一部の仕様項目間で成り立つ依存関係の条件を規定している事前条件が設定されており、前記依存関係検証部は、前記検証ルールに設定されている前記入力項目数だけの仕様項目を仕様から抽出する際、前記事前条件に関する検証がすでに適用済みの他の検証ルールで実施されていると判定した場合、その実施の際に前記事前条件を満たすと判定された仕様項目組合せを再利用し、前記仕様項目が前記事前条件を満たすかどうかを判定することなく検証を実行する、請求項に記載のソフトウェア仕様間整合性検証装置。
  9. 階層構造を有するソフトウェア仕様に含まれているデータ項目である仕様項目の整合性を検証するための検証方法であって、データを格納するメモリと当該データを用いて演算処理を実行するプロセッサとを有するコンピュータにより、少なくとも一組の互いに対応するソフトウェア仕様を取得し、あらかじめ前記階層構造に従って前記ソフトウェア仕様中での相対位置が設定されている前記各仕様項目を抽出し、
    前記対応するソフトウェア仕様に含まれる前記仕様項目間で成立すべき対応関係である依存関係を記述してなり、それぞれに、それぞれが規定している依存関係の種類を示す情報である依存関係種類情報が含まれているマッチングルールを格納し、
    前記マッチングルールを用いて、前記各仕様項目間の依存関係の有無を判別し、
    前記各仕様項目間の依存関係の有無の判別により依存関係があると判定された前記仕様項目の組合せを指定する情報を依存関係情報として抽出し、
    前記ソフトウェア仕様間で特定の前記仕様項目の組合せについて成立すべき整合条件をルール化して定義してなり、複数の前記依存関係種類間で満たすべき論理条件が含まれている検証ルールを格納し、
    特定の前記仕様項目の組合せについて、前記抽出された依存関係情報に基づき、前記格納した前記検証ルールに規定されている前記整合条件を満たさない依存関係があるかを判定し、満たさない依存関係があると判定した場合、当該整合条件を満たさない依存関係を前記ソフトウェア仕様間の不整合を示す不整合情報として出力し、
    前記ソフトウェア仕様間の不整合を示す不整合情報を所定のユーザインタフェースによって出力し、
    前記コンピュータは、
    前記依存関係情報の抽出時に、依存関係情報として仕様項目間の依存関係の有無とともに、当該依存関係の種類をも抽出し、
    前記抽出した複数の前記依存関係種類間で満たすべき前記論理条件に基づいて、前記仕様項目間の依存関係種類の間の不整合を検出する、ソフトウェア仕様間整合性検証方法。
JP2016509656A 2014-03-25 2014-03-25 ソフトウェア仕様間依存関係検証装置、及びソフトウェア仕様間依存関係検証方法 Expired - Fee Related JP6185148B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/058171 WO2015145556A1 (ja) 2014-03-25 2014-03-25 ソフトウェア仕様間依存関係検証装置、及びソフトウェア仕様間依存関係検証方法

Publications (2)

Publication Number Publication Date
JPWO2015145556A1 JPWO2015145556A1 (ja) 2017-04-13
JP6185148B2 true JP6185148B2 (ja) 2017-08-23

Family

ID=54194157

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016509656A Expired - Fee Related JP6185148B2 (ja) 2014-03-25 2014-03-25 ソフトウェア仕様間依存関係検証装置、及びソフトウェア仕様間依存関係検証方法

Country Status (4)

Country Link
US (1) US20170131973A1 (ja)
JP (1) JP6185148B2 (ja)
CN (1) CN106104469A (ja)
WO (1) WO2015145556A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10606571B2 (en) * 2016-04-26 2020-03-31 Mitsubishi Electric Corporation Dependence relationship extraction apparatus and computer readable medium
JP7018356B2 (ja) * 2018-05-24 2022-02-10 株式会社日立製作所 ビジュアルプログラミングツールを用いてプログラムを作成することを支援する装置および方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3724847B2 (ja) * 1995-06-05 2005-12-07 株式会社日立製作所 構造化文書差分抽出方法および装置
JPH11102291A (ja) * 1997-09-29 1999-04-13 Hitachi Ltd 仕様整合性検証システム
US6282698B1 (en) * 1998-02-09 2001-08-28 Lucent Technologies Inc. Detecting similarities in Java sources from bytecodes
US7295965B2 (en) * 2001-06-29 2007-11-13 Honeywell International Inc. Method and apparatus for determining a measure of similarity between natural language sentences
EP1469394B1 (en) * 2001-11-19 2014-01-15 Mitsubishi Denki Kabushiki Kaisha Gateway and gateway setting tool
US7818657B1 (en) * 2002-04-01 2010-10-19 Fannie Mae Electronic document for mortgage transactions
US7503035B2 (en) * 2003-11-25 2009-03-10 Software Analysis And Forensic Engineering Corp. Software tool for detecting plagiarism in computer source code
GB0410047D0 (en) * 2004-05-05 2004-06-09 Silverdata Ltd An analytical software design system
JP2006091971A (ja) * 2004-09-21 2006-04-06 Hewlett-Packard Development Co Lp ネットワークデータ表示方法・装置・プログラム
ES2687433T3 (es) * 2005-02-03 2018-10-25 Mitsubishi Denki Kabushiki Kaisha Dispositivo y método de soporte de la generación de código de programa, dispositivo y método de ejecución del programa, dispositivo y método de compresión del código de programa, programa para el mismo
US8448158B2 (en) * 2005-02-03 2013-05-21 Mitsubishi Electric Corporation Program code generation support device and method, program execution device and method, and program code compression processing device and method and program thereof
US9189482B2 (en) * 2012-10-10 2015-11-17 Abbyy Infopoisk Llc Similar document search
US9892111B2 (en) * 2006-10-10 2018-02-13 Abbyy Production Llc Method and device to estimate similarity between documents having multiple segments
US9235573B2 (en) * 2006-10-10 2016-01-12 Abbyy Infopoisk Llc Universal difference measure
US20080162455A1 (en) * 2006-12-27 2008-07-03 Rakshit Daga Determination of document similarity
US8286132B2 (en) * 2008-09-25 2012-10-09 International Business Machines Corporation Comparing and merging structured documents syntactically and semantically
US8321834B2 (en) * 2008-09-25 2012-11-27 International Business Machines Corporation Framework for automatically merging customizations to structured code that has been refactored
US9514103B2 (en) * 2010-02-05 2016-12-06 Palo Alto Research Center Incorporated Effective system and method for visual document comparison using localized two-dimensional visual fingerprints
US9110769B2 (en) * 2010-04-01 2015-08-18 Microsoft Technology Licensing, Llc Code-clone detection and analysis
US20120159434A1 (en) * 2010-12-20 2012-06-21 Microsoft Corporation Code clone notification and architectural change visualization
US8943487B2 (en) * 2011-01-20 2015-01-27 Fujitsu Limited Optimizing libraries for validating C++ programs using symbolic execution
JP5460629B2 (ja) * 2011-03-10 2014-04-02 株式会社日立製作所 表形式ソフトウェア仕様作成支援方法、及び装置
JP5800657B2 (ja) * 2011-10-03 2015-10-28 三菱電機株式会社 ソフトウェア再利用支援装置、ソフトウェア再利用支援方法、及び、プログラム
US8819856B1 (en) * 2012-08-06 2014-08-26 Google Inc. Detecting and preventing noncompliant use of source code

Also Published As

Publication number Publication date
JPWO2015145556A1 (ja) 2017-04-13
US20170131973A1 (en) 2017-05-11
WO2015145556A1 (ja) 2015-10-01
CN106104469A (zh) 2016-11-09

Similar Documents

Publication Publication Date Title
US10223338B2 (en) Visual designer for editing large schemaless XML file
US9355142B2 (en) Content management
US8949751B2 (en) Methods and systems for wiring systems analysis and verification
BR112017026293B1 (pt) Sistema para um sistema de construção de sites implementado em um servidor e método para um sistema de construção de sites implementado em um servidor
US20140013297A1 (en) Query-Based Software System Design Representation
US10606450B2 (en) Method and system for visual requirements and component reuse driven rapid application composition
EP3785126B1 (en) Unit testing for changes to version control
US9678628B2 (en) Method for generating control-code by a control-code-diagram
AU2010201974A1 (en) System and Method for Managing Information
US20080062195A1 (en) Method for coordinated drawing review of realted cad drawings
US9286361B2 (en) Extract-transform-load processor controller
JP3828379B2 (ja) テスト仕様生成支援装置、方法、プログラム及び記録媒体
JP6185148B2 (ja) ソフトウェア仕様間依存関係検証装置、及びソフトウェア仕様間依存関係検証方法
JP6120607B2 (ja) 要件検出装置及び要件検出プログラム
JP7145118B2 (ja) 設計支援システム、設計検証方法及び設計検証プログラム
KR102021018B1 (ko) Bim 품질 체크 규칙 정의 장치 및 그의 bim 품질 체크 규칙 정의 방법
JP4360942B2 (ja) ソフトウェア開発支援装置
JP2018088087A (ja) データ分析装置、データ分析方法、及びデータ分析プログラム
Liu et al. Visual exploration of software evolution via topic modeling
JP2006277282A (ja) モデル評価解析システムおよびモデル評価解析プログラム
JP7340952B2 (ja) テンプレート検索システムおよびテンプレート検索方法
US20120192130A1 (en) Circuit design approximation
JP6281239B2 (ja) プログラム開発サポート装置および方法
US11734506B2 (en) Information processing apparatus and non-transitory computer readable medium storing program
KR102417677B1 (ko) 회로 검증을 위한 유사 회로 검색 장치 및 방법

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170307

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170419

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: 20170704

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170726

R150 Certificate of patent or registration of utility model

Ref document number: 6185148

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees