【解決手段】プログラム管理コンピュータシステムは,業務処理を実行する業務処理コンピュータシステムと協働して動作する。本番用ライブラリに業務処理に用いられる複数のプログラムが記憶されており,そのそれぞれについての最新の使用日付データがプログラム使用状況管理テーブルに記録されている。プログラム使用状況管理テーブルの最新使用日付データにしたがって,上記本番用ライブラリに記憶されている複数のプログラムのそれぞれについて,1年間使用されていない不使用プログラムかどうかが判断される(ステップ44)。不使用プログラムと判断されると,そのプログラムのコピーが退避ライブラリに記憶され,その後に本番用ライブラリから削除される。
業務処理装置による業務処理に用いられる複数のプログラムを記憶する本番用ライブラリに記憶されている複数のプログラムのそれぞれについて,少なくとも最新の使用された日付データを記録するプログラム使用状況管理テーブル,
上記プログラム使用状況管理テーブルの最新使用日付データにしたがって,上記本番用ライブラリに記憶されているプログラムについて所定期間使用されていない不使用プログラムかどうかを判断する第1の判断手段,
上記第1の判断手段によって不使用プログラムであることが判断された場合に,そのプログラムを複製して上記本番用ライブラリと異なる退避ライブラリに記憶する退避手段,および
上記退避手段によって退避ライブラリに上記不使用プログラムの複製物が記憶された後に,上記不使用プログラムを上記本番用ライブラリから削除する削除手段,
を備えるプログラム管理装置。
上記プログラム使用状況管理テーブルに,上記本番用ライブラリに記憶されているプログラムのそれぞれについて上記本番用ライブラリに登録されたときの日付データが記録されており,
上記本番用ライブラリに記憶されているプログラムについて上記本番用ライブラリに登録されてから所定期間を経過しているかどうかを,上記登録日付データに基づいて判断する第2の判断手段をさらに備え,
上記退避手段は,
上記第1の判断手段によって不使用プログラムであると判断され,かつ上記第2の判断手段によって本番用ライブラリに登録されてから所定期間を経過していると判断された場合に,そのプログラムを複製して上記本番用ライブラリと異なる退避ライブラリに記憶する,
請求項1または2に記載のプログラム管理装置。
上記業務処理装置において実行すべきプログラムが上記本番用ライブラリに記憶されていない場合に上記業務処理装置から出力されるエラーメッセージにしたがって,上記実行すべきプログラムを上記退避ライブラリにおいて検索する検索手段,および
上記検索手段によって見つかった上記実行すべきプログラムを複製して上記本番用ライブラリおよび上記退避ライブラリと異なる,上記業務処理装置がアクセス可能な緊急ライブラリに記憶する復旧手段をさらに備えている,
請求項1から5のいずれか一項に記載のプログラム管理装置。
上記業務処理装置において実行すべきプログラムを規定するステートメントに,上記実行すべきプログラムが格納されているライブラリとして上記本番用ライブラリと上記緊急ライブラリとが,上記緊急ライブラリを高い優先順位にして併記されている,
請求項6に記載のプログラム管理装置。
業務処理装置による業務処理に用いられる複数のプログラムを記憶する本番用ライブラリに記憶されている複数のプログラムのそれぞれについて,少なくとも最新の使用された日付データを記録するプログラム使用状況管理テーブルを備えるプログラム管理装置を制御する方法であり,
上記プログラム使用状況管理テーブルの最新使用日付データにしたがって,上記本番用ライブラリに記憶されているプログラムについて所定期間使用されていない不使用プログラムかどうかを判断し,
不使用プログラムであることが判断された場合に,そのプログラムを複製して上記本番用ライブラリと異なる退避ライブラリに記憶し,
退避ライブラリに上記不使用プログラムの複製物が記憶された後に,上記不使用プログラムを上記本番用ライブラリから削除する,
方法。
業務処理装置による業務処理に用いられる複数のプログラムを記憶する本番用ライブラリに記憶されている複数のプログラムのそれぞれについて,少なくとも最新の使用された日付データを記録するプログラム使用状況管理テーブルを備えるプログラム管理装置を制御するためのプログラムであって,
上記プログラム使用状況管理テーブルの最新使用日付データにしたがって,上記本番用ライブラリに記憶されているプログラムについて所定期間使用されていない不使用プログラムかどうかを判断させ,
不使用プログラムであることが判断された場合に,そのプログラムを複製して上記本番用ライブラリと異なる退避ライブラリに記憶させ,
退避ライブラリに上記不使用プログラムの複製物が記憶された後に,上記不使用プログラムを上記本番用ライブラリから削除させるように上記プログラム管理装置を制御する,
プログラム。
【実施例】
【0023】
図1は,業務処理コンピュータシステムとプログラム管理コンピュータシステムとを概略的に示している。
【0024】
業務処理コンピュータシステム10は,与えられるJCLステートメント11の記述にしたがって,所定の業務処理(ジョブ),たとえばクレジットカード・システムであれば認証処理,利用実績の記録処理,請求書発行処理,消費税加算処理などを実行するシステムである。JCLステートメント11にはジョブの実行指示,ジョブにおいて実行すべきプログラム名,実行すべきプログラムを格納するライブラリ名,入力ファイル名,出力ファイル名,処理結果を保存する記憶装置名等が記述されており,JCLステートメント11の記述にしたがって業務処理コンピュータシステム10の動作が制御される。すなわち,業務処理コンピュータシステム10は,与えられるJCLステートメント11にしたがって業務処理コンピュータシステム10に接続されている記憶装置12に記憶されている入力ファイルを読出して,後述する本番用ライブラリ等に記憶されているプログラムを用いて所定の処理(ジョブ)を行い,処理結果を出力ファイルに記録する。一つのジョブでは一または複数のプログラムが実行される。一のプログラムが複数のジョブに共通に用いられることもある。
【0025】
業務処理コンピュータシステム10において行われるジョブに用いられるプログラムは,業務処理コンピュータシステム10に接続された記憶装置である本番用ライブラリ31に記憶されている。すなわち業務処理コンピュータシステム10は,JCLステートメント11に記載されているプログラム名によって特定されるプログラムを上記本番用ライブラリ31から読出し,実行する。本番用ライブラリ31には多数たとえば数万本のプログラムが記憶されている。
【0026】
業務処理コンピュータシステム10にはさらに,上記本番用ライブラリ31とは別の記憶装置である緊急ライブラリ33も接続されている。緊急ライブラリ33には通常は何も記憶されていない。詳細は後述するが,業務処理コンピュータシステム10において実行すべきプログラムが本番用ライブラリ31に記憶されていない場合に,その実行すべきプログラムが緊急ライブラリ33に一時的に記憶される。緊急ライブラリ33に一時的に記憶されたプログラムも業務処理コンピュータシステム10によるジョブに用いられる。
【0027】
上述したJCLステートメント11には,実行すべきプログラムの格納ライブラリ名として,上述した本番用ライブラリ31と緊急ライブラリ33の2つのライブラリ名が,緊急ライブラリ33を高い優先順位にして併記される。このようにJCLステートメント11を記述しておくことで,業務処理コンピュータシステム10は,JCLステートメント11に記述されているプログラム名のプログラムを,はじめに緊急ライブラリ33において検索して読出し,緊急ライブラリ33において見つからない場合に次に本番用ライブラリ31において検索して読み出すように制御される。
【0028】
プログラム管理コンピュータシステム20は,業務処理コンピュータシステム10とともに用いられるコンピュータシステムであり,上述した本番用ライブラリ31に記憶されている多数のプログラムを管理するためのシステムである(ライブラリ管理システムと言うこともできる)。上述した本番用ライブラリ31および緊急ライブラリ33は,プログラム管理コンピュータシステム20にも接続されている。
【0029】
プログラム管理コンピュータシステム20にはさらに退避ライブラリ32が接続されている。後述するように,退避ライブラリ32には,本番用ライブラリ31に記憶されているプログラムのうち一定期間不使用のもの(以下,不使用プログラムという)のコピー(複製物)が記憶される。退避ライブラリ32に不使用プログラムのコピーが記憶された後,本番用ライブラリ31から不使用プログラムが削除される。また,後述するように,プログラム管理コンピュータシステム20は,業務処理コンピュータシステム10において実行すべきプログラムが本番用ライブラリ31および緊急ライブラリ33のいずれにも記憶されていない場合に,その実行すべきプログラムを退避ライブラリ32から検索して緊急ライブラリ33に移動する処理(緊急ライブラリ33に複製し,かつ退避ライブラリ32から削除する処理)も行う。
【0030】
プログラム管理コンピュータシステム20を制御するためのプログラムは,プログラム管理コンピュータシステム20に接続された記憶装置21に記憶されている。記憶装置21には,後述するプログラム利用状況管理テーブル,退避処理プログラムおよび復旧処理プログラムが記憶されている。これらのテーブルおよびプログラムの詳細は後述する。
【0031】
図2は上述した本番用ライブラリ31,退避ライブラリ32および緊急ライブラリ33間のプログラムの移動の流れを概略的に示している。
【0032】
本番用ライブラリ31には,上述したように,業務処理コンピュータシステム10によって実行される多数のプログラムが記憶されている。ここで本番用ライブラリ31に記憶されている多数のプログラムのなかには,業務処理コンピュータシステム10によって後日全く使用されないものも存在する。これは,プログラムの開発(本番用ライブラリ31の構築)が,一般に既存プログラムの一部を改修することによって行われることに起因する。
【0033】
すなわち,既に稼働している業務処理コンピュータシステム10を改修する場合,本番用ライブラリ31ごと,すなわち本番用ライブラリ31に記憶されている多数のプログラムのすべてを新規に作成したプログラムに一斉に交換することは一般には行われない。継続的なサービス提供(業務処理)に支障が生じる可能性があるからである。既に稼働している業務処理コンピュータシステム10を改修する場合には,本番用ライブラリ31に記憶されている多数のプログラムのうちの改修に必要ないくつかのプログラムのみの改修が行われる。さらにプログラムの改修についても,プログラム全体を書直すことは一般には行われずその一部の書直しにとどめられる。プログラムの一部改修が行われると,改修されたプログラムが新たに本番用ライブラリ31に記憶される。このとき,従前使用していた改修前のプログラムも,その後に使用される可能性は低いものの,本番用ライブラリ31にそのまま残される。これも,改修後のプログラムに何らかの欠陥があった場合にすぐに改修前のプログラムを使用することができる状態にしておくことで,継続的なサービス提供に支障が生じないようにするためである。これが,業務処理コンピュータシステム10によって後日全く使用されないものが本番用ライブラリ31に存在する理由である。
【0034】
詳細には後述するが,プログラム管理コンピュータシステム20は,本番用ライブラリ31に記憶されている多数のプログラムのうち所定期間使用されていない不使用プログラムを退避ライブラリ32に退避する処理(退避ライブラリ32にコピーを記憶し,かつ本番用ライブラリ31から削除する処理)を実行する。これにより本番用ライブラリ31には長期間使用されていない不使用プログラムが無くなる。本番用ライブラリ31には業務処理コンピュータシステム10によって所定期間内に使用されたプログラムのみが記憶されている状態になるので,その後は改修作業をスムーズに行うことができるようになり保守コストの削減を図ることができる。プログラムを改修するときの影響範囲の特定も容易になる。
【0035】
さらに,詳細は後述するが,プログラム管理コンピュータシステム20は,業務処理コンピュータシステム10によって本番用ライブラリ31および緊急ライブラリ33に記憶されていないプログラムの実行が要求された場合に,そのプログラムを退避ライブラリ32から緊急ライブラリ33に復旧する処理(緊急ライブラリ33にコピーを記憶し,かつ退避ライブラリ32から削除する処理)も行う。緊急ライブラリ33に復旧されたプログラムは,その後オペレータによって本番用ライブラリ31に再登録される。
【0036】
図3はプログラム管理コンピュータシステム20の記憶装置21に記憶されているプログラム使用状況(使用実績)管理テーブル21Aを示している。
【0037】
プログラム使用状況管理テーブル21Aには,本番用ライブラリ31に記憶されている多数のプログラムのそれぞれについてのデータレコードを含み,各データレコードにはプログラム名,最新使用年月日,登録年月日および退避不可フラグの各データ項目が記録されている。
【0038】
「プログラム名」は本番用ライブラリ31に記憶されているプログラムのそれぞれに固有の名称である。上述したJCLステートメント11にはこのプログラム名が記述される。
【0039】
「最新使用年月日」は,プログラムが使用された最新の年月日である。業務処理コンピュータシステム10(そのオペレーティングシステム)によって作成されるシステムログに記載されるプログラムの実行履歴データにしたがってこの最新使用年月日は更新される。
【0040】
「登録年月日」は本番用ライブラリ31にプログラムを記憶(登録)したときの年月日である。オペレータ(ライブラリアン)によって本番用ライブラリ31にプログラムが登録されたときに業務処理コンピュータシステム10(そのオペレーティングシステム)によって登録年月日を自動的に記録してもよい。
【0041】
「退避不可フラグ」は,次に説明する退避処理の対象としないプログラムであることを表すフラグである。退避不可フラグが立てられたプログラムは,後述する退避処理の対象から外される。
【0042】
図4から
図6は退避処理プログラムによって制御されるプログラム管理コンピュータシステム20の動作の流れを示すフローチャートである。
【0043】
退避処理プログラムは,日次処理によって,たとえば所定時刻に毎日実行される。はじめに1日分の使用実績にしたがって,上述したプログラム使用状況管理テーブル21Aの最新使用年月日が更新される(ステップ41)。上述したように,業務処理コンピュータシステム10(そのオペレーティングシステム)は業務処理コンピュータシステム10によって実行されたプログラムの実行履歴データを含むシステムログを作成する。このログに基づいて最新使用年月日は更新される。
【0044】
カウンタiが初期化される(ステップ42)。プログラム使用状況管理テーブル21Aにデータ登録されているすべてのプログラム(すなわち本番用ライブラリ31に記憶されているすべてのプログラム)のそれぞれについて,プログラム使用状況管理テーブル21Aのデータを用いて以下の処理が行われる(ステップ43でNO)(プログラム使用状況管理テーブル21Aにおいて管理されているプログラムの数をここでは「N」とする)。
【0045】
過去1年間に使用されたプログラムであるかどうかが判断される(ステップ44)。この判断に最新使用年月日が用いられる。プログラム管理コンピュータシステム20のマシンタイム(すなわち現在の年月日)から最新使用年月日までの期間が1年以内であるかどうかが判断される。
【0046】
1年以内に使用されている場合には,カウンタiがインクリメントされて次のプログラムに対する処理に進む(ステップ44でNO,ステップ48)。すなわち退避処理はスキップされる。
【0047】
最新使用年月日から1年を経過している場合(ステップ44でYES ),次に登録日から3日経過しているかどうかが判断される(ステップ45)。この判断に登録年月日が用いられる。これは本番用ライブラリ31に新規に記憶されかつ未だ使用されていないプログラムが,使用実績がないために記憶されてすぐに退避処理されてしまうのを防止するためである。なお,プログラム開発では一般に実際に使用されるときの直前まで開発作業が行われるから,プログラムが本番用ライブラリ31に新規に記憶される場合,そのプログラムは使用の直前に本番用ライブラリ31に記憶される。
【0048】
登録日から数日,ここでは3日が経過していない場合,すなわち新規に本番用ライブラリ31に記憶されたプログラムであることが判断されると,カウンタiがインクリメントされて次のプログラムに対する処理に進む(ステップ45でNO,ステップ48)。すなわち退避処理はスキップされる。
【0049】
登録日から3日を経過している場合(ステップ45でYES ),次に退避不可フラグの有無が判断される(ステップ46)。プログラム使用状況管理テーブル21Aにおいて退避不可フラグが立てられている場合(ステップ46でNO),そのプログラムは退避処理から強制的に外される。たとえば4年に一度のみ実行されるうるう年に関するプログラムに退避不可フラグが立てられる。また,後述する復旧処理によって退避ライブラリ32から緊急ライブラリ33に復旧されたプログラムについても,そのプログラムを本番用ライブラリ31に再登録するときに退避不可フラグが立てられる。いずれにしても退避不可フラグが立てられている場合には,カウンタiがインクリメントされて次のプログラムに対する処理に進む(ステップ48)。すなわち退避処理はスキップされる。
【0050】
過去1年間使用されておらず,登録日から3日経過しており,さらに退避不可フラグが立てられていないプログラムである場合(ステップ44でYES,ステップ45でYES,ステップ46でYES ),そのプログラム(以下,退避対象プログラムという)についてのコピーパラメータおよびデリートパラメータが作成される(ステップ47)。
【0051】
作成されたコピーパラメータにしたがって,退避処理プログラムは,退避対象プログラムを本番用ライブラリ31から読出し,そのコピーを作成する(
図5のステップ51,52)。作成された退避対象プログラムのコピーは退避ライブラリ32に記憶(登録)される(ステップ53)。
【0052】
さらに作成されたデリートパラメータにしたがって,退避処理プログラムは,退避対象プログラムを本番用ライブラリ31から削除する(
図6のステップ61)。さらに退避処理プログラムは,本番用ライブラリ31から削除されかつ退避ライブラリ32に記憶された退避対象プログラムについてのデータレコードを,プログラム使用状況管理テーブル21Aから削除する(ステップ62)。
【0053】
上述の処理がプログラム使用状況管理テーブル21Aに管理されているすべてのプログラム(本番用ライブラリ31に記憶されているすべてのプログラム)について行われる。すべてのプログラムについての処理が終了すると,退避処理プログラムの処理が終了する(ステップ43でYES)。
【0054】
このような処理を経ることで,たとえば「大規模災害時に被災対象地域には請求書を出さない」といったプログラムは,本番用ライブラリ31から削除されかつ退避ライブラリ32に記憶されることになる。
【0055】
本番用ライブラリ31から削除されかつ退避ライブラリ32に記憶されたプログラムについて,そのプログラム名,退避ライブラリ32に記憶された年月日等のデータを格納したテーブルを作成してもよい。
【0056】
ステップ44,45,46の処理の順番は任意である。たとえば,先に登録日から3日を経過していないプログラムおよび退避不可フラグが立てられているプログラムを処理対象から外し,残りのプログラムに対して最新使用年月日から1年を経過しているかどうかを判断してもよい。
【0057】
図7は復旧処理プログラムによって制御されるプログラム管理コンピュータシステム20の動作の流れを示すフローチャートである。
【0058】
上述したように,業務処理コンピュータシステム10は与えられるJCLステートメント11の記述にしたがってジョブに必要なプログラムを緊急ライブラリ33ないし本番用ライブラリ31から読み出して実行する。実行すべきプログラムが緊急ライブラリ33にも本番用ライブラリ31にも記憶されていない場合,業務処理コンピュータシステム10(そのオペレーティングシステム)はそのジョブを一旦終了し,実行することができなかったプログラム名を含むエラーメッセージを出力する。復旧処理プログラムは,業務処理コンピュータシステム10によってこのエラーメッセージが出力された場合に起動される。
【0059】
復旧処理プログラムは,業務処理コンピュータシステム10から出力されたエラーメッセージにしたがって,ジョブ終了の原因となったプログラムを退避ライブラリ32から検索する(ステップ71)。上述したように,プログラム管理コンピュータシステム20は本番用ライブラリ31から退避対象プログラムを削除する場合,そのプログラムのコピーを退避ライブラリ32に記憶する。このため,過去に本番用ライブラリ31に記憶されていたが,その後に本番用ライブラリ31から削除されたプログラムは退避ライブラリ32に記憶されている。エラーメッセージによって特定されるプログラムは退避ライブラリ32に記憶されている可能性が高い。
【0060】
エラーメッセージによって特定されるプログラムが退避ライブラリ32において見つかった場合,復旧処理プログラムは見つかったプログラムをコピーし,それを緊急ライブラリ33に記憶(登録)する(ステップ72)。好ましくは,復旧処理プログラムはコピーを終えたプログラムを退避ライブラリ32から削除する(ステップ73)。
【0061】
緊急ライブラリ33にプログラムがコピーされると,ジョブ終了を生じたJCLステートメント11の再実行指令が,プログラム管理コンピュータシステム20から業務処理コンピュータシステム10に与えられ,業務処理コンピュータシステム10はジョブ終了を生じたJCLステートメント11を再実行する。JCLステートメント11には,上述したように,実行すべきプログラムの格納ライブラリとして緊急ライブラリ33と本番用ライブラリ31の2つのライブラリが緊急ライブラリ33を高い優先順位にして併記されている。このため,JCLステートメント11の再実行時には,退避ライブラリ32から緊急ライブラリ33にコピーされたプログラムが読み込まれることになり,正常にジョブが実行される。
【0062】
復旧処理プログラムによって緊急ライブラリ33に記憶されたプログラムは,業務処理コンピュータシステム10のオペレータ等によって本番用ライブラリ21に再登録され,再登録を終えた後に,緊急ライブラリ33から削除される。また,緊急ライブラリ33から本番用ライブラリ21に再登録されたプログラムについて,プログラム使用状況管理テーブル21Aに退避不可フラグを立てることで,本番用ライブラリ21に再登録されたプログラムをその後本番用ライブラリ21から削除されないようにすることができる。
【0063】
上述した実施例では,プログラム管理コンピュータシステム20を業務処理コンピュータシステム10と別個のコンピュータシステムとして説明したが,プログラム管理コンピュータシステム20の処理を業務処理コンピュータシステム10に実行させることもできる。この場合には,上述したJCLステーメント11に退避処理プログラムの実行命令,復旧処理プログラムの実行命令等が記載され,このJCLステートメント11が業務処理コンピュータシステム10に読み込まれることで,業務処理コンピュータシステム10がプログラム管理コンピュータシステム20として動作する。
【0064】
また上述した実施例では本番用ライブラリ31等に記憶されるプログラムが実行モジュールであることを前提にしているが,ソースコードであってもよい。一般に実行モジュールは,ソースコードをコンパイラによってコンパイルしてオブジェクトコードを作成し,複数のオブジェクトコードをリンカによってリンクすることで作成される。本番用ライブラリ31から退避ライブラリ32にコピーされ,かつ本番用ライブラリ31から削除されるプログラム,および退避ライブラリ32から緊急ライブラリ33にコピーされるプログラムは,上述した実行モジュールおよびソースコードの両方であってもよいし,実行モジュールのみまたはソースコードのみであってもよい。
【0065】
図8は他の実施例のプログラム使用状況管理テーブル21Bを示している。
図3に示すプログラム使用状況管理テーブル21Aとは,本番用ライブラリ31に記憶されている多数のプログラムのそれぞれについてのデータレコードに,「改修元プログラム名」および「改修先プログラム名」のデータ項目が追加されている点が異なる。
【0066】
上述したように,プログラムを改修する場合,プログラム全体を書直すことは一般に行われずその一部の書直しにとどめられることが多い。「改修元プログラム名」は,プログラムを改修するにあたってその改修の元となったプログラムの名称である。改修元プログラム名は,改修が行われたプログラム(改修先プログラム)についてのデータレコードに記録される。他方「改修先プログラム名」は改修されたプログラムの名称である。改修先プログラム名は,改修の元となったプログラム(改修元プログラム)についてのデータレコードに記録される。
【0067】
図9を参照して,たとえばプログラム名「P00001」のプログラムの一部を改修して,プログラム名「P00021」と「P00045」の2つのプログラムが新たにつくられて本番用ライブラリ31に登録されたとする。この場合,プログラム名「P00001」のプログラムについてのデータレコードの「改修先プログラム名」のデータ項目に,プログラム名「P00021」と「P00045」が記録される(
図8参照)。他方,プログラム名「P00001」の一部を改修して作られたプログラム名「P00021」のプログラムについてのデータレコードの「改修元プログラム名」には,改修の元になったプログラム名「P00001」が記録される(
図8参照)。プログラム名「P00001」の一部を改修して作られたプログラム名「P00045」のプログラムについてのデータレコードにも,同様にして「改修元プログラム名」に改修の元となったプログラム名「P00001」が記録される(図示略)。
【0068】
プログラム名「P00001」のプログラムの一部を改修して作られたプログラム名「P00021」と「P00045」の2つのプログラムのそれぞれをさらに一部改修することで,プログラム名「P00021」のプログラムからプログラム名「P00123」および「P00234」の2つのプログラムが,プログラム名「P00045」のプログラムからプログラム名「P00345」および「P00456」の2つのプログラムが,それぞれ作られたとする。この場合も,新たに作られたプログラム,たとえばプログラム名「P00123」のプログラムについてのデータレコードの「改修元プログラム名」のには,改修の元となったプログラムのプログラム名,ここでは「P00021」が記録される(
図8参照)。プログラム名「P00021」のデータレコードの「改修先プログラム名」には,プログラム名「P00123」と「P00234」が記録される(
図8参照)。このようにプログラム使用状況管理テーブル21Bには,プログラムの改修が行われた場合に世代データ(親,子,孫の関係を表す関連づけデータ)が記録される。
【0069】
図10は,上述したプログラム使用状況管理テーブル21Bを用いる場合の退避処理プログラムの処理の流れを示すもので,
図4に対応するフローチャートである。
図4のフローチャートとはステップ49の処理が加えられている点が異なる。
【0070】
過去1年間使用されておらず(ステップ44でYES ),登録日から3日経過しており(ステップ45でYES ),退避不可フラグが立てられていないプログラム(退避対象プログラム)である場合(ステップ46でYES ),さらに改修先プログラムについてそれが過去1年間不使用であるかどうかが判断される(ステップ49)。
図9を参照して,たとえばプログラム名「P00001」のプログラムが退避対象プログラムであったとしても,次世代(子)の改修先プログラムまたはさらにその次世代(孫)の改修先プログラムが過去1年間に使用されている場合には,プログラム名「P00001」の改修元プログラムは退避対象から外される(ステップ49でNO)。次世代またはさらにその次世代の改修先プログラムのすべてについて過去1年間使用されていない場合に,その後の退避処理に進む(ステップ49でYES )。なお,改修元プログラムが不使用プログラムであるかどうか判断する期間(ステップ44)と改修先プログラムが不使用プログラムであるかどうかを判断する期間(ステップ49)とは一致させてもよいし異ならせてもよい。
【0071】
この変形例では,改修先プログラムが比較的最近使用されている場合には,改修元プログラムはそれが比較的最近使用されていないとしても本番用ライブラリ31に残される。またプログラム使用状況管理テーブル21Bには改修元プログラム名も記憶されているので,プログラムの改修時に,本番用ライブラリ31に残されている改修元プログラムを辿ることができる。この変形例では,改修元プログラムも改修先プログラムも使用されなくなっているプログラム群(既に使命を終えていると考えられるプログラム群)が本番用ライブラリ31から削除されることになる。業務処理コンピュータシステム10による業務処理に影響を生じさせない可能性が高く,かつ後日参照されることもないと考えられるプログラムを本番用ライブラリ31から削除することができる。