JPWO2009144826A1 - 検査用ファイル生成プログラム、検査用ファイル生成装置および検査用ファイル生成方法 - Google Patents

検査用ファイル生成プログラム、検査用ファイル生成装置および検査用ファイル生成方法 Download PDF

Info

Publication number
JPWO2009144826A1
JPWO2009144826A1 JP2010514318A JP2010514318A JPWO2009144826A1 JP WO2009144826 A1 JPWO2009144826 A1 JP WO2009144826A1 JP 2010514318 A JP2010514318 A JP 2010514318A JP 2010514318 A JP2010514318 A JP 2010514318A JP WO2009144826 A1 JPWO2009144826 A1 JP WO2009144826A1
Authority
JP
Japan
Prior art keywords
file
inspection
definition
diagram
file generation
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.)
Granted
Application number
JP2010514318A
Other languages
English (en)
Other versions
JP5246258B2 (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2009144826A1 publication Critical patent/JPWO2009144826A1/ja
Application granted granted Critical
Publication of JP5246258B2 publication Critical patent/JP5246258B2/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/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44589Program code verification, e.g. Java bytecode verification, proof-carrying code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

複数のUML図で記述された作業プロセスに対して網羅的に整合性検査を行うための検査用ファイルを生成することを目的とする。目標が定義されるミッション図と、各種手続きが定義されるアクティビティ図と、実行主体が有する権限が定義されるファカルティ図とを図形入力により受け付け、かかるミッション図、アクティビティ図およびファカルティ図に基づいて、各種定義ファイルを生成し、生成した定義ファイルに基づいて、挙動モデルを示す挙動モデルファイル(162)を生成する。

Description

本発明は、検査用ファイル生成プログラム、検査用ファイル生成装置および検査用ファイル生成方法に関する。
従来、システム管理者等が情報システムに対して作業(以下、「作業プロセス」という)を行う場合、自然言語によって記述された運用マニュアルを用いることが一般的である。例えば、サーバにパッチを適用する作業プロセスは、かかる作業の手順や規則が記述された運用マニュアルを用いて行われる。
ところで、近年、情報システムは大規模化、複雑化しているため、作業プロセスに求められる手順や規則も複雑化している。このことは、人手で作業プロセスの妥当性を検討することを困難にさせており、障害が発生する原因になっている。また、大規模化、複雑化している情報システムにおいては、少数の人間が断片的な知識を有している場合が多い。知識が細分化されていることは、情報システムの挙動の把握を困難にするため、障害が多発する原因になっている。情報システムは、生活インフラを支えるシステムとして重要性が非常に高まっており、情報システム運用管理上の信頼性を向上させることが強く望まれている。
そこで、近年では、作業プロセスの妥当性を機械的に検査する技術が提案されている。例えば、UML(Unified Modeling Language)図を用いて作業プロセスを記述して、かかるUML図が所定の制約や規則等を満たしているか否かを検査する技術が提案されている。
特開2005−275749号公報 佐々木亨 岡野浩三 楠本真二、「制約指向に基づいたUMLモデルの不整合検出・解消手法の提案」、電子情報通信学会論文誌D、Vol.J90−D No.4 pp.1005−1013、2007年
しかしながら、上記従来技術には、単一のUML図についてしか整合性検査を行うことができず、複数のUML図で記述された作業プロセスについては、UML図間で満たされるべき制約や規則等を網羅的に検査することができないという問題があった。大規模化、複雑化している情報システムでは、作業プロセスを複数の図を用いて記述することが多く、複数のUML図で記述された作業プロセスについても網羅的に検査することができる技術の実現が望まれていた。
なお、網羅的に整合性検査を行うために、コンピュータが解析しやすい方式(例えば、プログラミング言語)で作業プロセスを記述することも考えられるが、システム管理者等に膨大な手間がかかる。また、コンピュータが解析しやすい方式で記述された作業プロセスは、一般に、人間にとって把握しにくく、かえって障害を招くおそれがある。
開示の技術は、上述した従来技術による問題点を解消するためになされたものであり、複数のUML図で記述された作業プロセスに対して網羅的に整合性検査を行うための検査用ファイルを生成する検査用ファイル生成プログラム、検査用ファイル生成装置および検査用ファイル生成方法を提供することを目的とする。
上述した課題を解決し、目的を達成するために、本願に開示する検査用ファイル生成プログラムは、作業プロセスの整合性を検査するための検査用ファイルを生成する検査用ファイル生成プログラムであって、前記作業プロセスに含まれる各種手続きと、前記各種手続きの実行順序と、前記作業プロセスにおいて最終的に達成される目標である最終目標と、前記各種手続きにおいて達成される目標であるサブ目標と、前記各種手続きが実行される際に遵守されるべき制約条件と、前記各種手続きを実行する実行主体と、前記実行主体が実行できる手続きを判別するための権限とに関する各種定義情報を受け付ける受付手順と、前記受付手順によって受け付けられた各種定義情報に基づいて、定義ファイルを生成する定義ファイル生成手順と、前記定義ファイル生成手順によって生成された定義ファイルに基づいて、前記作業プロセスを実行する場合における挙動モデルを示す検査用ファイルを生成する挙動モデル生成手順とをコンピュータに実行させることを要件とする。
なお、本願に開示する検査用ファイル生成プログラムの構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも、他の態様として有効である。
本願に開示した検査用ファイル生成プログラムによれば、複数のUML図で記述された作業プロセスに対して網羅的に整合性検査を行うための検査用ファイルを生成することができるという効果を奏する。
図1は、本実施例に係る検査用ファイル生成装置の構成を示す図である。 図2は、ミッション図の一例を示す図である。 図3は、アクティビティ図の一例を示す図である。 図4は、ファカルティ図の一例を示す図である。 図5は、図3に示したアクティビティ図から生成されるアクティビティ定義ファイルの一例を示す図である。 図6は、制約条件ファイルの一例を示す図である。 図7は、挙動モデルファイルの一例を示す図である。 図8は、挙動モデルファイルに組み込む初期状態の一例を示す図である。 図9−1は、整合性検査結果画面の一例を示す図である。 図9−2は、整合性検査結果画面の一例を示す図である。 図9−3は、整合性検査結果画面の一例を示す図である。 図10は、検査用ファイル生成装置による整合性検査処理手順を示すフローチャートである。 図11は、挙動モデル生成部による挙動モデル生成処理手順を示すフローチャートである。 図12は、挙動モデル生成部による初期状態組込処理手順を示すフローチャートである。 図13は、制約条件ファイル生成部による制約条件ファイル生成処理手順を示すフローチャートである。 図14は、作業プロセス検査プログラムを実行するコンピュータを示す機能ブロック図である。
符号の説明
100 検査用ファイル生成装置
110 入力部
120 表示部
130 定義ファイル出力制御部
131 受付部
132 定義ファイル生成部
133 表示制御部
140 定義ファイル格納部
141 共通定義ファイル
142 ミッション定義ファイル
143 アクティビティ定義ファイル
144 ファカルティ定義ファイル
150 検査制御部
151 制約条件ファイル生成部
152 挙動モデル生成部
153 検査部
154 反例生成部
160 検査結果ファイル格納部
161 制約条件ファイル
162 挙動モデルファイル
163 判定結果ファイル
164 反例ファイル
1000 コンピュータ
1010 CPU
1020 入力装置
1030 モニタ
1040 媒体読取り装置
1050 ネットワークインターフェース装置
1060 RAM
1061 作業プロセス検査プロセス
1070 ハードディスク装置
1071 作業プロセス検査プログラム
1072 定義ファイル
1073 検査用データ
1080 バス
以下に、本願に開示する検査用ファイル生成プログラム、検査用ファイル生成装置および検査用ファイル生成方法の実施例を図面に基づいて詳細に説明する。なお、この実施例により本願に開示する検査用ファイル生成プログラム、検査用ファイル生成装置および検査用ファイル生成方法が限定されるものではない。
まず、本実施例に係る検査用ファイル生成装置の概要について説明する。本実施例に係る検査用ファイル生成装置は、作業プロセスにおいて最終的に達成される目標と、作業プロセス内で行われる各種手続きと、各種手続きを実行する実行主体が有する権限に関する情報を受け付ける。具体的には、目標、手続き、実行主体が有する権限に関する情報は、利用者によってUMLの記法を用いて入力される。そして、検査用ファイル生成装置は、入力された目標、手続き、実行主体が有する権限に関する情報に基づいて各種定義ファイルを生成する。続いて、検査用ファイル生成装置は、生成した定義ファイルに基づいて、作業プロセスを実行する際の挙動モデルが示す挙動モデルファイルを生成し、かかる挙動モデルファイルを用いて作業プロセスの整合性を検査する。これにより、本実施例に係る検査用ファイル生成装置では、利用者にとって可読性の高い作業プロセス図を用いて、作業プロセスの妥当性を網羅的に検査することが可能になる。
なお、本明細書では、目標が記述された図を「ミッション図」と呼び、手続きが記述された図を「アクティビティ図」と呼び、実行主体が有する権限が記述された図を「ファカルティ図」と呼ぶこととする。
このような検査用ファイル生成装置について、図1を用いて具体的に説明する。図1は、本実施例に係る検査用ファイル生成装置の構成を示す図である。図1に示すように、検査用ファイル生成装置100は、入力部110と、表示部120と、定義ファイル出力制御部130と、定義ファイル格納部140と、検査制御部150と、検査結果ファイル格納部160とを有する。
入力部110は、各種情報や操作指示を入力するための入力デバイスであり、例えば、キーボードやマウスである。表示部120は、各種情報を表示する表示デバイスであり、例えば、モニタである。
なお、本実施例に係る検査用ファイル生成装置100を用いる利用者は、表示部120に表示される所定のUMLエディタを用いて、ミッション図、アクティビティ図およびファカルティ図を入力できるものとする。UMLエディタを実現するためのアプリケーションの例としては、「Eclipse」と、EclipseのUMLプラグインである「SystemDirector Application Modeler UML Editor」との組合せなどがある。
ここで、図2〜図4を用いて、ミッション図、アクティビティ図およびファカルティ図の記述例について説明する。ここでは、作業プロセスとして、サービス用サーバを増設する例を示す。具体的には、かかる作業プロセスは、サーバの利用者がいないことを確認し、システム管理者の承認を得た後に、サービスを停止し、サービス用サーバを増設し、最後にサービスを再起動するという手続きを順に行うものとする。
図2は、ミッション図の一例を示す図である。図2に示した例のように、ミッション図は、作業プロセスにおいて達成される目標が、UMLのクラス図によって記述される図である。具体的には、ミッション図は、作業プロセスにおいて最終的に達成される目標(以下、「最終目標」という)と、最終目標を達成するために必要な目標(以下、「サブ目標」という)が記述される。
また、ミッション図は、各サブ目標が達成すべき条件(以下、「ゴール条件」という)と、各サブ目標が実行されている間、常に満たしていなければならない条件(以下、「制約条件」という)とが時相論理式によって記述される。具体的には、ゴール条件は、「Goal」という文字列が記述されている矩形内に記述され、制約条件は、「Constraint」という文字列が記述されている矩形内に記述される。
図2に例示したミッション図では、最終目標として、「P001:サーバ増設」が記述されている。また、最終目標を達成するために必要なサブ目標として、「P001−01:利用者の確認」と、「P001−02:承認を得る」と、「P001−03:サーバを増設する」とが記述されている。また、サブ目標「P001−01:利用者の確認」のサブ目標として、「P001−01−01:管理サーバにログイン」と、「P001−01−02:利用者を確認」とが記述されている。
また、図2に例示したミッション図では、サブ目標「P001−01−01:管理サーバにログイン」の制約条件として、[Login server]→AF[Logout server]が記述されている。かかる制約条件は、サーバにログインした後は、必ずサーバからログアウトしなければならないことを示している。
また、サブ目標「P001−01−02:利用者を確認」のゴール条件として、[User checked]が記述されている。かかるゴール条件は、サブ目標「P001−01−02:利用者を確認」が目標を達成するためには、サーバを利用するユーザが存在するか否かを確認する必要があることを示している。
また、サブ目標「P001−03:サーバを増設する」のゴール条件として、[New server added]が記述されている。かかるゴール条件は、サブ目標「P001−03:サーバを増設する」が目標を達成するためには、新しいサーバを増設する必要があることを示している。また、サブ目標「P001−03:サーバを増設する」の制約条件として、[New server added]→[New server addition granted]が記述されている。かかる制約条件は、サーバを増設する際には、システム管理者の承認が得られていなければならないことを示している。
図3は、アクティビティ図の一例を示す図である。図3に示した例のように、アクティビティ図は、ミッション図に記述される最終目標を達成するための手続きが、UMLのアクティビティ図によって記述される図である。具体的には、アクティビティ図は、各手続きの実行主体がアクティビティパーティションによって分離され、かかる主体によって実行される各手続きが有向リンクの結合によって記述される。
また、アクティビティ図は、各手続きの事前条件または事後条件が、ノート(コメント)によって記述される。具体的には、事前条件は「localPrecondition」という文字列が記述されているノート内に記述され、事後条件は「localPostcondition」という文字列が記述されているノート内に記述される。
図3に例示したアクティビティ図では、アクティビティパーティションとして、「作業者[Operator]」と、「管理職[Manager]」とが記述されている。そして、実行主体「作業者」によって実行される手続きとして、手続きA1〜A3およびA5〜A8が記述されており、実行主体「管理職」によって実行される手続きとして、手続きA4が記述されている。
また、図3に例示したアクティビティ図では、手続きA1「管理用サーバにログインする」の事後条件として、[Login server]が記述されている。かかる事後条件は、手続きA1が実行された後には、サーバにログインしている状態でなければならないことを示している。
また、手続きA4「サーバ増設承認」の事前条件として、[Has_Authority(Grant)]が記述されており、事後条件として、[New server addition granted]が記述されている。かかる事前条件は、手続きA4が実行される際には、手続きA4を実行する主体(図3の例では、管理職)が承認権限を有していなければならないことを示している。また、かかる事後条件は、手続きA4が実行された後には、システム管理者によって承認が得られていなければならないことを示している。
図4は、ファカルティ図の一例を示す図である。図4に示した例のように、ファカルティ図は、アクティビティ図に記述された手続きの実行主体、および、実行主体が有する権限やスキルがUMLのクラス図によって記述される図である。具体的には、実行主体は「Role」という文字列が記述されている矩形内に記述され、権限は「Authority」という文字列が記述されている矩形内に記述され、スキルは「Skill」という文字列が記述されている矩形内に記述される。
図4に例示したファカルティ図では、実行主体「Manager(管理職)」が、承認するための権限[Grant]を有することが記述されている。また、実行主体「Operator(作業者)」が、サーバを操作するためのスキル[Operate server]を有することが記述されている。
図1に示した定義ファイル出力制御部130は、各種定義ファイルを定義ファイル格納部140へ出力する制御部であり、受付部131と、定義ファイル生成部132と、表示制御部133とを有する。
受付部131は、入力部110を用いて入力された各種情報や操作指示を受け付ける処理部である。具体的には、受付部131は、ミッション図等を作成または編集するために入力された情報を受け付け、受け付けた情報を定義ファイル生成部132および表示制御部133へ出力する。また、受付部131は、利用者によって作業プロセスの整合性検査を開始する旨の操作指示が行われた場合に、定義ファイル生成部132に対して、整合性検査を開始するように指示する。
定義ファイル生成部132は、受付部131から整合性検査を開始する旨の指示を受け付けた場合に、受付部131から入力された情報に基づいて、各種定義ファイルを生成する処理部である。具体的には、定義ファイル生成部132は、ミッション図を作成するために入力部110を用いて入力された情報に基づいて、XMI(XML(Extensible Markup Language) Metadata Interchange)形式のミッション定義ファイル142を生成する。
また、定義ファイル生成部132は、アクティビティ図を作成するために入力部110を用いて入力された情報に基づいて、XMI形式のアクティビティ定義ファイル143を生成する。図5に、図3に示したアクティビティ図から生成されるアクティビティ定義ファイル143の一例を示す。また、定義ファイル生成部132は、ファカルティ図を作成するために入力部110を用いて入力された情報に基づいて、XMI形式のファカルティ定義ファイル144を生成する。
なお、EclipseのUMLプラグインなどにより実現されるUMLエディタは、UML図からXMI形式のファイルを生成する機能を有する。したがって、定義ファイル生成部132による定義ファイル生成処理は、既存のアプリケーションによって実現可能である。
表示制御部133は、表示部120に各種情報を表示させる制御部である。例えば、表示制御部133は、受付部131からミッション図等を作成または編集するために入力された情報を入力された場合に、かかる情報を表示部120に表示させる。
定義ファイル格納部140は、各種定義ファイルが格納される記憶デバイスであり、共通定義ファイル141と、ミッション定義ファイル142と、アクティビティ定義ファイル143と、ファカルティ定義ファイル144とが格納される。
共通定義ファイル141は、あらゆる作業プロセスを検査する場合における共通の規則が記述されているファイルである。例えば、共通定義ファイル141には、「作業プロセスに開始ノードが存在すること」や、「作業プロセスに終了ノードが存在すること」という規則が記述されている。
検査制御部150は、定義ファイル格納部140に格納されている各種定義ファイルに基づいて、作業プロセスの整合性を検査する制御部であり、制約条件ファイル生成部151と、挙動モデル生成部152と、検査部153と、反例生成部154とを有する。
制約条件ファイル生成部151は、共通定義ファイル141と、ミッション定義ファイル142とに基づいて、制約条件ファイル161を生成する処理部である。制約条件ファイル161は、各手続きが満たさなければならないゴール条件および制約条件が、CTL(Computational Tree Logic:計算木論理)式によって記述されるファイルである。
ここで、制約条件ファイル生成部151がミッション定義ファイル142に基づいて制約条件ファイル161を生成する処理について具体的に説明する。ここでは、まず、ミッション図の論理的なデータ構造について説明し、次に、制約条件ファイル生成部151による制約条件ファイル161の生成処理について説明する。
まず、ミッション図の論理的なデータ構造について説明する。ミッション図MDの構成要素は、
MD=(NMD、TMD)・・・(1)
というデータ構造によって定義される。
上記データ構造(1)において、NMDは、ミッション図MDに記述されているノードnMDの集合を示す。なお、ここでいう「ノードnMD」とは、ミッション図MDに記述されている最終目標およびサブ目標を示す。
また、ノードnMDは、
MD=<NameMD、TypeMD、ContMD>・・・(2)
というデータ構造によって定義される。
上記データ構造(2)において、NameMDは、ノードnMDの名称を示す。TypeMDは、ノードnMDのタイプを示す。ContMDは、ゴール条件や制約条件の内容を示し、時相論理式によって表される。具体的には、ノードnMDのTypeMDが「Goal」である場合、かかるノードnMDのContMDには、ゴール条件が設定される。また、ノードnMDのTypeMDが「Constraint」である場合、かかるノードnMDのContMDには、制約条件が設定される。
MDは、ノード集合NMDに含まれるノードnMD間の接続関係tMDの集合を示す。接続関係tMDは、例えば、<n1MD、n2MD>というデータ構造によって定義される。かかるデータ構造は、ノードn1MDと、ノードn2MDとが接続されていることを示す。
なお、ミッション定義ファイル142は、ミッション図MDを表すXMI形式のファイルであるので、ミッション定義ファイル142についても、上記データ構造(1)および(2)のように定義される。
次に、制約条件ファイル生成部151がミッション定義ファイル142に基づいて制約条件ファイル161を生成する処理について説明する。まず、制約条件ファイル生成部151は、ミッション定義ファイル142のノード集合NMDから、ゴール条件や制約条件を示すContMDを抽出する。続いて、制約条件ファイル生成部151は、抽出したContMDのうち、TypeMDが「Constraint」であるContMDに基づいて、ノードnMDが実行されている間、常に満たしていなければならない制約条件を示すCTL式を生成する。具体的には、制約条件ファイル生成部151は、CTL式として、AG(ContMD)を生成する。
続いて、制約条件ファイル生成部151は、抽出したContMDのうち、TypeMDが「Goal」であるContMDに基づいて、ノードnMDが実行された後に満たさなければならないゴール条件を示すCTL式を生成する。具体的には、制約条件ファイル生成部151は、CTL式として、AG(Final→ContMD)を生成する。
そして、制約条件ファイル生成部151は、CTL式により表されたゴール条件および制約条件が記述された制約条件ファイル161を生成する。図6は、制約条件ファイル161の一例を示す図である。図6に例示した制約条件ファイル161において、例えば、「AG(EF [Final])」は、「あらゆる状態から、ActivityFinalNodeへ到達している状態へ到達可能である」という条件を示している。また、例えば、「AG(!Precondtion_error)」は、「あらゆる状態において、アクティビティ実行時に事前条件違反が発生しない」という条件を示している。
図1に示した挙動モデル生成部152は、アクティビティ定義ファイル143に基づいて、作業プロセスを実行する際の挙動モデルを生成する処理部である。具体的には、挙動モデル生成部152は、挙動モデルとして、後述する検査部153が検査処理を行うことができる形式の挙動モデルファイル162を生成する。なお、本実施例に係る検査用ファイル生成装置100では、検査部153として、モデル検査ツールであるNuSMVを用いるものとする。したがって、挙動モデル生成部152は、SMV形式の挙動モデルファイル162を生成する。
また、挙動モデル生成部152は、ファカルティ定義ファイル144に基づいて、挙動モデルにおける初期状態を生成し、生成した初期状態を挙動モデルファイル162に組み込む。ここでいう「初期状態」とは、作業プロセスが実行される前に成立している事象を示し、例えば、実行主体が有する権限などを示す。
ここで、挙動モデル生成部152による挙動モデルファイル162の生成処理、および、初期状態組込処理について具体的に説明する。ここでは、まず、アクティビティ図の論理的なデータ構造について説明し、続いて、ファカルティ図の論理的なデータ構造について説明し、続いて、挙動モデルの論理的なデータ構造について説明し、続いて、挙動モデル生成部152による挙動モデルファイル162の生成処理について説明する。
まず、アクティビティ図の論理的なデータ構造について説明する。アクティビティ図ADの構成要素は、
AD=(PAD、NAD、TAD)・・・(3)
というデータ構造によって定義される。
上記データ構造(3)において、PADは、アクティビティ図ADに記述されているパーティションpADの集合を示す。NADは、アクティビティ図ADに記述されているノードnADの集合を示す。なお、ここでいう「ノードnAD」とは、アクティビティ図ADに含まれる手続きおよびノートを示す。TADは、ノード集合NADに含まれるノードnAD間の順序関係tADの集合を示す。
また、パーティションpADは、
AD=<NameAD、RoleAD>・・・(4)
というデータ構造によって定義される。
上記データ構造(4)において、NameADは、パーティションpADの名称を示す。RoleADは、パーティションpADの役割や、権限、スキルを示す。図3に示したアクティビティ図の例では、NameADが「作業者」であり、RoleADが「Operator」であるパーティションpADと、NameADが「管理職」であり、RoleADが「Manager」であるパーティションpADとが定義される。
また、順序関係tADは、
AD=<SrcAD、DstAD、RelationAD>・・・(5)
というデータ構造によって定義される。
上記データ構造(5)において、SrcADは、順序関係tADの始点となるノードを示し、DstADは、順序関係tADの終点となるノードを示す。RelationADは、始点ノードSrcADと、終点ノードDstADとの間の関係を示す。具体的には、RelationADには、「ControlFlow」または「CommentLine」が設定される。
また、ノードnADは、
AD=<NameAD、TypeAD、PreAD、PostAD>・・・(6)
というデータ構造によって定義される。
上記データ構造(6)において、NameADは、ノードnADのアクション名を示す。TypeADは、ノードnADの種類またはステレオタイプ(Stereotype)を示す。なお、TypeADは、UML2.0の記述仕様に従い、「ExecutableNode」、「InitialNode」、「ActivityFinalNode」、「ForkNode」、「JoinNode」、「MergeNode」、「DecisionNode」、「localPrecondition」、「localPostcondition」のいずれかが設定される。
例えば、TypeADが「ExecutableNode」である場合、NameADには、「サーバにログイン」、「承認処理の実行」などが設定される。また、例えば、TypeADが「localPrecondition」または「localPostcondition」などのステレオタイプである場合、NameADには、アクションの事前条件や事後条件を表す論理式が設定される。
PreADは、ノードnADのアクションが実行される前に満たされなければならない事前条件を示す。具体的には、ノードnADのTypeADが「ExecutableNode」である場合、かかるノードnADの事前条件PreADは、ノードnADと接続されており、かつ、TypeADが「localPrecondition」であるノードnADによって表される。すなわち、2つのノードn1ADおよびn2ADにおいて、「Type1AD = ExecutableNode」、かつ、「Type2AD = localPrecondition」、かつ、「<n1AD、n2AD、CommentLine> ∈ TAD」ならば、「Pre1AD = Name2AD」が成り立つ。
PostADは、ノードnADのアクションが実行された後の事後条件を示す。具体的には、ノードnADのTypeADが「ExecutableNode」である場合、かかるノードnADの事後条件PostADは、ノードnADと接続されており、かつ、TypeADが「localPostcondition」であるノードnADによって表される。
なお、アクティビティ定義ファイル143は、アクティビティ図ADを表すXMI形式のファイルであるので、アクティビティ定義ファイル143についても、上記データ構造(3)〜(6)のように定義される。
続いて、ファカルティ図の論理的なデータ構造について説明する。ファカルティ図FDの構成要素は、
FD=(NFD、TFD)・・・(7)
というデータ構造によって定義される。
上記データ構造(7)において、NFDは、ファカルティ図FDに記述されているノードnFDの集合を示す。なお、ここでいう「ノードnFD」とは、ファカルティ図FDに記載される実行主体、権限およびスキルを示す。TFDは、ノード集合NFDに含まれるノードnFD間の関係tFDの集合を示す。
また、ノードnFDは、
FD=<NameFD、TypeFD>・・・(8)
というデータ構造によって定義される。
上記データ構造(8)において、NameFDは、ノードnFDで表される実行主体、権限またはスキルの名称を示す。TypeFDは、ノードnFDのステレオタイプを示す。具体的には、ノードnFDが実行主体である場合、TypeFDには「Role」が設定され、ノードnFDが権限である場合、TypeFDには「Authority」、ノードnFDがスキルである場合、TypeFDには「Skill」が設定される。
図4に示したファカルティ図の例では、NameFDが「Manager」であり、TypeFDが「Role」であるノードn1FDと、NameFDが「Grant」であり、TypeFDが「Authority」であるノードn2FDとが定義される。また、所定の関係t1FDによって、ノードn1FDとノードn2FDとが関係していることが定義される。したがって、ノードn1FDおよびn2FDと、関係t1FDによって、実行主体「Manager」が権限「Grant」を有していることを把握できる。
同様に、図4に示したファカルティ図の例では、NameFDが「Operator」であり、TypeFDが「Role」であるノードn3FDと、NameFDが「Operate server」であり、TypeFDが「Skill」であるノードn4FDとが定義される。また、所定の関係t2FDによって、ノードn3FDとノードn4FDとが関係していることが定義される。したがって、ノードn3FDおよびn4FDと、関係t2FDによって、実行主体「Operator」がスキル「Operate server」を有していることを把握できる。
なお、ファカルティ定義ファイル144は、ファカルティ図FDを表すXMI形式のファイルであるので、ファカルティ定義ファイル144についても、上記データ構造(7)および(8)のように定義される。
続いて、挙動モデル生成部152が生成する挙動モデルの論理的なデータ構造について説明する。挙動モデルMADは、
AD=(S、SI、R、L)・・・(9)
によって定義される。
上記データ構図(9)において、Sは、アクティビティ図ADにおいて到達可能な状態sの集合を示す。ここでいう「到達可能な状態」とは、アクティビティ図ADにおいて、所定の手続きが実行される前の状態と、所定の手続きが実行されている状態と、所定の手続きが実行された後の状態とを示す。図3に示したアクティビティ図の例では、Sには、手続きA1〜A8が実行される前の状態、手続きA1〜A8が実行されている状態、手続きA1〜A8が実行された後の状態が含まれる。
SIは、状態集合Sに含まれる要素であり、アクティビティ図ADにおける初期状態を示す。図3に示したアクティビティ図の例では、SIは、手続きA1が実行される前の状態を示す。
Lは、状態sから、かかる状態sにおいて成立している事象を表す変数への写像を与えるための関数である。ここでいう「事象を表す変数」とは、例えば、以下の(A)〜(D)に示すものが定義される。
(A)IN(n)
変数IN(n)は、状態sにおいて、ノードnADにより表されるアクションが実行中である場合に、かかる実行の多重度を示す。例えば、状態sが実行中でない場合、IN(n)=0が成り立つ。
(B)ON(t)
変数ON(t)におけるtは、
t=<n1AD、n2AD、ControlFlow>・・・(10)
により定義される。
上記式(10)において、ノードn1ADは、状態sの直前のアクションを示し、ノードn2ADは、状態sの直後のアクションを示す。そして、ON(t)は、ノードn1ADにより表されるアクションが終了し、かつ、ノードn2ADにより表されるアクションが実行前である場合に、かかる実行の多重度を示す。
(C)Has_authority(x、y)・・・(11)
上記式(11)において、xは権限を示し、yは実行主体を示す。例えば、ファカルティ定義ファイル144に、実行主体yが権限xを有していることが記述されている場合、全ての状態sにおいて、Has_authority(x、y)=1(真)が成立する。なお、実行主体yがスキルxを有しているか否かの変数は、Has_skill(x、y)によって表される。
(D)Final
Finalは、アクティビティ図ADにおいて、FinalNodeにより表されているアクションまで到達し、アクティビティが終了したことを示す。具体的には、TypeAD=FinalNodeのとき、状態s|=In(nAD)ならば、状態s|=Finalが成立する。
なお、上記(A)〜(D)に示した変数は、あくまで一例であり、アクティビティ図ADやミッション図MDに記述される他の変数についても、各状態sにおける解釈を与えることができる。以下では、関数Lによって決定される状態sにおける変数vの値を表す関数を、f(L(s)、v)と表すこととする。
Rは、所定の状態s1から別の状態s2へ遷移する条件を示す。以下に、状態s1から状態s2へ遷移する遷移条件Rについて、2つの例を示して説明する。まず、ノードn1ADで表されるアクションが実行中である状態s1から、かかるアクションが実行終了後の状態s2へ遷移する遷移条件R1について説明する。遷移条件R1には、以下に示す条件R1−1〜R1−7が定義される。
(条件R1−1)
f(L(s1),IN(n1AD))>0が成立すること。
(条件R1−2)
OUT={t2AD|t2AD=<n1AD,Dst2AD,ControlFlow>∈T}が空でないこと。すなわち、ノードn1ADを始点ノードとするControlFlowが少なくとも1つ存在すること。
(条件R1−3)
OUT={d,d,・・・,d}のとき、Type1AD≠ForkNodeならば、所定の1つのk(1≦k≦m)について、f(L(s2),ON(d))=f(L(s1),ON(d))+1が成立し、k≠lならば、f(L(s2),ON(d))=f(L(s1),ON(d))が成立すること。
(条件R1−4)
OUT={d,d,・・・,d}のとき、Type1AD=ForkNodeならば、すべてのk(1≦k≦m)について、f(L(s2),ON(d))=f(L(s1),ON(d))+1が成立すること。
(条件R1−5)
f(L(s2),IN(n1AD))=f(L(s1),IN(n1AD))−1が成立すること。
(条件R1−6)
所定の命題αについて、α∈Post1ADならば、f(L(s2),α)=1(真)が成立し、¬α∈Post1ADならば、f(L(s2),α)=0(偽)が成立すること。
(条件R1−7)
上記条件R1−1〜条件R1−6において、指定のない変数および命題xについては、f(L(s1),x)=f(L(s2),x)が成立すること。
続いて、所定の状態s1から、ノードn1ADで表されるアクションが実行中である状態s2へ遷移する遷移条件R2について説明する。遷移条件R2には、以下に示す条件R2−1〜R2−6が定義される。
(条件R2−1)
IN={t1AD|t1AD=<n2AD,n1AD,ControlFlow>∈T}が空でないこと。すなわち、ノードn2ADを終点ノードとするControlFlowが少なくとも1つ存在すること。
(条件R2−2)
IN={e,e,・・・,e}のとき、Type1AD≠ForkNodeならば、所定の1つのk(1≦k≦m)について、f(L(s1),ON(e))>0、かつ、f(L(s2),ON(e))=f(L(s1),ON(e))−1が成立し、k≠lならば、f(L(s2),ON(e))=f(L(s1),ON(e))が成立すること。
(条件R2−3)
IN={e,e,・・・,e}のとき、Type1AD=ForkNodeならば、すべてのk(1≦k≦m)について、f(L(s1),ON(e))>0、かつ、f(L(s2),ON(e))=f(L(s1),ON(e))−1が成立すること。
(条件R2−4)
f(L(s2),IN(n1AD))=f(L(s1),IN(n1AD))+1が成立すること。
(条件R2−5)
所定の命題αについて、α∈Pre1ADならば、f(L(s1),α)=1(真)が成立し、¬α∈Pre1ADならば、f(L(s1),α)=0(偽)が成立すること。
(条件R2−6)
上記条件R2−1〜条件R2−6において、指定のない変数および命題xについては、f(L(s1),x)=f(L(s2),x)が成立すること。
続いて、挙動モデル生成部152による挙動モデルファイル162の生成処理について説明する。挙動モデル生成部152は、アクティビティ定義ファイル143から、順序関係TADを抽出する。続いて、挙動モデル生成部152は、抽出した順序関係TADから各状態s間の遷移関係を構築する。続いて、挙動モデル生成部152は、アクティビティ定義ファイル143から、各ノードnADの事前条件PreADと、事後状態PostADとを抽出する。続いて、挙動モデル生成部152は、事前条件PreADおよび事後状態PostADに基づいて、各状態sにおける真理値を割り当てて、挙動モデルファイル162を生成する。
図7は、SMV形式の挙動モデルファイル162の一例を示す図である。図7に示した挙動モデルファイル162において、「in_0_1」は、図3に示した手続きA2が実行中であることを示しており、「on_6」は、手続きA2の直前のリンクまで実行が終了したことを示す。すなわち、図7に示した挙動モデルファイル162は、手続きA2が実行される状態に遷移するとき、「on_6」を「1」減算し、「in_0_1」を「1」加算し、「User_checked」の値を1(真)にすることを示している。
次に、挙動モデル生成部152による初期状態組込処理について説明する。挙動モデル生成部152は、ファカルティ定義ファイル144の関係TFDに基づいて、TypeFDが「Role」である実行主体のName1FDと、TypeFDが「Authority」である権限のName2FDとの関係を抽出する。続いて、挙動モデル生成部152は、抽出した実行主体Name1FDが、抽出した権限Name2FDを有することを示す自相論理式を生成する。具体的には、挙動モデル生成部152は、自相論理式として、Has_autority(Name1FD、Name2FD)を生成する。
続いて、挙動モデル生成部152は、ファカルティ定義ファイル144の関係TFDに基づいて、TypeFDが「Role」である実行主体のName3FDと、TypeFDが「Skill」である権限のName4FDとの関係を抽出する。続いて、挙動モデル生成部152は、抽出した実行主体Name3FDが、抽出したスキルName4FDを有することを示す自相論理式を生成する。具体的には、挙動モデル生成部152は、自相論理式として、Has_skill(Name3FD、Name4FD)を生成する。
図8は、挙動モデルファイル162に組み込む初期状態の一例を示す図である。例えば、図8中の定義81は、「管理職は、承認権限を有している」ということを示している。挙動モデル生成部152は、このように定義される初期状態を、挙動モデルファイル162に組み込む。なお、挙動モデル生成部152は、初期状態を、挙動モデルファイル162に組み込まず、初期状態が定義されている別のファイルを生成してもよい。
検査部153は、制約条件ファイル161と、挙動モデルファイル162とに基づいて、作業プロセスの整合性が満たされているか否かを検査する処理部である。具体的には、検査部153は、権限またはスキルを有する実行主体によって各手続きが実行されているか否か、制約条件ファイル161に定義されている制約条件を満たしつつ各手続きが実行されるか否か、制約条件ファイル161に定義されているゴール条件を満たすか否かを検査する。そして、検査部153は、作業プロセスの整合性が満たされていない場合に、判定結果ファイル163を生成する。なお、NuSMVは、判定結果ファイル163を生成する機能を有しており、かかる判定結果ファイル163は、テキスト形式のファイルである。
反例生成部154は、検査部153によって生成されたテキスト形式の判定結果ファイル163から、XMI形式の反例ファイル164を生成する処理部である。具体的には、反例生成部154は、整合性が満たされていない手続きを視覚的に把握できるように、XMI形式の反例ファイル164を生成する。例えば、反例生成部154は、整合性が満たされていない原因となっている手続きの表示色を、他の手続きの表示色と変更するように、反例ファイル164を生成する。
そして、反例生成部154は、生成した反例ファイル164を表示制御部133へ出力する。反例ファイル164を受け付けた表示制御部133は、表示部120にアクティビティ図を表示させる。ここで、図9−1〜図9−3を用いて、反例生成部154によって生成された反例ファイル164に基づいて、表示制御部133が表示部120に表示させるアクティビティ図の例について説明する。図9−1〜図9−3は、整合性検査後に表示される画面(以下、「整合性検査結果画面」という)の一例を示す図である。
図9−1〜図9−3は、図3に示したアクティビティ図と比較して、手続きA3から手続きA4へのリンクが、手続きA3から手続きA5へのリンクに変更され、かつ、手続きA8が削除されたアクティビティ図に対する整合性検査結果画面を示している。ここでは、利用者によって入力されたミッション図は、図2に示したミッション図であり、利用者によって入力されたファカルティ図は、図4に示したファカルティ図であるものとする。
かかる場合、制約条件ファイル生成部151は、図6に示した条件P1〜P7を含む制約条件ファイル161を生成し、検査部153は、条件P4、P6およびP7に対する違反を検出する。このうち、図9−1に例示した整合性検査結果画面は、条件P4に対する違反を検出したことが視覚的に把握できるように表示されている。具体的には、図9−1に例示した整合性検査結果画面は、手続きA4の表示色を変更することで、手続きA4を経由せずに、作業プロセスが実行される可能性があることが把握できるように表示されている。すなわち、図9−1に例示した整合性検査結果画面によれば、ミッション図におけるサブ目標「P001−02:承認を得る」が達成されずに作業プロセスが終了する可能性があることを把握できる。
また、図9−2に例示した整合性検査結果画面は、条件P6に対する違反を検出したことが視覚的に把握できるように表示されている。具体的には、図9−2に例示した整合性検査結果画面は、手続きA4および手続きA7の表示色を変更することで、手続きA4を経由しなければ、「サーバ増設時に承認を得ていること」という制約条件に違反することが把握できるように表示されている。
また、図9−3に例示した整合性検査結果画面は、条件P7に対する違反を検出したことが視覚的に把握できるように表示されている。具体的には、図9−3に例示した整合性検査結果画面は、手続きA3の表示色を変更することで、管理サーバにログインした状態のままで、作業プロセスが終了することが把握できるように表示されている。
なお、図9−1〜図9−3に示した整合性検査結果画面は、あくまで一例であり、反例生成部154は、他の整合性検査結果画面が表示されるように反例ファイル164を生成してもよい。例えば、反例生成部154は、整合性が満たされない原因となっている手続き近傍に、かかる原因が文字列によって表示されるように反例ファイル164を生成してもよい。
検査結果ファイル格納部160は、検査結果に関する各種ファイルが格納される記憶デバイスであり、制約条件ファイル161と、挙動モデルファイル162と、判定結果ファイル163と、反例ファイル164とが格納される。
次に、本実施例に係る検査用ファイル生成装置100による整合性検査処理の手順について説明する。図10は、検査用ファイル生成装置100による整合性検査処理手順を示すフローチャートである。図10に示すように、検査用ファイル生成装置100の受付部131は、ミッション図、アクティビティ図またはファカルティ図を作成または編集するための情報を受け付ける(ステップS101)。
続いて、受付部131によって作業プロセスの整合性検査を開始する旨の操作指示が受け付けられた場合(ステップS102肯定)、定義ファイル生成部132は、各種定義ファイルを生成する(ステップS103)。具体的には、定義ファイル生成部132は、ミッション図を作成するために入力された情報に基づいて、ミッション定義ファイル142を生成する。また、定義ファイル生成部132は、アクティビティ図を作成するために入力された情報に基づいて、アクティビティ定義ファイル143を生成する。また、定義ファイル生成部132は、ファカルティ図を作成するために入力された情報に基づいて、ファカルティ定義ファイル144を生成する。
続いて、表示制御部133は、定義ファイル生成部132によってアクティビティ定義ファイル143が生成されなかった場合(ステップS104否定)、表示部120に、アクティビティ図を作成する旨のエラーを表示させる(ステップS105)。
一方、定義ファイル生成部132によってアクティビティ定義ファイル143が生成された場合(ステップS104肯定)、挙動モデル生成部152は、アクティビティ定義ファイル143に基づいて、挙動モデルファイル162を生成する挙動モデル生成処理を行う(ステップS106)。なお、挙動モデル生成部152による挙動モデル生成処理については、後に詳述する。
続いて、定義ファイル生成部132によってファカルティ定義ファイル144が生成された場合(ステップS107肯定)、挙動モデル生成部152は、ファカルティ定義ファイル144に基づいて、挙動モデルファイル162に初期状態を組み込む初期状態組込処理を行う(ステップS108)。一方、定義ファイル生成部132によってファカルティ定義ファイル144が生成されなかった場合(ステップS107否定)、挙動モデル生成部152は、初期状態組込処理を行わない。なお、挙動モデル生成部152による初期状態組込処理については、後に詳述する。
続いて、定義ファイル生成部132によってミッション定義ファイル142が生成された場合(ステップS109肯定)、制約条件ファイル生成部151は、共通定義ファイル141と、ミッション定義ファイル142とに基づいて、制約条件ファイル161を生成する制約条件ファイル生成処理を行う(ステップS110)。なお、制約条件ファイル生成部151による制約条件ファイル生成処理については、後に詳述する。
一方、定義ファイル生成部132によってミッション定義ファイル142が生成されなかった場合(ステップS109否定)、制約条件ファイル生成部151は、共通定義ファイル141に基づいて、制約条件ファイル161を生成する(ステップS111)。
続いて、検査部153は、制約条件ファイル161と、挙動モデルファイル162とに基づいて、作業プロセスの整合性が満たされているか否かを検査する(ステップS112)。作業プロセスの整合性が満たされている場合(ステップS113肯定)、検査部153は、処理を終了する。このとき、表示制御部133は、表示部120に、作業プロセスの整合性が満たされている旨を表示させてもよい。
一方、作業プロセスの整合性が満たされていない場合(ステップS113否定)、検査部153は、判定結果ファイル163を生成する(ステップS114)。続いて、反例生成部154は、検査部153によって生成された判定結果ファイル163から、反例ファイル164を生成する(ステップS115)。そして、表示制御部133は、反例生成部154によって生成された反例ファイル164に基づいて、表示部120に、整合性検査結果画面を表示させる(ステップS116)。
次に、挙動モデル生成部152による挙動モデル生成処理の手順について説明する。図11は、挙動モデル生成部152による挙動モデル生成処理手順を示すフローチャートである。図11に示すように、挙動モデル生成部152は、論理的なデータ構造に定義できるアクティビティ定義ファイル143から、順序関係TADを抽出する(ステップS201)。
続いて、挙動モデル生成部152は、抽出した順序関係TADから各状態s間の遷移関係を構築する(ステップS202)。続いて、挙動モデル生成部152は、アクティビティ定義ファイル143から、各ノードnADの事前条件PreADと、事後状態PostADとを抽出する(ステップS203)。
続いて、挙動モデル生成部152は、事前条件PreADおよび事後状態PostADに基づいて、各状態sにおける真理値を割り当てて(ステップS204)、挙動モデルファイル162を生成する(ステップS205)。
次に、挙動モデル生成部152による初期状態組込処理の手順について説明する。図12は、挙動モデル生成部152による初期状態組込処理手順を示すフローチャートである。図12に示すように、挙動モデル生成部152は、論理的なデータ構造に定義できるファカルティ定義ファイル144の関係TFDに基づいて、TypeFDが「Role」である実行主体のName1FDと、TypeFDが「Authority」である権限のName2FDとの関係を抽出する(ステップS301)。
続いて、挙動モデル生成部152は、抽出した実行主体Name1FDが、抽出した権限Name2FDを有することを示す自相論理式を生成する(ステップS302)。具体的には、挙動モデル生成部152は、自相論理式として、Has_autority(Name1FD、Name2FD)を生成する。
続いて、挙動モデル生成部152は、ファカルティ定義ファイル144の関係TFDに基づいて、TypeFDが「Role」である実行主体のName3FDと、TypeFDが「Skill」である権限のName4FDとの関係を抽出する(ステップS303)。続いて、挙動モデル生成部152は、抽出した実行主体Name3FDが、抽出したスキルName4FDを有することを示す自相論理式を生成する(ステップS304)。具体的には、挙動モデル生成部152は、自相論理式として、Has_skill(Name3FD、Name4FD)を生成する。
そして、挙動モデル生成部152は、上記ステップS302およびS304において生成した自相論理式を初期状態として、挙動モデルファイル162に組み込む(ステップS305)。
次に、制約条件ファイル生成部151による制約条件ファイル生成処理の手順について説明する。図13は、制約条件ファイル生成部151による制約条件ファイル生成処理手順を示すフローチャートである。図13に示すように、制約条件ファイル生成部151は、論理的なデータ構造に定義できるミッション定義ファイル142のノード集合NMDから、ゴール条件や制約条件を示すContMDを抽出する(ステップS401)。
続いて、制約条件ファイル生成部151は、抽出したContMDのうち、TypeMDが「Constraint」であるContMDに基づいて、ノードnMDが実行されている間、常に満たしていなければならない制約条件を示すCTL式を生成する。具体的には、制約条件ファイル生成部151は、CTL式として、AG(ContMD)を生成する(ステップS402)。
続いて、制約条件ファイル生成部151は、抽出したContMDのうち、TypeMDが「Goal」であるContMDに基づいて、ノードnMDが実行された後に満たさなければならないゴール条件を示すCTL式を生成する。具体的には、制約条件ファイル生成部151は、CTL式として、AG(Final→ContMD)を生成する(ステップS403)。
そして、制約条件ファイル生成部151は、CTL式により表されたゴール条件および制約条件が記述された制約条件ファイル161を生成する(ステップS404)。
上述してきたように、本実施例に係る検査用ファイル生成装置100は、目標が定義されるミッション図と、各種手続きが定義されるアクティビティ図と、実行主体が有する権限が定義されるファカルティ図とを図形入力により受け付け、かかるミッション図、アクティビティ図およびファカルティ図に基づいて、各種定義ファイルを生成し、生成した定義ファイルに基づいて、挙動モデルを示す挙動モデルファイル162を生成するので、複数のUML図で記述された作業プロセスに対して網羅的に整合性検査を行うための検査用ファイルを生成することができる。
また、本実施例に係る検査用ファイル生成装置100は、生成した挙動モデルファイル162を用いて、作業プロセスの整合性を検査するので、複数のUML図で記述された作業プロセスに対して網羅的に整合性検査を行うことができる。
なお、上記実施例では、検査用ファイル生成装置100が、挙動モデルファイル162を生成して、生成した挙動モデルファイル162に基づいて作業プロセスの整合性を検査する例について説明したが、検査用ファイル生成装置100は、挙動モデルファイル162の生成処理までを行い、作業プロセスの整合性検査処理については、他の情報処理装置を行ってもよい。
また、図1に示した検査用ファイル生成装置100の構成は、要旨を逸脱しない範囲で種々に変更することができる。例えば、検査用ファイル生成装置100の定義ファイル出力制御部130および検査制御部150の機能をソフトウェアとして実装し、これをコンピュータで実行することにより、検査用ファイル生成装置100と同等の機能を実現することもできる。以下に、定義ファイル出力制御部130および検査制御部150の機能をソフトウェアとして実装した作業プロセス検査プログラム1071を実行するコンピュータの一例を示す。
図14は、作業プロセス検査プログラム1071を実行するコンピュータ1000を示す機能ブロック図である。このコンピュータ1000は、各種演算処理を実行するCPU(Central Processing Unit)1010と、ユーザからのデータの入力を受け付ける入力装置1020と、各種情報を表示するモニタ1030と、記録媒体からプログラム等を読み取る媒体読取り装置1040と、ネットワークを介して他のコンピュータとの間でデータの授受を行うネットワークインターフェース装置1050と、各種情報を一時記憶するRAM(Random Access Memory)1060と、ハードディスク装置1070とをバス1080で接続して構成される。
そして、ハードディスク装置1070には、図1に示した定義ファイル出力制御部130および検査制御部150と同様の機能を有する作業プロセス検査プログラム1071と、図1に示した定義ファイル格納部140に記憶される各種データに対応する定義ファイル1072と、図1に示した検査結果ファイル格納部160に記憶される各種データに対応する検査用データ1073とが記憶される。なお、定義ファイル1072または検査用データ1073を、適宜分散させ、ネットワークを介して接続された他のコンピュータに記憶させておくこともできる。
そして、CPU1010が作業プロセス検査プログラム1071をハードディスク装置1070から読み出してRAM1060に展開することにより、作業プロセス検査プログラム1071は、作業プロセス検査プロセス1061として機能するようになる。そして、作業プロセス検査プロセス1061は、定義ファイル1072および検査用データ1073から読み出した情報等を適宜RAM1060上の自身に割り当てられた領域に展開し、この展開したデータ等に基づいて各種データ処理を実行する。
なお、上記の作業プロセス検査プログラム1071は、必ずしもハードディスク装置1070に格納されている必要はなく、CD−ROM等の記憶媒体に記憶されたこのプログラムを、コンピュータ1000が読み出して実行するようにしてもよい。また、公衆回線、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等を介してコンピュータ1000に接続される他のコンピュータ(またはサーバ)等にこのプログラムを記憶させておき、コンピュータ1000がこれらからプログラムを読み出して実行するようにしてもよい。
本発明は、検査用ファイル生成プログラム、検査用ファイル生成装置および検査用ファイル生成方法に関する。
従来、システム管理者等が情報システムに対して作業(以下、「作業プロセス」という)を行う場合、自然言語によって記述された運用マニュアルを用いることが一般的である。例えば、サーバにパッチを適用する作業プロセスは、かかる作業の手順や規則が記述された運用マニュアルを用いて行われる。
ところで、近年、情報システムは大規模化、複雑化しているため、作業プロセスに求められる手順や規則も複雑化している。このことは、人手で作業プロセスの妥当性を検討することを困難にさせており、障害が発生する原因になっている。また、大規模化、複雑化している情報システムにおいては、少数の人間が断片的な知識を有している場合が多い。知識が細分化されていることは、情報システムの挙動の把握を困難にするため、障害が多発する原因になっている。情報システムは、生活インフラを支えるシステムとして重要性が非常に高まっており、情報システム運用管理上の信頼性を向上させることが強く望まれている。
そこで、近年では、作業プロセスの妥当性を機械的に検査する技術が提案されている。例えば、UML(Unified Modeling Language)図を用いて作業プロセスを記述して、かかるUML図が所定の制約や規則等を満たしているか否かを検査する技術が提案されている。
特開2005−275749号公報
佐々木亨 岡野浩三 楠本真二、「制約指向に基づいたUMLモデルの不整合検出・解消手法の提案」、電子情報通信学会論文誌D、Vol.J90−D No.4 pp.1005−1013、2007年
しかしながら、上記従来技術には、単一のUML図についてしか整合性検査を行うことができず、複数のUML図で記述された作業プロセスについては、UML図間で満たされるべき制約や規則等を網羅的に検査することができないという問題があった。大規模化、複雑化している情報システムでは、作業プロセスを複数の図を用いて記述することが多く、複数のUML図で記述された作業プロセスについても網羅的に検査することができる技術の実現が望まれていた。
なお、網羅的に整合性検査を行うために、コンピュータが解析しやすい方式(例えば、プログラミング言語)で作業プロセスを記述することも考えられるが、システム管理者等に膨大な手間がかかる。また、コンピュータが解析しやすい方式で記述された作業プロセスは、一般に、人間にとって把握しにくく、かえって障害を招くおそれがある。
開示の技術は、上述した従来技術による問題点を解消するためになされたものであり、複数のUML図で記述された作業プロセスに対して網羅的に整合性検査を行うための検査用ファイルを生成する検査用ファイル生成プログラム、検査用ファイル生成装置および検査用ファイル生成方法を提供することを目的とする。
上述した課題を解決し、目的を達成するために、本願に開示する検査用ファイル生成プログラムは、作業プロセスの整合性を検査するための検査用ファイルを生成する検査用ファイル生成プログラムであって、前記作業プロセスに含まれる各種手続きと、前記各種手続きの実行順序と、前記作業プロセスにおいて最終的に達成される目標である最終目標と、前記各種手続きにおいて達成される目標であるサブ目標と、前記各種手続きが実行される際に遵守されるべき制約条件と、前記各種手続きを実行する実行主体と、前記実行主体が実行できる手続きを判別するための権限とに関する各種定義情報を受け付ける受付手順と、前記受付手順によって受け付けられた各種定義情報に基づいて、定義ファイルを生成する定義ファイル生成手順と、前記定義ファイル生成手順によって生成された定義ファイルに基づいて、前記作業プロセスを実行する場合における挙動モデルを示す検査用ファイルを生成する挙動モデル生成手順とをコンピュータに実行させることを要件とする。
なお、本願に開示する検査用ファイル生成プログラムの構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも、他の態様として有効である。
本願に開示した検査用ファイル生成プログラムによれば、複数のUML図で記述された作業プロセスに対して網羅的に整合性検査を行うための検査用ファイルを生成することができるという効果を奏する。
図1は、本実施例に係る検査用ファイル生成装置の構成を示す図である。 図2は、ミッション図の一例を示す図である。 図3は、アクティビティ図の一例を示す図である。 図4は、ファカルティ図の一例を示す図である。 図5は、図3に示したアクティビティ図から生成されるアクティビティ定義ファイルの一例を示す図である。 図6は、制約条件ファイルの一例を示す図である。 図7は、挙動モデルファイルの一例を示す図である。 図8は、挙動モデルファイルに組み込む初期状態の一例を示す図である。 図9−1は、整合性検査結果画面の一例を示す図である。 図9−2は、整合性検査結果画面の一例を示す図である。 図9−3は、整合性検査結果画面の一例を示す図である。 図10は、検査用ファイル生成装置による整合性検査処理手順を示すフローチャートである。 図11は、挙動モデル生成部による挙動モデル生成処理手順を示すフローチャートである。 図12は、挙動モデル生成部による初期状態組込処理手順を示すフローチャートである。 図13は、制約条件ファイル生成部による制約条件ファイル生成処理手順を示すフローチャートである。 図14は、作業プロセス検査プログラムを実行するコンピュータを示す機能ブロック図である。
以下に、本願に開示する検査用ファイル生成プログラム、検査用ファイル生成装置および検査用ファイル生成方法の実施例を図面に基づいて詳細に説明する。なお、この実施例により本願に開示する検査用ファイル生成プログラム、検査用ファイル生成装置および検査用ファイル生成方法が限定されるものではない。
まず、本実施例に係る検査用ファイル生成装置の概要について説明する。本実施例に係る検査用ファイル生成装置は、作業プロセスにおいて最終的に達成される目標と、作業プロセス内で行われる各種手続きと、各種手続きを実行する実行主体が有する権限に関する情報を受け付ける。具体的には、目標、手続き、実行主体が有する権限に関する情報は、利用者によってUMLの記法を用いて入力される。そして、検査用ファイル生成装置は、入力された目標、手続き、実行主体が有する権限に関する情報に基づいて各種定義ファイルを生成する。続いて、検査用ファイル生成装置は、生成した定義ファイルに基づいて、作業プロセスを実行する際の挙動モデルが示す挙動モデルファイルを生成し、かかる挙動モデルファイルを用いて作業プロセスの整合性を検査する。これにより、本実施例に係る検査用ファイル生成装置では、利用者にとって可読性の高い作業プロセス図を用いて、作業プロセスの妥当性を網羅的に検査することが可能になる。
なお、本明細書では、目標が記述された図を「ミッション図」と呼び、手続きが記述された図を「アクティビティ図」と呼び、実行主体が有する権限が記述された図を「ファカルティ図」と呼ぶこととする。
このような検査用ファイル生成装置について、図1を用いて具体的に説明する。図1は、本実施例に係る検査用ファイル生成装置の構成を示す図である。図1に示すように、検査用ファイル生成装置100は、入力部110と、表示部120と、定義ファイル出力制御部130と、定義ファイル格納部140と、検査制御部150と、検査結果ファイル格納部160とを有する。
入力部110は、各種情報や操作指示を入力するための入力デバイスであり、例えば、キーボードやマウスである。表示部120は、各種情報を表示する表示デバイスであり、例えば、モニタである。
なお、本実施例に係る検査用ファイル生成装置100を用いる利用者は、表示部120に表示される所定のUMLエディタを用いて、ミッション図、アクティビティ図およびファカルティ図を入力できるものとする。UMLエディタを実現するためのアプリケーションの例としては、「Eclipse」と、EclipseのUMLプラグインである「SystemDirector Application Modeler UML Editor」との組合せなどがある。
ここで、図2〜図4を用いて、ミッション図、アクティビティ図およびファカルティ図の記述例について説明する。ここでは、作業プロセスとして、サービス用サーバを増設する例を示す。具体的には、かかる作業プロセスは、サーバの利用者がいないことを確認し、システム管理者の承認を得た後に、サービスを停止し、サービス用サーバを増設し、最後にサービスを再起動するという手続きを順に行うものとする。
図2は、ミッション図の一例を示す図である。図2に示した例のように、ミッション図は、作業プロセスにおいて達成される目標が、UMLのクラス図によって記述される図である。具体的には、ミッション図は、作業プロセスにおいて最終的に達成される目標(以下、「最終目標」という)と、最終目標を達成するために必要な目標(以下、「サブ目標」という)が記述される。
また、ミッション図は、各サブ目標が達成すべき条件(以下、「ゴール条件」という)と、各サブ目標が実行されている間、常に満たしていなければならない条件(以下、「制約条件」という)とが時相論理式によって記述される。具体的には、ゴール条件は、「Goal」という文字列が記述されている矩形内に記述され、制約条件は、「Constraint」という文字列が記述されている矩形内に記述される。
図2に例示したミッション図では、最終目標として、「P001:サーバ増設」が記述されている。また、最終目標を達成するために必要なサブ目標として、「P001−01:利用者の確認」と、「P001−02:承認を得る」と、「P001−03:サーバを増設する」とが記述されている。また、サブ目標「P001−01:利用者の確認」のサブ目標として、「P001−01−01:管理サーバにログイン」と、「P001−01−02:利用者を確認」とが記述されている。
また、図2に例示したミッション図では、サブ目標「P001−01−01:管理サーバにログイン」の制約条件として、[Login server]→AF[Logout server]が記述されている。かかる制約条件は、サーバにログインした後は、必ずサーバからログアウトしなければならないことを示している。
また、サブ目標「P001−01−02:利用者を確認」のゴール条件として、[User checked]が記述されている。かかるゴール条件は、サブ目標「P001−01−02:利用者を確認」が目標を達成するためには、サーバを利用するユーザが存在するか否かを確認する必要があることを示している。
また、サブ目標「P001−03:サーバを増設する」のゴール条件として、[New server added]が記述されている。かかるゴール条件は、サブ目標「P001−03:サーバを増設する」が目標を達成するためには、新しいサーバを増設する必要があることを示している。また、サブ目標「P001−03:サーバを増設する」の制約条件として、[New server added]→[New server addition granted]が記述されている。かかる制約条件は、サーバを増設する際には、システム管理者の承認が得られていなければならないことを示している。
図3は、アクティビティ図の一例を示す図である。図3に示した例のように、アクティビティ図は、ミッション図に記述される最終目標を達成するための手続きが、UMLのアクティビティ図によって記述される図である。具体的には、アクティビティ図は、各手続きの実行主体がアクティビティパーティションによって分離され、かかる主体によって実行される各手続きが有向リンクの結合によって記述される。
また、アクティビティ図は、各手続きの事前条件または事後条件が、ノート(コメント)によって記述される。具体的には、事前条件は「localPrecondition」という文字列が記述されているノート内に記述され、事後条件は「localPostcondition」という文字列が記述されているノート内に記述される。
図3に例示したアクティビティ図では、アクティビティパーティションとして、「作業者[Operator]」と、「管理職[Manager]」とが記述されている。そして、実行主体「作業者」によって実行される手続きとして、手続きA1〜A3およびA5〜A8が記述されており、実行主体「管理職」によって実行される手続きとして、手続きA4が記述されている。
また、図3に例示したアクティビティ図では、手続きA1「管理用サーバにログインする」の事後条件として、[Login server]が記述されている。かかる事後条件は、手続きA1が実行された後には、サーバにログインしている状態でなければならないことを示している。
また、手続きA4「サーバ増設承認」の事前条件として、[Has_Authority(Grant)]が記述されており、事後条件として、[New server addition granted]が記述されている。かかる事前条件は、手続きA4が実行される際には、手続きA4を実行する主体(図3の例では、管理職)が承認権限を有していなければならないことを示している。また、かかる事後条件は、手続きA4が実行された後には、システム管理者によって承認が得られていなければならないことを示している。
図4は、ファカルティ図の一例を示す図である。図4に示した例のように、ファカルティ図は、アクティビティ図に記述された手続きの実行主体、および、実行主体が有する権限やスキルがUMLのクラス図によって記述される図である。具体的には、実行主体は「Role」という文字列が記述されている矩形内に記述され、権限は「Authority」という文字列が記述されている矩形内に記述され、スキルは「Skill」という文字列が記述されている矩形内に記述される。
図4に例示したファカルティ図では、実行主体「Manager(管理職)」が、承認するための権限[Grant]を有することが記述されている。また、実行主体「Operator(作業者)」が、サーバを操作するためのスキル[Operate server]を有することが記述されている。
図1に示した定義ファイル出力制御部130は、各種定義ファイルを定義ファイル格納部140へ出力する制御部であり、受付部131と、定義ファイル生成部132と、表示制御部133とを有する。
受付部131は、入力部110を用いて入力された各種情報や操作指示を受け付ける処理部である。具体的には、受付部131は、ミッション図等を作成または編集するために入力された情報を受け付け、受け付けた情報を定義ファイル生成部132および表示制御部133へ出力する。また、受付部131は、利用者によって作業プロセスの整合性検査を開始する旨の操作指示が行われた場合に、定義ファイル生成部132に対して、整合性検査を開始するように指示する。
定義ファイル生成部132は、受付部131から整合性検査を開始する旨の指示を受け付けた場合に、受付部131から入力された情報に基づいて、各種定義ファイルを生成する処理部である。具体的には、定義ファイル生成部132は、ミッション図を作成するために入力部110を用いて入力された情報に基づいて、XMI(XML(Extensible Markup Language) Metadata Interchange)形式のミッション定義ファイル142を生成する。
また、定義ファイル生成部132は、アクティビティ図を作成するために入力部110を用いて入力された情報に基づいて、XMI形式のアクティビティ定義ファイル143を生成する。図5に、図3に示したアクティビティ図から生成されるアクティビティ定義ファイル143の一例を示す。また、定義ファイル生成部132は、ファカルティ図を作成するために入力部110を用いて入力された情報に基づいて、XMI形式のファカルティ定義ファイル144を生成する。
なお、EclipseのUMLプラグインなどにより実現されるUMLエディタは、UML図からXMI形式のファイルを生成する機能を有する。したがって、定義ファイル生成部132による定義ファイル生成処理は、既存のアプリケーションによって実現可能である。
表示制御部133は、表示部120に各種情報を表示させる制御部である。例えば、表示制御部133は、受付部131からミッション図等を作成または編集するために入力された情報を入力された場合に、かかる情報を表示部120に表示させる。
定義ファイル格納部140は、各種定義ファイルが格納される記憶デバイスであり、共通定義ファイル141と、ミッション定義ファイル142と、アクティビティ定義ファイル143と、ファカルティ定義ファイル144とが格納される。
共通定義ファイル141は、あらゆる作業プロセスを検査する場合における共通の規則が記述されているファイルである。例えば、共通定義ファイル141には、「作業プロセスに開始ノードが存在すること」や、「作業プロセスに終了ノードが存在すること」という規則が記述されている。
検査制御部150は、定義ファイル格納部140に格納されている各種定義ファイルに基づいて、作業プロセスの整合性を検査する制御部であり、制約条件ファイル生成部151と、挙動モデル生成部152と、検査部153と、反例生成部154とを有する。
制約条件ファイル生成部151は、共通定義ファイル141と、ミッション定義ファイル142とに基づいて、制約条件ファイル161を生成する処理部である。制約条件ファイル161は、各手続きが満たさなければならないゴール条件および制約条件が、CTL(Computational Tree Logic:計算木論理)式によって記述されるファイルである。
ここで、制約条件ファイル生成部151がミッション定義ファイル142に基づいて制約条件ファイル161を生成する処理について具体的に説明する。ここでは、まず、ミッション図の論理的なデータ構造について説明し、次に、制約条件ファイル生成部151による制約条件ファイル161の生成処理について説明する。
まず、ミッション図の論理的なデータ構造について説明する。ミッション図MDの構成要素は、
MD=(NMD、TMD)・・・(1)
というデータ構造によって定義される。
上記データ構造(1)において、NMDは、ミッション図MDに記述されているノードnMDの集合を示す。なお、ここでいう「ノードnMD」とは、ミッション図MDに記述されている最終目標およびサブ目標を示す。
また、ノードnMDは、
MD=<NameMD、TypeMD、ContMD>・・・(2)
というデータ構造によって定義される。
上記データ構造(2)において、NameMDは、ノードnMDの名称を示す。TypeMDは、ノードnMDのタイプを示す。ContMDは、ゴール条件や制約条件の内容を示し、時相論理式によって表される。具体的には、ノードnMDのTypeMDが「Goal」である場合、かかるノードnMDのContMDには、ゴール条件が設定される。また、ノードnMDのTypeMDが「Constraint」である場合、かかるノードnMDのContMDには、制約条件が設定される。
MDは、ノード集合NMDに含まれるノードnMD間の接続関係tMDの集合を示す。接続関係tMDは、例えば、<n1MD、n2MD>というデータ構造によって定義される。かかるデータ構造は、ノードn1MDと、ノードn2MDとが接続されていることを示す。
なお、ミッション定義ファイル142は、ミッション図MDを表すXMI形式のファイルであるので、ミッション定義ファイル142についても、上記データ構造(1)および(2)のように定義される。
次に、制約条件ファイル生成部151がミッション定義ファイル142に基づいて制約条件ファイル161を生成する処理について説明する。まず、制約条件ファイル生成部151は、ミッション定義ファイル142のノード集合NMDから、ゴール条件や制約条件を示すContMDを抽出する。続いて、制約条件ファイル生成部151は、抽出したContMDのうち、TypeMDが「Constraint」であるContMDに基づいて、ノードnMDが実行されている間、常に満たしていなければならない制約条件を示すCTL式を生成する。具体的には、制約条件ファイル生成部151は、CTL式として、AG(ContMD)を生成する。
続いて、制約条件ファイル生成部151は、抽出したContMDのうち、TypeMDが「Goal」であるContMDに基づいて、ノードnMDが実行された後に満たさなければならないゴール条件を示すCTL式を生成する。具体的には、制約条件ファイル生成部151は、CTL式として、AG(Final→ContMD)を生成する。
そして、制約条件ファイル生成部151は、CTL式により表されたゴール条件および制約条件が記述された制約条件ファイル161を生成する。図6は、制約条件ファイル161の一例を示す図である。図6に例示した制約条件ファイル161において、例えば、「AG(EF [Final])」は、「あらゆる状態から、ActivityFinalNodeへ到達している状態へ到達可能である」という条件を示している。また、例えば、「AG(!Precondtion_error)」は、「あらゆる状態において、アクティビティ実行時に事前条件違反が発生しない」という条件を示している。
図1に示した挙動モデル生成部152は、アクティビティ定義ファイル143に基づいて、作業プロセスを実行する際の挙動モデルを生成する処理部である。具体的には、挙動モデル生成部152は、挙動モデルとして、後述する検査部153が検査処理を行うことができる形式の挙動モデルファイル162を生成する。なお、本実施例に係る検査用ファイル生成装置100では、検査部153として、モデル検査ツールであるNuSMVを用いるものとする。したがって、挙動モデル生成部152は、SMV形式の挙動モデルファイル162を生成する。
また、挙動モデル生成部152は、ファカルティ定義ファイル144に基づいて、挙動モデルにおける初期状態を生成し、生成した初期状態を挙動モデルファイル162に組み込む。ここでいう「初期状態」とは、作業プロセスが実行される前に成立している事象を示し、例えば、実行主体が有する権限などを示す。
ここで、挙動モデル生成部152による挙動モデルファイル162の生成処理、および、初期状態組込処理について具体的に説明する。ここでは、まず、アクティビティ図の論理的なデータ構造について説明し、続いて、ファカルティ図の論理的なデータ構造について説明し、続いて、挙動モデルの論理的なデータ構造について説明し、続いて、挙動モデル生成部152による挙動モデルファイル162の生成処理について説明する。
まず、アクティビティ図の論理的なデータ構造について説明する。アクティビティ図ADの構成要素は、
AD=(PAD、NAD、TAD)・・・(3)
というデータ構造によって定義される。
上記データ構造(3)において、PADは、アクティビティ図ADに記述されているパーティションpADの集合を示す。NADは、アクティビティ図ADに記述されているノードnADの集合を示す。なお、ここでいう「ノードnAD」とは、アクティビティ図ADに含まれる手続きおよびノートを示す。TADは、ノード集合NADに含まれるノードnAD間の順序関係tADの集合を示す。
また、パーティションpADは、
AD=<NameAD、RoleAD>・・・(4)
というデータ構造によって定義される。
上記データ構造(4)において、NameADは、パーティションpADの名称を示す。RoleADは、パーティションpADの役割や、権限、スキルを示す。図3に示したアクティビティ図の例では、NameADが「作業者」であり、RoleADが「Operator」であるパーティションpADと、NameADが「管理職」であり、RoleADが「Manager」であるパーティションpADとが定義される。
また、順序関係tADは、
AD=<SrcAD、DstAD、RelationAD>・・・(5)
というデータ構造によって定義される。
上記データ構造(5)において、SrcADは、順序関係tADの始点となるノードを示し、DstADは、順序関係tADの終点となるノードを示す。RelationADは、始点ノードSrcADと、終点ノードDstADとの間の関係を示す。具体的には、RelationADには、「ControlFlow」または「CommentLine」が設定される。
また、ノードnADは、
AD=<NameAD、TypeAD、PreAD、PostAD>・・・(6)
というデータ構造によって定義される。
上記データ構造(6)において、NameADは、ノードnADのアクション名を示す。TypeADは、ノードnADの種類またはステレオタイプ(Stereotype)を示す。なお、TypeADは、UML2.0の記述仕様に従い、「ExecutableNode」、「InitialNode」、「ActivityFinalNode」、「ForkNode」、「JoinNode」、「MergeNode」、「DecisionNode」、「localPrecondition」、「localPostcondition」のいずれかが設定される。
例えば、TypeADが「ExecutableNode」である場合、NameADには、「サーバにログイン」、「承認処理の実行」などが設定される。また、例えば、TypeADが「localPrecondition」または「localPostcondition」などのステレオタイプである場合、NameADには、アクションの事前条件や事後条件を表す論理式が設定される。
PreADは、ノードnADのアクションが実行される前に満たされなければならない事前条件を示す。具体的には、ノードnADのTypeADが「ExecutableNode」である場合、かかるノードnADの事前条件PreADは、ノードnADと接続されており、かつ、TypeADが「localPrecondition」であるノードnADによって表される。すなわち、2つのノードn1ADおよびn2ADにおいて、「Type1AD = ExecutableNode」、かつ、「Type2AD = localPrecondition」、かつ、「<n1AD、n2AD、CommentLine> ∈ TAD」ならば、「Pre1AD = Name2AD」が成り立つ。
PostADは、ノードnADのアクションが実行された後の事後条件を示す。具体的には、ノードnADのTypeADが「ExecutableNode」である場合、かかるノードnADの事後条件PostADは、ノードnADと接続されており、かつ、TypeADが「localPostcondition」であるノードnADによって表される。
なお、アクティビティ定義ファイル143は、アクティビティ図ADを表すXMI形式のファイルであるので、アクティビティ定義ファイル143についても、上記データ構造(3)〜(6)のように定義される。
続いて、ファカルティ図の論理的なデータ構造について説明する。ファカルティ図FDの構成要素は、
FD=(NFD、TFD)・・・(7)
というデータ構造によって定義される。
上記データ構造(7)において、NFDは、ファカルティ図FDに記述されているノードnFDの集合を示す。なお、ここでいう「ノードnFD」とは、ファカルティ図FDに記載される実行主体、権限およびスキルを示す。TFDは、ノード集合NFDに含まれるノードnFD間の関係tFDの集合を示す。
また、ノードnFDは、
FD=<NameFD、TypeFD>・・・(8)
というデータ構造によって定義される。
上記データ構造(8)において、NameFDは、ノードnFDで表される実行主体、権限またはスキルの名称を示す。TypeFDは、ノードnFDのステレオタイプを示す。具体的には、ノードnFDが実行主体である場合、TypeFDには「Role」が設定され、ノードnFDが権限である場合、TypeFDには「Authority」、ノードnFDがスキルである場合、TypeFDには「Skill」が設定される。
図4に示したファカルティ図の例では、NameFDが「Manager」であり、TypeFDが「Role」であるノードn1FDと、NameFDが「Grant」であり、TypeFDが「Authority」であるノードn2FDとが定義される。また、所定の関係t1FDによって、ノードn1FDとノードn2FDとが関係していることが定義される。したがって、ノードn1FDおよびn2FDと、関係t1FDによって、実行主体「Manager」が権限「Grant」を有していることを把握できる。
同様に、図4に示したファカルティ図の例では、NameFDが「Operator」であり、TypeFDが「Role」であるノードn3FDと、NameFDが「Operate server」であり、TypeFDが「Skill」であるノードn4FDとが定義される。また、所定の関係t2FDによって、ノードn3FDとノードn4FDとが関係していることが定義される。したがって、ノードn3FDおよびn4FDと、関係t2FDによって、実行主体「Operator」がスキル「Operate server」を有していることを把握できる。
なお、ファカルティ定義ファイル144は、ファカルティ図FDを表すXMI形式のファイルであるので、ファカルティ定義ファイル144についても、上記データ構造(7)および(8)のように定義される。
続いて、挙動モデル生成部152が生成する挙動モデルの論理的なデータ構造について説明する。挙動モデルMADは、
AD=(S、SI、R、L)・・・(9)
によって定義される。
上記データ構図(9)において、Sは、アクティビティ図ADにおいて到達可能な状態sの集合を示す。ここでいう「到達可能な状態」とは、アクティビティ図ADにおいて、所定の手続きが実行される前の状態と、所定の手続きが実行されている状態と、所定の手続きが実行された後の状態とを示す。図3に示したアクティビティ図の例では、Sには、手続きA1〜A8が実行される前の状態、手続きA1〜A8が実行されている状態、手続きA1〜A8が実行された後の状態が含まれる。
SIは、状態集合Sに含まれる要素であり、アクティビティ図ADにおける初期状態を示す。図3に示したアクティビティ図の例では、SIは、手続きA1が実行される前の状態を示す。
Lは、状態sから、かかる状態sにおいて成立している事象を表す変数への写像を与えるための関数である。ここでいう「事象を表す変数」とは、例えば、以下の(A)〜(D)に示すものが定義される。
(A)IN(n)
変数IN(n)は、状態sにおいて、ノードnADにより表されるアクションが実行中である場合に、かかる実行の多重度を示す。例えば、状態sが実行中でない場合、IN(n)=0が成り立つ。
(B)ON(t)
変数ON(t)におけるtは、
t=<n1AD、n2AD、ControlFlow>・・・(10)
により定義される。
上記式(10)において、ノードn1ADは、状態sの直前のアクションを示し、ノードn2ADは、状態sの直後のアクションを示す。そして、ON(t)は、ノードn1ADにより表されるアクションが終了し、かつ、ノードn2ADにより表されるアクションが実行前である場合に、かかる実行の多重度を示す。
(C)Has_authority(x、y)・・・(11)
上記式(11)において、xは権限を示し、yは実行主体を示す。例えば、ファカルティ定義ファイル144に、実行主体yが権限xを有していることが記述されている場合、全ての状態sにおいて、Has_authority(x、y)=1(真)が成立する。なお、実行主体yがスキルxを有しているか否かの変数は、Has_skill(x、y)によって表される。
(D)Final
Finalは、アクティビティ図ADにおいて、FinalNodeにより表されているアクションまで到達し、アクティビティが終了したことを示す。具体的には、TypeAD=FinalNodeのとき、状態s|=In(nAD)ならば、状態s|=Finalが成立する。
なお、上記(A)〜(D)に示した変数は、あくまで一例であり、アクティビティ図ADやミッション図MDに記述される他の変数についても、各状態sにおける解釈を与えることができる。以下では、関数Lによって決定される状態sにおける変数vの値を表す関数を、f(L(s)、v)と表すこととする。
Rは、所定の状態s1から別の状態s2へ遷移する条件を示す。以下に、状態s1から状態s2へ遷移する遷移条件Rについて、2つの例を示して説明する。まず、ノードn1ADで表されるアクションが実行中である状態s1から、かかるアクションが実行終了後の状態s2へ遷移する遷移条件R1について説明する。遷移条件R1には、以下に示す条件R1−1〜R1−7が定義される。
(条件R1−1)
f(L(s1),IN(n1AD))>0が成立すること。
(条件R1−2)
OUT={t2AD|t2AD=<n1AD,Dst2AD,ControlFlow>∈T}が空でないこと。すなわち、ノードn1ADを始点ノードとするControlFlowが少なくとも1つ存在すること。
(条件R1−3)
OUT={d,d,・・・,d}のとき、Type1AD≠ForkNodeならば、所定の1つのk(1≦k≦m)について、f(L(s2),ON(d))=f(L(s1),ON(d))+1が成立し、k≠lならば、f(L(s2),ON(d))=f(L(s1),ON(d))が成立すること。
(条件R1−4)
OUT={d,d,・・・,d}のとき、Type1AD=ForkNodeならば、すべてのk(1≦k≦m)について、f(L(s2),ON(d))=f(L(s1),ON(d))+1が成立すること。
(条件R1−5)
f(L(s2),IN(n1AD))=f(L(s1),IN(n1AD))−1が成立すること。
(条件R1−6)
所定の命題αについて、α∈Post1ADならば、f(L(s2),α)=1(真)が成立し、¬α∈Post1ADならば、f(L(s2),α)=0(偽)が成立すること。
(条件R1−7)
上記条件R1−1〜条件R1−6において、指定のない変数および命題xについては、f(L(s1),x)=f(L(s2),x)が成立すること。
続いて、所定の状態s1から、ノードn1ADで表されるアクションが実行中である状態s2へ遷移する遷移条件R2について説明する。遷移条件R2には、以下に示す条件R2−1〜R2−6が定義される。
(条件R2−1)
IN={t1AD|t1AD=<n2AD,n1AD,ControlFlow>∈T}が空でないこと。すなわち、ノードn2ADを終点ノードとするControlFlowが少なくとも1つ存在すること。
(条件R2−2)
IN={e,e,・・・,e}のとき、Type1AD≠ForkNodeならば、所定の1つのk(1≦k≦m)について、f(L(s1),ON(e))>0、かつ、f(L(s2),ON(e))=f(L(s1),ON(e))−1が成立し、k≠lならば、f(L(s2),ON(e))=f(L(s1),ON(e))が成立すること。
(条件R2−3)
IN={e,e,・・・,e}のとき、Type1AD=ForkNodeならば、すべてのk(1≦k≦m)について、f(L(s1),ON(e))>0、かつ、f(L(s2),ON(e))=f(L(s1),ON(e))−1が成立すること。
(条件R2−4)
f(L(s2),IN(n1AD))=f(L(s1),IN(n1AD))+1が成立すること。
(条件R2−5)
所定の命題αについて、α∈Pre1ADならば、f(L(s1),α)=1(真)が成立し、¬α∈Pre1ADならば、f(L(s1),α)=0(偽)が成立すること。
(条件R2−6)
上記条件R2−1〜条件R2−6において、指定のない変数および命題xについては、f(L(s1),x)=f(L(s2),x)が成立すること。
続いて、挙動モデル生成部152による挙動モデルファイル162の生成処理について説明する。挙動モデル生成部152は、アクティビティ定義ファイル143から、順序関係TADを抽出する。続いて、挙動モデル生成部152は、抽出した順序関係TADから各状態s間の遷移関係を構築する。続いて、挙動モデル生成部152は、アクティビティ定義ファイル143から、各ノードnADの事前条件PreADと、事後状態PostADとを抽出する。続いて、挙動モデル生成部152は、事前条件PreADおよび事後状態PostADに基づいて、各状態sにおける真理値を割り当てて、挙動モデルファイル162を生成する。
図7は、SMV形式の挙動モデルファイル162の一例を示す図である。図7に示した挙動モデルファイル162において、「in_0_1」は、図3に示した手続きA2が実行中であることを示しており、「on_6」は、手続きA2の直前のリンクまで実行が終了したことを示す。すなわち、図7に示した挙動モデルファイル162は、手続きA2が実行される状態に遷移するとき、「on_6」を「1」減算し、「in_0_1」を「1」加算し、「User_checked」の値を1(真)にすることを示している。
次に、挙動モデル生成部152による初期状態組込処理について説明する。挙動モデル生成部152は、ファカルティ定義ファイル144の関係TFDに基づいて、TypeFDが「Role」である実行主体のName1FDと、TypeFDが「Authority」である権限のName2FDとの関係を抽出する。続いて、挙動モデル生成部152は、抽出した実行主体Name1FDが、抽出した権限Name2FDを有することを示す自相論理式を生成する。具体的には、挙動モデル生成部152は、自相論理式として、Has_autority(Name1FD、Name2FD)を生成する。
続いて、挙動モデル生成部152は、ファカルティ定義ファイル144の関係TFDに基づいて、TypeFDが「Role」である実行主体のName3FDと、TypeFDが「Skill」である権限のName4FDとの関係を抽出する。続いて、挙動モデル生成部152は、抽出した実行主体Name3FDが、抽出したスキルName4FDを有することを示す自相論理式を生成する。具体的には、挙動モデル生成部152は、自相論理式として、Has_skill(Name3FD、Name4FD)を生成する。
図8は、挙動モデルファイル162に組み込む初期状態の一例を示す図である。例えば、図8中の定義81は、「管理職は、承認権限を有している」ということを示している。挙動モデル生成部152は、このように定義される初期状態を、挙動モデルファイル162に組み込む。なお、挙動モデル生成部152は、初期状態を、挙動モデルファイル162に組み込まず、初期状態が定義されている別のファイルを生成してもよい。
検査部153は、制約条件ファイル161と、挙動モデルファイル162とに基づいて、作業プロセスの整合性が満たされているか否かを検査する処理部である。具体的には、検査部153は、権限またはスキルを有する実行主体によって各手続きが実行されているか否か、制約条件ファイル161に定義されている制約条件を満たしつつ各手続きが実行されるか否か、制約条件ファイル161に定義されているゴール条件を満たすか否かを検査する。そして、検査部153は、作業プロセスの整合性が満たされていない場合に、判定結果ファイル163を生成する。なお、NuSMVは、判定結果ファイル163を生成する機能を有しており、かかる判定結果ファイル163は、テキスト形式のファイルである。
反例生成部154は、検査部153によって生成されたテキスト形式の判定結果ファイル163から、XMI形式の反例ファイル164を生成する処理部である。具体的には、反例生成部154は、整合性が満たされていない手続きを視覚的に把握できるように、XMI形式の反例ファイル164を生成する。例えば、反例生成部154は、整合性が満たされていない原因となっている手続きの表示色を、他の手続きの表示色と変更するように、反例ファイル164を生成する。
そして、反例生成部154は、生成した反例ファイル164を表示制御部133へ出力する。反例ファイル164を受け付けた表示制御部133は、表示部120にアクティビティ図を表示させる。ここで、図9−1〜図9−3を用いて、反例生成部154によって生成された反例ファイル164に基づいて、表示制御部133が表示部120に表示させるアクティビティ図の例について説明する。図9−1〜図9−3は、整合性検査後に表示される画面(以下、「整合性検査結果画面」という)の一例を示す図である。
図9−1〜図9−3は、図3に示したアクティビティ図と比較して、手続きA3から手続きA4へのリンクが、手続きA3から手続きA5へのリンクに変更され、かつ、手続きA8が削除されたアクティビティ図に対する整合性検査結果画面を示している。ここでは、利用者によって入力されたミッション図は、図2に示したミッション図であり、利用者によって入力されたファカルティ図は、図4に示したファカルティ図であるものとする。
かかる場合、制約条件ファイル生成部151は、図6に示した条件P1〜P7を含む制約条件ファイル161を生成し、検査部153は、条件P4、P6およびP7に対する違反を検出する。このうち、図9−1に例示した整合性検査結果画面は、条件P4に対する違反を検出したことが視覚的に把握できるように表示されている。具体的には、図9−1に例示した整合性検査結果画面は、手続きA4の表示色を変更することで、手続きA4を経由せずに、作業プロセスが実行される可能性があることが把握できるように表示されている。すなわち、図9−1に例示した整合性検査結果画面によれば、ミッション図におけるサブ目標「P001−02:承認を得る」が達成されずに作業プロセスが終了する可能性があることを把握できる。
また、図9−2に例示した整合性検査結果画面は、条件P6に対する違反を検出したことが視覚的に把握できるように表示されている。具体的には、図9−2に例示した整合性検査結果画面は、手続きA4および手続きA7の表示色を変更することで、手続きA4を経由しなければ、「サーバ増設時に承認を得ていること」という制約条件に違反することが把握できるように表示されている。
また、図9−3に例示した整合性検査結果画面は、条件P7に対する違反を検出したことが視覚的に把握できるように表示されている。具体的には、図9−3に例示した整合性検査結果画面は、手続きA3の表示色を変更することで、管理サーバにログインした状態のままで、作業プロセスが終了することが把握できるように表示されている。
なお、図9−1〜図9−3に示した整合性検査結果画面は、あくまで一例であり、反例生成部154は、他の整合性検査結果画面が表示されるように反例ファイル164を生成してもよい。例えば、反例生成部154は、整合性が満たされない原因となっている手続き近傍に、かかる原因が文字列によって表示されるように反例ファイル164を生成してもよい。
検査結果ファイル格納部160は、検査結果に関する各種ファイルが格納される記憶デバイスであり、制約条件ファイル161と、挙動モデルファイル162と、判定結果ファイル163と、反例ファイル164とが格納される。
次に、本実施例に係る検査用ファイル生成装置100による整合性検査処理の手順について説明する。図10は、検査用ファイル生成装置100による整合性検査処理手順を示すフローチャートである。図10に示すように、検査用ファイル生成装置100の受付部131は、ミッション図、アクティビティ図またはファカルティ図を作成または編集するための情報を受け付ける(ステップS101)。
続いて、受付部131によって作業プロセスの整合性検査を開始する旨の操作指示が受け付けられた場合(ステップS102肯定)、定義ファイル生成部132は、各種定義ファイルを生成する(ステップS103)。具体的には、定義ファイル生成部132は、ミッション図を作成するために入力された情報に基づいて、ミッション定義ファイル142を生成する。また、定義ファイル生成部132は、アクティビティ図を作成するために入力された情報に基づいて、アクティビティ定義ファイル143を生成する。また、定義ファイル生成部132は、ファカルティ図を作成するために入力された情報に基づいて、ファカルティ定義ファイル144を生成する。
続いて、表示制御部133は、定義ファイル生成部132によってアクティビティ定義ファイル143が生成されなかった場合(ステップS104否定)、表示部120に、アクティビティ図を作成する旨のエラーを表示させる(ステップS105)。
一方、定義ファイル生成部132によってアクティビティ定義ファイル143が生成された場合(ステップS104肯定)、挙動モデル生成部152は、アクティビティ定義ファイル143に基づいて、挙動モデルファイル162を生成する挙動モデル生成処理を行う(ステップS106)。なお、挙動モデル生成部152による挙動モデル生成処理については、後に詳述する。
続いて、定義ファイル生成部132によってファカルティ定義ファイル144が生成された場合(ステップS107肯定)、挙動モデル生成部152は、ファカルティ定義ファイル144に基づいて、挙動モデルファイル162に初期状態を組み込む初期状態組込処理を行う(ステップS108)。一方、定義ファイル生成部132によってファカルティ定義ファイル144が生成されなかった場合(ステップS107否定)、挙動モデル生成部152は、初期状態組込処理を行わない。なお、挙動モデル生成部152による初期状態組込処理については、後に詳述する。
続いて、定義ファイル生成部132によってミッション定義ファイル142が生成された場合(ステップS109肯定)、制約条件ファイル生成部151は、共通定義ファイル141と、ミッション定義ファイル142とに基づいて、制約条件ファイル161を生成する制約条件ファイル生成処理を行う(ステップS110)。なお、制約条件ファイル生成部151による制約条件ファイル生成処理については、後に詳述する。
一方、定義ファイル生成部132によってミッション定義ファイル142が生成されなかった場合(ステップS109否定)、制約条件ファイル生成部151は、共通定義ファイル141に基づいて、制約条件ファイル161を生成する(ステップS111)。
続いて、検査部153は、制約条件ファイル161と、挙動モデルファイル162とに基づいて、作業プロセスの整合性が満たされているか否かを検査する(ステップS112)。作業プロセスの整合性が満たされている場合(ステップS113肯定)、検査部153は、処理を終了する。このとき、表示制御部133は、表示部120に、作業プロセスの整合性が満たされている旨を表示させてもよい。
一方、作業プロセスの整合性が満たされていない場合(ステップS113否定)、検査部153は、判定結果ファイル163を生成する(ステップS114)。続いて、反例生成部154は、検査部153によって生成された判定結果ファイル163から、反例ファイル164を生成する(ステップS115)。そして、表示制御部133は、反例生成部154によって生成された反例ファイル164に基づいて、表示部120に、整合性検査結果画面を表示させる(ステップS116)。
次に、挙動モデル生成部152による挙動モデル生成処理の手順について説明する。図11は、挙動モデル生成部152による挙動モデル生成処理手順を示すフローチャートである。図11に示すように、挙動モデル生成部152は、論理的なデータ構造に定義できるアクティビティ定義ファイル143から、順序関係TADを抽出する(ステップS201)。
続いて、挙動モデル生成部152は、抽出した順序関係TADから各状態s間の遷移関係を構築する(ステップS202)。続いて、挙動モデル生成部152は、アクティビティ定義ファイル143から、各ノードnADの事前条件PreADと、事後状態PostADとを抽出する(ステップS203)。
続いて、挙動モデル生成部152は、事前条件PreADおよび事後状態PostADに基づいて、各状態sにおける真理値を割り当てて(ステップS204)、挙動モデルファイル162を生成する(ステップS205)。
次に、挙動モデル生成部152による初期状態組込処理の手順について説明する。図12は、挙動モデル生成部152による初期状態組込処理手順を示すフローチャートである。図12に示すように、挙動モデル生成部152は、論理的なデータ構造に定義できるファカルティ定義ファイル144の関係TFDに基づいて、TypeFDが「Role」である実行主体のName1FDと、TypeFDが「Authority」である権限のName2FDとの関係を抽出する(ステップS301)。
続いて、挙動モデル生成部152は、抽出した実行主体Name1FDが、抽出した権限Name2FDを有することを示す自相論理式を生成する(ステップS302)。具体的には、挙動モデル生成部152は、自相論理式として、Has_autority(Name1FD、Name2FD)を生成する。
続いて、挙動モデル生成部152は、ファカルティ定義ファイル144の関係TFDに基づいて、TypeFDが「Role」である実行主体のName3FDと、TypeFDが「Skill」である権限のName4FDとの関係を抽出する(ステップS303)。続いて、挙動モデル生成部152は、抽出した実行主体Name3FDが、抽出したスキルName4FDを有することを示す自相論理式を生成する(ステップS304)。具体的には、挙動モデル生成部152は、自相論理式として、Has_skill(Name3FD、Name4FD)を生成する。
そして、挙動モデル生成部152は、上記ステップS302およびS304において生成した自相論理式を初期状態として、挙動モデルファイル162に組み込む(ステップS305)。
次に、制約条件ファイル生成部151による制約条件ファイル生成処理の手順について説明する。図13は、制約条件ファイル生成部151による制約条件ファイル生成処理手順を示すフローチャートである。図13に示すように、制約条件ファイル生成部151は、論理的なデータ構造に定義できるミッション定義ファイル142のノード集合NMDから、ゴール条件や制約条件を示すContMDを抽出する(ステップS401)。
続いて、制約条件ファイル生成部151は、抽出したContMDのうち、TypeMDが「Constraint」であるContMDに基づいて、ノードnMDが実行されている間、常に満たしていなければならない制約条件を示すCTL式を生成する。具体的には、制約条件ファイル生成部151は、CTL式として、AG(ContMD)を生成する(ステップS402)。
続いて、制約条件ファイル生成部151は、抽出したContMDのうち、TypeMDが「Goal」であるContMDに基づいて、ノードnMDが実行された後に満たさなければならないゴール条件を示すCTL式を生成する。具体的には、制約条件ファイル生成部151は、CTL式として、AG(Final→ContMD)を生成する(ステップS403)。
そして、制約条件ファイル生成部151は、CTL式により表されたゴール条件および制約条件が記述された制約条件ファイル161を生成する(ステップS404)。
上述してきたように、本実施例に係る検査用ファイル生成装置100は、目標が定義されるミッション図と、各種手続きが定義されるアクティビティ図と、実行主体が有する権限が定義されるファカルティ図とを図形入力により受け付け、かかるミッション図、アクティビティ図およびファカルティ図に基づいて、各種定義ファイルを生成し、生成した定義ファイルに基づいて、挙動モデルを示す挙動モデルファイル162を生成するので、複数のUML図で記述された作業プロセスに対して網羅的に整合性検査を行うための検査用ファイルを生成することができる。
また、本実施例に係る検査用ファイル生成装置100は、生成した挙動モデルファイル162を用いて、作業プロセスの整合性を検査するので、複数のUML図で記述された作業プロセスに対して網羅的に整合性検査を行うことができる。
なお、上記実施例では、検査用ファイル生成装置100が、挙動モデルファイル162を生成して、生成した挙動モデルファイル162に基づいて作業プロセスの整合性を検査する例について説明したが、検査用ファイル生成装置100は、挙動モデルファイル162の生成処理までを行い、作業プロセスの整合性検査処理については、他の情報処理装置を行ってもよい。
また、図1に示した検査用ファイル生成装置100の構成は、要旨を逸脱しない範囲で種々に変更することができる。例えば、検査用ファイル生成装置100の定義ファイル出力制御部130および検査制御部150の機能をソフトウェアとして実装し、これをコンピュータで実行することにより、検査用ファイル生成装置100と同等の機能を実現することもできる。以下に、定義ファイル出力制御部130および検査制御部150の機能をソフトウェアとして実装した作業プロセス検査プログラム1071を実行するコンピュータの一例を示す。
図14は、作業プロセス検査プログラム1071を実行するコンピュータ1000を示す機能ブロック図である。このコンピュータ1000は、各種演算処理を実行するCPU(Central Processing Unit)1010と、ユーザからのデータの入力を受け付ける入力装置1020と、各種情報を表示するモニタ1030と、記録媒体からプログラム等を読み取る媒体読取り装置1040と、ネットワークを介して他のコンピュータとの間でデータの授受を行うネットワークインターフェース装置1050と、各種情報を一時記憶するRAM(Random Access Memory)1060と、ハードディスク装置1070とをバス1080で接続して構成される。
そして、ハードディスク装置1070には、図1に示した定義ファイル出力制御部130および検査制御部150と同様の機能を有する作業プロセス検査プログラム1071と、図1に示した定義ファイル格納部140に記憶される各種データに対応する定義ファイル1072と、図1に示した検査結果ファイル格納部160に記憶される各種データに対応する検査用データ1073とが記憶される。なお、定義ファイル1072または検査用データ1073を、適宜分散させ、ネットワークを介して接続された他のコンピュータに記憶させておくこともできる。
そして、CPU1010が作業プロセス検査プログラム1071をハードディスク装置1070から読み出してRAM1060に展開することにより、作業プロセス検査プログラム1071は、作業プロセス検査プロセス1061として機能するようになる。そして、作業プロセス検査プロセス1061は、定義ファイル1072および検査用データ1073から読み出した情報等を適宜RAM1060上の自身に割り当てられた領域に展開し、この展開したデータ等に基づいて各種データ処理を実行する。
なお、上記の作業プロセス検査プログラム1071は、必ずしもハードディスク装置1070に格納されている必要はなく、CD−ROM等の記憶媒体に記憶されたこのプログラムを、コンピュータ1000が読み出して実行するようにしてもよい。また、公衆回線、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等を介してコンピュータ1000に接続される他のコンピュータ(またはサーバ)等にこのプログラムを記憶させておき、コンピュータ1000がこれらからプログラムを読み出して実行するようにしてもよい。
100 検査用ファイル生成装置
110 入力部
120 表示部
130 定義ファイル出力制御部
131 受付部
132 定義ファイル生成部
133 表示制御部
140 定義ファイル格納部
141 共通定義ファイル
142 ミッション定義ファイル
143 アクティビティ定義ファイル
144 ファカルティ定義ファイル
150 検査制御部
151 制約条件ファイル生成部
152 挙動モデル生成部
153 検査部
154 反例生成部
160 検査結果ファイル格納部
161 制約条件ファイル
162 挙動モデルファイル
163 判定結果ファイル
164 反例ファイル
1000 コンピュータ
1010 CPU
1020 入力装置
1030 モニタ
1040 媒体読取り装置
1050 ネットワークインターフェース装置
1060 RAM
1061 作業プロセス検査プロセス
1070 ハードディスク装置
1071 作業プロセス検査プログラム
1072 定義ファイル
1073 検査用データ
1080 バス

Claims (15)

  1. 作業プロセスの整合性を検査するための検査用ファイルを生成する検査用ファイル生成プログラムであって、
    前記作業プロセスに含まれる各種手続きと、前記各種手続きの実行順序と、前記作業プロセスにおいて最終的に達成される目標である最終目標と、前記各種手続きにおいて達成される目標であるサブ目標と、前記各種手続きが実行される際に遵守されるべき制約条件と、前記各種手続きを実行する実行主体と、前記実行主体が実行できる手続きを判別するための権限とに関する各種定義情報を受け付ける受付手順と、
    前記受付手順によって受け付けられた各種定義情報に基づいて、定義ファイルを生成する定義ファイル生成手順と、
    前記定義ファイル生成手順によって生成された定義ファイルに基づいて、前記作業プロセスを実行する場合における挙動モデルを示す検査用ファイルを生成する挙動モデル生成手順と
    をコンピュータに実行させることを特徴とする検査用ファイル生成プログラム。
  2. 前記受付手順は、前記各種定義情報として、該各種定義情報が図形および文字列により表された図である定義図を受け付け、
    前記定義ファイル生成手順は、前記受付手順によって受け付けられた定義図に基づいて、定義ファイルを生成することを特徴とする請求項1に記載の検査用ファイル生成プログラム。
  3. 前記受付手順は、前記定義図として、前記最終目標、前記サブ目標および前記制約条件が定義された定義図であるミッション図と、前記各種手続き、前記実行順序および前記実行主体が定義された定義図であるアクティビティ図と、前記実行主体が有する権限が定義された定義図であるファカルティ図とを受け付けることを特徴とする請求項2に記載の検査用ファイル生成プログラム。
  4. 前記受付手順は、UML(Unified Modeling Language)の記法に則って記述された定義図を受け付けることを特徴とする請求項2または3に記載の検査用ファイル生成プログラム。
  5. 前記挙動モデル生成手順によって生成された挙動モデルに基づいて、前記作業プロセスの整合性が満たされているか否かを検査する検査手順をさらにコンピュータに実行させることを特徴とする請求項1〜3のいずれか一つに記載の検査用ファイル生成プログラム。
  6. 前記検査手順は、前記各種手続きが実行される際に前記サブ目標が達成されるか否か、前記各種手続きが実行される際に前記制約条件が遵守されるか否か、前記各種手続きが前記権限を有する主体によって実行されるか否か、前記最終目標が達成されるか否かを検査することを特徴とする請求項5に記載の検査用ファイル生成プログラム。
  7. 前記検査手順によって前記作業プロセスが整合性を満たさないと判定された場合に、整合性を満たさない原因となっている手続きを識別できるように所定の表示部に表示させる表示制御手順をさらにコンピュータに実行させることを特徴とする請求項5に記載の検査用ファイル生成プログラム。
  8. 作業プロセスの整合性を検査するための検査用ファイルを生成する検査用ファイル生成装置であって、
    前記作業プロセスに含まれる各種手続きと、前記各種手続きの実行順序と、前記作業プロセスにおいて最終的に達成される目標である最終目標と、前記各種手続きにおいて達成される目標であるサブ目標と、前記各種手続きが実行される際に遵守されるべき制約条件と、前記各種手続きを実行する実行主体と、前記実行主体が実行できる手続きを判別するための権限とに関する各種定義情報を受け付ける受付手段と、
    前記受付手段によって受け付けられた各種定義情報に基づいて、定義ファイルを生成する定義ファイル生成手段と、
    前記定義ファイル生成手段によって生成された定義ファイルに基づいて、前記作業プロセスを実行する場合における挙動モデルを示す検査用ファイルを生成する挙動モデル生成手段と
    を備えたことを特徴とする検査用ファイル生成装置。
  9. 前記受付手段は、前記各種定義情報として、該各種定義情報が図形および文字列により表された図である定義図を受け付け、
    前記定義ファイル生成手段は、前記受付手段によって受け付けられた定義図に基づいて、定義ファイルを生成することを特徴とする請求項8に記載の検査用ファイル生成装置。
  10. 前記受付手段は、前記定義図として、前記最終目標、前記サブ目標および前記制約条件が定義された定義図であるミッション図と、前記各種手続き、前記実行順序および前記実行主体が定義された定義図であるアクティビティ図と、前記実行主体が有する権限が定義された定義図であるファカルティ図とを受け付けることを特徴とする請求項9に記載の検査用ファイル生成装置。
  11. 前記受付手段は、UML(Unified Modeling Language)の記法に則って記述された定義図を受け付けることを特徴とする請求項9または10に記載の検査用ファイル生成装置。
  12. 前記挙動モデル生成手段によって生成された挙動モデルに基づいて、前記作業プロセスの整合性が満たされているか否かを検査する検査手段をさらに備えたことを特徴とする請求項8〜10のいずれか一つに記載の検査用ファイル生成装置。
  13. 前記検査手段は、前記各種手続きが実行される際に前記サブ目標が達成されるか否か、前記各種手続きが実行される際に前記制約条件が遵守されるか否か、前記各種手続きが前記権限を有する主体によって実行されるか否か、前記最終目標が達成されるか否かを検査することを特徴とする請求項12に記載の検査用ファイル生成装置。
  14. 前記検査手段によって前記作業プロセスが整合性を満たさないと判定された場合に、整合性を満たさない原因となっている手続きを識別できるように所定の表示部に表示させる表示制御手段をさらに備えたことを特徴とする請求項12に記載の検査用ファイル生成装置。
  15. 作業プロセスの整合性を検査するための検査用ファイルを生成する検査用ファイル生成装置における検査用ファイル生成方法であって、
    前記検査用ファイル生成装置が、
    前記作業プロセスに含まれる各種手続きと、前記各種手続きの実行順序と、前記作業プロセスにおいて最終的に達成される目標である最終目標と、前記各種手続きにおいて達成される目標であるサブ目標と、前記各種手続きが実行される際に遵守されるべき制約条件と、前記各種手続きを実行する実行主体と、前記実行主体が実行できる手続きを判別するための権限とに関する各種定義情報を受け付ける受付工程と、
    前記受付工程によって受け付けられた各種定義情報に基づいて、定義ファイルを生成する定義ファイル生成工程と、
    前記定義ファイル生成工程によって生成された定義ファイルに基づいて、前記作業プロセスを実行する場合における挙動モデルを示す検査用ファイルを生成する挙動モデル生成工程と
    を含んだことを特徴とする検査用ファイル生成方法。
JP2010514318A 2008-05-30 2008-05-30 ファイル生成プログラム、ファイル生成装置およびファイル生成方法 Expired - Fee Related JP5246258B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2008/060071 WO2009144826A1 (ja) 2008-05-30 2008-05-30 検査用ファイル生成プログラム、検査用ファイル生成装置および検査用ファイル生成方法

Publications (2)

Publication Number Publication Date
JPWO2009144826A1 true JPWO2009144826A1 (ja) 2011-09-29
JP5246258B2 JP5246258B2 (ja) 2013-07-24

Family

ID=41376725

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010514318A Expired - Fee Related JP5246258B2 (ja) 2008-05-30 2008-05-30 ファイル生成プログラム、ファイル生成装置およびファイル生成方法

Country Status (4)

Country Link
US (1) US8103914B2 (ja)
JP (1) JP5246258B2 (ja)
GB (1) GB2472944A (ja)
WO (1) WO2009144826A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100138700A (ko) * 2009-06-25 2010-12-31 삼성전자주식회사 가상 세계 처리 장치 및 방법
US9069559B2 (en) * 2010-06-30 2015-06-30 International Business Machines Corporation Modularizing steps within a UML user model interaction pattern
EP2530584A1 (de) * 2011-06-03 2012-12-05 dSPACE digital signal processing and control engineering GmbH Konfigurationseinrichtung zur graphischen Erstellung einer Testsequenz
US8863292B2 (en) * 2011-12-07 2014-10-14 International Business Machines Corporation Interactive analysis of a security specification
US8831926B2 (en) * 2012-05-11 2014-09-09 Dassault Systemes Simulia Corp. Verification of cyber-physical systems using optimization algorithms
JP5966890B2 (ja) 2012-11-29 2016-08-10 富士通株式会社 制約条件抽出プログラム、制約条件抽出装置および制約条件抽出方法
CN109614309B (zh) * 2018-10-22 2023-10-20 中国平安财产保险股份有限公司 比较测试结果的方法、装置、计算机设备以及存储介质
JP7264253B2 (ja) * 2019-08-30 2023-04-25 日本電気株式会社 情報処理装置、制御方法及びプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003337697A (ja) * 2002-05-20 2003-11-28 Ul Systems Inc ビジネスシステムの開発システムおよびビジネスシステムの開発方法
JP2005275749A (ja) 2004-03-24 2005-10-06 Nomura Research Institute Ltd 方式設計支援方法および装置
JP4667386B2 (ja) * 2004-09-24 2011-04-13 富士通株式会社 業務モデル図作成支援プログラム、業務モデル図作成支援方法、および業務モデル図作成支援装置
US20060265691A1 (en) * 2005-05-20 2006-11-23 Business Machines Corporation System and method for generating test cases
JP2008059035A (ja) * 2006-08-29 2008-03-13 Fuji Xerox Co Ltd ワークフローシステム及びプログラム
US8769482B2 (en) * 2008-12-16 2014-07-01 International Business Machines Corporation Method and system for building an application
US8413108B2 (en) * 2009-05-12 2013-04-02 Microsoft Corporation Architectural data metrics overlay

Also Published As

Publication number Publication date
WO2009144826A1 (ja) 2009-12-03
GB201020003D0 (en) 2011-01-12
US20110066889A1 (en) 2011-03-17
GB2472944A (en) 2011-02-23
US8103914B2 (en) 2012-01-24
JP5246258B2 (ja) 2013-07-24

Similar Documents

Publication Publication Date Title
JP5246258B2 (ja) ファイル生成プログラム、ファイル生成装置およびファイル生成方法
US7908518B2 (en) Method, system and computer program product for failure analysis implementing automated comparison of multiple reference models
US6385765B1 (en) Specification and verification for concurrent systems with graphical and textual editors
US8806272B2 (en) Dependability maintenance system, change accommodation cycle execution device, failure response cycle execution device, method for controlling dependability maintenance system, control program, and computer-readable storage medium storing the control program
US8996447B2 (en) Decision service manager
US20120323550A1 (en) System and method for system integration test (sit) planning
US10481981B2 (en) System and method for automatic correction of a database configuration in case of quality defects
EP2667301B1 (en) Decision service manager
US8676627B2 (en) Vertical process merging by reconstruction of equivalent models and hierarchical process merging
US8381190B2 (en) Leveraging the relationship between object IDs and functions in diagnosing software defects during the post-deployment phase
US20190129832A1 (en) System and method for test data generation for use in model based testing using source code test annotations and constraint solving
CN102833118B (zh) 远程维护系统及方法
Pataricza et al. UML-based design and formal analysis of a safety-critical railway control software module
CN113094251A (zh) 嵌入式系统测试方法、装置、计算机设备和存储介质
Jetley et al. Applying software engineering practices for development of industrial automation applications
CN111078444A (zh) 用于故障行为的安全分析的系统和方法
US9298428B2 (en) Graphical user interface editor that displays live data during editing
JP2006031354A (ja) テストプログラム生成装置及びテストプログラム生成システム
Krka et al. Probabilistic automata for architecture-based reliability assessment
Barber et al. Providing early feedback in the development cycle through automated application of model checking to software architectures
JP2022153237A (ja) セキュリティテストシステム
Carson et al. 2.5. 1 Functional Architecture as the Core of Model‐Based Systems Engineering
US20200074309A1 (en) Systems and methods to semantically compare product configuration models
Vassev et al. Automated test case generation of self-managing policies for NASA prototype missions developed with ASSL
Schieferdecker et al. Advanced Software Engineering: Developing and testing model-based software securely and efficiently

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120807

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121009

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130325

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5246258

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160419

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees