JPH11259299A - 構造化文書作成支援方法、構造化文書作成支援システム、プログラムを格納する記憶媒体、記憶装置及びオブジェクト指向構造化文書作成支援システム - Google Patents

構造化文書作成支援方法、構造化文書作成支援システム、プログラムを格納する記憶媒体、記憶装置及びオブジェクト指向構造化文書作成支援システム

Info

Publication number
JPH11259299A
JPH11259299A JP11008279A JP827999A JPH11259299A JP H11259299 A JPH11259299 A JP H11259299A JP 11008279 A JP11008279 A JP 11008279A JP 827999 A JP827999 A JP 827999A JP H11259299 A JPH11259299 A JP H11259299A
Authority
JP
Japan
Prior art keywords
user
software structure
software
map
class
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.)
Pending
Application number
JP11008279A
Other languages
English (en)
Inventor
Tetsuro Motoyama
モトヤマ テツロウ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Publication of JPH11259299A publication Critical patent/JPH11259299A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 ソフトウエアオブジェクト、データアイテ
ム、ソフトウエアルーチン及びモジュール等を含むソフ
トウエア構造に対する参照を不都合なくリセットする。 【解決手段】 第1のソフトウエア構造112のユーザ
についての参照リスト114を有する第1のソフトウエ
ア構造112を生成し、第2のソフトウエア構造10
0,104,108のために、第1のソフトウエア構造
112に対する参照102,106,110を生成し、
第1のソフトウエア構造112のユーザについての参照
リスト114に第2のソフトウエア構造100,10
4,108についての参照102,106,110を付
加する。これにより、ユーザソフトウエアオブジェクト
である第2のソフトウエア構造100,104,108
は、生成されたオブジェクトが削除された後に、生成さ
れた参照ソフトウエアオブジェクトである第1のソフ構
造112を参照しなくなる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ソフトウエア構造
についての参照を管理する技術に関する。より詳しく
は、ソフトウエア構造が削除された後にソフトウエア構
造についての参照をリセットする技術に関する。あるい
は、ソフトウエア構造が削除された場合に、参照のアッ
プデートを容易にするようソフトウエア構造についての
参照の登録を提供する技術に関する。あるいは、ソフト
ウエアオブジェクトが削除された場合に、参照のアップ
デートを容易にするようソフトウエアオブジェクトにつ
いての参照の登録を提供する技術に関する。さらに、本
発明は、参照ソフトウエアオブジェクトが削除された場
合に、ユーザのアップデートを容易にするようソフトウ
エアオブジェクトのユーザの登録を提供する方法、シス
テム、プログラムを格納したコンピュータ読み取り可能
な記憶媒体、記憶装置及びオブジェクト指向システムに
関する。
【0002】
【従来の技術】オブジェクト指向プログラミング(OO
P)は、プログラムを他のオブジェクトと対話するデー
タ構造及びルーチンの集合を自らの中に含んでいるよう
な別個のオブジェクトの集合であるように扱うプログラ
ム方法である。C++を含む多くの高度な言語ハ、クラ
ス宣言をサポートする。クラスは、典型的には、テンプ
レートや、プログラム実行中には構築ファンクションに
よって生成又は例示され、オブジェクトがもはや必要で
なくなった場合には破壊ファンクションによって破壊さ
れるオブジェクトやオブジェクトのインスタンスの詳細
な説明である。クラスについての対話の参照は、構築者
(コンストラクタ)が呼び出した結果として現在存在す
る全てのオブジェクトを含む。クラスは、データアイテ
ム、構造及びメソッドによって構成されている。データ
アイテムは、先行するプログラミング技術の変数に対応
する。構造は、関連するデータアイテム及び他の構造の
グループ化である。メソッドは、先行するプログラミン
グ技術のサブルーチンに対応する。
【0003】オブジェクト指向フレームワークは、アプ
リケーションの構築を支援する抽象的及び具体的なクラ
スを備えた再利用可能な基本的な設計構造である。
【0004】オブジェクト指向プログラミングの3つの
主要な特徴は、継承、カプセル化及び多様化である。継
承は、プログラマに、広い範囲のオブジェクトのために
望まれる特徴と共に、ゼネラルクラス又はベースクラス
を構築することを許容する。例えば、プログラマが多角
形というクラスを設計する場合を想定する。この場合、
多角形は、頂点で結合される複数の直線によって成り立
つ閉凸形状のような所定の特徴を持つものとする。プロ
グラマがそのような多角形というクラスを設計した場
合、多角形という親クラスの特性を備えた三角形、四角
形、六角型及び八角形のような多角形のサブクラスを構
築することが可能となる。また、例えば、長方形やひし
形のような四角形クラスのサブクラスを持つことも可能
である。つまり、多角形というクラスは、そのサブクラ
スの中で現実のオブジェクトの例示が実行されるような
ベースクラスと考えられる。しかしながら、多角形とい
うクラスは、継承という目的のために、全てのサブクラ
スに共通する所定の特性の固有性を構築する。
【0005】カプセル化及び多様化は、オブジェクト指
向システムの特許等を通じて既に周知である。オブジェ
クト指向プログラミングについての包括的な議論は、Co
ad, P.and Yourden E., Object-oriented Analysis, S
econd Edition, Prentice-Hall, Inc., New Jersey, 19
91Booch, G., Object-Oriented Analysis and Design w
ith Application, SecondEdition, Addison Wesley Lon
gman, California, 1994に開示されている。
【0006】文字列変数や文字列直定数は、特定のアプ
リケーションのキャラクタセットのキャラクタシーケン
スからなっているデータ構造である。ヌルという文字列
やニルという文字列、あるいは、エンプティという文字
列は、何のキャラクタも含まないという文字列である。
【0007】プログラミング言語におけるポインタ及び
参照は、絶対的なコンピュータメモリアドレスに等しい
値を持つデータアイテムである。多くの高度なプログラ
ム言語では、ポインタは、コンピュータメモリに動的に
割り当てられる最初のアドレス可能なユニットのアドレ
スを保持するために用いられる。コンピュータメモリ
は、プログラムのコンパイル、ローディング及び実行
中、データ及び指示の両者を動的に割り当てる。本発明
では、ソフトウエア構造が、データや指示を構築する1
又は複数のソフトウエア要素のアドレス可能な集合であ
る。ソフトウエア構造の独立した要素は、何らかの構造
物に継続的に格納され、あるいは、独立要素にアクセス
するよう用いられる参照と共に、非継続な格納位置に格
納される。
【0008】例えば、複数のポインタが特定のソフトウ
エア構造の参照インスタンスを設定する値を持つとし
て、そのソフトウエア構造が削除されたとすると、ポイ
ンタは、典型的に、現在のアプリケーションにとっても
はや有効なデータや指示を参照しなくなる。アプリケー
ションは、典型的には、モジュール間の通信のためのイ
ンターフェースを備える複数のモジュールを持つように
分割されている。本発明では、モジュールは、特定のタ
スクや特定の抽象的データタイプのものを実行するルー
チンやデータ構造の集合である。もしも、上述したよう
な複数のポインタが異なるモジュールに存在する場合に
は、使用前にそのポインタの有効性を調べることは容易
でない。例えば、もはや有効でないポインタの使用は、
参照ソフトウエア構造の削除の結果、コンピュータシス
テムのクラッシュをしばしば生じさせる。
【0009】関連技術における参照計数技術は、ソフト
ウエア構造の複数のユーザを許容するようにソフトウエ
ア構造が要求された場合であっても、新たに配置された
ソフトウエア構造についての参照を伴う計数値のための
格納位置を必要とする。プログラム実行中のソフトウエ
ア構造の参照は、カウンタ参照を伴う。カウンタは、ソ
フトウエア構造に対して新しいユーザがアクセスを確立
する毎に1つインクリメントされる。また、カウンタ
は、ユーザがそのソフトウエア構造に対するアクセスを
手放す毎に1つデクリメントされる。カウンタ値がゼロ
となった場合、そのソフトウエア構造はユーザを持たず
にもはや不必要となるので、そのソフトウエア構造は削
除される。参照計数構造の関連技術については、Meyer
s, S., More Effective C++, Addison Wesley Longman,
Inc., Massachusetts, 1996に完全な記述がなされてい
る。
【0010】
【発明が解決しようとする課題】参照計数技術は、ソフ
トウエアオブジェクトのユーザ数を追跡するために実用
化されている。参照計数技術を用いる1つの理由は、記
憶領域の余剰を防止することにある。CやC++のよう
なコンピュータプログラミング言語では、キャラクタ文
字列直定数についての参照は、文字列中の最初のキャラ
クタに対するポインタによってなされる。いくつかの場
合においては、同一の直定数キャラクタ文字列について
の複数の参照は、コンピュータメモリ中に格納された同
一値の過度の余剰を導く。
【0011】他の例においては、コンピュータは、キャ
ラクタ文字列の値を構文解析するように認識し、文字列
を生成し、これをコンピュータメモリ中に格納し、そし
て、その文字列のユーザのためにその文字列のアドレス
をその文字列の参照に関連させる。ユーザは、文字列に
対して参照を動的に手放すので、使用済文字列は、その
文字列の全てのユーザがその文字列についての参照を手
放すまでその存在を維持する。参照計数技術は、特定の
ソフトウエア構造のユーザの現在数のカウンタを構築す
る。ソフトウエア構造の新しいユーザがソフトウエア構
造を参照する場合には、カウンタは、そのソフトウエア
構造の総ユーザ数を反映するためにインクリメントされ
る。ソフトウエア構造がアップデートされ、もはや使用
済ソフトウエア構造が参照されなくなれば、そのソフト
ウエア構造の現在のユーザ数を反映するために参照値が
デクリメントされる。参照カウンタがゼロ値となった場
合、使用済ソフトウエア構造は削除され、コンピュータ
メモリは他のユーザのために開放される。もしも、ソフ
トウエア構造の少なくとも1つのユーザが存在する間に
システムが使用済ソフトウエア構造の削除を必要とする
場合には、削除される使用済ソフトウエア構造の削除を
ユーザに伝えるのは容易でない。
【0012】図14及び図15は、参照計数構造の一例
を示すオブジェクトの模式図である。図14は、単一の
使用済オブジェクト40、参照計数オブジェクト38に
おける参照カウント、及び、ユーザ1のオブジェクト3
0とユーザ2のオブジェクト32とユーザ3のオブジェ
クト34とユーザ4のオブジェクト36とからなる4つ
のユーザオブジェクトを伴う参照計数構造を示す。参照
カウント38は、使用済オブジェクト40を現在用いて
いる全4つのユーザオブジェクトを反映する4という値
を含んでいる。各ユーザオブジェクトから参照計数オブ
ジェクト38に向かう矢印は、各ユーザオブジェクトか
ら参照計数オブジェクト38に対してのポインタを意味
している。参照カウンタ38から使用済オブジェクト4
0に向かう矢印は使用済オブジェクト40に対するポイ
ンタを意味している。
【0013】図15は、図14と同一であるが、使用済
オブジェクト40を用いるユーザ1のオブジェクト30
だけを伴う参照計数構造を示す。図14に示すユーザ2
のオブジェクト32、ユーザ3のオブジェクト34及び
ユーザ4のオブジェクト36は、もはや使用済オブジェ
クト40のユーザではなく、したがって、図14に示す
使用済オブジェクト40より3つの参照オブジェクトが
少ないということを反映するために、参照カウンタ38
は1という値を含んでいる。ユーザ1のオブジェクト3
0が使用済オブジェクト40に対するアクセスを手放し
た場合、参照カウンタ38はアップデートされてゼロ値
を含むようにされ、これにより、使用済オブジェクト4
0の現在のユーザがなくなり、使用済オブジェクト40
は削除候補となることが表明される。
【0014】参照計数技術を用い、カウンタ値がゼロの
場合に参照ソフトウエア構造が削除されるならば、参照
ソフトウエア構造のための格納部は、他のユーザのため
にオペレーティングシステムにリターンする。
【0015】もしも、ソフトウエア構造に対するアクセ
スを手放していないユーザが、削除後にソフトウエア構
造へのアクセスの指示を実行する場合には、その結果は
予想されず、アドレスについてのエラーやシステムエラ
ーを導く可能性がある。参照計数技術は、少なくとも1
つのユーザオブジェクトが存在している間は使用済オブ
ジェクトを存在させるということを確実にする。しかし
ながら、システムが使用済オブジェクトを削除すること
を必要とし、安全のために使用済オブジェクトの削除を
反映させるために使用済オブジェクトに対する全てのユ
ーザ参照をリセットする、というような状況が生じてし
まう。このような場合、参照計数技術は、不適当なもの
となる。
【0016】本発明の目的は、ソフトウエアオブジェク
ト、データアイテム、ソフトウエアルーチン及びモジュ
ールを含むソフトウエア構造に対する参照を不都合なく
リセットすることができるようにすることである。
【0017】本発明の別の目的は、参照ソフトウエアオ
ブジェクトが参照ソフトウエアオブジェクトのモジュー
ルの内外において削除された場合に参照ソフトウエアオ
ブジェクトの削除を反映するためのポインタを不都合な
く削除することができるようにすることである。
【0018】
【課題を解決するための手段】上述した本発明の目的
は、ポインタのような参照をリセットし、参照ソフトウ
エア構造が削除された場合にソフトウエアオブジェク
ト、データアイテム、ソフトウエアルーチン又はモジュ
ール等のような参照ソフトウエア構造の削除を反映する
方法、システム、プログラムを格納したコンピュータ読
み取り可能な記憶媒体、記憶装置及びオブジェクト指向
システムによって完遂される。
【0019】本発明の一適用例としては、参照ソフトウ
エアオブジェクトが参照ソフトウエアオブジェクトモジ
ュールの内外で削除された場合、参照ソフトウエアオブ
ジェクトについてのポインタのためのポインタ値をゼロ
又はヌル値にリセットする。本発明は、異なるモジュー
ルにおいて別のソフトウエアオブジェクトを用いるソフ
トウエアオブジェクトと共に、C++、オブジェクト指
向フレームワーク等によって実行される。別のソフトウ
エアオブジェクトによって用いられているソフトウエア
オブジェクトは、モジュール中に生成され、同一又は異
なるモジュールにおいて複数のソフトウエアオブジェク
トによって参照される。生成されたソフトウエアオブジ
ェクトは、ソフトウエアオブジェクトの現在のユーザの
リストとして用いられ、全ての列要素においてゼロ又は
ヌル値を持つように初期設定されたユーザ列を備えるも
のとして定義されている。あるいは、ユーザ列は、ユー
ザについての参照リストにリンクするフォーマット中に
おいて、C++の標準テンプレートライブラリの繰り返
し構造、リスト又はベクトルのフォーマット中において
実行される構成であっても良い。ソフトウエアオブジェ
クトを生成するための参照を構築する別のソフトウエア
オブジェクトは、ソフトウエアオブジェクト属性のため
の生成されたソフトウエアオブジェクトのタイプに対す
る参照ポインタを備える共通のオブジェクト指向クラス
から引き出される。
【0020】ソフトウエアオブジェクトが生成されたソ
フトウエアオブジェクトについての参照を構築した場
合、生成されたソフトウエアオブジェクトのユーザ列中
におけるソフトウエアオブジェクトについての参照を挿
入することによって、オブジェクトは生成されたソフト
ウエアオブジェクトと共に登録される。参照挿入の例と
しては、ユーザ列中のゼロ又はヌル要素の場所にソフト
ウエアオブジェクトについてのポインタを挿入する、と
いうことが考えられる。あるいは、ソフトウエアオブジ
ェクトインスタンスの名前がユーザ列に挿入される構成
であっても良い。ソフトウエアオブジェクトインスタン
スの名前が用いられたとすると、その名前が参照される
場合に、ルックアップが行なわれ、その名前は効果的な
コンピュータメモリアドレスに変換される。ソフトウエ
アオブジェクトの参照ポインタには、生成されたオブジ
ェクトについての参照値が割り当てられる。あるいは、
参照ポインタは、参照ポインタについての生成されたオ
ブジェクトインスタンスの名前を割り当てることによっ
て維持される構成であっても良い。この方法では、生成
されたオブジェクトは、生成されたオブジェクトの現在
の全てのユーザの登録を維持する。
【0021】ユーザソフオブジェクトが削除されたり、
生成されたオブジェクトを参照しないように変更された
場合、生成されたソフトウエアオブジェクトはユーザソ
フトウエアオブジェクトの参照ポインタ値を用いること
によってアクセスされる。ユーザ列が生成されたオブジ
ェクト中でアクセスされると、ユーザソフトウエアオブ
ジェクトについての参照はヌルポインタを意味するゼロ
値に設定される。生成されあるいは参照されたソフトウ
エアオブジェクトが削除された場合には、ユーザ列がア
クセスされる。ユーザ列中のゼロやヌル以外の各参照に
とって、列要素により参照されるユーザソフトウエアオ
ブジェクトは、登録解除されるようにアクセスされる。
これにより、ユーザソフトウエアオブジェクトの参照ポ
インタは、各ユーザソフトウエアオブジェクトのために
ゼロ又はヌルに設定される。この方法では、ユーザソフ
トウエアオブジェクトは、生成されたオブジェクトが削
除された後に、生成された参照ソフトウエアオブジェク
トを参照しなくなる。そして、生成されたソフトウエア
オブジェクトのユーザは、登録解除される。
【0022】ここで、請求項1記載の構造化文書作成支
援方法の発明は、ソフトウエア構造についての参照を管
理するコンピュータにより実行される方法であって、第
1のソフトウエア構造のユーザについての参照リストを
有する第1のソフトウエア構造を生成する過程と、第2
のソフトウエア構造のために、第1のソフトウエア構造
に対する参照を生成する過程と、第1のソフトウエア構
造のユーザについての参照リストに第2のソフトウエア
構造についての参照を付加する過程と、を備える。
【0023】次いで、請求項2記載の構造化文書作成支
援システムの発明は、コンピュータによって実行するソ
フトウエア構造についての参照を管理するシステムであ
って、格納手段と、第1のソフトウエア構造のユーザに
ついての参照リストを有する第1のソフトウエア構造を
生成する手段と、第2のソフトウエア構造のために、第
1のソフトウエア構造に対する参照を生成する手段と、
第1のソフトウエア構造のユーザについての参照リスト
に第2のソフトウエア構造についての参照を付加する手
段と、を備える。
【0024】また、請求項3記載のコンピュータ読み取
り可能な記録媒体の発明は、第1のソフトウエア構造の
ユーザについての参照リストを有する第1のソフトウエ
ア構造を生成する機能と、第2のソフトウエア構造のた
めに、第1のソフトウエア構造に対する参照を生成する
機能と、第1のソフトウエア構造のユーザについての参
照リストに第2のソフトウエア構造についての参照を付
加する機能と、をコンピュータに実行させるためのプロ
グラムを格納する。
【0025】そして、請求項4記載の記憶装置の発明
は、第1のソフトウエア構造のユーザについての参照リ
ストを備えるメモリに格納された第1のソフトウエア構
造と、第1のソフトウエア構造についての参照を備える
メモリに格納された第2のソフトウエア構造と、を備
え、第1のソフトウエア構造のユーザについての参照リ
ストが、第2のソフトウエア構造についての参照を含ん
でいる。
【0026】さらに、請求項5記載のオブジェクト指向
構造化文書作成支援システムの発明は、オブジェクト指
向の枠組みの中で、コンピュータによって実行するため
のソフトウエア構造についての参照を管理するためのオ
ブジェクト指向システムであって、メモリと、メモリ内
に、第1のソフトウエア構造のユーザについての参照リ
ストを有する第1のソフトウエア構造を生成する手段
と、第2のソフトウエア構造のために、第1のソフトウ
エア構造に対する参照を生成する手段と、第1のソフト
ウエア構造のユーザについての参照リストに第2のソフ
トウエア構造についての参照を付加する手段と、を備
え、第1のソフトウエア構造を生成する手段と、参照を
生成する手段と、参照を付加する手段と、第1のソフト
ウエア構造と、第2のソフトウエア構造との少なくとも
一つはソフトウエアオブジェクトを含んでいる。
【0027】
【発明の実施の形態】本発明の実施の一形態を図1ない
し図13に基づいて説明する。
【0028】図1ないし図3はオブジェクトが他のオブ
ジェクトにアクセスする場合の様子を示すオブジェクト
の模式図である。例えば、オブジェクトは、オブジェク
トそれ自体に格納するものとしてアドレスやオブジェク
ト名を持っていないということがある得る。したがっ
て、図1ないし図3において、「アドレス:1000」
は、オブジェクトがコンピュータメモリのアドレス10
00に配置されていることを示すよう意図している。ま
た、図1ないし図3中、「ユーザ1」は、参照オブジェ
クトの第1のユーザ概念に情報を伝達することを意図し
ている。そして、「参照オブジェクト」は参照オブジェ
クト概念に情報を伝達することを意図している。オブジ
ェクトそれ自体のアドレスとオブジェクトそれ自体の名
前とのいずれか一方は、オブジェクトの一部として格納
されるよう要求されている。図1ないし図3に示すよう
に、ユーザオブジェクトは、参照ポインタのための値を
最少限度備えているが、「参照ポインタ」という文字列
は必要としない。また、図1ないし図3に示すように、
参照オブジェクトは、ユーザ列の値を最少限度備えてい
るが、「ユーザ列」という文字列は必要としない。
【0029】この例において、ユーザ1のオブジェクト
100は、コンピュータメモリのアドレス1000に置
かれ、参照オブジェクト112のコンピュータメモリア
ドレスであるコンピュータメモリアドレス3000につ
いての参照を含む参照ポインタ102を備えている。あ
るいは、参照ポインタは参照済オブジェクトのインスタ
ンスの名前として実行され、さらに、ルックアップは、
必要な場合に、その名前を絶対的なコンピュータメモリ
アドレスに変換するように構成されていても良い。ま
た、ユーザ2のオブジェクト104は、コンピュータメ
モリのアドレス2000に置かれ、コンピュータメモリ
アドレス3000についての参照を含む参照ポインタ1
06を備えている。そして、ユーザ3のオブジェクト1
08は、コンピュータメモリのアドレス7000に置か
れ、コンピュータメモリアドレス3000についての参
照を含む参照ポインタ110を備えている。ここで、オ
ブジェクト100,104,108は、第2のソフトウ
エア構造であり、それらのユーザ1,2,3は、第1の
ソフ構造である参照済オブジェクト112のユーザであ
る。したがって、参照ポインタ102,106,110
が参照ということになる。
【0030】前述したように、第1のソフトウエア構造
である参照済オブジェクト112は、ユーザ列114を
備えるコンピュータメモリアドレス3000に配置され
ている。各ユーザオブジェクト100,104,108
から参照オブジェクト112に向かう矢印は、3000
という値を持ち、各ユーザオブジェクトから参照オブジ
ェクトに向かう参照ポインタを意味している。ユーザ列
114は、参照オブジェクト112のユーザについての
参照リストを意味している。あるいは、ユーザについて
のリストは、リンクリスト、繰り返し構造、リストやベ
クトルのようなC++標準テンプレートを用いて実行さ
れる構成であっても良い。図1及び図2中参照済オブジ
ェクト112は、列形態としてのリストを含んでいるよ
うに表現されている。しかしながら、ユーザのリスト
は、格納部中で参照オブジェクト112について非連続
なものとして表現されていても良い。例えば、リストに
対するポインタが参照オブジェクト112の一部である
ようなリンクリストのような形態である。この場合、リ
ストは、コンピュータメモリ中に動的に割り当てられる
ことになる。あるいは、参照リストは、ユーザの名前の
リストであっても良い。
【0031】図1に示す例において、ユーザ列114中
の最初の1000という値は、コンピュータメモリアド
レス1000に位置するユーザ1のオブジェクト100
が、参照オブジェクト112の現在のユーザであること
を意味している。ユーザ列114中の続く2000とい
う値は、コンピュータメモリアドレス2000に位置す
るユーザ2のオブジェクト104が参照済オブジェクト
112の現在のユーザであることを意味している。同様
に、ユーザ列114中の続く7000という値は、コン
ピュータメモリアドレス7000に位置するユーザ3の
オブジェクト108が、参照オブジェクト112の現在
のユーザであることを意味している。そして、ユーザ列
114中の4つ目以降の0という値は、エンプティかヌ
ル参照であることを示している。
【0032】もしも図1中のユーザ2のオブジェクト1
04が破壊されたりアップデートされたりして、もはや
参照オブジェクト112を参照しないものとなった場合
には、図1のユーザ列114は、図1中のユーザ2のオ
ブジェクトについての参照値を含むユーザ列の第2のエ
ントリを設定することによって、0値にアップデートさ
れる。図2は、このような場合の例を示す。コンピュー
タメモリアドレス1000でのユーザ1のオブジェクト
100は、3000という値を持つ参照ポインタ102
を備えている。コンピュータメモリアドレス7000で
のユーザ3のオブジェクト108は、3000という値
を持つ参照ポインタ110を備えている。コンピュータ
メモリアドレス3000に位置する参照オブジェクト1
12は、第2の値として0を伴うユーザ列114を備え
ている。この「0」は、エンプティ又はヌルの参照を意
味する。
【0033】図2中の参照オブジェクト112を削除す
るために、ユーザ列114が調べられ、参照オブジェク
ト112についてエンプティあるいはヌルでない参照で
あるかどうかが判定される。それぞれ1000及び70
00という値を持つ2つの参照は、エンプティあるいは
ヌル参照でないと判定される。1000の参照は、ユー
ザ1のオブジェクト100について参照され、ユーザ1
のオブジェクト100の参照ポインタ102は、使用オ
ブジェクトについて、エンプティ又はヌル参照のための
0値を反映するようにアップデートされる。7000の
参照は、ユーザ3のオブジェクト108についての参照
を意味し、ユーザ3のオブジェクト108の参照ポイン
タ110は、使用オブジェクトについて、エンプティ又
はヌル参照を反映するように0値にアップデートされ
る。これにより参照済オブジェクト112は、全ての登
録ユーザが登録解除されるように削除候補となる。図3
は、参照オブジェクト112の削除後におけるユーザ1
のオブジェクト100及びユーザ3のオブジェクト10
8を示す。
【0034】図4は参照済オブジェクトを生成するため
の処理を示すフローチャートである。この処理によっ
て、第1のソフトウエア構造のユーザについての参照リ
ストを有する第1のソフトウエア構造を生成する過程、
手段及び機能が実行されることになる。この処理では、
現在のユーザ以外を反映するために、参照オブジェクト
のユーザ列又はリストを初期化する。まず、スタート
後、ステップS200において、変数MAXを、システ
ムにおける参照オブジェクトについてのユーザの最大数
値に設定する。MAXは、ユーザ列中に充分なスペース
を割り当てることができるように参照オブジェクトを生
成するために用いられる。もっとも、このステップは参
照済オブジェクトのユーザについての参照を格納するた
めに、例えば、リンクリストを動的に割り当てるような
種類の処理が用いられる場合には不要である。そして、
ステップS204では、参照オブジェクトが生成され
る。この参照オブジェクトは、例えば、図1及び図2に
示すようなユーザ列114に対応するユーザ列のための
スペースが割り当てられたものとなっている。ユーザ列
は参照済オブジェクトの現在のユーザが指示されないよ
うに、全ての列記載が0値に設定されることによって繰
返し初期化される。つまり、ある条件が満たされるまで
ステートメントが繰返し実行される。そのために、ステ
ップS206では、インデックスiが0値に設定され
る。これは、ステップS208から212間での間で、
全ての列が0値に設定されるように列初期化処理のため
の繰返し処理を生じさせるためである。そこで、ステッ
プS208では、初期化ループの繰返し処理として、ユ
ーザ列のi番目の要素を0にする。続くステップS21
0では、インデックスiを1つだけインクリメントす
る。そして、ステップS212では、インデックスiの
値がMAXより大きくなるか等しくなった場合にループ
処理を抜け、制御をシステム処理にリターンさせる。こ
れに対し、インデックスiの値がMAXよりも小さけれ
ば、ステップ208に戻り、ユーザアレイの初期化処理
が継続される。このような初期化処理は参照済オブジェ
クトの構築時間において実行される。
【0035】図5は参照済オブジェクトの新しいユーザ
の登録を実行するための処理を示すフローチャートであ
る。この処理によって、第2のソフトウエア構造のため
に、第1のソフトウエア構造に対する参照を生成する過
程、手段及び機能と、第1のソフトウエア構造のユーザ
についての参照リストに第2のソフトウエア構造につい
ての参照を付加する過程、手段及び機能とが実行される
ことになる。スタート後、ステップS240において、
新しいユーザのアドレスを含むポインタが設定される。
このポインタは参照済オブジェクト中のユーザ列におい
て新しいユーザのアドレスを挿入するために用いられ
る。新しいユーザは、例えば、図1ないし図3中のユー
ザ1のオブジェクト100に対応する。そして、ユーザ
列は、図1及び図2中のユーザ列114に対応する。
【0036】ステップS244では、インデックスiが
0値に設定される。インデックスiは、新しいユーザを
登録するために、ユーザ列が新しいユーザのアドレスを
指定するのに適したゼロ又はヌルであるかどうかを判定
するのに使用される。そして、ステップS246では、
ユーザ列のi番目の要素がゼロ又はヌルであることの判
定がなされる。このステップS246で、ユーザ列のi
番目の要素がゼロ又はヌルであると判定された場合に
は、ステップS248でiが1つだけインクリメントさ
れ、続くステップS250ではiがMAXより小さいか
どうかが判定される。この判定によって、iがMAXよ
りも大きいか等しくなったと判断された場合には、ステ
ップS252でエラー処理され、リターンする。これに
対し、ステップS246で、ユーザ列のi番目の要素が
ゼロに等しいと判定された場合には、処理はステップS
254に進み、そのi番目のユーザ列の要素を、新しく
生成されたユーザのアドレスであるポインタ値を持つよ
うに設定する。これにより、ユーザ登録がなされる。そ
の後、制御はシステム処理にリターンする。
【0037】図6は、使用済オブジェクトのユーザを登
録解除する処理の流れを示すフローチャートである。例
えば、ユーザは、図1ないし図3中のユーザ1のオブジ
ェクト100に対応するものとする。スタート後、ステ
ップS280において、ポインタ変数Ptrをユーザの
アドレス値を持つように設定する。このポインタ値は、
値を削除してユーザ登録を解除するために、使用済オブ
ジェクトのユーザ列を繰り返し検索するのに用いられ
る。ステップS282では、インデックス値iが0に設
定される。インデックスiは、ユーザアレイを通して、
登録解除が要求されるユーザオブジェクトの参照を繰り
返し検索するのに用いられる。そして、ステップS28
4では、使用済オブジェクトにおけるユーザ列のi番目
の要素がユーザアドレス値を持つかどうかを判定する。
ステップS284でYESと判定された場合には、ステ
ップS292で、ユーザ列のi番目の要素をゼロ値に設
定し、これによってユーザの登録が解除される。その
後、制御がリターンする。
【0038】これに対し、ステップS284で、ユーザ
列のi番目の要素がユーザアドレス値と等しくないと判
定された場合には、処理はステップS286に進む。こ
こで、iは1つインクリメントされる。そして、ステッ
プS288に進み、インデックスiの値がMAXよりも
小さいかどうかが判定される。インデックスi値がMA
Xよりも小さくないと判定された場合にはステップS2
90でエラー処理され、リターンする。これにより、登
録解除のユーザ要求は登録されないことになる。これに
対し、インデックス値iがMAXよりも小さいと判定さ
れれば、処理はステップS284に戻り、そのユーザに
ついて参照が繰り返し検索される。
【0039】図7は、参照オブジェクトの削除を実行す
る処理を示すフローチャートである。図7は、条件付き
削除を行なうような処理は示さず、条件無しに削除を実
行する処理を示す。ここでの参照オブジェクトは、例え
ば、図1及び図2中の参照オブジェクト112に対応す
るものとする。スタート後、ステップS300におい
て、インデックスiがゼロ値を持つように設定される。
図4ないし図7の各図において、インデックスiは、各
図におけるループステップを用いるような一般的な繰り
返しを意味する。つまり、ある条件が満たされるまでス
テートメントを繰り返し実行する処理である。そして、
図4ないし図7において、各図のインデックスiは、別
の図のインデックスiに対応するわけではない。図7の
インデックスiは、ユーザアレイを通して、全てのゼロ
又はヌルでない要素を判定するための繰り返し処理を行
なうために用いられる。これによって、全ての登録ユー
ザは、参照オブジェクトが削除される前における参照オ
ブジェクトについての参照を持たないようにアップデー
トされることになる。
【0040】ステップS302では、変数Ptrがユー
ザ列のi番目の要素の値を持つように設定する。ステッ
プS304では、変数Ptrがゼロであるかどうかを判
定する。ステップS304で、変数Ptrがゼロ値を持
たないと判定した場合、Ptr値はユーザオブジェクト
についての参照として用いられ、ステップS306にお
いて、その参照ポインタをゼロ値を持つように設定す
る。そして、ステップS308に処理が移る。ユーザオ
ブジェクトは、例えば、図1ないし図3中のユーザ1の
オブジェクト100に対応する。参照ポインタは、例え
ば、図1ないし図3中の参照ポインタ102に対応す
る。ユーザオブジェクトの参照ポインタをゼロに設定す
るということは、もはや参照オブジェクトにアクセスし
ないようにユーザオブジェクトをアップデートするとい
うことになる。
【0041】ステップS304でPtrがゼロ値である
と判定された場合、処理はステップS308に進み、イ
ンデックスiは1つだけインクリメントされる。そし
て、ステップS310では、インデックスiがMAXよ
りも小さい値を持つかどうかが判定される。ステップS
310で、iがMAXよりも小さくないと判定された場
合、処理はステップS312に進み参照済オブジェクト
が削除される。これに対し、ステップS310で、iが
MAXよりも小さな値を持つと判定された場合、処理は
ステップS302に戻り、ユーザアレイを通じて繰り返
し処理がなされる。これにより、全てのユーザオブジェ
クトのための参照ポインタは、参照ポインタが削除され
る前にゼロ値を持つようにアップデートされる。
【0042】ここで、参照オブジェクトのユーザリスト
をチェックし、ユーザについてのヌル以外の参照がある
かどうかを判定することによって、図1及び図2中の構
造を用いた参照オブジェクトの条件付き削除が可能であ
る。もしもユーザリストがエンプティであるか、あるい
は、全てのエントリがゼロ又はヌルであれば、参照オブ
ジェクトは削除候補となる。
【0043】図8及び図9は、使用済オブジェクトマッ
プ400のためのユーザオブジェクトの登録に関する実
際のオブジェクト指向の実行例である。この実行は、構
造化情報を異なる構造化情報にマッピングするためのオ
ブジェクト指向システムに関係する。図8は、クラスマ
ップ400及びクラスマップPtrユーザ402の構造
を示す。マップ400は、図1及び図2の参照オブジェ
クト112に対応する。クラスマップ400は、マップ
Ptrユーザについての20種類のポインタのAtrM
apPtrUserRegistration404の
列を持つ。AtrMapPtrUserRegistr
ation404の列は、マップ400の登録ユーザオ
ブジェクトとして用いられ、図1及び図2において既に
述べたとおり、ユーザ列114に対応する。メソッドマ
ップ406は、クラスマップ400の構築者(コンスト
ラクタ)であり、使用済オブジェクトマップ400を生
成するために用いられる。マップ400の生成処理に関
するロジックは、図4のフローチャートに参照オブジェ
クトの生成として既に述べたとおりである。メソッド ~
マップ408は、クラスマップ400の破壊メソッドで
あり、使用済又は参照済のオブジェクトマップ400を
削除するために用いられる。マップ400の破壊処理に
関するロジックは、図7のフローチャートに参照オブジ
ェクトの削除として既に述べたとおりである。
【0044】メソッドregisterMapPtrU
ser410は、オブジェクトマップ400のユーザを
登録するためのメソッドである。そのロジックは、図5
のフローチャートに新しいユーザの登録として既に述べ
たとおりである。メソッドunregisterMap
PtrUser412は、オブジェクトマップ400の
ユーザの登録を解除するために用いられる。クラスマッ
プPtrユーザ402は、マップに関するポインタ種類
であるデータアイテムAtpMapPtr430を持
つ。メソッド ~マップPtrユーザ432は、オブジェ
クトマップ400のユーザを破壊するために用いられ
る。メソッドresetMapPtr434は、オブジ
ェクトマップ400の参照をもはや望まなくなった場合
にオブジェクトマップ400についてポインタをリセッ
トするために用いられる。メソッドsetMapPtr
436は、参照オブジェクトマップ400についてポイ
ンタをセットするために用いられる。
【0045】図9は、使用済マップ400及びユーザオ
ブジェクトMapPtrUser402のためのオブジ
ェクト指向クラス構造を示す。マップ400は、図1及
び図2の参照オブジェクト112に対応する。クラスの
インスタンスは、ユーザオブジェクト、例えば、図1な
いし図3に基づいて既に述べたようなユーザ1のオブジ
ェクト100、ユーザ2のオブジェクト104及びユー
ザ3のオブジェクト108のようなユーザオブジェクト
に対応するMapPtrUser402から得られる。
クラスMapService440、クラスMapCr
eateEditService442、及び、クラス
DTDMapEdit448は、クラスMapPtrU
ser402から得られる。しかしながら、マップクラ
ス400は、どのクラスがクラスMapPtrUser
402から得られるのかについての情報を必要としな
い。マップクラス400は、ベースクラス、MapPt
rUser402に関する情報だけを必要とする。
【0046】図10は、マップオブジェクト400のユ
ーザ登録についてのオブジェクトの模式図である。これ
に関するロジックは、図5に基づいて既に述べたとおり
である。マップオブジェクト400は、図8及び図9に
基づいて既に述べたように、マップ400に対応する。
MapPtrUser454又はMapPtrUser
454の得られたクラスオブジェクトは、MapPtr
User402、クラスMapService440、
クラスMapCreateEditService44
2、クラスDTDMapTransformerSer
vice444、クラスMapEdit446、及び、
クラスDTDMapEdit448に対応する。これら
は、図8及び図9に基づいて既に述べたとおりであり、
また、図5のステップS240に基づいて既に述べたN
EWUSERにも対応する。MapPtrUser40
2の得られたクラスの各例示オブジェクトは、図8に示
すようなAtrMapPtr430を持つ。マップオブ
ジェクト400は、図8に示すように、図5のステップ
S246及びステップS254に既に示したようなAR
RAYOFUSTERSに対応するAtrMapPtr
UserRegistration404の列を持つ。
【0047】ソフトウエアオブジェクトであるサムオブ
ジェクト450は、マップオブジェクト400について
のポインタ値を持つポインタを、メソッドsetMap
Ptr452を呼び出してマップオブジェクト400に
ついてのポインタ値であるMapPtr値を送ることに
よって、MapPtrUserの例示オブジェクトに又
はMapPtrUser456の得られたクラスオブジ
ェクトに送る。図10中、ポインタ値MapPtr45
2は、ゼロでなく、しかも、図8に示すようなAtrM
apPtr430に既に存在しているアドレスとも異な
ると推定される。そこで、MapPtrUser456
のMapPtrUser又はクラスオブジェクトは、メ
ソッドregisterMapPtrUser454を
呼び出し、パラメータとして「this」454を送
る。これは、MapPtrUser456のMapPt
rUser又は得られたクラスオブジェクトが参照オブ
ジェクトマップオブジェクト400と共に、自ら登録さ
れることを意味する。C++プログラム言語では、オブ
ジェクトは、自らを参照するのに「this」というキ
ーワードを用いる。もしも、MapPtr452の値が
ゼロであり、かつ、MapPtrUser456のMa
pPtrUser又は得られたクラスオブジェクトのた
めのAtrMapUser430の値がゼロでないなら
ば、MapPtrUser又はMaPtrUser45
2の得られたクラスオブジェクトは、登録解除の必要が
ない。もしもMapPtr452及びAtrMapPt
r430が同一であるならば、何のアクションもとられ
ない。これは、MapPtrUser456のMapP
trUser又は得られたクラスオブジェクトが現在の
マップオブジェクト400と共に既に登録されているか
らである。
【0048】図11は、参照マップオブジェクト400
を削除する処理を示すオブジェクトの模式図である。こ
の削除のロジックは図7のフローチャートに既に述べた
とおりである。マップオブジェクト400は、図8及び
図9に基づいて既に述べたマップ400及び図10に基
づいて既に述べたマップオブジェクト400に対応し、
図である。図7のフローチャートのステップS312中
のREFEREBCEDOBJECTにも対応する。M
apPtrUser456のMapPtrUser又は
得られたクラスオブジェクトは、図10に基づいて既に
述べたMapPtrUser456のMapPtrUs
er又は得られたクラスオブジェクトに対応し、図7の
フローチャートにおけるステップS306のRefPt
rにも対応する。サムオブジェクト450は、メソッド
削除458を呼び出し、マップオブジェクト400を削
除する。これに対応し、マップオブジェクト400は、
図8中のAtrMapPtrUserRegistra
tion404の列に登録されている全てのユーザのた
めに、図8中のメソッドresetMapPtr460
を呼び出す。登録されているユーザのために、MapP
trUser456のMapPtrUser又は得られ
たクラスオブジェクトは、参照されて図8のAtrMa
pPtr430をセットし、参照マップオブジェクト4
00についての現在の参照を反映しないようにする。そ
して、マップオブジェクト400は、システムから削除
される。この方法で参照済オブジェクトの全ての登録ユ
ーザは、その参照をゼロ又はヌルにセットすることがで
き、参照オブジェクトが削除される前に参照マップオブ
ジェクト400について現在の参照を反映しないように
することができる。
【0049】図12は、マップオブジェクト400を参
照するユーザオブジェクトを削除及び登録解除するため
の処理を示すオブジェクトの模式図である。登録解除に
関するロジックは、図6のフローチャートに既に示した
とおりである。マップオブジェクト400は、図8及び
図9に基づいて既に説明したマップ400に対応し、図
10に基づいてスでに説明したマップオブジェクト40
0に対応する。MapPtrUser456のMapP
trUser又は得られたクラスオブジェクトは、図1
0及び図11に基づいて既にに説明したMapPtrU
ser456のMapPtrUser又は得られたクラ
スオブジェクトに対応し、図8及び図9に基づいて既に
説明したMapPtrUser402に対応し、さら
に、図6のフローチャートのステップS280中のUS
ERに対応する。
【0050】サムオブジェクト450は、メソッド削除
462を呼び出し、MapPtrUser456のMa
pPtrUser又は得られたクラスオブジェクトを削
除する。すると、MapPtrUser456のMap
PtrUser又は得られたクラスオブジェクトは、メ
ソッドunregisterMapPtrUser46
4を呼び出し、図12のマップオブジェクト400のた
めに図8のAtrMapPtrUserRegistr
ation404の列からユーザオブジェクトを登録解
除する。呼び出されたメソッドunregisterM
apPtrUser464は、図8に基づいて既に述べ
たメソッドunregisterMapPtrUser
412に対応する。これにより、呼び出したユーザオブ
ジェクトを登録解除するために、図8のAtrMapP
trUserRegistration404の列が検
索される。そして、そのユーザオブジェクトは、システ
ムからの削除候補となる。
【0051】ここで、このような技術の適用は、図8な
いし図12に示すオブジェクトを限定するものではな
い。本実施の形態のシステムにおいて削除されるデータ
を配列するメモリに対するアクセスを制御することは、
しばしば困難さを伴う。上述した技術は、参照メモリエ
リアがシステムから削除されるとするなら、ポインタが
削除を反映するようにアップデートされることを確実に
するために用いることが可能である。したがって、所望
に応じて、ポインタ使用前におけるポインタ値がゼロ、
ヌル、あるいは参照エリアの削除の反映である場合に、
ソフトウエアを構築するために要求されるテストだけが
テストされる。本発明は、ポインタ値が使用済ソフトウ
エアオブジェクトの削除を反映しない場合に、参照ソフ
トウエアオブジェクトが存在し、かつ、使用可能であ
り、したがって、参照ソフトウエアオブジェクトが削除
される場合にゼロやヌル以外のポインタの使用によって
引き起こされるコアダンプやシステムハングアップの防
止が確実になる。
【0052】図13は、本実施の形態の発明を実施する
ためのハードウエア構成を示すブロック図である。コン
ピュータとしてのワークステーション500は、構成要
素として、ディスプレイコントローラ534、CPU5
02(Central Processing Unit)、RAM504(Ran
dom Access Memory)、ROM506(Read Only Memor
y)、キーボード510及びマウス512に接続された
入力コントローラ508、システムバス514、ディス
クコントローラ520に接続されたハードディスク51
6及びフロッピドライブ518、ネットワーク524に
接続された通信コントローラ522ハードディスク53
0及びプリンタ528に接続されたI/Oコントローラ
526(Input/Output)、及び、ディスプレイコントロ
ーラ534に接続されたCRT532(Cathode Ray Tu
be)を備える。システムバス514は、接続線を介して
データ送信可能なように、CPU502、RAM50
4、ROM506、入力コントローラ508、ディスク
コントローラ520、通信コントローラ522、I/O
コントローラ526、及びディスプレイコントローラ5
34を接続している。
【0053】例えば、処理を実行するために生成された
コンピュータコードは、ハードディスク530中に格納
されており、このようなコンピュータコードは、入力フ
ァイルと共に、システムバス514を用いてCPU50
2による実行のためにRAM504にロードされる。あ
るいは、コンピュータコードは、システムバス514を
通じてイ、入力コントローラ508を介してキーボード
510及びマウス512から入力された別のファイル
や、ディスクコントローラ520を介してハードディス
ク516およびフロッピドライブ518から入力される
別のファイルと共にRAM504にロードされても良
い。システムバス514は、ROM506、ネットワー
ク524及び通信コントローラ522を対話させる。
【0054】本発明は、コンピュータ分野の当業者であ
れば明らかなように、従来からの一般的なデジタルコン
ピュータや、明細書中の開示に従いプログラムされたマ
イクロプロセッサを用いて容易に実行することができ
る。また、本明細書中の開示によって、通常の知識を有
するプログラマは適当なソフトウエアコーディングを実
施することができるはずである。さらに、当業者にとっ
て明白であるように、本発明は、特定の集積回路や従来
回路のネットワーク等によっても実施可能である。
【0055】本発明は、本発明の機能を実行するソフト
ウエアを格納したコンピュータ読み取り可能な記憶媒体
を含んでいる。このような記憶媒体は、その種類が限定
されない。例えば、フロッピディスク、光ディスク、C
D−ROM、磁気光ディスク、ROM、RAM、EPR
OM、EEPROM、磁気又は光カード等、電子情報を
格納するのに適したいかなる媒体をも用いることが可能
である。
【0056】なお、本発明は、本実施の形態に記載され
た実施の形態に限定されるわけではなく、各種の変更、
改良等が可能であることは言うまでもない。
【0057】
【発明の効果】本発明は、第1のソフトウエア構造のユ
ーザについての参照リストを有する第1のソフトウエア
構造を生成し、第2のソフトウエア構造のために、第1
のソフトウエア構造に対する参照を生成し、第1のソフ
トウエア構造のユーザについての参照リストに第2のソ
フトウエア構造についての参照を付加するようにしたの
で、ユーザソフトウエアオブジェクトである第2のソフ
トウエア構造は、生成されたオブジェクトが削除された
後に、生成された参照ソフトウエアオブジェクトである
第1のソフ構造を参照しなくなり、ソフトウエア構造に
対する参照を不都合なくリセットすることができる。
【図面の簡単な説明】
【図1】本発明の実施の一態様として、参照オブジェク
トを参照する3登録ユーザの例を示すオブジェクトの模
式図である。
【図2】1ユーザの登録解除後に、1つの参照オブジェ
クトを参照する2登録ユーザの例を示すオブジェクトの
模式図である。
【図3】削除されたオブジェクトの2ユーザの例を示す
オブジェクトの模式図である。
【図4】参照オブジェクトを生成する処理を示すフロー
チャートである。
【図5】参照済オブジェクトの新たなユーザを登録する
処理を示すフローチャートである。
【図6】参照オブジェクトのユーザを登録解除する処理
を示すフローチャートである。
【図7】の削除及びそのユーザの登録解除の処理を示す
フローチャートである。
【図8】参照オブジェクトのためのマップユーストオブ
ジェクトクラス及びユーザオブジェクトのためのMap
PtrUserクラスについてのオブジェクト指向構造
を示すオブジェクトの模式図である。
【図9】使用済オブジェクトクラス及びユーザオブジェ
クトクラスのためのオブジェクト指向クラスの例を示す
オブジェクトの模式図である。
【図10】マップオブジェクトのユーザを登録する場合
の例を示すオブジェクトの模式図である。
【図11】使用済マップオブジェクトを削除する場合の
オブジェクトの模式図である。
【図12】使用済マップオブジェクトのユーザオブジェ
クトを削除し登録解除する場合のオブジェクトの模式図
である。
【図13】本発明のハードウエア構造の一例を示すブロ
ック図である。
【図14】関連技術例として、4ユーザに対する参照計
数の例を示すオブジェクトの模式図である。
【図15】関連技術例として、1ユーザに対する参照計
数の例を示すオブジェクトの模式図である。
【符号の説明】
100,104,108 第2のソフトウエア構
造(オブジェクト) 112 第1のソフトウエア構造(参照済オブジ
ェクト) 114 参照リスト 500 コンピュータ(ワークステーション) 530 格納手段,メモリ(ハードディスク) ユーザ1,ユーザ2,ユーザ3 第1のソフトウ
エア構造のユーザ

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 ソフトウエア構造についての参照を管理
    するコンピュータにより実行される方法であって、 第1のソフトウエア構造のユーザについての参照リスト
    を有する第1のソフトウエア構造を生成する過程と、 第2のソフトウエア構造のために、前記第1のソフトウ
    エア構造に対する参照を生成する過程と、 前記第1のソフトウエア構造のユーザについての前記参
    照リストに前記第2のソフトウエア構造についての前記
    参照を付加する過程と、を備える構造化文書作成支援方
    法。
  2. 【請求項2】 コンピュータによって実行するソフトウ
    エア構造についての参照を管理するシステムであって、 格納手段と、 第1のソフトウエア構造のユーザについての参照リスト
    を有する第1のソフトウエア構造を生成する手段と、 第2のソフトウエア構造のために、前記第1のソフトウ
    エア構造に対する参照を生成する手段と、 前記第1のソフトウエア構造のユーザについての前記参
    照リストに前記第2のソフトウエア構造についての前記
    参照を付加する手段と、を備える構造化文書作成支援シ
    ステム。
  3. 【請求項3】 第1のソフトウエア構造のユーザについ
    ての参照リストを有する第1のソフトウエア構造を生成
    する機能と、 第2のソフトウエア構造のために、前記第1のソフトウ
    エア構造に対する参照を生成する機能と、 前記第1のソフトウエア構造のユーザについての前記参
    照リストに前記第2のソフトウエア構造についての前記
    参照を付加する機能と、をコンピュータに実行させるた
    めのプログラムを格納するコンピュータ読み取り可能な
    記憶媒体。
  4. 【請求項4】 第1のソフトウエア構造のユーザについ
    ての参照リストを備えるメモリに格納された第1のソフ
    トウエア構造と、 前記第1のソフトウエア構造についての参照を備える前
    記メモリに格納された第2のソフトウエア構造と、を備
    え、前記第1のソフトウエア構造のユーザについての参
    照リストが、前記第2のソフトウエア構造についての参
    照を含んでいる記憶装置。
  5. 【請求項5】 オブジェクト指向の枠組みの中で、コン
    ピュータによって実行するためのソフトウエア構造につ
    いての参照を管理するためのオブジェクト指向システム
    であって、 メモリと、 前記メモリ内に、第1のソフトウエア構造のユーザにつ
    いての参照リストを有する第1のソフトウエア構造を生
    成する手段と、 前記メモリ内に、第2のソフトウエア構造のために、前
    記第1のソフトウエア構造に対する参照を生成する手段
    と、 前記メモリ内に、前記第1のソフトウエア構造のユーザ
    についての前記参照リストに前記第2のソフトウエア構
    造についての前記参照を付加する手段と、を備え、前記
    第1のソフトウエア構造を生成する手段と、前記参照を
    生成する手段と、前記参照を付加する手段と、前記第1
    のソフトウエア構造と、前記第2のソフトウエア構造と
    の少なくとも一つはソフトウエアオブジェクトを含んで
    いるオブジェクト指向構造化文書作成支援システム。
JP11008279A 1998-01-14 1999-01-14 構造化文書作成支援方法、構造化文書作成支援システム、プログラムを格納する記憶媒体、記憶装置及びオブジェクト指向構造化文書作成支援システム Pending JPH11259299A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/007,100 US6078931A (en) 1998-01-14 1998-01-14 Method and system for resetting references to deleted software structures
US09/007100 1998-01-14

Publications (1)

Publication Number Publication Date
JPH11259299A true JPH11259299A (ja) 1999-09-24

Family

ID=21724220

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11008279A Pending JPH11259299A (ja) 1998-01-14 1999-01-14 構造化文書作成支援方法、構造化文書作成支援システム、プログラムを格納する記憶媒体、記憶装置及びオブジェクト指向構造化文書作成支援システム

Country Status (2)

Country Link
US (1) US6078931A (ja)
JP (1) JPH11259299A (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3861538B2 (ja) * 1999-12-15 2006-12-20 株式会社日立製作所 プログラム配付管理システム
US6961773B2 (en) 2001-01-19 2005-11-01 Esoft, Inc. System and method for managing application service providers
JP2003022125A (ja) * 2001-05-02 2003-01-24 Ricoh Co Ltd 機器の定期診断装置及び機器の定期診断方法ならびに定期診断される顧客に配置された機器
US7209932B2 (en) * 2002-03-25 2007-04-24 International Business Machines Corporation Method, system, and program for allocating tasks to a plurality of processors
US7730449B2 (en) * 2003-03-19 2010-06-01 Toshiba Corporation Auto reference counting pointer for C++ objects with ability to re-cast and lookup from a free pointer
US8438558B1 (en) 2009-03-27 2013-05-07 Google Inc. System and method of updating programs and data
JP6211626B2 (ja) 2012-12-18 2017-10-11 ボルケーノ コーポレイション 画像化用カテーテルのためのカットとスカイブを有する遷移領域

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5495610A (en) * 1989-11-30 1996-02-27 Seer Technologies, Inc. Software distribution system to build and distribute a software release
US5837986A (en) * 1990-01-05 1998-11-17 Symbol Technologies, Inc. Modification of software files in a microprocessor-controlled device via two-dimensional bar code symbols
US5835911A (en) * 1994-02-08 1998-11-10 Fujitsu Limited Software distribution and maintenance system and method
KR100286008B1 (ko) * 1995-12-30 2001-04-16 윤종용 소프트웨어 프로그램 자동 갱신방법
US5761504A (en) * 1996-02-16 1998-06-02 Motorola, Inc. Method for updating a software code in a communication system
US5752042A (en) * 1996-06-07 1998-05-12 International Business Machines Corporation Server computer for selecting program updates for a client computer based on results of recognizer program(s) furnished to the client computer
US5933647A (en) * 1997-01-24 1999-08-03 Cognet Corporation System and method for software distribution and desktop management in a computer network environment
US5983239A (en) * 1997-10-29 1999-11-09 International Business Machines Corporation Storage management system with file aggregation supporting multiple aggregated file counterparts

Also Published As

Publication number Publication date
US6078931A (en) 2000-06-20

Similar Documents

Publication Publication Date Title
US5732263A (en) Systems, methods and computer program products for generating and validating user defined object classes in an object oriented programming environment after build time
Needham et al. The Cambridge CAP computer and its protection system
US5535389A (en) Business process objects with associated attributes such as version identifier
JP2986051B2 (ja) オブジェクト指向コンピュータ・システム及びオブジェクト実行方法
US5381547A (en) Method for dynamically linking definable program elements of an interactive data processing system
US6115738A (en) Input/output device information management method and apparatus for multi-computers
US9047583B2 (en) Ontology context logic at a key field level
JP4571710B2 (ja) ディスパッチテーブル構造のための方法と装置
US6760905B1 (en) Lazy compilation of template-generated classes in dynamic compilation execution environments
US6633313B1 (en) Event routing mechanism in a computer system
US6578090B1 (en) System and method for interfacing two modules supporting various applications
JPH1040087A (ja) ソフトウェア工学で使われるデータモデルの取り扱い方法
WO1995002219A1 (en) System and method for distributed computation based upon movement, execution and interaction of processes in a network
US6802059B1 (en) Transforming character strings that are contained in a unit of computer program code
CA2122182A1 (en) Method for rapid prototyping of programming problems
US7523461B2 (en) Modification of logic in an application
US20040187100A1 (en) Data store for arbitrary data types with type safe storage and retrieval
US7788652B2 (en) Representing type information in a compiler and programming tools framework
JPH11259299A (ja) 構造化文書作成支援方法、構造化文書作成支援システム、プログラムを格納する記憶媒体、記憶装置及びオブジェクト指向構造化文書作成支援システム
US6446087B1 (en) System for maintaining the integrity of application data
US6484311B2 (en) Coalescing properties, methods and events
JPH09171473A (ja) エラーを管理するための方法およびデータ処理システム
JP3489216B2 (ja) ファイルシステム
US5893122A (en) Hyper-media system including plural application processors which execute navigation processing for hyper-media document
US20020083314A1 (en) Extensible actions and container types in an extensible scene graph system

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050609

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050927

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051128

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20051220