JPH09251378A - クラスライブラリ更新方法および装置 - Google Patents
クラスライブラリ更新方法および装置Info
- Publication number
- JPH09251378A JPH09251378A JP5916996A JP5916996A JPH09251378A JP H09251378 A JPH09251378 A JP H09251378A JP 5916996 A JP5916996 A JP 5916996A JP 5916996 A JP5916996 A JP 5916996A JP H09251378 A JPH09251378 A JP H09251378A
- Authority
- JP
- Japan
- Prior art keywords
- class
- library
- class library
- new
- updating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Landscapes
- Stored Programmes (AREA)
Abstract
(57)【要約】
【課題】 クラスライブラリ更新時にアプリケーション
プログラムの変更を不要にするクラスライブラリ更新方
法および装置を提供する。 【解決手段】 アプリケーションプログラム6の開発時
に、変更内容記録部1により旧クラスライブラリ7に加
えられた変更内容5が記録され、対応クラス検索部2に
よりクラスライブラリ7中のプログラム6が使用する各
クラスに対応のクラスが新クラスライブラリ8中から検
出されると、クラス更新部3により変更内容5に該当の
クラスライブラリ7中のクラスをクラスライブラリ8中
の検出された対応するクラスの派生クラスとして定義す
るので、プログラム6側でプログラミングの変更を要す
ることなくクラスライブラリのバージョンアップが可能
となる。
プログラムの変更を不要にするクラスライブラリ更新方
法および装置を提供する。 【解決手段】 アプリケーションプログラム6の開発時
に、変更内容記録部1により旧クラスライブラリ7に加
えられた変更内容5が記録され、対応クラス検索部2に
よりクラスライブラリ7中のプログラム6が使用する各
クラスに対応のクラスが新クラスライブラリ8中から検
出されると、クラス更新部3により変更内容5に該当の
クラスライブラリ7中のクラスをクラスライブラリ8中
の検出された対応するクラスの派生クラスとして定義す
るので、プログラム6側でプログラミングの変更を要す
ることなくクラスライブラリのバージョンアップが可能
となる。
Description
【0001】
【発明の属する技術分野】この発明はオブジェクト指向
プログラミングにおけるアプリケーションプログラムの
開発に伴うクラスライブラリの更新方法およびそのため
の装置に関する。
プログラミングにおけるアプリケーションプログラムの
開発に伴うクラスライブラリの更新方法およびそのため
の装置に関する。
【0002】
【従来の技術】まずここで、本明細書中で用いられる用
語について予め説明する。オブジェクトはデータと手続
が組となって定義され、クラスはオブジェクトの集合で
あり、クラスはデータと手続の集合からなるモジュール
であり、データと手続は対応するクラスの属性である。
語について予め説明する。オブジェクトはデータと手続
が組となって定義され、クラスはオブジェクトの集合で
あり、クラスはデータと手続の集合からなるモジュール
であり、データと手続は対応するクラスの属性である。
【0003】また、クラス(第1クラスと呼ぶ)に対し
てその属性をすべて有したクラス(第2クラスと呼ぶ)
が定義されるとき、第1クラスは基底クラスであり第2
クラスは基底クラスから派生した派生クラスである。派
生クラスは基底クラスの属性をすべて引き継ぐ。これを
継承という。
てその属性をすべて有したクラス(第2クラスと呼ぶ)
が定義されるとき、第1クラスは基底クラスであり第2
クラスは基底クラスから派生した派生クラスである。派
生クラスは基底クラスの属性をすべて引き継ぐ。これを
継承という。
【0004】またクラスの集合はクラスライブラリであ
る。クラスの更新とはライブラリ中のクラスの内容を更
新することであり、クラスライブラリの更新(バージョ
ンアップ)とはアプリケーションプログラム側が使用す
るクラスライブラリを切換えることである。
る。クラスの更新とはライブラリ中のクラスの内容を更
新することであり、クラスライブラリの更新(バージョ
ンアップ)とはアプリケーションプログラム側が使用す
るクラスライブラリを切換えることである。
【0005】従来より、コンピュータプログラムを開発
する手法として、プログラムの部品化と再利用を実現
し、開発に要するコストと期間を削減するオブジェクト
指向プログラミングの技術がある。オブジェクト指向プ
ログラミングでは、データと手続が組となったオブジェ
クトに基づいてプログラムが構築される。通常、頻繁に
使用されるようなデータと手続の組からなる機能をまと
めてクラスとして定義したクラスライブラリと呼ばれる
ものが使用される。この考えを押し進めて、アプリケー
ションプログラムの分野に特定されたクラスライブラリ
を作成し、特定アプリケーションの構築に関して著しく
開発効率を高めようというフレームワークという技術も
存在する。
する手法として、プログラムの部品化と再利用を実現
し、開発に要するコストと期間を削減するオブジェクト
指向プログラミングの技術がある。オブジェクト指向プ
ログラミングでは、データと手続が組となったオブジェ
クトに基づいてプログラムが構築される。通常、頻繁に
使用されるようなデータと手続の組からなる機能をまと
めてクラスとして定義したクラスライブラリと呼ばれる
ものが使用される。この考えを押し進めて、アプリケー
ションプログラムの分野に特定されたクラスライブラリ
を作成し、特定アプリケーションの構築に関して著しく
開発効率を高めようというフレームワークという技術も
存在する。
【0006】文献“Designing Reusable Classes”Ralp
h E. Johnson and Brian Foote, University of Illino
is, Journal of Object-Oriented Programming June/Ju
ly 1988, PP.22-35 では、フレームワークで使用される
クラスライブラリについて述べられている。
h E. Johnson and Brian Foote, University of Illino
is, Journal of Object-Oriented Programming June/Ju
ly 1988, PP.22-35 では、フレームワークで使用される
クラスライブラリについて述べられている。
【0007】クラスライブラリを用いたプログラム開発
に関して、アプリケーションプログラムの開発を容易に
するための技術は特開平7−110766号公報で述べ
られている。
に関して、アプリケーションプログラムの開発を容易に
するための技術は特開平7−110766号公報で述べ
られている。
【0008】
【発明が解決しようとする課題】前述の文献“Designin
g Reusable Classes”で述べられているように、アプリ
ケーションプログラムの仕様によってはフレームワーク
が提供するクラスライブラリをそのまま使用することが
できず、時にはクラスライブラリに変更を加えて使用す
る必要がある。この変更のために、通常はオブジェクト
指向プログラミング技術の継承という機能によって、あ
るクラスのデータおよび手続をすべて備えた新たなクラ
スを定義して、そのクラス(派生クラス)で独自に必要
とする機能(データおよび手続)をも定義する。また
は、クラスライブラリ内の既存のクラスを直接変更して
必要機能(データおよび手続)を実現することも考えら
れる。
g Reusable Classes”で述べられているように、アプリ
ケーションプログラムの仕様によってはフレームワーク
が提供するクラスライブラリをそのまま使用することが
できず、時にはクラスライブラリに変更を加えて使用す
る必要がある。この変更のために、通常はオブジェクト
指向プログラミング技術の継承という機能によって、あ
るクラスのデータおよび手続をすべて備えた新たなクラ
スを定義して、そのクラス(派生クラス)で独自に必要
とする機能(データおよび手続)をも定義する。また
は、クラスライブラリ内の既存のクラスを直接変更して
必要機能(データおよび手続)を実現することも考えら
れる。
【0009】しかしながら、いずれの変更の方法にあっ
ても、基本とするクラスライブラリがバージョンアップ
などで新しいものになった場合は、クラスライブラリの
変更を再度実施したり、アプリケーションプログラミン
グ側に変更を加える必要が発生する。たとえば、バージ
ョンアップ前に使用されていたクラスライブラリをカス
タマイズのために変更している場合、新しいクラスライ
ブラリにも同様な変更を施す必要がある。また、クラス
ライブラリ中のクラスが変更を受けている場合にはアプ
リケーションプログラム側でそのクラスを使用している
部分を変更する必要が生じる。
ても、基本とするクラスライブラリがバージョンアップ
などで新しいものになった場合は、クラスライブラリの
変更を再度実施したり、アプリケーションプログラミン
グ側に変更を加える必要が発生する。たとえば、バージ
ョンアップ前に使用されていたクラスライブラリをカス
タマイズのために変更している場合、新しいクラスライ
ブラリにも同様な変更を施す必要がある。また、クラス
ライブラリ中のクラスが変更を受けている場合にはアプ
リケーションプログラム側でそのクラスを使用している
部分を変更する必要が生じる。
【0010】それゆえにこの発明の目的はクラスライブ
ラリ更新時にアプリケーションプログラム変更を不要に
するクラスライブラリ更新方法およびそのための装置を
提供することである。
ラリ更新時にアプリケーションプログラム変更を不要に
するクラスライブラリ更新方法およびそのための装置を
提供することである。
【0011】
【課題を解決するための手段】請求項1に記載のクラス
ライブラリ更新方法は、クラスライブラリを使用するア
プリケーションプログラムの開発に伴う既存のクラスラ
イブラリから新規のクラスライブラリへの更新のための
方法であって、アプリケーションプログラムの開発時
に、既存クラスライブラリに加えられた変更内容を記録
する変更内容記録ステップと、既存クラスライブラリ中
のアプリケーションプログラムが使用するクラスのそれ
ぞれに対応するクラスを新規クラスライブラリの中から
検出する対応クラス検出ステップと、記録された変更内
容に該当の既存クラスライブラリ中のクラスを新規クラ
スライブラリ中の検出された対応するクラスの派生クラ
スとして定義する派生クラス定義ステップとを備えて構
成される。
ライブラリ更新方法は、クラスライブラリを使用するア
プリケーションプログラムの開発に伴う既存のクラスラ
イブラリから新規のクラスライブラリへの更新のための
方法であって、アプリケーションプログラムの開発時
に、既存クラスライブラリに加えられた変更内容を記録
する変更内容記録ステップと、既存クラスライブラリ中
のアプリケーションプログラムが使用するクラスのそれ
ぞれに対応するクラスを新規クラスライブラリの中から
検出する対応クラス検出ステップと、記録された変更内
容に該当の既存クラスライブラリ中のクラスを新規クラ
スライブラリ中の検出された対応するクラスの派生クラ
スとして定義する派生クラス定義ステップとを備えて構
成される。
【0012】請求項1に記載のクラスライブラリ更新方
法はこのように構成されるので、アプリケーションプロ
グラムの開発に伴うクラスライブラリのバージョンアッ
プが生じた場合、アプリケーションプログラム側で使用
されている既存クラスライブラリ中のクラスが新規ライ
ブラリ中の該当クラスの派生クラスとして定義されるの
で、アプリケーションプログラム側でプログラミングの
変更を要することなく、使用するクラスライブラリのバ
ージョンアップが可能となる。
法はこのように構成されるので、アプリケーションプロ
グラムの開発に伴うクラスライブラリのバージョンアッ
プが生じた場合、アプリケーションプログラム側で使用
されている既存クラスライブラリ中のクラスが新規ライ
ブラリ中の該当クラスの派生クラスとして定義されるの
で、アプリケーションプログラム側でプログラミングの
変更を要することなく、使用するクラスライブラリのバ
ージョンアップが可能となる。
【0013】請求項2に記載のクラスライブラリ更新方
法は請求項1に記載の方法において、アプリケーション
プログラムが既存クラスライブラリに変更内容に従う派
生クラスを生成して使用している場合に、既存クラスラ
イブラリから新規クラスライブラリへの更新時、対応ク
ラス検出ステップは、既存クラスライブラリ中の生成さ
れた派生クラスの基底クラスに対応するクラスを新規ク
ラスライブラリ中から検出する第1検出ステップを含
み、派生クラス定義ステップは、第1検出ステップによ
り検出された新規クラスライブラリ中の対応クラスに派
生クラスが生成された既存クラスライブラリ中の基底ク
ラスをその派生クラスとして定義する第1定義ステップ
を含んで構成される。
法は請求項1に記載の方法において、アプリケーション
プログラムが既存クラスライブラリに変更内容に従う派
生クラスを生成して使用している場合に、既存クラスラ
イブラリから新規クラスライブラリへの更新時、対応ク
ラス検出ステップは、既存クラスライブラリ中の生成さ
れた派生クラスの基底クラスに対応するクラスを新規ク
ラスライブラリ中から検出する第1検出ステップを含
み、派生クラス定義ステップは、第1検出ステップによ
り検出された新規クラスライブラリ中の対応クラスに派
生クラスが生成された既存クラスライブラリ中の基底ク
ラスをその派生クラスとして定義する第1定義ステップ
を含んで構成される。
【0014】請求項2に記載のクラスライブラリ更新方
法はこのように構成されるので、既存クラスライブラリ
に変更内容に従う派生クラスを生成して使用している場
合にクラスライブラリのバージョンアップがあったとし
ても、アプリケーションプログラム側で使用されていた
既存クラスライブラリ中のクラスは新規クラスライブラ
リ中の対応クラスの派生クラスとして定義されるので、
アプリケーションプログラム側のプログラミングの変更
の必要なしにクラスライブラリの更新を実施することが
できる。
法はこのように構成されるので、既存クラスライブラリ
に変更内容に従う派生クラスを生成して使用している場
合にクラスライブラリのバージョンアップがあったとし
ても、アプリケーションプログラム側で使用されていた
既存クラスライブラリ中のクラスは新規クラスライブラ
リ中の対応クラスの派生クラスとして定義されるので、
アプリケーションプログラム側のプログラミングの変更
の必要なしにクラスライブラリの更新を実施することが
できる。
【0015】請求項3に記載のクラスライブラリ更新方
法は、請求項1または2に記載のクラスライブラリ更新
方法において、既存クラスライブラリ中のクラスと新規
クラスライブラリ中のクラスとで同一の名前が使用され
る場合には、派生クラス定義ステップは新規クラスライ
ブラリ中で派生クラスが定義されたクラスの名前と該派
生クラスの名前とが異なるようにクラス名を変更するス
テップをさらに含んで構成される。
法は、請求項1または2に記載のクラスライブラリ更新
方法において、既存クラスライブラリ中のクラスと新規
クラスライブラリ中のクラスとで同一の名前が使用され
る場合には、派生クラス定義ステップは新規クラスライ
ブラリ中で派生クラスが定義されたクラスの名前と該派
生クラスの名前とが異なるようにクラス名を変更するス
テップをさらに含んで構成される。
【0016】請求項3に記載のクラスライブラリ更新方
法はこのように構成されるので、既存クラスライブラリ
中のクラスと新規クラスライブラリ中のクラスとで同一
の名前が使用されている場合であっても、新規クラスラ
イブラリおよび既存クラスライブラリ中のいずれか一方
のクラスの名前を付け替えて両クラス名を異ならせるこ
とで、クラス名の衝突が回避されて、アプリケーション
プログラム側でこのクラス名の衝突を回避するためのプ
ログラミング変更が不要となる。
法はこのように構成されるので、既存クラスライブラリ
中のクラスと新規クラスライブラリ中のクラスとで同一
の名前が使用されている場合であっても、新規クラスラ
イブラリおよび既存クラスライブラリ中のいずれか一方
のクラスの名前を付け替えて両クラス名を異ならせるこ
とで、クラス名の衝突が回避されて、アプリケーション
プログラム側でこのクラス名の衝突を回避するためのプ
ログラミング変更が不要となる。
【0017】請求項4に記載のクラスライブラリ更新装
置は、クラスライブラリを使用するアプリケーションプ
ログラムの開発に伴う既存のクラスライブラリから新規
のクラスライブラリへの更新のためのクラスライブラリ
更新装置であって、アプリケーションプログラム開発時
に、既存クラスライブラリに加えられた変更内容を記録
する変更内容記録手段と、既存クラスライブラリ中のア
プリケーションプログラムが使用するクラスのそれぞれ
に対応するクラスを新規クラスライブラリの中から検出
する対応クラス検出手段と、記録された変更内容に該当
の既存クラスライブラリ中のクラスを新規クラスライブ
ラリ中の検出された対応するクラスの派生クラスとして
定義する派生クラス定義手段とを備えて構成される。
置は、クラスライブラリを使用するアプリケーションプ
ログラムの開発に伴う既存のクラスライブラリから新規
のクラスライブラリへの更新のためのクラスライブラリ
更新装置であって、アプリケーションプログラム開発時
に、既存クラスライブラリに加えられた変更内容を記録
する変更内容記録手段と、既存クラスライブラリ中のア
プリケーションプログラムが使用するクラスのそれぞれ
に対応するクラスを新規クラスライブラリの中から検出
する対応クラス検出手段と、記録された変更内容に該当
の既存クラスライブラリ中のクラスを新規クラスライブ
ラリ中の検出された対応するクラスの派生クラスとして
定義する派生クラス定義手段とを備えて構成される。
【0018】請求項4に係るクラスライブラリ更新装置
はこのように構成されるので、アプリケーションプログ
ラムの開発に伴いクラスライブラリがバージョンアップ
で新しいものに入れ替えられる場合、アプリケーション
プログラム側で使用される既存クラスライブラリ中のク
ラスが新規クラスライブラリ中の対応クラスの派生クラ
スとして定義されるので、アプリケーションプログラム
側でプログラミング変更を行なうことなく、クラスライ
ブラリのバージョンアップが可能となる。
はこのように構成されるので、アプリケーションプログ
ラムの開発に伴いクラスライブラリがバージョンアップ
で新しいものに入れ替えられる場合、アプリケーション
プログラム側で使用される既存クラスライブラリ中のク
ラスが新規クラスライブラリ中の対応クラスの派生クラ
スとして定義されるので、アプリケーションプログラム
側でプログラミング変更を行なうことなく、クラスライ
ブラリのバージョンアップが可能となる。
【0019】
【発明の実施の形態】以下、この発明の実施の形態につ
いて図面を参照しながら詳細に説明する。
いて図面を参照しながら詳細に説明する。
【0020】図1は、この発明の実施の形態によるクラ
スライブラリ更新装置の構成図である。図2は、この発
明の実施の形態によるクラスライブラリ更新のための手
順を示すフローチャートである。図1においてクラスラ
イブラリ更新装置はCPU、記憶部および入出力部を備
えた図示されないが通常の計算機上に構築され、CPU
の制御の下に実行されるプログラムとして実現される変
更内容記録部1、対応クラス検索部2およびクラス更新
部3を含み、さらに記憶部として変更内容5を記憶する
ための第1メモリ4ならびにアプリケーションプログラ
ム6、プログラムファイルFile1を有する旧クラス
ライブラリ7および新クラスライブラリ8を記憶するた
めの第2メモリ9を含む。
スライブラリ更新装置の構成図である。図2は、この発
明の実施の形態によるクラスライブラリ更新のための手
順を示すフローチャートである。図1においてクラスラ
イブラリ更新装置はCPU、記憶部および入出力部を備
えた図示されないが通常の計算機上に構築され、CPU
の制御の下に実行されるプログラムとして実現される変
更内容記録部1、対応クラス検索部2およびクラス更新
部3を含み、さらに記憶部として変更内容5を記憶する
ための第1メモリ4ならびにアプリケーションプログラ
ム6、プログラムファイルFile1を有する旧クラス
ライブラリ7および新クラスライブラリ8を記憶するた
めの第2メモリ9を含む。
【0021】プログラムファイルFile1はクラスラ
イブラリの一部であり、ファイルFile1には対応の
ライブラリに登録されるクラスで定義されるすべての手
続に対応の機能を実行するためのプログラムコードが予
め定義(記述)されている。
イブラリの一部であり、ファイルFile1には対応の
ライブラリに登録されるクラスで定義されるすべての手
続に対応の機能を実行するためのプログラムコードが予
め定義(記述)されている。
【0022】旧クラスライブラリ7および新クラスライ
ブラリ8のそれぞれは図示されない別のクラスライブラ
リ(基礎クラスライブラリと呼ぶ)から生成されたもの
である。
ブラリ8のそれぞれは図示されない別のクラスライブラ
リ(基礎クラスライブラリと呼ぶ)から生成されたもの
である。
【0023】アプリケーションプログラム6の開発に際
して発生する旧クラスライブラリ7に対する変更要求の
内容が入力部を介してユーザにより旧クラスライブラリ
7に加えられるので、変更内容記録部1はライブラリ7
に加えられた変更内容に基づいて第1メモリ4に変更内
容5を記録する(図2のS1参照)。変更内容5として
は、たとえばデータを変更すること、手続名を変更する
こと、手続を追加すること、手続が定義されたプログラ
ムファイル名を変更することおよび手続が定義されたプ
ログラムファイルの内容を変更することなどがある。
して発生する旧クラスライブラリ7に対する変更要求の
内容が入力部を介してユーザにより旧クラスライブラリ
7に加えられるので、変更内容記録部1はライブラリ7
に加えられた変更内容に基づいて第1メモリ4に変更内
容5を記録する(図2のS1参照)。変更内容5として
は、たとえばデータを変更すること、手続名を変更する
こと、手続を追加すること、手続が定義されたプログラ
ムファイル名を変更することおよび手続が定義されたプ
ログラムファイルの内容を変更することなどがある。
【0024】対応クラス検索部2はアプリケーションプ
ログラム6が使用している旧クラスライブラリ7中のク
ラスが新クラスライブラリ8中のいずれのクラスに対応
するかを検出する(図2のS2参照)。通常、旧クラス
ライブラリ7および新クラスライブラリ8のそれぞれは
基礎クラスライブラリからそのままクラス名を引き継ぐ
ので、新クラスライブラリ8中で旧クラスライブラリ7
のそれと同一クラス名を有するクラスを検出すればよ
い。
ログラム6が使用している旧クラスライブラリ7中のク
ラスが新クラスライブラリ8中のいずれのクラスに対応
するかを検出する(図2のS2参照)。通常、旧クラス
ライブラリ7および新クラスライブラリ8のそれぞれは
基礎クラスライブラリからそのままクラス名を引き継ぐ
ので、新クラスライブラリ8中で旧クラスライブラリ7
のそれと同一クラス名を有するクラスを検出すればよ
い。
【0025】図3は、図1のクラス更新部3によるクラ
スライブラリ更新の第1の手順を説明する図である。ク
ラス更新部3は図3に示されるように対応クラス検索部
2により検出された旧クラスライブラリ7中の各クラス
を新クラスライブラリ8中の対応クラスの派生クラスと
して定義するとともに、変更内容5に該当するクラスの
派生クラスを変更内容5に基づいて更新する(図2のS
3参照)。
スライブラリ更新の第1の手順を説明する図である。ク
ラス更新部3は図3に示されるように対応クラス検索部
2により検出された旧クラスライブラリ7中の各クラス
を新クラスライブラリ8中の対応クラスの派生クラスと
して定義するとともに、変更内容5に該当するクラスの
派生クラスを変更内容5に基づいて更新する(図2のS
3参照)。
【0026】このとき、図3に示されるように、新クラ
スライブラリ8と旧クラスライブラリ7とで該当するク
ラス同士のクラス名(=A)が一致する場合はクラス更
新部3により新クラスライブラリ8の該当クラスのクラ
ス名がA→A′に付け替えられる。これによりアプリケ
ーションプログラム6側の変更を不要としながらプログ
ラミング上のクラス名の衝突という問題が予め回避され
ることになる。
スライブラリ8と旧クラスライブラリ7とで該当するク
ラス同士のクラス名(=A)が一致する場合はクラス更
新部3により新クラスライブラリ8の該当クラスのクラ
ス名がA→A′に付け替えられる。これによりアプリケ
ーションプログラム6側の変更を不要としながらプログ
ラミング上のクラス名の衝突という問題が予め回避され
ることになる。
【0027】図4は、図1のクラス更新部3によるクラ
スライブラリ更新の第2の手順を説明する図である。ク
ラス更新部3によるクラスライブラリ更新の第2の手順
では旧クラスライブラリ7中で変更に該当のクラスに派
生クラスが生成された後、前述の第1の手順と同様にし
てクラスライブラリが更新される。詳細には、旧クラス
ライブラリ7中の変更に該当のクラス名がAであるクラ
スにクラス名がA_1の派生クラスが生成された後、新
クラスライブラリ8中のクラス名がAであるクラスに旧
クラスライブラリ7中のクラス名がA_1の派生クラス
を有するクラス名がAのクラスが派生クラスとして定義
される。そして、新クラスライブラリ8中のクラス名が
A_1であるクラスについて変更内容5に基づいて変更
が加えられ、上述したクラス名の衝突回避のために新ク
ラスライブラリ8の該当クラスのクラス名がA→A′に
付け替えられる。
スライブラリ更新の第2の手順を説明する図である。ク
ラス更新部3によるクラスライブラリ更新の第2の手順
では旧クラスライブラリ7中で変更に該当のクラスに派
生クラスが生成された後、前述の第1の手順と同様にし
てクラスライブラリが更新される。詳細には、旧クラス
ライブラリ7中の変更に該当のクラス名がAであるクラ
スにクラス名がA_1の派生クラスが生成された後、新
クラスライブラリ8中のクラス名がAであるクラスに旧
クラスライブラリ7中のクラス名がA_1の派生クラス
を有するクラス名がAのクラスが派生クラスとして定義
される。そして、新クラスライブラリ8中のクラス名が
A_1であるクラスについて変更内容5に基づいて変更
が加えられ、上述したクラス名の衝突回避のために新ク
ラスライブラリ8の該当クラスのクラス名がA→A′に
付け替えられる。
【0028】以下に、クラスライブラリ更新の動作の具
体例について説明する。図5は、クラスライブラリ更新
前のクラスの定義を変更することによるアプリケーショ
ンプログラム側の手続を示す図である。図においてアプ
リケーションプログラム6は旧クラスライブラリ7中の
クラス名がAであるクラスAの定義に変更を加えて、手
続として機能Proc1を追加使用する。このアプリケ
ーションプログラム6中でクラスAのオブジェクト(オ
ブジェクトAとする)から機能Proc1で定義された
内容をプログラム実行時に呼出すことができるように、
ユーザは入力部を介して旧クラスライブラリ7中のクラ
スAの定義内容に手続として機能Proc1を追加す
る。なお、機能Proc1はプログラムファイルFil
e1で予め定義され、アプリケーションプログラム6の
実行時に参照される。この機能Proc1の追加による
クラスAの定義の変更内容は、変更内容記録部1により
メモリ4に変更内容5として記録される(図2のS1参
照)。図5の変更内容5はこの場合、「クラスAは定義
内容が変更され、その変更内容はプログラムファイルF
ile1中の機能Proc1を手続として追加する」と
いうことを示す。
体例について説明する。図5は、クラスライブラリ更新
前のクラスの定義を変更することによるアプリケーショ
ンプログラム側の手続を示す図である。図においてアプ
リケーションプログラム6は旧クラスライブラリ7中の
クラス名がAであるクラスAの定義に変更を加えて、手
続として機能Proc1を追加使用する。このアプリケ
ーションプログラム6中でクラスAのオブジェクト(オ
ブジェクトAとする)から機能Proc1で定義された
内容をプログラム実行時に呼出すことができるように、
ユーザは入力部を介して旧クラスライブラリ7中のクラ
スAの定義内容に手続として機能Proc1を追加す
る。なお、機能Proc1はプログラムファイルFil
e1で予め定義され、アプリケーションプログラム6の
実行時に参照される。この機能Proc1の追加による
クラスAの定義の変更内容は、変更内容記録部1により
メモリ4に変更内容5として記録される(図2のS1参
照)。図5の変更内容5はこの場合、「クラスAは定義
内容が変更され、その変更内容はプログラムファイルF
ile1中の機能Proc1を手続として追加する」と
いうことを示す。
【0029】アプリケーションプログラム6を動作させ
るために、クラスライブラリを新クラスライブラリ8に
更新する場合には、新クラスライブラリ8中で定義され
たクラスAについても前述と同様に変更を加える必要が
ある。図6は、図5のアプリケーションプログラムに関
して更新されたクラスライブラリを示す図である。この
場合のクラスライブラリの更新は以下の手順で実施され
る。
るために、クラスライブラリを新クラスライブラリ8に
更新する場合には、新クラスライブラリ8中で定義され
たクラスAについても前述と同様に変更を加える必要が
ある。図6は、図5のアプリケーションプログラムに関
して更新されたクラスライブラリを示す図である。この
場合のクラスライブラリの更新は以下の手順で実施され
る。
【0030】まず、対応クラス検索部2により変更され
た旧クラスライブラリ7のクラスAに対応するクラス
(クラス名がAであるクラス)が新クラスライブラリ8
中から検索される(図2のS2参照)。
た旧クラスライブラリ7のクラスAに対応するクラス
(クラス名がAであるクラス)が新クラスライブラリ8
中から検索される(図2のS2参照)。
【0031】次に、クラス更新部3は検索された新クラ
スライブラリ8中の該当クラスAの名前を変更してクラ
スA′にするとともに、その派生クラスとして旧クラス
ライブラリ7中のクラスAを定義する。この派生クラス
Aの定義内容には変更内容5に基づき機能Proc1が
手続として追加される(図2のS3参照)。このとき、
変更内容5によれば機能Proc1を定義するプログラ
ムファイルの名前はFile1と変更がないので、機能
Proc1を定義するプログラムファイルFile1は
ライブラリ更新後も再利用される。
スライブラリ8中の該当クラスAの名前を変更してクラ
スA′にするとともに、その派生クラスとして旧クラス
ライブラリ7中のクラスAを定義する。この派生クラス
Aの定義内容には変更内容5に基づき機能Proc1が
手続として追加される(図2のS3参照)。このとき、
変更内容5によれば機能Proc1を定義するプログラ
ムファイルの名前はFile1と変更がないので、機能
Proc1を定義するプログラムファイルFile1は
ライブラリ更新後も再利用される。
【0032】上述した一連の手順で更新された図6の新
クラスライブラリ8では、クラスA′は新クラスライブ
ラリ8中のクラスAのクラス名のみがA→A′に変更さ
れたものであり、他の定義内容は図5の旧クラスライブ
ラリ7中のクラスAに相当する。
クラスライブラリ8では、クラスA′は新クラスライブ
ラリ8中のクラスAのクラス名のみがA→A′に変更さ
れたものであり、他の定義内容は図5の旧クラスライブ
ラリ7中のクラスAに相当する。
【0033】図6のクラスAはクラス名、手続名および
手続の呼出しの方法などのアプリケーションプログラム
6とのインタフェースには変更がないので、アプリケー
ションプログラム6側のプログラミングの変更を全く生
じない。前述したように、新クラスライブラリ8に追加
された機能Proc1を定義するプログラムファイルF
ile1は旧クラスライブラリ7で使用されていたもの
がそのまま再利用される。
手続の呼出しの方法などのアプリケーションプログラム
6とのインタフェースには変更がないので、アプリケー
ションプログラム6側のプログラミングの変更を全く生
じない。前述したように、新クラスライブラリ8に追加
された機能Proc1を定義するプログラムファイルF
ile1は旧クラスライブラリ7で使用されていたもの
がそのまま再利用される。
【0034】なお、クラス更新部3は新クラスライブラ
リ8によってクラスAについてそのクラス名AをA′に
変更するに際して、必要ならば、新クラスライブラリ8
中でクラスAを使用する他の部分に関してもそのクラス
名をA→A′に変換する。このことにより、新クラスラ
イブラリ8が有するクラス構造の整合性が保持される。
リ8によってクラスAについてそのクラス名AをA′に
変更するに際して、必要ならば、新クラスライブラリ8
中でクラスAを使用する他の部分に関してもそのクラス
名をA→A′に変換する。このことにより、新クラスラ
イブラリ8が有するクラス構造の整合性が保持される。
【0035】図7は、図6に示された新クラスライブラ
リ8におけるクラス名の変換を説明する図である。図7
においては、新クラスライブラリ8中に存在する図6に
示されたモジュールとは異なる他のモジュールからクラ
スAの呼出しが行なわれる場合が示される。この場合、
クラスAについてはクラス名がA→A′に変換されてい
るので、これら他のモジュールにおいてもクラスAの呼
出しではなくクラスA′の呼出しが行なわれるように呼
出されるクラスAについてA→A′へのクラス名の変換
がなされる。
リ8におけるクラス名の変換を説明する図である。図7
においては、新クラスライブラリ8中に存在する図6に
示されたモジュールとは異なる他のモジュールからクラ
スAの呼出しが行なわれる場合が示される。この場合、
クラスAについてはクラス名がA→A′に変換されてい
るので、これら他のモジュールにおいてもクラスAの呼
出しではなくクラスA′の呼出しが行なわれるように呼
出されるクラスAについてA→A′へのクラス名の変換
がなされる。
【0036】図8は、クラスライブラリ更新前の派生ク
ラスを用いることによるアプリケーションプログラム側
の手続を示す図である。図8では、アプリケーションプ
ログラム6開発におけるクラスAの手続としての機能P
roc1の追加要求に応じて図5に示されたように旧ク
ラスライブラリ7中のクラスに手続として機能Proc
1を直接追加してその定義を変更するのではなく、旧ク
ラスライブラリ7中のクラスAに対して派生クラスA_
1を定義し、派生クラスA_1に手続として機能Pro
c1を追加定義している。図8の変更内容5は「クラス
Aに手続として機能Proc1が追加された派生クラス
A_1を追加する」ことを示している。
ラスを用いることによるアプリケーションプログラム側
の手続を示す図である。図8では、アプリケーションプ
ログラム6開発におけるクラスAの手続としての機能P
roc1の追加要求に応じて図5に示されたように旧ク
ラスライブラリ7中のクラスに手続として機能Proc
1を直接追加してその定義を変更するのではなく、旧ク
ラスライブラリ7中のクラスAに対して派生クラスA_
1を定義し、派生クラスA_1に手続として機能Pro
c1を追加定義している。図8の変更内容5は「クラス
Aに手続として機能Proc1が追加された派生クラス
A_1を追加する」ことを示している。
【0037】図9は、図8のアプリケーションプログラ
ムに関する更新されたクラスライブラリを示す図であ
る。図9の新クラスライブラリ8への更新は前述した図
6に示されたそれと同様の手順で行なわれる。図9で
は、アプリケーションプログラム6から利用されるクラ
スA_1ではなく、クラス更新部3によりその基底クラ
スであるクラスAがクラス対応検索部2により検出され
た新クラスライブラリ8中の対応するクラスAの派生ク
ラスとして定義される。そして、クラス名の衝突を回避
するために新クラスライブラリ8中の既存のクラスAの
クラス名がA→A′に変更される。
ムに関する更新されたクラスライブラリを示す図であ
る。図9の新クラスライブラリ8への更新は前述した図
6に示されたそれと同様の手順で行なわれる。図9で
は、アプリケーションプログラム6から利用されるクラ
スA_1ではなく、クラス更新部3によりその基底クラ
スであるクラスAがクラス対応検索部2により検出され
た新クラスライブラリ8中の対応するクラスAの派生ク
ラスとして定義される。そして、クラス名の衝突を回避
するために新クラスライブラリ8中の既存のクラスAの
クラス名がA→A′に変更される。
【図1】この発明の実施の形態によるクラスライブラリ
更新装置の構成図である。
更新装置の構成図である。
【図2】この発明の実施の形態によるクラスライブラリ
更新のための手順を示すフローチャートである。
更新のための手順を示すフローチャートである。
【図3】図1のクラス更新部によるクラスライブラリ更
新の第1の手順を説明する図である。
新の第1の手順を説明する図である。
【図4】図1のクラス更新部によるクラスライブラリ更
新の第2の手順を説明する図である。
新の第2の手順を説明する図である。
【図5】クラスライブラリ更新前のクラスの定義を変更
することによるアプリケーションプログラム側の手順を
示す図である。
することによるアプリケーションプログラム側の手順を
示す図である。
【図6】図5のアプリケーションプログラムに関して更
新されたクラスライブラリを示す図である。
新されたクラスライブラリを示す図である。
【図7】図6に示された新クラスライブラリにおけるク
ラス名の変換を説明する図である。
ラス名の変換を説明する図である。
【図8】クラスライブラリ更新前の派生クラスを用いる
ことによるアプリケーションプログラム側の手続を示す
図である。
ことによるアプリケーションプログラム側の手続を示す
図である。
【図9】図8のアプリケーションプログラムに関する更
新されたクラスライブラリを示す図である。
新されたクラスライブラリを示す図である。
1 変更内容記録部 2 対応クラス検索部 3 クラス更新部 5 変更内容 6 アプリケーションプログラム 7 旧クラスライブラリ 8 新クラスライブラリ なお、各図中同一符号は同一または相当部分を示す。
Claims (4)
- 【請求項1】 クラスライブラリを使用するアプリケー
ションプログラムの開発に伴う既存のクラスライブラリ
から新規のクラスライブラリへの更新のためのクラスラ
イブラリ更新方法であって、 前記アプリケーションプログラムの開発時に、前記既存
クラスライブラリに加えられた変更内容を記録する変更
内容記録ステップと、 前記既存クラスライブラリ中の前記アプリケーションプ
ログラムが使用するクラスのそれぞれに対応するクラス
を前記新規クラスライブラリの中から検出する対応クラ
ス検出ステップと、 前記記録された変更内容に該当の前記既存クラスライブ
ラリ中のクラスを前記新規クラスライブラリ中の前記検
出された対応するクラスの派生クラスとして定義する派
生クラス定義ステップとを備えた、クラスライブラリ更
新方法。 - 【請求項2】 前記アプリケーションプログラムが前記
既存クラスライブラリに前記変更内容に従う派生クラス
を生成して使用している場合に、前記既存クラスライブ
ラリから前記新規クラスライブラリへの更新時、 前記対応クラス検出ステップは、 前記既存クラスライブラリ中の前記生成された派生クラ
スの基底クラスに対応するクラスを前記新規クラスライ
ブラリ中から検出する第1検出ステップを含み、 前記派生クラス定義ステップは、 前記第1検出ステップにより検出された前記新規クラス
ライブラリ中の対応クラスに前記基底クラスを派生クラ
スとして定義する第1定義ステップを含む、請求項1に
記載のクラスライブラリ更新方法。 - 【請求項3】 前記既存クラスライブラリ中のクラスと
前記新規クラスライブラリ中のクラスとで同一の名前が
使用される場合に前記派生クラス定義ステップは、 前記新規クラスライブラリ中で前記派生クラスが定義さ
れたクラスの名前と該派生クラスの名前とが異なるよう
にクラス名を変更するステップをさらに含む、請求項1
または2に記載のクラスライブラリ更新方法。 - 【請求項4】 クラスライブラリを使用するアプリケー
ションプログラムの開発に伴う既存のクラスライブラリ
から新規のクラスライブラリへの更新のためのクラスラ
イブラリ更新装置であって、 前記アプリケーションプログラムの開発時に、前記既存
クラスライブラリに加えられた変更内容を記録する変更
内容記録手段と、 前記既存クラスライブラリ中のアプリケーションプログ
ラムが使用するクラスのそれぞれに対応するクラスを前
記新規クラスライブラリの中から検出する対応クラス検
出手段と、 前記記録された変更内容に該当の前記既存クラスライブ
ラリ中のクラスを前記新規クラスライブラリ中の前記検
出された対応するクラスの派生クラスとして定義する派
生クラス定義手段とを備えた、クラスライブラリ更新装
置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5916996A JPH09251378A (ja) | 1996-03-15 | 1996-03-15 | クラスライブラリ更新方法および装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5916996A JPH09251378A (ja) | 1996-03-15 | 1996-03-15 | クラスライブラリ更新方法および装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH09251378A true JPH09251378A (ja) | 1997-09-22 |
Family
ID=13105620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5916996A Withdrawn JPH09251378A (ja) | 1996-03-15 | 1996-03-15 | クラスライブラリ更新方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH09251378A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11306004A (ja) * | 1998-04-22 | 1999-11-05 | Nec Corp | プログラムライブラリ管理システム |
JP2009054146A (ja) * | 2007-07-27 | 2009-03-12 | Canon Inc | 情報処理方法、情報処理装置及びプログラム |
JP2009193256A (ja) * | 2008-02-13 | 2009-08-27 | Fujitsu Microelectronics Ltd | ライブラリ自動一括更新装置及びライブラリ自動一括更新方法 |
-
1996
- 1996-03-15 JP JP5916996A patent/JPH09251378A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11306004A (ja) * | 1998-04-22 | 1999-11-05 | Nec Corp | プログラムライブラリ管理システム |
JP2009054146A (ja) * | 2007-07-27 | 2009-03-12 | Canon Inc | 情報処理方法、情報処理装置及びプログラム |
JP2009193256A (ja) * | 2008-02-13 | 2009-08-27 | Fujitsu Microelectronics Ltd | ライブラリ自動一括更新装置及びライブラリ自動一括更新方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7133874B2 (en) | Prototyping model for components of a software program | |
US7484223B2 (en) | System and method for building a run-time image from components of a software program | |
US7117486B2 (en) | System and method for migration of software | |
US7428559B2 (en) | Versioning model for software program development | |
US5361357A (en) | Method and apparatus for optimizing computer file compilation | |
US4853873A (en) | Knowledge information processing system and method thereof | |
US6651240B1 (en) | Object-oriented software development support apparatus and development support method | |
US6526441B2 (en) | Input/output device information management system for multi-computer system | |
US8826224B2 (en) | Apparatus and method for supporting model-driven development | |
US7096420B1 (en) | Method and system for automatically documenting system command file tags and generating skeleton documentation content therefrom | |
US20040003388A1 (en) | Preparation of a software configuration using an XML type programming language | |
US20110302565A1 (en) | Implicit workspace dependencies | |
JPH05197697A (ja) | ソフトウエア・システム構築装置及び方法 | |
JPH1040087A (ja) | ソフトウェア工学で使われるデータモデルの取り扱い方法 | |
US20080127055A1 (en) | Application proxy | |
US7765520B2 (en) | System and method for managing cross project dependencies at development time | |
JP2004158012A (ja) | ソフトウェアアプリケーション管理のためのシステムおよび方法 | |
Favre | Preprocessors from an abstract point of view | |
EP4036716B1 (en) | Method and device for acquiring mirror image file | |
CN112596706A (zh) | 模式化代码生成方法、装置和计算机可读存储介质 | |
JPH09251378A (ja) | クラスライブラリ更新方法および装置 | |
US8190587B1 (en) | In-place image promotion | |
GB2420638A (en) | Method of substituting code fragments in Internal Representation | |
JPH0667871A (ja) | プログラム自動更新方式 | |
JPH0527951A (ja) | プログラム群管理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20030603 |