(57)【特許請求の範囲】
【請求項１】
アップグレードを行わずに、修正済みのソフトウェアプログラムの第一のバージョンから修正済みのソフトウェアプログラムの第二のバージョンへのアップグレードを解析するシステムであって、該システムは、
メモリと、
コンピュータコードを備える該メモリと通信を行うプロセッサを備え、該コンピュータコードは、
前記ソフトウェアプログラムの前記第二のバージョンのデフォルトインストールに含まれる複数のデフォルトプログラムオブジェクトのデフォルト状態情報を提供し、
前記修正済みのソフトウェアプログラムの第一のバージョンに含まれる複数の現在のプログラムオブジェクトの現在状態情報を、アプリケーションデータベースから取り出し、
前記現在状態情報と前記デフォルト状態情報とを比較してアップグレード情報を生成し、該比較と該生成は、
前記現在のプログラムオブジェクト毎に、
現在のプログラムオブジェクトが、前記ソフトウェアプログラムの前記第二のバージョンのデフォルトインストールにおいて廃止されまたは改訂されているか否かをチェックすることと、
前記現在のプログラムオブジェクトが廃止されまたは改訂されている場合、前記現在のプログラムオブジェクトが影響を受けると断定することと、
前記現在のプログラムオブジェクトが廃止されずまた改訂もされていない場合、前記現在のプログラムオブジェクトに関連するその他の現在のプログラムオブジェクトが、前記ソフトウェアプログラムの前記第二のバージョンのデフォルトインストールにおいて廃止されまたは改訂されているか否かをチェックすることと、
前記現在のプログラムオブジェクトに関連するその他の現在のプログラムオブジェクトが廃止されまたは改訂されている場合、前記現在のプログラムオブジェクトが影響を受けると断定することと、
前記修正済みのソフトウェアプログラムの第一のバージョンから前記修正済みのソフトウェアプログラムの第二のバージョンへのアップグレードにより影響を受けると断定された前記現在のプログラムオブジェクトのサブセットを特定するアップグレード情報を、アップグレードを行わずに生成すること
を含むよう実行可能であることを特徴とするシステム。
【請求項２】
前記現在のプログラムオブジェクトはソフトウェアプログラムの特性に関連し、前記修正済みのソフトウェアプログラムは追加される現在のプログラムオブジェクトを含むことを特徴とする、請求項１に記載のシステム。
【請求項３】
前記アップグレード情報は、アップグレードの結果として変更されうる現在のプログラムオブジェクトのサブセットに含まれる少なくとも一つの現在のプログラムオブジェクトを特定することを特徴とする、請求項１または２に記載のシステム。
【請求項４】
前記少なくとも一つの現在のプログラムオブジェクトは、未修正のプログラムオブジェクトに関連し、該未修正のプログラムオブジェクトはアップグレードの結果として変更されないが、該未修正のプログラムオブジェクトが前記少なくとも一つの現在のプログラムオブジェクトに関連するため、前記現在のプログラムオブジェクトのサブセットに含まれることを特徴とする、請求項３に記載のシステム。
【請求項５】
前記少なくとも一つの現在のプログラムオブジェクトは、アップグレードの結果、削除されることを特徴とする、請求項３に記載のシステム。
【請求項６】
前記デフォルトプログラムオブジェクトは第一のデフォルトプログラムオブジェクトであり、前記デフォルトインストールは第一のデフォルトインストールであり、前記デフォルト状態情報は、前記第一のデフォルトプログラムオブジェクトと複数の第二のデフォルトプログラムオブジェクトとの相違を含み、該第二のデフォルトプログラムオブジェクトは、未修正の前記ソフトウェアプログラムの第一のバージョンの第二のデフォルトインストールに含まれることを特徴とする、請求項１から５のいずれかに記載のシステム。
【請求項７】
前記コンピュータコードはさらに、前記アップグレード情報から概要レポートを生成するよう実行可能であり、少なくとも一つの現在のプログラムオブジェクトは、特定の型のプログラムオブジェクトであり、前記少なくとも一つの現在のプログラムオブジェクトは現在のプログラムオブジェクトの一つに関連し、前記概要レポートは前記特定の型のプログラムオブジェクトの列に前記少なくとも一つの現在のプログラムオブジェクトのカウントを含むことを特徴とする、請求項１から６のいずれかに記載のシステム。
【請求項８】
前記コンピュータコードはさらに、前記アップグレード情報から概要レポートを生成するよう実行可能であり、少なくとも一つの現在のプログラムオブジェクトは、特定の型のプログラムオブジェクトであり、少なくとも一つの現在のプログラムオブジェクトは現在のプログラムオブジェクトの一つに間接的に関連し、前記概要レポートは前記特定の型のプログラムオブジェクトの列に前記少なくとも一つの現在のプログラムオブジェクトのカウントを含むことを特徴とする、請求項１から７のいずれかに記載のシステム。
【請求項９】
アップグレードを行わずに、修正済みのソフトウェアプログラムの第一のバージョンから第二のバージョンへのアップグレードの影響を解析する方法であって、該方法は、
リポジトリデータベースにデフォルト状態情報を提供する工程であって、該デフォルト状態情報は複数の第一のデフォルトプログラムオブジェクトと複数の第二のデフォルトプログラムオブジェクトとの相違を含み、前記第一のデフォルトプログラムオブジェクトは前記ソフトウェアプログラムの第一のバージョンの第一のデフォルトインストールに含まれ、前記第二のデフォルトプログラムオブジェクトは前記ソフトウェアプログラムの第二のバージョンの第二のデフォルトインストールに含まれる、前記リポジトリデータベースにデフォルト状態情報を提供する工程と、
前記修正済みのソフトウェアプログラムの第一のバージョンに含まれる複数の現在のプログラムオブジェクトに関連する現在状態情報を、アプリケーションデータベースから取り出す工程と、
前記現在状態情報と前記デフォルト状態情報とを比較してアップグレード情報を生成する工程であって、該比較と該生成の工程は、
前記現在のプログラムオブジェクト毎に、
現在のプログラムオブジェクトが、前記ソフトウェアプログラムの前記第二のバージョンのデフォルトインストールにおいて廃止されまたは改訂されているか否かをチェックすることと、
前記現在のプログラムオブジェクトが廃止されまたは改訂されている場合、前記現在のプログラムオブジェクトが影響を受けると断定することと、
前記現在のプログラムオブジェクトが廃止されずまた改訂もされていない場合、前記現在のプログラムオブジェクトに関連するその他の現在のプログラムオブジェクトが、前記ソフトウェアプログラムの前記第二のバージョンの前記第二のデフォルトインストールにおいて廃止されまたは改訂されているか否かをチェックすることと、
前記現在のプログラムオブジェクトに関連するその他の現在のプログラムオブジェクトが廃止されまたは改訂されている場合、前記現在のプログラムオブジェクトが影響を受けると断定することと、
前記修正済みのソフトウェアプログラムの第一のバージョンから前記修正済みのソフトウェアプログラムの第二のバージョンへのアップグレードにより影響を受けると断定された前記現在のプログラムオブジェクトのサブセットを特定するアップグレード情報を、アップグレードを行わずに生成することを含む工程と
を含むことを特徴とする方法。
【請求項１０】
前記アプリケーションデータベースが第一のアプリケーションデータベースである方法であって、該方法はさらに、
状態情報を格納するために、修正済みのソフトウェアプログラムによって使用される第二のアプリケーションデータベースから現在状態情報を取り出す工程と、
前記第二のアプリケーションデータベースから取り出す現在状態情報を第一のアプリケーションデータベースに格納する工程とを含むことを特徴とする、請求項９に記載の方法。
【請求項１１】
前記現在状態情報とデフォルト状態情報とを比較する工程が、
第二のデフォルトプログラムオブジェクトには含まれないが、第一のデフォルトプログラムオブジェクトに含まれる現在のプログラムオブジェクトのそれぞれを廃止と断定する工程と、
第一のデフォルトプログラムオブジェクトに含まれるが、第二のデフォルトプログラムオブジェクトにおいては改訂される現在のプログラムオブジェクトのそれぞれを改訂と断定する工程と、
廃止または改訂と断定された現在のプログラムオブジェクトのそれぞれを、アップグレードにより影響を受けると断定する工程とを含むことを特徴とする、請求項９または１０に記載の方法。
【請求項１２】
廃止または改訂と断定された一つ以上の現在のプログラムオブジェクトに間接的に関連する少なくとも一つの現在のプログラムオブジェクトを、アップグレードによって影響を受けると断定する工程をさらに含み、複数の関連プログラムオブジェクトを通じて別のプログラムオブジェクトに関連するプログラムオブジェクトは、別のプログラムオブジェクトに間接的に関連することを特徴とする、請求項１１に記載の方法。
【請求項１３】
レポートを生成する工程をさらに含み、前記レポートは少なくとも一つの現在のプログラムオブジェクトと、少なくとも一つの現在のプログラムオブジェクトに関連する現在のプログラムオブジェクトの数を特定し、前記少なくとも一つの現在のプログラムオブジェクトに関連する現在のプログラムオブジェクトは特定の型の決定されたプログラムオブジェクトであることを特徴とする、請求項９から１２のいずれかに記載の方法。
【請求項１４】
前記修正済みのソフトウェアプログラムの第一のバージョンから前記修正済みのソフトウェアプログラムの第二のバージョンへのアップグレードを行うステップをさらに含むことを特徴とする、請求項９から１３のいずれかに記載の方法。
【請求項１５】
プロセッサによって実行される際、前記プロセッサに請求項９から１４のいずれかの方法を行わせる指示を記憶したコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願はソフトウェアのインストールに関し、特にソフトウェアのアップグレードに関する。
【背景技術】
【０００２】
ソフトウェアプログラムは、大規模で複雑となることがある。そのようなソフトウェアプログラムは、インストールおよび／またはアップグレードが困難で、多大な時間を要する可能性がある。企業のアプリケーションのアップグレードにおいては、数ヶ月もの時間を要することは周知である。ある例では、アップグレードによってソフトウェアプログラムに変更がもたらされるため、アップグレード後にユーザがソフトウェアプログラムの使用方法を変更する可能性がある。さらに、ソフトウェアプログラムは、アップグレードに先立って修正またはカスタマイズされる可能性がある。アップグレードすることにより、一つ以上行なった修正が機能、または、適切に動作しなくなる可能性がある。よって、生産システムにおけるソフトウェアプログラムのアップグレードを計画するために、ソフトウェアプログラムのアップグレードの影響が重要になる可能性がある。
【０００３】
ソフトウェアプログラムのアップグレードの影響を決定するために、テストシステムが使用される可能性がある。テストシステムは、生産システムにおいて現在使用されているソフトウェアプログラムのコピーを含む可能性がある。ソフトウェアプログラムのコピーは、生産システムのユーザを混乱させずにアップグレードされる可能性がある。アップグレードの影響は、テストシステムにおいて解析される可能性がある。しかしながら、運用システムまたはテストシステム上のいずれでもアップグレードを行わずに、ソフトウェアのアップグレードの影響を解析することは、より効果的である可能性がある。
【発明の概要】
【課題を解決するための手段】
【０００４】
一例において、アップグレードを行わずに、修正済みのソフトウェアプログラムの第一のバージョンから該修正済みのソフトウェアプログラムの第二のバージョンへのアップグレードを解析するシステムは、コンピュータコードを含むことができる。該コンピュータコードは、デフォルトプログラムオブジェクトのデフォルト状態情報を提供することができる。該デフォルトプログラムオブジェクトは、未修正のソフトウェアプログラムの第二のバージョンのデフォルトインストールに含まれる。該コンピュータコードはまた、現在のプログラムオブジェクトの現在状態情報をアプリケーションデータベースから取り出すことができる。修正済みのソフトウェアプログラムは、現在のプログラムオブジェクトを含むことができる。該コンピュータコードは、現在状態情報とデフォルト状態情報との比較に基づいてアップグレード情報を生成することができる。該アップグレード情報は、アップグレードにより影響を受ける現在のプログラムオブジェクトのサブセットを特定することができる。
【０００５】
別の例では、アップグレードを行わずに、修正済みのソフトウェアプログラムの第一のバージョンから第二のバージョンへのアップグレードの影響を解析する方法は、リポジトリデータベースにデフォルト状態情報を提供する工程を含むことができる。該デフォルト状態情報は、デフォルトプログラムオブジェクトの第一のセットとデフォルトプログラムオブジェクトの第二のセットとの相違を含むことができる。デフォルトプログラムオブジェクトの第一のセットは、未修正のソフトウェアプログラムの第一のバージョンのデフォルトインストールに含まれる。デフォルトプログラムオブジェクトの第二のセットは、未修正のソフトウェアプログラムの第二のバージョンのデフォルトインストールに含まれる。該方法はさらに、アプリケーションデータベースから現在のプログラムオブジェクトに関する現在状態情報を取り出す工程を含むことができる。修正済みのソフトウェアプログラムの第一のバージョンは、現在のプログラムオブジェクトを含むことができる。該方法はまた、アップグレード情報を生成するために、現在状態情報とデフォルト状態情報とを比較する工程を含むことができる。該アップグレード情報は、アップグレードにより影響を受ける現在のプログラムオブジェクトのサブセットを特定することができる。
【０００６】
さらに別の例では、アップグレードを行わずに、修正済みのソフトウェアプログラムの第一のバージョンから第二のバージョンへのアップグレードの影響を解析するコンピュータに使用されるコンピュータプログラム製品は、コンピュータが読み取り可能な記憶媒体を含むことができる。該コンピュータが読み取り可能な記憶媒体は、物理的にその内部に具現化される、コンピュータが実行可能なプログラムコードおよびデフォルト状態情報を含むことができる。該デフォルト状態情報は、デフォルトプログラムオブジェクトの第一のセットとデフォルトプログラムオブジェクトの第二のセットとの相違を含むことができる。デフォルトプログラムオブジェクトの第一のセットは、未修正のソフトウェアプログラムの第一のバージョンのデフォルトインストールに含まれる。デフォルトプログラムオブジェクトの第二のセットは、未修正のソフトウェアプログラムの第二のバージョンのデフォルトインストールに含まれる。該コンピュータプログラム製品はさらに、コンピュータのプロセッサに、現在のプログラムオブジェクトの現在状態情報をアプリケーションデータベースから取り出すための、コンピュータが実行可能なプログラムコードを含むことができる。修正済みのソフトウェアプログラムは、現在のプログラムオブジェクトを含むことができる。該コンピュータプログラム製品はまた、現在状態情報とデフォルト状態情報との比較を基に、プロセッサにアップグレード情報を生成させるための、コンピュータが実行可能なプログラムコードを含むことができる。アップグレード情報は、アップグレードにより影響を受ける現在のプログラムオブジェクトのサブセットを特定することができる。
【０００７】
本発明の他の目的および利点は、後述する説明から明らかになり、本発明の好ましい実施形態が明確に示される添付の図面を参照する。
【０００８】
本発明は、以下の図面および説明を参照することにより理解が深まる。図中の構成要素は必ずしも正確な縮尺ではなく、むしろ本発明の原理の説明に重点が置かれる。さらに、図中の同一参照番号は、他のすべての図面において対応する構成要素を表す。
【図面の簡単な説明】
【０００９】
【図１】アップグレードを行わずに、ソフトウェアプログラムの第一のバージョンからソフトウェアプログラムの第二のバージョンへのアップグレードを解析するシステムの例を示す図である。
【００１０】
【図２】未修正のソフトウェアプログラムおよびアプリケーションデータベースを含むテストシステムの例を示す図である。
【００１１】
【図３】アップグレード情報から生成される、親ロールへの影響の統計を含む例示的な概要レポートの一部を示す図である。
【００１２】
【図４】親ロールに直接または間接的に関連する、改訂および廃止されたトランザクションコードを特定するアップグレード情報から生成される、例示的なレポートの一部を示す図である。
【００１３】
【図５】アップグレードを行わずに、修正済みのソフトウェアプログラムの第一のバージョンから第二のバージョンへのアップグレードの影響を解析するシステムに含まれる方法の一例を示す図である。
【発明を実施するための形態】
【００１４】
アップグレードの影響は、テストシステム上でアップグレードを行わずに決定することができる。一実施形態において、ソフトウェアプログラムの第一のバージョンからソフトウェアプログラムの第二のバージョンへのアップグレードを、アップグレードを行わずに解析するシステムはアップグレード解析ツールを含むことができる。アップグレード解析ツールは、例えば、．ＮＥＴスタンドアロンアプリケーションを含んでもよい。アップグレード解析ツールは、プログラムオブジェクトがソフトウェアプログラムの第一のバージョンに含まれるときの当該プログラムオブジェクトの状態情報を、アプリケーションデータベースから取り出すことができる。例えば、アップグレード解析ツールは、状態情報を、プログラムオブジェクトを格納する統合基幹業務（ＥＲＰ）アプリケーションの第一のバージョンに使用されるオラクル（Ｏｒａｃｌｅ）データベースから取り出すことができる。ＥＲＰアプリケーションに含まれるプログラムオブジェクトは、例えば、セキュリティロール、トランザクションコード、権限オブジェクトなどのセキュリティ関連オブジェクトを含んでもよい。セキュリティロールの状態情報は、例えば、それぞれのセキュリティロールの名称を含んでもよい。
【００１５】
アップグレード解析ツールは、アプリケーションデータベースから取り込まれる状態情報と、リポジトリデータベースに設けられるデフォルト状態情報とを比較することができる。リポジトリデータベースは、例えば、マイクロソフトＳＱＬサーバ（Ｍｉｃｒｏｓｏｆｔ  ＳＱＬ  Ｓｅｒｖｅｒ）データベースを含んでもよい。ＳＱＬサーバデータベースのデータベースエントリによって、デフォルトプログラムオブジェクトの第一のセットとデフォルトプログラムオブジェクトの第二のセットの相違を特定することができる。デフォルトプログラムオブジェクトの第一のセットは、ＥＲＰアプリケーションの第一のバージョンのデフォルトインストールにおいてインストールされる。デフォルトプログラムオブジェクトの第二のセットは、ＥＲＰアプリケーションの第二のバージョンのデフォルトインストールにおいてインストールされる。特定される相違は、例えば、トランザクションコードや権限オブジェクトなどのデフォルトセキュリティオブジェクトに対する変更の詳細を含んでもよい。その変更の詳細によって、デフォルトセキュリティオブジェクトが改訂されているか、廃止されているか、あるいは新たに追加されているかを示すことができる。
【００１６】
アップグレードツールは、プログラムオブジェクトへのアップグレードの影響あるいは潜在的な影響を特定するアップグレード情報を生成することができる。アップグレードツールは、デフォルト状態情報とアプリケーションデータベースから取り込まれる状態情報との比較を基にアップグレード情報を生成することができる。例えば、あるセキュリティロールに関連するトランザクションコードが、ＥＲＰアプリケーションの第二のバージョンで使用されない場合、アップグレード情報により、影響を受けるそのセキュリティロールを特定することができる。
【００１７】
図１は、ソフトウェアプログラム１０２の第一のバージョンからソフトウェアプログラムの第二のバージョンへのアップグレードを、アップグレードを行わずに解析するシステム１００の一実施形態を示す図である。システム１００は、アップグレード解析ツール１０４およびリポジトリデータベース１０６を含むことができる。システム１００に含まれる構成要素は追加してもよく、異なってもよく、または、構成要素の数は少なくてもよい。例えば、システム１００は、アップグレード解析ツール１０４がリポジトリデータベース１０６と通信を行うネットワークを含んでもよい。
【００１８】
アップグレード解析ツール１０４は、コンピュータ、サーバ、モバイルコンピュータ、携帯情報端末など、一つ以上のプロセッサでコンピュータコードを実行するよう構成される装置、または、装置の組み合わせであってもよい。アップグレード解析ツール１０４は、プロセッサ１０８、メモリ１１０、および、ディスプレイ１１２を含むことができる。アップグレード解析ツール１０４に含まれる構成要素は追加してもよく、異なってもよく、または、構成要素の数は少なくてもよい。例えば、アップグレード解析ツール１０４は、ディスプレイ１１２を含まなくてもよく、アップグレードに関するアップグレード解析情報を表示しないでその情報を生成してもよい。また、そのアップグレード解析情報を、他のシステム上に表示または出力するために送信してもよい。
【００１９】
プロセッサ１０８は、メモリ１１０、ディスプレイ１１２、および／または、システム１００に含まれる他の構成要素と通信可能とすることができる。プロセッサ１０８は、一般的なプロセッサ、中央演算処理装置、サーバ、特定用途向け集積回路（ＡＳＩＣ）、デジタル信号プロセッサ、フィールドプログラマブルゲートアレイ（ＦＧＰＡ）、デジタル回路、アナログ回路、または、それらの組み合わせであってもよい。プロセッサ１０８は、コンピュータコードを実行操作可能な一つ以上のプロセッサ、または、装置であってもよい。そのコンピュータコードは、Ｊａｖａ、Ｃ＃、Ｃ＋＋、ＰＨＰ，アセンブリ言語、Ｖｉｓｕａｌ  Ｂａｓｉｃなど、現在知られている、もしくは、今後見出される如何なるプログラミング言語により記述されてもよい。
【００２０】
メモリ１１０は、現在知られている、もしくは、今後見出される如何なる記憶装置であってもよい。メモリ１１０は、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能ＰＲＯM（ＥＰＲＯＭ）、または、フラッシュメモリなどの不揮発性および／または揮発性メモリであってもよい。メモリ１１０は、光学記憶装置、磁気記憶装置（ハードドライブ）、または、他の記憶装置を含んでもよい。
【００２１】
ディスプレイ１１２は、液晶ディスプレイ（ＬＣＤ）、陰極線管（ＣＲＴ）、ＥＬディスプレイ、プラズマディスプレイパネル（ＰＤＰ）、真空蛍光ディスプレイ（ＶＦＤ）、または、他のディスプレイ装置など、データを表示するための如何なる電気光学装置であってもよい。
【００２２】
アップグレード解析ツール１０４は、本明細書に記載されるシステム構成要素および方法を組み込む、現在知られている、または、今後開発される如何なる種類のアプリケーションであってもよい。ある例では、アップグレード解析ツール１０４は、スタンドアロンアプリケーションを含むことができる。他の例では、アップグレード解析ツール１０４はウェブ基盤のアプリケーションを含むことができる。さらに他の例では、アップグレード解析ツール１０４は、クライアント／サーバアプリケーションとすることができる。
【００２３】
アップグレード解析ツール１０４は、リポジトリデータベース１０６と通信可能とすることができる。リポジトリデータベース１０６は、如何なるデータベースであってよい。ある例では、リポジトリデータベース１０６をアップグレード解析ツール１０４に含めることができる。他の例では、リポジトリデータベース１０６をアップグレード解析ツール１０４に含めないようにすることができる。
【００２４】
データベースは、如何なる電子的な情報の集合を含む記憶装置であってもよい。例えば、データベースは、関係型データベース管理システム（ＲＤＢＭＳ）、オブジェクト指向データベース、拡張マークアップ言語（XML）データベース、ファイルシステム、メモリ構造、または、現在知られている、または、今後開発されるデータベースなど、情報に対してアクセス、管理、更新を行えるよう体系化される情報を含んでもよい。データベースは、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能ＰＲＯM（ＥＰＲＯＭ）、フラッシュメモリ、光学メモリ、磁気（ハードドライブまたはテープ）メモリ、または、他のメモリ装置などの如何なる種類の記憶装置および構造を使用してもよい。
【００２５】
データベースはデータベースエントリを含むことができる。データベースエントリは、データベースから取り出される、または、データベースに格納される情報である。データベースエントリに対して、主キー値、フルパス名、または、メモリアドレスなどの固有キーを使用してアクセスまたは検索を行うことができる。例えば、データベースエントリは、ＲＤＢＭＳのテーブルの行であってもよい。他の例では、データベースエントリを、ＲＤＢＭＳの複数のテーブルなど、データベースの複数の場所に格納してもよい。ＲＤＢＭＳのテーブルは、一つ以上の列を含んでもよい。また、データベースは、データベースの集合を含んでもよい。
【００２６】
一つ以上のデータベースエントリは、データベースにおいて、一つ以上の他のデータベースエントリと関連してもよい。例えば、第一のセキュリティロールエントリは、第二のセキュリティロールエントリに関連してもよく、そこでは、対応する親セキュリティロールが、対応する子セキュリティロールを含んでいる。
【００２７】
データベースにおいてデータベースエントリを関連付ける、現在知られている、または、今後見出される如何なる方法を使用してもよい。ある例では、第一のデータベースエントリを識別するために第二のデータベースエントリに固有キーを含めることによって、第一のデータベースエントリを第二のデータベースエントリに関連させる。他の例では、第二のデータベースエントリを識別するために第一のデータベースエントリに固有キーを含めることによって、第一のデータベースエントリを第二のデータベースエントリに関連させる。さらに他の例では、データベースは関連データベースエントリを含み、関連データベースエントリは、第一のデータベースエントリを識別するための固有キー、および、第二のデータベースエントリを識別するための固有キーを含む。
【００２８】
アップグレード解析ツール１０４は、アプリケーションデータベース１１６から状態情報１１４を取り出すことができる。アプリケーションデータベース１１６は、ソフトウェアプログラム１０２が有するプログラムオブジェクト１１８および１２０の状態情報１１４を含む如何なるデータベースであってもよい。ソフトウェアプログラム１０２は、統合基幹業務アプリケーション、顧客関係管理アプリケーション、財務会計プログラム、税金アプリケーション、ＣＡＤソフトウェア、医療アプリケーション、航空電子工学ソフトウェア、エンジン管理／診断アプリケーション、ワープロアプリケーションなどのインストール済みのアプリケーション、または、アプリケーションの組み合わせであってもよい。ソフトウェアプログラム１０２は、実行時に一つ以上のプログラムオブジェクト１１８および１２０をインスタンス化する実行可能コード１２２を含むことができる。プログラムオブジェクト１１８および１２０は、データ、および／または、そのデータに作用する実行可能コード１２２の一部を含む、概念エンティティである。プログラムオブジェクト１１８および１２０は、例えば、プログラムオブジェクトの要素が物理的にメモリの連続ブロックに格納されていない場合でも、特定の場所に特定サイズのコンピュータメモリの連続ブロックとして、実行可能コード１２２に現れる。したがって、プログラムオブジェクト１１８および１２０は、手続き型プログラミングモデル内の一つ以上の変数、および／または、オブジェクト指向プログラミングモデル内の一つ以上の変数もしくはオブジェクトを表してもよい。プログラムオブジェクト１１８および１２０の例として、販売注文、会社、窓口、製品、セキュリティロール、事業体、従業員などが挙げられる。プログラムオブジェクト１１８および１２０のそれぞれは、型を有してもよい。例えば、その型は、クラス、クラスの集合、データ型、基本データ型、または、当該型のプログラムオブジェクト１１８および１２０のそれぞれに共通の他の構造であってもよい。プログラムオブジェクト１１８および１２０のそれぞれに含まれるデータは、状態として知られている。ソフトウェアプログラム１０２は、アプリケーションデータベース１１６内の一つ以上のプログラムオブジェクト１１８および１２０の状態情報１２４または１２６を格納することができる。例えば、従業員プログラムオブジェクト１１８および１２０の状態情報１２４または１２６は、従業員番号、従業員名、および、部署番号を含んでもよい。プログラムオブジェクト１１８および１２０のそれぞれの状態情報１２４または１２６は、状態、状態の一部、および／または、プログラムオブジェクト１１８および１２０のそれぞれの状態に関連する情報を含んでもよい。アプリケーションデータベース１１６に格納される状態情報１１４は、プログラムオブジェクト１１８および１２０のそれぞれの状態情報１２４または１２６、および／または、プログラムオブジェクト１１８および１２０のそれぞれの状態情報１２４または１２６に関連する情報を含んでもよい。
【００２９】
他の例では、リポジトリデータベース１０６は、アップグレード解析ツール１０４の代わりに、アプリケーションデータベース１１６から状態情報１１４を取り出すことができる。そのような例では、リポジトリデータベース１０６は、データベースリンクに作用するデータベースコマンドを、アプリケーションデータベース１１６内のテーブルに実際に作用させる、一つ以上のデータベースリンクを提供してもよい。さらに他の例では、アップグレード解析ツール１０４、または、リポジトリデータベース１０６はまた、アプリケーションデータベース１１６から取り出される状態情報１１４を、現在状態情報１２８としてリポジトリデータベース１０６に格納する。例えば、リポジトリデータベース１０６は、アプリケーションデータベース１１６の一部のスナップショットを含んでもよい。現在状態情報１２８は、状態情報１１４と同一または異なってもよい。
【００３０】
現在状態情報１２８に加えて、または、現在状態情報１２８の代わりに、リポジトリデータベース１０６はデフォルト状態情報１３０を含むことができる。デフォルト状態情報１３０について、図２を参照して以下説明する。以下に説明するように、アップグレード解析ツール１０４は、アップグレード情報１３２を生成することができる。アップグレード情報は、第一のバージョンから第二のバージョンへソフトウェアプログラム１０２をアップグレードすることによって影響を受けるプログラムオブジェクト１１８および１２０のサブセットを特定することができる。ある例では、アップグレード情報１３２をリポジトリデータベース１０６に格納してもよい。他の例では、アップグレード情報１３２を、追加処理のために、表示のために、および／または格納するために、別の装置あるいは処理に送信してもよい。
【００３１】
図２は、未修正のソフトウェアプログラム１０２、および、アプリケーションデータベース１１６を含むテストシステム２００の、別の実施形態を示す図である。ソフトウェアプログラム１０２が最初にインストールされるとき、そのソフトウェアプログラム１０２は、一つ以上のデフォルトプログラムオブジェクト１１８および１２０を含むことができる。例えば、ＥＲＰアプリケーションが最初にインストールされるとき、当該ＥＲＰアプリケーションは、セキュリティ関連オブジェクト、組織単位、製品、および／または、顧客のデフォルトセットを含んでもよい。デフォルトプログラムオブジェクト１１８および１２０のそれぞれは、アプリケーションデータベース１１６に格納されたデフォルト状態情報１２４および１２６のそれぞれを含むことができる。アプリケーションデータベース１１６に格納されたデフォルト状態情報１１４は、デフォルトプログラムオブジェクト１１８および１２０のそれぞれのデフォルト状態情報１２４または１２６、および／または、デフォルトプログラムオブジェクト１１８および１２０のそれぞれのデフォルト状態情報１２４または１２６に関連する情報を含むことができる。
【００３２】
ソフトウェアプログラム１０２を最初にインストールするとき、当該ソフトウェアプログラムは未修正とみなすことができる。ソフトウェアプログラム１０２が使用されるにつれて、ソフトウェアプログラムのユーザによって、プログラムオブジェクト１１８および１２０が修正され、削除され、追加され、または、変更されないまま残る場合がある。ユーザが一つ以上のプログラムオブジェクト１１８および１２０を修正し、削除し、または、追加した後においては、当該ソフトウェアプログラム１０２を修正済みとみなすことができる。ユーザが一つ以上のプログラムオブジェクト１１８および１２０を修正し、削除し、または、追加していないにも拘わらず、ソフトウェアプログラム１０２を単に実行することにより、一つ以上のプログラムオブジェクト１１８および１２０が修正され、削除され、または、追加された場合には、当該ソフトウェアプログラム１０２は未修正のままとみなされる。
【００３３】
テストシステム２００にインストールされるソフトウェアプログラム１０２は、ソフトウェアプログラム１０２の第一のバージョン、および／または、ソフトウェアプログラム１０２の第二のバージョンであってもよい。一つの例では、ソフトウェアプログラム１０２の第二のバージョンを、第一のバージョンとは別にインストールしてもよい。他の例では、ソフトウェアプログラム１０２の第一のバージョンを、ソフトウェアの第二のバージョンにアップグレードしてもよい。
【００３４】
未修正のソフトウェアプログラム１０２の第一および第二のバージョンに含まれる、デフォルトプログラムオブジェクト１１８および１２０は、少なくてもよく、多くてもよく、異なってもよく、および／または、修正済みであってもよい。第一のバージョンのデフォルトプログラムオブジェクト１１８および１２０と、第二のバージョンのデフォルトプログラムオブジェクト１１８および１２０との相違については、自動処理、および／または、手動で検出することができる。例えば、第一のバージョンの特定の型のプログラムオブジェクト１１８および１２０のどちらが、第二のバージョンに存在しないかを検出してもよい。アプリケーションデータベース１１６に第一のバージョンと第二のバージョンの両方のデフォルト状態情報１１４が含まれる場合、そのような検出を行うために、例えば、データベースコマンドを、テストシステム２００のアプリケーションデータベース１１６に送信してもよい。別の例では、第一のバージョンの特定の型のプログラムオブジェクト１１８および１２０のどちらが、第二のバージョンに追加されたかを検出してもよい。さらに別の例では、第一のバージョンと第二のバージョンの特定の型のプログラムオブジェクト１１８および１２０を手動で精査し、第一のバージョンのプログラムオブジェクト１１８および１２０のどちらが第二のバージョンの別のプログラムオブジェクト１１８および１２０に置き換えられているかを検出してもよい。さらに別の例では、ソフトウェアプログラム１０２の開発者によって一つ以上の相違が特定され、その相違が第二のバージョンのインストール、および／または、第二のバージョンへのアップグレードを通してアプリケーションデータベース１１６に提供されるようにしてもよい。一組の修正済みのデフォルトプログラムオブジェクトは、置き換えられ、追加され、もしくは、削除される、一つ以上のデフォルトプログラムオブジェクト１１８および１２０、または、そのようなアップグレードにおいて変更した一つ以上の属性を有する、一つ以上のデフォルトプログラムオブジェクト１１８および１２０を含んでもよい。
【００３５】
あるプログラムオブジェクトが置き換えられた場合、または、一つ以上の属性が変更された場合、当該プログラムオブジェクトは改訂されたとみなすことができる。あるプログラムオブジェクトが削除された場合、該プログラムオブジェクトは廃止されたとみなすことができる。あるプログラムオブジェクトが改訂もしくは廃止された場合、当該プログラムオブジェクトは修正または変更されたとみなすことができる。
【００３６】
一例では、ソフトウェアプログラムの第一のバージョンのデフォルトプログラムオブジェクト１１８および１２０と、第二のバージョンのデフォルトプログラムオブジェクト１１８および１２０との相違を、図１のリポジトリデータベース１０６にデフォルト状態情報１３０として格納することができる。別の例では、未修正のソフトウェアプログラム１０２の第二のバージョンのデフォルト状態情報１１４を、リポジトリデータベース１０６にデフォルト状態情報１３０として格納することができる。後者の例では、第一のバージョンおよび第二のバージョンのデフォルトプログラムオブジェクト１１８および１２０の相違を、修正済みのソフトウェアプログラム１０２の第一のバージョンのプログラムオブジェクト１１８および１２０に含まれる第二のバージョンのデフォルトプログラムオブジェクト１１８および１２０を比較することによって検出することができる。
【００３７】
アップグレード解析ツール１０４は、デフォルト状態情報１３０と現在状態情報１２８の比較を基にしてアップグレード情報１３２を生成することができる。したがって、アップグレード解析ツール１０４は、アップグレードを行わずに、修正済みのソフトウェアプログラム１０２の第一のバージョンの任意のインストールを解析する際に、デフォルト状態情報１３０を再利用することができる。
【００３８】
上述したように、アップグレード情報１３２は、修正済みのソフトウェアプログラム１０２の第一のバージョンから第二のバージョンへのアップグレードによって影響を受けるプログラムオブジェクト１１８および１２０のサブセットを特定することができる。当然ながら、一組の修正済みのデフォルトプログラムオブジェクトに含まれるプログラムオブジェクト１１８および１２０の何れも、アップグレードによって影響を受ける可能性がある。例えば、デフォルトプログラムオブジェクトに含まれるあるデフォルト権限オブジェクトが、未修正のソフトウェアプログラム１０２のアップグレードにおいて削除され、かつ、当該デフォルト権限オブジェクトが、修正済みのソフトウェアプログラム１０２に含まれる場合、当該デフォルト権限オブジェクトは、修正済みのソフトウェアプログラム１０２のアップグレードにおいて削除される可能性がある。一組の修正済みのデフォルトプログラムオブジェクトに直接または間接的に関連するプログラムオブジェクト１１８および１２０の何れも、アップグレードによって影響を受ける可能性がある。例えば、あるセキュリティロールが、修正済みのソフトウェアプログラム１０２に含まれ、かつ、該セキュリティロールがある廃止されたデフォルト権限オブジェクトに間接的に関連する場合、該セキュリティロールは、アップグレードにおいて間接的に関連するある権限オブジェクトを失う可能性があるので、アップグレードによって影響を受ける可能性がある。
【００３９】
これとは対照的に、一組の修正済みデフォルトプログラムオブジェクトに関連しないプログラムオブジェクト１１８および１２０は、アップグレードによって影響を受けない可能性がある。例えば、新しいサプライヤオブジェクトが、修正済みのソフトウェアプログラム１０２に含まれるが、デフォルトセキュリティロールと無関係である場合、デフォルトセキュリティロールを削除しても新しいサプライヤオブジェクトに何ら影響を与えない可能性がある。したがって、修正済みのデフォルトプログラムオブジェクトとプログラムオブジェクト１１８および１２０との関係を、アップグレードによって影響を受けるプログラムオブジェクト１１８および１２０のサブセットを特定するために使用することができる。以下、これらの関係を、プログラムオブジェクト関係と呼ぶ場合がある。
【００４０】
アップグレードによって影響を受けるプログラムオブジェクト１１８および１２０のサブセットは、一組の修正済みのデフォルトプログラムオブジェクトと、修正済みのソフトウェアプログラム１０２に含まれるプログラムオブジェクト１１８および１２０との比較によって検出することができる。同様の結果は、これらのプログラムオブジェクトの状態情報を比較することによっても得ることができる。したがって、アップグレード情報１３２は、デフォルト状態情報１３０と現在状態情報１２８（状態情報１１４）との比較を基にしてもよい。また、プログラムオブジェクト関係を考慮してこの比較を行ってよい。
【００４１】
この比較は、ある例においては、すべてのプログラムオブジェクト１１８および１２０の比較を含むことができる。しかしながら、他の例では、プログラムオブジェクト１１８および１２０を選択的に比較することができる。後者の理由の一つとして、すべての型のプログラムオブジェクトが重要とは限らない可能性があるからである。例えば、修正済みのソフトウェアプログラム１０２において削除される可能性がある、ある型の修正済みのデフォルトプログラムオブジェクトは、重要ではない可能性がある。一例として、修正済みのＥＲＰアプリケーションにおけるデフォルト顧客オブジェクトは、除去される可能性がある。さらに、修正済みのＥＲＰアプリケーションにおける他のプログラムオブジェクトは、デフォルト顧客オブジェクトが削除される可能性があるので、デフォルト顧客オブジェクトと関係がない可能性がある。別の例として、一以上の型のプログラムオブジェクトが、アップグレードの際自動的にアップグレードされる可能性がある。例えば、ＥＲＰアプリケーションにおける販売注文が、アップグレードの際、自動的にアップグレードされる可能性があり、アップグレードを行った後は、手動での更なる解析または修正は必要でない可能性がある。
【００４２】
これとは対照的に、アップグレードを行った後に手動での解析および／または修正を必要とする何れの型のプログラムオブジェクトも、重要である可能性がある。例えば、ＥＲＰアプリケーションにおけるセキュリティに関連するプログラムオブジェクト１１８および１２０の型は、複数のデフォルトセキュリティオブジェクトが修正済みのＥＲＰアプリケーションに保持されるため、また、複数の新しいセキュリティオブジェクトおよび他の型のオブジェクトがセキュリティオブジェクトに関連する可能性があるために、重要である可能性がある。したがって、セキュリティ特性に関連するオブジェクトは、特に重要である可能性がある。別の例では、保持されたデフォルトプログラムオブジェクト１１８および１２０であって他のプログラムオブジェクト１１８および１２０に関連するものは、重要である可能性がある。例えば、データベーステーブルや表示画面などのプログラムオブジェクト１１８および１２０は、そのような特性を有している可能性がある。データベーステーブルのデータベースフィールドがアップグレードの際に追加された場合、データベーステーブルに格納され、および／またはデータベーステーブルから取り出される表示画面は、追加されたデータベースフィールドを明らかにするために変更が必要となる可能性がある。
【００４３】
アップグレード解析ツール１０４の一実施形態の動作を、詳細な例を用いてさらに説明する。ＥＲＰアプリケーションは、複数の異なった型のプログラムオブジェクト１１８および１２０を含むことができる。プログラムオブジェクト１１８および１２０は、セキュリティに関連するプログラムオブジェクトを含んでもよい。例えば、ＳＡＰ  ＥＲＰアプリケーションのセキュリティ関連プログラムオブジェクト１１８および１２０は、ロール、プロファイル、権限オブジェクト、権限フィールド、権限値、権限グループ、および、チェックインジケータを含んでもよい。セキュリティオブジェクトは、オブジェクトクラスと呼ばれる特定のプログラムオブジェクトへのアクセスを制御する機構を提供する。オブジェクトクラスの例としては、販売注文、サプライヤ、顧客、他のビジネスオブジェクトが挙げられる。オブジェクトクラスのそれぞれは、それぞれの状態情報１２４および１２６を格納するために、アプリケーションデータベース１１６に一つ以上の対応するデータベーステーブルを有してもよい。また、オブジェクトクラスは、権限オブジェクトに対して一対複数の関係を有してもよい。権限オブジェクトのそれぞれは、読み出しおよび／または書き込みなどの許容される一組のアクティビティを特定する。権限オブジェクトのそれぞれは、権限フィールドに対して複数対複数の関係を有していてもよい。ある権限フィールドは、データベーステーブルの一つにおいてあるフィールドを特定してもよい。
【００４４】
ＥＲＰアプリケーション内で実行されるプロセスおよび／またはスレッドは、一つ以上のデータベースフィールドにアクセスするように、あるオブジェクトクラスのプログラムオブジェクトへのアクセスを試みる可能性がある。権限オブジェクトが、オブジェクトクラスと権限フィールドの両方に関連し、かつ、当該権限フィールドが、アクセスされる一つ以上のデータベースフィールドに関連する場合、その権限オブジェクトのそれぞれがチェックされる可能性がある。アクセスが、チェック中の権限オブジェクトによって特定される一組の許容アクティビティの一つである場合には、当該アクセスを許可することができる。
【００４５】
さらに、権限オブジェクトは、権限値に対して一対複数の関係を有する可能性がある。権限値により、アクセスされるフィールドの値を基にした付加的レベルのアクセス制御が可能になる。任意の権限値によって、権限フィールドおよび許可された値を特定することができる。アクセスが試みられているフィールド内の値が、許容値と一致する場合、アクセスを許可することができる。例えば、ある作業指図書が、製造施設の特定の工場に存在する場合がある。データベーステーブルは、作業指図書プログラムオブジェクト１１８および１２０の状態情報１２４または１２６を有することができる。データベースフィールドは、特定の工場を識別する値を有するデータベースフィールドを含むことができる。以下の条件が満たされる場合、作業指図書プログラムオブジェクトの修正を試みるアクセスを許可することができる。すなわち、（１）特定の工場を識別する値が、権限値に含まれること、（２）権限値が、権限オブジェクトに関連すること、（３）権限オブジェクトが、作業指図書オブジェクトクラスと、工場を識別する値を有するデータベースフィールドに対する権限フィールドオブジェクトの両方に関連すること、および（４）権限オブジェクトが、許容アクティビティとして書き込みを指定していること、である。許可された値は、単に特定の値ではなく、許容値の範囲を特定してもよい。
【００４６】
プロファイルは、例えば、ビジネスアクティビティまたはビジネスアクティビティの一部を行うためにグループ化した権限値の集合であってよい。プロファイルは、権限値に対して、複数対複数の関係を有してよい。
【００４７】
ロールは、一つ以上のプロファイルを含んでも、含まなくてもよい。ロールは、プロファイルに対して一対複数の関係を有してよい。一つ以上のオブジェクトクラスへのユーザのアクセスを制御するために、ユーザに一つ以上のロールが割り当てられてもよい。ロールは、一つ以上の親ロール、および／または、一つ以上の子ロールを有してもよい。また、ロールをトランザクションコードに割り当ててよい。
【００４８】
トランザクションコード、すなわち、ｔｃｏｄｅにより、ＥＲＰアプリケーションにおいて特定のビジネスアクティビティを識別することができる。例えば、ｔｃｏｄｅは、「ＭＭ０１」とすることができ、これにより、ＥＲＰアプリケーションにおいて原料オブジェクトを生成するビジネスアクティビティを識別する。ｔｃｏｄｅを、例えば、原料オブジェクトを生成するために使用される表示画面または表示画面の集合を識別するために使用することができる。特定のロールが、ビジネスアクティビティまたはビジネスアクティビティの一部を可能にするアクセス権を提供する可能性があるので、ロールはトランザクションコードに関連する可能性がある。ロールは、トランザクションコードに対して複数対複数の関係を有してもよい。さらに、権限オブジェクトは、同様の理由でトランザクションコードに関連してもよい。
【００４９】
ｔｃｏｄｅによって識別されるビジネスアクティビティの間に、任意のオブジェクトクラスのプログラムオブジェクトがアクセスされる場合、当該オブジェクトクラスに関連する権限オブジェクトは、上述のようなチェックを行わなくてもよい。チェックインジケータオブジェクトは、チェックフラグと、トランザクションコードと権限オブジェクトの間のマッピングを含むことができる。当該チェックフラグにより、権限オブジェクトがトランザクションコードに対してチェックされるべきかが示される。したがって、権限オブジェクトによって管理されるアクセス制御を、権限オブジェクトの何れも削除しまたは生成することなしに、チェックインジケータを介して選択的に可能または不可能とすることができる。
【００５０】
権限グループにより、代替のアクセス制御機構を提供することができる。権限グループは、データベーステーブル、および、これらデータベーステーブルの一つ以上のデータベースフィールドへのアクセスを制御することができる。ＥＲＰアプリケーションが、オブジェクトクラスレベルの代わりにテーブルレベルで作用するレポートを生成する場合、権限グループを使用することができる。権限グループは、データベーステーブルに対して複数対複数の関係を有してよい。
【００５１】
上述したセキュリティ関連プログラムオブジェクト１１８および１２０の関係は、リポジトリデータベース１０６に格納された現在状態情報１２８とデフォルト状態情報１３０との特定比較を設計するために使用することができる。この特定比較により、アップグレードによって影響を受け、また、重要なプログラムオブジェクト１１８および１２０を特定することができる。
【００５２】
例えば、この比較は、ロールへの影響を検出するよう設計することができる。この比較は、（別ロールの子ロールではない親ロールの場合の）親を有さない親ロールへの影響をさらに検出するよう設計してもよい。その理由は、子ロールがアップグレードによって影響を受ける場合、親ロールもまた暗に影響を受けるからである。
【００５３】
図３は、アップグレード情報１３２から生成される、親ロールへの影響の統計を含む例示的な概要レポートの一部を示す図である。レポートにおけるそれぞれの行は、親ロールに対応させてもよい。あるいは、レポートにおけるそれぞれの行は、親を有さない親ロールに対応させてもよい。中間の６列は、アップグレードにおいて変更される、任意の型のプログラムオブジェクトの数を示す統計データを含む。このとき、当該プログラムオブジェクトは、直接または間接的に各行のロールに関連している。
【００５４】
例えば、「ＴＣｏｄｅ  Ｃｈａｎｇｅｓ」の列の数字は、ロール、または、ロールの直接または間接的な子ロールに関連した、変更されたトランザクションコードの数を示す。デフォルト状態情報１３０は、アップグレードにおいて変更されるデフォルトトランザクションコードの全リストを含んでもよい。例えば、デフォルト状態情報１３０に含まれる第一のデータベーステーブルは、アップグレードにおいて変更される、ＥＲＰアプリケーションのすべてのデフォルトトランザクションコードを含んでもよい。現在状態情報１２８に含まれる第二のデータベーステーブルは、ＥＲＰアプリケーションのすべてのロール、および、何れの関連トランザクションコードを含んでもよい。現在状態情報１２８に含まれる第三のデータベーステーブルは、ＥＲＰアプリケーションにおける各ロールの、何れの関連親ロール、および／または、子ロールの識別を含んでもよい。一つ以上の構造化照会言語（ＳＱＬ）コマンドを用いて、第一のデータベーステーブルと、第二および第三のデータベーステーブルとの比較を行うことができる。これらのＳＱＬコマンドにより、直接または間接的に親ロールに関連し、かつ修正されるデフォルトトランザクションコードの数を計算することができる。例えば、親ロールの子ロールに関連し、かつ修正される何れのトランザクションコードも、親ロールに対する数に含めることができる。この例は、あるプログラムオブジェクトに間接的に関連する別オブジェクトがアップグレードにおいて修正されるので、そのプログラムオブジェクトを、アップグレードによって影響を受けると断定する例である。あるプログラムオブジェクトが、一つ以上の他のオブジェクトを通じて別のプログラムオブジェクトに関連するとき、当該プログラムオブジェクトは、その別のプログラムオブジェクトと間接的に関連する。
【００５５】
別の例では、「Ｃｈｅｃｋ  Ｉｎｄ  Ｃｈａｎｇｅｓ」の列の数字により、アップグレードにおいて修正される、チェックフラグの値を有するチェックインジケータの数を示すことができる。その数に含まれるチェックインジゲータのそれぞれは、ロール、または、ロールの直接または間接的な子ロールと関連のあるトランザクションコードと関連してよい。この例もまた、あるプログラムオブジェクトと間接的に関連のある別のオブジェクトがアップグレードにおいて修正されるので、そのプログラムオブジェクトを、アップグレードによって影響を受けると断定する例である。
【００５６】
さらに別の例では、「Ａｕｔｈ  Ｏｂｊｅｃｔｓ  Ｃｈａｎｇｅｓ」の列の数字により、アップグレードにおいて修正されるデフォルト権限オブジェクトの数を示すことができる。カウントされるデフォルト権限オブジェクトのそれぞれは、一つ以上のプロファイルと関連のある一つ以上の権限値と関連してよく、その一つ以上のプロファイルは同様に、ロール、または、ロールの直接または間接的な子ロールと関連する。
【００５７】
さらに別の例では、「Ｏｒｇ  Ｅｌｅｍｅｎｔ  Ｃｈａｎｇｅｓ」の列の数字により、特定セキュリティロールに影響を与える組織要素フィールドを有する修正済みの権限オブジェクトの数を示すことができる。組織要素は、業務組織の構造を記述する一組の階層要素であってもよい。例えば、事業体は一つ以上の施設を有し、それぞれの施設は一つ以上の工場を有する可能性がある。利用可能な組織要素を、組織要素データベーステーブルに格納することができる。権限オブジェクトには、データベースフィールドに対応する組織要素フィールドを含めることができる。当該組織要素フィールドは、特定プログラムオブジェクトに関連する組織要素を識別する。組織要素フィールドは、他の権限フィールドが親ロールから値を引き継ぐのに対して、親ロールから値を引き継がない場合がある。このため、導出セキュリティロールの組織要素の値は、単に引き継ぐ代わりに、手動で投入しなければならない場合がある。権限オブジェクトが組織要素フィールドを含み、その権限オブジェクトがアップグレードで廃止される場合、手動で投入された導出セキュリティロールを変える必要がある。権限オブジェクトが、ソフトウェアプログラムの第一のバージョンに組織要素フィールドを含むが、ソフトウェアプログラムの第二のバージョンには組織要素フィールドを含まない場合も、導出セキュリティロールを変更する必要がある。権限オブジェクトが、ソフトウェアプログラムの第二のバージョンに追加された組織要素フィールドを含む場合、導出セキュリティロールを変更する必要がある。
【００５８】
図４は、親ロールに関連する修正されたトランザクションコードを特定する、アップグレード情報１３２から生成される例示的なレポートの一部を示す図である。この例は、特にアップグレード情報１３２が、任意のプログラムオブジェクトに関連する修正済みのプログラムオブジェクトを具体的に特定する例である。アップグレード情報１３２ではまた、修正されたプログラムオブジェクトがどのように修正されているか（例えば、修正済みのプログラムオブジェクトが改訂または廃止されているか）を示すことができる。アップグレード情報１３２は、プログラムオブジェクトが修正される際、改訂値をさらに示してもよい。アップグレード情報１３２はまた、その任意のオブジェクトに直接または間接的に関連する改訂され、あるいは廃止されたプログラムオブジェクトの属性値の範囲を特定してもよい。プログラムオブジェクトの属性、あるいはプロパティは、プログラムオブジェクトに含まれる値またはオブジェクトであってもよい。例えば、フィールドオブジェクトは、どのデータベーステーブルとデータベースフィールドがプログラムオブジェクトの属性の状態情報を有するかを示してもよい。例えば、任意のロールおよび／または親ロールに対して、アップグレード情報１３２は、その任意のロールに直接または間接的に関連のあるトランザクションコードと権限オブジェクトの固有の組み合わせの各々に対するフィールドの許容値の範囲を、第一のバージョンおよび第二のバージョン毎に含んでもよい。
【００５９】
ある例においては、リポジトリデータベース１０６のデフォルト状態情報１３０は、ソフトウェアプログラム１０２の三つ以上のバージョンに関連する状態情報を含んでもよい。アップグレード解析ツール１０４は、解析すべきソフトウェアプログラム１０２の現在のバージョンと、そのバージョンからアップグレードされる所望のバージョンを検出してもよい。デフォルト状態情報１３０が、現在のバージョンおよび所望のバージョンの情報を含む場合、アップグレード解析ツール１０４は、当該アップグレードの解析を継続してもよい。
【００６０】
アップグレード解析ツール１０４が状態情報１１４を取り出すアプリケーションデータベース１１６は、ソフトウェアプログラム１０２がプログラムオブジェクト１１８および１２０の状態情報１２４および１２６を格納する生産アプリケーションデータベース１１６でなくてもよい。アップグレード解析ツール１０４、別のアプリケーション、または、アプリケーションの組み合わせが、生産アプリケーションデータベース１１６から状態情報１１４を抽出し、その状態情報１１４を、アップグレード解析ツール１０４が状態情報１１４を取り出すアプリケーションデータベース１１６へ取り込んでもよい。後者のアプリケーションデータベース１１６は、例えば、コンマ区切り値を有するテキストファイルであってもよい。アップグレード解析ツール１０４によって取り出される状態情報１１４、および／または、生産アプリケーションデータベース１１６から抽出される状態情報１１４は、一つ以上の特性に関連するプログラムオブジェクト１１８および１２０の状態情報１２４および１２６に関連する情報に限定されてもよい。例えば、アップグレード解析ツール１０４によって取り出される状態情報１１４は、セキュリティプログラムオブジェクト、および当該セキュリティプログラムオブジェクトに関連するプログラムオブジェクトに関連する情報に限定してもよい。
【００６１】
図５は、アップグレードを行わずに、修正済みのソフトウェアプログラム１０２の第一のバージョンから第二のバージョンへのアップグレードの影響を解析するシステム１００に含まれる方法の一例を示す図である。実施される工程は追加しても、異なってもよく、または、実施される工程の数は少なくてもよい。また、当該工程が、図５に示される順序に従い実施される必要はない。
【００６２】
図５の図示例の工程５０２において、リポジトリデータベース１０６にデフォルト状態情報１３０を提供して、処理を開始することができる。工程５０４において、現在状態情報１１９をアプリケーションデータベース１１６から取り出して、処理を継続することができる。工程５０６において、アップグレード情報１３２を生成するために、現在状態情報１１９とデフォルト状態情報１３０とを比較して、処理を継続することができる。アップグレード情報１３２は、アップグレードによって影響を受けるプログラムオブジェクト１１８および１２０のサブセットを特定することができる。
【００６３】
現在のプログラムオブジェクト１１８および１２０のそれぞれが、廃止または改訂されているかをチェックする工程５０８は、現在状態情報１１９とデフォルト状態情報１３０を比較する工程５０６に含めてもよい。現在のプログラムオブジェクト１１８および１２０が廃止または改訂されている場合、処理は、現在のプログラムオブジェクトが影響を受けると断定する工程５１０に移行することができる。現在のプログラムオブジェクトが影響を受けると断定する工程５１０は、現在状態情報１１９とデフォルト状態情報１３０を比較する工程５０６に含めてもよい。
【００６４】
現在のプログラムオブジェクト１１８および１２０が廃止されずまた改訂もされていない場合、処理は工程５１２に移行し、そのプログラムオブジェクトに関連する何れのプログラムオブジェクトが廃止または改訂されているかをチェックすることができる。プログラムオブジェクトに関連する何れのプログラムオブジェクトが廃止または改訂されている場合、処理は工程５１０に移行し、現在のプログラムオブジェクトが影響を受けると断定することができる。そのプログラムオブジェクトに関連する何れのプログラムオブジェクトが廃止または改訂されているかをチェックする工程５１２は、現在状態情報１１９とデフォルト状態情報１３０を比較する工程５０６に含めてもよい。
【００６５】
ある例において、アップグレード解析ツール１０４は、生産アプリケーションデータベース１１６に格納された情報のサブセットに作用してもよい。潜在的に機密性の高い情報がエクスポートされずに生産アプリケーションデータベース１１６に残る可能性があるので、この情報のサブセットへの作用にはメリットがある。アップグレード解析ツール１０４もまた、アップグレードを行わずに、実行することができる。テストシステム上でもアップグレードが困難である可能性があるので、アップグレードを行わないことにはメリットがある。仮にアップグレードがテストシステムで行われる場合、プログラムオブジェクト１１８および１２０のどちらが影響を受けた可能性があるかを断定する判定作業は困難である可能性がある。影響を受けたプログラムオブジェクトの断定には、アップグレード後のプログラムオブジェクトのそれぞれを手動で精査する作業が含まれる可能性がある。ある例においては、アップグレード解析ツール１０４は、プログラムオブジェクト１１８および１２０のどちらが影響を受けた可能性があるか、また、プログラムオブジェクト１１８および１２０のどちらが影響を受けなかったか可能性があるかを自動的に断定することができる。ある例においては、アップグレード解析ツール１０４は、アップグレード情報１３２を表示することができる。これにより、ユーザは、影響を受けたプログラムオブジェクト１１８および１２０をさらに解析することができる。
【００６６】
一例においては、システムは、実際にはアップグレードを行わずに、修正済のソフトウェアプログラムの第一のバージョンから、修正済みのソフトウェアプログラムの第二のバージョンへのアップグレードを解析するために提供される。当該システムは、メモリ、および、プロセッサを含んでよく、プロセッサはメモリと通信を行う。メモリは、アップグレードを解析可能なコンピュータコードを含むことができる。例えば、システムは、未修正のソフトウェアプログラムの第二のバージョンのデフォルトインストールに含まれる、複数のデフォルトプログラムオブジェクトのデフォルト状態情報を提供してもよい。システムは、アプリケーションデータベースから複数の現在のプログラムオブジェクトの現在状態情報を取り出してもよい。このとき、現在のプログラムオブジェクトは、修正済みのソフトウェアプログラムに含まれる。システムは、アップグレード情報を、現在状態情報とデフォルト状態情報との比較を基に生成してもよい。このとき、当該アップグレード情報は、現在のプログラムオブジェクトのサブセットを特定し、当該現在のプログラムオブジェクトのサブセットは、アップグレードによって影響を受ける。
【００６７】
上記例において、システムは、好ましくはリポジトリデータベースのデフォルト状態情報を提供してもよい。システムは、リポジトリデータベースに現在状態情報を格納してもよい。
【００６８】
上記例において、好ましくは、現在のプログラムオブジェクトは、ソフトウェアプログラムの特性に関連してもよい。例えば、ソフトウェアプログラムの特性は、セキュリティ特性であってもよい。好ましくは、修正済みのソフトウェアプログラムはまた、実行可能なコードを含んでもよい。
【００６９】
上記例において、好ましくは、アップグレード情報は、アップグレードの結果として変更されうる現在のプログラムオブジェクトのサブセットに含まれる現在のプログラムオブジェクトの少なくとも一つを特定することができる。その現在のプログラムオブジェクトの少なくとも一つは、未修正のプログラムオブジェクトに関連してもよい。未修正のプログラムオブジェクトは、アップグレードの結果として変更されない可能性があるが、その未修正のプログラムオブジェクトは現在のプログラムオブジェクトの少なくとも一つに関連するため、アップグレードによって影響を受ける現在のプログラムオブジェクトのサブセットに含まれる。例えば、未修正のプログラムオブジェクトは、セキュリティロールを含んでもよく、現在のプログラムオブジェクトの少なくとも一つは、複数のトランザクションコードの少なくとも一つを含む。
【００７０】
上記例において、システムは、デフォルト状態データベーステーブルおよび現在状態データベーステーブルからアップグレード情報データベーステーブルを投入するために、データベースコマンドをリポジトリデータベースに送信してもよい。デフォルト状態情報は、デフォルト状態データベーステーブルに格納してもよい。現在状態情報は、現在状態データベーステーブルに格納してもよい。アップグレード情報は、アップグレード情報データベーステーブルに格納してもよい。
【００７１】
上述のシステムおよび方法は、ソフトウェアプログラムのアップグレードの解析に使用することができる。また、アップグレードを実行するかどうかの決定は、生成されるアップグレード情報を基にその後に行うことができる。その決定は、アップグレードによって影響を受けるプログラムオブジェクトの、特定されたサブセットを基に行うことができる。例えば、この決定を行うために、影響を受けるプログラムオブジェクトの数、それらの重要度、臨界レベルを考慮することができる。例えば、影響を受けるプログラムオブジェクトが皆無である場合、あるいは、特定レベルの重要度を超えるプログラムオブジェクトがない場合を除いては、アップグレードを行わないようにすることができる。ソフトウェアプログラムのアップグレードをする決定がされた場合、アップグレードを選択的に遂行、実行、稼働、展開、または、作用させることにより、結果的にソフトウェアプログラムの第二のバージョンへのバージョン変更になる。この代替例において、そのソフトウェアプログラムは、解析後にアップグレードすることができる。解析およびアップグレードの手順は共に、システムおよび方法、すなわち、ソフトウェアプログラムの第一のバージョンからソフトウェアプログラムの第二のバージョンへのアップグレードを行うシステムおよび方法の一部を形成してもよい。当該アップグレードは、修正済み（または、カスタマイズ）バージョンまたは未修正（または、デフォルトインストール）バージョン、もしくは両方のバージョンで行ってよい。この任意的な工程は、自動または手動であってもよい。例えば、ソフトウェアプログラムの第二のバージョンは、任意的に第一のバージョンに対して異なった機能を有する場合、性能を向上させる場合、異なる種類のハードウェアを利用する場合、メモリ使用を最適化する場合、演算または電力消費を少なくする場合、および／または、ソフトウェアプログラムを異なるオペレーティングシステム、または、環境で実行させる場合がある。換言すれば、アップグレードを実行することで、異なる、より効果的な構成を有するコンピュータシステムが実現する場合がある。
【００７２】
上述した特定の実施例に関わらず、すべての説明は、本来は、限定的というよりは例示的である。例えば、実施例の選択された態様、特徴、または構成要素は、メモリに格納するものとして述べているが、本発明に従うシステムおよび方法のすべてまたは一部は、例えば、ハードディスク、フロッピーディスク、ＣＤ―ＲＯＭなどの副記憶装置、ネットワークから受信した信号、または、現在知られている、または、今後開発される他の形態のＲＯＭまたはＲＡＭなど、他の機械可読メディアに格納、該メディアに分配、または、該メディアから読みだしてもよい。さらに、様々なモジュールおよび画面表示機能は一例であり、同様の機能を網羅する他の構成が可能である。
【００７３】
さらに、本発明の特定の構成要素を説明したが、本発明に従う方法、システム、および、製造品は、追加の、あるいは異なる構成要素を含んでもよい。例えば、プロセッサを、マイクロプロセッサ、マイクロコントローラ、特定用途向け集積回路（ＡＳＩＣ）、個別論理、または、他の種類の回路または論理の組み合わせとして実行してもよい。同様に、メモリは、ＤＲＡＭ，ＳＲＡＭ，フラッシュメモリ、または、別の種類のメモリであってもよい。フラグ、データ、データベース、テーブル、エンティティ、および、他のデータ構造を、個別に格納および管理してもよく、単一のメモリまたはデータベースに組み込んでもよく、分散させてもよく、また、多くの異なる方法で論理的および物理的に編成してもよい。プログラムは、単一プログラムの一部であってもよく、別個のプログラムであってもよく、または、プログラムを複数のメモリおよびプロセッサに分散させてもよい。
【００７４】
本発明の様々な実施形態を説明したが、発明の範囲内において、より多くの実施形態および実施例が可能であることは当業者には明らかである。したがって、本発明は、添付の特許請求の範囲およびそれらの均等物の観点以外によっては限定されない。
【図１】
0005235787.tif 000002
【図２】
0005235787.tif 000003
【図３】
0005235787.tif 000004
【図４】
0005235787.tif 000005
【図５】
0005235787.tif 000006