(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-01
(45)【発行日】2024-11-12
(54)【発明の名称】自然言語からの機能アーキテクチャドキュメントならびにソフトウェア設計および分析仕様ドキュメントの自動生成のためのプロセスおよびシステム
(51)【国際特許分類】
G06F 8/73 20180101AFI20241105BHJP
G06N 5/00 20230101ALI20241105BHJP
【FI】
G06F8/73
G06N5/00
(21)【出願番号】P 2021570418
(86)(22)【出願日】2020-05-28
(86)【国際出願番号】 IB2020055096
(87)【国際公開番号】W WO2020240482
(87)【国際公開日】2020-12-03
【審査請求日】2023-04-05
(32)【優先日】2019-05-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521516396
【氏名又は名称】レヒカ・エセ・ア・エセ
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ナディア・アナリア・ウエブラ
【審査官】渡辺 順哉
(56)【参考文献】
【文献】米国特許出願公開第2017/0003937(US,A1)
【文献】特開平10-031582(JP,A)
【文献】特開平04-137073(JP,A)
【文献】特開2010-257452(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00-8/77
G06F 9/44-9/445
G06N 5/00
(57)【特許請求の範囲】
【請求項1】
データベースメモリ
(130)に記憶される、ケースを説明する自然言語で表現された語句および数式から機能アーキテクチャドキュメントを生成するためのコンピュータによって実施される方法であって、
A. 入力/出力デバイス
(120)を通じて、MASメタモデル
(161)と名付けられた論理構造をアップロードするステップであって、前記MASメタモデルが、前記データベースメモリ
(130)に記憶された形態的統語的規則に従って、前記自然言語および前記数式の公理的原則を定め、プロセッサ
(150)の構成に応じて以下の機能、すなわち、自動文アナライザ
(151)、自動ソフトウェアデザイナ
(152)、およびドキュメントジェネレータ
(153)を実行する前記プロセッサ
(150)の挙動を決定し、
段階Aが、以下の下位段階、すなわち、
A1. 自動文アナライザとして構成された前記プロセッサ
(150)が分析ドキュメントおよび設計ドキュメントを生成するために使用する論理を定義する前記MASメタモデル
(161)を前記データベースメモリ
(130)に記憶することであって、前記論理が、他動詞に基づくPerformerの単語、Performableの単語、およびPerformanceの単語の自動生成を含む、記憶すること、
A2. 自然言語および数式のあらゆる文がa)単文内の単語がWHの質問と名付けられた「when」、「who」、「what」、「how」、および「where」の形態のどの質問に属するかを定義する質問論理、b)どのタイプの動詞が前記WHの質問を構成するか(明示的な計算(FX)、チェック/確認(CC)、問い合わせ/検索(QS)、リンク(L)、未指定(F))を定義するステップタイプ論理、ならびにc)単語のタイプを定義する単語論理に基づいて構築され得ると定める形態的統語的規則に関する前記MASメタモデル
(161)の前記論理を前記データベースメモリに記憶すること
から構成される、ステップ、
B. 適格言語のリスト、それぞれの適格言語の文法的特徴および統語的特徴を
、前記入力/出力デバイス
(120)の言語ユーザインターフェース
(121)を通じて入力し、このデータを前記データベースメモリ
(130)に記憶するステップ、
C. 段階Bからの適格言語の前記リストから選択された自然言語のうちの1つのテキストとして前記「ケース」の説明を入力するために
、前記入力/出力デバイス
(120)のケースユーザインターフェース
(122)を通じて入力し、それから、前記説明を前記データベースメモリ
(130)に記憶するステップ
であって、前記テキストはユーザによって導入された、ステップ、
D. 段階Cからの前記ケースの単文および数学的モーメントを特定
するステップであって、
前記ユーザは各文に関して前記WHの質問に答え、それから前記単文および前記数学的モーメントが前記データベースメモリに記憶され得るように前記単文および前記数学的モーメントをアップロードするために
、前記入力/出力デバイス
(120)の前記ケースユーザインターフェース
(122)を使用
し、
前記特定
するステップが、以下の下位
段階、すなわち、
種類Lおよび種類Fのステップに関する前記ケースの各ステップの前記質問に対する答えとともに、前記単文を特定すること、
前記種類Lおよび前記種類Fの各ステップからの答えを連結すること、
種類QS、種類FX、および種類CCのステップに関する前記ケースの各ステップの前記質問に対する答えとともに、前記ケースの前記数学的モーメントに対応する前記単文を特定すること、
タイプQS、タイプFX、およびタイプCCの各ステップの応答を連結することと
を含む、ステップ、
E. 段階Aにおいて定められたように、自動文アナライザ
(151)として構成された前記プロセッサ
(150)によって、段階Dからの前記単文に関して機能構成要素および数学的構成要素を特定し、前記機能構成要素および前記数学的構成要素を前記データベースメモリ
(130)に記憶するステップ、
F. 機能アーキテクチャドキュメントを、特にこのタイプのドキュメントのために定義されたグラフィカルな表記を使用して、ドキュメントジェネレータとして構成された前記プロセッサ
(150)によって、段階Eからの前記機能構成要素および前記数学的構成要素に基づいて自動的に生成するステップであって、機能アーキテクチャの前記生成が、以下の下位段階、すなわち、
F1. 前記形態的統語的規則を適用することであって、前記形態的統語的規則に基づいて、ドキュメントジェネレータ
(153)として構成された前記プロセッサ
(150)が、述べられた特定の単語を前記機能構成要素から除外し、他動詞の場合に新しい機能構成要素、すなわち、名前が動詞に動作主を示す接尾辞「ER」を付け加えたものである機能構成要素および名前が前記動詞に接尾辞「BLE」を付け加えたものであるその他の機能構成要素を生成する、適用すること、
F2. 機能アーキテクチャ図において使用されるべ
きグラフィカルな表記を、前記入力/出力デバイス
(120)のフォーマット、グラフィカルな表記、および文ユーザインターフェース(STD)
(123)を使用して定義し、対応する単語タイプに従って各機能構成要素に関して前記図において使用されるグラフィカルな構成要素を示し、前記グラフィカルな表記を前記データベースメモリ
(130)に記憶すること、
F3. 段階F2において定義された前記表記を使用して、前記データベースメモリ
(130)に記憶された前記機能構成要素に基づいて
、前記プロセッサ
(150)を使用して前記機能アーキテクチャドキュメントを生成し、前記機能アーキテクチャドキュメントを前記入力/出力デバイス上に表示すること
を含む、ステップ
を含む、方法。
【請求項2】
段階Bが、以下の下位段階、すなわち、
B1. 選択された適格言語の形容詞の順序を前記入力/出力デバイス
(120)を通じて入力し、前記順序を前記データベースメモリ
(130)に記憶すること、
B2. 段階Dからの前記単文のテキスト上で発見されることが可能であり、機能構成要素のリストから除外されるべきである、前記選択された適格言語の特殊な単語を前記入力/出力デバイス
(120)を通じて入力し、前記特殊な単語を前記データベースメモリ
(130)に記憶すること、
B3. 2つ以上の単語を含む機能構成要素をリンクするために使用され、段階Dからの前記単文の前記テキスト内で発見されることが可能である、前記選択された適格言語のグループ化する単語を前記入力/出力デバイス
(120)を通じて入力し、前記グループ化する単語を前記データベースメモリ
(130)に記憶すること、
B4. 段階Dからの前記単文の前記テキスト内で発見されることが可能である、前記選択された適格言語の不定形動詞の動詞語尾を前記入力/出力デバイス
(120)を通じて入力し、前記動詞語尾を前記データベースメモリ
(130)に記憶することからなること
を特徴とする、請求項1に記載の方法。
【請求項3】
段階Cが、以下の下位段階、すなわち、
C1. ケースユーザインターフェース
(122)として構成された前記入力/出力デバイス
(120)を使用して、段階Bにおいて定義された前記適格言語から、前記ケースが説明される言語を選択すること、
C3. 前記下位段階A2を適用することによって前記ケースの前記ステップを特定し、前記ステップを前記データベースメモリ
(130)に記憶することからなること
を特徴とする、請求項1に記載の方法。
【請求項4】
段階Cが、前記「ケース」の文脈を構造化する構成要素、レイヤ、リソース、プロセス、サブプロセス、およびモーメントを特定し、前記構成要素、前記レイヤ、前記リソース、前記プロセス、前記サブプロセス、および前記モーメントを前記データベースメモリ
(130)に記憶することからなることを特徴とする、請求項1に記載の方法。
【請求項5】
段階Eが、前記単文を単語に分解し、前記単語を選択された言語に従って特徴付け、前記単文の前記機能構成要素を特定し、前記機能構成要素を前記データベースメモリ
(130)に記憶することからなることを特徴とする、請求項1に記載の方法。
【請求項6】
段階Eにおいて、ユーザが、単文から自動的に特定された機能構成要素のリスト内に存在しない機能構成要素を追加することを特徴とする、請求項1に記載の方法。
【請求項7】
段階Eが、前記ステップのタイプFX、CC、およびQSに関連付けられた前記機能構成要素を特定するステップをさらに含むことを特徴とする、請求項1に記載の方法。
【請求項8】
段階Eにおいて、ユーザが、すべてのCCタイプのステップおよびFXタイプのステップに関して前記「ケース」の数学的挙動を説明する数式を追加することを特徴とする、請求項1に記載の方法。
【請求項9】
下位段階A1において定義された形態的統語的規則が、段階Eにおいて適用され、前記形態的統語的規則に基づいて、自動文アナライザ
(151)として構成された前記プロセッサ
(150)が、規則で述べられた特定の単語を除外し、他動詞の場合に関して新しい機能構成要素、すなわち、名前が前記動詞に動作主を示す接尾辞「ER」を付け加えたものである機能構成要素および名前が前記動詞に接尾辞「BLE」を付け加えたものである機能構成要素を生成することを特徴とする、請求項1に記載の方法。
【請求項10】
G. 自動ソフトウェアデザイナ
(152)として構成された前記プロセッサ
(150)によって、段階Eからの前記機能構成要素に基づいて設計構成要素を自動的に特定し、前記設計構成要素を前記データベースメモリ
(130)に記憶するステップ、
H.
前記
入力/出力デバイス
(120)の前記フォーマット、グラフィカルな表記、およびSTD文ユーザインターフェース
(123)によってビジネスドキュメント、前記分析ドキュメント、および前記設計ドキュメントの出力フォーマット、要件に関する定型文のパラメータ、ならびに設計図のための前記グラフィカルな表記をアップロードし、前記ビジネスドキュメント、前記分析ドキュメント、および前記設計ドキュメントの前記出力フォーマット、前記要件に関する前記定型文の前記パラメータ、ならびに前記設計図のための前記グラフィカルな表記を前記データベースメモリ
(130)に記憶するステップ、
I. 段階Gにおいて定義されたフォーマット、グラフィカルな表記、およびSTD文を適用して、ドキュメントジェネレータ
(153)として構成された前記プロセッサ
(150)によって、段階Dからの前記単文に基づいてビジネスドキュメントを自動的に生成し、段階Eからの前記機能構成要素に基づいて前記分析ドキュメントを自動的に生成し、段階Fからの前記設計構成要素に基づいて前記設計ドキュメントを自動的に生成するステップ
をさらに含むことを特徴とする、請求項1に記載の方法。
【請求項11】
段階Gが、以下の下位段階、すなわち、
G1. 機能構成要素のグループ、前記機能構成要素のクラスおよび継承関係を選択し、生成し、前記機能構成要素の前記グループ、前記機能構成要素の前記クラスおよび前記継承関係を前記データベースメモリ
(130)に記憶すること、
G2. FXタイプのステップおよびCCタイプのステップに基づいて式クラスを生成し、前記式クラスを前記データベースメモリ
(130)に記憶すること、
G3. QAタイプのステップに基づいてドメインクラスを生成し、前記ドメインクラスを前記データベースメモリ
(130)に記憶すること、
G4. Lタイプのステップに基づいて関係クラスを生成し、前記関係クラスを前記データベースメモリ
(130)に記憶すること、
G5. Fタイプのステップに基づいて動作クラスを生成し、前記動作クラスを前記データベースメモリ
(130)に記憶することからなること
を特徴とする、請求項
10に記載の方法。
【請求項12】
段階Eにおいて、ユーザが、エラーメッセージ、検証メッセージ、および警告メッセージを追加することを特徴とする、請求項1に記載の方法。
【請求項13】
段階Iが、以下の下位段階、すなわち、
I1. ビジネスドキュメントを生成すること、
I2. 分析ドキュメントを生成すること、
I3. ソフトウェア設計ドキュメントを生成することからなること
を特徴とする請求項
10に記載の方法。
【請求項14】
段階I1が、前記ビジネスドキュメントを、以下のアクション、すなわち、
a)次元、時間的活動、および単文を順序付けること、
b)既に順序付けられた構成要素をまとめること、ならびに
c)前記ビジネスドキュメントを前記入力/出力デバイス
(120)上に表示すること
によって生成することを特徴とする、請求項
11に記載の方法。
【請求項15】
段階I2が、前記分析ドキュメントを、以下のアクション、すなわち、
a)大域的機能要件を組み立て、NOUN構成要素に関する大域的要件を定義し、VERB構成要素に関する大域的要件を定義すること、
b)詳細な機能要件を組み立て、NOUN構成要素、PERSON構成要素、VERB構成要素、およびDO構成要素に関する詳細な要件を定義すること、ならびに
c)前記分析ドキュメントを前記入力/出力デバイス
(120)上に表示すること
によって生成することを特徴とする、請求項
10に記載の方法。
【請求項16】
段階I3が、前記設計ドキュメントを生成し、前記設計ドキュメントを前記入力/出力デバイス
(120)上に表示することを特徴とする、請求項
10に記載の方法。
【請求項17】
段階Hにおいて、ユーザが、前記入力/出力デバイス
(120)の前記フォーマット、グラフィカルな表記、およびSTD文ユーザインターフェース
(123)を使用して前記「ケース」の機能分析ドキュメントのテキストの構造を構成して、それから、前記構造を前記データベースメモリ
(130)に記憶するためにテンプレートを使用し得ることを特徴とする、請求項
10に記載の方法。
【請求項18】
データベースに記憶される、ケースを説明する自然な語句および数式で表現された説明から機能アーキテクチャドキュメントならびにビジネスドキュメント、分析ドキュメント、およびソフトウェア設計仕様ドキュメントを生成するためのシステムであって、以下、すなわち、
適格言語および前記適格言語の構造を入力するため、自然言語および数式で前記「ケース」の説明を入力するため、ドキュメント生成のためのフォーマットおよびグラフィカルな表記を入力するため、ならびに機能アーキテクチャドキュメントおよび前記ビジネスドキュメント、前記分析ドキュメント、および前記ソフトウェア設計仕様ドキュメントを表示するための、言語ユーザインターフェース
(121)、ケースユーザインターフェース
(122)、フォーマット、グラフィカルな表記、およびSTD文ユーザインターフェース
(123)、ならびにドキュメント表示ユーザインターフェース
(124)として構成された入力/出力デバイス
(120)、
前記ケースの前記説明、機能構成要素、設計構成要素、ならびに前記機能アーキテクチャドキュメントおよび前記ビジネスドキュメント、前記分析ドキュメント、および前記ソフトウェア設計仕様ドキュメントの揮発性ストレージのために構成された、プロセッサ
(150)とインタラクションする、前記入力/出力デバイス
(120)に接続されたメインメモリ
(140)、
ユーザから自然言語および数式の少なくとも1つの説明を受け取るように構成された前記プロセッサ
(150)であって、前記説明が、前記ケースを含み、前記ケースの前記説明を特定する、前記プロセッサ
(150)、
前記ケースのステップに対応する単文を生成し、前記単文に基づいて機能構成要素を自動的に生成するために前記単文を分析するための、自動文アナライザとして構成された前記プロセッサ
(150)、
前記機能構成要素および数学的構成要素に基づいて前記ケースの前記設計構成要素ならびにFX、CC、およびQSのタイプに対応する補足的な機能構成要素を特定するための、自動ソフトウェアデザイナとして構成された前記プロセッサ
(150)、
前記機能構成要素および前記設計構成要素に基づいて機能アーキテクチャドキュメントならびにビジネスドキュメント、分析ドキュメント、およびソフトウェア設計仕様ドキュメントを生成するための、ドキュメントジェネレータとして構成された前記プロセッサ
(150)、
MASメタモデル
(161)、言語、単語、FXタイプの表現に対応する数式、ならびに形態的統語的規則
(162)、ならびにフォーマット、グラフィカルな表記、およびSTD文
(163)を静的に記憶するように構成され、単文および質問
(171)、機能構成要素
(172)および設計構成要素
(173)を動的に記憶するようにさらに構成された、前記プロセッサ
(150)
に接続されたデータベースメモリ
(130)からなる、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、本出願の同じ発明者によって2015年4月28日に出願された「Proceso para generar documentos de especificacion de analisis y de diseno」(Process for generating analysis and design specification documents)と題した米国特許仮出願第62/154,093号の出願日の利益を主張するものである。上述の仮出願は、本明細書において公開されているかのように参考として本明細書に組み込まれる。
【0002】
本発明は、概して、人間が自然言語を処理する抽象的思考に類似した形式論理(formal logic)によって推論をモデル化するプロセスに関する。本発明は、特に、自然言語に基づくケース仕様(case specification)からプロセスモデルを導出することに関する。
【背景技術】
【0003】
従来技術は、知識ベースに記憶される語句で表現された要件(requirement)からのソフトウェア設計ドキュメントの自動生成のためのデバイスを開示し、それらの要件に基づいて、それらのデバイスは、後でUML図として視覚化される(オブジェクト指向プログラミングの文脈での)「クラス」をモデル化する。従来技術は、結果として得られる言語がコンピュータによって処理され得るようにして自然言語を形式化するためのシステムおよび方法も開示する。
【0004】
米国特許出願公開第2013/0097583号は、ソフトウェアエンジニアがソフトウェア製品を作成するのを手引きする/助けるための自動化サポートツールを提供するシステムおよび方法を開示する。システムは、入力/出力、ストレージ、処理、および通信デバイスを含む。システムは、ソフトウェアエンジニアが、関係する要件およびアクターまたは実体を説明する1つまたは複数の語句によって要件、アクターまたは実体、システム、およびサブシステムから導出されたユースケースを特定し、グラフィカルに表示すること、ならびにドメイン(domain)モデルおよびドメインモデルを視覚化するためのUMLクラス図を生成することを支援する。システムは、拡張されたユースケースの作成、オブジェクトインタラクションモデルの作成、シーケンス図の作成、および設計クラス図(design class diagram)の作成も可能にする。設計クラス図に基づいて、ソフトウェアエンジニアは、高品質なコンピュータプログラムを作成することができる。システムは、UML(統一モデリング言語)クラス図を自動的に生成するための図ジェネレータを含んでもよくまたはそのような図ジェネレータに接続してもよい。本発明と異なり、前記特許の入力は、自然言語で書かれたソフトウェアの要件である。我々の発明は、ビジネス「ケース」を説明する自然言語の文からなる。前記特許の入力は、我々の発明が解決することができる特定のケースのうちの1つである。パーサ(単語認識技術)は、通常のものであり、辞書に基づく。我々の発明のパーサは、自動であり、辞書を使用しない規則に基づく。本発明は、ずっと短い処理時間で正確性を向上させる。米国特許出願公開第2013/0097583号は、完全なソフトウェア設計を実現するために、特許の発明によって生成される図によってサポートされるコードを設計および開発するためにソフトウェアエンジニアの関与を必要とする。本発明において、結果として得られる設計は、完全であり、自動であり、説明のテキストで述べられた設計の100%を含む。本発明の概念的なドメインモデルの抽象化は、形式的である。つまり、設計は、常に同じ規則に応じ、したがって、予測可能な結果を生成する。米国特許出願公開第2013/0097583号において、概念的なモデルは、20%が手作りであり、ケースに依存
する。
【0005】
米国特許出願公開第2011/0239183号は、1つまたは複数のプロセスモデルが自然言語のユースケースモデルから導出される方法を開示する。たとえば、予め割り振られた意味を有する予め定義された単語の限られたリストを使用して説明された自然言語のテキスト情報から取得されたプロセッサの使用およびメモリに記憶されたユースケースモデルへのアクセスは、それによって、所定のモデリング表記法に従ってメモリに記憶されたモデルをプロセスモデルに変換することができる。本発明において、設計は、異なるタイプのソフトウェア設計図が取得され得る制限のない自然言語に基づいて機能アーキテクチャドキュメントのレベルで実行される。
【0006】
あらゆる産業は、その構築プロセスを改善するという課題に直面し、その構築プロセスの主な誤りの要因は、要求者の説明(「ケース」)と産業が生成するもの(ソリューション)との間の差である。
【0007】
現在、前記説明に基づいてソリューションを構築するために「ケース」を説明したい者は、以下を必要とする。
- 解釈し、ドキュメント化する産業アナリスト。このドキュメント化は、アナリストが「ケース」に関する要求者のコメントについて筆記することによって行われる。それから、アナリストは、ドキュメント化を分析し、産業のよく知られている技術のうちの1つを適用することによっていくつかの図を作成する。ドキュメントが十分に検討されたとき、それらのドキュメントは、「ケース」設計段階に送られる。これらの図の内容は、もっぱら、各産業に固有の上述の図に変換するための専門家の解釈および専門家の能力に依存する。
- 説明された「ケース」についての分析および上述のドキュメント化に基づいて所望のソリューションを設計する産業デザイナ。デザイナは、分析図を取得し、デザイナがデザイナの図の正確な理解を最大化することを可能にする説明を求めてアナリストと会い、そして、その理解に基づいて、デザイナは、「ケース」のためのソリューションを設計することができる。この設計は、やはり産業に依存するその他の図を作成することによって実行される。これらの図は、「ケース」のためのソリューションを構築するために必要とされる技術的言語(technical language)への、要求者によって説明された論理の新しい変換を表す。
【0008】
アナリストとデザイナとの両方は、ケースの説明を理解し、その説明を、ソリューションを構築する者によってその後解釈されることが可能な技術的分析言語(analysis language)および設計言語(design language)に変換することを目的として訓練された専門家である。つまり、「ケース」の説明から関連するソリューションの構築の開始までにいくつかの言語が使用される(
図4 産業設計プロセスを参照されたい)。
A. 「ケース」を説明する言語(介在する役割: 要件を課す要求者): 自然言語
B. 「ケース」の分析言語(介在する役割: 要求を解釈し、その要求を分析図に変換する産業アナリスト): 設計指向の焦点を有する自然言語で表された補足説明をともなう、標準的な産業の表記法を使用する図面、手作りの草稿。
C. 「ケース」の設計言語(介在する役割: デザイナ、アナリストの成果を解釈し、それを設計図に変換する設計技師): ソリューションの設計を表す、使用産業に固有のアーキテクチャの図面、計画、および図。
【0009】
特定のソリューションが設計されることを要求する者(要求者)は、通常、特定の産業の熟達したデザイナではなく、したがって、自分でソリューションを構築することはできない。要求者は、産業アナリストおよび産業デザイナに要求者の要件を適切に解釈し、それらの要件を「ケース」のためのソリューションの設計に取り込んでもらう必要がある。したがって、要求者が設計言語(応用の中でもとりわけ、設計技師、土木技師、ブックデザイナ、ソフトウェアデザイナ)を理解せず、したがって、要求者が説明した「ケース」のためのソリューションが構築されることを保証するために結果として得られる設計を制御することができないために、これが実際には不可能であるということが起こる。
図1に示されるように、通常、言語の変更が原因で意味の理解に歪みがあるので、説明「ケース」と実際の構築(ソリューション)との間のずれの最大の部分はこの辺りにある。結果として、要求者は、要求者のニーズに完全に合わせられていない設計および結果として得られる製品(家、ソフトウェア、家具、本など)を受け取る。
【0010】
産業は、ソリューションと要求者のニーズの要求者の説明との間の収斂の度合いを高めるための努力を絶えず行っている。これらの努力は、上述の説明を解釈し、構造化する手作りのプロセスへの専門家の参加を置き換えることなく、専門家を訓練するかまたは専門家の仕事に使用されるツールを改善することによって現在の方法を改善することに焦点を当てている。
【0011】
技術的問題を処理するこの手法は、アナリストおよびデザイナによって使用される言語(技術的言語)への要求者によって使用される言語(自然言語)の変換が知識の喪失を引き起こす変換をともない、だれもこれを厳密に制御することができないので、必然的に要件の複数の解釈を生成する。
【0012】
本発明においては、「ケース」を完全に説明するために、自然言語で構造化された文を使用すれば十分である。説明に含まれる知識の理解および伝達を可能にするために、上述の文をグラフィカルな技術的表記法を用いる図に手動で変換する必要はない。これらの図は、ツールによって自然言語から自動的に生成される。
【0013】
現在存在するものと本発明との間の違いが、下の表に示される(
図4 産業設計プロセス)。
【0014】
【0015】
特定の産業設計が望まれる現実の説明が与えられたとすると、前記説明が表すことに基づいて、システムは、自然言語の説明を構造化し、それによって、意味的観点から見て相互に接続され首尾一貫した方法で「ケース」の言語学的構成要素の全体の記憶を保証する。また、システムは、複数の産業用の応用において有用である機能アーキテクチャドキュメントを自動的に構築する。
【0016】
本発明は、ソフトウェア設計アプリケーションを構築するための機能アーキテクチャドキュメントおよびそれらの構成要素の使用を示す。
【0017】
本発明において、「ケース」という記載は、コンピュータがその論理を処理することを可能にするソフトウェアアプリケーションを我々が構築したい現実の問題を指す。したがって、「ケース」のソフトウェア産業は、ソフトウェア構築プロジェクトを改善するという課題に直面し、そのソフトウェア構築プロジェクトの主な誤りの要因は、要求者の説明(問題)と「ケース」が解決すること(ソリューション)との間の差である。現在、ソフトウェアソリューションをそれに基づいて構築すべき「ケース」を説明したい者は、以下を必要とする。
- 解釈し、ドキュメント化するシステムアナリスト。このドキュメント化は、アナリストが「ケース」に関するクライアントのコメントについて筆記することによって生成される。それから、アナリストは、ドキュメント化を分析し、産業のよく知られている技術(UML図、フロー図、プロセス図)のうちの1つを適用することによっていくつかの図を作成する。ドキュメントが十分に検討されたとき、それらのドキュメントは、「ケース」設計段階のために提出される。これらの図の内容は、もっぱら、上述の図に変換するためのアナリストの解釈およびアナリストの能力に依存する。
- 説明された「ケース」全体を通じて生成されたデータの自動化された取り込みを可能にしなければならない前記ソフトウェアを設計するソフトウェアデザイナ。デザイナは、分析図を取得し、デザイナがデザイナの図の正確な理解を最大化することを可能にする説明を求めてアナリストと会い、そして、その理解に基づいて、デザイナは、「ケース」を設計することができる。この設計は、(システムデータを記憶するための)データベース図、(データのアップロード、検索、および処理が実行される)画面図、(解決される問題の論理を表す)「ケース」の機能論理図、(効果的で、信頼でき、持続可能なように機能するために「ケース」の内部組織、とりわけ、クライアントサーバ、SOA: サービス指向アーキテクチャを定義する)アーキテクチャ図などのその他の図を作成することによって実行される。これらの図は、「ケース」のためのソリューションを構築するために必要な技術的言語への、要求者によって説明された論理の新しい変換を表す。
【0018】
アナリストとデザイナとの両方は、ケースの説明を理解し、その説明を、アプリケーションを開発する者によってその後解釈されることが可能な技術的分析言語および設計言語に変換することを目的として訓練された専門家である。
図1は、「ケース」の説明の始めからソフトウェア設計までの「ケース」の理解および変換の段階において使用される言語に関して従来技術と本発明とを比較する図である。従来技術においては、以下の言語が使用される。
A. 「ケース」を説明する言語(介在する役割: 要件を課すユーザ): 自然言語
B. 「ケース」の分析言語(介在する役割: ユーザの要求を解釈し、その要求を分析図に変換するシステム): 設計指向の焦点を有する自然言語で表された補足説明をともなうデータフローチャート、分析ユースケース。
C. 「ケース」の設計言語(介在する役割: デザイナ、アナリストの成果を解釈し、それを設計図に変換する設計技師): アプリケーションの機能設計を表す(現在はたいていUMLの)図、ユーザデータを記憶するデータベースの設計を表すデータベース図、構築されるアプリケーションの階層化されたアーキテクチャを表すアーキテクチャの図。
【0019】
設計された特注のソフトウェアを必要とするタイプのユーザは、通常、ソフトウェアデザイナでもソフトウェア開発エンジニアでもなく、したがって、自分でそのソフトウェアを構築することはできない。ユーザは、アナリストおよびデザイナにユーザの要件を適切に解釈してもらい、それらの要件を「ケース」の結果として得られる設計に取り込んでもらう必要がある。
【0020】
したがって、要求者が設計言語を理解せず、そのため、要求者が要求した「ケース」が構築されることを保証するために結果として得られる設計を要求者が制御することができないために、これが実際には不可能であるということが起こる。要求(問題)と実際の構築(ソリューション)との間のずれの最大の部分は、この辺りにある。つまり、結果として、要求者は、(場合によっては当初予測されていたよりも時間がかかるかまたはより複雑で、より高価になり得る)要求者の要件、修正、またはその後の変更に通常は完全に合わせられない設計および結果として得られる製品(ソフトウェア)を受け取る。
【0021】
産業は、CASE(コンピュータ支援ソフトウェアエンジニアリング(Computer Aided Software Engineering))ツールによってこの問題のソリューションに到達するための重要な努力を行っている。しかし、これらのツールは、自然言語によって機能せず、したがって、上述の制限のうちのいくつかを与える。
【0022】
技術的問題を処理するこの手法は、プロセスをよく知っているユーザまたはクライアントによって使用される言語(自然言語)とアナリストおよびデザイナによって使用される言語(技術的言語)との間の変換が知識の喪失を引き起こす変換をともない、だれもこれを厳密に制御することができないので、必然的に問題の複数の解釈を生成する。
【先行技術文献】
【特許文献】
【0023】
【文献】米国特許出願公開第2013/0097583号
【文献】米国特許出願公開第2011/0239183号
【発明の概要】
【課題を解決するための手段】
【0024】
本発明は、ソフトウェアソリューションの説明、分析、および設計のための唯一の言語として自然言語を使用し、それによって、結果の歪みにつながる知識の喪失を最小化する。
【0025】
従来技術と異なり、本発明は、自然言語の単文(simple sentence)を使用して「ケース」の完全な説明を可能にする。従来技術と異なり、本発明は、プロセスの知識を理解し、伝達するためにグラフィカルな技術的表記法を用いる図への前記文の変換を必要としない。その代わりに、前記図は、言語の概念的構成要素を特定する単一の決定的(deterministic)モデルの機能論理を実装する分析規則を適用することによって、前記モデルを使用して、自然言語に基づいて本発明により自動的に生成される。
【0026】
概念の予め定義された階層に基づいて単文で説明を構造化することは、前記説明の完全性を保証し、高品質なソフトウェア設計が自動的に推測されることを可能にする。
【0027】
本発明の理解を促進し、本発明と従来技術において利用可能なものとの間の簡単な区別を可能にする目的で、以下の比較表が提示される。
【0028】
【0029】
現在の従来技術は、ソフトウェアが手動でまたは部分的に手動で設計されると言明しており、これは、その性質上、とりわけ以下の問題、すなわち、システム要件を解釈する際の曖昧性、設計の誤りを直す高いコスト、設計のスケーリングおよび開発の難しさ、ならびに古くなったドキュメントをもたらす。本発明は、完全に自動化された産業化可能なプロセスに基づくことによってこれらの困難を克服し、それによって、概念的な厳密さを実現し、スケーリング可能な発展的設計を生成し、自動的に更新されたドキュメントを生成し、ソフトウェア設計のコストを大幅に削減する。
【0030】
4. 用語集
文: 言説(statement)を伝えるかまたは論理命題の内容を表すことができる最小の可能な統語的組成。
単文: 単一の動詞を含むもの。
完全単文(complete simple sentence): 本発明の観点から見て、すべての述べられた質問に明示的に答える文。
自然言語: 自然言語は、通常のコミュニケーションを目的として人間によって使用される話し言葉または書き言葉と我々が呼ぶものである。
機能要件: 要求工学において定義されるように、機能要件は、システムの挙動を決定する。大域的機能要件は、システム自体の挙動に関連するその他のより詳細な機能要件をグループ化する。
クラス図: システムを構成する異なるクラスおよび互いの関係を示す図。また、クラス図は、クラスをそれらのクラスのメソッドおよび属性ならびにそれらのクラスの相互関係と一緒に示す。
ケースの世界(universe): 「ケース」の周辺の定義および概念の集合。
複合名詞: 2つ以上の単語からなる名詞。たとえば、price list、document number。
+: 本明細書において、+は、テキストをまとめるまたは追加するために「連結する」ことを意味する。
適格言語(eligible language): 異なる言語が「ケース」を説明するために使用され得るので、それらの各々をそれらのそれぞれの統語的および文法的構造を用いて述べることが可能である。
連結する: 1つまたは複数の単語が与えられたとして、連結は、それらの単語をスペースによって区切られた単一の語句にまとめることを意味する。例:「the」、「house」。2つの単語の連結は、「the house」をもたらす。
基本規則: 本発明において、基本規則は、質問によって定義された挙動に関する構造(behavioral structure)であり、その目的は、前記質問への答えを含む単語の形態的統語的並びを示すことである。
DO: 直接目的語を意味する。本発明において、DOは、Whatによる質問に現れ、他動詞の後に続く名詞の単語を指す。
【図面の簡単な説明】
【0031】
【
図1】本発明の自然言語変換のプロセスを示す図である。
【
図2】機能アーキテクチャドキュメントを得るための本発明のプロセスの段階を示す図である。
【
図4】ソフトウェア設計ドキュメントを得るための本発明のプロセスの段階を示す図である。
【
図4A1】MASメタモデル(MAS metamodel)を示す図である。
【
図4A3】MASメタモデルの適用の事例を示す図である。
【
図4E1】自動文アナライザ151として構成されたプロセッサ150の機能論理を示す図である。
【
図4G1】自動ソフトウェアデザイナ152として構成されたプロセッサ150の機能論理を示す図である。
【
図4I2】ビジネスドキュメントの構造を示す図である。
【
図6】機能アーキテクチャ図において使用されるべきグラフィカルな表記に関連する図である。
【
図7】ソフトウェア設計ドキュメントのためのグラフィカルな表記に関連する図である。
【発明を実施するための形態】
【0032】
本発明は、知識ベースに記憶される、ケースを説明する自然言語の語句で表された要件からのソフトウェア設計仕様ドキュメントの生成のための、コンピュータおよび視覚デバイスによって実施される方法によって上述の問題に対するソリューションを提供する。これらの語句は、ソフトウェア設計のためのクラス図として後で変換され、視覚化される設計構成要素をモデル化することを可能にする。デバイスは、プロセッサとインタラクションするように適合され得る。
【0033】
最初に、
図4に示されるように、プロセスは、自然言語の「ケース」の説明から始まる。本発明において前記説明を実行するために、とりわけ、形容詞が名詞の前に置かれるのかまたは後に置かれるのかを示す形容詞の順番および言語の冠詞を含む単語のリストなどの言語の文法的および統語的特徴を含め、説明においてどの言語が使用されるのかを前もって確立する必要がある。
【0034】
定義された統語構造および文法規則を持つ任意の言語で「ケース」を説明するために、
図3に示されるシステムなどのシステムが、入力/出力デバイス120によって自然言語の「ケース」の説明を入力するために使用される。入力テキストは、プロセッサ150による後の使用のためにメインメモリに転送される。プロセッサは、ドキュメントを自動的に分析し、設計し、生成するように構成される。各処理機能の結果は、データベースメモリ130に記憶される。
【0035】
図3からのシステム100の構成要素が、以下で説明される。
1. 入力/出力デバイス120: 自然言語テキストが取り込まれるデバイス。入力/出力デバイス120は、以下の構成を使用して、ユーザが「ケース」説明データを入力することができる構造を示し、結果として得られるドキュメントを表示するための表示媒体(とりわけ、スクリーン、プロジェクター、テレビ、プリンタ、モニタ、モバイルデバイス)をプロセッサが使用することを可能にする。
a. 言語ユーザインターフェース121: ユーザが言語を選択し、その後データベースメモリ130に記憶されるその言語の文法的および統語的特徴をアップロードすることを可能にする視覚的構造。
b. ケースユーザインターフェース122: ユーザが、その後データベースメモリ130に記憶される、「ケース」を説明する単文をアップロードすることを可能にする視覚的構造。この構造は、自動文アナライザ151および自動ソフトウェアデザイナ152として構成されたプロセッサ150の機能とユーザがインタラクションすることをも可能にする。
c. フォーマット、グラフィカルな表記、およびSTD文ユーザインターフェース123: 本発明の一実施形態において、ユーザは、自動ドキュメントジェネレータ153として構成されたプロセッサ150によって構築されるビジネス、分析、および設計ドキュメントの準備のために、静的データベースメモリ160内で利用可能なフォーマット、グラフィカルな表記、およびSTD文をユーザが追加または修正することを可能にするこの視覚的構造を提示される。
d. ドキュメント表示ユーザインターフェース124: 自動ドキュメントジェネレータ153として構成されたプロセッサ150によって生成されたドキュメントにユーザがアクセスすることを可能にする構造。
2. CPU 110: システム100の処理デバイス。このデバイスは、自動的な設計の生成のための自然言語処理機能のすべてを実行するように設計され、前記機能とシステムのその他の構成要素との間のやりとりを可能にするメインメモリを含む。
a. メインメモリ140: 入力/出力デバイスと、データベースメモリと、プロセッサとの間で情報をやりとりするために使用される揮発性ストレージデバイス。メインメモリ140は、その構成に応じて以下の機能を実行する。
i.
図141: 静的データベースメモリ160に記憶されたフォーマット、グラフィカルな表記、およびSTD文163を使用することによって、自動ドキュメントジェネレータ153として構成されたプロセッサ150によるドキュメント処理を可能にするメインメモリの構成。
ii. 文マトリックス(sentence matrix)142: 静的データベースメモリ160に記憶されたMASメタモデル161、言語、単語、および形態的統語的規則162を使用することによって、自動文アナライザ151として構成されたプロセッサ150による単文の処理を可能にするメインメモリの構成。
iii. FCマトリックス(FC matrix)143: 静的データベースメモリ160に記憶されたMASメタモデル161、言語、単語、および形態的統語的規則162を使用することによって、自動文アナライザ151として構成されたプロセッサ150による機能構成要素の処理を可能にするメインメモリの構成。
iv. DCマトリックス(DC matrix)144: 静的データベースメモリ160に記憶されたMASメタモデル161、言語、単語、および形態的統語的規則162を使用することによって、自動ソフトウェアデザイナ152として構成されたプロセッサ150による設計構成要素の処理を可能にするメインメモリの構成。
b. プロセッサ150: 処理および交換タスクが実行されるデバイス。プロセッサ150は、その構成に応じて以下の機能を実行する。
i. 自動文アナライザ151: 主に、単文から機能構成要素を自動的に生成し、それらの機能構成要素を記憶するために動的データベースメモリ170に送信することを任されるプロセッサの構成である。
ii. 自動ソフトウェアデザイナ152: 主に、単文から設計構成要素を自動的に生成し、それらの設計構成要素を記憶するために動的データベースメモリ170に送信することを任されるプロセッサの構成である。
iii. ドキュメントジェネレータ153: 主に、単文から設計構成要素を自動的に生成し、それらの設計構成要素を記憶するために動的データベースメモリ170に送信することを任されるプロセッサの構成である。
3. データベースメモリ130: ユーザによってアップロードされたおよびプロセッサ150の様々な構成でプロセッサ150によって生成されたデータを記憶する永続的メモリ。このメモリは、2つのストレージ構成、すなわち、1つの静的な構成および1つの動的な構成を持つ。静的な構成は、1回限りの処理のためにアップロードされ、「ケース」に固有でない必要な決まったデータを記憶する。動的な構成は、各ケースのためにアップロードされる「ケース」に固有のデータを記憶する。
a. 静的データベースメモリ160:
i. MASメタモデル161: データベースメモリ130の言語、単語、および形態的統語的規則構造162に記憶される形態的統語的規則を生み出す抽象度の高い形式論理の規則を含むデータベースメモリ130の構成。
ii. 言語、単語、および形態的統語的規則162: 適格言語の特徴、各適格言語の特殊な単語、およびその適格言語の形態的統語的規則を含むデータベースメモリ130の構成。
iii. フォーマット、グラフィカルな表記、およびSTD文163: ドキュメントに当てはまるフォーマット、図に当てはまるグラフィカルな表記、および分析ドキュメントの準備のために必要なSTD文を含むデータベースメモリ130の構成。
b. 動的データベースメモリ170:
i. 単文質問171: ユーザによってアップロードされた単文と、各単文に対応する質問When、Who、What、How、およびWhereに対する答えを含むデータベースメモリ130の構成。
ii. 機能構成要素172: 自動文アナライザ151として構成されたプロセッサ150によって自動的に生成された機能構成要素を含むデータベースメモリ130の構成。
iii. 設計構成要素173: 自動ソフトウェアデザイナ152として構成されたプロセッサ150によって自動的に生成された設計構成要素を含むデータベースメモリ130の構成。
【0036】
上述のシステムを使用する際、本発明は、
図4、さらには以下で説明される一連の段階を実行する。
【0037】
段階A. 入力/出力デバイス120を使用して静的データベースメモリ160のMASメタモデル161の論理構造にMASメタモデル161をアップロードする。
【0038】
段階B. ディスプレイデバイス120の言語ユーザインターフェース121を使用して適格言語、各適格言語の文法的および統語的特徴を入力し、それらのデータを静的データベースメモリ160の言語、単語、および形態的統語的規則162の論理構造に記憶する。
【0039】
段階C. ディスプレイデバイス120のケースユーザインターフェース122を使用して段階Bからの適格言語のリストから選択された自然言語のうちの1つのテキストとして「ケース」の説明を入力する。「ケース」のステップを特定し、それから、それらの段階を動的データベースメモリ170の単文および質問171の論理構造に記憶する。
【0040】
段階D. 段階Cに基づいてステップに対応する「ケース」の単文および数学的モーメント(mathematical moment)を特定し、ディスプレイデバイス120のケースユーザインターフェース122を使用してそれらの単文および数学的モーメントを動的データベースメモリ170の単文および質問171の論理構造に記憶する。
【0041】
段階E. プロセッサ150が段階AにおいてアップロードされたMASメタモデル161の論理構造に従って機能する自動文アナライザ151として構成されるようにして、段階Dに基づいて単文の機能および数学的構成要素を自動的に特定する(機能構成要素はプロセッサ150によって抽出され、自動的に特徴付けられる文の各単語に対応することを理解されたい)。プロセッサ150は、前記機能構成要素をメインメモリ140のFCマトリックス143の論理構造に一時的に記憶し続ける。最後に、これらの構成要素は、動的データベースメモリ170の機能構成要素172の論理構造に記憶される。
【0042】
段階F. 段階Eからの機能および数学的構成要素に基づいて「ケース」の設計構成要素を自動的に特定する。設計構成要素は、プロセッサ150によって自動的に生成された機能および数学的構成要素に対応する各ソフトウェア設計モデルを指すことを理解されたい。設計構成要素は、本発明の一実施形態においては段階AでアップロードされたMASメタモデル161の論理構造に従って機能する自動ソフトウェアデザイナ152として構成されたプロセッサ150を使用して作成される。プロセッサ150は、前記設計構成要素をメインメモリ140のDCマトリックス144の論理構造に一時的に記憶し続ける。最後に、これらの構成要素は、動的データベースメモリ170の設計構成要素173の論理構造に記憶される。
【0043】
段階G. (ディスプレイデバイス120の)フォーマット、グラフィカルな表記、およびSTD文ユーザインターフェースを使用してビジネス、分析、および設計ドキュメントの出力フォーマット、要件に関する定型文(standard sentence)のパラメータ、ならびに設計図のためのグラフィカルな表記を入力し、それらを静的データベースメモリ160のフォーマット、グラフィカルな表記、およびSTD文163の論理構造に記憶する。
【0044】
段階H. 段階Gにおいて定義されたフォーマット、グラフィカルな表記、およびSTD文を使用して、ドキュメントジェネレータ153として構成されたプロセッサ150によって、段階Dからの単文からビジネスドキュメント(ビジネスドキュメントは、解決される問題の自然言語の段階的な説明として理解される)を自動的に生成し、段階Eからの機能および数学的構成要素に基づいて分析ドキュメント(分析ドキュメントは、構築されるソフトウェアの機能要件の説明として理解される)を自動的に生成し、段階Fからの設計構成要素に基づいて設計ドキュメント(設計ドキュメントは、ソフトウェアを構築するための指示を含むドキュメントとして理解される)を自動的に生成する。
【0045】
段階I. 特にこの種のドキュメントのために定義されたグラフィカルな表記を使用して、ドキュメントジェネレータ153として構成されたプロセッサ150によって、段階Eからの機能および数学的構成要素に基づいて機能アーキテクチャドキュメント(機能アーキテクチャドキュメントは、意味の本質的な概念を表すことによって自然言語テキストの意味を要約の形態で構造化するグラフィカルな図であると理解される)を自動的に生成する。
【0046】
プロセスの段階が、以下で詳細に説明される。
【0047】
段階A. MASメタモデルのアップロード
この段階において、MASメタモデルおよびその公理的原理が、詳細に説明される。このメタモデルは、自動文アナライザ151としてのプロセッサ150の構成におけるプロセッサ150の挙動を確立するために使用される。
【0048】
図4A1は、自然言語の解釈のための論理をモデル化するためにこのメタモデルが定義する規則を表す、オブジェクト指向の規範に従ったクラスモデルを示す。これらの規則は、自動文アナライザ151として構成されたプロセッサ150が段階Dにおいて機能構成要素を生成するために使用する基本的な形態的統語的規則として使用される。
【0049】
この段階で、MASメタモデルは、以下の下位段階によって作成される(
図4A)。
【0050】
下位段階A1. MASメタモデルの記憶
この下位段階において、MASメタモデル161の論理が、静的データベースメモリ160にアップロードされる。
【0051】
この論理は、自然言語説明に含まれるあらゆる単語がWord 161-1であることを定める。単語が他動詞であるとき、2つの新しい単語、すなわち、名前が他動詞に動作主を示す接尾辞「ER」を付け加えたものであるPerformer Word 161-2と、名前が他動詞に接尾辞「BLE」を付け加えたものであるPerformable Word 161-3とが、自動的に定義される。他動詞は、Performer Word 161-2と関係161-5を有し、Performable Word 161-3と別の関係161-6を有するPerformance Word 161-4である。
【0052】
Word 161-1は、他動詞ではない単語がPerformer Word 161-2との継承関係161-9および/またはPerformable Word 161-3との継承関係161-8を定めることができるようにして互いに関連する。
【0053】
各Word 161-1は、別のWord 161-1との継承関係161-0を定義することができる。各Word 161-1は、別のWord 161-1との関連付け関係(association relationship)161-7を定義することができる。
【0054】
MASメタモデルによって提供される選択肢の使用は、段階Dにおいて処理されている文のモルフォシンタックス(morphosyntax)に依存する。
【0055】
このようにして、説明内のすべての単語は、全体として、それがすべての場合に満たされ、任意の言語の任意の形態的統語的規則をモデル化する基礎を表すと仮定すると、言語に関する公理的規則を定義するこのメタモデルによって表され得る。
【0056】
下位段階A2. 形態的統語的規則に関するMAS論理の記憶
この下位段階において、MASメタモデルの論理が、静的データベースメモリ160にアップロードされる。前記論理は、異なる機能的応用(functional application)の文脈でそれらの意味を決定するために自然言語の単語を特徴付けるための方法を定義する。自然言語の形態およびシンタックスを扱う構造は、形態的統語的構造と呼ばれる。
【0057】
本発明において、自然言語を扱うための指針の集合が、形態的統語的規則と考えられる。そのような規則は、a)質問論理: 単文内の単語がどの質問(When、Who、What、How、Where)に属するか、b)ステップタイプ論理: どのタイプの動詞がWhatの質問を構成するか(FX、CC、QS、L、F)、およびc)単語論理: それがどのタイプの単語であるかを定義する、テキストを扱うための指針からなる。単語のタイプは、動詞(VERB)、名詞(NOUN)、前置詞(PREP)、冠詞(ART)、接続詞(CONJ)、副詞(ADV)としてのその単語の文法的特徴付けによって決定される。
【0058】
各形態的統語的規則のために識別子が定義される。形態的統語的規則の識別子は、タイプPerformer、Performable、およびPerformanceを除いて、文を構成する単語のタイプを連結することによって構成される。識別子は、たとえば、以下のタイプ、すなわち、冠詞、名詞、動詞、冠詞、前置詞、名詞の単語の並びからなる文に関してART-NOUN-VERB-ART-PREP-NOUNである可能性がある。これらのタイプの単語は、概して扱われることが可能であり、またはそのタイプの特定の単語を指し得る。たとえば、規則VERB(is)-PREP-NOUNは、この規則が当てはまる文が動詞を含み、特に、単語タイプVERB内の単語「is」と、それに続く任意の前置詞PREPと、それから、任意の名詞NOUNとを含むことを示す。この規則は、次の文、すなわち、is a monkey、is a moonに当てはまる。
【0059】
つまり、あらゆる単文に関して、その構造をそれを構成する単語のタイプに応じて定義する形態的統語的規則が存在する。
【0060】
単文が与えられると、対応する形態的統語的規則識別子が構成される前に、自動文アナライザ151として構成されたプロセッサ150が、下位段階B2においてアップロードされた特殊な単語、冠詞、接続詞、および前置詞を文から除外する。それから、プロセッサ150は、言語、単語、および形態的統語的規則162構成内の形態的統語的規則に関して静的データベースメモリ160を検索する。その対応する識別子を有する規則が見つけられると、同じ対応する識別子を有する2つ以上の規則が存在する場合、プロセッサ150は、文の規則識別子の構成中に除外されたタイプの単語から特殊な単語に関する一致に関してこの集合内を検索する。一致がある場合、プロセッサ150は、特定の除外された単語に一致する規則を割り振る。一致がない場合、プロセッサ150は、一般的な規則を割り振る。
【0061】
MASメタモデルは、異なるケースに関する特定の規則が導出される以下の基本規則を定義する。
【0062】
基本規則
Whatの質問に関連する、それらそれぞれの専門を有する2つの基本規則が存在する。
- VERB-NOUN規則:
〇 一般的ケース: VERB-NOUN規則161-12: 動詞、名詞、名詞構造を有する文をモデル化することを可能にする。
〇 特定のケース: VERB(is)-NOUN規則161-10: 動詞が動詞「to be」である動詞、名詞構造を有する文をモデル化することを可能にする。この動詞は、MASメタモデルの適用の観点から見て特殊な動詞である。
- VERB-NOUN-PREP-NOUN規則:
〇 一般的ケース: VERB-NOUN-PREP-NOUN規則161-11: 動詞、名詞、前置詞、名詞構造を有する文をモデル化することを可能にする。
〇 特定のケース: VERB(hold responsible)-NOUN-PREP-NOUN規則161-13: 動詞が動詞「to hold responsible」である動詞、名詞構造を有する文をモデル化することを可能にする。この動詞は、MASメタモデルの適用の観点から見て特殊な動詞である。
〇 特定のケース: VERB(link)-NOUN-PREP-NOUN規則161-14: 動詞が動詞「to link」である動詞、名詞構造を有する文をモデル化することを可能にする。この動詞は、MASメタモデルの適用の観点から見て特殊な動詞である。
【0063】
同様に、単文内のWhoをモデル化するための基本規則が存在する。
- NOUN規則: この規則は、すべての単文に存在し、主語を指す主たる名詞の挙動をモデル化することを可能にする。
【0064】
必須の完了(mandatory completion)を必要としないWhen、How、およびWhereの質問に関しては、答えに現れる単語のタイプが特定され、必要な規則識別子が生成される。
【0065】
本発明の一実施形態において、ユーザは、常にMASメタモデルの論理に応じて基本規則および形態的統語的規則を追加することができる。
【0066】
自然言語の単文が与えられたものとして、形態的統語的規則が見つけられると、自動文アナライザ151として構成されたプロセッサ150が、
図4A2に示されるように、前記規則によって定義されたテキストを扱うための指針、すなわち、a)質問論理、b)ステップタイプ論理、およびc)単語論理を適用することによって機能構成要素を生成する。
【0067】
(a)質問論理: 規則が適用される単語の所属する質問を決定する
説明は、プロセスを説明する単文の集合であることに留意されたい。そのようなプロセスの各ステップは、質問Who、What、Where、How、Whenへの答えから導出される1つの単文と対応させられる。
【0068】
(b)ステップタイプ論理: 規則が適用される単語の所属ステップタイプを決定する
各ステップは、ステップタイプに分類され得る。ステップタイプは、Whatの質問内の動詞に関連する特定の単語によって規則内で決定される。あらゆる形態的統語的規則は、MASメタモデルに基づき、Whatの質問にリンクされた特定の動詞に応じて、形態的統語的規則は、以下のタイプ、すなわち、チェック/確認、問い合わせ/検索、計算、関係、機能的、通知/アラートに分類され得る。
【0069】
CCステップ: (チェック/確認アクションを決定するステップ)
これらは、check、confirm、restrictなどの動詞がチェックまたは確認アクションを定義するステップである。この場合、動詞は、他動詞であり、その動詞に続く名詞は、システムのための数学的論理を表す文と常に結合される。
【0070】
このステップタイプは、VERB-NOUN形態的統語的規則識別子を割り振られ、それが、チェック/確認論理の数学的説明を追加する。
【0071】
このタイプの文のいくつかの例は、check that the items have a positive inventory(VERB-NOUN、「have positive inventory」は確認の数学的論理である)、confirm that the client has a tax ID number(VERB-NOUN、「has a tax ID number」は確認の数学的論理である)、restrict the intake of expired merchandise(VERB-NOUN、「expired merchandise」は確認の数学的論理である)である。
【0072】
QSステップ(問い合わせ/検索アクションを含むステップ)
これらは、search、locate、select、query、indicate、display、showなどの動詞が問い合わせまたは検索アクションを定義するステップである。この場合、動詞は、他動詞であり、その動詞に続く名詞は、検索/問い合わせの対象を示す。
【0073】
このステップタイプは、名詞が検索の対象を説明する、つまり、動詞が名詞のインスタンス(instance)の集合に当てはまるVERB-NOUN形態的統語的規則識別子を割り振られる。
【0074】
このタイプの文のいくつかの例は、query the items(VERB-NOUN)、show the balances(VERB-NOUN)、display the data(VERB-NOUN)、show the results(VERB-NOUN)、search the items(VERB-NOUN)、locate the spare parts(VERB-NOUN)、select the clients(VERB-NOUN)である。
【0075】
FXステップ(明示的な計算アクションを含むステップ)
FXステップは、calculate、group、average、addなどの動詞が計算アクションを明示的に定義するステップである。この場合、動詞は、システムのための数学的論理を表す文と常に結合される。
【0076】
このステップタイプは、動詞が示す計算の論理を名詞が説明するVERB-NOUN形態的統語的規則識別子を割り振られる。
【0077】
このタイプの文のいくつかの例は、calculate the total sales(VERB-NOUN)、group the items by color(VERB-NOUN)、average last month's cost(VERB-NOUN)である。
【0078】
Lステップ(リンクするアクションを含むステップ)
Lステップは、relate、link、associate、composeなどの動詞がリンクするアクションを定義するステップである。この場合、動詞は、少なくとも2つの名詞が後に続く。
【0079】
動詞は、以下のモデルのいずれかを表し得る。
【0080】
モデル1:
このステップタイプは、特定の動詞が「link」また任意の類義語および前置詞、概して、「with」であることが可能であるが、それは変わる可能性があるVERB(link)-NOUN-PREP-NOUN形態的統語的規則識別子を割り振られる。
【0081】
このタイプの文のいくつかの例は、
link the items with the prices(VERB(link)-NOUN-PREP-NOUN)、link the equipment with the spare parts(VERB(link)-NOUN-PREP-NOUN)、associate the taxes with the shares(VERB(link)-NOUN-PREP-NOUN)、compose the product with the inputs(VERB(link)-NOUN-PREP-NOUN)である。
【0082】
モデル2:
このステップタイプは、特定の動詞が「hold responsible」また任意の類義語および前置詞、概して、「for」であることが可能であるが、それは変わる可能性があるVERB(hold responsible)-NOUN-PREP-NOUN形態的統語的規則識別子を割り振られる。
【0083】
このタイプの文のいくつかの例は、hold the client responsible for the payment(VERB(hold responsible)-NOUN-PREP-NOUN)、hold the employee responsible for inventory control(VERB(hold responsible)-NOUN-PREP-NOUN)である。
【0084】
モデル3:
このステップタイプは、特定の前置詞がa、an、または任意のその他の前置詞であることが可能であるVERB-NOUN-PREP(a)-NOUN形態的統語的規則識別子を割り振られる。
【0085】
このタイプの文のいくつかの例は、measure the item with a unit of measurement(VERB-NOUN-PREP(a)-NOUN)、value the item with a list of prices(VERB-NOUN-PREP(a)-NOUN)である。
【0086】
Fステップ(上述のタイプのいずれにも対応しないステップ)
Fステップは、動詞が「ケース」に固有であるアクションを指すので動詞が上述のタイプのいずれにも対応しないステップである。
【0087】
動詞は、以下のモデルのいずれかを示し得る。
【0088】
モデル1:
このステップタイプは、VERB-NOUN形態的統語的規則識別子を割り振られ、CC、QS、またはFXステップタイプにおいてもこの同じタイプのモデルのいずれにおいても特定の単語として挙げられていない動詞のすべてのために使用される。
【0089】
1つまたは複数の名詞が後に続く他動詞。たとえば、Buy an item(VERB-NOUN)、Sell fruits(VERB-NOUN)、Fix the tools(VERB-NOUN)、Solve problems(VERB-NOUN)。
【0090】
モデル2:
このステップタイプは、特定の動詞が「to be」であるVERB(is)-NOUN形態的統語的規則識別子を割り振られる。これは、名詞の性質を説明する非常に特殊な動詞である。
【0091】
このタイプの文のいくつかの例は、is fruit(VERB(is)-NOUN)、is a company(VERB(is)-NOUN)である。
【0092】
(c)単語論理: 分析された文および質問の所属する単語タイプ構造を決定する
自動文アナライザ151(
図4E1)として構成されたプロセッサ150は、各単文の単語から関連する機能構成要素を取得するために以下のアクションを実行する。
- 「ケース」の言語に関して、静的データベースメモリ160の言語、単語、および形態的統語的規則162の論理構造から、プロセッサ150は、動詞語尾(VE)と特殊な単語(SW)のリストとを取得し、特殊な単語のリストの中には、グループ化する単語(GRW)のリストおよび除外される単語(EXW)のリストがある。プロセッサ150は、論理構造から適用される指針を定義する形態的統語的規則も取得する。
- プロセッサ150は、動的データベースメモリ170の単文および質問171の論理構造から対応する質問に構造化された「ケース」の単文を取得する。
- プロセッサ150は、「ケース」の各単文に連番を割り振る。
- 「ケース」の各単文に関しておよび各質問に関して、プロセッサ150は、単語を1つずつ取得し、それらの単語を単語タイプに従って以下のように特徴付ける。
. 質問がHowである場合、プロセッサ150は、動詞を特定するために、質問内の各単語の語尾を動詞語尾VEと比較する。動詞が特定されると、プロセッサ150は、前置詞、冠詞、接続詞、および副詞を特定するために残りの単語を特殊な単語SWのリストと比較する。動詞の後に続き、SWではない単語は、名詞である。名詞の後に続く単語は、グループ化する単語GRWのリストの要素であるSWであることが可能であり、その場合、GRWにそのGRWの直前および直後の単語を合わせたものは、グループ化された名詞を構成する。SWではない残りの単語は、形容詞である。
. 質問がWhatである場合、最初の単語は動詞である。動詞が特定されると、プロセッサ150は、前置詞、冠詞、接続詞、および副詞を特定するために残りの単語を特殊な単語のリストと比較する。動詞が他動詞である場合、動詞の後に続く単語はSWではなく、その単語は、直接目的語(DO)として振る舞う名詞である。名詞の後に続く単語は、グループ化する単語GRWのリストの要素であるSWであることが可能であり、その場合、GRWにそのGRWの直前および直後の単語を合わせたものは、グループ化された名詞を構成する。SWではない残りの単語は、形容詞である。
. 質問がWhoである場合、プロセッサ150は、前置詞、冠詞、および接続詞を特定するために残りの単語を特殊な単語のリストと比較する。名詞の後に続く単語は、グループ化する単語GRWのリストの要素であるSWであることが可能であり、その場合、GRWにそのGRWの直前および直後の単語を合わせたものは、グループ化された名詞を構成する。SWではない残りの単語は、形容詞である。
【0093】
MASメタモデルおよび形態的統語的規則構造は、機能アーキテクチャドキュメントの作成に有用である機能構成要素を特定するために下位段階E4において適用され、ソフトウェア設計構成要素を生成するために下位段階G6において適用され、ソフトウェア設計MASメタモデルに関連するグラフィカルな表記を定義するために下位段階H4において適用される。これらの下位段階は、下位段階A1において定義されたように「ケース」のテキストの他動詞が扱われる本発明の好ましい実施形態を表す。
【0094】
段階B. 言語の特徴および構造を入力する
この段階(
図4B)において、「ケース」を自然言語で説明するために使用される言語およびその形態的統語的特徴が、以下の下位段階によって定義される。
【0095】
下位段階B1. 形容詞の順序の定義
形容詞の順序は、言語の名詞に対する形容詞の配置を指す。
【0096】
言語ユーザインターフェース121として構成された入力/出力デバイス120において、言語の形容詞の適切な順序は、形容詞の利用可能な順序のリスト、すなわち、順序1: 名詞+形容詞、順序2: 形容詞+名詞、順序3: 修飾された形容詞+修飾された名詞、順序4: 形容詞+修飾された名詞、順序5: 修飾された形容詞+名詞から定義される。たとえば、英語に関して、形容詞の適切な順序は、形容詞+名詞である。
【0097】
下位段階B2. 特殊な単語のアップロード
言語ユーザインターフェース121として構成された入力/出力デバイス120において、下位段階B1で定義された言語の特殊な単語が、アップロードされる。特殊な単語は、どの単語が文の分析から除外されるべきであるかを決定するために、自動文アナライザ151として構成されたプロセッサ150によって使用される。本発明の文脈においては、冠詞(ART)、前置詞(PREP)、接続詞(CONJ)、および副詞(ADV)が、言語の特殊な単語であると考えられる。英語においては、「a」および「the」が、冠詞の例であり、「for」および「with」が、前置詞の例であり、「and」および「or」が、接続詞の例であり、「how」および「where」が、副詞の例である。
【0098】
下位段階B3. グループ化する単語のアップロード
言語ユーザインターフェース121として構成された入力/出力デバイス120において、下位段階B1で定義された言語のグループ化する単語が、アップロードされる。本発明において、グループ化する単語は、複合語を作るために2つのその他の単語をリンクすることができる、下位段階B2で定義された特殊な単語からの単語である。それは、単語「of」によってグループ化される「list of prices」に当てはまる。
【0099】
下位段階B4. 動詞語尾のアップロード
言語ユーザインターフェース121として構成された入力/出力デバイス120において、決まった動詞語尾の最後の音節に対応する、下位段階B1からの言語の適切な動詞語尾が、アップロードされる。動詞語尾「-ing」は、英語に関する例である。
【0100】
段階C. 「ケース」の説明の入力
この段階(
図4C)において、ケースは、以下の下位段階によって自然言語で説明される。
【0101】
下位段階C1. ケースの説明のための言語の選択
ケースユーザインターフェース122として構成された入力/出力デバイス120において、「ケース」が説明される言語が、選択される。言語は、段階Bにおいてアップロードされた適格言語のリストから選択される。
【0102】
下位段階C2. 「ケース」の文脈を構造化する構成要素の特定
本発明の一実施形態においては、「ケース」の文脈を構造化する構成要素が、特定される。
【0103】
この段階は、「ケース」の世界の静的ビジョン(Static Vision)および時間的な動的ビジョン(Dynamic Vision)を扱う。静的ビジョンにおいては、「ケース」の概念構造が、時間が過ぎるにつれて何が起こるかを考慮せずに大域的観点から観測され、概念をそれを構成する次元(dimension)または主な側面、すなわち、レイヤ(layer)およびリソース(resource)に分割する。動的ビジョンにおいては、「ケース」の概念構造が、時間が過ぎるにつれて発生するイベント(時間的活動(temporal activity))の観点で、それらが発生する順序で観測される、すなわち、プロセス、モーメント(moment)、およびステップ。
【0104】
本発明の提案される実施形態において「ケース」の説明を構造化するために、レイヤ、リソース、プロセス、サブプロセス、およびモーメントが、特定される。
【0105】
(a)「ケース」のレイヤの特定
レイヤは、プロセスに参加し、その他と独立して扱われる可能性がある情報の階層と理解され、それは、十分に区別された入力および出力を用いて単独で機能する可能性がある。たとえば、これら2つのレイヤ、すなわち、(プロセスの入力データが構造化され、アクセスされる)データレイヤおよび(前記データを使用して計算が実行される)計算レイヤが、特定される。
【0106】
(b)「ケース」において使用されるリソースの特定
リソースは、プロセス全体を通じて変換の対象になり、変換プロセスの結果などのその他のリソースへのアクセスを可能にする構成要素である。たとえば、inventory itemは、販売プロセスにかけられるリソースである。
【0107】
(c)「ケース」内のプロセスの特定
プロセスは、リソースを変換するアクションまたはアクションのグループである。たとえば、「marketing inventory items」というプロセス。
【0108】
(d)「ケース」の各プロセスのサブプロセスの特定
サブプロセスは、フラグメント(fragment)によるプロセスの分析を可能にするプロセスの一部である。たとえば、「providing a quote」および「sale」が、「marketing inventory items」というプロセスに含まれるサブプロセスであることが可能である。
【0109】
(e)「ケース」のモーメントの特定
本発明において、モーメントは、サブプロセスに関連するイベントの発生を知らせるサブプロセスの区分である。たとえば、「When the client is interested」は、「providing a quote」というサブプロセス内で発生するモーメントである。
【0110】
下位段階C3. 「ケース」のステップの特定
ステップは、任意の所与のモーメントにおいて実行される活動である。例: モーメント「When the person enters the testing office」における活動は、その人の身分証明書を要求すること、前記身分証明書からのデータを記録すること、その人の家族集団の検索を実行すること、その人の現在の職について尋ねることである可能性がある。
【0111】
「ケース」の説明が完全であることを保証するために、ステップのすべて、明白であると思われるために概して省略されるステップさえも含められなければならない。
【0112】
ステップは文であり、それらの動詞が実行されるアクションを決定するので、ステップは、動詞が示すアクションのタイプに応じてならびに(下位段階B2において定義された特殊な単語、すなわち、冠詞、接続詞、副詞、および前置詞を含まない)動詞の後に続く名詞を分析することによって分類され得る。
【0113】
ステップタイプによって文を分類するための指針は、下位段階A2において定義された形態的統語的規則の一部としてステップタイプ論理と呼ばれ、以下で説明される。
【0114】
CCステップ:(チェック/確認アクションを含むステップ)
これらは、Check、Confirm、Restrictなどの動詞がチェックまたは確認アクションを定義するステップである。この場合、動詞は、システムのための数学的論理を表す文と常に結合される。このタイプの文のいくつかの例は、Check that the items have a positive inventory、Confirm that the client has a tax ID number、Restrict the intake of expired merchandiseである。
【0115】
QSステップ(問い合わせ/検索アクションを含むステップ)
これらは、Search、Locate、Select、Query、Indicate、Display、Showなどの動詞が問い合わせまたは検索アクションを定義するステップである。この場合、動詞は、名詞または直接目的語が常に後に続く。このタイプの文のいくつかの例は、Query the items、Show the balances、Display the data、Show the results、Search the items、Locate the spare parts、Select the clientsである。
【0116】
FXステップ(明示的な計算アクションを含むステップ)
これらは、Calculate、Group、Average、Addなどの動詞が計算アクションを明確に定義するステップである。この場合、動詞は、システムのための数学的論理を表す文と常に結合される。このタイプの文のいくつかの例は、Calculate total sales、Group the items by color、Average last month's costである。
【0117】
Lステップ(リンクするアクションを含むステップ)
これらは、Relate、Link、Associate、Composeなどの動詞がリンクするアクションを定義するステップである。この場合、動詞は、少なくとも2つの名詞が後に続く。このタイプの文のいくつかの例は、Link the items with the prices、Link the equipment with the spare parts、Associate the taxes with the shares、Compose the product with the inputsである。
【0118】
Fステップ(上述のタイプのいずれにも対応しないステップ)
これらは、動詞が「ケース」に固有であるアクションを指すので動詞が上述のタイプのいずれにも対応しないステップである。動詞は、以下のモデルのいずれかを表し得る。モデル1: 1つまたは複数の名詞が後に続く動詞。たとえば、Buy an item、Sell fruits、Fix the tools、Solve problems。モデル2: 名詞が後に続かない動詞。たとえば、Enter、Exit。
【0119】
ステップは、概して、以下の順序、すなわち、1)Fステップ、2)CCステップ、3)QSステップ、4)FXステップ、5)Lステップの順序で説明される。
【0120】
段階D. 「ケース」の単文および数学的モーメントの特定および記憶
この段階において、「ケース」の単文が、それらを入力/出力デバイス120のケースユーザインターフェース122にアップロードするために、「ケース」の説明の各段落を取得し、ただ1つの動詞を有する文を抽出してリスト化される。たとえば、説明の段落が「The item is an inventory item. The person measures the item in a unit of measurement and places the Order, for which he is responsible, and links it to an Order Type」である場合、対応する単文は、「The person measures the item in a unit of measurement」、「The person places the Order」、「The organization holds the person responsible for the Order」、「The item is an inventory item」、「The person links the Order to an Order Type」である。
【0121】
自由に記述されたテキストには、同じ段落内に、概して接続詞によって分けられる、暗黙的な主語を有する文が存在する。その場合、暗黙的な主語を有する文を明示的な主語を有する単文に変換する目的で、完全な文を形成するために主語が明らかにされる。たとえば、接続詞「and」によって分けられる以下の文、すなわち、「The person measures the item in a unit of measurement and places the Order」には暗示された主語が存在しており、2つの単文、すなわち、「The person measures the item in a unit of measurement」、「The person places the Order」に変えられる。
【0122】
このステップにおいて、説明は、「ケース」を説明する単文の集合であることに留意されたい。質問Who、What、Where、How、およびWhenに対する答えから導出される1つの単文は、プロセスの各ステップに対応する。
【0123】
数学的構成要素に関して、本発明は、入力されたテキストの数学的機能を特定することができ、本方法は、必要とされる機能の構成要素の各々に関して文を特定する。つまり、各数学的機能が、いくつかの単文に分解される。
図4G2に示されるように、単文が、5つの単純な質問の文を使用して数学的機能に関して特定される。たとえば、報酬の源泉徴収の計算を可能にする数学的機能は、5つの単文からなる。
【0124】
単文が特定され暗黙的な主語を有する単文が完成されると、それらの単文は、入力/出力デバイス120のケースユーザインターフェース122にアップロードされる。
【0125】
この段階(
図4D)において、「ケース」の単文は、以下の下位段階によって特定される。
【0126】
下位段階D1. 種類LおよびFのステップに関する「ケース」の各ステップの質問への回答
この段階においては、「ケース」の各単文が、質問When、Where、What、How、およびWhenに答えるために使用される。
【0127】
単文および質問動的データベースメモリ171に記憶された各単文に関して、プロセッサ150は、入力/出力デバイス120のケースユーザインターフェース122内に各文を表示し、質問Who、What、Where、How、およびWhenを尋ねる。示された各文に関して、ユーザは、それぞれの答えが文の意味の構成部分であることを保証しながら答えを入力する。場合によっては、質問のうちの1つまたは複数に答えることができない可能性がある。
【0128】
上述の質問に対する答えは、本発明の好ましい実施形態においては現在形で書かれなければならない単文のあらゆる部分を明確化する。
【0129】
質問のタイプによって文を分類するための指針は、下位段階A2において定義された形態的統語的規則の一部として質問論理と呼ばれる。
【0130】
下位段階D2. 種類LおよびFの各ステップからの答えの連結
質問に対する答えがアップロードされると、それぞれの答えが、以下の順序、すなわち、When、Who、What、How、Whereの順序で連結される。このようにして、答えのテキストが、1つの単文としてまとめられ、動的データベースメモリ170の単文および質問171の論理構造に記憶される。
【0131】
上述の質問に対する答えは、現在形で書かれなければならない単文のあらゆる部分を明確化する。
【0132】
たとえば、不完全な文「Ask for his identification document」に関して、上述の方法が適用される場合、結果は、単文When the person enters, the system operator records the number of the identification document.である。
【0133】
下位段階D3. ケースの数学的モーメントの特定
ケースの説明の概念的数学的論理を構造化する目的で、この段階は、ケースで使用された語句の数学的構成要素を特定する。たとえば、
モーメント: calculate the tax withholding.
ステップ1: Check payments(タイプQA)
ステップ2: Add the paid amounts(タイプFX)
ステップ3: Consult aliquot(タイプQS)
ステップ4: Calculate tax(FXタイプ)
ステップ5: Validate results(タイプCC)
【0134】
図4G2および
図4G3は、各ステップの構造と、ケースユーザインターフェース122が各タイプのステップに関してどのようにして提示されるかとを示す。
【0135】
下位段階D4. 種類QS、FX、およびCCのステップに関する「ケース」の各ステップの質問への回答
この段階において、本発明の方法は、「ケース」の数学的モーメントに対応する各単文を取得し、質問When、Who、What、How、およびWhereが、これらのタイプのステップに言及するケースに関して答えられなければならない。
【0136】
単文および質問動的データベースメモリ171に記憶された各単文に関して、プロセッサ150は、入力/出力デバイス120のケースユーザインターフェース122内に各文を表示し、質問Who、What、Where、How、およびWhenを尋ねる。示された各文に関して、ユーザは、ステップの数学的内容に従ってそれぞれの答えが文の意味の構成部分であることを保証しながら答えを入力する。場合によっては、質問のうちの1つまたは複数は答えられ得ないことがあり得る。
【0137】
上述の質問が答えられるとき、本発明の好ましい実施形態においては現在形で書かれなければならない単文のすべての部分が、明確化される。各質問に対する答えに加えて、数学的ケース(mathematical case)に関しては、各質問の必要とされる明記(specification)が、各タイプのステップに関して完了されなければならない。この指定は、各質問に対する各答えの意味を前のステップから生成された機能構成要素にリンクし、その結果、下位段階G2およびG3が実行されるとき、数学的ステップに関連する機能モデルが、クラスformulafxおよびdominiodxの自動生成のためのすべての必要な要素を持つ。
【0138】
ケースユーザインターフェース122-1において、単文が、FXステップタイプに関して入力される。
【0139】
ケースユーザインターフェース122-2において、単文が、CCステップタイプに関して入力される。
【0140】
ケースユーザインターフェース122-3において、単文が、QSステップタイプに関して入力される。
【0141】
ステップの各タイプQS、FX、およびCCに関する例として、以下のケースが、下で説明される。
【0142】
QSステップタイプの例
この例においては、ケースユーザインターフェース122内の各文が、
図4G3の表現および
図4G3aの詳細によってステップのタイプQSに関して説明される。
【0143】
【0144】
【0145】
【0146】
FXステップの例
この例においては、ケースユーザインターフェース122内の各文が、
図4G2の表現によってステップのタイプFXに関して説明される。
【0147】
【0148】
【0149】
CCステップの例
この例においては、ケースユーザインターフェース122内の各文が、
図4G2の表現によってステップのタイプCCに関して説明される。
【0150】
【0151】
【0152】
【0153】
質問によって文を分類するための指針は、下位ステップA2において定義された形態的統語的規則の一部として「質問論理」と呼ばれる。
【0154】
下位段階D5. タイプQS、FX、およびCCの各ステップの応答の連結
質問に対して答えがロードされると、それぞれの答えが、以下の順序、すなわち、When、Who、What、How、Whereの順序で連結される。このようにして、答えのテキストが、1つの単文に連結され、動的データベースメモリ170の単文および質問171論理構造に記憶される。
【0155】
上述の質問に対する答えによって、現在形で書かれなければならない単文のすべての部分が、明示的に明らかにされる。
【0156】
タイプQS、FX、およびCCのステップの場合、各単文は、各文に意味を与えるために、連結に一連の追加的な単語を加える。そのような競争(competition)の例が、以下のように太字で示される。
【0157】
ステップQSタイプの場合の単文の構築は、
The system checks payments(date, concept, amount), with the condition in force and non-exempt and stores them in payments that apply(date, concept, amount).である。
【0158】
ステップFXタイプの場合の単文の構築は、
The system calculates the tax, adding the amounts that apply and stores the result in invoice (tax amount).である。
【0159】
ステップCCタイプの場合の単文の構築は、
The system validates the result, comparing invoice with total payments and stores the result in attribute RdoValido(checkvalid).
【0160】
段階E. 機能および数学的構成要素の特定および記憶
本発明の文脈においては、機能構成要素は、それが表現された言語の文法的および統語的構造に従ってプロセッサ150によって自動的に抽出され、分類された文の単語の各々に対応することを理解されたい。
【0161】
この段階(
図4E)において、文の機能構成要素を特定するための下位段階が説明される。
【0162】
下位段階E1. 単文の単語への分解およびそれらの単語の特定
プロセッサ150によって生成された機能構成要素は、以下のタイプに分けられる。
・名詞機能構成要素
〇What内で特定される->名詞 - 直接目的語(DO)
〇Who内で特定される->名詞 - 人(PER)
〇When内で特定される->名詞(NOUN)
〇How内で特定される->名詞(NOUN)
・形容詞機能構成要素
〇質問のいずれかにおいて特定される->形容詞(ADJ)
・動詞機能構成要素
〇What内で特定される->動詞(VERB)
〇How内で特定される->動詞(VERB))
・副詞機能構成要素
〇How内で特定される->副詞(ADV)
【0163】
単語を構造化するための指針は、下位段階A2において定義された形態的統語的規則の一部として単語論理と呼ばれ、以下で説明される。
【0164】
この下位段階においては、自動文アナライザ151として構成されたプロセッサ150が、「ケース」の各単文に関して以下のアクションを実行する。
【0165】
(a)単語をリスト化する
あらゆる文に関して、その文の単語の各々をリスト化する。
【0166】
(b)除外される単語を特定する
下位段階B2において定義されたように除外されるそれらの単語を機能構成要素の選択から除外するが、そのような単語がlist of prices、box of cookiesなどのグループ化された名詞の一部である場合を除く。
【0167】
(c)動詞を特定する
各単語の語尾を下位段階B4において定義された動詞語尾のリストと比較することによって、または単文内の質問Whatに対する答えの最初の単語として動詞を特定する。
【0168】
(d)名詞を特定する
動詞ではなく、除外されなかった単語を名詞として特定する
【0169】
(e)名詞を&属性(&attribute)としてタグ付けする
一部の名詞は、&属性のように振る舞う。&属性は、形容詞ではない別の名詞の特徴の名前であると理解される。本発明の一実施形態においては、特定された名詞のリストに関して、&属性が、手動で選択される。別の実施形態においては、テキストにおいて括弧内に名詞がリスト化されるとき、プロセッサが、&属性を自動で認識する。例: 文「upload the document number of the client」において、「document number」は、「client」の&属性である。
【0170】
(f)グループ化された名詞を特定する
リンクとして働く特殊な単語がそれらの単語の間にある2つの連続した名詞が存在するとき、グループ化された名詞を名詞として特定する。
【0171】
(g)単語に基づいて機能構成要素を特定する
分類された単語のリストから、名詞および動詞が、機能構成要素として特定され、それに応じてVERB、DO、NOUN、PERSONとして分類される。
【0172】
(h)各機能構成要素の以前の存在を1つずつ調べる
任意のタイプの新しい機能構成要素が特定されるとき、それが既に存在するかどうかをチェックする。存在しない場合、その機能構成要素が生成される。存在する場合、その機能構成要素が存続する。
【0173】
(i)機能構成要素をそれらが答える質問に関連付ける
単語が属する質問に基づくタイプによって機能構成要素を分類する
i. 単語がWhenに属する場合、動詞と一緒にグループ化された単語は、副詞機能構成要素(ADV)である。
ii. 単語がWhatに属する場合、動詞の後に続く名詞は、直接目的語(DO)タイプの機能構成要素である。
iii. 単語がWhoに属する場合、最初の名詞は、人(PERS)機能構成要素である。
【0174】
自動文アナライザ151として構成されたプロセッサ150は、各単文の単語から関連する機能構成要素を取得するために、
図4E1に示されるように以下のアクションを実行する。
- 「ケース」の言語に関して、プロセッサ150は、静的データベースメモリ160の言語、単語、および形態的統語的規則162の論理構造から動詞語尾(VE)、特殊な単語(SW)のリストを取得し、特殊な単語(SW)のリストの中には、グループ化する単語(GRW)のリスト、除外される単語(EXW)のリストがある。
- プロセッサ150は、動的データベースメモリ170の単文および質問171の論理構造から対応する質問に構造化された「ケース」の単文を取得する。
- プロセッサ150は、「ケース」の各単文に連番を割り振る。
- 「ケース」の各単文に関して、各質問に関して、プロセッサ150は、単語を1つずつ取得し、それらの単語を単語タイプに従って以下のように特徴付ける。
. 質問がHowである場合、プロセッサ150は、動詞を特定するために、質問内の各単語の語尾を動詞語尾VEと比較する。動詞が特定されると、プロセッサ150は、前置詞、冠詞、接続詞、および副詞を特定するために残りの単語を特殊な単語SWのリストと比較する。動詞の後に続き、SWではない単語は、名詞である。名詞の後に続く単語は、グループ化する単語GRWのリストの要素であるSWであることが可能であり、その場合、GRWにそのGRWの直前および直後の単語を合わせたものは、グループ化された名詞を構成する。SWではない残りの単語は、形容詞である。
. 質問がWhatである場合、最初の単語は動詞である。動詞が特定されると、プロセッサ150は、前置詞、冠詞、接続詞、および副詞を特定するために残りの単語を特殊な単語のリストと比較する。動詞が他動詞である場合、動詞の後に続く単語はSWではなく、その単語は、直接目的語(DO)として振る舞う名詞である。名詞の後に続く単語は、グループ化する単語GRWのリストの要素であるSWであることが可能であり、その場合、GRWにそのGRWの直前および直後の単語を合わせたものは、グループ化された名詞を構成する。SWではない残りの単語は、形容詞である。
. 質問がWhoである場合、プロセッサ150は、前置詞、冠詞、および接続詞を特定するために残りの単語を特殊な単語のリストと比較する。名詞の後に続く単語は、グループ化する単語GRWのリストの要素であるSWであることが可能であり、その場合、GRWにそのGRWの直前および直後の単語を合わせたものは、グループ化された名詞を構成する。SWではない残りの単語は、形容詞である。
【0175】
下位段階E2. 説明に含まれない機能構成要素の追加
本発明の一実施形態においては、ユーザが、自動的に特定された機能構成要素のリストに存在しない機能構成要素を追加する。同じ例を先に進めると、
・身分証明書の番号は、文から自動的に検出される&属性である。
・人の年齢は、ユーザによって追加される&属性である。
【0176】
本発明の一実施形態においては、対応するステップおよび単文が、追加される各機能構成要素のために自動的に生成される。
【0177】
下位段階E3. ステップのタイプFX、CC、およびQSに関連する機能構成要素の特定
下位段階D3、D4、およびD5に示される数学的モーメントおよびステップから、自動文アナライザ151として構成されたプロセッサ150が、以下のように、ステップのタイプFX、CC、およびQSに対応する補足的機能構成要素を特定する。
【0178】
下位段階E3.a - FXステップタイプに対応する文の数学的構成要素
a. NOUN(Invoice)および括弧内の属性(taxedamount)を特定するために、インターフェース構成要素122-12において入力されたテキストに単語論理を適用する。これらの属性は、{属性&の列挙}を構成する。
b. 122-13の内容が、下位段階E3.aの項目aで特定されたNOUN(Invoice)、属性(taxedamount)にリンクされた機能構成要素{fx数式(fx expression)}であると定義する。
【0179】
下位段階E3.b - CCステップタイプに対応する文の数学的構成要素
a. NOUN(Result)および括弧内の属性(validcheck)を特定するために、インターフェース構成要素122-22において入力されたテキストに単語論理を適用する。これらの属性は、{属性&の列挙}を構成する。
b. 122-23の内容が、下位ステップE3.bの項目aで特定されたNOUN(Result)、属性(validcheck)にリンクされた機能構成要素{fx数式}であると定義する。
【0180】
下位段階E3.c - QSステップタイプに対応する文の数学的構成要素
a. NOUN(payments)および括弧内の属性(date, concept, amount)を特定するために、インターフェース構成要素122-31において入力されたテキストに単語論理を適用する。これらの属性は、{属性&の列挙}を構成する。
b. 122-32の内容が、下位段階E3.bの項目cで特定されたNOUN(Payments that Apply)、属性(date, concept, amount)にリンクされた機能構成要素{fx数式}であると定義する。
c. NOUN(Payments that Apply)および括弧内の属性(date, concept, amount)を特定するために、インターフェース構成要素122-33において入力されたテキストに単語論理を適用する。これらの属性は、{属性&の列挙}を構成する。
【0181】
下位段階E4. 機能構成要素への形態的統語的規則の適用
本発明の一実施形態においては、プロセッサ150が下位段階A2において定義された論理に従うように、ユーザが形態的統語的規則の使用を可能にすることができる。
【0182】
この実施形態においては、単文の各単語が、
図4A1からのMASメタモデルによってWord 161-1として分類され、以下の単語タイプ、すなわち、VERB、NOUN、ART、CONJ、ADJのうちの1つを割り振られる。Performer 161-2 WordおよびPerformable 161-3 Wordも生成され、他動詞にPerformance 161-4を割り振る。タイプによって分類されたWord 161-1のすべては、機能構成要素である。
図4Dに示されるように、各機能構成要素が生成されると、その機能構成要素は、その機能構成要素が由来する文、その機能構成要素が属する質問、対応する単語タイプ、および下位段階A2において示されたように質問を構成する単語タイプの並びを表す形態的統語的規則にリンクされる。
【0183】
機能構成要素の選択中に、対応する形態的統語的規則がそれに特殊な単語として印を付ける場合を除いて、下位段階B2において定義された特殊な単語。
【0184】
この実施形態において、プロセッサ150は、それぞれの他動詞に関して2つの新しい機能構成要素を生成する。動詞に動作主を示す接尾辞「ER」を付け加えたものとして指定された機能構成要素(Performer 161-2)、および動詞に接尾辞「BLE」を付け加えたものとして指定された機能構成要素(Performable 161-3)。他動詞は、Performance 161-4 Wordである。他動詞を実行させる名詞に関して、プロセッサ150は、動詞のERに関連付けられる動詞「is」を生成する。目標の名詞(文の直接目的語)に関して、プロセッサは、動詞のBLEに関連付けられる動詞「is」を生成する。
【0185】
段階F. 機能アーキテクチャドキュメントの生成
この段階(
図4F)においては、ドキュメントジェネレータ153として構成されたプロセッサ150が、静的データベースメモリ160のフォーマット、グラフィカルな表記、およびSTD文163の論理構造に記憶されたフォーマットおよび表記を使用して機能アーキテクチャドキュメントを生成し、それらの機能アーキテクチャドキュメントを入力/出力デバイス120のドキュメント表示ユーザインターフェース124内に表示する。
【0186】
この段階(
図4F)において、機能アーキテクチャドキュメントが、以下の下位段階によって生成される。
【0187】
下位段階F1. 機能アーキテクチャに関する形態的統語的規則の確立
段階Aにおいて定められたように、前置詞「to」または「to the」が後に続くそれぞれの他動詞に関して、プロセッサは、動詞を実行する名詞に関して以下、すなわち、名前が動詞に動作主を示す接尾辞「er」(以降、動詞のERと呼ばれる)を付け加えたものである統語的構成要素を生成し、プロセッサは、動詞のアクションを受ける名詞に関して以下、すなわち、名前が動詞に接尾辞「ble」(以降、動詞のBLEと呼ばれる)を付け加えたものである統語的構成要素を生成する。プロセッサは、元の名詞と動詞のERとの間に「動詞の実行(Performance of the verb)」と呼ばれる新しい名詞を生成する。元の名詞に関して、プロセッサは、動詞のBLEに関連付けられる動詞「is」を生成する。目標の名詞に関して、プロセッサは、動詞のERに関連付けられる動詞「is」を生成する。
【0188】
下位段階F2. 機能アーキテクチャドキュメント内で使用されるグラフィカルな表記の定義
この段階においては、入力/出力デバイス120のフォーマット、グラフィカルな表記、STD文ユーザインターフェース123を使用して、機能アーキテクチャドキュメント内で使用されるべきグラフィカルな表記が定義され、対応する単語タイプに従って各機能および数学的構成要素に関する図内で使用されるグラフィカルな構成要素を示す。定義されたグラフィカルな表記をデータベースメモリ130に記憶する。このようにして、ユーザは、
図6に示されるように、フォーマット、グラフィカルな表記、およびSTD文ユーザインターフェース123によって表示される視覚的なグリッドにグラフィカルな表記を入力する。
【0189】
下位段階F3. 機能アーキテクチャドキュメントの生成
ドキュメントジェネレータ153として構成されたプロセッサ150は、動的データベースメモリ170の機能構成要素論理構成172に記憶された機能および数学的構成要素を取得し、静的データベースメモリ160のMASメタモデル161論理構造内にあるMASメタモデルを適用して、下位段階F2において定義された表記を使用して機能アーキテクチャドキュメントを構築する。機能アーキテクチャ図を生成するために、プロセッサは、機能構成要素のリストをスキャンし、
図4F1に示される図などの図をプロセッサが生成するまで以下の規則を適用する。
規則1: それぞれのNOUNタイプの機能構成要素に関して、FCラベルをその中に有するFNOUNグラフィカル要素を描く。
規則2: それぞれのVERBタイプの機能構成要素に関して、VERBに先立つNOUNとVERBの後に続くNOUNとの間の線を、i)VERBが「beまたはその活用形」である場合、VERBに先立つNOUNからVERBの直ぐ後に続くNOUNまでFTOBEグラフィカル要素を描くこと、ii)VERBが任意のその他の他動詞である場合、VERBに先立つNOUNからVERBの直ぐ後に続くNOUNまでFERBLEグラフィカル要素を描くこと、iii)VERBが他動詞ではない場合、VERBに先立つNOUNからその同じNOUNまでFVERBグラフィカル要素を描くことを考慮に入れて描く。
規則3: それぞれのPREPタイプの機能構成要素に関して、ただし、前置詞「of」および「of the」に関してのみ、前置詞に先立つNOUNと前置詞の後に続くNOUNとの間にFPREPグラフィカル要素を描く。
規則4: それぞれの他動詞に関して、下位段階A1において定義されたMASメタモデルに基づいて生成された単語に対応するグラフィカルな構成要素、すなわち、Performer単語に関してFERBLEグラフィカル要素、Performable単語に関してFERBLE、Performance単語に関してFPERFを描く。
【0190】
プロセッサ150は、入力/出力デバイス120上に機能アーキテクチャドキュメントを表示する。
【0191】
段階G. 設計構成要素の特定および記憶
本発明において、「ケース」の設計ドキュメントは、以下の図、すなわち、概念設計図、ユースケース図、クラス図、実体関連図、画面設計図、およびレポート設計図から構成される。
【0192】
「ケース」の各設計ドキュメントは、グラフィックスを示す。特に、クラス図が、本発明において使用される。オブジェクト指向(OO)の規範によるクラス図の一部である各グラフィカル要素は、設計構成要素(DC)と呼ばれる。例: クラスの関係、属性、メソッド。
【0193】
本発明の目的のために、クラス、属性、関係、および方法は、オブジェクト指向(OO)の規範で定義された設計構成要素であると理解されたい。
【0194】
この段階(
図4G)においては、自動ソフトウェアデザイナ152として構成されたプロセッサ150が、以下の下位段階によってソフトウェアを自動的に設計する。
【0195】
下位段階G1. 機能および数学的構成要素のグループ化、それらの構成要素のクラスおよび継承関係の生成
この下位段階においては、自動ソフトウェアデザイナ152として構成されたプロセッサ150が、以下のアクションを実行して、クラスおよび継承関係をそれらの属性の類似性に基づいて生成する。
【0196】
(a)機能構成要素を選択する
プロセッサ150は、「属性である」としてタグ付けされた機能構成要素およびVERB単語タイプの機能構成要素を除いて、動的データベースメモリ170の機能構成要素172の論理構造に記憶される、段階Eにおいて生成された機能および数学的構成要素のリストを取得する。
【0197】
プロセッサ150は、「Person」が単一の機能構成要素と考えられる単語「person」および「persons」の場合と同様に、非常に似た名前(たとえば、レーベンシュタイン距離アルゴリズムを使用して90%の類似性)を有する機能および数学的構成要素を削除する。
【0198】
(b)似ている機能構成要素をグループ化する
プロセッサ150は、同じ{&属性のリスト}を有する機能構成要素を同じグループに入れることによって、{&属性のリスト}を使用して前のステップに含まれる機能構成要素をグループ化する。プロセッサ150は、2つ以上の機能構成要素を有するグループを取得し、それらのグループに単語名、たとえば、Word01、Word02を割り振る。
【0199】
(c)グループごとにクラスを生成する
プロセッサ150は、{&属性のリスト}の各要素を属性として示し、クラスにグループに対応する単語の名前を割り振って、2つ以上の機能構成要素を有する各グループのためのクラスを生成する。
【0200】
(d)グループに関する継承関係を生成する
2つ以上の要素を有するグループに属する機能構成要素に関して、プロセッサ150は、機能構成要素が属する{&属性のリスト}のグループに応じて、機能構成要素が属する各クラスとそのそれぞれのグループのクラスとの間の継承関係を生成する。つまり、継承関係は、前のステップからの同じグループのクラス内で生成された同じ{&属性のリスト}を有するクラスの間に存在する。
【0201】
下位段階G2. FXおよびCCタイプのステップに基づく式クラスの生成
この下位段階においては、自動ソフトウェアデザイナ152として構成されたプロセッサ150が、質問タイプによって分けられる「ケース」の単文に対する以下のアクションを実行する。
【0202】
(a)FXおよびCCステップに属するVERBおよびDO機能構成要素をリスト化する
プロセッサ150は、すべてのVERBおよびDOタイプの機能構成要素をリスト化し、下位段階C3において定義されたようにそれらの機能構成要素の対応するステップタイプを特定する。
【0203】
(b)FXおよびCCタイプのステップのためのクラスの生成
FXおよびCCタイプのステップに属する機能および数学的構成要素に基づいて、プロセッサ150は、VERBによって定義された挙動を有するクラスを生成する。各VERBに関して、プロセッサ150は、クラスを生成し、下位段階E3.aおよび下位段階E3.bにおいて特定された{fx数式}によって示される数式を計算する役目を担う式と呼ばれるメソッドを追加する。
【0204】
前のステップにおいて生成された各クラスに関して、プロセッサ150は、以下のアクションを実行する。
a. DO「Is Attribute」の場合、プロセッサ150は、クラス内にDOと呼ばれる属性を生成する。
b. DO「Is Attribute」の場合、プロセッサ150は、前のステップからのクラスと(TargetClassと呼ばれる)クラスの属性としてDOを含むクラスとの間の関係を生成する。プロセッサ150は、この関係をTargetClass_Movementと名付ける。
【0205】
下位段階G3. QSタイプのステップに基づくドメインクラスの生成。
この下位段階においては、自動ソフトウェアデザイナ152として構成されたプロセッサ150が、以下のアクションを実行する。
【0206】
(a)QSステップに属するVERBおよびDO機能構成要素をリスト化する
プロセッサ150は、すべてのVERBおよびDOタイプの機能構成要素をリスト化し、下位段階C3において定義されたようにそれらの機能構成要素の対応するステップタイプを特定する。
【0207】
(b)QSタイプのステップのためのクラスを生成する
QSタイプのステップに属する機能構成要素に基づいて、プロセッサ150は、VERBによって定義された挙動を有するクラスを生成する。各VERBに関して、プロセッサ150は、VERB+DOと呼ばれるクラスを生成し、下位段階E3.cにおいて特定された{fx数式}によって定義されたようにデータを検索する役目を担うfxdomainと呼ばれるメソッドを追加する。プロセッサ150は、{&属性のリスト}に示された&属性を有する「ドメイン」+VERB+DOと呼ばれるクラスを生成する。&属性のリストが前に生成されたクラスのうちの1つの&属性と一致する場合、プロセッサ150は、対応する方向のそれらのクラスの間の継承関係を生成する。
【0208】
fxdomainメソッドは、「ドメイン」+VERB+DOを呼ぶ。
【0209】
下位段階G4. Lタイプのステップに基づくドメインクラスの生成。
この下位段階においては、自動ソフトウェアデザイナ152として構成されたプロセッサ150が、以下のアクションを実行する。
【0210】
(a)Lステップに属するVERBおよびDO機能構成要素のリスト化
プロセッサ150は、すべてのVERBおよびDOタイプの機能構成要素をリスト化し、下位段階C3において定義されたようにそれらの機能構成要素の対応するステップタイプを特定する。
【0211】
(b)Lステップタイプのためのクラスの生成
Lタイプの機能構成要素に基づいて、プロセッサ150は、DO+「for」+NOUNと呼ばれるDOとNOUNとの間の関係を生成する。
【0212】
下位段階G5. Fタイプのステップに基づく動作クラスの生成
この下位段階においては、自動ソフトウェアデザイナ152として構成されたプロセッサ150が、以下のアクションを実行する。
【0213】
(a)Fステップに属するVERBおよびDO機能構成要素のリスト化
プロセッサ150は、すべてのVERBおよびDOタイプの機能構成要素をリスト化し、下位段階C3において定義されたようにそれらの機能構成要素の対応するステップタイプを特定する。
【0214】
(b)Fタイプのステップのためのクラスの生成
Fタイプの機能構成要素に基づいて、プロセッサ150は、DO「Is Attribute」か否かに応じて以下のクラスを生成する。
a. DO「Is Attribute」の場合、プロセッサ150は、クラスを生成しない。
b. DO「Is Attribute」の場合、
i. プロセッサ150は、Class_Cabと呼ばれる、VERB + DOと呼ばれるクラスを生成する
ii. FタイプのステップからのDOクラスは、Class_Recと呼ばれる
iii. プロセッサ150は、Class_cabとClass_recとの間に1対nの関係を生成する。プロセッサ150は、関係を「ムーブメント(movement)」+DOと名付ける。
【0215】
下位段階G6. 設計構成要素への形態的統語的規則の適用
本発明の一実施形態においては、プロセッサ150が下位段階A2において定義された論理に従うように、ユーザが形態的統語的規則の使用を可能にすることができる。
【0216】
下位段階A2において定義され、静的データベースメモリ160の言語、単語、および形態的統語的規則162の論理構造に記憶された形態的統語的規則に基づいて、プロセッサ150は、どのソフトウェア設計構成要素(DC)が動的データベースメモリ170の機能構成要素論理構造172に記憶された各機能構成要素(FC)から導出されるかを決定する。
【0217】
プロセッサ150は、質問をリスト化し、答えを構成する単語のタイプに基づいて各質問に関する規則識別子を生成する。それから、プロセッサ150は、静的データベースメモリ160の言語、単語、および形態的統語的規則162の論理構造内で前記規則識別子を検索し、識別子をマッチングすることによって基本規則を見つける。同じ基本規則識別子を有する2つ以上の形態的統語的規則が存在する場合があり、その場合、テキスト内で発見され、形態的統語的規則内に示された質問、Fステップタイプ、および特定の単語に一致する規則が、選択される。識別子がいずれの基本規則にも一致しない場合、プロセッサ150は、質問を無視する。
【0218】
この実施形態において、前の下位段階において特定され、下位段階A1において定義された各他動詞VERBに関して、プロセッサ150は、動詞に関連するWord 161-4ならびにPerformer 161-2およびPerformable 161-3の単語を生成する。
【0219】
Lタイプのステップの場合に関して、ユーザは、基本規則VERB-NOUN-PREP-NOUNに応じて形態的統語的規則を生成することができ、たとえば、動詞「to link」が、特定の単語として扱われる。この場合、ステップタイプは、Lであり、プロセッサ150は、DO+「for」+NOUNと呼ばれるDOとNOUNとの間の関係を生成する。
【0220】
FXタイプのステップの場合に関して、プロセッサ150は、下位段階E3.aにおいて特定されたそれぞれの数学的構成要素に関して、下位ステップE3.aの項目aにおいて特定された属性(taxedamount)にリンクされた、{fx数式}がインターフェース122-13に入力されたタイプformulafxの単語を生成する。
【0221】
ステップタイプCCの場合に関して、プロセッサ150は、下位ステップE3.bにおいて特定されたそれぞれの数学的構成要素に関して、下位ステップE3.bの副段落aにおいて特定された属性(validcheck)にリンクされた、{fx数式}がインターフェース122-23に入力されたタイプformulafxの単語を生成する。
【0222】
ステップタイプQSの場合に関して、プロセッサ150は、下位ステップE3.cにおいて特定されたそれぞれの数学的構成要素に関して、{fx数式}がインターフェース122-32に入力されたタイプfxdomainの単語および前のfxdomainにリンクされたタイプfxformulaの単語を生成する。この式fxは、下位ステップE3.bの副段落cにおいて特定された{属性&の列挙}(date, concept, amount)にリンクされる。
【0223】
図4A3は、MASメタモデル161に基づくソフトウェア設計のための形態的統語的規則を説明する応用例によってソフトウェア設計クラスモデルを示す。これらの形態的統語的規則は、「ケース」の文のモデル化を生み出す。自然言語からソフトウェアを設計するために、ソフトウェア設計のための形態的統語的規則が、単文を説明する質問(When、Who、What、How、Where)の各々に関して定義される。単語、規則、および形態的統語的規則静的データベースメモリ162に記憶されたこれらの規則は、下位段階2Aにおいて示されたように各単文に関して計算された規則識別子と比較され、マッチングに基づいて、ソフトウェア設計構成要素を生成するために自動ソフトウェアデザイナ152として構成されたプロセッサ150によって使用される論理が、定義される。
【0224】
段階H. フォーマット、グラフィカルな表記、およびSTD文の定義
この段階(
図4H)においては、ビジネス、分析、および設計ドキュメントのためのフォーマット、ならびにそれらを生成するために必要なパラメータが、以下のステップによって定義される。
【0225】
下位段階H1. ドキュメントのための出力フォーマットを定義する
この下位段階においては、入力/出力デバイス120のフォーマット、グラフィカルな表記、およびSTD文ユーザインターフェース123を使用して、ビジネスドキュメント、分析ドキュメント、および設計ドキュメントのための表示または印刷フォーマットが、定義される。
【0226】
これらの定義は、余白、フォント、および各ドキュメントの内容が表示される並びのソート順を定義することを含む。
【0227】
ビジネスドキュメントに関しては、レイヤ、リソース、プロセス、サブプロセス、モーメント、およびステップの提示順および並びが、定義される。
【0228】
分析ドキュメントに関しては、大域的なおよび詳細な要件の提示順および並びが、定義される。
【0229】
本発明の一実施形態においては、ユーザが、入力/出力デバイス120のフォーマット、グラフィカルな表記、およびSTD文ユーザインターフェース123を使用して、下位段階F1、F2、F3、およびF4においてアップロードされたフォーマット、グラフィカルな表記、および定型文を修正することが可能である。
【0230】
下位段階H2. 要件に関する定型文の定義
この下位段階においては、入力/出力デバイス120のフォーマット、グラフィカルな表記、およびSTD文ユーザインターフェース123を使用して、要件を説明するための定型文が入力され、要件を生成するために使用される1つの言語または複数の言語で記述され、それらの定型文は、入力/出力デバイス160の言語、単語、および形態的統語的規則162の論理構造に記憶される。要件を生成するために必要な定型文が、下で説明される。これらの文は、翻訳され、ドキュメントの要件の生成が望ましい言語の各々で記憶されなければならない。
【0231】
(a)大域的要件(global requirement)のための定型文
大域的要件を生成するために、英語に当てはまる以下の定型文が定義される。
OracionSTD_abm_Sust:「Create, Read, Update and Delete」
OracionSTD_abm_Pers:「Create, Read, Update and Delete Entities with role」
OracionSTD_verbo_F:「Create transaction record」
OracionSTD_verbo_R:「Create rule that」
OracionSTD_verbo_conector_R:「with」
OracionSTD_verbo:「Create rule that」
【0232】
(b)NOUNおよびDO構成要素に関する詳細な要件のための定型文
NOUNおよびDO機能構成要素に関する詳細な要件を生成するために、英語に当てはまる以下の定型文が定義される。
OracionSTD_Crear:「Create a new element」
OracionSTD_Agregar_Atributos: OracionSTD_Agregar_Atributos
OracionSTD_Agregar_Controles:「Perform the following controls when an element is created」
OracionSTD_Baja:「Exclude a」
OracionSTD_Edicion:「Update a」
OracionSTD_Consulta:「Search the transaction records of」
OracionSTD_complemento_control:「performing the following controls」
OracionSTD_complemento_busqueda:「performing the following searches」
OracionSTD_crear_atributo:「Create the attribute」
OracionSTD_validacion_atributo:「Perform the following controls when the datum is completed」
【0233】
(c)PERSON構成要素に関する詳細な要件のための定型文
PERSON機能構成要素に関する詳細な要件を生成するために、英語に当てはまる以下の定型文が定義される。
OracionSTD_permitirque:「Allow」
OracionSTD_acciones_Persona:「to perform the following actions」
OracionSTD_afectacion_Persona:「to be subject to the following actions」
OracionSTD_responsabilidad_Persona:「to be performed under the responsibility of」
【0234】
(d)VERB構成要素に関する詳細な要件のための定型文
CCタイプのステップまたはFXタイプのステップに関連するVERB機能構成要素に関する詳細な要件を生成するために、英語に当てはまる以下の定型文が定義される。
OracionSTD_crear_Fx:「Create a formula for」
OracionSTD_argumentos:「using the following data as arguments」
OracionSTD_expresion:「in the following expression」
OracionSTD_msj_error_Fx:「If the formula returns an error, display the following message」
OracionSTD_msj_ok_Fx:「If the formula returns a valid result, display the following message」
OracionSTD_msj_advertencia_Fx:「If the formula returns a warning, display the following message」
【0235】
QSタイプのステップに関連するVERB機能構成要素に関する詳細な要件を生成するために、英語に当てはまる以下の定型文が定義される。
OracionSTD_crear_busqueda:「Create a rule for」
OracionSTD_exponer_atributos:「displaying the following data」
OracionSTD_definir_busqueda:「Allow searching for the data of」
OracionSTD_conector_orden:「by」
OracionSTD_definir_filtro:「Allow filtering the data of」
OracionSTD_definir_orden:「Allow sorting the data of」
OracionSTD_definir_agrupamiento:「Allow grouping for the data of」
OracionSTD_definir_total:「Display the following summarized data」
【0236】
Lタイプのステップに関連するVERB機能構成要素に関する詳細な要件を生成するために、英語に当てはまる以下の定型文が定義される。
OracionSTD_crear_regla:「Create a rule that」
OracionSTD_condicion:「as long as the following condition is met」
OracionSTD_vincular:「Link」
OracionSTD_conector_vincular:「with」
OracionSTD_complemento_control:「performing the following controls」
OracionSTD_des vincular:「Unlink」
OracionSTD_ consultar:「Search」
OracionSTD_ complemento_relacionar:「in a relationship with」
OracionSTD_ complemento_criteriobusqueda:「using the following search criteria」
【0237】
Fタイプのステップに関連するVERB機能構成要素に関する詳細な要件を生成するために、英語に当てはまる以下の定型文が定義される。
OracionSTD_permitir:「Allow」
OracionSTD_habilitar_persona:「Enable」
OracionSTD_complemento_accionpersona:「to decide on the action」
OracionSTD_movimientos:「Allow the movements of」
OracionSTD_complemento_acargode:「to affect」
OracionSTD_control_nuevo:「Perform the following controls when creating a new transaction record of」
OracionSTD_control_eliminar:「Perform the following controls when deleting the transaction record of」
OracionSTD_control_modificar:「Perform the following controls when updating the transaction record of」
OracionSTD_precedencia:「based on the following existing records:」
OracionSTD_nuevo_movimiento:「Record n movements of」
OracionSTD_control_nuevo_movimiento:「Perform the following controls when creating a new movement of」
OracionSTD_control_eliminar_movimiento:「Perform the following controls when deleting the movement of」
OracionSTD_control_modificar_movimiento:「Perform the following controls when updating the movement of」
OracionSTD_buscar_elemento:「Search for the elements of」
OracionSTD_complemento_buscarelemento:「to create a movement, performing the following searches」
【0238】
下位段階H3. ソフトウェア設計において使用されるグラフィカルな表記の定義
この段階において、ソフトウェア設計図において使用されるグラフィカルな表記が、入力/出力デバイス120のフォーマット、グラフィカルな表記、およびSTD文ユーザインターフェース123を使用して定義される。
【0239】
設計図は様々なグラフィカルな表記で表示されることが可能であり、それらのグラフィカルな表記のうちの1つはUML表記であるが、設計ドキュメントを表すためのグラフィカル要素を定義することが可能である。
【0240】
下位段階H4. MASメタモデルに関連するグラフィカルな表記の定義
下位段階A1において定義されたMASメタモデルの各要素に関するソフトウェア設計図において使用されるグラフィカルな構成要素を示す。このようにして、ユーザは、フォーマット、グラフィカルな表記、およびSTD文ユーザインターフェース123によって表示される視覚的なグリッドにグラフィカルな表記を入力する。
【0241】
設計図は様々なグラフィカルな表記で表示されることが可能であり、それらのグラフィカルな表記のうちの1つはUML表記であるが、
図7に示されるように設計ドキュメントを表すためのグラフィカル要素を定義することが可能である。
【0242】
段階I. ビジネス、分析、および設計ドキュメントの自動生成
この段階(
図4I)においては、ドキュメントジェネレータ153として構成されたプロセッサ150が、以下の下位段階によって静的データベースメモリ160のフォーマット、グラフィカルな表記、およびSTD文163に記憶されたフォーマットおよび表記を使用してビジネス、分析、および設計ドキュメントを生成し、それらのドキュメントを入力/出力デバイス120のドキュメント表示ユーザインターフェース124内に表示する。
【0243】
下位段階I1. ビジネスドキュメントの生成
この段階においては、ドキュメントジェネレータ153として構成されたプロセッサ150が、ビジネスドキュメントのテキストを構成する。本発明において、ビジネスドキュメントは、以下のアクションを実行することによって動的データベースメモリ170の単文および質問171の論理構造に記憶された単文を示す分析ドキュメントである。
【0244】
a).次元、時間的活動、および単文を順序付ける
プロセッサ150は、
図4I2に示されるようにレイヤが階層の一番上にあり、ステップが階層の一番下にあるようにしてテキストを階層的に順序付け、したがって、
- レイヤ310が、リソース320を含む
- リソース320が、プロセス330を含む
- プロセス330が、サブプロセス340を含む
- サブプロセス340が、モーメント350を含む
- モーメント350が、上述のように最大5つのタイプであることが可能であるステップ360を含む。
- ステップ360が、単文370をそれらの対応する完成された質問とともに含む。
【0245】
b).既に順序付けられた構成要素を連続的にまとめる
好ましい実施形態(
図5)において、単文が、好ましい順序、したがって、When、それからWho、それからWhat、それからHow、そして最後にWhereの順序で質問の各々に対する答えをまとめることによって取得され、これは、順序が変更され得ないことを意味しない。
【0246】
プロセスのすべてがこの方法を使用して説明されるとき、自然言語で表現された「ケース」の完全で詳細な構成が達成される。
【0247】
下位段階I2. 分析ドキュメントの生成
この段階においては、ドキュメントジェネレータ153として構成されたプロセッサ150が、機能要件を構造化し、分析ドキュメントを自動的に生成する。本発明において、分析ドキュメントは、以下のアクションを実行することによって、動的データベースメモリ170の単文および質問171の論理構造に記憶された機能構成要素から取得された要件を示す。
【0248】
a)大域的機能要件の組み立て
「ケース」の大域的機能要件は、ソフトウェアアプリケーションを構築するために必要とされる機能要件の観点から見て、それらが解釈されることが可能であり、実行されるべきアクションが決定されることが可能であるように、それらが実行されなければならない順序でプロセスを説明するアクションである。
【0249】
プロセッサ150は、動的データベースメモリ170の機能構成要素論理構造172に記憶された機能構成要素を取得し、以下、すなわち、NOUN、PERSON、DO、およびVERBのみを選択する。上述の機能構成要素の各々に関して、プロセッサ150は、「ケース」のスコープの一部である大域的要件を生成し、NOUN構成要素(NOUN、DO、PER)に関する大域的要件を定義し、VERB構成要素に関する大域的要件を定義する。
【0250】
NOUN構成要素に関する大域的要件
大域的要件は、それぞれの名詞機能構成要素(NOUN、PERSON、およびDO)に関して、それが属性でない限り、下位段階F2において定義された定型文を使用して、Table 1(表6)に示される文などのタグ付けされ、連番を振られた文を生成することによって組み立てられる。
【0251】
【0252】
VERB構成要素に関する大域的要件
大域的要件は、タグ付けされ、連番を振られた文を生成することによって各VERB機能構成要素に関して組み立てられる。
【0253】
この場合、文は、VERBに基づいて各ステップタイプに関して生成され、その文を構成するために、Table 2(表7)に示されるように、Whatの質問においてVERBに結合されるDOおよびNOUNを使用する。
【0254】
【0255】
単一の大域的要件は、異なるステップから、単一の機能構成要素によって記述される。この場合、大域的要件は、繰り返しを避けるために一度だけ記述され、必要な回数だけ対応するステップにリンクされる。
【0256】
b)詳細な機能要件の組み立て
この段階においては、「ケース」の詳細な要件が、各大域的要件、すなわち、文内ではっきりと示された要件である明示的詳細要件と、必要であることが知られているが、明示的に説明されない要件である暗黙的詳細要件とに関して説明される。
【0257】
本発明の文脈において、引用符内に示された文は、静的データベースメモリ160の言語、単語、および形態的統語的規則162の論理構造から取得される好ましい文である。しかし、これらの文は、等価な意味を有し、下位段階F2において提示された実施形態においてケースのために選択された言語に好適である文によって置き換えられ得る。
【0258】
機能構成要素の各タイプに関して、その大域的要件の定義に基づいて、「ケース」の詳細な要件が、下位段階F2において定義された定型文を使用して定義される。
【0259】
本発明のより深い理解のために、詳細な要件を生成するために、単語が、以下の基準に従って置き換えられることに留意されたい。
- NOUNは、下位段階D2において定義されたこのタイプの機能構成要素を指す。
- PERSONは、下位段階D2において定義されたこのタイプの機能構成要素を指す。
- DOは、下位段階D2において定義されたこのタイプの機能構成要素を指す。
- VERBは、下位段階D2において定義されたこのタイプの機能構成要素を指す。
- {&属性のリスト}: 下位段階D2において&属性として印を付けられたNOUNに下位段階D3において追加されたNOUNを足したものからなる、NOUNを説明する&属性のリスト。
- {*属性のリスト}: 検索または問い合わせの結果を検索するか、フィルタリングするか、ソートするか、グループ化するか、または加えるために使用される下位段階D2において定義された&属性のリストの一部。
- {DO&属性のリスト}: 下位段階G3において生成された詳細な要件によってDO構成要素に関連付けられる要素からなる、下位段階D2において定義された&属性のリストからの&属性の集合。
- {NOUN&属性のリスト}: 下位段階G3において生成された詳細な要件によってNOUN構成要素に関連付けられる要素からなる、下位段階D2において定義された&属性のリストからの&属性の集合。
- {PERSON&属性のリスト}: 下位段階G3において生成された詳細な要件によってPERSON構成要素に関連付けられる要素からなる、下位段階D2において定義された&属性のリストからの&属性の集合。
- {CCタイプの大域的要件のリスト}: 下位段階E2において特定されたCCタイプのステップに属するNOUN構成要素またはDO構成要素二基づいて定義された大域的要件からなる大域的要件の集合。このリストは、0からn個までの大域的要件を含む。リストが0個の大域的要件を含む場合、CCタイプの大域的要件に言及する詳細な要件は、生成されない。
- {QSタイプの大域的要件のリスト}: 下位段階E3において特定されたQSタイプのステップに基づいて生成された大域的要件のリスト。このリストは、0からn個までの大域的要件を含む。リストが0個の大域的要件を含む場合、QSタイプの大域的要件に言及する詳細な要件は、生成されない。
- {Fタイプの大域的要件のリスト}: 下位段階E5において特定されたFタイプのステップに基づいて生成された大域的要件のリスト。このリストは、0からn個までの大域的要件を含む。リストが0個の大域的要件を含む場合、Fタイプの大域的要件に言及する詳細な要件は、生成されない。
- {fx数式}: リスト化されたデータを引数に取り、タイプFX、CC、またはQSのステップの一部に関して下位段階D3において特定された式に関する数式。
- {エラーメッセージ}: 種類QSのいずれかの段階に関して下位段階D3において定義された、式を実行する際にエラーが存在する場合にシステム内で示されるべきメッセージのテキスト。
- {okメッセージ}: 種類QSのいずれかの段階に関して下位段階D3において定義された、チェックまたは確認の結果が正しい場合にシステム内で示されるべきメッセージのテキスト。
- {警告メッセージ}: 種類QSのいずれかの段階に関して下位段階D3において定義された、チェックまたは確認の結果が正しくない場合にシステム内で示されるべきメッセージのテキスト。
【0260】
NOUN構成要素に関する詳細な要件の定義
動的データベースメモリ170の機能構成要素172の論理構造に記憶されたNOUNタイプの機能構成要素およびそれらのそれぞれの大域的要件に基づいて、以下の詳細な要件が生成される。
【0261】
【0262】
PERSON構成要素に関する詳細な要件の定義
動的データベースメモリ170の機能構成要素172の論理構造に記憶されたPERSONタイプの機能構成要素およびそれらのそれぞれの大域的要件に基づいて、以下の詳細な要件が生成される。
【0263】
【0264】
VERB構成要素に関する詳細な要件の定義
動的データベースメモリ170の機能構成要素172の論理構造に記憶されたVERBタイプの機能構成要素およびそれらのそれぞれの大域的要件に基づいて、以下の詳細な要件が生成される。
【0265】
【0266】
【0267】
【0268】
DO構成要素に関する詳細な要件の定義
動的データベースメモリ170の機能構成要素172の論理構造に記憶されたDOタイプの機能構成要素およびそれらのそれぞれの大域的要件に基づいて、以下の詳細な要件が生成される。
【0269】
【0270】
下位段階I3. ソフトウェア設計ドキュメントの生成
下位段階F4において定義されたグラフィカルな表記のとおりに、ドキュメントジェネレータ153として構成されたプロセッサ150は、各設計構成要素の名前およびその対応するグラフィカルな表記のコードがタグの間に記憶されるXMLファイルを生成する。
【0271】
UMLのグラフィカルな表記が選択される本発明の実施形態に関しては、xmi規格が使用され、クラス図を表すXMLが生成される。
【0272】
ドキュメントジェネレータ153として構成されたプロセッサ150は、設計に対応するデータベースメモリに記憶されたデータを取得し、下位段階F4において選択されたグラフィカルな表記の定義に従って特定のXMLフォーマットで内容をエクスポートして、設計ドキュメントを生成する。
【0273】
方法の1つの応用の例
自然言語のプロセスの説明に基づいて、システムは、「ケース」のビジネスドキュメント、分析ドキュメント、および設計ドキュメントを自動的に生成する。
【0274】
システムの構成要素は、上述のドキュメントの生成を可能にする構成要素である(
図3)。
1. 入力/出力デバイス120: 以下の構成を使用して自然言語のテキストが入力されるデバイス
a. 言語ユーザインターフェース121
b. ケースユーザインターフェース122
c. フォーマット、グラフィカルな表記、およびSTD文ユーザインターフェース123
d. ドキュメント表示ユーザインターフェース124
2. CPU 110: 以下からなるシステム100の処理デバイス
a. メインメモリ140: メインメモリ140は、その構成に応じて以下の機能を実行する
i.
図141
ii. 文マトリックス142
iii. FCマトリックス143
iv. DCマトリックス144
b. プロセッサ150: プロセッサ150は、その構成に応じて以下の機能を実行する
i. 自動文アナライザ151
ii. 自動ソフトウェアデザイナ152
iii. ドキュメントジェネレータ153
3. データベースメモリ130:
a. 静的データベースメモリ160:
i. MASメタモデル161
ii. 言語、単語、および形態的統語的規則162
iii. フォーマット、グラフィカルな表記、およびSTD文163
b. 動的データベースメモリ170
i. 単文質問171
ii. 機能構成要素172
iii. 設計構成要素173
【0275】
入力/出力デバイス
このツールは、ユーザがデータを入力するかまたはアクションを実行することができるフィールドとともにモニタ上の画面を生成することができる永続的メモリからなる。
【0276】
ケースユーザインターフェース122
ケースユーザインターフェースは、ユーザが要求されたデータを入力し、アクションを実行してそれらのデータをデータベースメモリに保存することを可能にする。
【0277】
ツールが機能するために、ユーザは、方法によって定められたようにデータ(レイヤ、リソース、プロセス、サブプロセス、モーメント、ステップ)を自然言語で入力しなければならない。
【0278】
その目的のために、ケースユーザインターフェースは、ユーザがこれらのフィールドを入力し、方法で定められた順序を使用してそれらのフィールドの間の関係を作成することを可能にするこのアップロードインターフェースを提示し、構成要素(次元、時間的活動、および単文)の各々は、以下のデータフィールドがアップロードされることを要求する。
- 名前
- 説明
- 関連する従属する要素
【0279】
これらのデータフィールドが、インターフェース内に表示される。ユーザが定められた並びでデータフィールドを埋めるとき、{text1}および{text2}が対応する構成要素の名前によって置き換えられる次元および時間的活動アップロードインターフェース。
- 最初、{text1}=「レイヤ」および{text2}=「リソース」である。
- 編集アクションが実行されるとき、インターフェース、次元および時間的活動アップロードインターフェースが再び表示されるが、今回は、{text1}=「リソース」および{text2}=「プロセス」である。
〇編集アクションが実行されるとき、インターフェース、次元および時間的活動アップロードインターフェースが再び表示されるが、今回は、{text1}=「プロセス」および{text2}=「サブプロセス」である。
・編集アクションが実行されるとき、インターフェース、次元および時間的活動アップロードインターフェースが再び表示されるが、今回は、{text1}=「サブプロセス」および{text2}=「モーメント」である。
【0280】
編集アクションが実行されるとき、インターフェース、次元および時間的活動アップロードインターフェースが再び表示されるが、今回は、{text1}=「モーメント」および{text2}=「ステップ」である。
【0281】
ステップが完成されると、方法で定義されたように構造化された完全な構造化された単文を生成するためにユーザが質問に答えなければならないインターフェース、文インターフェースが表示される。また、ユーザは、ステップタイプのリストから以下の選択肢のうちの1つを選択しなければならない。
- F: 機能
- CC: チェック/制御
- QS: 問い合わせ/検索
- FX: 計算
- L: リンク
【0282】
ユーザが質問に答えるとき、ツールは、インターフェースが文を表示するために、質問に入力されたテキストを連結する文を完成する。
【0283】
データアップロードタスクが完了されると、ユーザは、以下のアクションを実行することができる。
- 保存: アップロードされたデータをデータベースメモリに保存する。
- 取り消し: データベースメモリ内のアップロードされたデータを破棄する。
【0284】
分析の表示
モニタ上に表示される分析の表示は、ツールのユーザが「ケース」を読み、理解することができるようにして編成されたアップロードされたデータを表示する画面からなり、ユーザが大域的および詳細な機能要件の適切な生成のための正確な分析を実行する案内をする。これらの要件は、ユーザに一部のデータを確認し、選択するように促すことによってツールにより自動的に生成される。
【0285】
単語の分析の表示
このインターフェースは、ユーザに構造化された形態で単文を提示する(単語分析インターフェース)。このインターフェースを使用して、ツールは、ユーザが分析プロセッサおよび分析ドキュメントプロセッサを実行することを可能にする。
【0286】
ユーザは、アップロードされた単文全体を有する表を提示され、ユーザは、それらの単文の各々に関して分析アクションを実行することができる。このアクションは、結果として文に含まれる単語のリストを返す分析プロセッサを関与させる。
【0287】
各単語は、以下によって特徴付けられる。
- Word: 分析プロセッサによって検出された単語。
- Word: 単語が文内で属する質問、すなわち、When、Who、What、How、Where。
- Component Type: 分析プロセッサが各単語に自動的に割り振るタイプ、すなわち、NOUN、ADV、VERB、DO、ADJ
- In Scope: ツールのユーザが、そのように望まれる場合に、質問内の単語が設計される「ケース」のスコープの一部になるかどうかを記すことを可能にする列。ユーザは、以下の選択肢、すなわち、YES/NOの中から選択することができる。
- Is Attribute: ツールのユーザが、そのように望まれる場合に、質問内の単語が&属性のように振る舞うべきであるかどうかを示すことを可能にする列。ユーザは、以下の選択肢、すなわち、YES/NOの中から選択することができる。
【0288】
単語分析タスクが完了されると、ユーザは、以下のアクションを実行することができる。
- 保存: アップロードされたデータをデータベースメモリに保存する。
- 取り消し: データベースメモリ内のアップロードされたデータを破棄する。
【0289】
このインターフェースにおいて、分析プロセッサによって特定された各単語に関する分析アクションを実行することができる。そのような場合、分析ドキュメントプロセッサが実行され、そして、要件分析表示が表示される。
【0290】
要件分析表示
このインターフェース(要件分析表示)は、分析ドキュメントプロセッサによって生成された大域的および詳細な要件をユーザに提示する。
【0291】
ユーザは、生成された大域的要件の全体を有する表と、それぞれの大域的要件に対応する詳細な要件を有する入れ子にされた表とを提示される。
【0292】
それぞれの大域的要件は、以下によって特徴付けられる。
- Word: 分析プロセッサによって検出された単語。
- Component Type: 分析プロセッサが各単語に自動的に割り振るタイプ、すなわち、NOUN、ADV、VERB、DO、ADJ
- Step Type: ユーザによってアップロードインターフェース内で選択された値。
- GlobalReqNum: ツールによって生成された相互に関連する番号。
- Global Requirement: 大域的要件に対応する、分析プロセッサによって生成された文。
【0293】
それぞれの詳細な要件は、以下によって特徴付けられる。
- DetReqNum: ツールによって生成された相互に関連する番号。
- Detailed Requirement: 詳細な要件に対応する、分析プロセッサによって生成された文。
- &Attributes: Wordを説明する&属性のリスト。それらは、以下によって生成されたリストからユーザによって選択されなければならない。
〇手動ユーザ入力
〇ユーザによって「Is Attribute」としてフラグを立てられた単語に関する自動生成。
- Message: 要件の実行の結果としてのエラー、正しいアクション、および正しくないアクションの状況に対する応答としてユーザが指定したいメッセージのリスト。このリストは、以下によって生成され得る。
〇ユーザによる手動入力。
- Expression: ユーザがステップタイプ=CCまたはFXに関して指定する計算される数式。
- Associated GlobalReq: ユーザがこのリストからのGlobalReqを参照し、それを詳細な要件に関連付けることを可能にする大域的要件のリスト。これは、スコープの説明がこの種類の何らかの特徴の説明を含まないときに発生し(これは、システムが関係を自動的に生成するのを妨げる)、その場合、ユーザがそれを追加する。
【0294】
単語分析タスクが完了されると、ユーザは、以下のアクションを実行することができる。
- 保存: アップロードされたデータをデータベースメモリに保存する。
- 取り消し: データベースメモリ内のアップロードされたデータを破棄する。
【0295】
設計の表示
このインターフェースは、分析の結果に基づいて「ケース」の設計を可能にするために、分析プロセッサによって検出された単語をユーザに提示する。
【0296】
ユーザは、分析された単語の全体を有する表を提示され、それらの単語の各々は、関連する要件に基づくその単語の関連する単語を含む入れ子にされた表を有する。
【0297】
各単語は、分析フェーズから導出された以下のデータによって特徴付けられる。
- Word: 設計されるスコープに含まれる単語。
- Word: 単語が文内で属する質問、すなわち、When、Who、What、How、Where。
- Component Type: 分析プロセッサが各単語に割り振るタイプ、すなわち、NOUN、ADV、VERB、DO、ADJ
- Step Type: ユーザによってアップロードインターフェース内で選択された値。
- Is &attribute: 分析フェーズにおいてユーザによって示された特徴であり、それはYESまたはNOであることが可能である。
【0298】
このインターフェースにおいて、リスト化された単語の各々に関して設計アクションを実行することができる。そのような場合、設計プロセッサが、実行され、それから、単語およびその関連する単語に関して生成されたクラスのリストとともに設計の表示が、表示される。
【0299】
各クラスは、以下によって特徴付けられる。
- Class: 設計プロセッサによって設計されたクラスの名前。
- ClassType: ClassTypeは、LまたはNonLであることが可能である。
- &Attributes: クラスに割り振られた&属性のリスト。それらは、いかなる場合も、分析フェーズの&属性の状態のリストに属する。
- Methods: クラスに割り振られたメソッドのリスト。これらのメソッドは、設計プロセッサによって生成される。
【0300】
クラスが設計されると、画面上にクラス図、例示的クラス図を提示する図を見るアクションを実行することができる。
【0301】
単語分析タスクが完了されると、ユーザは、以下のアクションを実行することができる。
- 保存: アップロードされたデータをデータベースメモリに保存する。
- 取り消し: データベースメモリ内のアップロードされたデータを破棄する。
【0302】
メインメモリ
プロセッサ
「ケース」の分析および設計ドキュメントを自動的に生成するために、ツールは、プロセッサに3つの機能、すなわち、分析アクションを実行する分析処理、設計アクションを実行する設計処理、および結果として得られるドキュメントを生成するドキュメント処理を提供する。
【0303】
自動文アナライザ
分析プロセッサは、ユーザによってデータベースメモリにアップロードされた完全な単文の集合を取得する。前記文に基づいて、分析プロセッサは、3つのアルゴリズムを実行する。
- 「ケース」の構築に関連する単語を特定するアルゴリズム(
図4E1)、段階Eにおいて説明された本発明の構成要素の方法。
- 「ケース」の大域的要件を生成するアルゴリズム、段階F、下位段階1において説明された本発明の構成要素の方法。
- 「ケース」の詳細な要件を生成するアルゴリズム、段階F、下位段階2において説明された本発明の構成要素の方法。
【0304】
単語アルゴリズム
アルゴリズム(
図4E1)は、それぞれの既存の文に関して説明されるルーチンを実行し、以下の2つのリストがデータベースにアップロードされることを要求する。
- GRW={グループ化する単語} グループ化を定める単語の集合であり、たとえば、単語「of」は、それが「list of prices」に存在するとき、グループ化する単語である。
- PEX={除外される単語} 分析から除外されるべき単語の集合。PEXは、通常、前置詞、接続詞、および冠詞からなる。
【0305】
このアルゴリズムが実行されると、単語のすべてが「ケース」の機能構成要素に変換され、構成要素タイプによって分類され、質問によって相互に関連付けられる。
【0306】
構成要素タイプは、以下を説明する。
- NOUN: NOUN
- PER: PERSON NOUN
- ADV: ADVERBIAL CONSTRUCTION
- VERB: VERB
- DO DIRECT OBJECT NOUN
- ADJ: ADJECTIVE
【0307】
大域的要件アルゴリズム
このアルゴリズムは、スコープ内で特定された各単語に関して説明されるルーチンを実行し、以下のリストがデータベースにアップロードされることを要求する。
- reqgl_abm_Sust: NOUN構成要素がスコープ内で特定されるたびに大域的要件を構成するために使用される文。方法は、「Create, Read, Update and Delete」+ {NounWord}に類する何かを提案する。
- reqgl_abm_Pers: PER構成要素がスコープ内で特定されるたびに大域的要件を構成するために使用される文。方法は、「Create, Read, Update and Delete Entities with role」+{PersonWord}に類する何かを提案する。
- reqgl_verboF: FタイプのステップにリンクされたVERBがスコープ内で特定されるたびに大域的要件を構成するために使用される文。方法は、「Create transaction record」+{VerbWord}+{DOWord}に類する何かを提案する。
- reqgl_verboF: LタイプのステップにリンクされたVERBがスコープ内で特定されるたびに大域的要件を構成するために使用される文。方法は、「Create rule that」+{VerbWord}+{DOWord}「with」+{NounWord}に類する何かを提案する。
- reqgl_verbo: 非Fまたは非LタイプのステップにリンクされたVERBがスコープ内で特定されるたびに大域的要件を構成するために使用される文。方法は、「Create rule that」+{VerbWord}+{DOWord}に類する何かを提案する。
【0308】
このアルゴリズムが実行されると、「ケース」の大域的要件のすべてが、データベースに記憶される。
【0309】
詳細な要件アルゴリズム
このアルゴリズムは、スコープ内で特定された各単語に関して説明されるルーチンを実行し、ケースの説明のために選択された言語の定型文がデータベースにアップロードされることを要求する。
【0310】
設計処理
設計プロセッサは、機能構成要素および分析フェーズにおいて追加された補語の集合を取得する。
- 属性
- メッセージ
- 数式
- 関連する要件
【0311】
それらのすべては、「ケース」のスコープの一部である機能構成要素にリンクされる。
【0312】
段階Gを実施し、「ケース」の結果として得られる設計図を構成するクラスおよび関係を自動的に生成する設計プロセッサアルゴリズム(
図4G1)が、実行される。
【0313】
ドキュメント処理
ツールは、ユーザがアップロードメモリから来るデータを見ることができるフィールドとともにモニタ上に示されるドキュメントを自動的に生成することができる永続的メモリからなる。
【0314】
ビジネスドキュメント処理
ビジネスドキュメントジェネレータは、データベースに記憶される、アップロードインターフェースでアップロードされたデータを取得し、ビジネスドキュメント(
図4I2)を生成するために以下のアルゴリズムを適用する。
a)ビジネスドキュメントジェネレータが、以下のカラムおよびユーザによってアップロードされた番号の行(number row)、すなわち、レイヤ、リソース、プロセス、サブプロセス、モーメント、ステップ、When、Who、What、How、Where、文を有するデータベースに方法がアクセスすることによって示される順序で、記憶されたアップロードされたデータの全体を取得する。
b)ビジネスドキュメントジェネレータが、Title変数内でレイヤ&リソース&プロセスを連結する
c)ビジネスドキュメントジェネレータが、サブタイトル変数内でサブプロセス&モーメントを連結する
d)ビジネスドキュメントジェネレータが、より大きく字下げして各ステップを提示する
e)ビジネスドキュメントジェネレータが、より大きく字下げして各文を提示する
【0315】
ビジネスドキュメントジェネレータは、結果として得られるドキュメントをビジネスドキュメント(
図4I2)と名付け、ツールは、ユーザがそのドキュメントをドキュメントファイルに記憶し、そのドキュメントを印刷デバイス(プリンタ、プロッタなど)を使用して印刷し、そのドキュメントをディスプレイデバイス(モニタ、スクリーン、プロジェクターなど)を使用して表示することを可能にする。
【0316】
分析ドキュメント処理
分析ドキュメントプロセッサは、アップロードされたデータならびに大域的および詳細な生成された要件のすべてを取得し、分析ドキュメント(
図4I3)を生成するために以下のアルゴリズムを適用する。
a)分析ドキュメントプロセッサが、ビジネスドキュメントのアルゴリズムと同じアルゴリズムを使用してタイトル、サブタイトル、およびステップを生成する
b)分析ドキュメントプロセッサが、前のステップの字下げよりも大きく字下げしてステップに関連するそれぞれの大域的要件を提示する
c)分析ドキュメントプロセッサが、前の大域的要件の字下げよりも大きく字下げして大域的要件に関連するそれぞれの詳細な要件を提示する。
【0317】
分析キュメントプロセッサは、結果として得られるドキュメントを分析ドキュメント(
図4I3)と名付け、ツールは、ユーザがそのドキュメントをドキュメントファイルに記憶し、そのドキュメントを印刷デバイス(プリンタ、プロッタなど)を使用して印刷し、そのドキュメントをディスプレイデバイス(モニタ、スクリーン、プロジェクターなど)を使用して表示することを可能にする。
【0318】
設計ドキュメント処理
ドキュメントプロセッサは、設計プロセッサによって特定されたクラスのデータを取得し、UML図を読むためのxmi規格を使用するXMLファイルを生成する。
【0319】
ドキュメントプロセッサは、結果として得られるドキュメントをクラス設計ドキュメント(
図5)と名付ける。
【0320】
この結果として得られるドキュメントは、ドキュメントファイルに記憶される。
【0321】
データベースメモリ
ツールは、ツールによって生成された結果を記憶することができる永続的メモリからなる。
【0322】
データベース
アップロードされた分析およびツールによって生成された設計データが記憶されるデータベース。データベースは、データベースエンジンによって管理される。
【0323】
ドキュメントファイル
生成されたドキュメントが記憶されるデータベース。ドキュメントファイルは、オペレーティングシステムのファイルサーバによって管理されるハードディスク上に設定された構造である。
【符号の説明】
【0324】
100 システム
110 CPU
120 入力/出力デバイス
121 言語ユーザインターフェース
122 ケースユーザインターフェース
122-1 ケースユーザインターフェース
122-2 ケースユーザインターフェース
122-3 ケースユーザインターフェース
122-11 ユーザインターフェース構成要素
122-12 ユーザインターフェース構成要素
122-13 ユーザインターフェース構成要素
122-15 インターフェース構成要素
122-16 インターフェース構成要素
122-21 ユーザインターフェース構成要素
122-22 インターフェース構成要素
122-23 ユーザインターフェース構成要素
122-24 ユーザインターフェース構成要素
122-25 インターフェース構成要素
122-27 インターフェース構成要素
122-28 ユーザインターフェース構成要素
122-29 ユーザインターフェース構成要素
122-31 ユーザインターフェース構成要素
122-32 ユーザインターフェース構成要素
122-33 ユーザインターフェース構成要素
122-34 ユーザインターフェース構成要素
122-35 インターフェース構成要素
122-36 インターフェース構成要素
123 フォーマット、グラフィカルな表記、およびSTD文ユーザインターフェース
124 ドキュメント表示ユーザインターフェース
130 データベースメモリ
140 メインメモリ
141 図
142 文マトリックス
143 FCマトリックス
144 DCマトリックス
150 プロセッサ
151 自動文アナライザ
152 自動ソフトウェアデザイナ
153 自動ドキュメントジェネレータ
160 静的データベースメモリ
161 MASメタモデル
161-0 継承関係
161-1 Word
161-2 Performer Word
161-3 Performable Word
161-4 Performance Word
161-5 関係
161-6 関係
161-8 継承関係
161-9 継承関係
161-10 VERB(is)-NOUN規則
161-11 VERB-NOUN-PREP-NOUN規則
161-12 VERB-NOUN規則
161-13 VERB(hold responsible)-NOUN-PREP-NOUN規則
161-14 VERB(link)-NOUN-PREP-NOUN規則
162 言語、単語、および形態的統語的規則
163 フォーマット、グラフィカルな表記、およびSTD文
170 動的データベースメモリ
171 単文質問
172 機能構成要素
173 設計構成要素
310 レイヤ
320 リソース
330 プロセス
340 サブプロセス
350 モーメント
360 ステップ
370 単文