(58)【調査した分野】(Int.Cl.,DB名)
複数種類のシステム環境からなる本番環境に対してリリースする実行モジュールを、対応するシステム環境を有する開発環境においてそれぞれ作成するプログラム開発において、ソースコードもしくは関連ファイルもしくは生成された前記実行モジュールである管理物件についてのライブラリ管理と、前記本番環境に対する前記実行モジュールのリリース管理とを行うプログラム開発統合管理システムであって、
前記各管理物件を管理するライブラリにおいて、前記各管理物件についての適用対象のシステム環境、所在場所のサーバ種別、所在場所のパス、および前記管理物件のファイル名の各情報を含む管理物件特定情報を保持する管理テーブルと、
前記管理テーブルの前記管理物件特定情報の内容に基づいて、前記ライブラリから同一の前記ソースコードを適用対象の前記各開発環境に対してチェックアウトし、前記開発環境において前記ソースコードから生成された前記実行モジュールを、システム環境毎に前記ライブラリにそれぞれチェックインして前記管理テーブルを更新するモジュール管理部と、
前記各開発環境において生成された前記実行モジュールを、対応するシステム環境を有する前記本番環境にそれぞれリリースする本番リリース部とを有することを特徴とするプログラム開発統合管理システム。
【発明の概要】
【発明が解決しようとする課題】
【0007】
近年、企業等では、情報処理システムの構築や運用における効率化やコスト削減、また、顧客の利便性などの観点から、情報処理システムにより提供する業務処理を業界内等で標準化することなどが検討される場合がある。このような状況では、例えば、企業等が情報処理システムをそれぞれ独自に開発・運用するという形態から、業界内の同種の複数の企業等が、共同や相乗り等によって同一もしくは同様の情報処理システムやアプリケーションプログラムを開発・運用等する、もしくはITベンダー等がこのようなシステムやアプリケーションを開発してサービスとして提供するなどにより、軽微なカスタマイズ等のみで、標準化された業務処理を提供するという形態がとられる場合がある。
【0008】
このような形態の情報処理システムやアプリケーションプログラムを構築するには、例えば、ソースコードを一本化して、当該ソースコードから生成された同一のモジュールを各企業独自の環境にそれぞれリリースして実行するという手法が考えられる。しかしながら、この場合は各企業独自のシステム環境がそれぞれOS(Operating System)やミドルウェアなどのプラットフォームのレベルで同一もしくは互換性を有することが前提となるところ、適用する企業(システム環境)の数が多くなるとこのような統一を図ることは困難となる。
【0009】
同一もしくは同様のプログラムにより情報処理システムやアプリケーションプログラムを構築する企業(システム環境)の数が多くなると、例えば、システム環境間でのハードウェアやソフトウェアのリプレースサイクルの相違などから、異なるバージョンのプラットフォームが混在する場合が生じ得る。これに対し、一本化されたソースコードを各システム環境(の開発環境)においてそれぞれ個別にビルドして実行モジュールを生成し、それぞれの本番環境にリリースするという構成をとることも可能である。
【0010】
このとき、ライブラリ管理上はソースコードとしては1つだが、これが異なる開発環境に対してそれぞれチェックアウトされ、各開発環境で個別にビルドされてモジュールが作成された後、それぞれチェックインされることになる。チェックインされた各モジュールは、同一のソースコードから生成されているためファイル名等の外観は同じだが、バイナリレベルでの内容は異なるものとなる。
【0011】
このように生成されたモジュールを、対応するシステム環境(テスト環境、本番環境)に適切に配布、リリースするよう管理するとともに、対応するシステム環境に属するユーザからのみアクセス可能となるようにアクセス制御を行う必要が生じるが、従来技術のライブラリ管理やリリース管理の仕組みは、このような環境における管理や制御を想定したものとはなっていない。また、開発時のソースコード等に対するライブラリ管理の仕組みと、開発案件の工程管理や生成されたモジュールのリリース管理等の仕組みとの間のシステム的な連携についても十分に考慮されたものとはなっていない。
【0012】
そこで本発明の目的は、同一のソースコードを複数のシステム環境において利用し、各システム環境において作成されたモジュールを当該ソースコードと合わせてライブラリにて管理するとともに、管理する各モジュールを対応するシステム環境に対して適切に配布もしくはリリースすることを可能とするプログラム開発統合管理システムを提供することにある。
【0013】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0014】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【0015】
本発明の代表的な実施の形態によるプログラム開発統合管理システムは、複数種類のシステム環境からなる本番環境に対してリリースする実行モジュールを、対応するシステム環境を有する開発環境においてそれぞれ作成するプログラム開発において、ソースコードもしくは関連ファイルもしくは生成された前記実行モジュールである管理物件についてのライブラリ管理と、前記本番環境に対する前記実行モジュールのリリース管理とを行うプログラム開発統合管理システムであって、以下の特徴を有するものである。
【0016】
すなわち、プログラム開発統合管理システムは、前記各管理物件を管理するライブラリにおいて、前記各管理物件についての適用対象のシステム環境、所在場所のサーバ種別、所在場所のパス、および前記管理物件のファイル名の各情報を含む管理物件特定情報を保持する管理テーブルと、前記管理テーブルの前記管理物件特定情報の内容に基づいて、前記ライブラリから同一の前記ソースコードを適用対象の前記各開発環境に対してチェックアウトし、前記開発環境において前記ソースコードから生成された前記実行モジュールを、システム環境毎に前記ライブラリにそれぞれチェックインして前記管理テーブルを更新するモジュール管理部と、前記各開発環境において生成された前記実行モジュールを、対応するシステム環境を有する前記本番環境にそれぞれリリースする本番リリース部とを有することを特徴とするものである。
【発明の効果】
【0017】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【0018】
すなわち、本発明の代表的な実施の形態によれば、同一のソースコードを複数のシステム環境において利用し、各システム環境において作成されたモジュールを当該ソースコードと合わせてライブラリにて管理するとともに、管理する各モジュールを対応するシステム環境に対して適切に配布もしくはリリースすることが可能となる。
【発明を実施するための形態】
【0020】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。また、以下においては、本発明の特徴を分かり易くするために、従来の技術と比較して説明する。
【0021】
<概要>
例えば、ITベンダー等が、複数の企業等に対して、同様の業務処理を提供するシステム環境を構築して提供する場合、各企業における要件や仕様の相違等に対応するため、従来は、個別にソースコードを作成して独立性を保つ構成をとるのが一般的であった。
【0022】
図6は、従来技術における複数のシステム環境にそれぞれ対応したモジュールを作成する際の処理の例について概要を示した図である。
図6の例では、まず、ソースコードや実行モジュールなどを保持・管理するライブラリ10から、対象のソースコード21や図示しないMakefile等の関連ファイルを、対象の企業等の各開発環境2(
図6の例では開発環境A(2A)〜C(2C))に対してそれぞれチェックアウトする(新規開発の場合は新規作成する)。
【0023】
各開発環境2では、ソースコード21(
図6の例ではソースコードA(21A)〜C(21C))からMakefile等を利用して所定の手順によりコンパイルやリンク等の処理を行なって実行モジュール22(
図6の例では実行モジュールA(22A)〜C(22C))をそれぞれ生成(ビルド)する。その後、単体テストや連結テスト等を行い、完了すると、更新後のソースコード21や関連ファイル、実行モジュール22などをライブラリ10にそれぞれチェックインする(図示しない)。
【0024】
その後、複数の本番環境4(
図6の例では本番環境A(4A)〜C(4C))にそれぞれ対応する、図示しないテスト環境において、対応する開発環境2で生成された実行モジュール22を適用して総合テスト等を行った上で、対応する各本番環境4に対して実行モジュール22をそれぞれリリースする。このような手法では、各システム環境における要件や仕様の相違等に対して個別に柔軟に対応することが可能であるものの、ソースコード21を各システム環境に対応した形で複数種類保持する必要があり、同様の機能について複数種類のソースコード21を保持・管理するためのメンテナンスコストや、開発の反映漏れ等に伴う障害誘発のリスクが大きくなってしまう。
【0025】
そこで、上述したように、例えば、開発・保守の効率化やコスト削減のため、また、業界内で標準化された業務処理を複数のシステム環境において提供するため、ソースコード21を一本化し、そこから複数のシステム環境に対応した実行モジュール22を生成して各システム環境にそれぞれリリースするという手法が考えられる。
【0026】
図7は、従来技術における同一のソースコードから複数のシステム環境にそれぞれ対応したモジュールを作成する際の処理の例について概要を示した図である。
図7の例では、まず、ライブラリ10から、対象のソースコード21や図示しないMakefile等の関連ファイルを開発環境2に対してチェックアウトする(新規開発の場合は新規作成する)。開発環境2では、ソースコード21からMakefile等を利用して所定の手順によりコンパイルやリンク等の処理を行なって実行モジュール22を生成(ビルド)する。その後、単体テストや連結テスト等を行い、完了すると、更新後のソースコード21や関連ファイル、実行モジュール22などをライブラリ10にチェックインする(図示しない)。
【0027】
その後、
図6の例と同様に、複数の本番環境4(
図7の例では本番環境A(4A)〜C(4C))にそれぞれ対応する、図示しないテスト環境において、開発環境2で生成された実行モジュール22を適用して総合テスト等を行った上で、各本番環境4に対して実行モジュール22をそれぞれリリースする。上述したように、このような手法では、同一の実行モジュール22が各本番環境4にそれぞれコピーされたのと同様の状態となることから、各本番環境4のシステム環境が同一もしくは互換性を有することが前提となる。しかしながら、このようなシステム環境の統一を図ることは実際上困難である。
【0028】
そこで、本発明の一実施の形態であるプログラム開発統合管理システムでは、一本化された同一のソースコード21を各システム環境に対応する開発環境2においてそれぞれ個別にビルドして実行モジュール22を生成し、対応する本番環境4にそれぞれリリースするという構成をとる。
【0029】
図2は、本実施の形態における同一のソースコードから複数のシステム環境にそれぞれ対応したモジュールを作成する際の処理の例について概要を示した図である。
図2の例では、まず、ライブラリ10から、対象のソースコード21や図示しないMakefile等の関連ファイル(各開発環境2によって内容が異なる場合があり得る)を各開発環境2(
図2の例では開発環境A(2A)〜C(2C))に対してそれぞれチェックアウトする(新規開発の場合は新規作成する)。
【0030】
各開発環境2では、同一のソースコード21からMakefile等を利用して所定の手順によりコンパイルやリンク等の処理を行なって実行モジュール22(
図2の例では実行モジュールA(22A)〜C(22C))をそれぞれ生成(ビルド)する。ここでは、ソースコード21としては同一だが、OS等のプラットフォームが異なる開発環境2A〜2Cでそれぞれ個別にビルドした結果、生成された実行モジュール22A〜22Bは、ファイル名等の外観は同じだが、バイナリレベルでの内容は異なるものが生成される。
【0031】
その後、単体テストや連結テスト等を行い、完了すると、更新後のソースコード21や関連ファイル、実行モジュール22などをライブラリ10にそれぞれチェックインする。ライブラリ10での管理上は、ソースコード21はシステム環境に依存しない同一のものとして管理するが、実行モジュール22はシステム環境毎に異なるものとして管理する。なお、異なるシステム環境間でソースコード21を一本化するため、システム環境間で異なる処理を実現する必要がある場合には、例えば、ソースコード21やMakefile等に記載するコードや命令において、実行時に自身が稼働するシステム環境を識別するための情報(例えば、環境変数等)を取得し、その内容に応じて処理内容を振り分けるようにコードや命令等を記載するというような手法をとることができる。
【0032】
このような構成により、同一のソースコード21を複数のシステム環境に対して提供し、各システム環境においてそれぞれ当該システム環境に適合した実行モジュール22を生成するとともに、生成された実行モジュール22をソースコード21と合わせてライブラリ10にて管理することができる。
【0033】
<システム構成>
図1は、本発明の一実施の形態であるプログラム開発統合管理システムの構成例について概要を示した図である。プログラム開発統合管理システム1は、各企業等に対して標準化された業務処理を提供するためのアプリケーションプログラムの開発や保守を支援するシステムであり、例えば、PC(Personal Computer)やサーバ機器などの情報処理装置により構成され、社内LAN(Local Area Network)等の閉じたネットワーク7を介して、ライブラリ10の管理を行うライブラリアンが使用する情報処理装置であるライブラリアン端末5や、開発者等が使用する情報処理装置であるユーザ端末6が接続される構成を有する。
【0034】
また、図示しない個別のネットワークや中継サーバ等を介して、開発環境2、テスト環境3、および本番環境4においてそれぞれ実行モジュール22を展開するサーバ等の機器に接続することが可能である。なお、これらの各環境は、上述したように、使用する企業等のシステム環境に応じてそれぞれ複数種類のものが存在し得る。
【0035】
プログラム開発統合管理システム1は、例えば、ソフトウェアにより実装されたユーザ管理部11、テーマ管理部12、工程管理部13、運用管理部14、ユーザインタフェース部15、リポジトリ管理部16、モジュール管理部17、テスト環境配布部18、および本番リリース部19などの各部を有する。また、ソースコード21や関連ファイル、実行モジュール22などを保持・管理するデータベースやファイル等からなるリポジトリとしてのライブラリ10を有する。
【0036】
ユーザ管理部11は、プログラム開発統合管理システム1にアクセスするユーザ(ライブラリアンや開発者等)についての情報を管理する機能を有する。これには例えば、社内システム等と連携した各ユーザやグループについてのアカウント情報の管理や、ユーザ認証、グループやチーム間での情報の連携機能などが含まれる。
【0037】
テーマ管理部12は、アプリケーションプログラムの開発案件(テーマ)を個別に管理する機能を有する。例えば、開発案件を開始する際、対象となるアプリケーションプログラムの機能やサービス等の指定と合わせて、ライブラリ10として管理されているソースコード21等のうち、当該テーマに関連するものの指定等の情報を受けてこれをテーマとして図示しないデータベース等に登録する。また、対象のテーマや、これに含まれるサブシステム、機能、ソースコード21等について、作業を行う開発者やグループ等を割り当てることが可能である。これにより、後述するように、開発作業やリリース時には、テーマ毎に該当するソースコード21や実行モジュール22等を特定し、これらに対してのみアクセス可能とするなどのアクセス制御を行うことができる。
【0038】
工程管理部13は、開発中の案件(テーマ)について、各開発工程でのプロジェクト管理に係る業務フローを実現するとともに、複数のシステム環境間での開発工程の調整を行う機能を有する。各開発工程での処理には、例えば、進捗状況の管理や、レビューの実施等のイベントの管理、リリースの承認プロセスなどが含まれる。また、ソースコード21を一本化して一元管理するために、例えば、複数のシステム環境に対する並行開発の管理や、リリースタイミングの調整などの処理も含まれる。複数の開発者等の間での情報の共有や処理の受け渡しには、例えば、公知のグループウェア等の仕組みを適用することができる。
【0039】
運用管理部14は、プログラム開発統合管理システム1の全体の運用について管理する機能を有する。例えば、プログラム開発統合管理システム1上で用いられるデータの登録や更新等の機能や、定期的もしくは所定のタイミングで実行されるプログラム等の実行の管理機能などが含まれる。
【0040】
ユーザインタフェース部15は、プログラム開発統合管理システム1にアクセスするライブラリアン端末5やユーザ端末6に対して、情報を参照したり各種の操作を行ったりするためのユーザインタフェースを提供する機能を有する。例えば、図示しないWebサーバプログラムを有し、ライブラリアン端末5やユーザ端末6上の図示しないWebブラウザ等を介してユーザがプログラム開発統合管理システム1の各機能にアクセスすることを可能とする。
【0041】
リポジトリ管理部16は、ライブラリ10についてのリポジトリ管理機能を有する。例えば、公知の技術を利用して、ライブラリ10が巨大化することを想定したバックアップの高速化やアクセスの効率化などを行う機能が含まれる。なお、リポジトリには、例えば、開発段階での成果物を管理する開発リポジトリと、本番環境へのリリース対象物を管理する本番リポジトリとが含まれる。
【0042】
モジュール管理部17は、各開発環境2からのライブラリ10に対するソースコード21や実行モジュール22等のチェックアウト/チェックインの処理など、開発環境2でのモジュールの管理機能を有する。
図2において示したように、ソースコード21については、原則として複数の開発環境2の全てに対して同一のものをチェックアウトすることが可能であり、当該ソースコード21等に基づいて各開発環境2でそれぞれ実行モジュール22がビルド/生成される。特定の開発環境2にしかチェックアウトされないソースコード21等があってもよい。
【0043】
本実施の形態では、モジュール管理部17は、各開発環境2のユーザ(開発者)がソースコード21等をチェックアウト/チェックインしようとする際に、当該ユーザが当該ソースコード21等をチェックアウト/チェックインする権限を有するか否かを判定するアクセス制御を行う。ここでは、例えば、対象のソースコード21等に基づくアクセス制御として、当該ソースコード21等が、テーマ管理部12より登録された開発中のテーマに関連するものであるか否か等を判定する。
【0044】
また、対象のユーザに基づくアクセス制御として、当該ユーザが対象のテーマやその対象物(例えば、サブシステムや機能、ソースコード21など)、もしくは対象の開発環境2における開発者として割り当てられているか否か等を判定する。これにより、ユーザに対して、自身がアクセスすることができるソースコード21等についてのみチェックアウト/チェックインすることを許容できる。各開発環境2では、ライブラリ10からチェックアウトしたソースコード21に対して、ユーザ端末6等を介してユーザ(開発者)が修正等を行い、Makefile等に基づいてビルドを行なって実行モジュール22を生成する。また、生成した実行モジュール22の単体テストや連結テストなどを行い、完了したソースコード21等をライブラリ10にチェックインする。
【0045】
なお、開発環境2における開発作業や後述するテスト環境3でのテストの実施、および本番環境4でのリリース作業などについては、実施の内容をログデータとして図示しないデータベース等に記録しておく。これにより、監査等の際に証跡の情報としてこれらのデータを用いることができるとともに、工程管理部13での管理を行う際の実績データとして用いることも可能である。
【0046】
テスト環境配布部18は、各開発環境2において生成された実行モジュール22や関連ファイル等を、対応するテスト環境3に配布する機能を有する。ここでは例えば、ユーザが、配布する案件(テーマ)、および配布する日付や曜日等と、配布先のテスト環境3(もしくはサーバ等)を指定することで、テスト環境配布部18が所定の領域に配布対象の実行モジュール22等を配置し、自動的に配布を行うことができる。
【0047】
なお、配布対象の実行モジュール22等のライブラリ10からの払い出しや、テスト環境3への配布については、モジュール管理部17の場合と同様にアクセス制御を行うことができる。また、後述する本番環境4へのリリース時と同様に、工程管理部13における承認プロセスを経たものについてのみ配布可能としてもよい。各テスト環境3では、テスト環境配布部18を介して配布された実行モジュール22に基づいて、システム全体についての総合テストや、サブシステム間の連結等を対象としたテストを実施する。
【0048】
本番リリース部19は、各テスト環境でのテストが完了した実行モジュール22や関連ファイルについて、対応する本番環境4にリリースする機能を有する。ここでは例えば、工程管理部13において所定の管理者による承認プロセスを経た案件(テーマ)について、本番環境4へのリリースを管理する特定のライブラリアンのみが、当該テーマとリリースする日付や曜日等、およびリリース先の本番環境4(もしくはサーバ等)を指定する。これにより、従来技術と同様に、本番リリース部19が、図示しない中継サーバ等の所定の領域にリリース対象の実行モジュール22等を配置し、自動的にリリースを行うことができる。
【0049】
このように、開発者と本番環境4へのリリースを行う担当者(特定のライブラリアン)の職責や権限をシステム的に分離することにより、セキュリティを確保して内部統制を図ることができる。なお、本番環境4へのリリースだけではなく、テスト環境3への配布や、開発環境2からのチェックアウト/チェックインについても特定のライブラリアンを介して行うようにするのが望ましい。
【0050】
<データ構成>
図3は、ライブラリ10において管理情報を保持するテーブルのデータ構成の例について概要を示した図である。管理テーブル10aは、ライブラリ10にて管理するソースコード21や実行モジュール22等の管理物件についての管理情報を保持するテーブルであり、例えば、サブシステムID、管理物件特定キー、管理物件ID、管理物件名称、配布先システム、配布先環境、および配布先サーバなどの項目を有する。キー項目は管理物件特定キーと管理物件IDの複合キーである。
【0051】
サブシステムIDの項目は、対象の管理物件(ソースコード21等)が属する、アプリケーションプログラムにおけるサブシステムを識別するIDの情報を保持する。管理物件特定キーの項目は、対象の管理物件の所在と適用するシステム環境の情報を識別する情報を保持する。例えば、先頭のエントリの“CMN:MAKE/src/bt/main”というデータでは、適用するシステム環境が、複数のシステム環境で共通に適用可能であることを示す“CMN”であり、所在場所のサーバ種別が“MAKE”、所在場所のパスが“/src/bt/main”であることを示している。また、次のエントリの“EnvA:DB/MAKE/src”というデータでは、適用するシステム環境が“環境A”であることを示す“EnvA”であり、所在場所のサーバ種別が“DB”、所在場所のパスが“/MAKE/src”であることを示している。
【0052】
管理物件IDの項目は、対象の管理物件を識別するID(本実施の形態ではファイル名)の情報を保持する。本実施の形態では、上述したように、各システム環境でソースコード21等は共通のものを用いるため、ビルドされて生成される実行モジュール22についてはバイナリレベルでは異なるものの、外観(ファイル名)は同じものになる。従って、
図3の例では、説明の便宜上、ファイル名を、適用するシステム環境の種類(上述した管理物件特定キーの項目で指定されている)に応じて異なる種類の図形で囲むことで、ファイル名が同じでも実体が異なるものであることを示している。管理物件名称の項目は、対象の管理物件の名称等、管理物件の内容を簡潔に説明する文言の情報を保持する。
【0053】
なお、上記の項目のうち、サブシステムID、管理物件特定キー、管理物件IDの3つの項目は、管理物件を一意に特定することができる管理物件特定情報としての意義を有する。従って、バイナリレベルでの実体が異なる実行モジュール22について、管理物件ID(ファイル名)が同じであっても、管理物件特定情報としては異なるものとして把握することが可能である。
【0054】
配布先システムの項目は、テスト環境3への配布もしくは本番環境4へのリリースの対象となるシステム環境を示す情報を保持する。従って、データが設定・保持されるのは配布やリリースの対象となる実行モジュール22等のみとなる。
図3の例では、“環境A”についての実行モジュール22(3番目のエントリの“ABC100.exe”)に対しては、“環境A”を示す“EnvA”と“環境C”を示す“EnvC”が設定されている(すなわち、“環境C”においては、“環境A”と同様の実行モジュール22が動作可能である)ことを示している。また、“環境B”についての実行モジュール22(5番目のエントリの“ABC100.exe”)に対しては、“環境B”を示す“EnvB”が設定されていることを示している。
【0055】
配布先環境の項目は、対象の管理物件の配布先のシステム環境に複数種類の運用環境が存在する場合は、その対象の運用環境の情報を保持する。例えば、
図3の例では、アクセスする日が平日であるか休日であるかによってアクセス先の運用環境が異なるというような場合に、対象の管理物件が平日用の運用環境と休日用の運用環境のいずれ(もしくは双方)に配布されるのかの情報が設定されていることを示している。配布先サーバの項目は、対象の管理物件の配布先のサーバ(論理サーバや物理サーバ)の情報を保持する。
【0056】
なお、上記の配布先システム、配布先環境、および配布先サーバの3つの項目は、テスト環境3や本番環境4に対して管理物件を配布する際の制御に係る配布関連情報としての意義を有する。これらの情報は、例えば、工程管理部13によるリリース承認プロセスや、テーマ間での調整処理等によって設定/承認され、これらの情報に基づいて、テスト環境配布部18や本番リリース部19が配布/リリース先等を自動で制御することが可能となる。
【0057】
上述の
図3で示したテーブルのデータ構成(項目)はあくまで一例であり、同様のデータを保持・管理することが可能な構成であれば、他のテーブル構成やデータ構成であってもよい。例えば、配布関連情報として、さらに、リリース日や本番リポジトリへの反映予定日などの情報を有して、各システム環境への配布やリリースのタイミングを制御可能となるようにしてもよい。
【0058】
<ソースコード等の一本化手法>
図4は、本実施の形態における複数のシステム環境でのソースコード21等の一本化の例について概要を示した図である。テーマ管理部12を介して登録された開発案件(テーマ)について、開発者等のユーザがユーザ端末6により、ユーザ管理部11や工程管理部13等を介して、ライブラリアンに対して管理物件であるソースコード21(“ABC100.cbl”)の更新(修正や新規追加など)の要求を行うと、ライブラリアンは、ライブラリアン端末5によりモジュール管理部17を介して対象の管理物件に対する更新登録を行う。
【0059】
このとき、テーマ管理部12等により、対象の管理物件が対象のテーマに含まれるものか否か、対象のユーザが対象のテーマについての開発者として対象の管理物件にアクセスする権限を有しているか否か、対象のユーザが対象のシステム環境で開発作業を行う権限を有しているか否か等を判定して、対象の管理物件に対するアクセスの可否を判定するアクセス制御を行なってもよい。
【0060】
モジュール管理部17は、ユーザから指定された管理物件であるソースコード21(“ABC100.cbl”)および対象のテーマの中でこれに関連するファイル(Makefile(“ABC100.mk”)や、生成された実行モジュール22(“ABC100.exe”))を、
図3に示した管理テーブル10aの内容に基づいて、対象となる開発環境2に対して払い出してチェックアウトする。
【0061】
図4の例では開発環境A(2A)とB(2B)に対して払い出すため、管理テーブル10aを参照して、開発環境A(2A)には、各システム環境で共通のソースコード21(“ABC100.cbl”)と開発環境A(2A)用のMakefile(“ABC100.mk”)および実行モジュール22(“ABC100.exe”)を払い出し、開発環境B(2B)には、各システム環境で共通のソースコード21(“ABC100.cbl”)と開発環境B(2B)用のMakefile(“ABC100.mk”)および実行モジュール22(“ABC100.exe”)を払い出すことになる。すなわち、ソースコード21(“ABC100.cbl”)については各システム環境に対して共通に払い出す。
【0062】
その後、各開発環境2で開発(ソースコード21等の作成・更新)、ビルド、および単体テスト、連結テストなどが行われる。これらの作業が完了すると、ユーザからの指示に基づいてモジュール管理部17は、各モジュールについて指定された管理物件特定キーおよび管理物件IDの項目をもとにライブラリ10にチェックインする。このとき、例えば、作成された実行モジュール22が管理テーブル10aに登録されていない場合等は、管理テーブル10aの内容を更新する。
【0063】
単体テスト、連結テスト等のテストにおいては、ソースコード21が各システム環境に対して共通である、すなわち業務ロジックについては同一であることから、例えば重複するテスト項目を1回のテスト実施で確認することができるなど、テストにかかる工数を大きく削減し、効率化を図ることができる。また、各システム環境で一元化された直近のソースコード21がライブラリ10に格納されているため、ソースコード21の修正ミスや、先祖返り等の品質劣化を防ぐことが容易となる。
【0064】
図5は、本実施の形態における複数のシステム環境でのソースコード21等の一本化の例について処理の概要を示した図である。モジュール管理部17がライブラリ10から管理物件であるソースコード21(“ABC100.cbl”)およびこれに関連するファイル(Makefile(“ABC100.mk”)や、生成された実行モジュール22(“ABC100.exe”))を払い出す際、例えば、各開発環境2からアクセス可能なNAS(Network Attached Storage)8上の所定の領域に各ファイルをコピーすることで払い出す。
【0065】
具体的には、例えば、開発環境A(2A)とB(2B)に対して払い出す場合、NAS8上に開発環境A(2A)用の領域とB(2B)用の領域、および各システム環境に共通の領域を設定する。開発環境A(2A)用の領域には開発環境A(2A)用のMakefile(“ABC100.mk”)および実行モジュール22(“ABC100.exe”)をコピーし、開発環境B(2B)用の領域には開発環境B(2B)用のMakefile(“ABC100.mk”)および実行モジュール22(“ABC100.exe”)をコピーする。そして、共通の領域には共通で用いられるソースコード21(“ABC100.cbl”)をコピーする。
【0066】
このとき、開発環境A(2A)のユーザ端末6からは、開発環境A(2A)用の領域と共通の領域のみマウント可能とし、開発環境B(2B)のユーザ端末6からは、開発環境B(2B)用の領域と共通の領域のみマウント可能とする。これにより、開発環境A(2A)のユーザ端末6からは共通のソースコード21(“ABC100.cbl”)と開発環境A(2A)用のMakefile(“ABC100.mk”)および実行モジュール22(“ABC100.exe”)のみが参照可能となり、開発環境B(2B)のユーザからは、共通のソースコード21(“ABC100.cbl”)と開発環境B(2B)用のMakefile(“ABC100.mk”)および実行モジュール22(“ABC100.exe”)のみが参照可能となるよう制御することができる。
【0067】
各開発環境2での開発および単体テスト、連結テスト等が完了すると、NAS8上の対象のモジュール等をライブラリ10にチェックインするとともに、NAS8上の各領域への各ユーザ端末6からのマウントを解除し、各領域の内容をクリアする等の後処理を行う。
【0068】
以上に説明したように、本発明の一実施の形態であるプログラム開発統合管理システム1によれば、一本化された同一のソースコード21を各システム環境に対応する開発環境2においてそれぞれ個別にビルドして実行モジュール22を生成し、テスト環境3でのテストを経た後、対応する本番環境4にそれぞれリリースするという構成をとる。これにより、同一のソースコード21を複数のシステム環境に対して共通に提供することで開発やテストにかかる負荷を低減することができる。また、各システム環境においてそれぞれ当該システム環境に適合した実行モジュール22を生成することで、例えば、標準的な機能やサービスを提供する大規模なシステム環境を多数有するようなデータセンター等での構成においても、システム環境毎の対応を柔軟に行うことが可能となる。
【0069】
また、開発者と、開発環境や本番環境に対するリリースを行えるライブラリアンとで、職責や権限をシステム的に分離するとともに、各システム環境に対応する開発環境2において、対応可能な開発者からのみアクセス可能となるようアクセス制御を行うことができる。また、生成された実行モジュール22を、対応するテスト環境3、本番環境4の適切なサーバ等に適切な権限を有するライブラリアンが適切なタイミングで配布、リリースするよう管理することが可能となるなど、内部統制を強化しつつ、ライブラリ管理の仕組みと、開発案件(テーマ)の工程管理や生成された実行モジュール22のリリース管理等の仕組みとを統合して管理することが可能となる。
【0070】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。