JPH06348499A - オブジェクト指向プログラミング支援装置及びオブジェクト指向プログラミング支援方法 - Google Patents

オブジェクト指向プログラミング支援装置及びオブジェクト指向プログラミング支援方法

Info

Publication number
JPH06348499A
JPH06348499A JP6076200A JP7620094A JPH06348499A JP H06348499 A JPH06348499 A JP H06348499A JP 6076200 A JP6076200 A JP 6076200A JP 7620094 A JP7620094 A JP 7620094A JP H06348499 A JPH06348499 A JP H06348499A
Authority
JP
Japan
Prior art keywords
class
oriented programming
conversion
program
data
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.)
Granted
Application number
JP6076200A
Other languages
English (en)
Other versions
JP3447365B2 (ja
Inventor
Hiroko Iriuchijima
裕子 入内島
Akihiro Yamashiro
明宏 山城
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP07620094A priority Critical patent/JP3447365B2/ja
Publication of JPH06348499A publication Critical patent/JPH06348499A/ja
Application granted granted Critical
Publication of JP3447365B2 publication Critical patent/JP3447365B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】 クラス間ネットワーク構造の等価変換を行う
オブジェクト指向プログラミング支援装置を提供するこ
と。 【構成】クラスデータ入力部4及び関係データ入力部5
からプログラムデータであるクラスデータ及び関係デー
タを入力する。クラスデータファイル6及び関係データ
ファイル7がプログラムデータを格納する。また、変換
範囲入力部8から等価変換の範囲を、変換態様入力部9
から等価変換の態様を入力する。等価変換部10が前記
範囲及び前記態様に基づいて前記プログラムデータを等
価変換する。表示範囲入力部12からプログラムデータ
の出力範囲を、表示形式入力部13からプログラムデー
タの出力形式を入力する。生成部11が前記プログラム
データのダイヤグラム形式による表示データを生成す
る。表示装置2が前記表示データによって表されるダイ
ヤグラムを表示する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、オブジェクト指向プロ
グラミングを支援するオブジェクト指向プログラミング
支援装置の改良に関するもので、特に、プログラムのク
ラス間ネットワーク構造の等価変換を行うものに係る。
【0002】
【従来の技術】近年、ソフトウェア開発手法の一つとし
て、オブジェクト指向プログラミングが普及している。
ここで、オブジェクト指向プログラミングとは、ソフト
ウェアが処理対象とする現実の事物をソフトウェア上の
実体である「オブジェクト」(「インスタンス」と呼ば
れる場合がある)によって表し、現実の事物に関する情
報やその振る舞いを、それぞれ、前記オブジェクトの内
部データを記述するための特性、状態、及び他のオブジ
ェクトとの関係を表す「属性」や、属性の書き換えや他
の操作関数の呼び出しを行うためのこの属性の処理手順
を表す「操作関数」として定義する手法である。このよ
うなオブジェクト指向プログラミングによれば、現実の
事物の情報構成がソフトウェア構成上に模擬されるの
で、構成の明快な保守性に優れたソフトウェアを実現す
ることができる。
【0003】このようなオブジェクト指向プログラミン
グは、C++のようなオブジェクト指向プログラミング
言語によって行われる。
【0004】一般に、オブジェクト指向プログラミング
を行うためには、プログラムをネットワークのノードを
構成するモジュールごとに開発するオブジェクト指向設
計技法が前提とされる。すなわち、オブジェクト指向プ
ログラミング言語において、プログラムは、そのモジュ
ールである(通常複数の)クラス及びクラス間の関係に
よって構成され、複数のオブジェクト間で、相互に操作
関数を呼び出し合うことによって処理を行なう。そし
て、オブジェクト指向プログラミングでは、このような
各モジュール(クラス)にも現実の事物の情報構成が反
映されるので、各モジュールの内容も客観的に理解しや
すいものとなり、各モジュールの再利用性も向上するこ
ととなる。
【0005】なお、前記オブジェクトは、プログラムの
ソースコードがコンパイルされ、実行モジュールがコン
ピュータ上で実行されたときに初めてコンピュータ上に
実体化するもので、その属性もコンピュータのメモリ領
域上に割り当てられた時点で初めて具体的な値をもつこ
とができる。このため、プログラムの各クラスがオブジ
ェクトやその属性・操作関数のひな型としての役割を有
しており、同一の属性や操作関数をもつ全てのオブジェ
クトは1つのクラスでまとめて定義される。実際のプロ
グラミング作業では、個々のクラスごとの定義、及びク
ラス間の関係をプログラミング言語の文法に基づいて表
現する。
【0006】オブジェクト指向プログラミング言語にお
ける各クラス間の関係は、大別して継承、包含、関連に
分けられる。
【0007】ここで、「継承」とは、あるクラス(子ク
ラス)が、他のクラス(親クラス)で定義される属性や
操作関数を、再定義することなく受け継ぐことができる
関係である。この関係は、クラスにおける所定の記述に
よって表され、プログラム全体のネットワーク構造を定
義する。継承関係の親クラスが持つ第3のクラスとの関
係を子クラスから見ると、子クラス自体と第3のクラス
との関係と等価であると見なせることから、継承関係を
利用して等価の内容を意味する複数の構造を表現するこ
とができる。また、定義の再記述の省略によってプログ
ラムの開発効率・信頼性・コンパクトさを向上させるこ
とができる。一方、親クラスで定義された属性や操作関
数を変更した場合には、子クラスは変更後の属性や操作
関数を受け継ぐことから、変更の影響は親クラスの内部
にとどまらず、子クラスにも及ぶ。
【0008】また、「包含」とは、あるクラス(全体ク
ラス)が他のクラス(部分クラス)を自己の部品として
包含する関係である。この関係も、クラスにおける所定
の記述によって表され、この関係を利用すれば、段階的
プログラム開発やクラスのライブラリ・モジュール的活
用が容易になる。
【0009】さらに、「関連」とは、クラス間に通信関
係があることを表す一般的な関係で、継承でも包含でも
ない。
【0010】そして、各クラスは、これらクラス間関係
で結合されることによってクラス間ネットワーク構造を
構成し、この構造がプログラム全体の構造となる。
【0011】なお、このようなオブジェクト指向プログ
ラミングを支援する装置として、オブジェクト指向プロ
グラミング支援装置が知られている。この装置は、クラ
ス間ネットワーク構造のようなプログラムの各種要素を
ダイヤグラム(図表)化して表示するなど、オブジェク
ト指向プログラミングに必要な各種機能を有する装置で
ある。この装置を利用すれば、ユーザは、オブジェクト
指向プログラミングにおける開発効率や信頼性の向上を
図ることができる。
【0012】
【発明が解決しようとする課題】しかしながら、従来の
オブジェクト指向プログラミング支援装置は、前記のよ
うなクラス間関係の解消又は生成によってクラス間ネッ
トワーク構造及び個々のクラス定義を自動的に変更する
手段を備えていなかった。このため、次のような問題点
が存在していた。
【0013】(1)すなわち、まず、一つのクラスの内
容変更の影響がクラス間関係を通じて他のクラスに波及
する場合、プログラムの一部変更が困難であった。例え
ば、親クラスで定義される属性や操作関数が継承関係を
通じて子クラスでも利用されている場合、当該属性や操
作関数を親クラスで変更すると、この変更が継承関係を
通じて子クラスに波及し、その結果、子クラスの動作内
容が不完全になる可能性がある。このため、プログラム
を一部変更する場合、ユーザが変更の波及範囲を判断し
たり、当該範囲における必要な変更を施すという煩雑な
作業を手作業で行わなければならなかった。
【0014】また、このような変更の波及を回避するた
めには、クラス間関係を事前に解消しておく必要がある
が、クラス間関係の解消のためには、継承や包含される
内容を継承や包含を行う側の各クラスの定義情報を再記
述しなければならず、このような作業を手作業で行うこ
とは煩雑であった。したがって、従来では、プログラム
の一部変更を迅速かつ正確に行うことが困難で、プログ
ラムの開発効率や信頼性を十分向上させることができな
かった。
【0015】(2)また、プログラム開発過程のうち、
各クラスにおける定義範囲やクラス間ネットワーク構造
を明確化していく分析段階では、作業の性質上、クラス
のネットワークの変更自体が頻発する。このような場合
も、上記のようなクラス間ネットワーク構造の変更は手
作業で行わなければならず、迅速な処理が困難であっ
た。
【0016】(3)さらに、クラス間関係を解消するク
ラス間ネットワーク構造の変更を自動的に行うことがで
きない結果、一覧性に優れた簡明なクラス間ネットワー
ク構造を実現することも困難であった。従来では、一旦
各クラスにおいて別個独立に宣言された操作関数やクラ
スを分配するためには、これらの特定作業と操作関数や
クラスの分配を手作業で行わざるを得ず、これを正確か
つ迅速に行うことは困難であった。
【0017】なお、上記のようなクラス間関係の解消に
よるクラス間ネットワーク構造の変更は、変更前後でプ
ログラムの内容が等価となることを前提に行われるの
で、本明細書において「等価変換」という。また、「等
価変換」という場合は、厳密な意味ではクラス関係の解
消又は生成を生じさせないが、クラスによる定義内容の
他のクラスへの移転など、クラス間関係を稀薄化する手
順によるクラス間ネットワーク構造の変換を含むものと
する。
【0018】本発明は、上記のような従来技術の問題点
を解決するために提案されたもので、その目的は、クラ
ス間ネットワーク構造の等価変換を行うオブジェクト指
向プログラミング支援装置を提供することである。ま
た、本発明の他の目的は、未完成の段階にあるプログラ
ムについても等価変換が可能なオブジェクト指向プログ
ラミング支援装置を提供することである。また、本発明
の他の目的は、プログラム内容の理解が容易なプログラ
ムデータの出力を行うオブジェクト指向プログラミング
支援装置を提供することである。
【0019】
【課題を解決するための手段】上記の目的を達するた
め、請求項1のオブジェクト指向プログラミング支援装
置は、クラスを有するプログラムの内容を表すプログラ
ムデータを用いたオブジェクト指向プログラミングを支
援するオブジェクト指向プログラミング支援装置におい
て、前記プログラムのクラス間ネットワーク構造につい
て変換の範囲を入力する変換範囲入力手段と、前記変換
の態様を入力する変換態様入力手段と、前記範囲及び前
記態様に基づいて前記プログラムデータを等価変換する
等価変換手段と、を有することを特徴とする。
【0020】また、請求項2の発明は、請求項1記載の
オブジェクト指向プログラミング支援装置において、前
記プログラムデータとして、前記各クラスごとの内容を
表すクラスデータと、各クラス間関係を表す関係データ
を用いるように構成されたことを特徴とする。
【0021】また、請求項3の発明は、請求項2記載の
オブジェクト指向プログラミング支援装置において、前
記関係データが、クラス間関係が設定されている各クラ
ス間に設定される双方向のリンクを含むことを特徴とす
る。
【0022】また、請求項4の発明は、請求項1記載の
オブジェクト指向プログラミング支援装置において、前
記変換範囲入力手段は、前記変換の範囲の選択を、前記
クラス又はクラス間関係の少なくとも一方を単位に行え
るように構成されたことを特徴とする。
【0023】また、請求項5の発明は、請求項1記載の
オブジェクト指向プログラミング支援装請置において、
前記等価変換手段は、前記等価変換の各態様として、少
なくとも、操作関数の分配、包含関係・関連の解消、継
承関係の解消、を行うように構成されたことを特徴とす
る。
【0024】また、請求項6の発明は、請求項1記載の
オブジェクト指向プログラミング支援装置において、前
記等価変換手段は、前記等価変換の一態様として、各ク
ラスに共通の属性や操作関数を抽出してこれら各クラス
の上位の抽象クラスを生成し、前記各クラスにこれらを
継承させることによって、クラスの統合を行うように構
成されたことを特徴とする。
【0025】また、請求項7の発明は、請求項1記載の
オブジェクト指向プログラミング支援装置において、前
記等価変換手段は、クラス間関係の等価変換を、この関
係が波及すべき他のクラス間関係に波及させるように構
成されたことを特徴とする。
【0026】また、請求項8の発明は、請求項1記載の
オブジェクト指向プログラミング支援装置において、前
記等価変換の具体的内容をユーザが定義するための定義
手段を有することを特徴とする。
【0027】また、請求項9の発明は、請求項1記載の
オブジェクト指向プログラミング支援装置において、前
記プログラムデータを出力するデータ出力手段と、プロ
グラムデータの出力形式を入力するための出力形式入力
手段と、を有することを特徴とする。
【0028】また、請求項10の発明は、請求項9記載
のオブジェクト指向プログラミング支援装置において、
前記出力形式は、少なくともダイヤグラム形式を含むこ
とを特徴とする。
【0029】また、請求項11の発明は、請求項10記
載のオブジェクト指向プログラミング支援装置におい
て、前記データ出力手段は、前記ダイヤグラム形式の出
力において、各クラスを所定の枠で、また、各クラス間
のクラス間関係は、関係の種類に応じて異なった形状で
表すように構成されたことを特徴とする。
【0030】また、請求項12の発明は、請求項11記
載のオブジェクト指向プログラミング支援装置におい
て、前記プログラムデータとして、前記各クラスごとの
内容を表すクラスデータと、各クラス間関係を表す関係
データを用いるように構成され、前記クラスデータ又は
関係データの少なくとも一方が、ダイヤグラム表示にお
ける前記枠又は図形の表示位置を示す位置データを含む
ことを特徴とする。
【0031】また、請求項13の発明は、請求項11記
載のオブジェクト指向プログラミング支援装置におい
て、前記データ出力手段は、マルチウィンドウの表示画
面において、少なくとも一のウィンドウに前記ダイヤグ
ラムを表示し、前記プログラムデータとして、前記各ク
ラスごとの内容を表すクラスデータと、各クラス間関係
を表す関係データを用いるように構成され、ポインティ
ングデバイスにより前記クラスの前記枠に対して所定の
操作が与えられた場合に、当該クラスの前記クラスデー
タを、クラスに対応した新たなウィンドウであるサブウ
ィンドウに表示するように構成されたことを特徴とす
る。
【0032】また、請求項14の発明は、請求項9記載
のオブジェクト指向プログラミング支援装置において、
前記プログラムデータとして、前記各クラスごとの内容
を表すクラスデータと、各クラス間関係を表す関係デー
タを用いるように構成され、前記出力形式は、少なくと
も、クラスデータの表示を含むことを特徴とする。
【0033】また、請求項15の発明は、請求項1記載
のオブジェクト指向プログラミング支援装置において、
前記プログラムデータを出力するデータ出力手段と、プ
ログラムデータの出力範囲を入力するための出力範囲入
力手段と、を有することを特徴とする。
【0034】また、請求項16のオブジェクト指向プロ
グラミング支援装置は、クラスを有するプログラムの内
容を表すプログラムデータを用いたオブジェクト指向プ
ログラミングを支援するオブジェクト指向プログラミン
グ支援装置において、前記プログラムのクラス間ネット
ワーク構造について変換の範囲を入力する変換範囲入力
手段と、前記範囲に基づいて前記プログラムデータを等
価変換する等価変換手段と、を有し、前記等価変換手段
は、クラス間の継承関係における親クラスの属性や操作
関数を子クラス内にコピーし、当該属性や操作関数を親
クラスから削除することによって、操作関数の分配を行
うように構成されたことを特徴とする。
【0035】また、請求項17の発明は、請求項16記
載のオブジェクト指向プログラミング支援装置におい
て、前記変換範囲入力手段は、前記操作関数の分配の対
象を、関数を単位として選択できるように構成されたこ
とを特徴とする。
【0036】また、請求項18の発明は、クラスを有す
るプログラムの内容を表すプログラムデータを用いたオ
ブジェクト指向プログラミングを支援するオブジェクト
指向プログラミング支援装置において、前記プログラム
のクラス間ネットワーク構造について変換の範囲を入力
する変換範囲入力手段と、前記範囲に基づいて前記プロ
グラムデータを等価変換する等価変換手段と、を有し、
前記等価変換手段は、全体クラスである親クラスが包含
する被包含クラスである部分クラスを、各子クラスの部
分クラスとするか、親クラスが関連する他のクラスを各
子クラスと関連させ、そのかわりに、当該部分クラスと
親クラスとの包含関係あるいは関連を削除することによ
って、クラスの分配を行うように構成されたことを特徴
とする。
【0037】また、請求項19の発明は、クラスを有す
るプログラムの内容を表すプログラムデータを用いたオ
ブジェクト指向プログラミングを支援するオブジェクト
指向プログラミング支援装置において、前記プログラム
のクラス間ネットワーク構造について変換の範囲を入力
する変換範囲入力手段と、前記範囲に基づいて前記プロ
グラムデータを等価変換する等価変換手段とを有し、前
記等価変換手段は、クラス間の継承関係における親クラ
スの全ての属性及び操作関数を子クラス内にコピーし、
親クラスと子クラス間の継承関係を削除することによっ
て、継承関係の解消を行うように構成されたことを特徴
とする。
【0038】また、請求項20の発明は、クラスを有す
るプログラムの内容を表すプログラムデータを用いたオ
ブジェクト指向プログラミングを支援するオブジェクト
指向プログラミング支援方法において、前記プログラム
のクラス間ネットワーク構造について変換の範囲を入力
するステップと、前記変換の態様を入力するステップ
と、前記範囲及び前記態様に基づいて前記プログラムデ
ータを等価変換するステップと、を有することを特徴と
する。
【0039】また、請求項21の発明は、クラスを有す
るプログラムの内容を表すプログラムデータを用いたオ
ブジェクト指向プログラミングを支援するオブジェクト
指向プログラミング支援装置において、前記プログラム
のクラス間ネットワーク構造について変換の範囲を入力
する変換範囲入力手段と、前記変換の態様を入力する変
換態様入力手段と、前記範囲及び前記態様に基づいて前
記プログラムデータを等価変換する等価変換手段と、を
有し、入出力が表示画面上で対話的に行われるように、
構成されたことを特徴とする。
【0040】
【作用】上記のような構成を有する本発明は、次のよう
な作用を有する。すなわち、請求項1及び20の発明で
は、等価変換の範囲及び態様を入力すれば、前記範囲及
び前記態様に基づいて、クラスを有するプログラムの内
容を表すプログラムデータの等価変換が行われる。この
等価変換は、すなわち、プログラムデータによって表さ
れるクラス間ネットワーク構造が自動的に等価変換され
ることを意味するので、プログラム開発の効率や信頼性
が向上する。
【0041】また、請求項2の発明では、プログラムの
内容を表すプログラムデータとして、プログラムデータ
そのものではなく、各クラスの内容を表すクラスデータ
や各クラス間関係を表す関係データを用いている。そし
て、クラスデータや関係データの具体性の程度は自由で
ある。したがって、プログラムの設計段階のように、プ
ログラムの具体的内容が未決定の段階においても、決定
済みのクラス間ネットワーク構造に対応するこれらデー
タのみを入力すれば、完成したプログラムと同様に等価
変換を行うことができる。
【0042】また、請求項3の発明では、前記関係デー
タが、クラス間関係が設定されている各クラス間に設定
される双方向のリンクを含むので、クラス間関係に関わ
るどのクラスからでも、このリンクに基づいて、当該関
係に関わる他のクラスを特定することができる。
【0043】また、請求項4の発明では、変換の範囲の
選択を、前記クラスやクラス間関係を単位として行える
ので、目的に応じた適切な変換の範囲を自由に選択する
ことができる。
【0044】また、請求項5の発明では、前記等価変換
の態様として、操作関数の分配、包含関係・関連の解
消、継承関係の解消、を指定できるので、各クラスの独
立性を向上させる処理が容易である。
【0045】また、請求項6の発明では、前記等価変換
として、各クラスに共通の属性や操作関数をまとめて上
位の抽象クラスを生成し、下位クラスがこれらを継承す
るように等価変換を行うことも可能であるから、一覧性
に優れた簡明なプログラムを実現することができる。
【0046】また、請求項7の発明では、前記等価変換
手段が、クラス間関係の等価変換を、この関係に影響さ
れるべきクラス間関係に波及させるので、クラス間関係
同士の間に齟齬が生じることがない。
【0047】また、請求項8の発明では、前記等価変換
の具体的内容は、定義手段によって自由に定義できるの
で、多様な種類の言語によるプログラムに、幅広く対応
することができる。
【0048】また、請求項9の発明では、出力形式入力
手段からプログラムデータの出力形式を入力できるの
で、ユーザは、利用目的に合致した形式のプログラムデ
ータの出力を得ることができる。また、本発明では、前
記出力形式として、ダイヤグラム形式を選択できるの
で、変換前や変換後のプログラムデータの理解が容易に
なる。
【0049】また、請求項10の発明では、出力形式が
少なくともダイヤグラム形式を含むので、プログラムデ
ータの視覚的把握が容易になる。
【0050】また、請求項11の発明では、前記データ
出力手段は、前記ダイヤグラム形式の出力において、各
クラスを所定の枠で、また、各クラス間のクラス間関係
は、関係の種類に応じて異なった形状で表すので、クラ
ス間関係の種類の判別が容易である。
【0051】また、請求項12の発明では、前記プログ
ラムデータとして、前記各クラスごとの内容を表すクラ
スデータと、各クラス間関係を表す関係データを用い、
前記クラスデータ又は関係データの少なくとも一方が、
ダイヤグラム表示における前記枠又は図形の表示位置を
示す位置データを含む。このため、表示の際に各クラス
の配置位置の計算処理が必要なく、また、各クラス間関
係に応じた適切な位置関係による表示が自動的に実現さ
れる。
【0052】また、請求項13の発明では、マルチウィ
ンドウの表示画面において、一のウィンドウに前記ダイ
ヤグラムが表示され、ユーザが、マウスなどのポインテ
ィングデバイスでクラスを表すボックスなどの枠に対し
て所定の操作を行ったときに、当該クラスの前記クラス
データが、クラスに対応した新たなウィンドウであるサ
ブウィンドウに表示される。このため、簡明な操作と理
解しやすい形式で、必要なクラスデータのみを確認する
ことができる。
【0053】また、請求項14の発明では、前記出力形
式として、クラスの属性や操作関数を含むクラスデータ
の表示を選択することもできる。この出力形式をダイヤ
グラム表示と併用すれば、ダイヤグラム表示の状態で所
定の操作を行うことによって、具体的なクラスデータも
出力させることができるので、プログラム内容の理解性
が一層向上する。
【0054】また、請求項15の発明では、出力範囲入
力手段からプログラムデータの出力範囲を入力できるの
で、利用目的に合致した出力を得ることができる。
【0055】また、請求項16の発明では、前記操作関
数の分配は、親クラスの操作関数を子クラス内にコピー
し、当該操作関数を親クラスから削除することによって
自動的に行われるので、これらの操作を手作業で行う必
要がない。
【0056】また、請求項17の発明では、前記操作関
数の分配の対象は、関数を単位として選択できるので、
分配の対象をきめ細かく指定することができる。
【0057】また、請求項18の発明では、前記包含関
係・関連の解消は、全体クラスである親クラスが包含す
る被包含クラス(部分クラス)を各子クラスの部分クラ
スとし、あるいは親クラスと関連で結ばれた他のクラス
を各子クラスと関連で結び、そのかわりに当該部分クラ
スと親クラスとの包含関係あるいは関連を削除すること
によって自動的に行われるので、これらの操作を手作業
で行う必要がない。
【0058】また、請求項19の発明では、前記継承関
係の解消は、親クラスの全ての属性及び操作関数を子ク
ラス内にコピーし、親クラスと子クラス間の継承関係を
削除することによって自動的に行われるので、これらの
操作を手作業で行う必要がない。
【0059】また、請求項21の発明では、入力及び出
力を、表示画面において対話的に行うことができるの
で、円滑な操作によって迅速な処理が実現される。
【0060】
【実施例】次に、本発明の一実施例であるオブジェクト
指向プログラミング支援装置(以下「本装置」という)
について、図面に従って具体的に説明する。なお、本装
置はコンピュータ上に実現されるもので、本装置の各機
能は、プログラムとして格納された所定の手順で前記コ
ンピュータを動作させることによって実現されている。
したがって、以下、本装置の各機能を有する仮想的回路
ブロック(手段)を想定して本装置を説明する。
【0061】なお、前記コンピュータは、一般には、C
PU(中央演算処理装置)と、RAM(随時書込読出型
記憶素子)からなる主記憶装置とを有する。また、前記
コンピュータの規模は自由であり、マイクロコンピュー
タ・パーソナルコンピュータ・スモールコンピュータ・
ワークステーション・メインフレームなど、いかなる規
模のものを用いてもよい。
【0062】また、前記コンピュータのハードウェア
は、典型的には、キーボードやマウスなどの入力装置
と、ハードディスク装置などの外部記憶装置と、CRT
表示装置やプリンタ印字装置などの出力装置と、必要な
入出力制御回路を含む。
【0063】但し、前記コンピュータのハードウェア構
成は自由であり、本発明が実施できる限り、上記の構成
要素の一部を追加・変更・除外してもよい。例えば、本
装置は、複数のコンピュータを接続したコンピュータネ
ットワーク上に実現してもよい。また、CPUの種類は
自由であり、CPUを複数同時に用いたり、単一のCP
Uをタイムシェアリング(時分割)で使用し、複数の処
理を同時平行的に行ってもよい。また、入力装置とし
て、他の装置、例えば、タッチパネル・ライトペン・ト
ラックボールなどのポインティングデバイスや、デジタ
イザ・イメージ読取装置やビデオカメラなどの画像入力
装置・音声識別装置・各種センサを用いてもよい。ま
た、外部記憶装置として、他の装置、例えば、フロッピ
ーディスク装置・RAMカード装置・磁気テープ装置・
光学ディスク装置・光磁気ディスク装置・バブルメモリ
装置・フラッシュメモリなどを用いてもよい。また、出
力装置として、他の装置、例えば、液晶表示装置・プラ
ズマディスプレイ装置・ビデオプロジェクター・LED
表示装置・音響発生回路・音声合成回路を用いてもよ
い。
【0064】また、前記コンピュータにおいて本装置を
実現するためのソフトウェアの構成としては、典型的に
は、本装置の各機能を実現するためのアプリケーション
プログラムが、OS(オペレーティングシステム)上で
実行される態様が考えられる。また、本装置を実現する
ためのプログラムの態様としては、典型的には、高級言
語やアセンブラからコンパイル(翻訳)された機械語が
考えられる。但し、前記コンピュータのソフトウェア構
成も自由であり、本発明が実施できる限り、ソフトウェ
ア構成を変更してもよい。例えば、必ずしもOSを用い
る必要はなく、また、プログラムの表現形式も自由であ
り、BASICのようなインタプリタ(逐次解釈実行
型)言語を用いてもよい。
【0065】また、プログラムの格納態様も自由であ
り、ROM(読出し専用メモリ)に格納しておいてもよ
く、また、ハードディスク装置のような外部記憶装置に
格納しておき、コンピュータの起動時や処理の開始時に
主メモリ上にロード(読み込み)してもよい。また、プ
ログラムを複数の部分に分割して外部記憶装置に格納し
ておき、処理内容に応じて必要なモジュールのみを随時
主メモリ上にロード(読み込み)してもよい。さらに、
プログラムの部分ごとに異なった態様で格納してもよ
い。
【0066】なお、本明細書における各「手段」は、本
装置の各機能に対応する概念的なもので、必ずしも特定
のハードウェアやソフトウェア・ルーチンとの1対1対
応関係を意味しない。例えば、同一のハードウェア要素
が、場合によって異なった手段を構成する。また、一つ
の手段が、わずか1命令によって実現される場合もあれ
ば、多数の命令によって実現される場合もある。
【0067】また、本実施例における各手順の各ステッ
プは、その性質に反しない限り、実行順序を変更し、複
数同時に実行し、また、実行ごとに異なった順序で実行
してもよい。このような順序の変更は、例えば、ユーザ
が実行可能な処理を選択するなどメニュー形式のインタ
ーフェース手法によって実現することができる。
【0068】また、本明細書において「入力」というと
きは、本来の情報の入力のみならず、情報の入力と密接
に関連する他の処理を含む。このような処理は、例え
ば、入力内容を確認のため出力装置へ出力(エコーバッ
ク)することや、入力内容の修正・編集である。また、
本明細書における「出力」は、本来の情報の出力のみな
らず、情報の出力と密接に関連する他の処理を含む。こ
のような処理は、例えば、出力すべき範囲の入力や、画
面スクロールの指示である。なお、対話型インタフェー
スを用いて入力と出力を一体的操作によって実現しても
よく、また、このような一体的操作は、選択・指定・特
定など、何らかの出力情報に基づいた入力処理に適用し
得る。
【0069】また、本明細書におけるデータ(情報)
は、やデータの格納手段は前記コンピュータ上において
いかなる態様で存在してもよい。例えば、データのハー
ドウェア上の所在部分は、主記憶装置・外部記憶装置・
CPUのレジスタやキャッシュメモリなどいかなる部分
でもよい。また、データの保持態様も自由である。例え
ば、データは、ファイル形式で保持・アクセスされるの
みならず、メモリやディスクなどの記憶装置を物理的ア
ドレスで直接アクセスすることによって保持・アクセス
されてもよい。また、データの表現形式も自由である。
例えば、文字列は、文字単位のコードで格納しても単語
単位のコードで格納してもよい。また、データは必要と
される一定時間だけ保持されれば十分で、その後消滅し
てもよく、保持時間の長短は自由である。また、辞書デ
ータのように当面変更されない情報は、ROMに格納し
てもよい。
【0070】また、本明細書において、特定の情報への
言及は確認的で、言及されない情報の存在を否定するも
のではない。すなわち、本発明の動作では、動作に必要
な一般的な情報、例えば、各種ポインタ、カウンタ、フ
ラグ、パラメータ、バッファなどが適宜用いられる。
【0071】本装置の各部分が処理に要する情報は、特
に記載がない場合、当該情報を保持している他の部分か
ら獲得される。このような情報の獲得は、例えば、当該
情報を格納している変数やメモリをアクセスすることに
よって実現することができる。なお、情報の消去・抹消
は、当該情報の内容自体を必ずしも記憶領域から現実に
削除せず、消去を表すフラグを設定するなど、情報の修
飾の変更によって行うことができる。
【0072】また、本装置はコンピュータ上に実現され
ているが、本装置の機能の全部又は一部は専用の電子回
路上に実現してもよい。
【0073】(1)実施例の構成 まず、図1は、本装置の構成を示す機能ブロック図であ
る。すなわち、本装置は、この図に示すように、入力用
のキーボード1と、出力用の表示装置2と、I/O制御
回路3とを有している。また、本装置は、プログラムを
構成する各クラスの内容を表すクラスデータをキーボー
ド1から取り込むクラスデータ入力部4と、前記各クラ
ス間における継承・包含・関連のうちいずれかのクラス
間関係を表す関係データをキーボード1から取り込む関
係データ入力部5とを有している。なお、クラスデータ
及び関係データは、請求項1のプログラムデータに相当
する。
【0074】また、本装置は、前記クラスデータを格納
するクラスデータファイル6と、前記関係データを格納
する関係データファイル7とを有している。
【0075】また、本装置は、前記プログラムのクラス
間ネットワーク構造について等価変換の範囲をキーボー
ド1から取り込む変換範囲入力部8と、前記変換の態様
をキーボード1から取り込む変換態様入力部9とを有し
ている。なお、変換範囲入力部8は、キーボード1及び
I/O制御回路3と共に、請求項1の変換範囲入力手段
を構成している。また、変換態様入力部9は、キーボー
ド1及びI/O制御回路3と共に、請求項1の変換態様
入力手段を構成している。また、本装置は、前記範囲及
び前記態様に基づいてクラスデータ及び関係データを等
価変換する等価変換部10(請求項1の等価変換手段に
相当するもの)を有している。なお、本装置において行
われる等価変換の態様は、操作関数の分配、包含関係・
関連の解消、継承関係の解消であるが、これら各等価変
換の具体的内容は後述する。
【0076】また、本装置は、前記クラスデータ及び関
係データに基づいてダイヤグラムの表示データを生成す
る生成部11を有しており、この生成部11は、I/O
制御回路3及び表示装置2と共に請求項9のデータ出力
手段を構成している。また、本装置は、前記ダイヤグラ
ムの表示範囲をキーボード1から取り込む表示範囲入力
部12と、前記ダイヤグラムの表示形式をキーボード1
から取り込む表示形式入力部13とを有している。な
お、表示範囲入力部12は、キーボード1及びI/O制
御回路3と共に、請求項15の出力範囲入力手段を構成
している。また、表示形式入力部13は、キーボード1
及びI/O制御回路3と共に、請求項9の出力形式入力
手段を構成している。なお、本装置には、ポインティン
グデバイスとして、図示しないマウスが接続されてお
り、ユーザがマウスを移動させると、表示画面上に表示
されるマウスポインタがマウスに連動して移動する。
【0077】(2)実施例の作用 上記のような構成を有する本実施例は、次のような作用
を有する。すなわち、まず、ユーザが、クラスデータ入
力部4を介してキーボード1からクラスデータを入力す
ると、クラスデータファイル6が各クラスデータを格納
する。また、ユーザが、関係データ入力部5を介してキ
ーボード1から関係データを入力すると、関係データフ
ァイル7が各クラスデータを格納する。
【0078】なお、関係データに含まれるデータとし
て、クラス間関係が設定されている各クラス間に双方向
のリンクを設定する。このようにすれば、各クラス間関
係のいずれの側からでも、クラス間関係の相手方クラス
をこのリンクに基づいて特定することができる。さら
に、親クラス方向へも子クラス方向へも継承関係を多段
に辿ることができ、また、全体クラス又は部分クラスの
一方から他方へ包含関係を辿ることもできる。このた
め、クラス間関係の全体の把握が可能になる。
【0079】ここで、図2は、本実施例におけるクラス
データの一般的形式を示し、「位置データ」は、画面上
のダイヤグラム表示における当該クラスの表示位置座標
を、また、「関係」は、当該クラスと関係するクラスを
特定するためのデータを示す。また、図3は、本実施例
における関係データの一般的形式を示す。この図におい
て、種別は、継承・包含・包含のうちのいずれかのクラ
ス間関係の種別を表し、接続位置データは、画面上のダ
イヤグラム表示における各クラス間の関連を表すシンボ
ルとの位置関係を示す。そして、図4、図5、図6は、
クラスデータの具体例を、また、図7は、関係データの
具体例を示す。
【0080】このように、本装置では、前記クラスデー
タや関係データが位置データを含み、この位置データ
が、ダイヤグラム表示においてクラスを表す枠やクラス
間関係を表す図形の表示位置を示す。このため、表示の
際に各クラスの配置位置の計算処理が必要がなく、ま
た、各クラス間関係に応じた適切な位置関係による表示
が自動的に実現される。
【0081】また、本実施例では、プログラムデータと
して、ソースコードのようなプログラムのデータではな
く、各クラスごとの内容を表すクラスデータと、各クラ
ス間関係を表す関係データを用いる。このため、クラス
内部のデータと、クラスの対外的関係を、独立した問題
として扱うことが可能である。
【0082】また、これらクラスデータや関係データの
具体性の程度は自由である。したがって、プログラムの
設計段階のように、プログラムの具体的内容が未決定の
段階においても、決定済みのクラス間ネットワーク構造
に係るデータを入力すれば、完成したプログラムと同様
に等価変換を行うことができる。
【0083】そして、生成部11が、これらクラスデー
タ及び関係データに基づいてダイヤグラムの表示データ
を生成すると、この表示データによって表されるダイヤ
グラムは、表示装置2に表示される。なお、ユーザが、
ダイヤグラムの表示範囲(すなわち、クラスデータ及び
関係データのうち、表示対象とするクラスの範囲)や表
示形式を変更したい場合は、表示範囲入力部12を介し
てキーボード1から表示範囲を入力(選択)し、又は、
表示形式入力部13を介してキーボード1から表示形式
を入力(選択)すればよい。
【0084】このように、本装置では、出力範囲入力手
段や出力形式入力手段から、プログラムデータの出力の
範囲や形式を入力できるので、ユーザは、利用目的に合
致した範囲のプログラムデータの出力を得ることができ
る。
【0085】このように入力・表示されたプログラムデ
ータを等価変換するときは、変換範囲入力部8を介して
キーボード1から変換範囲を入力(選択)し、及び、変
換態様入力部9を介してキーボード1から変換態様を入
力(選択)すればよい。このように変換範囲及び変換態
様が入力されると、等価変換部10が、当該変換範囲及
び変換態様に基づいてクラスデータ及び関係データを等
価変換する。なお、クラスデータ及び関係データによっ
て表されるプログラムのクラス間ネットワーク構造は、
すなわち、クラスデータ及び関係データによって表現さ
れる構造であり、クラスデータ及び関係データの等価変
換は、すなわち、これらによって表されるプログラムの
クラス間ネットワーク構造の等価変換を意味する。
【0086】ここで、図8は、本装置におけるダイヤグ
ラムの表示から等価変換までの処理手順の一例を示すフ
ローチャートである。なお、入力など各ステップの順序
は、本装置が対話的入出力手順によって自律的に制御し
てもよいし、メニュー形式の入出力手順によってユーザ
が自主的に決定してもよい。
【0087】また、図8の手順のうち、操作関数の分配
は、継承関係における親クラスの操作関数を子クラス内
にコピーし、当該属性や操作関数を親クラスから削除す
ることによって自動的に行われる。また、包含関係・関
連の解消は、全体クラスである親クラスが包含する被包
含クラス(部分クラス)を各子クラスの部分クラスと
し、あるいは親クラスと関連で結ばれた他のクラスを各
子クラスと関連で結び、そのかわりに、当該部分クラス
と親クラスとの包含関係あるいは関連を削除することに
よって自動的に行われる。また、継承関係の解消は、親
クラスの全ての属性及び操作関数を子クラス内にコピー
し、親クラス−子クラス間の継承関係を削除することに
よって自動的に行われる。
【0088】このように、本実施例では、等価変換の態
様として、操作関数の分配、継承関係の解消、包含関係
・関連の解消を指定できるので、各クラスの独立性を向
上させる処理が容易である。また、本実施例では、これ
らの等価変換が自動的に行われるので、これらの操作を
手作業で行う必要がない。
【0089】(3)等価変換の実例 次に、本装置を用いた等価変換の実例を示す。図9は、
本装置に入力されたクラスデータ及び関係データの内容
出力表示の一例であり、クラス名の一覧表示をダイヤグ
ラム形式で行ったものである。なお、本装置のダイヤグ
ラム表示では、各クラスを4角の枠で表し、各枠内に各
クラスの名称を表す。また、クラス間関係は枠同士を結
ぶ線で表し、線の形状によって異なった関係を表す。す
なわち、継承関係は親クラスと子クラスとを結ぶ線に三
角形を付加して表し、包含関係は全体クラスと部分クラ
スとを結ぶ線の全体クラス側に菱形を付加して表し、関
連は2つのクラス間を結ぶ線で表す。なお、表示範囲
は、クラス単位に自由に選択することができる。
【0090】このように、本装置では、プログラムデー
タの出力形式として、ダイヤグラム形式を選択できるの
で、変換前や変換後のプログラムデータの理解が容易に
なる。また、本装置では、前記ダイヤグラム形式の出力
において、各クラスを所定の枠で、また、各クラス間の
クラス間関係は、関係の種類に応じて異なった形状で表
されるので、プログラムの内容を一見して把握すること
ができる。
【0091】すなわち、生成部11がダイヤグラムを描
画する際には、まず、個々のクラスのクラスデータに基
づいて、各クラスを示す枠(すなわちボックス)とクラ
ス名を描画する。次に、関係データに基づいて、個々の
関係をシンボルで描画する。シンボルの描画は、各関連
ごとに、関係するクラスとその方向を判断して描画す
る。
【0092】図9では、親クラス"Title" は、子クラ
ス"DocTitle"及び"RtrvTitle" との間に継承関係を有
し、親クラス"Title" が、子クラス"DocTitle"及び子ク
ラス"RtrvTitle" に共通な要素を有している。さらに、
親クラス"Title" が全体クラスの立場で部分クラス"Key
Word" を包含する包含関係を有する。
【0093】なお、表示範囲はクラス単位に選択するこ
とができ、また、表示形式として、これらクラスにおけ
るクラス定義の表示を選択することもできる。ここで、
クラス定義とは、各クラスにおいて行われるクラスの属
性や操作関数の定義である。
【0094】この画面において、等価変換を行うには、
まず、変換対象とする範囲を選択する。なお、変換対象
は、クラスを単位に、又は、クラス間関係を単位に選択
することができる。このため、変換の対象を必要十分な
範囲に限定することが容易である。
【0095】[操作関数の分配]図10は、変換態様の
一つである「操作関数の分配」の手順を示すフローチャ
ートである。この手順では、まず、ユーザが、変換対象
とするクラスを指定する(ステップ101)。
【0096】すなわち、ユーザが、画面左上のメニュー
ボタン「変換処理」をマウスでクリックすると、処理の
種類を示すプルダウンメニューが表示される(図1
1)。このメニューはクリックボタンを押し下げている
間、継続して表示される。ユーザがマウスのクリックボ
タンを押し下げたままマウスを移動させると(ドラッ
グ)、マウスポインタがポイントしている処理の表示が
反転表示される(図11)。このように、ある処理が反
転表示されている最中にユーザがボタンを放すと、当該
処理が選択され、実行される。
【0097】このとき、「対象の指定」が選択されると
(図11)、画面下方のメッセージ欄に、等価変換の対
象を指定すべき旨が表示される。この状態で、ユーザ
が、マウスでボックスをクリックすると、そのボックス
が選択され、当該ボックスの名称・属性・関数などのク
ラス定義が、クラスデータに基づいて、クラスに対応し
た新たなウィンドウ(サブウィンドウ)に表形式で表示
される(図12)。図12では、元のウィンドウ上に、
元のウィンドウよりも小さなサブウィンドウがオーバー
ラップして表示されている。
【0098】したがって、ユーザが、複数のボックスを
クリックすると、クリックした数だけのサブウィンドウ
が現れ、各サブウィンドウに各クラスのクラス名・属性
・関数が一覧表示される(図13)。このように、本装
置では、マウスを通じて出力形式入力手段からプログラ
ムデータの出力形式を入力できるので、ユーザは、利用
目的に合致した形式のプログラムデータの出力を得るこ
とができる。
【0099】また、本装置では、前記出力形式として、
クラスの属性や操作関数を含むクラスデータの表示を選
択することもできる。そして、本装置では、この出力形
式をダイヤグラム表示と併用している。このため、ダイ
ヤグラム表示の状態で所定の操作を行うことによって、
具体的なクラスデータも出力させることができ、プログ
ラム内容の理解性が一層向上する。
【0100】特に、本装置では、マルチウィンドウの表
示画面において、一のウィンドウに前記ダイヤグラムが
表示され、ユーザが、マウスなどのポインティングデバ
イスでクラスの前記枠に対して所定の操作を行ったとき
に、当該クラスの前記クラスデータが、クラスに対応し
た新たなウィンドウであるサブウィンドウに表示され
る。このため、簡明な操作と理解しやすい形式で、必要
なクラスデータのみを確認することができる。
【0101】続いて、ユーザが、変換態様として、前記
「変換処理」メニューの「操作関数の分配」を選択する
と(図14)、分配すべき関数を選択すべき旨がメッセ
ージ欄に表示され、分配すべき関数を選択できる状態と
なる(ステップ102)。すなわち、ユーザがクラスの
サブウィンドウに表示されている関数を1又は2以上ク
リックすると、クリックされた各関数が選択され、反転
表示される(図15)。また、選択された関数が所属す
るクラス名、当該クラスが持つ関係、及び各関係に関与
する全てのクラスが特定される。このように、本実施例
では、前記操作関数の分配の対象は、関数を単位として
選択することができるので、分配の対象を必要十分な関
数に限定することが容易になる。
【0102】このように関数が選択されると、その関数
の分配先となる子クラスを指定できる状態となり、その
旨がメッセージ欄に表示される(図15)。この状態
で、ユーザが、継承を示すシンボルをクリックすると、
その継承関係が選択され(ステップ103)、その継承
関係に関与する全てのクラスのボックスが反転表示され
る(図16)。
【0103】なお、図16では、親クラスとしてクラ
ス"Title" が、また、子クラスとして、クラス"DocTitl
e"及び"RtrvTitle" が選択されている。また、親クラ
ス"Title" が持っている int型の操作関数setKey(int i
d)が選択されている。そして、メッセージ欄を用いて変
換処理を実行するか否かが確認される。
【0104】ユーザが、キー入力など所定の操作によっ
て実行を指示すると(図16)、選択された操作関数
が、選択された子クラスに分配される。すなわち、下位
の選択された全ての(ステップ104)子クラスが順次
特定され(ステップ105)、指定された関数が、上位
の親クラスのクラスデータから、特定された全ての子ク
ラスのクラスデータの関数群にコピーして追加され(ス
テップ106)、その上で、コピー元の関数が親クラス
の関数群から削除される(ステップ107)。その後、
分配によって更新されたデータに基づいてダイヤグラム
が再度描画される(ステップ108、図17) なお、分配後に、ユーザが子クラスのボックスをクリッ
クすれば、子クラスのクラス定義がサブウィンドウに表
示されるので(図18)、ユーザは、分配の結果を確認
することができる。
【0105】この図では、親クラス"Title" が持ってい
た int型の操作関数setKey(int id)が個々の子クラス"D
ocTitle"及び子クラス"RtrvTitle" に分配されている。
【0106】[包含関係・関連の解消]図19は、変換
態様の他の一つである「包含関係・関連の解消」の手順
を示すフローチャートである。この手順では、まず、ユ
ーザが、「操作関数の分配」で説明したと同様に、等価
変換を行う対象である部分クラスを指定する(ステップ
191、図11、図20)。この指定は、分配対象とす
るクラスをポイントして行い(図20)、指定されたク
ラスについてクラス定義がサブウィンドウに表示され
る。ここで、分配の対象は、さらに関数を単位として選
択してもよく、選択された関数は反転表示される。
【0107】次に、ユーザが、前記「変換処理」メニュ
ーの「包含関係・関連の解消」を選択すると(図2
1)、等価変換すなわち分配の経路となる継承関係を指
定できる状態となる(ステップ192、図22)。この
状態で、ユーザが、継承を示すシンボルをクリックする
と(図22)、その継承関係が選択され、関係データに
基づいてその継承関係に関与する全てのクラスが特定さ
れ、これら各クラスのボックスが反転表示される(図2
3)。
【0108】次に、ユーザが、キー入力など所定の操作
によって実行を指示すると(図23)、前記指定された
(選ばれた)クラスが分配される。すなわち、まず、継
承関係の上位クラスと継承関係を有する下位の全ての
(ステップ193)子クラスが順次特定され(ステップ
194)、親クラスの属性群から指定されたクラスのク
ラス型又は指定されたクラスへのポインタの属性が、特
定された全ての子クラスの属性群にコピーして追加され
(ステップ195)、これらコピーされたデータは、親
クラスから削除される(ステップ196)。
【0109】その後、分配によって更新されたデータに
基づいて、ダイヤグラムが再度描画される(ステップ1
97、図24)。この描画では、指定されたクラスと、
継承関係において子クラスである各クラスとが、関係を
表す線やシンボルで直接接続され、継承関係における親
クラスと指定されたクラスとを結合するシンボルが削除
される。
【0110】図24では、親クラス"Title" と部分クラ
ス"KeyWord" との包含関係が解消され、クラス"KeyWor
d" がクラス"DocTitle"及び"RtrvTitle" に直接包含さ
れている。
【0111】なお、解消後に、ユーザが各クラスのボッ
クスをクリックすれば、各クラスのクラス定義がサブウ
ィンドウに表示されるので、ユーザは、解消の結果を確
認することができる(図25)。
【0112】[継承関係の解消]図26は、変換態様の
他の一つである「継承関係の解消」の手順を示すフロー
チャートである。この手順では、ユーザが、変換態様と
して、前記「変換処理」メニューの「継承関係の解消」
を選択すると(図27)、等価変換すなわち解消の対象
とする継承関係を選択できる状態となる(ステップ26
1)。この状態で、ユーザが、継承を示すシンボルをク
リックすると、その継承関係が選択され、その継承関係
に関与する全てのクラスのボックスが反転表示される
(図23)。なお、図23では、親クラスとしてクラ
ス"Title" が、また、子クラスとして、クラス"DocTitl
e"及び"RtrvTitle" が選択されている。
【0113】そして、ユーザが、キー入力など所定の操
作によって実行を指示すると(図23)、選択された継
承関係が解消される。すなわち、まず、継承関係の親ク
ラスが関係データに基づいて特定され(ステップ26
2)、この親クラスと継承関係を有していた下位の全て
の(ステップ263)子クラスが順次特定され(ステッ
プ264)、親クラスの属性群の値が特定された全ての
子クラスの属性群に(ステップ265)、また、親クラ
スの関数群の値が特定された全ての子クラスの関数群に
(ステップ266)、それぞれコピーして追加され、そ
の上で、親クラスが削除される。
【0114】その後、解消によって更新されたデータに
基づいて、ダイヤグラムが再度描画される(ステップ2
67、図28)。この描画では、継承関係において親ク
ラスであったクラスと接続されている各クラスと、継承
関係において子クラスであった各クラスとが、関係を表
す線やシンボルで接続され、上位クラスであったクラス
のボックス、及び、解消された継承関係を表すシンボル
が削除される。
【0115】なお、解消後に、ユーザが子クラスであっ
たクラスのボックスをクリックすれば、当該クラスのク
ラス定義がサブウィンドウに表示されるので、ユーザ
は、分配の結果を確認することができる(図29)。図
29では、クラス"DocTitle"及び"RtrvTitle" のクラス
定義に、親クラス"Title" が持っていた char*型の属性
KeyWord[21] や int型の操作関数setKey(int id)が独自
の定義として追加されている一方、クラス"Title" とク
ラス"DocTitle"及び"RtrvTitle" の継承関係が削除され
ている。
【0116】(4)実施例の効果 以上のように、本実施例によれば、変換の範囲及び態様
を入力すればクラスデータ及び関係データによって表さ
れるクラス間ネットワーク構造の等価変換が、等価変換
部10によって、自動的に行われる。この等価変換は、
すなわち、プログラムデータによって表されるクラス間
ネットワーク構造が自動的に等価変換されることを意味
するので、プログラム開発の効率や信頼性が向上する。
【0117】また、本実施例によれば、生成部11が、
表示装置2のために表示データをダイヤグラム形式で生
成するので、変換前や変換後のクラスデータ及び関係デ
ータの内容理解が容易になる。
【0118】また、本実施例では、ユーザは、ダイヤグ
ラムの出力範囲を入力したり、ダイヤグラムの出力形式
を入力できるので、利用目的に合致したダイヤグラムを
得ることができる。
【0119】特に、本実施例では、プログラムの内容を
表すプログラムデータとして、プログラムデータそのも
のではなく、各クラスの内容を表すクラスデータや各ク
ラス間関係を表す関係データを用いている。そして、ク
ラスデータや関係データの具体性の程度は自由である。
したがって、プログラムの設計段階のように、プログラ
ムの具体的内容が未決定の段階においても、決定済みの
クラス間ネットワーク構造に対応するこれらデータのみ
を入力すれば、完成したプログラムと同様に等価変換を
行うことができる。
【0120】(5)他の実施例 なお、本発明は上記実施例に限定されるものではなく、
実施態様の変更は自由であるから、次のような他の実施
例をも包含する。例えば、前記実施例では、前記プログ
ラムデータとしてクラスデータ及び関係データを用いた
が、プログラムデータとしては、完成したプログラムの
ソースコードそのものを用いてもよい。また、前記実施
例において、クラスデータ及び関係データはあらかじめ
本装置内に保存されていたものを利用してもよい。
【0121】また、オブジェクト指向プログラミング言
語の表記文法・クラス間関係・等価変換の態様・表示形
式などの具体的内容は前記実施例に示すものには限定さ
れず、自由に定めることができる。
【0122】具体的には、各クラスに共通の属性や操作
関数をまとめて上位の抽象クラスを生成し、下位クラス
がこれらを継承するように等価変換を行えば、一覧性に
優れた簡明なプログラムを実現することができる。ま
た、あるクラス間関係の変換を、この関係に連なる多段
のクラス間関係に自動的に及ぼすようにすれば、等価変
換に影響に基づくプログラムの手作業による修正が最小
限となる。
【0123】また、等価変換の具体的内容をユーザが決
定し、これを入力できるようにすれば、ユーザの利用目
的に応じた実施が容易である。
【0124】また、プログラムデータをダイヤグラム形
式によらずに出力してもよい。また、プログラムデータ
としてソースコードそのものを処理する場合、表示形式
として、プログラムテキストそのものを表示するか、プ
ログラムのクラス間ネットワーク構造を表示するかを選
択できるようにしてもよい。
【0125】
【発明の効果】以上のように、本発明によれば、クラス
間ネットワーク構造の等価変換を行うオブジェクト指向
プログラミング支援装置を提供することができるので、
ソフトウェア開発の効率や信頼性が向上する。
【図面の簡単な説明】
【図1】本発明の実施例の構成を示す機能ブロック図
【図2】本発明の実施例におけるクラスデータの一般的
形式
【図3】本発明の実施例における関係データの一般的形
【図4】本発明の実施例におけるクラスデータの具体例
【図5】本発明の実施例におけるクラスデータの具体例
【図6】本発明の実施例におけるクラスデータの具体例
【図7】本発明の実施例における関係データの具体例
【図8】本発明の実施例における処理手順の一例を示す
フローチャート
【図9】本発明の実施例における画面表示例
【図10】本発明の実施例における操作関数の分配の手
順を示すフローチャート
【図11】本発明の実施例における画面表示例
【図12】本発明の実施例における画面表示例
【図13】本発明の実施例における画面表示例
【図14】本発明の実施例における画面表示例
【図15】本発明の実施例における画面表示例
【図16】本発明の実施例における画面表示例
【図17】本発明の実施例における画面表示例
【図18】本発明の実施例における画面表示例
【図19】本発明の実施例における包含関係・関連の解
消の手順を示すフローチャート
【図20】本発明の実施例における画面表示例
【図21】本発明の実施例における画面表示例
【図22】本発明の実施例における画面表示例
【図23】本発明の実施例における画面表示例
【図24】本発明の実施例における画面表示例
【図25】本発明の実施例における画面表示例
【図26】本発明の実施例における継承関係の解消の手
順を示すフローチャート
【図27】本発明の実施例における画面表示例
【図28】本発明の実施例における画面表示例
【図29】本発明の実施例における画面表示例
【符号の説明】
1:キーボード 2:表示装置 3:I/O制御回路 4:クラスデータ入力部 5:関係データ入力部 6:クラスデータファイル 7:関係データファイル 8:変換範囲入力部 9:変換態様入力部 10:等価変換部 11:生成部 12:表示範囲入力部 13:表示形式入力部 STEP:手順の各ステップ

Claims (21)

    【特許請求の範囲】
  1. 【請求項1】 クラスを有するプログラムの内容を表す
    プログラムデータを用いたオブジェクト指向プログラミ
    ングを支援するオブジェクト指向プログラミング支援装
    置において、 前記プログラムのクラス間ネットワーク構造について変
    換の範囲を入力する変換範囲入力手段と、 前記変換の態様を入力する変換態様入力手段と、 前記範囲及び前記態様に基づいて前記プログラムデータ
    を等価変換する等価変換手段と、 を有することを特徴とするオブジェクト指向プログラミ
    ング支援装置。
  2. 【請求項2】 前記プログラムデータとして、前記各ク
    ラスごとの内容を表すクラスデータと、各クラス間関係
    を表す関係データを用いるように構成されたことを特徴
    とする請求項1記載のオブジェクト指向プログラミング
    支援装置。
  3. 【請求項3】 また、前記関係データが、クラス間関係
    が設定されている各クラス間に設定される双方向のリン
    クを含むことを特徴とする請求項2記載のオブジェクト
    指向プログラミング支援装置。
  4. 【請求項4】 前記変換範囲入力手段は、前記変換の範
    囲の選択を、前記クラス又はクラス間関係の少なくとも
    一方を単位に行えるように構成されたことを特徴とする
    請求項1記載のオブジェクト指向プログラミング支援装
    置。
  5. 【請求項5】 前記等価変換手段は、前記等価変換の各
    態様として、少なくとも、操作関数の分配、包含関係・
    関連の解消、継承関係の解消、を行うように構成された
    ことを特徴とする請求項1記載のオブジェクト指向プロ
    グラミング支援装置。
  6. 【請求項6】 前記等価変換手段は、前記等価変換の一
    態様として、各クラスに共通の属性や操作関数を抽出し
    てこれら各クラスの上位の抽象クラスを生成し、前記各
    クラスにこれらを継承させることによって、クラスの統
    合を行うように構成されたことを特徴とする請求項1記
    載のオブジェクト指向プログラミング支援装置。
  7. 【請求項7】 前記等価変換手段は、クラス間関係の等
    価変換を、この関係が波及すべき他のクラス間関係に波
    及させるように構成されたことを特徴とする請求項1記
    載のオブジェクト指向プログラミング支援装置。
  8. 【請求項8】 前記等価変換の具体的内容をユーザが定
    義するための定義手段を有することを特徴とする請求項
    1記載のオブジェクト指向プログラミング支援装置。
  9. 【請求項9】 前記プログラムデータを出力するデータ
    出力手段と、 プログラムデータの出力形式を入力するための出力形式
    入力手段と、 を有することを特徴とする請求項1記載のオブジェクト
    指向プログラミング支援装置。
  10. 【請求項10】 前記出力形式は、少なくともダイヤグ
    ラム形式を含むことを特徴とする請求項9記載のオブジ
    ェクト指向プログラミング支援装置。
  11. 【請求項11】 前記データ出力手段は、前記ダイヤグ
    ラム形式の出力において、各クラスを所定の枠で、ま
    た、各クラス間のクラス間関係は、関係の種類に応じて
    異なった形状で表すように構成されたことを特徴とする
    請求項10記載のオブジェクト指向プログラミング支援
    装置。
  12. 【請求項12】 前記プログラムデータとして、前記各
    クラスごとの内容を表すクラスデータと、各クラス間関
    係を表す関係データを用いるように構成され、 前記クラスデータ又は関係データの少なくとも一方が、
    ダイヤグラム表示における前記枠又は図形の表示位置を
    示す位置データを含むことを特徴とする請求項11記載
    のオブジェクト指向プログラミング支援装置。
  13. 【請求項13】 前記データ出力手段は、マルチウィン
    ドウの表示画面において、少なくとも一のウィンドウに
    前記ダイヤグラムを表示し、 前記プログラムデータとして、前記各クラスごとの内容
    を表すクラスデータと、各クラス間関係を表す関係デー
    タを用いるように構成され、 ポインティングデバイスにより前記クラスの前記枠に対
    して所定の操作が与えられた場合に、当該クラスの前記
    クラスデータを、クラスに対応した新たなウィンドウで
    あるサブウィンドウに表示するように構成されたことを
    特徴とする請求項11記載のオブジェクト指向プログラ
    ミング支援装置。
  14. 【請求項14】 前記プログラムデータとして、前記各
    クラスごとの内容を表すクラスデータと、各クラス間関
    係を表す関係データを用いるように構成され、 前記出力形式は、少なくとも、クラスデータの表示を含
    むことを特徴とする請求項9記載のオブジェクト指向プ
    ログラミング支援装置。
  15. 【請求項15】 前記プログラムデータを出力するデー
    タ出力手段と、 プログラムデータの出力範囲を入力するための出力範囲
    入力手段と、を有することを特徴とする請求項1記載の
    オブジェクト指向プログラミング支援装置。
  16. 【請求項16】 クラスを有するプログラムの内容を表
    すプログラムデータを用いたオブジェクト指向プログラ
    ミングを支援するオブジェクト指向プログラミング支援
    装置において、 前記プログラムのクラス間ネットワーク構造について変
    換の範囲を入力する変換範囲入力手段と、 前記範囲に基づいて前記プログラムデータを等価変換す
    る等価変換手段と、を有し、 前記等価変換手段は、クラス間の継承関係における親ク
    ラスの属性や操作関数を子クラス内にコピーし、当該属
    性や操作関数を親クラスから削除することによって、操
    作関数の分配を行うように構成されたことを特徴とする
    オブジェクト指向プログラミング支援装置。
  17. 【請求項17】 前記変換範囲入力手段は、前記操作関
    数の分配の対象を、関数を単位として選択できるように
    構成されたことを特徴とする請求項16記載のオブジェ
    クト指向プログラミング支援装置。
  18. 【請求項18】 クラスを有するプログラムの内容を表
    すプログラムデータを用いたオブジェクト指向プログラ
    ミングを支援するオブジェクト指向プログラミング支援
    装置において、 前記プログラムのクラス間ネットワーク構造について変
    換の範囲を入力する変換範囲入力手段と、 前記範囲に基づいて前記プログラムデータを等価変換す
    る等価変換手段と、 を有し、 前記等価変換手段は、全体クラスである親クラスが包含
    する被包含クラスである部分クラスを、各子クラスの部
    分クラスとするか、親クラスが関連する他のクラスを各
    子クラスと関連させ、そのかわりに、当該部分クラスと
    親クラスとの包含関係あるいは関連を削除することによ
    って、クラスの分配を行うように構成されたことを特徴
    とするオブジェクト指向プログラミング支援装置。
  19. 【請求項19】 クラスを有するプログラムの内容を表
    すプログラムデータを用いたオブジェクト指向プログラ
    ミングを支援するオブジェクト指向プログラミング支援
    装置において、 前記プログラムのクラス間ネットワーク構造について変
    換の範囲を入力する変換範囲入力手段と、 前記範囲に基づいて前記プログラムデータを等価変換す
    る等価変換手段とを有し、 前記等価変換手段は、クラス間の継承関係における親ク
    ラスの全ての属性及び操作関数を子クラス内にコピー
    し、親クラスと子クラス間の継承関係を削除することに
    よって、継承関係の解消を行うように構成されたことを
    特徴とするオブジェクト指向プログラミング支援装置。
  20. 【請求項20】 クラスを有するプログラムの内容を表
    すプログラムデータを用いたオブジェクト指向プログラ
    ミングを支援するオブジェクト指向プログラミング支援
    方法において、 前記プログラムのクラス間ネットワーク構造について変
    換の範囲を入力するステップと、 前記変換の態様を入力するステップと、 前記範囲及び前記態様に基づいて前記プログラムデータ
    を等価変換するステップと、 を有することを特徴とするオブジェクト指向プログラミ
    ング支援方法。
  21. 【請求項21】 クラスを有するプログラムの内容を表
    すプログラムデータを用いたオブジェクト指向プログラ
    ミングを支援するオブジェクト指向プログラミング支援
    装置において、 前記プログラムのクラス間ネットワーク構造について変
    換の範囲を入力する変換範囲入力手段と、 前記変換の態様を入力する変換態様入力手段と、 前記範囲及び前記態様に基づいて前記プログラムデータ
    を等価変換する等価変換手段と、 を有し、 入出力が表示画面上で対話的に行われるように、構成さ
    れたことを特徴とするオブジェクト指向プログラミング
    支援装置。
JP07620094A 1993-04-14 1994-04-14 オブジェクト指向プログラミング支援装置及びオブジェクト指向プログラミング支援方法 Expired - Lifetime JP3447365B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP07620094A JP3447365B2 (ja) 1993-04-14 1994-04-14 オブジェクト指向プログラミング支援装置及びオブジェクト指向プログラミング支援方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP8726593 1993-04-14
JP5-87265 1993-04-14
JP07620094A JP3447365B2 (ja) 1993-04-14 1994-04-14 オブジェクト指向プログラミング支援装置及びオブジェクト指向プログラミング支援方法

Publications (2)

Publication Number Publication Date
JPH06348499A true JPH06348499A (ja) 1994-12-22
JP3447365B2 JP3447365B2 (ja) 2003-09-16

Family

ID=26417352

Family Applications (1)

Application Number Title Priority Date Filing Date
JP07620094A Expired - Lifetime JP3447365B2 (ja) 1993-04-14 1994-04-14 オブジェクト指向プログラミング支援装置及びオブジェクト指向プログラミング支援方法

Country Status (1)

Country Link
JP (1) JP3447365B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002046921A1 (fr) * 2000-12-08 2002-06-13 Fujitsu Limited Procede et dispositif pour l'analyse de sequences
JP2006343867A (ja) * 2005-06-07 2006-12-21 Canon Inc オブジェクト指向プログラミング生成装置および情報処理方法
JP2013196354A (ja) * 2012-03-19 2013-09-30 Nippon Telegr & Teleph Corp <Ntt> クラス図作成装置およびクラス図作成プログラム
JP2014092920A (ja) * 2012-11-02 2014-05-19 Nippon Telegr & Teleph Corp <Ntt> クラス図変換装置およびクラス図変換プログラム
JP2018078523A (ja) * 2016-11-11 2018-05-17 日本電信電話株式会社 ネットワーク管理装置、方法及びプログラム
JP7183482B1 (ja) * 2021-12-21 2022-12-05 三菱電機株式会社 プログラミング支援プログラム、プログラミング支援装置及びプログラミング支援方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002046921A1 (fr) * 2000-12-08 2002-06-13 Fujitsu Limited Procede et dispositif pour l'analyse de sequences
US7062751B2 (en) 2000-12-08 2006-06-13 Fujitsu Limited Sequence analysis method and apparatus
JP2006343867A (ja) * 2005-06-07 2006-12-21 Canon Inc オブジェクト指向プログラミング生成装置および情報処理方法
JP2013196354A (ja) * 2012-03-19 2013-09-30 Nippon Telegr & Teleph Corp <Ntt> クラス図作成装置およびクラス図作成プログラム
JP2014092920A (ja) * 2012-11-02 2014-05-19 Nippon Telegr & Teleph Corp <Ntt> クラス図変換装置およびクラス図変換プログラム
JP2018078523A (ja) * 2016-11-11 2018-05-17 日本電信電話株式会社 ネットワーク管理装置、方法及びプログラム
JP7183482B1 (ja) * 2021-12-21 2022-12-05 三菱電機株式会社 プログラミング支援プログラム、プログラミング支援装置及びプログラミング支援方法
WO2023119437A1 (ja) * 2021-12-21 2023-06-29 三菱電機株式会社 プログラミング支援プログラム、プログラミング支援装置及びプログラミング支援方法
CN117581167A (zh) * 2021-12-21 2024-02-20 三菱电机株式会社 编程辅助程序、编程辅助装置及编程辅助方法

Also Published As

Publication number Publication date
JP3447365B2 (ja) 2003-09-16

Similar Documents

Publication Publication Date Title
Reiss Interacting with the FIELD environment
US11294645B2 (en) Visual virtual programming machine for real-time interactive creation, playback, execution, inspection and manipulation of programming elements
US9613017B2 (en) Text import tool for a technical computing environment
US8365086B2 (en) System and method for building graphical instrument panels
US20040060037A1 (en) Method for gesture based modeling
JP2000048016A (ja) コンピュ―タプロセッサ上で実行可能なテキストのフォ―マット及び表示方法、テキストをフォ―マットし表示可能なコンピュ―タ装置、テキストをフォ―マットし表示可能なプログラムを記憶したコンピュ―タ読み取り可能な記憶媒体、テキストをフォ―マットし表示可能なテキストエディタに新たなスタイルを付加する付加方法
JPH04337843A (ja) プログラム動作表示方法
JPH09222977A (ja) アプリケーション用ユーザ・インタフェース設計の規則に基づく方法及び装置
US20050060685A1 (en) Program generator
US6070006A (en) Object oriented software development tool for creation of new class(es)
KR950012084B1 (ko) 대화식 디스플레이 생성 방법 및 시스템
US20110126171A1 (en) Dynamic native editor code view facade
JP3447365B2 (ja) オブジェクト指向プログラミング支援装置及びオブジェクト指向プログラミング支援方法
JPH064280A (ja) ウィズィウィグ式エディターでオブジェクトをユーザ制御する機能を備えたグラフィカル・ユーザ・インターフェース
JP3697274B2 (ja) ソフトウェア開発支援装置
WO1995000902A1 (en) Dynamic browser system
JP3372106B2 (ja) プログラムデバッグ装置
WO2024109400A1 (zh) 子应用页面处理方法、装置、计算机设备和存储介质
Miyazaki et al. A CAD process scheduling technique
Asthana et al. Computer graphics for scientists and engineers
JP2004537793A (ja) コントロール/ディスプレイ・ユニットのページ・ビルダ・ソフトウェア・ツール
JP2000020294A (ja) プログラム開発支援装置、及びコンピュータ読み取り可能な記録媒体
Stanciulescu et al. Automatic usability assessment of multimodal user interfaces based on ergonomic rules
CN113778411A (zh) 图形化编程方法及应用设备
JP3722854B2 (ja) データ編集装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080704

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090704

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090704

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100704

Year of fee payment: 7