(57)【要約】  コンピュータプログラムの設計は、不変的ドメインルールにアクセスし、可変的ビジネスルールを表示することからなる。ユーザ選択に応答して、１以上のビジネスルールが選択され、カスタマイズされる。ビジネスルールは手順に関連付けされ、ドメインルールは当該手順に関連付けされる。手順を表すモデルが表示され、当該手順に対応するコードが、コンピュータプログラムを設計するため生成される。【特許請求の範囲】
【請求項１】
コンピュータプログラムを設計する方法であって、
各ドメインルールが不変的なものとされる複数のドメインルールにアクセスするステップと、
各ビジネスルールが可変的なものとされる複数のビジネスルールを表示するステップと、
ユーザ選択に応答して、前記複数のビジネスルールの１以上のビジネスルールを選択するステップと、
前記１以上のビジネスルールをカスタマイズするステップと、
前記１以上のビジネスルールを手順に関連付けるステップと、
前記ドメインルールを前記手順に関連付けるステップと、
前記手順を表すモデルを表示するステップと、
コンピュータプログラムを設計するため、前記手順に対応するコードを生成するステップと、
から構成されることを特徴とする方法。
【請求項２】
請求項１記載の方法であって、さらに、
前記ドメインルールと前記ビジネスルールとを収集するステップと、
前記ドメインルールと前記ビジネスルールとを複数の利用ケースに割り当てるステップと、
前記利用ケースを実現するステップと、
前記実現に従って前記ドメインルールと前記ビジネスルールとを評価するステップと、
を有することを特徴とする方法。
【請求項３】
請求項１記載の方法であって、さらに、
前記コードのシンタックスをチェックするステップと、
シンタックスエラーが検出されると、通知を与えるステップと、
を有することを特徴とする方法。
【請求項４】
請求項１記載の方法であって、さらに、
前記コードの論理的整合性をチェックするステップと、
論理的不整合が検出されると、通知を与えるステップと、
を有することを特徴する方法。
【請求項５】
請求項１記載の方法であって、さらに、
前記モデルと前記コードとの間の互換性をチェックするステップと、
不整合が検出されると、通知を与えるステップと、
を有することを特徴とする方法。
【請求項６】
請求項１記載の方法であって、
前記モデルは、共通モデリング言語に従って表現されることを特徴とする方法。
【請求項７】
媒体において実現され、コンピュータプログラムを設計するロジックであって、
各ドメインルールが不変的なものとされる複数のドメインルールにアクセスするステップと、
各ビジネスルールが可変的なものとされる複数のビジネスルールを表示するステップと、
ユーザ選択に応答して、前記複数のビジネスルールの１以上のビジネスルールを選択するステップと、
前記１以上のビジネスルールをカスタマイズするステップと、
前記１以上のビジネスルールを手順に関連付けるステップと、
前記ドメインルールを前記手順に関連付けるステップと、
前記手順を表すモデルを表示するステップと、
コンピュータプログラムを設計するため、前記手順に対応するコードを生成するステップと、
を実行可能であることを特徴とするロジック。
【請求項８】
請求項７記載のロジックであって、さらに、
前記ドメインルールと前記ビジネスルールとを収集するステップと、
前記ドメインルールと前記ビジネスルールとを複数の利用ケースに割り当てるステップと、
前記利用ケースを実現するステップと、
前記実現に従って前記ドメインルールと前記ビジネスルールとを評価するステップと、
を実行可能であることを特徴とするロジック。
【請求項９】
請求項７記載のロジックであって、さらに、
前記コードのシンタックスをチェックするステップと、
シンタックスエラーが検出されると、通知を与えるステップと、
を実行可能であることを特徴とするロジック。
【請求項１０】
請求項７記載のロジックであって、さらに、
前記コードの論理的整合性をチェックするステップと、
論理的不整合が検出されると、通知を与えるステップと、
を実行可能であることを特徴とするロジック。
【請求項１１】
請求項７記載のロジックであって、さらに、
前記モデルと前記コードとの間の互換性をチェックするステップと、
不整合が検出されると、通知を与えるステップと、
を実行可能であることを特徴とするロジック。
【請求項１２】
請求項７記載のロジックであって、
前記モデルは、共通モデリング言語に従って表現されることを特徴とするロジック。
【請求項１３】
コンピュータプログラムを設計するシステムであって、
各ドメインルールが不変的なものとされる複数のドメインルールを格納するよう動作可能なデータベースと、
前記データベースに接続されるサーバと、
から構成され、
前記サーバは、
各ビジネスルールが可変的なものとされる複数のビジネスルールを表示するステップと、
ユーザ選択に応答して、前記複数のビジネスルールの１以上のビジネスルールを選択するステップと、
前記１以上のビジネスルールをカスタマイズするステップと、
前記１以上のビジネスルールを手順に関連付けるステップと、
前記ドメインルールを前記手順に関連付けるステップと、
前記手順を表すモデルを表示するステップと、
コンピュータプログラムを設計するため、前記手順に対応するコードを生成するステップと、
を実行可能であることを特徴とするシステム。
【請求項１４】
請求項１３記載のシステムであって、
前記サーバはさらに、
前記ドメインルールと前記ビジネスルールとを収集するステップと、
前記ドメインルールと前記ビジネスルールとを複数の利用ケースに割り当てるステップと、
前記利用ケースを実現するステップと、
前記実現に従って前記ドメインルールと前記ビジネスルールとを評価するステップと、
を実行可能であることを特徴とするシステム。
【請求項１５】
請求項１３記載のシステムであって、
前記サーバはさらに、
前記コードのシンタックスをチェックするステップと、
シンタックスエラーが検出されると、通知を与えるステップと、
を実行可能であることを特徴とするシステム。
【請求項１６】
請求項１３記載のシステムであって、
前記サーバはさらに、
前記コードの論理的整合性をチェックするステップと、
論理的不整合が検出されると、通知を与えるステップと、
を実行可能であることを特徴とするシステム。
【請求項１７】
請求項１３記載のシステムであって、
前記サーバはさらに、
前記モデルと前記コードとの間の互換性をチェックするステップと、
不整合が検出されると、通知を与えるステップと、
を実行可能であることを特徴とするシステム。
【請求項１８】
請求項１３記載のシステムであって、
前記モデルは、共通モデリング言語に従って表現されることを特徴とするシステム。
【請求項１９】
コンピュータプログラムを設計するシステムであって、
各ドメインルールが不変的なものとされる複数のドメインルールにアクセスする手段と、
各ビジネスルールが可変的なものとされる複数のビジネスルールを表示する手段と、
ユーザ選択に応答して、前記複数のビジネスルールの１以上のビジネスルールを選択する手段と、
前記１以上のビジネスルールをカスタマイズする手段と、
前記１以上のビジネスルールを手順に関連付ける手段と、
前記ドメインルールを前記手順に関連付ける手段と、
前記手順を表すモデルを表示する手段と、
コンピュータプログラムを設計するため、前記手順に対応するコードを生成する手段と、
から構成されることを特徴とするシステム。
【請求項２０】
コンピュータプログラムを設計する方法であって、
各ドメインルールが不変的なものとされる複数のドメインルールを収集し、前記ドメインルールを複数の利用ケースに割当て、前記利用ケースを実現し、前記実現に従って前記ドメインルールを評価し、前記ドメインルールにアクセスするステップと、
各ビジネスルールが可変的なものとされる複数のビジネスルールを表示するステップと、
ユーザ選択に応答して、前記複数のビジネスルールの１以上のビジネスルールを選択するステップと、
前記１以上のビジネスルールをカスタマイズするステップと、
前記１以上のビジネスルールを手順に関連付けるステップと、
前記ドメインルールを前記手順に関連付けるステップと、
共通モデリング言語に従って表現される前記手順を表すモデルを表示するステップと、
コンピュータプログラムを設計するため、前記手順に対応するコードを生成するステップと、
前記コードのシンタックスをチェックし、シンタックスエラーが検出されると、通知を与えるステップと、
前記コードの論理的整合性をチェックし、論理的不整合が検出されると、通知を与えるステップと、
前記モデルと前記コードとの間の互換性をチェックし、不整合が検出されると、通知を与えるステップと、
から構成されることを特徴とする方法。
【請求項２１】
コンピュータプログラムを設計するルールを管理する方法であって、
複数のルールにアクセスするステップと、
各ドメインルールが不変的なものとされる複数のドメインルールと、各ビジネスルールが可変的なものとされる複数のビジネスルールとを分離するため、前記ルールを解析するステップと、
前記ビジネスルールを格納するステップと、
前記ビジネスルールに対するリクエストに応答して、前記格納されているビジネスルールからビジネスルールを提供するステップと、
から構成されることを特徴とする方法。
【請求項２２】
請求項２１記載の方法であって、さらに、
前記提供されたビジネスルールをカスタマイズするステップと、
前記カスタマイズされたビジネスルールを手順に関連付けるステップと、
コンピュータプログラムを設計するため、前記手順に対応するコードを生成するステップと、
を有することを特徴とする方法。
【請求項２３】
請求項２１記載の方法であって、さらに、
前記ドメインルールを手順に関連付けるステップと、
コンピュータプログラムを設計するため、前記手順に対応するコードを生成するステップと、
を有することを特徴とする方法。
【請求項２４】
請求項２１記載の方法であって、さらに、
前記ドメインルールと前記ビジネスルールとを複数の利用ケースに割り当てるステップと、
前記利用ケースを実現するステップと、
前記実現に従って前記ドメインルールと前記ビジネスルールとを評価するステップと、
を有することを特徴とする方法。
【請求項２５】
コンピュータプログラムを設計するルールを管理するシステムであって、
複数のルールを格納するよう動作可能なデータベースと、
前記データベースに接続されるサーバと、
から構成され、
前記サーバは、
各ドメインルールが不変的なものとされる複数のドメインルールと、各ビジネスルールが可変的なものとされる複数のビジネスルールとを分離するため、前記ルールを解析するステップと、
前記ビジネスルールを格納するステップと、
前記ビジネスルールに対するリクエストに応答して、前記格納されているビジネスルールからビジネスルールを提供するステップと、
を実行するよう動作可能であることを特徴とするシステム。
【請求項２６】
請求項２５記載のシステムであって、
前記サーバはさらに、
前記提供されたビジネスルールをカスタマイズするステップと、
前記カスタマイズされたビジネスルールを手順に関連付けるステップと、
コンピュータプログラムを設計するため、前記手順に対応するコードを生成するステップと、
を実行するよう動作可能であることを特徴とするシステム。
【請求項２７】
請求項２５記載のシステムであって、
前記サーバはさらに、
前記ドメインルールを手順に関連付けるステップと、
コンピュータプログラムを設計するため、前記手順に対応するコードを生成するステップと、
を実行するよう動作可能であることを特徴とするシステム。
【請求項２８】
請求項２５記載のシステムであって、
前記サーバはさらに、
前記ドメインルールと前記ビジネスルールとを複数の利用ケースに割り当てるステップと、
前記利用ケースを実現するステップと、
前記実現に従って前記ドメインルールと前記ビジネスルールとを評価するステップと、
を実行するよう動作可能であることを特徴とするシステム。
【請求項２９】
媒体において実現され、コンピュータプログラムを設計するルールを管理するロジックであって、
複数のルールにアクセスするステップと、
各ドメインルールが不変的なものとされる複数のドメインルールと、各ビジネスルールが可変的なものとされる複数のビジネスルールとを分離するため、前記ルールを解析するステップと、
前記ビジネスルールを格納するステップと、
前記ビジネスルールに対するリクエストに応答して、前記格納されているビジネスルールからビジネスルールを提供するステップと、
を実行するよう動作可能であることを特徴とするロジック。
【請求項３０】
請求項２９記載のロジックであって、さらに、
前記提供されたビジネスルールをカスタマイズするステップと、
前記カスタマイズされたビジネスルールを手順に関連付けるステップと、
コンピュータプログラムを設計するため、前記手順に対応するコードを生成するステップと、
を実行するよう動作可能であることを特徴とするロジック。
【請求項３１】
請求項２９記載のロジックであって、さらに、
前記ドメインルールを手順に関連付けるステップと、
コンピュータプログラムを設計するため、前記手順に対応するコードを生成するステップと、
を実行するよう動作可能であることを特徴とするロジック。
【請求項３２】
請求項２９記載のロジックであって、さらに、
前記ドメインルールと前記ビジネスルールとを複数の利用ケースに割り当てるステップと、
前記利用ケースを実現するステップと、
前記実現に従って前記ドメインルールと前記ビジネスルールとを評価するステップと、
を実行するよう動作可能であることを特徴とするロジック。
【請求項３３】
コンピュータプログラムを設計するルールを管理するシステムであって、
複数のルールにアクセスする手段と、
各ドメインルールが不変的なものとされる複数のドメインルールと、各ビジネスルールが可変的なものとされる複数のビジネスルールとを分離するため、前記ルールを解析する手段と、
前記ビジネスルールを格納する手段と、
前記ビジネスルールに対するリクエストに応答して、前記格納されているビジネスルールからビジネスルールを提供する手段と、
を有することを特徴とするシステム。
【請求項３４】
コンピュータプログラムを設計するルールを管理する方法であって、
複数のルールにアクセスするステップと、
各ドメインルールが不変的なものとされる複数のドメインルールと、各ビジネスルールが可変的なものとされる複数のビジネスルールとを分離するため、前記ルールを解析するステップと、
前記ドメインルールと前記ビジネスルールとを複数の利用ケースに割り当てるステップと、
前記利用ケースを実現するステップと、
前記実現に従って前記ドメインルールと前記ビジネスルールとを評価するステップと、
前記ビジネスルールを格納するステップと、
前記ビジネスルールに対するリクエストに応答して、前記格納されているビジネスルールからビジネスルールを提供するステップと、
前記提供されたビジネスルールをカスタマイズするステップと、
前記カスタマイズされたビジネスルールを手順に関連付けるステップと、
前記ドメインルールを前記手順に関連付けるステップと、
コンピュータプログラムを設計するため、前記手順に対応するコードを生成するステップと、
から構成されることを特徴とする方法。
【請求項３５】
コンピュータプログラム設計の図面の表示を開始する方法であって、
共通モデリング言語を用いて表現されるコンピュータプログラム設計の複数のアーチファクトにアクセスするステップと、
各図面が前記複数のアーチファクトのサブセットの表示に係る複数の図面からの第１図面の選択を受け付けるステップと、
前記第１図面に従った表示のため、特定のアーチファクトを有する第１のアーチファクトのサブセットを構成するステップと、
前記第１図面に従って前記第１のアーチファクトのサブセットの表示を開始するステップと、
前記複数の図面からの第２図面の選択を受け付けるステップと、
前記第２図面に従った表示のため、前記特定のアーチファクトを有する第２のアーチファクトのサブセットを構成するステップと、
前記第２図面に従って前記第２のアーチファクトのサブセットの表示を開始するステップと、
から構成されることを特徴とする方法。
【請求項３６】
請求項３５記載の方法であって、
前記複数のアーチファクトのあるアーチファクトは、前記コンピュータプログラム設計の要求から構成されることを特徴とする方法。
【請求項３７】
請求項３５記載の方法であって、
前記第１図面の選択を受け付けるステップはさらに、ハイレベルアーチファクト図面の選択を受け付け、
前記第１のアーチファクトのサブセットを構成するステップはさらに、前記ハイレベルアーチファクト図面に従って、前記複数のアーチファクトの中の複数のハイレベルアーチファクトを構成する、
ことを特徴とする方法。
【請求項３８】
請求項３５記載の方法であって、
前記第１図面は、構成図からなるハイレベルアーチファクト図面から構成され、
前記第２図面は、前記構成図から構成される、
ことを特徴とする方法。
【請求項３９】
請求項３５記載の方法であって、
前記第１図面は、動作図からなるハイレベルアーチファクト図面から構成され、
前記第２図面は、前記動作図から構成される、
ことを特徴とする方法。
【請求項４０】
請求項３５記載の方法であって、
前記第１図面は、アクティブクラスからなる構成図から構成され、
前記第２図面は、前記アクティブクラスからなる動作図から構成される、
ことを特徴とする方法。
【請求項４１】
コンピュータプログラム設計の図面の表示を開始するシステムであって、
共通モデリング言語を用いて表現されるコンピュータプログラム設計の複数のアーチファクトを格納するよう動作可能なデータベースと、
前記データベースに接続されるサーバと、
から構成され、
前記サーバは、
各図面が前記複数のアーチファクトのサブセットの表示に係る複数の図面からの第１図面の選択を受け付けるステップと、
前記第１図面に従った表示のため、特定のアーチファクトを有する第１のアーチファクトのサブセットを構成するステップと、
前記第１図面に従って前記第１のアーチファクトのサブセットの表示を開始するステップと、
前記複数の図面からの第２図面の選択を受け付けるステップと、
前記第２図面に従った表示のため、前記特定のアーチファクトを有する第２のアーチファクトのサブセットを構成するステップと、
前記第２図面に従って前記第２のアーチファクトのサブセットの表示を開始するステップと、
を実行するよう動作可能であることを特徴とするシステム。
【請求項４２】
請求項４１記載のシステムであって、
前記複数のアーチファクトのあるアーチファクトは、前記コンピュータプログラム設計の要求から構成されることを特徴とするシステム。
【請求項４３】
請求項４１記載のシステムであって、
前記サーバはさらに、
ハイレベルアーチファクト図面の選択を受け付けることによって、前記第１図面の選択を受け付けるステップと、
前記ハイレベルアーチファクト図面に従って、前記複数のアーチファクトの中の複数のハイレベルアーチファクトを構成することによって、前記第１のアーチファクトのサブセットを構成するステップと、
を実行するよう動作可能であることを特徴とするシステム。
【請求項４４】
請求項４１記載のシステムであって、
前記第１図面は、構成図からなるハイレベルアーチファクト図面から構成され、
前記第２図面は、前記構成図から構成される、
ことを特徴とするシステム。
【請求項４５】
請求項４１記載のシステムであって、
前記第１図面は、動作図からなるハイレベルアーチファクト図面から構成され、
前記第２図面は、前記動作図から構成される、
ことを特徴とするシステム。
【請求項４６】
請求項４１記載のシステムであって、
前記第１図面は、アクティブクラスからなる構成図から構成され、
前記第２図面は、前記アクティブクラスからなる動作図から構成される、
ことを特徴とするシステム。
【請求項４７】
媒体において実現され、コンピュータプログラム設計の図面の表示を開始するロジックであって、
共通モデリング言語を用いて表現されるコンピュータプログラム設計の複数のアーチファクトにアクセスするステップと、
各図面が前記複数のアーチファクトのサブセットの表示に係る複数の図面からの第１図面の選択を受け付けるステップと、
前記第１図面に従った表示のため、特定のアーチファクトを有する第１のアーチファクトのサブセットを構成するステップと、
前記第１図面に従って前記第１のアーチファクトのサブセットの表示を開始するステップと、
前記複数の図面からの第２図面の選択を受け付けるステップと、
前記第２図面に従った表示のため、前記特定のアーチファクトを有する第２のアーチファクトのサブセットを構成するステップと、
前記第２図面に従って前記第２のアーチファクトのサブセットの表示を開始するステップと、
を実行するよう動作可能であることを特徴とするロジック。
【請求項４８】
請求項４７記載のロジックであって、
前記複数のアーチファクトのあるアーチファクトは、前記コンピュータプログラム設計の要求から構成されることを特徴とするロジック。
【請求項４９】
請求項４７記載のロジックであって、さらに、
ハイレベルアーチファクト図面の選択を受け付けることによって、前記第１図面の選択を受け付けるステップと、
前記ハイレベルアーチファクト図面に従って、前記複数のアーチファクトの中の複数のハイレベルアーチファクトを構成することによって、前記第１のアーチファクトのサブセットを構成するステップと、
を実行するよう動作可能であることを特徴とするロジック。
【請求項５０】
請求項４７記載のロジックであって、
前記第１図面は、構成図からなるハイレベルアーチファクト図面から構成され、
前記第２図面は、前記構成図から構成される、
ことを特徴とするロジック。
【請求項５１】
請求項４７記載のロジックであって、
前記第１図面は、動作図からなるハイレベルアーチファクト図面から構成され、
前記第２図面は、前記動作図から構成される、
ことを特徴とするロジック。
【請求項５２】
請求項４７記載のロジックであって、
前記第１図面は、アクティブクラスからなる構成図から構成され、
前記第２図面は、前記アクティブクラスからなる動作図から構成される、
ことを特徴とするロジック。
【請求項５３】
コンピュータプログラム設計の図面の表示を開始するシステムであって、
共通モデリング言語を用いて表現されるコンピュータプログラム設計の複数のアーチファクトにアクセスする手段と、
各図面が前記複数のアーチファクトのサブセットの表示に係る複数の図面からの第１図面の選択を受け付ける手段と、
前記第１図面に従った表示のため、特定のアーチファクトを有する第１のアーチファクトのサブセットを構成する手段と、
前記第１図面に従って前記第１のアーチファクトのサブセットの表示を開始する手段と、
前記複数の図面からの第２図面の選択を受け付ける手段と、
前記第２図面に従った表示のため、前記特定のアーチファクトを有する第２のアーチファクトのサブセットを構成する手段と、
前記第２図面に従って前記第２のアーチファクトのサブセットの表示を開始する手段と、
を有することを特徴とするシステム。
【請求項５４】
コンピュータプログラム設計の図面の表示を開始する方法であって、
共通モデリング言語を用いて表現されるコンピュータプログラム設計の複数のアーチファクトにアクセスするステップと、
各図面が前記複数のアーチファクトのサブセットの表示に係る複数の図面からの第１図面の選択を受け付けるステップと、
前記第１図面に従った表示のため、特定のアーチファクトを有する第１のアーチファクトのサブセットを構成するステップと、
前記第１図面に従って前記第１のアーチファクトのサブセットの表示を開始するステップと、
前記複数の図面からの第２図面の選択を受け付けるステップと、
前記第２図面に従った表示のため、前記特定のアーチファクトを有する第２のアーチファクトのサブセットを構成するステップと、
前記第２図面に従って前記第２のアーチファクトのサブセットの表示を開始するステップと、
から構成され、
前記複数のアーチファクトのあるアーチファクトは、前記コンピュータプログラム設計の要求から構成され、
前記第１図面は、構造図と動作図とからなるハイレベルアーチファクト図から構成され、
前記第２図面は、前記構造図と前記動作図の少なくとも１つから構成されることを特徴とする方法。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
［発明の技術分野］
本発明は、一般にコンピュータの技術分野に関し、より詳細にはコンピュータプログラムの設計に関する。
［発明の背景］
コンピュータプログラムの設計は、当該コンピュータプログラムに対する要求を記述するドメインルール群を生成することに関する。コンピュータプログラムを設計する従来技術は、典型的には、限定的なドメインルール群を生成することに関する。しかしながら、限定されたドメインルールは、非効率かつ非効果的なコンピュータプログラムの設計をまねくかもしれない。この結果、コンピュータプログラムを設計する従来技術は、特定の状況では満足いくものとならないかもしれない。
［発明の概要］
本発明によると、コンピュータプログラムを設計するための従来技術に係る欠点及び問題点が、軽減又は解消されるかもしれない。
【０００２】
本発明の一実施例によると、コンピュータプログラムの設計は、不変なドメインルールへのアクセスと、可変なビジネスルールの表示からなる。ユーザの選択に応答して、１以上のビジネスルールが選択され、カスタマイズされる。当該ビジネスルールは手順に関連付けされ、ドメインルールは当該手順に関連付けされる。手順を表現するモデルが表示され、当該手順に対応するコードが、コンピュータプログラムを設計するのに生成される。
【０００３】
本発明の他の実施例によると、コンピュータプログラムを設計するためのルールの管理は、いくつかのルールへのアクセスを有する。これらのルールは、可変的なビジネスルールと不変的なドメインルールとを分離するよう解析される。ビジネスルールは格納される。ビジネスルールは、当該ビジネスルールに対するリクエストに応答して、格納されているビジネスルールから与えられる。
【０００４】
本発明の実施例は、１以上の技術的効果を提供し得る。一実施例の技術的効果は、最終的なコードを生成する前に、完備なドメインルール群が決定されるということである。当該完備なルール群は、問題空間を画定するのに利用可能であり、コンピュータプログラムのより効率的かつ効果的な設計を提供することができる。
【０００５】
本発明の実施例は、上記技術的効果の一部又はすべてを有するかもしれないし、あるいは、上記技術的効果を有しないかもしれない。１以上の他の技術的効果が、ここに含まれる図面、記載及び請求項から当業者に容易に明らかとなるであろう。
［実施例の詳細な説明］
本発明の実施例及びその効果は、同一の番号が各図の同一及び対応するパーツに対して用いられる図１〜６を参照することにより最も良く理解される。本記載で使用される「各」とは、ある集合の各メンバー又はある集合のサブセットの各メンバーを表す。
【０００６】
図１は、コンピュータプログラムを設計するためのシステム１０の一実施例を示すブロック図である。一般に、システム１０は、コンピュータプログラムグラム設計の問題空間を画定するため、実質的に完備なドメインルール群の生成に関する。プログラムを設計するのに、不変なドメインルールとカスタマイズ可能なビジネスルールが利用される。
【０００７】
図示された実施例によると、システム１０は、図１に示されるように接続された１以上のクライアントシステム２０、サーバシステム２４及びデータベース２８を有する。クライアントシステム２０は、ユーザがコンピュータプログラムを設計するため、サーバシステム２４と通信することを可能にする。サーバシステム２４は、グラフィカルユーザインタフェース３０、ドメインルール生成モジュール３４、ビジネスルールエディタ３８、モデリングツール４０、コード生成装置４４及びレポート生成装置４８などのコンピュータプログラムを設計するためのアプリケーションを管理する。データベース２８は、サーバシステム２４により利用可能なデータを格納する。データベース２８は、例えば、ドメインルール５０、ビジネスルール５４、フォーマルメソッド５８、共通モデリング言語６０、モデル６４及びコード６８を有するようにしてもよい。
【０００８】
動作において、ドメインルール生成モジュール３４は、ドメインを画定するのに用いられる不変的ルールを有する実質的に完備なドメインルール群５０を生成する。ビジネスルールエディタ３８は、特定のコンピュータプログラムに対するビジネスルールをカスタマイズするのに使用される。モデリングツール４０は、モデル６４を生成するため、共通モデリング言語により表現可能なドメインルール５０、ビジネスルール５４及びフォーマルメソッド５８を利用し得る。ユーザは、モデル６４を操作してコンピュータプログラムを設計し得る。コード生成装置４４は、モデル６４に従ってコード６８を生成し、整合性及びシンタックス順守のため、コード６８とモデル６４をチェックするよう動作する。レポート生成装置４８は、コンピュータプログラムを記述するレポートを生成するのに利用可能である。
【０００９】
一実施例によると、システム１０は、オブジェクト指向技術を用いてコンピュータプログラムを設計するよう動作可能である。オブジェクト指向技術によると、コンピュータプログラムは、他のオブジェクトをやりとりする自己完結したデータ構造及びルーチン群であるエンティティを表す個々のオブジェクトの集合としてみなされ得る。オブジェクト指向プログラミングは、解析と設計の両方に関する。オブジェクト指向解析は、コンポーネントオブジェクトとシステム要求を特定し、特定のタスクを実行するためコンポーネントオブジェクトとシステム要求がどのようにやりとりするか記述する。典型的には、既存の手段を再利用するよう解析が試みられる。設計は、オブジェクトが当該タスクを実行するため効率的に適応されるコンピュータプログラムを生成することに関する。
【００１０】
図示された実施例によると、クライアントシステム２０は、１以上のユーザがコンピュータプログラムを同時に設計することを可能にし得る。ユーザには、設計者、利害関係者、他の任意の人物又は人物を特定する識別子が含まれるかもしれない。利害関係者には、ネットワーク、ハードウェア、ソフトウェア、人的要因又はデータベースフィールドなどのいくつかのフィールドの何れかからの技術者が含まれるかもしれない。グラフィカルユーザインタフェース３０は、クライアントシステム２０のユーザがサーバシステム２４のアプリケーションにアクセスことを可能にする。
【００１１】
ドメインルール生成モジュール３４は、ドメインルール５０を生成する。ドメインルール５０は、問題空間と解空間を決定するのに利用されるドメインを画定する不変的ルールからなる。実質的に完備なドメインルール群は、当該ドメインの想定される実質的にすべての適用を予想し、解空間の実質的にすべての解が生成されるフレームワークを提供する。ドメインルール５０は、任意の適切な問題空間を生成するため、任意の適切な手順に従って選択され、設計プロセスの連続する繰り返しを介し生成される。
【００１２】
表１は、会計論からのドメインルール５０の具体例を列挙している。
【００１３】
【表１】
2007535013.tif 000002
表２は、軍事論からのドメインルール５０の具体例を列挙している。
【００１４】
【表２】
2007535013.tif 000003
ドメインルール生成モジュール３４は、ドメインの境界を特定し、要求を満たすシステム間の共通性とバリエーションを決定する。これら境界及び要求は、ドメインルール及びファンクションに関してドメインに対し規定されてもよい。ファンクションには、関連するサブファンクション、メソッド、プロセス及び手順が含まれ得る。
【００１５】
ビジネスルール５４は、特定のアプリケーションに適合するようカスタマイズされるルールからなる。ビジネスルールには、例えば、交戦ルール、ミッションプラン、リソース管理ルールなどが含まれ得る。ドメインルール５０は不変的であるが、ビジネスルール５４はカスタマイズ可能である。例えば、ドメインルールは戦争の原則からなる一方、ビジネスルール５４は交戦ルールからなる。
【００１６】
表３は、会計論に対する一例となるビジネスルールを提示する。
【００１７】
【表３】
2007535013.tif 000004
表４は、軍事論に対する一例となるビジネスルールを提示する。
【００１８】
【表４】
2007535013.tif 000005
ビジネスルール５４は、データベース２８において維持され、ビジネスルールエディタ３８によりカスタマイズされる。例えば、ビジネスルール５４はテーブルに格納され、ユーザはこのテーブルを改訂することにより特定のビジネスルール５４を規定することが可能である。ビジネスルールエディタ３８は、ビジネスルール５４に対しセキュリティ検査を実行し、ビジネスルール５４を解析し、それらをデータベース２８に追加する前に新たなルールをチェックし、ビジネスルール５４を判定サポートツールに適用するのに利用される。
【００１９】
フォーマルメソッド５８は、第１又は第２オーダーロジック又は集合論などのフォーマルシンタックスを用いて特定されてもよい。グラフィカルユーザインタフェース３０は、ビジュアルモデルを用いてフォーマルメソッドを表現するのに利用される。
【００２０】
モデリングツール４０は、設計中のコンピュータプログラムを表すモデル６４を生成し、例えば、コンピュータプログラムにより実行される処理を有するオブジェクトを表すノードと、オブジェクト間の関係を表すブランチを含むものであってもよい。コード６８は、モデル６４により表されるコンピュータプログラムを実行するコードを有する。
【００２１】
モデリングツール４０は、例えば、ＲＡＴＩＯＮＡＬ  ＲＯＳＥ  ＲＥＡＬ−ＴＩＭＥ（ＲＲＴ）モデリング及びコード生成ツールなどのＲＡＴＩＯＮＡＬ  ＳＯＦＴＷＡＲＥにより与えられるモデリングツールから構成されてもよい。モデリングツール４０はまた、要求管理、設定管理、テスト処理、パフォーマンス最適化及び文書化を処理するツールを有することが可能である。
【００２２】
モデル６４は、モデリングツール４０がコンピュータプログラムの設計を支援するため、ダイナミックなモデル６４の図面を提供するように、コード６８にアクティブ状態でリンクされてもよい。例えば、コード６８が実行されているとき、実行されているコード６８に対応するモデル６４のノードがハイライトされてもよい。例えば、当該ノードは緑色で表示されてもよい。他の例として、コード６８に不整合が検出された場合、不整合を有するコード６８に対応するモデル６４のノードがハイライトされてもよい。例えば、当該ノードは赤色で表示されるようにしてもよい。コードとして提供されるビジュアル標識は、コード６８の可視的検証及び確認を可能にする。「ｐｕｂｌｉｓｈ−ａｎｄ−ｓｕｂｓｃｒｉｂｅ」インタフェースに関して用いられる可視的検証及び確認は、相互互換性の保持を保証する。
【００２３】
異なるモデル６４は、コンピュータプログラムの異なるニューを提供するかもしれない。モデル６４は、例えば、プログラムのコンテクストを確立するドメインモデル、プログラムに係る構成のアブストラクションを確立するビジネスモデル、プログラムの機能及び非機能要求を確立する利用ケースモデル、及びプログラムの概念設計を確立する解析モデルを含むものであってもよい。これらのモデルは、互いの特徴を反映させるように、互いにアクティブにリンクされるようにしてもよい。例えば、ドメインモデルは、下位レベルモデル要求がドメインモデルの要求を反映させるように、下位レベルモデルとアクティブにリンクされてもよい。図３〜５を参照して、図面の具体例が詳細に説明される。
【００２４】
ドメインルール５０、ビジネスルール５４及びフォーマルメソッド５８は、システム１０により用いられるデータのための共通の表現を提供する共通モデリング言語６０に従って表現されてもよい。共通モデリング言語６０は、例えば、ＯＢＪＥＣＴ  ＭＡＮＡＧＥＭＥＮＴ  ＧＲＯＵＰによりサポートされるＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）から構成されてもよい。
【００２５】
共通モデリング言語６０は、構文的動作又は実行コンポーネントを介しセマティックに広く述べられる要求からのプログラム設計のアーチファクトを表すのに利用されてもよく、プログラム設計の各種ステージからのアーチファクトを表現するのに利用されてもよい。ステージには、初期の設計ステージ、例えば、典型的には口語的記述として表現される既存の自動化システムの変更又は処理の自動化のためのリクエストが含まれてもよい。概念調査及び定義、要求解析、プログラム設計及び検証、ソフトウェア符号化及びテストなどの移行の段階もまた、共通モデリング言語６０を用いて表現されてもよい。共通モデリング言語６０は、任意の設計ステージにおいてユーザに理解不能なアーチファクトを与える。従って、ユーザは、要求がプログラムにより満足されたか判断し、ステージ間の不整合がより効果的に解消される可能性がある。
【００２６】
モデリングツール４０に関するコード生成装置４４は、コンピュータプログラムのコード６８を繰り返し生成するのに利用可能である。モデリングツール４０は、コード６８がある繰り返しで生成されるモデル６４を生成するのに利用可能である。モデル６４は変更可能であり、新たなコード６８が連続する繰り返しで生成されてもよい。各繰り返しにおいて、詳細が追加されるか、あるいは要求が調整されてもよい。各繰り返しは、プログラムの適切な処理を確認するのに利用可能なプログラムの初期のニューを提供するため、テストされる実行可能なコード６８を生成する。初期のフィードバックは、当該プロセスにおける初期の問題点を特定することによりリスクを軽減するのに役立つかもしれない。
【００２７】
コード生成装置４４は、コード６８のシンタックスをチェックするのに用いられるデバッガを備えるようにしてもよく、モデル６４とコード６８との間の論理的不整合を検出するのに利用されてもよい。デバッガはまた、コード６８がモデル６４を正確に実現し、フォーマルステートメントを満足しているかチェックするのに利用されてもよい。
【００２８】
クライアントシステム２０及びサーバシステム２４はそれぞれ、１以上のコンピュータ上で動作し、適切な入力装置、出力装置、大容量記憶媒体、プロセッサ、メモリ又はシステム１０の動作に従って情報を受信、処理、格納及び通信するための他のコンポーネントを備えるようにしてもよい。本開示で使用される「コンピュータ」という用語は、入力を受付け、所定のルールに従って入力を処理し、出力を生成するよう動作可能な、パーソナルコンピュータ、ワークステーション、ネットワークコンピュータ、ワイヤレス電話、携帯情報端末、上記又は他の装置内の１以上のマイクロプロセッサ、又は他の任意の適切な処理装置などを表す。
【００２９】
クライアントシステム２０及びサーバシステム２４は、特定のニーズに従って一体化又は分離されてもよい。例えば、本発明は、単独のパーソナルコンピュータなどの単独のコンピュータシステムを用いて、クライアントシステム２０とサーバシステム２４の両方の機能が提供されることを想定している。クライアントシステム２０とサーバシステム２４が分離されている場合、クライアントシステム２０は、１以上のローカルエリアネットワーク（ＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、インターネットなどのグローバルコンピュータネットワーク、あるいは他の何れか適当な有線、無線又は他のリンクを用いてサーバシステム２４に接続されてもよい。
【００３０】
データベース２８は、サーバシステム２４に対してローカル又はリモートに配置され、１以上のローカルエリアネットワーク（ＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、インターネットなどのグローバルコンピュータネットワーク、あるいは他の何れか適当な有線、無線又は他のリンクを用いてサーバシステム２４に接続されてもよい。データベース２８のアーチファクトは、当該アーチファクトからの製品のより効率的な生成を可能にするため、アクティブにリンクされてもよい。このアクティブリンクは、コンピュータプログラムの解析、設計及び実現を統合するのに用いられてもよい。
【００３１】
本発明の範囲から逸脱することなく、本システムに対し変更、追加又は削除が可能である。さらに、システムの動作は、より多く、又はより少ないモジュールにより実行されてもよい。例えば、モデリングツール４０とコード生成装置４４の処理は１つのモジュールにより実行されてもよいし、あるいは、モデリングツール４０の処理は複数のモジュールにより実行されてもよい。さらに、ソフトウェア、ハードウェア、他のロジック、又は上記の任意の適切な組み合わせを有する任意の適切なロジックを利用して、機能が実行されてもよい。
【００３２】
図２は、コンピュータプログラムを設計するための方法の一実施例を示すフローチャートである。本方法はステップ７０から開始され、モデル６４がユーザに表示される。ステップ７１において、ドメインルール５０がアクセスされる。当該モデルは、ユーザにより設計されたコンピュータプログラムを表す。ステップ７２において、ビジネスルール５４がユーザに表示される。ステップ７４において、ユーザによる選択に応答して、ビジネスルール５４が選択される。ステップ７６において、ユーザによる選択に応答して、ビジネスルール５４がカスタマイズされる。
【００３３】
ステップ７８において、ビジネスルール５４がモデル６４と関連付けされる。ステップ８０において、次のビジネスルールが選択される場合、本方法はステップ７４に戻り、次のビジネスルールが選択される。ステップ８０において、次のビジネスルールが選択されない場合、本方法はステップ８４に移行する。ステップ８６において、コード６８がモデル６４から生成される。各繰り返しにおいて、モデル６４に変更がされてもよい。
【００３４】
ステップ８８において次の繰り返しが存在する場合、本方法はステップ７０に戻り、ビジネスルール５４が表示される。ステップ８８において次の繰り返しが存在しない場合、本方法はステップ９０に移行し、当該結果が通知される。この結果には、完成されたモデル６４から生成されるコード６８が含まれる。結果通知後、本方法は終了する。
【００３５】
本発明の範囲から逸脱することなく、本方法に対し変更、追加又は削除が可能である。さらに、本発明の範囲から逸脱することなく、各ステップは何れか適切な順序により実行されてもよい。
【００３６】
図３は、データベース２８に格納されているハイレベルアーチファクト間の関係を示す図１００である。図１００は、クライアントシステム２０において表示されてもよい。フォルダ１０２は、開発プロジェクトを組織するため、他のパッケージを含む要素を収集するのに利用されるパッケージを表す。矢印１０４は、パッケージ間の関係を表す。例えば、矢印１０４は、パッケージ間の相互参照を表すかもしれない。ノート１０６は、開発プロジェクトの最中に用いられた情報を表す。ライン１０５は、ノート１０６が適用されるフォルダとの接続を表し、ビジネスルールとモデルとの間の関連付けを表すのに利用されてもよい。
【００３７】
図示された実施例によると、モデル要素データベースフォルダ１０２ａは、利用ケースフォルダ１０２ｂ、動作図面フォルダ１０２ｃ、配置システムフォルダ１０２ｄ、動作又は実行コンポーネントフォルダ１０２ｅ及び構造図面フォルダ１０２ｆに関する。配置システムフォルダ１０２ｄが動作又は実行コンポーネント１０２ｅを参照し、次に当該コンポーネント１０２ｅが動作図面フォルダ１０２ｃを参照し、当該フォルダ１０２ｃが利用ケースフォルダ１０２ｂを参照する。
【００３８】
要求ノート１０６ａのソースは、情報を要求特定方法及び要求マネージャ１０６ｂに供給し、次に当該マネージャ１０６ｂは、情報を利用ケースフォルダ１０２ｂに供給する。一体化された文書化及び設定管理ツール１０６ｃは、機能及び情報をモデル要素データベース１０２ａに供給し、一体化された対象プラットフォームツール１０６ｄは、情報及び機能を動作又は実行コンポーネント１０２ｅに供給する。
【００３９】
図４及び５は、モデリングツール４０により提供される一例となる図面を示す。図４は、構造図面１２０の一実施例を示す図である。図５は、動作図面１４０の一実施例の図である。図面１２０及び１４０は、同一プログラムの異なる図面である。例えば、構造図面１２０の導出されたアクティブクラス２は、動作図面１４０の導出されたアクティブクラス２のインスタンスに対応する。
【００４０】
図６は、ドメインルールを生成する方法の一実施例を示すフローチャートである。本方法は、利用ケースのドメインルールを取得し、利用ケースの実現において当該ドメインルールを解析することにより、ドメインルールを生成する。ドメインルールは、会計情報システムや、Ｃ４ＩＳＲ（ｃｏｍｍａｎｄ，ｃｏｎｔｒｏｌ，ｃｏｍｍｕｎｉｃａｔｉｏｎｓ，ｃｏｍｐｕｔｅｒ，ｉｎｔｅｌｌｉｇｅｎｃｅ，ｓｕｒｖｅｉｌｌａｎｃｅ，ａｎｄ  ｒｅｃｏｎｎａｉｓｓａｎｃｅ）システムなどのドメインに対して生成されてもよい。
【００４１】
ステップ２００において、ドメインルールが収集される。会計情報システムのドメインルールの一例には、借方と貸方がバランスされていることの確認が含まれるかもしれない。また、Ｃ４ＩＳＲシステムのドメインルールは、戦闘力のフレキシブルな適用を通じた不利な位置に的を置くことを含むかもしれない。ドメインルールは、ＲＵＰ（Ｒａｔｉｏｎａｌ  Ｕｎｉｆｉｅｄ  Ｐｒｏｃｅｓｓ）及びＵＳＤＰ（Ｕｎｉｆｉｅｄ  Ｄｅｖｅｌｏｐｍｅｎｔ  Ｐｒｏｃｅｓｓ）に従って収集されてもよい。
【００４２】
ステップ２０２において、補足的ソースから要求が抽出される。補足的ソースには、例えば、ドメインの明示的定義、従来のサブドメイン、ファンクション、メソッド、プロセス、手順、確立された処理サイクル、ビジネスプロセス又はパターンなどが含まれるかもしれない。ドメインの明示的定義には、例えば、自然法則又は立法化された法律、専門機関により公表された規格又は規則、あるいは、広く認識されている研究者や実行者による研究などが含まれるかもしれない。ドメインは、当該ドメインに係る機能に従ってサブドメインに分割されてもよい。
【００４３】
処理サイクル及びパターンは、当該機能が実現すべきこと、及び当該機能とその中のコンポーネントがどのように相互作用すべきか示している。表５は、会計情報システムの処理サイクルの例を列挙している。
【００４４】
【表５】
2007535013.tif 000006
表６は、Ｃ４ＩＳＲシステムのパターンの例を列挙している。
【００４５】
【表６】
2007535013.tif 000007
ステップ２０４において、要求は利用ケースに割り当てられる。要求は機能的及び非機能的ドメインルールを含むかもしれない。機能的ドメインルールは、特定ファンクションにより実現されるルールから構成され、非機能的ドメインルールは、特定ファンクションによって直接的には実現されないシステムプロパティから構成される。非機能的ドメインルールは、実現のための他の非機能的要求と共に利用ケースに割り当てられ、それらが影響を及ぼす利用ケースに割り当てられてもよい。例えば、パフォーマンス要求が、パフォーマンス基準に影響を与える機能的要求を有する利用ケースに割り当てられてもよい。影響を受けた利用ケースが移行において実現される場合、非機能的要求は、解析クラスにタグ付けされた値、制約又は文書化記号に割り当てられてもよい。
【００４６】
ステップ２０６において、要求は利用ケースにトレースされ、ドメインルールが適切な利用ケースに割り当てられたか判断される。ステップ２１０において、次のレベルにおけるギャップを特定するため、当該利用ケースは共同して実現される。補足的ソースからの能力がドメインルールを超過しているようである場合、黙示的ドメインルールが能力に埋め込まれるか、あるいは、当該能力が不要であるか判断されてもよい。例えば、それらはドメイン外にあったり、冗長であったり、陳腐なものである場合などである。
【００４７】
ステップ２０８において、利用ケースが変更又は追加されてもよい。当該繰り返し、又は以降の繰り返しにおいて、追加又は変更が行われてもよい。ステップ２１０において、解析クラスを特定し、共同を生成することによって、利用ケースが実現されてもよい。例えば、利用ケースは、プログラム開発を開始するリクエストに関する要求に対して実現されるものであってもよい。これらの要求はソリューション指向のものであってもよく、特定用途に着目したものであってもよい。しかしながら、問題空間を完備するため、他の要求が考えられてもよい。ステップ２１２において、ドメインルールが解析クラスに割り当てられる。
【００４８】
ステップ２１４において、解析クラスの共通性が特定される。複数の利用ケースに現れる解析クラスを決定することにより、共通性が特定される。ステップ２１６において、解析クラスの安定的な可変性が特定され、これは共通のクラスの以降の解析及び設計を通じて特定されてもよい。ステップ２１８において、プログラムの不安定的な可変性を捕捉するビジネスルールが決定される。ビジネスルールの決定後、本方法は終了される。
【００４９】
本発明の範囲から逸脱することなく、本方法に対し変更、追加又は削除が可能である。さらに、本発明の範囲から逸脱することなく、各ステップは何れか適切な順序により実行されてもよい。
【００５０】
本発明の実施例は、１以上の技術的効果を提供するものであるかもしれない。一実施例の技術的効果は、完備なドメインルール群が最終的なコードの生成前に決定されるということである。完備なルール群が問題空間を画定するのに利用され、コンピュータプログラムのより効率的かつ効果的な設計を提供する。
【００５１】
本発明の実施例及びその効果が詳細に説明されたが、添付された請求項により規定されるような本発明の趣旨及び範囲から逸脱することなく、各種変更、追加及び削除が当業者により可能であろう。
【図面の簡単な説明】
【００５２】
【図１】図１は、コンピュータプログラムを設計するためのシステムの一実施例を示すブロック図である。
【図２】図２は、コンピュータプログラムを設計するための方法の一実施例を示すフローチャートである。
【図３】図３は、データベースに格納されているハイレベルアーチファクト間の関係の一実施例を示す図である。
【図４】図４は、構造図面の一実施例を示す図である。
【図５】図５は、動作図面の一実施例を示す図である。
【図６】図６は、ドメインルールを生成するための方法の一実施例を示すフローチャートである。
【図１】
2007535013.tif 000008
【図２】
2007535013.tif 000009
【図３】
2007535013.tif 000010
【図４】
2007535013.tif 000011
【図５】
2007535013.tif 000012
【図６】
2007535013.tif 000013