(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024104241
(43)【公開日】2024-08-02
(54)【発明の名称】仕様検証支援装置、方法、およびプログラム
(51)【国際特許分類】
G06F 11/36 20060101AFI20240726BHJP
G06F 8/10 20180101ALI20240726BHJP
G06F 8/20 20180101ALI20240726BHJP
【FI】
G06F11/36 104
G06F8/10
G06F8/20
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2023008378
(22)【出願日】2023-01-23
(71)【出願人】
【識別番号】505194686
【氏名又は名称】株式会社日立ソリューションズ西日本
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】戸田 恵介
【テーマコード(参考)】
5B042
5B376
【Fターム(参考)】
5B042HH08
5B376BC02
5B376BC32
(57)【要約】
【課題】システム仕様の検証における誤りの見落としを低減する
【解決手段】情報システムの仕様検証を支援する仕様検証支援装置が、複数のモデルのそれぞれにイベントによる状態の遷移を規定するものであり前記イベントにはモデルの状態遷移により他のモデルに発生するイベントが含まれる状態遷移仕様と、イベントについて当該イベントが発生した場合に違反とすべき違反事項を規定したイベント制約とについて登録を受け付ける仕様登録部と、前記状態遷移仕様において前記違反事項に該当するイベントの発生がないか検証する仕様検証部と、を有する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
情報システムの仕様検証を支援する仕様検証支援装置であって、
複数のモデルのそれぞれにイベントによる状態の遷移を規定するものであり前記イベントにはモデルの状態遷移により他のモデルに発生するイベントが含まれる状態遷移仕様と、イベントについて当該イベントが発生した場合に違反とすべき違反事項を規定したイベント制約とについて登録を受け付ける仕様登録部と、
前記状態遷移仕様において前記違反事項に該当するイベントの発生がないか検証する仕様検証部と、
を有する、仕様検証支援装置。
【請求項2】
前記状態遷移仕様と比較するための比較用状態遷移仕様を予め記憶し、前記状態遷移仕様と前記比較用状態遷移仕様とを比較して差異を抽出する仕様比較部を更に有する、
請求項1に記載の仕様検証支援装置。
【請求項3】
前記仕様比較部は、
前記状態遷移仕様に存在するモデルの一覧と前記比較用状態遷移仕様に存在するモデルの一覧とを比較してモデルの過不足を抽出するモデル構成比較と、
前記状態遷移仕様に存在する各モデルについて当該モデルに対応する前記比較用状態遷移仕様に存在するモデルとイベントの一覧を比較してイベントの過不足を抽出するイベント構成比較と、
前記状態遷移仕様に存在する各モデルについて当該モデルに対応する前記比較用状態遷移仕様に存在するモデルと状態の一覧を比較して状態の過不足を抽出する状態構成比較と、
前記状態遷移仕様に存在する各モデルについて、当該モデルに対応する前記比較用状態遷移仕様に存在するモデルと、互いに対応するイベントに対する遷移先の状態を比較して遷移先の差異を抽出する遷移先比較と、
の少なくとも1つを実行する、
請求項2に記載の仕様検証支援装置。
【請求項4】
前記比較用状態遷移仕様に対応するイベント制約である比較用イベント制約を予め更に記憶し、
前記仕様比較部は、前記状態遷移仕様に対応するイベント制約と、前記比較用イベント制約との違反事項の一覧を比較して違反事項の過不足を抽出する制約比較を更に実行する、
請求項2に記載の仕様検証支援装置。
【請求項5】
前記イベント制約は、複数のイベントの発生の順序を規定する第1制約を含み、
前記仕様検証部は、前記状態遷移仕様において前記第1制約に規定された順序と異なる順序でイベントが発生することがあるか否か確認する、
請求項1に記載の仕様検証支援装置。
【請求項6】
前記イベント制約は、イベントの発生する時期を規定する第2制約を含み、
前記仕様検証部は、前記状態遷移仕様において前記第2制約に規定された時期と異なる時期にイベントが発生することがあるか否か確認する、
請求項1に記載の仕様検証支援装置。
【請求項7】
前記モデルには、イベントの発生に応じて、情報の生成、参照、更新、または削除を行うモデルが含まれ、
前記イベント制約は、モデルによる情報の作成、読み出し、更新、削除の順序を規定する第3制約を含み、
前記仕様検証部は、前記状態遷移仕様において前記第3制約に規定された順序と異なる順序で情報の作成、読み出し、更新、または削除が行われることがあるか否か確認する、
請求項1に記載の仕様検証支援装置。
【請求項8】
前記状態遷移仕様は、モデルの特定の状態から派生する副次的な状態を前記モデルの副モデルの状態として遷移を規定する、
請求項1に記載の仕様検証支援装置。
【請求項9】
前記副モデルには、イベントの発生に応じて、情報の生成、参照、更新、または削除を行うモデルが含まれ、
前記イベント制約は、副モデルによる情報の作成、読み出し、更新、削除の順序を規定する第4制約を含み、
前記仕様検証部は、前記状態遷移仕様において前記第4制約に規定された順序と異なる順序で情報の作成、読み出し、更新、または削除が行われることがあるか否か確認する、
請求項8に記載の仕様検証支援装置。
【請求項10】
前記仕様登録部は、モデルへのイベントに対応する業務手続に複数の手続結果が存在する場合に、前記状態遷移仕様において、前記モデルへの前記イベントを前記手続結果に対応する複数のイベントに分割し、前記イベントが複数に分割されたことに伴って追加となる状態と、該追加となる状態に関連する状態の遷移とを前記状態遷移仕様に登録することを受け付ける、
請求項1に記載の仕様検証支援装置。
【請求項11】
情報システムの仕様検証を支援する仕様検証支援方法であって、
プロセッサとメモリとを備える装置が、
複数のモデルのそれぞれにイベントによる状態の遷移を規定するものであり前記イベントにはモデルの状態遷移により他のモデルに発生するイベントが含まれる状態遷移仕様と、イベントについて当該イベントが発生した場合に違反とすべき違反事項を規定したイベント制約とについて登録を受け付け、
前記状態遷移仕様において前記違反事項に該当するイベントの発生がないか検証する、
ことを実行する、仕様検証支援方法。
【請求項12】
情報システムの仕様検証を支援する仕様検証支援プログラムであって、
プロセッサとメモリとを備える装置に、
複数のモデルのそれぞれにイベントによる状態の遷移を規定するものであり前記イベントにはモデルの状態遷移により他のモデルに発生するイベントが含まれる状態遷移仕様と、イベントについて当該イベントが発生した場合に違反とすべき違反事項を規定したイベント制約とについて登録を受け付け、
前記状態遷移仕様において前記違反事項に該当するイベントの発生がないか検証する、
ことを実行させるための、仕様検証支援プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報システムのシステム仕様を検証する技術に関する。
【背景技術】
【0002】
情報システムの開発においては、情報システムを調達する依頼者の要求を開発者が聞き取ってシステム仕様として記述し、依頼者と開発者とでシステム仕様を確認したうえで、システム仕様に従って情報システムを設計し作成する。システム仕様の誤りは情報システムの不具合の原因となるため、システム開発においてシステム仕様の検証は重要である。
【0003】
システム仕様の記述には状態遷移モデルが用いられる場合がある。状態遷移モデルは、情報システムを構成する各オブジェクトについて、オブジェクトが取り得る状態と、オブジェクトに対して発生するイベントと、イベントによる状態の遷移とを表現するモデルである。状態遷移モデルは状態遷移図や状態遷移表として記述される。
【0004】
特許文献1には、状態遷移表を編集するための装置が開示されている。特許文献1の状態遷移表編集装置は、システムの検証者が、シーケンス図に基づく観点によって、状態遷移仕様の簡略化を指定することができるようにし、その検証者が、正しく状態遷移仕様の簡略化を行えるようにするものである。状態遷移表編集装置は、シーケンス図を表示し、状態遷移表の縮退の観点とシーケンス図における縮退対象部分とを入力させ、入力された状態遷移表の縮退の観点とシーケンス図における縮退対象部分とに基づいて、状態遷移表の縮退内容を決定し、オリジナル状態遷移表を表すデータから、縮退後の状態遷移表のデータを生成する。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1の開示によれば、検証者が指定した観点によって状態遷移表を簡略化することによりシステムの検証を支援することができる。しかしながら、システム仕様に状態遷移モデルが示されるオブジェクトは個々に独立したものとして管理される。そのため、オブジェクトやその状態の個数が増えると、状態や遷移の抜け漏れ、状態間の矛盾などシステム仕様に内在する誤りが見落とされる場合がある。
【0007】
本開示に含まれるひとつの目的は、システム仕様の検証において誤りの見落としの低減を可能にする技術を提供することである。
【課題を解決するための手段】
【0008】
本開示に含まれるひとつの態様による仕様検証支援装置は、情報システムの仕様検証を支援する仕様検証支援装置であって、複数のモデルのそれぞれにイベントによる状態の遷移を規定するものであり前記イベントにはモデルの状態遷移により他のモデルに発生するイベントが含まれる状態遷移仕様と、イベントについて当該イベントが発生した場合に違反とすべき違反事項を規定したイベント制約とについて登録を受け付ける仕様登録部と、前記状態遷移仕様において前記違反事項に該当するイベントの発生がないか検証する仕様検証部と、を有する。
【0009】
本開示に含まれるひとつの態様による仕様検証支援方法は、情報システムの仕様検証を支援する仕様検証支援方法であって、プロセッサとメモリとを備える装置が、複数のモデルのそれぞれにイベントによる状態の遷移を規定するものであり前記イベントにはモデルの状態遷移により他のモデルに発生するイベントが含まれる状態遷移仕様と、イベントについて当該イベントが発生した場合に違反とすべき違反事項を規定したイベント制約とについて登録を受け付け、前記状態遷移仕様において前記違反事項に該当するイベントの発生がないか検証する、ことを実行する。
【0010】
本開示に含まれるひとつの態様による仕様検証支援プログラムは、情報システムの仕様検証を支援する仕様検証支援プログラムであって、プロセッサとメモリとを備える装置に、複数のモデルのそれぞれにイベントによる状態の遷移を規定するものであり前記イベントにはモデルの状態遷移により他のモデルに発生するイベントが含まれる状態遷移仕様と、イベントについて当該イベントが発生した場合に違反とすべき違反事項を規定したイベント制約とについて登録を受け付け、前記状態遷移仕様において前記違反事項に該当するイベントの発生がないか検証する、ことを実行させる。
【発明の効果】
【0011】
本開示のひとつの態様によれば、システム仕様の検証において違反の見落としを低減することが可能となる。
【図面の簡単な説明】
【0012】
【
図1】本開示の実施形態の少なくとも一つに対応する、仕様検証支援装置のハードウェア構成例を示す概念図である。
【
図2】本開示の実施形態の少なくとも一つに対応する、定式化仕様データの内部構造を示す概念図である。
【
図3】本開示の実施形態の少なくとも一つに対応する、システム仕様確定プロセスを例示するフローチャートである。
【
図4】本開示の実施形態の少なくとも一つに対応する、定式化仕様データのフォーマットを例示する概念図である。
【
図5】本開示の実施形態の少なくとも一つに対応する、システム仕様登録を例示するフローチャートである。
【
図6】本開示の実施形態の少なくとも一つに対応する、システム仕様登録を例示するフローチャートである。
【
図7】本開示の実施形態の少なくとも一つに対応する、イベント登録(標準)処理を例示するフローチャートである。
【
図8】本開示の実施形態の少なくとも一つに対応する、イベント登録(標準)処理の処理例を示す図である。
【
図9】本開示の実施形態の少なくとも一つに対応する、イベント登録(例外)処理を例示するフローチャートである。
【
図10】本開示の実施形態の少なくとも一つに対応する、イベント登録(例外)処理の処理例を示す図である。
【
図11】本開示の実施形態の少なくとも一つに対応する、イベント登録(副イベント)処理を例示するフローチャートである。
【
図12】本開示の実施形態の少なくとも一つに対応する、イベント登録(副イベント)処理の処理例を示す図である。
【
図13】本開示の実施形態の少なくとも一つに対応する、イベント登録(手続き結果)処理を例示するフローチャートである。
【
図14】本開示の実施形態の少なくとも一つに対応する、イベント登録(手続き結果)処理の処理例を示す図である。
【
図15】本開示の実施形態の少なくとも一つに対応する、制約条件登録処理を例示するフローチャートである。
【
図16】本開示の実施形態の少なくとも一つに対応する、システム検証処理を例示するフローチャートである。
【
図17】本開示の実施形態の少なくとも一つに対応する、仕様検証結果データのフォーマットを例示する概念図である。
【
図18】本開示の実施形態の少なくとも一つに対応する、システム比較検証処理を例示するフローチャートである。
【
図19】本開示の実施形態の少なくとも一つに対応する、仕様比較結果データのフォーマットを例示する概念図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施形態について図面を参照して説明する。なお以下に説明する実施例は、特許請求の範囲に係る発明を限定するものではない。また実施例において説明されている諸要素およびその組み合わせの全ては発明の解決手段に必須であるとは限らない。
【0014】
図1は、本開示の実施形態の少なくとも一つに対応する、仕様検証支援装置のハードウェア構成例を示す概念図である。
【0015】
仕様検証支援装置1は、図示を省略するプロセッサとメモリとを備える。
【0016】
プロセッサは、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)、FPGA(Field-Programmable Gate Array)等で構成される。
【0017】
メモリは、プログラムやデータを記憶する装置であり、例えば、Random Access Memory(RAM)、Read Only Memory(ROM)、不揮発性半導体メモリ(Non-Volatile RAM(NVRAM))である。
【0018】
メモリは、例えば、Hard Disc Drive(HDD)、Solid State Drive(SSD)、ストレージシステム、Integrated Circuit(IC)カード、Secure Digital(SD)メモリカードや光学式記録媒体(Compact Disc(CD)、Digital Versatile Disc(DVD)など)などの記録媒体の読み取りおよび書き込み装置であってもよい。
【0019】
プロセッサが、メモリに格納されている仕様検証支援プログラム等の各種プログラムを読み出して実行することにより、データ管理部10と、仕様登録部20と、仕様検証部30と、仕様比較部40とを実現する。
【0020】
データ管理部10は、仕様検証支援装置1が備えるメモリまたは仕様検証支援装置1から見た外部装置が備える記憶装置に保存されたデータである、システム仕様110と、仕様検証結果データ120と、仕様比較結果データ130とを管理する。
【0021】
システム仕様110は、1以上の情報システムに対応する、定式化仕様データを含む。定式化仕様データとは、情報システムの仕様に係るデータが、所定の基準に従って一つのデータ構造として定式化されたものをいう。情報システムの仕様に係るデータとは、例えば自然文形式のデータやUML形式のデータ等を意味するが、これらの形式のデータには限られない。図示した例においては、システム仕様110は、システム1用の定式化仕様データ111と、システム2用の定式化仕様データ112とを含む。システム仕様110は、他のシステム用の定式化仕様データを同様に含んでいてもよい。
【0022】
仕様登録部20は、複数のモデルのそれぞれにイベントによる状態の遷移を規定するものであり前記イベントにはモデルの状態遷移により他のモデルに発生するイベントが含まれる状態遷移仕様111Aと、イベントについて当該イベントが発生した場合に違反とすべき違反事項を規定したイベント制約111Bとについて登録を受け付ける。
【0023】
すなわち、状態遷移仕様111Aとイベント制約111Bは、仕様登録部20が登録したデータである。
【0024】
仕様検証部30は、状態遷移仕様111Aにおいて違反事項に該当するイベントの発生がないかを検証する。
【0025】
すなわち仕様検証部30は、状態遷移仕様111Aとイベント制約111Bのデータを取得し、状態遷移仕様111Aにおいて、イベント制約111Bによって規定される違反事項に該当するイベントの発生の有無を検証し、結果を仕様検証結果データ120として出力する。
【0026】
仕様比較部40は、状態遷移仕様111Aと比較するための比較用状態遷移仕様を予め記憶し、状態遷移仕様111Aと比較用状態遷移仕様とを比較して差異を抽出する。
【0027】
仕様比較部40は、複数の仕様の間で、状態遷移仕様を比較する。
図1においては、システム1定式化仕様データ111に含まれる状態遷移仕様111Aと、システム2定式化仕様データ112に含まれる状態遷移仕様(比較用状態遷移仕様に相当)とを比較する。ここで、仕様登録部20が登録したシステム1定式化仕様データ111およびシステム2定式化仕様データ112は、いずれも所定の基準に従って定式化されている。そのため、前述の比較を機械的に行うことが可能となる。仕様比較部40は、比較結果、すなわち状態遷移仕様と比較用状態遷移仕様との比較によって抽出された差異に係るデータを、仕様比較結果データ130として出力する。
【0028】
仕様検証支援装置1は、上述の構成要素の他に、入力装置と、出力装置と、通信装置とのうち少なくとも一つ以上を備えてもよい。仕様検証支援装置1が備えるプロセッサ、メモリ、入力装置、出力装置、および通信装置は、バスなどの通信手段を介して互いに通信可能に接続されている。
【0029】
入力装置はユーザからの入力を受け付ける装置である。入力装置は、例えば、キーボード、マウス、タッチパネル、カードリーダ、音声入力装置等である。
【0030】
出力装置はユーザに処理経過や処理結果などの各種情報を提供する装置である。出力装置は、例えば、画面表示装置(Liquid Crystal Display(LCD)、Head Mounted Display(HMD)など)、音声出力装置、印字装置等である。
【0031】
通信装置は、Local Area Network(LAN)やInternetなどの通信手段を介した他の装置との間の通信を実現する有線または無線方式の通信インターフェースであり、例えば、Network Interface Card(NIC)、無線通信モジュール、Universal Serial Interface(USB)モジュール、シリアル通信モジュールである。
【0032】
なお、仕様検証支援装置1は通信装置を介して、他の装置との間で情報の入力や出力を行う構成としてもよい。
【0033】
図2は、本開示の実施形態の少なくとも一つに対応する、定式化仕様データの内部構造を示す概念図である。
【0034】
図2の定式化仕様データは、例えば
図1のシステム1定式化仕様データ111などに対応する。1つの情報システムの仕様を、少なくとも、複数のモデルと、モデル間イベントとに基づいて表現したものが、定式化仕様データである。
【0035】
モデルは、例えば電子商取引システムにおける「受注」などの1つの処理のまとまりに対応する。モデルは、状態遷移仕様データと、イベント制約データとを含む。モデルとモデルとの間が、モデル間イベントによって接続される。
【0036】
状態遷移仕様データは、複数のモデルのそれぞれにイベントによる状態の遷移を規定するデータである。イベントは、情報システムにおいて発生する何らかのイベントやアクションを意味する。例えば、商品の発送OKを示すメッセージを受信することや、商品の発送指示を示すメッセージを他の処理部、装置またはシステムに送信すること等が、ここでいうイベントに該当する。イベントには、モデルの状態遷移により、他のモデルに発生するイベントが含まれる。
【0037】
イベント制約データは、イベントについて当該イベントが発生した場合に違反とすべき違反事項を規定したデータである。
【0038】
図2に概念的に示したように、情報システムの仕様が、複数のモデルをモデル間イベントで接続するという所定の基準によって定式化されることにより、その仕様における考慮抜けや漏れを発見しやすくなる。また、上述のように定式化された仕様データは、統一された基準によって構造化されているものであるため、複数の情報システムの間で仕様の比較をすることが容易となる。なお、このような定式化仕様データのより具体的なフォーマットの例については、
図4に基づいて後述する。
【0039】
図3は、本開示の実施形態の少なくとも一つに対応する、システム仕様確定プロセスを例示するフローチャートである。以下、仕様検証支援装置1、仕様登録部20、仕様検証部30、または仕様比較部40を処理主体として記載する各処理は、各処理主体が機械的に処理を行うものであってもよく、必要に応じて担当者などのユーザに対しユーザ入力を求めて、ユーザが入力した情報を利用して処理を行うものであってもよい。
【0040】
担当者(人間)が、情報システムのシステム仕様を自由形式で記述する(S11)。自由形式は、例えばUML形式や自然文形式などであってよい。
【0041】
仕様登録部20はシステム仕様登録を行う(S12)。システム仕様は定式化された形式で登録される。ステップS12の詳細な処理については後述する。
【0042】
仕様検証部30はシステム仕様検証を行う(S13)。ステップS13の詳細な処理については後述する。
【0043】
仕様比較部40はシステム仕様比較検証を行う(S14)。ステップS14の詳細な処理については後述する。
【0044】
図4は、本開示の実施形態の少なくとも一つに対応する、定式化仕様データのフォーマットを例示する概念図である。
【0045】
定式化仕様データは、イベント情報と、モデル情報と、状態遷移情報と、イベント制約情報とを含む。なお、状態遷移情報は
図1の状態遷移仕様111Aに、イベント制約情報は
図1のイベント制約111Bに、それぞれ対応する。
【0046】
イベント情報は項目として、イベント名と、業務手続名と、モデル名と、標準/例外区分と、主/副区分とを有する。
【0047】
モデル情報は項目として、モデル名を有する。
【0048】
状態遷移情報は項目として、イベント名と、業務手続名と、モデル名と、状態名と、イベント結果と、遷移先状態名とを有する。
【0049】
イベント制約情報は報項目として、イベント名と、業務手続名と、制約種別と、制約内容とを有する。
【0050】
図5は、本開示の実施形態の少なくとも一つに対応する、システム仕様登録を例示するフローチャートである。
図6は、本開示の実施形態の少なくとも一つに対応する、システム仕様登録を例示するフローチャートである。
図5および
図6に記載のシステム仕様登録処理は、
図3のステップS12に相当する。
【0051】
まず、仕様登録部20が、自由形式の仕様記述から、イベントを取出す(S21)。
【0052】
仕様登録部20は、当該イベントの対象となるモデルが既にあるか否かを判定する(S22)。既にある場合はステップS23に、ない場合はステップS24に、処理がそれぞれ遷移する。
【0053】
ステップS23において仕様登録部20は、既に存在するモデルを、当該イベントの対象となるモデルとして決定する。
【0054】
ステップS24において仕様登録部20は、当該イベントの対象となるモデルを新規登録する。
【0055】
ステップS25において仕様登録部20は、業務手続名を決定する。ステップS26において仕様登録部20は、イベント名を決定する。
【0056】
仕様登録部20は、当該イベントは正常時に必要な処理か否かを判定する(S27)。当該イベントが正常時には必ず行う処理である場合は、ステップS28に処理が遷移し、仕様登録部20が当該イベントの標準/例外区分を「標準」と決定する。当該イベントが、エラー発生時に行う処理であるか、又は、正常時の処理だが必ず行うとは限らない処理である場合は、ステップS29に処理が遷移し、仕様登録部20が当該イベントの標準/例外区分を「例外」と決定する。
【0057】
ステップS28またはS29の後、
図6に示すステップS31へと処理が遷移する。
【0058】
ステップS31において仕様登録部20は、当該イベントは対象となるモデルの一部の属性の状態を変更するイベントであるか否かを判断する。当該イベントがモデルの状態を変更するイベントである場合は、ステップS32に処理が遷移し、仕様登録部20が当該イベントの主/副区分を「主イベント」と決定する。当該イベントがモデルの一部の属性の状態を変更するイベントである場合は、ステップS33に処理が遷移し、仕様登録部20が当該イベントの主/副区分を「副イベント」と決定する。
【0059】
なお、イベントの主/副区分の区分けは必須ではない。ある複数のイベントについて、モデルの一部の属性の状態を変更するにすぎないような場合にまで、それぞれのイベントを別種類のイベントであると解釈した場合、イベントの種類が膨大となり、処理負荷が大きくなる。これを避ける観点から、モデルの一部の属性の状態を変更するにすぎないようなイベントについては、主イベントから派生した副イベントとして管理する。これにより、処理負荷の増大を抑えることができる。
【0060】
ステップS34において仕様登録部20は、自由形式の仕様記述に、未処理のイベントがあるか否かを判定する。未処理のイベントが残っている場合、
図5のステップS21へと処理が遷移し、仕様登録部20が未処理の次のイベントを取出して処理を行う。未処理のイベントが残っていない場合、ステップS35へと処理が遷移する。
【0061】
仕様登録部20は、イベント登録(標準)処理を行う(S35)。仕様登録部20は、イベント登録(例外)処理を行う(S36)。仕様登録部20は、イベント登録(副イベント)処理を行う(S37)。
【0062】
仕様登録部20は、イベント登録(手続き結果)処理を行う(S38)。仕様登録部20は、制約条件登録処理を行う(S39)。
【0063】
ステップS35からS39の詳細な処理については、それぞれ後述する。
【0064】
図7は、本開示の実施形態の少なくとも一つに対応する、イベント登録(標準)処理を例示するフローチャートである。なお、イベント登録(標準)処理は、
図6のステップS35に相当する。
【0065】
仕様登録部20は、対象モデルにイベント(標準)を登録する(S41)。
【0066】
仕様登録部20は、未登録のイベントがあるか否かを判定する(S42)。未登録のイベントがある場合、ステップS41に戻って仕様登録部20が次のイベントを登録する。未登録のイベントがない場合、ステップS43に処理が遷移する。
【0067】
ステップS43において仕様登録部20は、イベントによるモデルの状態遷移を決定する。すなわち、そのイベントにより、対象とするモデルの状態がどのように遷移するのかを決定する。この決定処理は、仕様登録部20が担当者に、イベントによるモデルの状態遷移を入力または選択させるような情報をモニタなどの出力装置に出力し、ユーザ入力を受け付ける等の手段によって行われてよい。例えば、担当者は入力装置を用いてイベント間の順序を指定する。仕様登録部20は、指定された順序に応じて状態遷移を決定する。
【0068】
仕様登録部20は、状態遷移が未登録のイベントがあるか否かを判定する(S44)。状態遷移が未登録のイベントがある場合、ステップS43に処理が戻る。状態遷移が未登録のイベントがない場合、
図7に示した処理は終了となる。
【0069】
図8は、本開示の実施形態の少なくとも一つに対応する、イベント登録(標準)処理の処理例を示す図である。モデル(注文)に、番号1から番号5までの標準イベントを追加した場合を例示している。
【0070】
モデル(注文)の状態は、初期状態のS0、受注状態のS1、在庫確認済状態のS2、発送準備済状態のS3、発送済状態のS4、および完了状態のS5の、計6種類の状態があり、何らかのイベントの発生に応じて、状態が遷移する。
【0071】
モデル(注文)に、
図7に示したフローに従ってイベントが5つ登録された。例えば、番号1として、以下のようなイベントが登録された。
イベント:注文発生
業務手続:受注入力
モデル:注文
標準/例外区分:標準
【0072】
同様に番号2から番号5までのイベントも登録された結果が、
図8には示されている。登録されたデータにおける「手続き結果」の欄はこの時点で空欄である。状態遷移(
図8のステップS43参照)の欄には、
図8に示されているような設定値が設定される。例えば、状態S0においてイベント「注文発生」が起こった場合、状態はS0からS1へと遷移する。状態遷移の欄における「E」は、エラーを意味している。例えば状態S4(発送済み)において、発送準備イベントが発生するのはおかしい。このような場合、情報システムは何らかのエラー処理を行う必要があるので、状態遷移の欄には設定値として「E」を設定する。状態遷移の欄における設定値「-」は、そもそも当該状態遷移が起こり得ないことを示している。
【0073】
図9は、本開示の実施形態の少なくとも一つに対応する、イベント登録(例外)処理を例示するフローチャートである。なお、イベント登録(例外)処理は、
図6のステップS36に相当する。
【0074】
仕様登録部20は、対象モデルにイベント(例外)を登録する(S51)。
【0075】
仕様登録部20は、未登録のイベントがあるか否かを判定する(S52)。未登録のイベントがある場合、ステップS51に戻って仕様登録部20が次のイベントを登録する。未登録のイベントがない場合、ステップS53に処理が遷移する。
【0076】
ステップS53において仕様登録部20は、イベント(例外)によるモデルの状態遷移を決定する。すなわち、その例外イベントにより、対象とするモデルの状態がどのように遷移するのかを決定する。この決定処理は、仕様登録部20が担当者に、イベントによるモデルの状態遷移を入力または選択させるような情報をモニタなどの出力装置に出力し、ユーザ入力を受け付ける等の手段によって行われてよい。例えば、担当者は入力装置を用いてイベント間の順序を指定する。仕様登録部20は、指定された順序に応じて状態遷移を決定する。
【0077】
仕様登録部20は、状態遷移が未登録のイベントがあるか否かを判定する(S54)。状態遷移が未登録のイベントがある場合、ステップS53に処理が戻る。状態遷移が未登録のイベントがない場合、ステップS55に処理が遷移する。
【0078】
ステップS55において仕様登録部20は、イベント(例外)によりモデルに追加される状態があるか否かを判定する。追加される状態がある場合はステップS56に処理が遷移する。追加される状態がない場合、
図9に示した処理は終了となる。
【0079】
ステップS56において仕様登録部20は、モデルに状態を追加し、イベント(標準)による状態の遷移を決定する。
【0080】
図10は、本開示の実施形態の少なくとも一つに対応する、イベント登録(例外)処理の処理例を示す図である。モデル(注文)に、番号6の例外イベントを追加した場合を例示している。
【0081】
モデル(注文)の状態は、上述したように初期状態のS0、受注状態のS1、在庫確認済状態のS2、発送準備済状態のS3、発送済状態のS4、および完了状態のS5の計6種類の状態があり、何らかのイベントの発生に応じて、状態が遷移する。モデル(注文)には、
図7に示したフローに従って標準イベントが既に5つ登録済みである。
【0082】
モデル(注文)に、
図9に示したフローに従って例外イベントが新たに1つ登録された。例えば、番号6として、以下のようなイベントが登録された。
【0083】
イベント:キャンセル
業務手続:-
モデル:注文
標準/例外区分:例外
【0084】
番号6の例外イベントが登録された結果が、
図10に示されている。登録されたデータにおける「手続き結果」の欄はこの時点で空欄である。状態遷移の欄における設定値「E」「-」などの意味は、
図8を参照して上述したものと同じであるため、詳しい説明は省略する。
【0085】
なお、例外イベントによって、モデルの状態遷移に追加が必要な場合は、追加が行われる(
図9のステップS56参照)。図示は省略するが、例えば状態S6が新たに追加される。このとき仕様登録部20は、状態S6についての状態遷移も決定する。言い換えると、状態S6の欄にも設定値を設定する。
【0086】
図11は、本開示の実施形態の少なくとも一つに対応する、イベント登録(副イベント)処理を例示するフローチャートである。なお、イベント登録(副イベント)処理は、
図6のステップS37に相当する。
【0087】
仕様登録部20は、対象モデルと副モデルに副イベントを登録する(S61)。なお、副モデルについては
図12を参照して後述する。
【0088】
仕様登録部20は、未登録の副イベントがあるか否かを判定する(S62)。未登録の副イベントがある場合、ステップS61に戻って仕様登録部20が次の副イベントを登録する。未登録の副イベントがない場合、ステップS63に処理が遷移する。
【0089】
ステップS63において仕様登録部20は、副イベントによる対象モデルの状態遷移を決定する。すなわち、その副イベントにより、対象とするモデルの状態がどのように遷移するのかを決定する。この決定処理は、仕様検証支援装置1が担当者に、副イベントによるモデルの状態遷移を入力または選択させるような情報をモニタなどの出力装置に出力し、ユーザ入力を受け付ける等の手段によって行われてよい。例えば、担当者は入力装置を用いてイベント間の順序を指定する。仕様登録部20は、指定された順序に応じて状態遷移を決定する。
【0090】
仕様登録部20は、対象モデルに遷移先(状態遷移)が未登録の副イベントがあるか否かを判定する(S64)。遷移先(状態遷移)が未登録の副イベントがある場合、ステップS63に処理が戻る。遷移先(状態遷移)が未登録の副イベントがない場合、ステップS65に処理が遷移する。
【0091】
ステップS65において仕様登録部20は、副イベントによる副モデルの状態遷移を決定する。すなわち、その副イベントにより、対象とする副モデルの状態がどのように遷移するのかを決定する。この決定処理は、仕様登録部20が担当者に、副イベントによる副モデルの状態遷移を入力または選択させるような情報をモニタなどの出力装置に出力し、ユーザ入力を受け付ける等の手段によって行われてよい。例えば、担当者は入力装置を用いてイベント間の順序を指定する。仕様登録部20は、指定された順序に応じて状態遷移を決定する。
【0092】
仕様登録部20は、副モデルに遷移先(状態遷移)が未登録の副イベントがあるか否かを判定する(S66)。遷移先(状態遷移)が未登録の副イベントがある場合、ステップS65に処理が戻る。遷移先(状態遷移)が未登録の副イベントがない場合、
図11に示した処理は終了となる。
【0093】
図12は、本開示の実施形態の少なくとも一つに対応する、イベント登録(副イベント)処理の処理例を示す図である。
【0094】
図10に示した登録状態から、
図11に示したイベント登録(副イベント)処理を行った結果、対象モデルにイベント「入金」とイベント「返金」とが追加された。番号7がイベント「入金」である。番号8がイベント「返金」である。また、副モデルに、対象モデルに追加されている番号1~番号8と同様のイベントが追加された。
【0095】
ここで、副モデルについて説明する。副モデルは、対象モデル(主モデル)から派生したモデルを意味する。仕様登録部20は、モデルごとに状態遷移を登録して管理するため、対象モデルの数が増加するほど、定式化仕様データ(
図2参照)は構造が複雑なものとなり、定式化仕様データに基づいた各種の処理についても処理負荷が大きなものとなる。そこで、対象モデルと一部の属性が異なるに過ぎないようなモデルについては、主モデルとしては扱わず、主モデルに従属する派生モデル(副モデル)として扱う。そして、状態遷移仕様は、モデル(主モデル)の特定の状態から派生する副次的な状態をモデルの副モデルの状態として遷移を規定する。これにより、モデルの種類の爆発的な増加が抑えられ、処理負荷を低減させることができる。
【0096】
図12に示した例においては、主モデルであるモデル(注文)の状態は、初期状態のS0、受注状態のS1、在庫確認済状態のS2、発送準備済状態のS3、発送済状態のS4、および完了状態のS5の計6種類の状態があり、何らかのイベントの発生に応じて、状態が遷移する。一方、主モデルであるモデル(注文)から派生した副モデル(入金状態)は、初期状態のSS0、入金待ち状態のSS1、入金済み状態のSS2、返金待ち状態のSS3、および返金済み状態のSS4の計5種類の状態があり、何らかのイベントの発生に応じて、状態が遷移する。
【0097】
モデル(注文)と、モデル(注文)から派生した副モデル(入金処理)に、
図11に示したフローに従って副イベントが登録された。例えば、以下のような副イベント「入金」が登録される。
【0098】
イベント:入金
業務手続:-
モデル:注文
標準/例外区分:標準
主/副区分:副
【0099】
なお、副イベント「返金」も、同様に登録される。
【0100】
これらの副イベントが登録された結果を、
図12は示している。状態遷移の欄における設定値「E」「-」などの意味は、
図8を参照して上述したものと同じであるため、詳しい説明は省略する。状態遷移の欄における設定値「(SS)」は、主モデルにおいて状態遷移が発生するのではなく、発生したイベントを副モデルの方で管理することを意味している。
【0101】
図13は、本開示の実施形態の少なくとも一つに対応する、イベント登録(手続き結果)処理を例示するフローチャートである。なお、イベント登録(手続き結果)処理は、
図6のステップS38に相当する。
【0102】
図6のステップS37の終了時点では、モデル(主モデルおよび副モデル)における手続き結果の欄は空欄であった。イベント登録(手続き結果)処理により、手続き結果の欄に設定値が設定されることになる。
【0103】
仕様登録部20は、対象モデルの手続結果を記載(設定)する(S71)。
【0104】
仕様登録部20は、対象モデルに手続結果が未記載の行があるか否かを判定する(S72)。未記載の行がある場合、ステップS71に戻って仕様登録部20が次の手続結果を記載する。未記載の行がない場合、ステップS73に処理が遷移する。
【0105】
仕様登録部20は、イベントを分割し、手続結果と状態遷移を決定する(S73)。
【0106】
仕様登録部20は、対象モデルに手続結果と状態遷移が未記載の行があるか否かを判定する(S74)。未記載の行がある場合、ステップS73に戻る。未記載の行がない場合、ステップS75に処理が遷移する。
【0107】
仕様登録部20は、対象モデルに追加する状態があるか否かを判定する(S75)。追加する状態がある場合、ステップS76に処理が遷移する。追加する状態がない場合、
図13に示した処理は終了となる。
【0108】
ステップS76において仕様登録部20は、対象モデルに状態を追加し、追加された状態について、既存(既登録)のイベントによる状態遷移を決定する(S76)。
【0109】
図14は、本開示の実施形態の少なくとも一つに対応する、イベント登録(手続き結果)処理の処理例を示す図である。
【0110】
ステップS71において、モデル「注文」の手続結果欄に記載がなされる。記載とは、設定値を設定することを意味する。ここで、イベント「発送準備」が発生した場合の情報システム側での業務手続は在庫確認である。現実には常に在庫があるとは限らないので、業務手続の手続結果は在庫ありの場合と在庫なしの場合の2つに分割される。また、着荷についても、現実には全ての荷物が届く場合と、一部の荷物だけが届く(他の一部の荷物は別のタイミングで届く)場合とがあるため、手続結果は一部着荷の場合と全部着荷の場合の2つに分割される。このように、イベント発生時の具体的な業務手続を考えるとその手続の結果が2以上の結果に分岐するような場合に、イベントの分割が行われる。
図14に示した一例として、ステップS73の処理によって、番号2のイベント「発送準備」が、番号2、番号2-1、番号2-2、および番号2-3の4つのイベントへと分割された。その上で、手続結果と状態遷移とがそれぞれ決定され、設定値として設定された。
【0111】
ステップS75において、モデル「注文」には入荷待ちの状態を追加する必要があると判定されたため、ステップS76で、状態S11(入荷待ち)が追加されている。追加された状態S11(入荷待ち)の既存のイベントによる状態遷移が設定値として設定される。ここでいう既存のイベントは、番号1~番号8の各イベントを指しており、分割後の番号2-1、2-2、2-3のイベントも更に含まれる。
【0112】
すなわち仕様登録部20は、モデルへのイベントに対応する業務手続に複数の手続結果が存在する場合に、状態遷移仕様において、モデルへのイベントを手続結果に対応する複数のイベントに分割し、イベントが複数に分割されたことに伴って追加となる状態と、該追加となる状態に関連する状態の遷移とを状態遷移仕様に登録することを受け付ける。
【0113】
図15は、本開示の実施形態の少なくとも一つに対応する、制約条件登録処理を例示するフローチャートである。なお、制約条件登録処理は、
図6のステップS39に相当する。
【0114】
仕様登録部20は、イベント制約(発生順序)を登録する(S81)。より具体的には、あるイベントの発生時には既に発生済みである必要がある、前提条件となるイベントが何であるかをシステム仕様110に登録する。例えば、入金イベントの前に、注文発生イベントが既に発生済みである必要がある。そのため、注文発生イベントが発生していないにもかかわらず、入金イベントが発生するような場合を仕様の矛盾点として抽出できるように、上記のイベント制約を登録する。
【0115】
複数のイベントの発生の順序を規定する上記のイベント制約を、第1制約と表記する。後述のステップS92において仕様検証部30は、状態遷移仕様において第1制約に規定された順序と異なる順序でイベントが発生することがあるか否か確認する。
【0116】
仕様登録部20は、イベント制約(発生時期)を登録する(S82)。より具体的には、イベントが発生する具体的な時期をシステム仕様110に登録する。これにより、登録されている時期とは異なる時期に発生したイベントを、仕様の矛盾点として抽出できるようになる。
【0117】
イベントの発生する時期を規定する上記のイベント制約を、第2制約と表記する。後述のステップS92において仕様検証部30は、状態遷移仕様において第2制約に規定された時期と異なる時期にイベントが発生することがあるか否か確認する。
【0118】
仕様登録部20は、イベント制約(モデルCRUD)を登録する(S83)。CRUDとは、作成(Create)、参照(Refer)、更新(Update)、および削除(DeleteのD)の頭文字を繋げた造語である。つまり、仕様登録部20は対象モデルについて、イベントの発生に応じた情報システムの処理において、どのような情報やオブジェクト等が作成、参照、更新または削除されるかをシステム仕様110に登録しておく。これにより、複数のイベントを時系列に沿って並べた時に、CRUDの観点から明らかに不合理な並びを仕様の矛盾点として抽出できるようになる。例えば、ある情報をまだ作成(C)していないのに、その情報を参照(R)、更新(U)、または削除(D)するようなイベントの並びは明らかに不合理である。また、ある情報を削除(D)した後に、その情報を参照(R)または更新(U)するようなイベントの並びは明らかに不合理である。このような明らかに不合理なイベントの並びとなっているか否かのチェックを行う際に、登録されたCRUDの情報が用いられる。
【0119】
すなわち、モデルには、イベントの発生に応じて、情報の生成、参照、更新、または削除を行うモデルが含まれる。モデルによる情報の作成、読み出し、更新、削除の順序を規定する上記のイベント制約を、第3制約と表記する。後述のステップS92において仕様検証部30は、状態遷移仕様において第3制約に規定された順序と異なる順序で情報の作成、読み出し、更新、または削除が行われることがあるか否か確認する。
【0120】
仕様登録部20は、イベント制約(副モデルCRUD)を登録する(S84)。登録される情報の内容は、ステップS83と同様である。ステップS84では、副モデルについて、イベントの発生に応じた情報システムの処理において、どのようなデータが作成、参照、更新または削除されるかをシステム仕様110に登録しておく。
【0121】
すなわち、副モデルには、イベントの発生に応じて、情報の生成、参照、更新、または削除を行うモデルが含まれる。副モデルによる情報の作成、読み出し、更新、削除の順序を規定するイベント制約を、第4制約と表記する。後述のステップS92において仕様検証部30は、状態遷移仕様において第4制約に規定された順序と異なる順序で情報の作成、読み出し、更新、または削除が行われることがあるか否か確認する。
【0122】
図16は、本開示の実施形態の少なくとも一つに対応する、システム検証処理を例示するフローチャートである。システム検証処理は、
図3のステップS13に相当する。
【0123】
仕様検証部30は、未設定事項をチェックする(S91)。例えば仕様検証部30は、各イベントに対して、対応する対象モデルまたは副モデルにおいて状態遷移先が設定されていない箇所があった場合に、その箇所を矛盾点として抽出する。
【0124】
仕様検証部30は、制約違反をチェックする(S92)。より具体的には、仕様検証部30は、システム仕様110に登録された定式化仕様データに基づいて、イベントと状態遷移のすべての組み合わせをチェックする。このすべての組み合わせのチェックにおいて、仕様登録部20が登録した各種のイベント制約(
図15を参照)に基づく不整合が発見された場合には、その不整合を矛盾点として抽出する。
【0125】
仕様検証部30は、矛盾点を出力する(S93)。すなわち、ステップS91またはステップS92で抽出された矛盾点を、出力装置を介して出力する。例えば出力装置がモニタである場合は、抽出された矛盾点のリストなどをチェック結果としてモニタに表示させる。
【0126】
出力された矛盾点を示す情報に基づいて、担当者が矛盾点を修正する。担当者による修正入力に基づいて、仕様登録部20が
図5から
図15を参照して上述したのと同様にして、各種の情報をシステム仕様110に登録する(S94)。
【0127】
図17は、本開示の実施形態の少なくとも一つに対応する、仕様検証結果データのフォーマットを例示する概念図である。
【0128】
仕様検証結果データ120は仕様矛盾情報を含む。仕様矛盾情報は、ステップS93の矛盾点出力処理において用いられる。
図16は、仕様矛盾情報のうち、状態遷移についての矛盾点を表現したフォーマットを示している。
【0129】
図17に示したフォーマットの仕様矛盾情報は、項目として、モデル1と、状態名1と、モデル2と、状態名2と、発生イベント名と、遷移不能理由とを有する。すなわち、モデル1のある状態(状態名1)から、モデル2のある状態(状態名2)へと遷移することに失敗した場合の、その遷移の原因となった発生イベント名と、状態遷移ができなかった理由とが、仕様矛盾情報として仕様検証結果データ120に記録される。なお、同一のモデル内での状態遷移に係る矛盾点については、モデル1もしくはモデル2の項目を空欄にするか、または、モデル1に設定されたものと同じモデルをモデル2に設定すればよい。
【0130】
なお、仕様矛盾情報のフォーマットは、
図17に示したものには限定されず、矛盾の内容に応じたフォーマットを当業者が適宜設定してよい。
【0131】
図18は、本開示の実施形態の少なくとも一つに対応する、システム仕様比較検証処理を例示するフローチャートである。システム仕様比較検証処理は、
図3のステップS14に相当する。
【0132】
仕様比較部40は、システム仕様比較処理を行う(S101)。システム仕様比較処理の詳細については後述する。システム仕様比較処理の結果は、仕様比較結果データ130として記憶され、データ管理部10が仕様比較結果データ130を管理する。
【0133】
仕様比較部40は、システム仕様の相違点を出力する(S102)。すなわち、ステップS101で抽出されたシステム仕様の相違点を、出力装置を介して出力する。例えば出力装置がモニタである場合は、抽出された相違点のリストなどをチェック結果としてモニタに表示させる。
【0134】
出力された相違点を示す情報に基づいて、担当者がシステム仕様を修正する。担当者による修正入力に基づいて、仕様登録部20が
図5から
図15を参照して上述したのと同様にして、各種の情報をシステム仕様110に登録する(S103)。
【0135】
次に、システム仕様比較処理の詳細について説明する。システム仕様比較は、
図2に示した定式化仕様データに基づいて、複数のシステムの仕様の間で行われる。例えば、
図1に示したシステム1定式化仕様データ111と、システム2定式化仕様データ112とが比較される。なお、3種類以上のシステムの仕様を同時に比較してもよい。以下は、2種類のシステムの仕様を比較する場合を例として説明する。
【0136】
仕様比較部40は、モデル構成を比較する(S111)。より具体的には、システム内に存在するモデルの一覧を、複数のシステムの仕様間で比較する。この比較は、状態遷移仕様に存在するモデルの一覧と比較用状態遷移仕様に存在するモデルの一覧とを比較してモデルの過不足を抽出するモデル構成比較に相当する。
【0137】
仕様比較部40は、イベント構成を比較する(S112)。より具体的には、各モデルに対するイベントの一覧を、複数のシステムの仕様間で比較する。この比較は、状態遷移仕様に存在する各モデルについてモデルに対応する比較用状態遷移仕様に存在するモデルとイベントの一覧を比較してイベントの過不足を抽出するイベント構成比較に相当する。
【0138】
仕様比較部40は、状態構成を比較する(S113)。より具体的には、モデル毎に状態の一覧を、複数のシステムの仕様間で比較する。この比較は、状態遷移仕様に存在する各モデルについて当該モデルに対応する比較用状態遷移仕様に存在するモデルと状態の一覧を比較して状態の過不足を抽出する状態構成比較に相当する。
【0139】
仕様比較部40は、遷移先構成を比較する(S114)。より具体的には、モデル毎に同じイベントが発生した場合の遷移先を、複数のシステムの仕様間で比較する。この比較は、状態遷移仕様に存在する各モデルについて、当該モデルに対応する比較用状態遷移仕様に存在するモデルと、互いに対応するイベントに対する遷移先の状態を比較して遷移先の差異を抽出する遷移先比較に相当する。
【0140】
仕様比較部40は、制約を比較する(S115)。より具体的には、登録されているイベント制約(違反事項)の一覧を、複数のシステムの仕様間で比較する。
【0141】
ここで、イベント制約に係るデータも含んだシステムの仕様は、上述の定式化仕様データとして、所定の基準に従ったフォーマットでシステム仕様110内に予め記憶されている。そのため仕様比較部40は、複数のシステムの仕様間での上述のような比較を、機械的に実行することができる。
【0142】
上述の制約の比較は、比較用状態遷移仕様に対応するイベント制約である比較用イベント制約を予め記憶し、仕様比較部40が、状態遷移仕様に対応するイベント制約と、比較用イベント制約との違反事項の一覧を比較して違反事項の過不足を抽出する制約比較に相当する。
【0143】
図19は、本開示の実施形態の少なくとも一つに対応する、仕様比較結果データのフォーマットを例示する概念図である。
【0144】
仕様比較結果データ130は、仕様矛盾情報と、相違点情報(モデル構成比較)と、相違点情報(イベント構成比較)と、相違点情報(状態構成比較)と、相違点情報(遷移先比較)と、相違点情報(制約比較)とを含む。なお、
図19に示した各情報の区分けおよび情報のフォーマットはあくまで一例であり、取得したい仕様比較結果の内容に応じた区分けおよびフォーマットを、当業者が適宜設定してよい。
【0145】
仕様矛盾情報は、項目として、システム名1と、システム名2と、相違点情報とを含む。仕様矛盾情報における相違点情報は、相違点情報(モデル構成比較)、相違点情報(イベント構成比較)、相違点情報(状態構成比較)、相違点情報(遷移先比較)、および相違点情報(制約比較)のうち少なくとも一以上に対応する。
【0146】
相違点情報(モデル構成比較)は、項目として、モデル名と、無い側のシステム名とを含む。例えばシステムAにはモデル「入金」があるが、システムBにはモデル「入金」がない場合、相違点情報(モデル構成比較)は、(入金,システムB)という情報になる。なお、「無い側のシステム名」という項目の扱いは、後述する他の相違点情報についても同様であるため、重複を避ける観点から以後は詳しい説明を省略する。
【0147】
相違点情報(イベント構成比較)は、項目として、イベント名と、業務手続名と、モデル名と、無い側のシステム名とを含む。
【0148】
相違点情報(状態構成比較)は、項目として、モデル名と、状態名と、無い側のシステム名とを含む。
【0149】
相違点情報(遷移先比較)は、項目として、イベント名と、業務手続名と、モデル名と、状態名と、システム1の遷移先と、システム2の遷移先とを含む。ここでいう遷移先とは、遷移先の状態(状態名)を意味する。
【0150】
相違点情報(制約比較)は、項目として、イベント名と、業務手続名と、制約種別と、制約内容と、無い側のシステム名とを含む。制約種別とは、例えば
図15における「発生順序」「発生時期」「モデルCRUD」「副モデルCRUD」などの種別を意味する。
【0151】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の範囲を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【0152】
以上のように、情報システムの仕様検証を支援する仕様検証支援装置1が、複数のモデルのそれぞれにイベントによる状態の遷移を規定するものでありイベントにはモデルの状態遷移により他のモデルに発生するイベントが含まれる状態遷移仕様111Aと、イベントについて当該イベントが発生した場合に違反とすべき違反事項を規定したイベント制約111Bとについて登録を受け付ける仕様登録部20を有する。仕様検証支援装置1が、状態遷移仕様111Aにおいて違反事項に該当するイベントの発生がないか検証する仕様検証部30を有する。これにより、モデルの状態遷移により他のモデルに発生するイベントを含めた状態遷移仕様を登録し、システム仕様の検証において、状態遷移仕様によって違反事項に該当するイベントの発生がないか確認するので、システム仕様の誤りの見落としを低減することができる。
【0153】
仕様検証支援装置1が、状態遷移仕様111Aと比較するための比較用状態遷移仕様を予め記憶し、状態遷移仕様111Aと比較用状態遷移仕様とを比較して差異を抽出する仕様比較部40を更に有する。これにより、例えば実績のある同種の情報システムの状態遷移仕様と比較して差異を提示して、システム仕様の誤りの発見を支援することができる。
【0154】
仕様比較部40は、状態遷移仕様111Aに存在するモデルの一覧と比較用状態遷移仕様に存在するモデルの一覧とを比較してモデルの過不足を抽出するモデル構成比較と、状態遷移仕様111Aに存在する各モデルについて当該モデルに対応する比較用状態遷移仕様に存在するモデルとイベントの一覧を比較してイベントの過不足を抽出するイベント構成比較と、状態遷移仕様111Aに存在する各モデルについて当該モデルに対応する比較用状態遷移仕様に存在するモデルと状態の一覧を比較して状態の過不足を抽出する状態構成比較と、状態遷移仕様111Aに存在する各モデルについて、当該モデルに対応する比較用状態遷移仕様に存在するモデルと、互いに対応するイベントに対する遷移先の状態を比較して遷移先の差異を抽出する遷移先比較と、の少なくとも1つを実行する。これにより、状態遷移仕様と比較用状態遷移仕様とでモデルを比較して差異を提示して、システム仕様の各モデルに関する誤りの発見を支援することができる。
【0155】
比較用状態遷移仕様に対応するイベント制約である比較用イベント制約を予め更に記憶する。仕様比較部40は、状態遷移仕様111Aに対応するイベント制約と、比較用イベント制約との違反事項の一覧を比較して違反事項の過不足を抽出する制約比較を更に実行する。これにより、状態遷移仕様と比較用状態遷移仕様とでイベントの違反事項を提示して、システム仕様のイベント制約に関連する誤りの発見を支援することができる。
【0156】
イベント制約は、複数のイベントの発生の順序を規定する第1制約を含む。仕様検証部30は、状態遷移仕様111Aにおいて第1制約に規定された順序と異なる順序でイベントが発生することがあるか否か確認する。これにより、イベントの発生順序に関するシステム仕様の誤りを容易に発見することができる。
【0157】
イベント制約は、イベントの発生する時期を規定する第2制約を含む。仕様検証部30は、状態遷移仕様111Aにおいて第2制約に規定された時期と異なる時期にイベントが発生することがあるか否か確認する。これにより、イベントの発生時期に関するシステム仕様の誤りを容易に発見することができる。
【0158】
モデルには、イベントの発生に応じて、情報の生成、参照、更新、または削除を行うモデルが含まれる。イベント制約は、モデルによる情報の作成、読み出し、更新、削除の順序を規定する第3制約を含む。仕様検証部30は、状態遷移仕様において第3制約に規定された順序と異なる順序で情報の作成、読み出し、更新、または削除が行われることがあるか否か確認する。これにより、あるモデルにて作成された情報を他のモデルにより読み出されるといったモデル間にまたがるイベントの順序の整合性を検証することができる。
【0159】
状態遷移仕様111Aは、モデルの特定の状態から派生する副次的な状態をモデルの副モデルの状態として遷移を規定する。これにより、モデル間のイベントを含めた状態遷移仕様において、モデルの状態とイベントとの組み合わせ数が爆発的に増大することを防止できる。
【0160】
副モデルには、イベントの発生に応じて、情報の生成、参照、更新、または削除を行うモデルが含まれる。イベント制約は、副モデルによる情報の作成、読み出し、更新、削除の順序を規定する第4制約を含む。仕様検証部30は、状態遷移仕様において第4制約に規定された順序と異なる順序で情報の作成、読み出し、更新、または削除が行われることがあるか否か確認する。これにより、副モデルを含めてイベントの順序の整合性を検証することができる。
【0161】
仕様登録部20は、モデルへのイベントに対応する業務手続に複数の手続結果が存在する場合に、状態遷移仕様111Aにおいて、モデルへのイベントを手続結果に対応する複数のイベントに分割し、イベントが複数に分割されたことに伴って追加となる状態と、該追加となる状態に関連する状態の遷移とを状態遷移仕様111Aに登録することを受け付ける。これにより、モデルの状態遷移により他のモデルに発生するイベントを含めたシステム仕様の検証を実行可能な状態遷移仕様の登録を支援することができる。
【0162】
情報システムの仕様検証を支援する仕様検証支援方法において、プロセッサとメモリとを備える装置1が、複数のモデルのそれぞれにイベントによる状態の遷移を規定するものでありイベントにはモデルの状態遷移により他のモデルに発生するイベントが含まれる状態遷移仕様111Aと、イベントについて当該イベントが発生した場合に違反とすべき違反事項を規定したイベント制約111Bとについて登録を受け付け、状態遷移仕様111Aにおいて違反事項に該当するイベントの発生がないか検証する、ことを実行する。これにより、モデルの状態遷移により他のモデルに発生するイベントを含めた状態遷移仕様を登録し、システム仕様の検証において、状態遷移仕様によって違反事項に該当するイベントの発生がないか確認するので、システム仕様の誤りの見落としを低減することができる。
【0163】
情報システムの仕様検証を支援する仕様検証支援プログラムが、プロセッサとメモリとを備える装置1に、複数のモデルのそれぞれにイベントによる状態の遷移を規定するものでありイベントにはモデルの状態遷移により他のモデルに発生するイベントが含まれる状態遷移仕様111Aと、イベントについて当該イベントが発生した場合に違反とすべき違反事項を規定したイベント制約111Bとについて登録を受け付け、状態遷移仕様において違反事項に該当するイベントの発生がないか検証する、ことを実行させる。これにより、モデルの状態遷移により他のモデルに発生するイベントを含めた状態遷移仕様を登録し、システム仕様の検証において、状態遷移仕様によって違反事項に該当するイベントの発生がないか確認するので、システム仕様の誤りの見落としを低減することができる。
【符号の説明】
【0164】
1…仕様検証支援装置、10…データ管理部、20…仕様登録部、30…仕様検証部、40…仕様比較部