JP5970292B2 - ソフトウェア仕様開発支援方法及びソフトウェア仕様開発支援装置 - Google Patents

ソフトウェア仕様開発支援方法及びソフトウェア仕様開発支援装置 Download PDF

Info

Publication number
JP5970292B2
JP5970292B2 JP2012181988A JP2012181988A JP5970292B2 JP 5970292 B2 JP5970292 B2 JP 5970292B2 JP 2012181988 A JP2012181988 A JP 2012181988A JP 2012181988 A JP2012181988 A JP 2012181988A JP 5970292 B2 JP5970292 B2 JP 5970292B2
Authority
JP
Japan
Prior art keywords
proposition
format
specifications
unit
rule
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.)
Active
Application number
JP2012181988A
Other languages
English (en)
Other versions
JP2014041394A (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
Priority to JP2012181988A priority Critical patent/JP5970292B2/ja
Priority to CN201310304712.8A priority patent/CN103631710B/zh
Publication of JP2014041394A publication Critical patent/JP2014041394A/ja
Application granted granted Critical
Publication of JP5970292B2 publication Critical patent/JP5970292B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、ソフトウェア開発を支援する技術に関する。
ソフトウェアの仕様を、ソフトウェア実行前の条件とその実行後の結果の対応関係で定義する場合がある。この条件と結果の対応関係は決定表(デシジョンテーブル)と呼ばれる表形式で表現できることが知られており、ソフトウェア開発工程において頻繁に使用される。決定表にはいくつかの異なる記述形式があるが、記述形式が異なる決定表でも条件と結果の対応関係を表すというセマンティクスは一様である。さらに、決定表は、条件マトリクスやチェックリストなどの別の名称で呼ばれる場合もある。
この決定表を使って仕様を表すことにより、条件と結果の対応関係を誤解なく明確に記述できるとともに、条件のパタン漏れを発見し易くなるという効果がある。一方で、決定表による仕様記述には次のような欠点もある。すなわち、条件の要素が増えるにつれてパタンが増え決定表が肥大化するため、可読性が低下するという問題がある。
この問題を解決する従来技術として、特許文献1では、決定表を分割して表記することで可読性の低下を防ぐ方法が開示されている。
特開2005−44303号公報 特願2011−052340号公報
特許文献1で開示されている従来技術を用いると、決定表を可読性の高い形式で表示できる。しかし決定表の記述量は変わらないため、決定表の入力量が増え作成工数が増加するという問題や、決定表を保存するために必要な記憶容量が増大するという問題がある。この問題を解決する従来技術として、特許文献2では、命題形式の記述から決定表を作成することで、決定表の作成工数を削減する方法を開示している。また、決定表から命題形式の記述を抽出して保存・表示することで、決定表を保存・表示するために必要な記憶容量を削減する方法を開示している。
しかし仕様に矛盾や抜け漏れがあった場合、命題形式の記述による仕様表示には、決定表形式の仕様表示に比べて矛盾や抜け漏れを視覚的に確認し難いという短所がある。つまり、決定表形式の表示によって矛盾や抜け漏れを視覚的に確認したい場合は、特許文献2に示す方法は有効ではない。したがって、仕様の矛盾や抜け漏れの視認性向上のために決定表形式で仕様表示する場合、特許文献2に示す従来技術を適用できないため、決定表の肥大化につれて決定表の表示に必要な記憶容量が増大するという問題を解決できない。また、特許文献2に示す従来技術では、命題形式の記述による仕様表示の前に、内部的に決定表を作成する。よって従来技術では、決定表の肥大化につれて、決定表の作成に必要な記憶容量や処理時間が増大するという問題もある。
本発明は、上記事情に鑑みてなされたものであり、仕様の矛盾や抜け漏れの視認性向上のための決定表形式による表示を維持しつつ、決定表の作成及び表示に必要な記憶容量を削減する技術を提供することを目的とする。
本発明の代表的な一例は、以下の通りである。すなわち、本発明に係るソフトウェア仕様開発支援装置は、複数の条件を有する条件部および複数の結果を有する結果部からなる複数の命題形式の仕様を入力部を介して受け付ける命題仕様受付部と、複数の命題形式の仕様を保持する第1の保持部と、前記第1の保持部の命題仕様に基づき前記複数の命題形式の仕様の各々が互いに矛盾あるいは重複しないかどうかを判定し、その結果を第2の保持部に保持する仕様検査部と、各行が前記複数の条件の1つまたは前記複数の結果の1つを示し、各列が前記複数の命題形式の仕様の各々を示す表形式で表した決定表を、前記検査の結果に基づいて作成する決定表作成部とを備える。前記仕様検査部は、前記第1の保持部から取得した任意の検査対象の命題形式の仕様とその任意の比較対象の命題形式の仕様に対して、前記2つの命題形式の仕様が矛盾するかあるいは重複するかを判定し、矛盾あるいは重複するならば、前記検査対象の命題形式の仕様を、比較対象の命題形式の仕様と矛盾あるいは重複する命題形式の仕様と、比較対象の命題形式の仕様と矛盾あるいは重複しない命題形式の仕様とに分解して、前記第2の保持部に登録し、前記決定表作成部は、前記第2の保持部から前記命題形式の仕様の何れか、あるいは両方を取得し、前記命題形式の仕様の各々について、当該命題形式の仕様の条件部と結果部を取り出して前記決定表の行を作成し、表示範囲を、当該命題形式の仕様に対応する列の当該行の欄に示すことを特徴とする。
本発明によれば、仕様の矛盾、重複を決定表上で視覚的に確認でき、その決定表の作成及び表示に必要な記憶容量を削減することができる。
ソフトウェア仕様開発支援装置201の構成例を示すブロック図である。 ソフトウェア仕様開発支援装置201のハードウェア構成例を示すブロック図である。 命題規則保持部102が保持する命題規則の例である。 命題規則を構成する条件項目と結果項目の例である。 制約保持部104が保持する制約の例である。 矛盾検査部105が検査結果保持部109に登録する矛盾検査結果の例である。 矛盾検査の手順例を示すフローチャートである。 重複検査部106が検査結果保持部109に登録する重複検査結果の例である。 重複検査の手順例を示すフローチャートである。 重複検査の結果に基づいて作成するベン図の例である。 未定義検査部107が検査結果保持部109に登録する未定義検査結果の例である。 未定義検査の手順例を示すフローチャートである。 制約検査部108が検査結果保持部109に登録する検査結果の例である。 制約検査の手順例を示すフローチャートである。 ポリシ保持部111が保持する表示ポリシの例である。 表示対象規則保持部115が保持する表示対象規則の例である。 表示対象規則決定の手順例を示すフローチャートである。 決定表部分表示・修正部116が、表示対象規則保持部115が保持する表示対象規則に基づいて表示する部分決定表の例である。 決定表部分表示・修正部116が修正入力を受け付けることにより、修正された部分決定表の例である。 修正済み規則保持部118が保持する修正済み規則の例である。
以下、本発明の実施の一形態を、図面を参照しながら詳細に説明する。
本実施形態は、ソフトウェア使用の開発を支援する装置に適用される。
本実施形態では、命題形式の記述による仕様(命題規則と呼ぶ)の入力を受け付けて、命題規則間の矛盾、抜け漏れ、重複、及び差分を検査する。また命題規則に対する制約を受け付けて、命題規則の制約違反を検査する。そして検査結果に基づいて、検査結果に関係する仕様を表す命題形式の記述(表示対象規則と呼ぶ)を生成する。さらに、生成した表示対象規則に基づいて決定表を作成し、表示する。
よって本実施形態によれば、仕様の矛盾、抜け漏れ、重複、差分、及び制約違反の検査結果を決定表上で確認でき、その決定表の作成及び表示に必要な記憶容量を削減できる。
また本実施形態では、表示対象規則から作成した決定表上において、仕様の修正を受け付ける。さらに、修正済みの決定表から修正を反映した表示対象規則(修正済み規則と呼ぶ)を生成し、もとの表示対象規則と置き換える。
よって本実施形態によれば、命題記述ではなく、仕様視認性の高い決定表に対して仕様の修正を行えるため、修正誤りを削減できる。
また本実施形態では、上記検査結果から、決定表表示の対象となる表示対象規則を生成するための表示ポリシを保持する。そして決定表表示の前に、上記表示ポリシの有効/無効の設定を受け付け、選択された表示ポリシに基づいて決定表表示の対象となる表示対象規則を生成する。
よって本実施形態によれば、仕様の規模や上記検査結果を考慮して、決定表表示対象の仕様量を調整できるため、作成及び表示する決定表の肥大化を防止できる。
本実施例における上記命題規則、制約、表示対象規則、及び修正済み規則などの命題形式の記述は、自然言語形式、及び論理式形式の両方を想定している。命題規則、表示対象規則、及び修正済み規則は、条件部と結果部から構成される。条件部は、条件項目の値の論理積にて構成される。同様に結果部は、結果項目の値の論理積にて構成される。制約は前件と後件から構成される。制約の前件は、命題規則の条件部と同様に、条件項目の値の論理積にて構成される。後件も同様に、条件項目の値の論理積にて構成される。
例えば、条件項目A、Bと、結果項目Cが存在し、それぞれa1とa2、b1とb2、c1とc2の値を取り得るとする。この場合、「Aはa1である、かつBはb1でない場合、Cはc1である」という命題規則を記述できる。この命題規則は、論理式形式により「A=a1∧B≠b1 ⇒ C=c1」とも記述でき,条件部は「A=a1∧B≠b1」であり、結果部は「C=c1」である。本実施例では、自然言語形式、及び論理式形式の両方の形式を用いて例を示す。
図1は本実施形態におけるソフトウェア仕様開発支援装置201の構成例を示すブロック図である。
ソフトウェア仕様開発支援装置201は、命題規則編集部101、命題規則保持部102、制約編集部103、制約保持部104、矛盾検査部105、重複検査部106、未定義検査部107、制約検査部108、検査結果保持部109、選択可能ポリシ設定部110、ポリシ保持部111、ポリシ選択部112、ポリシ編集部113、表示対象規則決定部114、表示対象規則保持部115、決定表部分表示・修正部116、修正済み規則生成部117、修正済み規則保持部118、及び修正済み規則置換部119を含む。
命題規則編集部101は、命題規則の入力及び編集を受け付け、受け付けた命題規則を命題規則保持部102に登録する。
制約編集部103は、命題規則に対する制約の入力及び編集を受け付け、受け付けた制約を制約保持部104に登録する。
矛盾検査部105は、命題規則保持部102から命題規則を取得する。取得した命題規則から、検査対象規則とその比較対象規則を決定し、検査対象規則と比較対象規則の矛盾を検査する。検査結果は検査結果保持部109に登録する。検査対象規則と比較対象規則は、外部からのユーザの入力に基づいて決定しても良い。
重複検査部105は、命題規則保持部102から命題規則を取得する。取得した命題規則から、検査対象規則とその比較対象規則を決定し、検査対象規則と比較対象規則による仕様の重複定義を検査する。命題規則に優先度を設定している場合は、検査対象規則と比較対象規則による仕様の上書きを検査する。また、検査対象規則と比較対象規則が、同一規則の変更前と変更後に対応する場合、その差分仕様を検査する。これらの検査結果は、検査結果保持部109に登録する。検査対象規則と比較対象規則は、外部からの入力に基づいて決定しても良い。
また,矛盾検査部105や重複検査部105は、検査結果に基づいて、検査対象規則と比較対象規則の関係を示すベン図を表示しても良い。
未定義検査部107は、命題規則保持部102から命題規則を取得し、命題規則にて定義されていない未定義の仕様を検査する。検査結果は検査結果保持部109に登録する。ある結果項目Cに対して「Cはc1でない」のように、「〜でない」という仕様のみが定義されている場合も、結果項目Cは未定義であるとしても良い。
制約検査部108は、命題規則保持部102から命題規則を取得し、同時に制約保持部104から制約を取得する。取得した命題規則が、同じく取得した制約を充足するかを検査する。検査結果は、検査結果保持部109に登録する。
検査結果保持部109は、検査結果を保持する。検査結果は少なくとも、各々の検査によって得られた命題形式の仕様を含む。
選択可能ポリシ設定部110は、検査結果保持部109から検査結果を取得する。そして取得した検査結果に基づいて、ポリシ保持部111が保持する表示ポリシの中から、適用条件を満たす適用可能なポリシを選別する。
ポリシ選択部112は、表示ポリシの有効あるいは無効の入力を受け付けて、ポリシ保持部111が保持するポリシを有効あるいは/無効に切り替える。
ポリシ編集部113は、表示ポリシ編集の入力を受け付けて、ポリシ保持部111が保持するポリシを変更する。
表示対象規則決定部114は、ポリシ保持部111から、適用可能な表示ポリシを取得する。さらに検査結果保持部109から、命題形式の仕様を含む検査結果を取得する。取得した表示ポリシと検査結果に基づいて、表示対象規則を決定する。得られた表示対象規則は、表示対象規則保持部115に登録する。
決定表部分表示・修正部116は、表示対象規則保持部115から表示対象規則を取得し、上記表示対象規則の表す仕様を決定表形式で表示する。また、表示した決定表の修正入力を受け付けて、決定表形式で表示された仕様を変更する。
修正済み規則生成部117は、決定表部分表示・修正部116が表示・修正した決定表を取得し、決定表の表す仕様を命題形式の仕様に変換する。変換によって得た命題形式の仕様は、修正済み規則として修正済み規則保持部118に登録する。
修正済み規則置換部119は、修正済み規則保持部118から修正済み規則を取得し、同時に検査結果保持部109から、修正前の表示対象規則を含む検査対象規則を取得する。次に、修正前の表示対象規則を、修正済み規則と置換することで、修正済みの検査対象規則を表す命題形式の仕様を得る。最後に、得られた命題形式の仕様を、命題規則保持部102が保持する検査対象規則と置換する。
図2は、ソフトウェア仕様開発支援装置201のハードウェア構成例を示すブロック図である。
ソフトウェア仕様開発支援装置201は、CPU202、メモリ203、外部記憶装置204、表示装置205、入力装置206、及び外部媒体入出力装置207を備える。
CPU202は、メモリ203に記憶されたプログラムを実行することによって、各種処理を実行する。メモリ203は、CPU202のワークエリアとして機能し、プログラム及びプログラムの実行に必要なデータを記憶する。具体的には、命題規則編集部101、制約編集部103、矛盾検査部105、重複検査部106、未定義検査部107、制約検査部108、選択可能ポリシ設定部110、ポリシ選択部112、ポリシ編集部113、表示対象規則決定部114、決定表部分表示・修正部116、修正済み規則生成部117、及び修正済み規則置換部119を構成するプログラムが記憶され、同時に命題規則保持部102、制約保持部104、検査結果保持部109、ポリシ保持部111、表示対象規則保持部115、及び修正済み規則保持部118の保持するデータが記憶される。
外部記憶装置204は、各種データを格納する。外部記憶装置204は、例えば、ハードディスク装置などである。具体的には、命題規則保持部102、制約保持部104、検査結果保持部109、ポリシ保持部111、表示対象規則保持部115、及び修正済み規則保持部118が格納される。
あるいは、命題規則編集部101、制約編集部103、矛盾検査部105、重複検査部106、未定義検査部107、制約検査部108、選択可能ポリシ設定部110、ポリシ選択部112、ポリシ編集部113、表示対象規則決定部114、決定表部分表示・修正部116、修正済み規則生成部117、及び修正済み規則置換部119を構成するプログラムの少なくとも一部についても、外部記憶装置204に格納され、各種処理実行の際にCPU202がメモリ203へ読み出してプログラムを実行することとしても良い。また各プログラムは、あらかじめメモリ203または外部記憶装置204に格納されていても良いし、必要に応じて、利用可能な媒体を介して、他の装置からメモリ203または外部記憶装置204に導入されても良い。媒体とは、例えば、外部媒体入出力装置207に着脱可能な記憶媒体、または、ネットワークや、ネットワークを伝搬する搬送波やデジタル信号などの通信媒体を指す。
表示装置205は、プログラムの処理結果などを表示する。表示装置205は、例えば、ディスプレイなどである。入力装置206は、処理の実行指示及び処理に必要な情報の入力などを利用者から受け付ける。入力装置206は、例えば、キーボード及びマウスなどである。
外部媒体入出力装置207は、外部媒体と、外部記憶装置204に格納されているデータなどの入出力を行う。外部媒体は、外部媒体入出力装置207に着脱可能で可搬性のある記憶媒体であり、外部媒体入出力装置207は、外部媒体に読み書き可能なドライブ装置などである。
図3は、命題規則保持部102が保持する命題規則の例である。また、図4は命題規則を構成する条件項目と結果項目の例である。
条件項目401は、条件項目名称402とその項目の値である条件値403から構成される。同様に結果項目404は、結果項目名称405とその項目の値である結果値から構成される。例えば、命題規則301は、「保険加入有無という名称の条件項目の値が加入済みである場合に、補助金と言う名称の結果項目の値は交付ありである」という仕様を表す。命題規則301の条件部は「「保険加入有無」が「加入済み」である」となり、結果部は「「補助金」は「交付あり」である」となる。
図5は、制約保持部104が保持する制約の例である。
例えば、制約501は、「保険加入有無という名称の条件項目の値が未加入である場合に、保険納入額と言う名称の条件項目の値は0円である」という制約を表す。制約501の前件は「「保険加入有無」が「未加入」である」となり、後件は「「保険納入額」は「0円」である」となる。
図6は、矛盾検査部105が検査結果保持部109に登録する矛盾検査結果の例である。
矛盾検査の検査結果601は、検査対象規則602、比較対象規則603、検査結果604、矛盾する仕様605、及び矛盾しない仕様606から構成される。
検査対象規則602、及び比較対象規則603は、命題規則のうちそれぞれ矛盾検査の対象となる命題規則と、その比較対象となる命題規則を表す。検査結果604は、検査対象規則602と比較対象規則603の矛盾検査結果を表す。矛盾する仕様605は、検査対象規則602が表す仕様のうち、比較対象規則603が表す仕様と矛盾する仕様を表す。逆に、矛盾しない仕様606は、検査対象規則602が表す仕様のうち、比較対象規則603が表す仕様と矛盾しない仕様を表す。
例えば、検査対象規則602として命題規則301が与えられ、その比較対象規則603として命題規則302が与えられたとする。この場合、矛盾検査部105は、検査結果604として「矛盾あり」を登録する。同時に、矛盾する仕様605として、「「保険加入有無」が「加入済み」である、かつ「保険納入額」が「2万円以上」である場合、「補助金」は「交付あり」である」という仕様を登録する。さらに、矛盾しない仕様606として、「「保険加入有無」が「加入済み」である、かつ「保険納入額」が「2万円以上」でない場合、「補助金」は「交付あり」である」という仕様を登録する。
図7は、矛盾検査の手順例を示すフローチャートである。
以下に示す処理は、ソフトウェア仕様開発支援装置201の備えるCPU202が、メモリ203で実行するプログラムによって実現される。そしてこのプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
CPU202は、矛盾検査部105を実行することによって、命題規則保持部102から任意の2つの命題規則を取得し、それぞれ検査対象規則、及び比較対象規則とする。取得した検査対象規則と比較対象規則は、それぞれ検査結果保持部109の検査対象規則602と比較対象規則603に登録する(ステップ701)。
矛盾検査部105は、取得した検査対象規則の条件を表す条件部と、比較対象規則の条件を表す条件部を参照し、双方の条件部が両立するかを判定する。条件部が両立する場合、次に検査対象規則の結果を表す結果部と、比較対象規則の結果を表す結果部を参照し、双方の結果部が両立するかを判定する。条件部が両立し、かつ結果部が両立しない場合は、検査結果保持部109の検査結果604に「矛盾あり」を登録し、ステップ703を実行する。条件部が両立しない、あるいは条件部は両立するが結果部も両立する場合は、検査結果保持部109の検査結果604に「矛盾なし」を登録し、矛盾しない仕様606に検査対象規則を登録して処理を終了する。上記両立性の検査には,SATソルバを用いても良い。例えば命題規則301と命題規則302は、条件部が両立し、かつ結果部が両立しないため、検査結果604に「矛盾あり」を登録し、ステップ703を実行する(ステップ702)。
矛盾検査部105は、比較対象規則には現れ、検査対象規則には現れない条件項目があるかを検査する。上記条件に合致する条件項目がある場合はステップ704を実行する。上記条件に合致する条件項目がない場合はステップ706を実行する。例えば命題規則301を検査対象規則とし、命題規則302を比較対象規則とした場合は、「保険納入額」という条件項目が上記条件に合致するため、ステップ704を実行する(ステップ703)。
矛盾検査部105は、ステップ703で検出した、比較対象規則には現れ検査対象規則には現れない条件項目を、比較対象規則に現れる値と同じ値で検査対象規則の条件部に論理積結合する。例えば上記例の場合、命題規則301の条件部に「「保険納入額」が「2万円以上」である」という条件を論理積結合し、「保険加入有無」が「加入済み」である、かつ「保険納入額」が「2万円以上」である場合、「補助金」は「交付あり」である」という記述を得る(ステップ704)。
矛盾検査部105は、ステップ704で作成した記述を、矛盾する仕様605として検査結果保持部109に登録する(ステップ705)。
矛盾検査部105は、検査対象規則を、矛盾する仕様605として検査結果保持部109に登録し、処理を終了する(ステップ706)。
矛盾検査部105は、ステップ703で検出した、比較対象規則には現れ検査対象規則には現れない条件項目を、比較対象規則に現れる値の否定値にて検査対象規則の条件部に論理積結合する。例えば上記例の場合、命題規則301の条件部に「「保険納入額」が「2万円以上」でない」という条件を論理積結合し、「保険加入有無」が「加入済み」である、かつ「保険納入額」が「2万円以上」でない場合、「補助金」は「交付あり」である」という記述を得る(ステップ707)。
矛盾検査部105は、ステップ707で作成した記述を、矛盾しない仕様606として検査結果保持部109に登録する(ステップ708)。
図8は、重複検査部106が検査結果保持部109に登録する重複検査結果の例である。
重複検査の検査結果801は、検査対象規則802、比較対象規則803、検査結果804、重複する仕様805、及び重複しない仕様806から構成される。
検査対象規則802、及び比較対象規則803は、命題規則のうちそれぞれ重複検査の対象となる命題規則と、その比較対象となる命題規則を表す。検査結果804は、検査対象規則802と比較対象規則803の重複検査結果を表す。重複する仕様805は、検査対象規則802が表す仕様のうち、比較対象規則803が表す仕様と重複する仕様を表す。逆に、重複しない仕様806は、検査対象規則802が表す仕様のうち、比較対象規則803が表す仕様と重複しない仕様を表す。
例えば、検査対象規則802として命題規則301が与えられ、その比較対象規則803として命題規則303が与えられたとする。この場合、重複検査部106は、検査結果804として「重複あり」を登録する。同時に、重複する仕様805として、「「保険加入有無」が「加入済み」である、かつ「保険納入額」が「2万円以上」である場合、「補助金」は「交付あり」である」という仕様を登録し、重複しない仕様806として、「「保険加入有無」が「加入済み」である、かつ「保険納入額」が「2万円以上」でない場合、「補助金」は「交付あり」である」という仕様を登録する。
また上述の通り重複検査部106は、命題規則間の仕様の重複を検査するだけでなく、上書き検査や、差分検査を行っても良い。上書き検査の場合は、検査対象規則802が表す仕様のうち、比較対象規則803が表す仕様を上書きする仕様、あるいは比較対象規則803が表す仕様によって上書きされる仕様を、重複する仕様805に登録する。差分検査の場合は、検査対象規則802が表す仕様のうち、比較対象規則803が表す仕様との差分の仕様を、重複する仕様805に登録する。
図9は、重複検査の手順例を示すフローチャートである。
以下に示す処理は、決定表作成支援・検証装置201の備えるCPU202が、メモリ203で実行するプログラムによって実現される。そしてこのプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
CPU202は、重複検査部106を実行することによって、命題規則保持部102から任意の2つの命題規則を取得し、それぞれ検査対象規則、及び比較対象規則とする。取得した検査対象規則と比較対象規則は、それぞれ検査結果保持部109の検査対象規則802と比較対象規則803に登録する(ステップ901)。
重複検査部106は、取得した検査対象規則の条件を表す条件部と、比較対象規則の条件を表す条件部を参照し、双方の条件部が両立するかを判定する。条件部が両立する場合は、検査結果保持部109の検査結果804に「重複あり」を登録し、ステップ903を実行する。条件部が両立しない場合は、検査結果保持部109の検査結果804に「重複なし」を登録し、重複しない仕様806に検査対象規則を登録して処理を終了する。上記両立性の検査には,SATソルバを用いても良い。例えば命題規則301と命題規則302は、条件部が両立するため、検査結果804に「重複あり」を登録し、ステップ903を実行する(ステップ902)。
重複検査部106は、比較対象規則には現れ、検査対象規則には現れない条件項目があるかを検査する。上記条件に合致する条件項目がある場合はステップ904を実行する。上記条件に合致する条件項目がない場合はステップ906を実行する。例えば命題規則301を検査対象規則とし、命題規則302を比較対象規則とした場合は、「保険納入額」という条件項目が上記条件に合致するため、ステップ904を実行する(ステップ903)。
重複検査部106は、ステップ903で検出した、比較対象規則には現れ検査対象規則には現れない条件項目を、比較対象規則に現れる値と同じ値で検査対象規則の条件部に論理積結合する。例えば上記例の場合、命題規則301の条件部に「「保険納入額」が「2万円以上」である」という条件を論理積結合し、「保険加入有無」が「加入済み」である、かつ「保険納入額」が「2万円以上」である場合、「補助金」は「交付あり」である」という記述を得る(ステップ904)。
重複検査部106は、ステップ904で作成した記述を、重複する仕様805として検査結果保持部109に登録する(ステップ905)。
重複検査部106は、検査対象規則を、重複する仕様805として検査結果保持部109に登録し、処理を終了する(ステップ906)。
重複検査部106は、ステップ903で検出した、比較対象規則には現れ検査対象規則には現れない条件項目を、比較対象規則に現れる値の否定値にて検査対象規則の条件部に論理積結合する。例えば上記例の場合、命題規則301の条件部に「「保険納入額」が「2万円以上」でない」という条件を論理積結合し、「保険加入有無」が「加入済み」である、かつ「保険納入額」が「2万円以上」でない場合、「補助金」は「交付あり」である」という記述を得る(ステップ907)。
重複検査部106は、ステップ907で作成した記述を、重複しない仕様806として結果保持部109に登録する(ステップ908)。
図10は、重複検査の結果に基づいて作成するベン図の例である。
範囲1001は、検査対象規則である命題規則301が表す仕様の範囲を示す。範囲1002は、比較対象規則である命題規則302が表す仕様の範囲を示す。範囲1003は検査対象規則が表す仕様のうち、比較対象規則が表す仕様と重複しない仕様の範囲を示す。範囲1004は、検査対象規則が表す仕様のうち、比較対象規則が表す仕様と重複する仕様の範囲を示す。
図11は、未定義検査部107が検査結果保持部109に登録する未定義検査結果の例である。
未定義検査の検査結果1101は、未定義条件1102から構成される。未定義条件1102は、命題規則保持部102が保持する命題規則によって結果が定義されていない条件を表す。
例えば、命題規則保持部109が命題規則301、302及び303を保持する場合、「「保険加入有無」が「加入済み」である場合」、「「保険加入有無」が「加入済み」である場合」及び「「保険納入額」が「2万円以上」である場合」という条件に対しては結果は定義済みである。一方で、「「保険加入有無」が「未加入」である、かつ「保険納入額」が「1円以上2万円未満」である場合」と「「保険加入有無」が「未加入」である、かつ「保険納入額」が「0円」である場合」という条件に対しては結果は未定義である。よって未定義条件1102には、これら2つの条件が登録される。
図12は、未定義検査の手順例を示すフローチャートである。
以下に示す処理は、決定表作成支援・検証装置201の備えるCPU202が、メモリ203で実行するプログラムによって実現される。そしてこのプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
CPU202は、未定義検査部107を実行することによって、命題規則保持部102から全ての命題規則を取得する(ステップ1201)。
未定義検査部107は、取得したそれぞれの命題規則に対して、それらの条件部の否定を表す記述を作成する。ただし、条件部の否定を作成する際には、任意の条件項目Xの任意の値x1について、「「X」が「x1」でない」という記述は用いてはならない。上記の場合、条件項目Xのx1以外の値x_i、x_i+1…x_j、を用いて、「「X」が「x_i」である、あるいは「X」が「x_i+1」である、…、あるいは「X」が「x_j」である」という記述を用いる。同様に、論理式形式の記述においては、否定等号「≠」を使用してはならない。
ここで、条件項目A、Bと、結果項目Cが与えられており、それぞれa1とa2、b1とb2、c1とc2の値を取るとする。この場合、「A=a1∧B≠b1 ⇒ C=c1」という命題規則に対しては、その条件部の否定として「A=a2∨B=b1」という記述を作成する(ステップ1202)。
未定義検査部107は、ステップ1202で作成した条件部の否定を表す記述を、論理積結合する(ステップ1203)。
未定義検査部107は、ステップ1203で作成した記述を、積和標準形に変形する(ステップ1204)。
未定義検査部107は、ステップ1204で作成した積和標準形の記述を、連言節ごとに分離し、それぞれの連言節を未定義条件1102として検査結果保持部109に登録する(ステップ1205)。
図13は、制約検査部108が検査結果保持部109に登録する制約検査結果の例である。
制約検査の検査結果1301は、検査対象規則1302、制約1303、検査結果1304、制約対象の仕様1305、及び制約対象外の仕様1306から構成される。
検査対象規則1302及び制約1303は、制約検査の対象となる命題規則とその制約を表す。検査結果1304は、検査対象規則1302に対する制約1303の制約検査の結果を表す。制約対象の仕様1305は、検査対象規則1302が表す仕様のうち、制約1303による制約対象の仕様を表す。逆に、制約対象外の仕様1306は、検査対象規則1302が表す仕様のうち、制約1303による制約対象外の仕様を表す。
例えば、検査対象規則1302として命題規則302が与えられ、制約1303として制約501が与えられたとする。この場合、制約検査部108は、検査結果1304として「対象あり」を登録する。同時に、制約対象の仕様1305として、「「保険加入有無」が「未加入」である、かつ「保険納入額」が「2万円以上」である場合、「補助金」は「交付なし」である」という仕様を登録し、制約対象外の仕様1306として、「「保険加入有無」が「未加入」でない、かつ「保険納入額」が「2万円以上」である場合、「補助金」は「交付なし」である」という仕様を登録する。
図14は、制約検査の手順例を示すフローチャートである。
以下に示す処理は、決定表作成支援・検証装置201の備えるCPU202が、メモリ203で実行するプログラムによって実現される。そしてこのプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
CPU202は、制約検査部108を実行することによって、命題規則保持部102から任意の1つの命題規則を取得し検査対象規則とする。同時に制約保持部104から任意の1つの制約を取得する。取得した検査対象規則と制約は、それぞれ検査保持部109の検査対象規則1302と、制約1303に登録する(ステップ1401)。
制約検査部108は、取得した検査対象規則と制約を参照し、検査対象規則の条件部と制約の前件が両立するかを判定する。両立する場合は、ステップ1403を実行する。両立しない場合は、検査結果保持部109の検査結果1304に「対象なし」を登録し、制約対象外の仕様1306に検査対象規則を登録して処理を終了する。上記両立性の検査には,SATソルバを用いても良い(ステップ1402)。
制約検査部108は、検査対象規則の条件部と制約の後件が両立するかを判定する。両立する場合は、ステップ1404を実行する。両立しない場合は、ステップ1409を実行する。上記両立性の検査には,SATソルバを用いても良い。例えば、命題規則302と制約501の場合は、条件部と前件は両立するが、条件部と後件は両立しないため、ステップ1409を実行する。また例のため、「「保険加入有無」が「未加入」である場合、「補助金」は「交付あり」である」という命題規則304について考えると、命題規則304と制約501の場合は、条件部と前件は両立し、条件部と後件も両立するため、ステップ1404を実行する(ステップ1403)。
制約検査部108は、制約の後件には現れ、検査対象規則の条件部には現れない条件項目があるかを検査する。上記条件に合致する条件項目がある場合は、検査結果保持部109の検査結果1304に「対象あり」を登録し、ステップ1405を実行する。上記条件に合致する条件項目がない場合は、検査結果1304に「対象なし」を登録し、制約対象外の仕様1306に検査対象規則を登録して処理を終了する。例えば命題規則304と制約501の場合は、「保険納入額」の条件項目が上記条件に合致するため、検査結果1304に「対象あり」を登録し、ステップ1405を実行する(ステップ1404)。
制約検査部108は、ステップ1404で検出した、制約の後件には現れ検査対象規則の条件部には現れない条件項目を、制約の後件に現れる値の否定値にて検査対象規則の条件部に論理積結合する。例えば命題規則304と制約501の場合は、命題規則304の条件部に「「保険納入額」が「0円」でない」という条件を論理積結合し、「「保険加入有無」が「未加入」である、かつ「保険納入額」が「0円」でない場合、「補助金」は「交付あり」である」という記述を得る(ステップ1405)。
制約検査部108は、ステップ1405で作成した記述を、制約対象の仕様1305として結果保持部109に登録する(ステップ1406)。
制約検査部108は、ステップ1404で検出した、制約の後件には現れ検査対象規則の条件部には現れない条件項目を、制約の後件に現れる値と同じ値で検査対象規則の条件部に論理積結合する。例えば命題規則304と制約501の場合は、命題規則304の条件部に「「保険納入額」が「0円」である」という条件を論理積結合し、「「保険加入有無」が「未加入」である、かつ「保険納入額」が「0円」である場合、「補助金」は「交付あり」である」という記述を得る(ステップ1407)。
制約検査部108は、ステップ1407で作成した記述を、制約対象外の仕様1306として結果保持部109に登録する(ステップ1408)。
制約検査部108は、制約の前件には現れ、検査対象規則の条件部には現れない条件項目があるかを検査する。上記条件に合致する条件項目がある場合は、検査結果保持部109の検査結果1304に「対象あり」を登録し、ステップ1411を実行する。上記条件に合致する条件項目がない場合は、検査結果1304に「対象あり」を登録し、ステップ1410を実行する。例えば命題規則302と制約501の場合は、「保険加入有無」の条件項目が上記条件に合致するため、検査結果1304に「対象あり」を登録し、ステップ1411を実行する(ステップ1409)。
制約検査部108は、検査対象規則を、制約対象の仕様1305として検査結果保持部109に登録し、処理を終了する(ステップ1410)。
制約検査部108は、ステップ1409で検出した、制約の前件には現れ検査対象規則の条件部には現れない条件項目を、制約の前件に現れる値と同じ値で検査対象規則の条件部に論理積結合する。例えば命題規則302と制約501の場合は、命題規則302の条件部に「「保険加入有無」が「未加入」である」という条件を論理積結合し、「「保険加入有無」が「未加入」である、かつ「保険納入額」が「2万円以上」である場合、「補助金」は「交付なし」である」という記述を得る(ステップ1411)。
制約検査部108は、ステップ1411で作成した記述を、制約対象の仕様1305として結果保持部109に登録する(ステップ1412)。
制約検査部108は、ステップ1404で検出した、制約の前件には現れ検査対象規則の条件部には現れない条件項目を、制約の前件に現れる値の否定値にて検査対象規則の条件部に論理積結合する。例えば命題規則302と制約501の場合は、命題規則304の条件部に「「保険加入有無」が「未加入」でない」という条件を論理積結合し、「「保険加入有無」が「未加入」でない、かつ「保険納入額」が「2万円以上」である場合、「補助金」は「交付なし」である」という記述を得る(ステップ1413)。
制約検査部108は、ステップ1413で作成した記述を、制約対象外の仕様1306として結果保持部109に登録する(ステップ1414)。
図15は、ポリシ保持部111が保持する表示ポリシの例である。
表示ポリシ一覧1501はポリシ記述1502、ポリシ適用条件1503、表示方法1504、及び有効/無効属性1505から構成される。
ポリシ記述1502は、検査結果から表示対象規則を抽出する方法に関するポリシの記述である。表示対象規則決定部114は、ポリシ記述1502を解釈した結果に基づいて、表示対象規則を決定する。ポリシ適用条件1503は、ポリシが適用されるための条件を表す。適用条件を満たしていないポリシは、表示対象規則決定部114が表示対象規則を決定するためのポリシとして適用されない。表示方法1504は、当該ポリシに基づいて決定された表示対象規則の、決定表上での表示方法を示す。有効/無効属性1505は、当該ポリシが現在有効か無効かを示す。無効なポリシは、ポリシ適用条件1503を満たしていたとしても適用されない。
例えばNo.1のポリシは、検査結果保持部109が矛盾検査の検査結果601を保持している場合に、矛盾する仕様605の仕様を表示対象規則として決定し、決定表上で強調表示することを意味する。
No.5のポリシは、検査結果保持部109が矛盾検査の検査結果601を保持している場合に、矛盾しない仕様606の仕様を表示対象規則として決定し、決定表上に(強調なしで)通常表示することを意味する。
No.6のポリシは、検査結果保持部109が矛盾検査の検査結果601を保持している場合に、No.1のポリシが示す矛盾する仕様605と8割以上の条件値が一致する命題規則を取得し、決定表上に通常表示することを意味する。このようなポリシを適用する場合、表示対象規則決定部114は、命題規則保持部102を検索し、上記条件に合致する命題規則を取得する必要がある。
No.7のポリシは、検査結果保持部109が矛盾検査の検査結果601を保持している場合に、No.1のポリシが示す矛盾する仕様605と重複する命題規則を取得し、決定表上に通常表示することを示す。このようなポリシを適用する場合、表示対象規則決定部114は、重複検査部106を実行し、その検査結果を検査結果保持部109から取得する必要がある。また上記重複検査は、No.1のポリシが示す矛盾する仕様605を比較対象規則とし、他の全ての命題規則を検査対象規則として実施する必要がある。
図16は、表示対象規則保持部115が保持する表示対象規則の例である。
表示対象規則一覧1601は、表示対象規則記述1602と、表示方法1603から構成される。表示対象規則1602は、表示対象規則決定部114が、ポリシ保持部111から取得した表示ポリシ一覧1501に基づき、矛盾検査の検査結果601から抽出した表示対象規則を表す。
例えば、No.1の表示対象規則は、命題規則301と命題規則302の矛盾検査結果601における矛盾する仕様605を、表示ポリシ一覧1501におけるNo.1のポリシに基づき、表示対象規則として登録した結果である。表示方法1603は、表示方法1504に基づく。
図17は、表示対象規則決定の手順例を示すフローチャートである。
以下に示す処理は、決定表作成支援・検証装置201の備えるCPU202が、メモリ203で実行するプログラムによって実現される。そしてこのプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
CPU202は、表示対象規則決定部114を実行することによって、検査結果保持部109から検査結果を取得する(ステップ1701)。
表示対象規則決定部114は、取得した検査結果を参照し、ポリシ保持部が保持する表示ポリシ一覧から、選択可能ポリシ設定部110がポリシ適用条件1503を満たすとして選別し,かつ有効/無効属性1505が有効なポリシを取得する(ステップ1702)。
表示対象規則決定部114は、ステップ1702で取得したポリシを参照し、ポリシに従って表示対象規則を決定するためには、検査済みの検査とは異なる追加検査が必要かを判定する。例えば、表示ポリシ一覧1501におけるNo.7のポリシを適用する場合、重複検査を追加で行う必要がある。追加検査が必要と判定した場合は、ステップ1704を実行する。追加検査は不要と判定した場合は1ステップ1706を実行する(ステップ1703)。
表示対象規則決定部114は、必要な追加検査の種類に応じて、矛盾検査部105、重複検査部106、未定義検査部107、及び制約検査部108を実行する(ステップ1704)。
表示対象規則決定部114は、検査結果保持部109から追加検査の結果を取得する(ステップ1705)。
表示対象規則決定部114は、ステップ1702で取得したポリシに従い、取得した検査結果から表示対象規則を抽出する。ポリシによっては、命題規則保持部102を参照し、命題規則保持部102が保持する命題規則から表示対象規則を抽出する場合もある(ステップ1706)。
表示対象規則決定部114は、ステップ1706で抽出した表示対象規則を、表示対象規則保持部115に登録する(ステップ1707)。
図18は、決定表部分表示・修正部116が、表示対象規則保持部115が保持する表示対象規則に基づいて表示する部分決定表の例である。
部分決定表1801は、決定表部分表示・修正部116が、表示対象規則一覧1601に基づいて表示する部分決定表である。列1802は、表示対象規則一覧1601におけるNo.1の表示対象規則に基づいて表示される範囲を示す。列1802は、表示方法1603に基づき、他の列よりも強調表示される。また条件項目1805は、ステップ703及びステップ707において,検査対象規則である命題規則301に対して新しく追加された条件項目であるため、強調表示される。
また、部分決定表1801においては、条件項目「国籍」はドントケア条件であり、集約表示されている。この集約表示を解除した結果を、部分決定表1803に示す。列1804は、列1803と同じ範囲を示す。あるいは、部分決定表1801においては、ドントケアな条件項目「国籍」を非表示にしても良い。
図19は、決定表部分表示・修正部116が修正入力を受け付けることにより、修正された部分決定表の例である。
修正済みの部分決定表1901は、部分決定表1801を修正した結果であり、修正された列1902を含む。修正された列1902は、列1802を修正した結果であり、結果項目「補助金」の値が、「交付あり」から「交付なし」へと修正されている。
図20は、修正済み規則保持部118が保持する修正済み規則の例である。
修正済み規則一覧2001は、表示対象規則2002と、その修正結果である修正済み規則2003から構成される。修正済み規則生成部117は、表示対象規則保持部115から、表示対象規則一覧1601を取得し、表示対象規則2002として登録する。また修正済み規則生成部117は、表示対象規則2002に対応する修正済みの部分決定表を取得し、命題形式の仕様に変換して修正済み規則2003として登録する。決定表形式の仕様を命題形式の仕様に変換する方法は、先願の特許文献2に示している。例えば、修正済み規則一覧2001におけるNo.1の表示対処規則は、表示対象規則一覧1601のNo.1の表示対象規則である。この表示対象規則は、部分決定表1801の列1802として表示され、修正済みの部分決定表1901の列1902へと修正される。よって、列1902を命題形式の仕様「「保険加入有無」が「加入済み」である,かつ「保険納入額」が「2万円以上」である場合,「補助金」は「交付なし」である」に変換し、修正済み規則2003として登録する。
以上のようにして、ソフトウェア仕様を表す決定表に対して、命題形式の仕様の入力手段と、上記命題形式の仕様間の矛盾、重複、差分を検査する手段と、上記命題形式の仕様の未定義仕様を検査する手段と、上記命題形式の仕様が制約を充足するかを検査する手段と、上記検査の結果に基づいて決定表を作成する手段と、決定表の修正を受け付ける手段と、修正済みの決定表を命題形式の仕様に変換する手段と、上記変換によって得た命題形式の仕様を、もとの命題形式の仕様と置換する手段を提供する、ソフトウェア仕様開発支援装置201を提供できる。
101・・・命題規則編集部、102・・・命題規則保持部、103・・・制約編集部、104・・・制約保持部、105・・・矛盾検査部、106・・・重複検査部、107・・・未定義検査部、108・・・制約検査部、109・・・検査結果保持部、110・・・選択可能ポリシ設定部、111・・・ポリシ保持部、112・・・ポリシ選択部、113・・・ホリシ編集部、114・・・表示対象規則決定部、115・・・表対象規則保持部、116・・・決定表部分表示・修正部、117・・・修正済み規則生成部、118・・・修正済み規則保持部、119・・・修正済み規則置換部。

Claims (15)

  1. ソフトウェア仕様の開発を支援するソフトウェア仕様開発支援装置であって、
    複数の条件を有する条件部および複数の結果を有する結果部からなる複数の命題形式の仕様を入力部を介して受け付ける命題仕様受付部と、複数の命題形式の仕様を保持する第1の保持部と、前記第1の保持部の命題仕様に基づき前記複数の命題形式の仕様の各々が互いに矛盾あるいは重複しないかどうかを判定し、その結果を第2の保持部に保持する仕様検査部と、各行が前記複数の条件の1つまたは前記複数の結果の1つを示し、各列が前記複数の命題形式の仕様の各々を示す表形式で表した決定表を、前記判定の結果に基づいて作成する決定表作成部と、
    を備え、
    前記仕様検査部は、前記第1の保持部から取得した任意の検査対象の命題形式の仕様とその任意の比較対象の命題形式の仕様に対して、前記2つの命題形式の仕様が矛盾するかあるいは重複するかを判定し、矛盾あるいは重複するならば、前記検査対象の命題形式の仕様を、比較対象の命題形式の仕様と矛盾あるいは重複する命題形式の仕様と、比較対象の命題形式の仕様と矛盾あるいは重複しない命題形式の仕様とに分解して、前記第2の保持部に登録し、
    前記決定表作成部は、前記第2の保持部から前記命題形式の仕様の何れか、あるいは両方を取得し、前記命題形式の仕様の各々について、当該命題形式の仕様の条件部と結果部を取り出して前記決定表の行を作成し、表示範囲を、当該命題形式の仕様に対応する列の当該行の欄に示す、
    ことを特徴とするソフトウェア仕様開発支援装置。
  2. 前記仕様検査部は、検査対象の命題形式の仕様とその比較対象となる命題形式の仕様が矛盾あるいは重複する場合に、前記検査対象の命題形式の仕様の前記条件部に、前記比較対象の命題形式の仕様の前記条件部に現れる条件、あるいはその条件の否定を追加(論理積結合)することで、前記検査対象の命題形式の仕様を分解する、
    ことを特徴とする請求項1に記載のソフトウェア仕様開発支援装置。
  3. 受け付けた前記複数の命題形式の仕様について、結果が未定義の条件を検査する未定義仕様検査部をさらに備え、
    前記未定義仕様検査部は、前記複数の命題形式の仕様の条件部の否定を論理積結合した仕様を、積和標準形に変換することで、結果が未定義の条件を表す命題形式の仕様を作成し、
    前記決定表作成部は、前記命題形式の仕様の一部、あるいは全てを取得し、前記命題形式の仕様の各々について、当該命題形式の仕様の条件部と結果部を取り出して前記決定表の行を作成し、表示範囲を、当該命題形式の仕様に対応する列の当該行の欄に示す、
    ことを特徴とする請求項1に記載のソフトウェア仕様開発支援装置。
  4. 1つまたは複数の条件を有する前件と1つまたは複数の条件を有する後件からなる、複数の条件間の制約関係を示す制約を受け付ける制約受付部と、
    前記複数の命題形式の仕様が前記制約を充足しない場合があるかどうかをチェックする制約検査部と、をさらに備え、
    前記制約検査部は、前記制約受付部から前記制約を取得すると、任意の検査対象の命題形式の仕様が前記制約を充足しない場合があるかどうかを判定し、充足しない場合があるならば、前記検査対象の命題形式の仕様を、制約を充足しない命題形式の仕様と、制約を充足する命題形式の仕様に分解する、
    ことを特徴とする請求項1に記載のソフトウェア仕様開発支援装置。
  5. 前記制約検査部は、検査対象の命題形式の仕様が制約を充足しないことがある場合に、前記検査対象の命題形式の仕様の前記条件部に、前記制約の前件あるいは後件に現れる条件、あるいはその条件の否定を追加(論理積結合)することで、前記検査対象の命題形式の仕様を分解する、
    ことを特徴とする請求項4に記載のソフトウェア仕様開発支援装置。
  6. 前記決定表作成部は、作成する決定表において、前記検査対象の命題形式の仕様に追加した条件を他の条件と区別して表示する、
    ことを特徴とする請求項2又は請求項5に記載のソフトウェア仕様開発支援装置。
  7. 前記命題形式の仕様のうち、決定表作成対象となる命題形式の仕様の条件や、その決定表による表示方法を表すポリシを保持するポリシ保持部をさらに備え、
    前記決定表作成部は、前記ポリシに従って、表示対象の命題形式の仕様とその表示方法を決定し、該決定した仕様と表示方法に応じて、前記決定表の表示を行う、
    ことを特徴とする請求項1に記載のソフトウェア仕様開発支援装置。
  8. 前記決定表作成部は、前記決定表の表示範囲の修正入力を受け付けて、修正済みの決定表を作成し、
    前記修正済みの決定表から修正済みの命題形式の仕様を取り出し、修正前の決定表のもとになった修正前の命題形式の仕様と前記修正済みの命題形式の仕様とを置換する、仕様置換部をさらに備える、
    ことを特徴とする請求項1に記載のソフトウェア仕様開発支援装置。
  9. 前記仕様検査部は、SATソルバを用いて命題形式の仕様の矛盾あるいは重複を判定する、
    ことを特徴とする請求項1に記載のソフトウェア仕様開発支援装置。
  10. 前記制約検査部は、SATソルバを用いて命題形式が制約を充足するかを判定する、
    ことを特徴とする請求項4に記載のソフトウェア仕様開発支援装置。
  11. ソフトウェア仕様の開発を支援する装置におけるソフトウェア仕様開発支援方法であって、
    前記ソフトウェア仕様開発支援方法は、複数の命題形式の仕様を保持する第1の保持部を備え、
    複数の条件を有する条件部および複数の結果を有する結果部からなる複数の命題形式の仕様を入力部を介して受け付ける第1のステップと、前記第1の保持部の命題仕様に基づき前記複数の命題形式の仕様の各々が互いに矛盾あるいは重複しないかどうかを判定し、その結果を第2の保持部に保持する第2のステップと、各行が前記複数の条件の1つまたは前記複数の結果の1つを示し、各列が前記複数の命題形式の仕様の各々を示す表形式で表した決定表を、前記判定の結果に基づいて作成する第3のステップと、
    を含み、
    前記第2のステップにより、前記第1の保持部から取得した任意の検査対象の命題形式の仕様とその任意の比較対象の命題形式の仕様に対して、前記2つの命題形式の仕様が矛盾するかあるいは重複するかを判定し、矛盾あるいは重複するならば、前記検査対象の命題形式の仕様を、比較対象の命題形式の仕様と矛盾あるいは重複する命題形式の仕様と、比較対象の命題形式の仕様と矛盾あるいは重複しない命題形式の仕様とに分解して、前記第2の保持部に登録し、
    前記第3のステップにより、前記第2の保持部から前記命題形式の仕様の何れか、あるいは両方を取得し、前記命題形式の仕様の各々について、当該命題形式の仕様の条件部と結果部を取り出して前記決定表の行を作成し、表示範囲を、当該命題形式の仕様に対応する列の当該行の欄に示す、
    ことを特徴とするソフトウェア仕様開発支援方法。
  12. 受け付けた前記複数の命題形式の仕様について、結果が未定義の条件を検査する第4のステップを含み、
    前記第4のステップにより、前記複数の命題形式の仕様の条件部の否定を論理積結合した仕様を、積和標準形に変換することで、結果が未定義の条件を表す命題形式の仕様を作成し、
    前記第3のステップにより、前記命題形式の仕様の一部、あるいは全てを取得し、前記命題形式の仕様の各々について、当該命題形式の仕様の条件部と結果部を取り出して前記決定表の行を作成し、表示範囲を、当該命題形式の仕様に対応する列の当該行の欄に示す、
    ことを特徴とする請求項11に記載のソフトウェア仕様開発支援方法。
  13. 1つまたは複数の条件を有する前件と1つまたは複数の条件を有する後件からなる、複数の条件間の制約関係を示す制約を受け付ける第5のステップと、
    前記複数の命題形式の仕様が前記制約を充足しない場合があるかどうかをチェックする第6のステップと、をさらに含み、
    前記第6のステップにより、前記第5のステップにより前記制約を取得すると、任意の検査対象の命題形式の仕様が前記制約を充足しない場合があるかどうかを判定し、充足しない場合があるならば、前記検査対象の命題形式の仕様を、制約を充足しない命題形式の仕様と、制約を充足する命題形式の仕様に分解する、
    ことを特徴とする請求項11に記載のソフトウェア仕様開発支援方法。
  14. 前記ソフトウェア仕様開発支援方法は、前記命題形式の仕様のうち、決定表作成対象となる命題形式の仕様の条件や、その決定表による表示方法を表すポリシを保持するポリシ保持部をさらに備え、
    前記第3のステップにより、前記ポリシに従って、表示対象の命題形式の仕様とその表示方法を決定し、該決定した仕様と表示方法に応じて、前記決定表の表示を行う、
    ことを特徴とする請求項11に記載のソフトウェア仕様開発支援方法。
  15. 前記第3のステップにより、前記決定表の表示範囲の修正入力を受け付けて、修正済みの決定表を作成し、
    前記修正済みの決定表から修正済みの命題形式の仕様を取り出し、修正前の決定表のもとになった修正前の命題形式の仕様と前記修正済みの命題形式の仕様とを置換する、第7のステップをさらに備える、
    ことを特徴とする請求項11に記載のソフトウェア仕様開発支援方法。
JP2012181988A 2012-08-21 2012-08-21 ソフトウェア仕様開発支援方法及びソフトウェア仕様開発支援装置 Active JP5970292B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012181988A JP5970292B2 (ja) 2012-08-21 2012-08-21 ソフトウェア仕様開発支援方法及びソフトウェア仕様開発支援装置
CN201310304712.8A CN103631710B (zh) 2012-08-21 2013-07-19 软件规范开发辅助方法以及软件规范开发辅助装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012181988A JP5970292B2 (ja) 2012-08-21 2012-08-21 ソフトウェア仕様開発支援方法及びソフトウェア仕様開発支援装置

Publications (2)

Publication Number Publication Date
JP2014041394A JP2014041394A (ja) 2014-03-06
JP5970292B2 true JP5970292B2 (ja) 2016-08-17

Family

ID=50212795

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012181988A Active JP5970292B2 (ja) 2012-08-21 2012-08-21 ソフトウェア仕様開発支援方法及びソフトウェア仕様開発支援装置

Country Status (2)

Country Link
JP (1) JP5970292B2 (ja)
CN (1) CN103631710B (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6247976B2 (ja) * 2014-03-28 2017-12-13 株式会社日立製作所 ルール管理支援装置、およびルール管理支援方法
JP6268062B2 (ja) * 2014-08-20 2018-01-24 株式会社日立製作所 ソフトウェア仕様抽出装置、方法、及びプログラム
JP6394283B2 (ja) * 2014-10-30 2018-09-26 富士通株式会社 ルール表確認支援方法、ルール表確認支援プログラム、およびルール表確認支援装置
JP6254302B2 (ja) * 2015-01-06 2017-12-27 株式会社日立製作所 ルール整合性検証装置およびルール整合性検証方法
WO2016129073A1 (ja) * 2015-02-12 2016-08-18 株式会社日立製作所 ルール管理支援装置、およびルール管理支援方法
KR102299171B1 (ko) * 2017-06-29 2021-09-07 아마존 테크놀로지스, 인크. 보안 정책 분석기 서비스 및 만족성 엔진
JP6904914B2 (ja) * 2018-02-02 2021-07-21 株式会社日立製作所 決定表生成装置、及び決定表生成方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4629183B2 (ja) * 1999-04-07 2011-02-09 新日鉄ソリューションズ株式会社 要求仕様記述支援装置およびその方法、記録媒体
CN1512399A (zh) * 2002-12-27 2004-07-14 鸿富锦精密工业(深圳)有限公司 信息报表生成***和方法
JP4351186B2 (ja) * 2005-05-19 2009-10-28 富士通株式会社 仕様書確認方法、仕様書確認プログラム、該プログラムを記録した記録媒体、および仕様書確認装置
JP4905119B2 (ja) * 2006-12-26 2012-03-28 富士電機株式会社 仕様書作成支援装置および方法
JP5179207B2 (ja) * 2008-01-28 2013-04-10 株式会社日立製作所 ソフトウェア開発支援の装置、そのプログラム、及び方法
US20110041116A1 (en) * 2009-08-14 2011-02-17 Gm Global Technology Operations, Inc. Formal analysis driven based evolution of requirements specifications

Also Published As

Publication number Publication date
CN103631710B (zh) 2016-08-24
JP2014041394A (ja) 2014-03-06
CN103631710A (zh) 2014-03-12

Similar Documents

Publication Publication Date Title
JP5970292B2 (ja) ソフトウェア仕様開発支援方法及びソフトウェア仕様開発支援装置
US8571891B2 (en) Asistance for clinical trial protocols
JP3259928B2 (ja) 業務仕様ハンドリング装置
EP3455713A1 (en) Data flow design with static and dynamic elements
US20130311483A1 (en) Method and system for accurate medical-code translation
US20110004834A1 (en) Intuitive visualization of boolean expressions using flows
JP2019133645A (ja) 構造化文書の内容をチャットベースのインタラクションに翻訳するための半自動化された方法及びシステム、プログラム
US20150074045A1 (en) Business Rule Management System
CN118176508A (zh) 复制粘贴更新编辑自动化
JP6692281B2 (ja) テストケース生成装置、及びテストケース生成方法
US20060107220A1 (en) Method and system for displaying an annotated file
JP5460629B2 (ja) 表形式ソフトウェア仕様作成支援方法、及び装置
JP3186117B2 (ja) データ中心型ソフトウエア部品によるプログラム自動生成システム
Wojszczyk et al. The process of verifying the implementation of design patterns—used data models
Maldonado et al. A platform for exploration into chaining of web services for clinical data transformation and reasoning
JP5826099B2 (ja) ソフトウェア評価支援装置及びプログラム
Schulman Managing your patients' data in the neonatal and pediatric ICU: an introduction to databases and statistical analysis
Bir et al. Making Evidence Actionable: Interactive Dashboards, Bayes, and Health Care Innovation
US20240152368A1 (en) User interface mode control for suggestion review
Kumar et al. Value matrix: From value to quality and architecture
JP6904914B2 (ja) 決定表生成装置、及び決定表生成方法
US12008006B1 (en) Assessments based on data that changes retroactively
JP4663526B2 (ja) 帳票作成支援装置、帳票作成支援方法、および帳票作成支援プログラム
US7683902B1 (en) Method to visualize performance data of a multi-layered state diagram
JP2003108405A (ja) 試験仕様の作成支援装置及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151023

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151201

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160115

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160711

R151 Written notification of patent or utility model registration

Ref document number: 5970292

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151