JPH09128224A - ソフトウェア開発支援装置及びソフトウェア開発支援方法 - Google Patents

ソフトウェア開発支援装置及びソフトウェア開発支援方法

Info

Publication number
JPH09128224A
JPH09128224A JP28311495A JP28311495A JPH09128224A JP H09128224 A JPH09128224 A JP H09128224A JP 28311495 A JP28311495 A JP 28311495A JP 28311495 A JP28311495 A JP 28311495A JP H09128224 A JPH09128224 A JP H09128224A
Authority
JP
Japan
Prior art keywords
class
name
variable
unit
parent
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
JP28311495A
Other languages
English (en)
Inventor
Toshihiro Hishida
利浩 菱田
Takashi Nawata
毅史 縄田
Kazutoshi Sumiya
和俊 角谷
Koichi Yasutake
剛一 安武
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP28311495A priority Critical patent/JPH09128224A/ja
Publication of JPH09128224A publication Critical patent/JPH09128224A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 オブジェクト変数の初期値の変更作業の煩わ
しさを軽減する。 【解決手段】 開発者にオブジェクト名と変数名とを入
力させ、そのオブジェクトのソースプログラムから入力
されたオブジェクト名のソースプログラムを探し出す。
次に探し出した生成元クラスの親、子、兄弟のクラスか
ら生成されたオブジェクトが有する変数の初期値を一覧
表示し、これによって変更の際に他のオブジェクトの変
数との関係を開発者に確認させる。これによって、開発
による変更の際のミスを減らすことができ、同時に他の
オブジェクトの変数の変更を行なうことでユーザの変更
に対する労力を軽減する。

Description

【発明の詳細な説明】
【0001】
【発明が属する技術分野】オブジェクト指向型ソフトウ
ェアシステムの開発環境において、制御プログラムの作
成作業を支援するソフトウェア開発支援装置及びソフト
ウェア開発支援方法に関する。
【0002】
【従来の技術】近年、ワープロ、パソコン、電子手帳と
いった情報機器やビデオ、テレビ、冷蔵庫といった家電
製品のモデルチェンジが目まぐるしく行われている。当
然のことながらモデルチェンジが頻繁であれば、これら
の情報機器、家電製品の開発期間も非常に短くなる。従
ってメーカー各社はこのような短期間で新製品の開発を
成し遂げることに日夜懸命である。一方、これらの情報
機器、家電製品では、マイコンの内蔵はもはや常識にな
っており、この制御用のプログラムの作成も新製品の開
発において非常に重要である。
【0003】上記の制御プログラムを高効率に設計する
手法としては、オブジェクト指向型の設計方法の適用が
大いに注目をあびつつある。情報機器、家電製品の制御
プログラムの開発にオブジェクト指向型設計を如何に適
用するかについて以下に説明する。オブジェクト指向型
プログラムでは、サブルーチン等のソフトウェアの構成
要素をオブジェクトとして扱う。各オブジェクトは、
「なにをするか」というwhat−to−do指定によ
る動作指示『メッセージ』で動作している。そのため、
「どうやってなにをするか」というHow−to−do
の動作指示が排除されており、各システム要素のモジュ
ール性(独立性)が高められている。
【0004】オブジェクト指向型プログラム設計で設計
された制御プログラムについて図26を参照しながら説
明する。尚図26はこの制御プログラム内で動作するオ
ブジェクトを模式的に示している。本図において、『録
画予約オブジェクト』『カレンダオブジェクト』『再生
ボタンオブジェクト』『早送りボタンオブジェクト』と
いった文字列が付された楕円がオブジェクトを示す(こ
れらのオブジェクトのオブジェクト名からも判るように
本明細書で説明に使用する具体例の制御プログラムはビ
デオデッキの制御プログラムを用いる。)。
【0005】本図においてこれらのオブジェクト間で送
信されているメッセージを、実線の矢印で示している。
即ちこれらの矢印で対応するもの同士がメッセージを送
信し合っている。このように各オブジェクトは、メッセ
ージの送信によって動作を行うようになっている。次に
オブジェクトの内部構成について図27を参照しながら
説明する。図27はオブジェクトの内部構成を説明する
ための説明図である。本図において、『早送りボタンオ
ブジェクト』といった文字列が付された楕円がオブジェ
クトを示す。この楕円内の縦の並びには、先ずオブジェ
クトの名前を示す文字列『早送りボタンオブジェクト』
があり、その下に『変数Pushkey1:入出力ポート00の
格納用』があり、その下に『変数PushPort1:倍速再生
のテープ速度』があり、その下に『変数PushPort2:利
得調整』がある。これは『早送りボタンオブジェクト』
の内部には、『変数Pushkey1:入出力ポート00の格納
用』と、『変数PushPort1:倍速再生のテープ速度』
と、『変数PushPort2:利得調整』とが早送りボタンオ
ブジェクト内に隠蔽され、これらがオブジェクトが有す
る変数(オブジェクト変数という。)であることを示し
ている。更に本図におけるといった記号が付さ
れた文字列がオブジェクトの動作部であるメソッドを示
す。これらのメソッドも早送りオブジェクトの内部のみ
で用いられるので、楕円内に記述している。このよう
に、オブジェクト指向型プログラムで開発されたソフト
ウェアでは、変数及びメソッドがオブジェクト内に隠蔽
され、メッセージの送受信によって動作するのでモジュ
ール性が非常に高いとこがわかる。
【0006】このように制御プログラムの構成要素をオ
ブジェクトとして設計すれば、各構成要素は再利用性を
有するようになる。各構成要素が再利用性を有すれば、
旧機種の制御プログラムの流用によって新機種の制御プ
ログラムを作り上げてゆくことがより簡単に行える。具
体的に説明すると、オブジェクトとして設計された制御
プログラムの構成要素はモジュール性が非常に高いた
め、これらの構成要素を新機種に適用し、新機種のみに
特徴的な部分のみを改変して新機種を作成することがで
きる。このように旧機種の制御プログラムの構成要素が
そのまま利用できれば、制御プログラムを一から開発す
る手間が省けるので開発期間を大いに短縮できる。
【0007】特に情報機器、家電製品の開発では、内部
構成が旧機種とほぼ同じで、筐体のデザインをのみを変
更した新機種を開発したり、廉価版機種、高級機種とい
った一連のラインナップの製品を一度に開発することが
非常に多いため、制御プログラムに再利用性を与えるこ
とは製品の開発効率の高効率化に大きなメリットにな
る。
【0008】次に、図28の説明図を参照しながらオブ
ジェクト指向型プログラムにおけるハードウェアとの接
合点について説明を行う。図28は、ターゲットマシン
の入力受信部に相当する部分のソースファイルを表して
いる。即ち、図26、図27に一例を示した制御プログ
ラムの各オブジェクトがユーザからの操作によってどの
ように起動されるかを示している。
【0009】本図において、文『main( ){}』は主文
であり、ターゲットマシンの起動時にはこの主文が先ず
動作する。この主文において『PushButtonInstance1Pr
essed();』『PushButtonInstance2Pressed();』といっ
た関数呼び出しが行われ、これらの関数呼び出しは、本
図における条件分岐文『IF( ){}』によって制御変数
『Event』の値に応じて切り換えて実行される。このと
きの呼び出し先の関数は、本図における関数『PushButt
onInstance1Pressed()』『PushButtonInstance2Press
ed()』である。本図において、縦の並びには、先ず『wh
ile(Event){』にアンダーラインが引かれてあり、その
下の『if(Event == 0x33)』、その下の『else if(Even
t == 0x34)』、その下の『else if(Event == 0x35)
』、その下の『else if(Event == 0x36)』にも同様
のアンダーラインが引かれてあるが、これらアンダーラ
インが引かれた部分が本ソフトウェアにおける分岐構造
を示している。即ち、『if(Event == 0x33)』と、『els
e if(Event == 0x34)』と、『else if(Event == 0x3
5) 』と、『else if(Event == 0x36)』とで、変数Ev
entの初期値による多重分岐を実現している。変数Event
はハードウェアの値を取得するための変数であり、この
多重分岐は繰り返し制御文『while(Event){』によって
変数Eventの入力値がある限り繰り返される構造になっ
ている。
【0010】これらのオブジェクト指向型のソースプロ
グラムの文法はC言語の文法を模したものであり、図中
のWhile(A){B}は、条件文Aが正しい限り実行す
る。Bの実行後、又Aをチェックして正しい時はBを実
行して、正しくない時は、While(A){B}の実行を
繰り返すという意味である。本図の『PushButtonInstan
ce1Pressed()』の縦の並びにおいて、その下に『PushB
uttonInstance2Pressed()』があり、その下に『PushBu
ttonInstance3Pressed()』があり、その下に『PushBut
tonInstance4Pressed()』があるが、これらは変数Even
tの値に応じて呼び出される関数である。変数Eventの値
に応じて、これらの『PushButtonInstance1Presse
d()』と、『PushButtonInstance2Pressed()』と、『Pu
shButtonInstance3Pressed()』と、『PushButtonInsta
nce4Pressed()』のうちの何れかが実行されるようにな
っている。
【0011】本図において、『PushButtonInstance1Pr
essed()』の縦の並びには、『録画Button.Value = 6』
があり、その下に『録画Button::buttonPressed( );』
があるが、これらは、録画ボタンの押下時に録画ボタン
オブジェクトが呼び出される部分である。これは多重分
岐によって『PushButtonInstance1Pressed()』が呼び
出されると、『録画Button.Value = 6』によって録画
ボタンオブジェクトのオブジェクト変数に値が設定さ
れ、『録画Button::buttonPressed( );』によって録画
ボタンオブジェクトのメソッドが呼び出されることを意
味する。ここで『録画Button.Value』はキーの割り当て
用のオブジェクト変数である。
【0012】本図において、『PushButtonInstance2Pr
essed()』の縦の並びには、『早送りButton.Value =
7』があり、その下に『早送りButton::buttonPressed
( );』があるが、これらも上記の録画ボタンオブジェク
トと同様、『早送りButton.Value = 7』をキーの割り
当て用のオブジェクト変数に値を設定しており、『早送
りButton::buttonPressed( );』のメソッドを実行する
ことを意味する。以上のように、各オブジェクトは、自
身の内部に隠蔽されている1つの変数をキー割り当て用
に設定し、この変数に設定された値に応じて、各自のメ
ソッドを行うようになっている。
【0013】先に述べたように、この図における『録画
Button.Value = 6』『早送りButton.Value = 7』とい
ったオブジェクト変数に対する初期値の代入文は、ハー
ドウェアのキー割り当て部に依存する部分である。即
ち、筐体のデザインをのみを変更して新機種を開発する
場合、機械語コードになってROMに記憶されているそ
れぞれのオブジェクト変数の代入文(無論、機械語コー
ドの状態では、この代入文は即値をメモリに格納する格
納命令になっている。)の初期値をパッチ当てによって
書き換え、新たなキー割り当てを行ってゆく。このパッ
チ当てによってデザイン変更に対応してキーの割り当て
を変更してゆけば、新機種用の制御プログラムを作成で
きる。また、廉価版の機種、高級機種といった一連のラ
インナップの製品を開発する場合、パッチ当てによって
各機種に対応する初期値を書き込んでゆけば、それぞれ
の機種に対応する制御プログラムを作成してゆくことが
できる。
【0014】
【発明か解決しようとする課題】しかしながら上記従来
技術では、オブジェクトの再利用によって制御プログラ
ムを作成してゆく場合、図28の一例に示したオブジェ
クト変数の初期値変更が思うように捗らないといった問
題点があった。例えば、今度の新製品は旧機種のデザイ
ンを変更したのみのマイナーチェンジであり、その内部
仕様は旧機種の内部仕様を踏襲したものであるものとす
る。但し、このデザイン変更によってフロントパネルに
おけるボタン配置が旧機種のものから変更されており、
この変更にあたって、上記制御プログラムにおける図2
8に示したキー割り当て部を変更する必要がある。
【0015】新機種を開発するためにキーの割り当てを
変更しようとする場合、図28に示した『録画Button.V
alue=6』『早送りButton.Value=6』といった代入文で設
定される初期値を制御プログラムに対するパッチ当て等
によって書き換える必要があるが、例えば『録画Butto
n.Value=6』といった初期値を『6』から『12』に変
更しようとすると、初期値『12』がどのオブジェクト
変数にも設定されていない初期値なのか、あるいはどれ
かのオブジェクト変数に設定されている初期値なのかを
開発者は把握しなければならない。旧機種の制御プログ
ラムは既にROMに書き込み済みであるからこれのパッ
チ当てで上記の初期値変更が行えるが、ROMにパッチ
当てを行うような状況でこのようなオブジェクト変数と
その初期値の対応を把握するには、機械語コード状態に
ある制御プログラムをICE(In-Circuit Emulator)上で
起動する逆アセンブル機能等によって逐一ニーモニック
に変換して参照する必要がある。ところが機械語プログ
ラムの規模は何十kbyteに及ぶことが一般的であり、こ
のような逆アセンブル機能によるニーモニックの把握は
非常に労力が掛かる。またニーモニックでの把握はプロ
グラマの大きな負担であり、開発効率に大きな悪影響を
及ぼしていた。またプログラマ変数同士の係り合いを把
握し切れず、曖昧に把握したまま初期値の設定を行った
場合、ターゲットマシンが思いもよらない誤動作を行う
ことがありうる。この誤動作はソフトウェアの開発にお
いて大きな妨げになってしまう。
【0016】ところで図28に示したような制御プログ
ラムのソースプログラムを検索すればソースコード代入
文のレベルで初期値の設定を確認することができる。但
し制御プログラムの開発には多くのプログラマがソース
プログラムを分担していることが一般的であり、ソース
プログラムの総量は膨大になっている。この場合各開発
者は自分の担当箇所は確実に把握しているが、システム
全体で各オブジェクト変数の初期値設定がどうなってい
るかが把握し切れていないことが多い。このような状況
で他人のソースプログラムを検索してもどのオブジェク
ト変数にどのような初期値が設定されているかを把握す
るのは非常に困難であり、把握がなされていないままプ
ログラマが各自の判断において制御プログラムにパッチ
当てを行うことはとても危険である。
【0017】また、旧機種では、録画予約のMAX件数が
10件だったが、新製品では14件までMAX件数が増え
たものとする。この場合、各プログラマは自分の担当箇
所の初期値設定部に対しては、パッチ当てによる変更作
業を行うであろうが、制御プログラムの全般においてこ
のような変更が完全になされたかを確認する術はない。
従って、開発者の誰かがパッチ当てをし忘れたか完全に
パッチ当てが行われたかが新製品を動作させるまでわか
らないといった危険な状況を招いてしまう。
【0018】このように旧機種の制御プログラムを流用
して開発を進める場合にはハードウェアとの整合のため
のパラメータ(初期値)を変更する必要があり、この変
更作業を行う場合、上記のような問題点に行き当たって
しまう。そのため、オブジェクト指向型プログラムの導
入でも制御プログラムの再利用が思うように捗らないと
いった問題点に開発者側は直面してしまう。
【0019】また、従来技術におけるオブジェクト指向
型設計導入による開発の効率化では、各オブジェクト変
数の初期値を変更しようとすると、その変更で他のオブ
ジェクト変数の初期値がおかしくなってしまうことがあ
るという問題点があった。この問題点について再度図2
8を参照しながら説明を行う。図28の下半分におい
て、縦の並びには、先ず『再生オブジェクト』があり、
その下に『再生Button.Value = 3』があり、その下に
『再生Button.PushPort1 <= 再生Button.Value+α』が
あり、その下に『再生Button.PushPort2 <= table+再
生Button.Value*β』があるが、これは再生オブジェク
トが有しているキー割り当て用のオブジェクト変数『再
生Button.Value = 3』が、『再生Button.PushPort1 <=
再生Button.Value+α』『再生Button.PushPort2 <= t
able+再生Button.Value*β』といったメソッドで使用
されていることを示している。また本図において、縦の
並びには、先ず『一時停止ボタンオブジェクト』があ
り、その下に『一時停止Button.Value = 4』があり、
その下に『一時停止Button.PushPort1 <= 一時停止Butt
on.Value×γ』があり、その下に『一時停止Button.Pus
hPort2 <= table+一時停止Button.Value*β』がある
が、これは『一時停止オブジェクト』のキー割り当用の
『一時停止Button.Value = 4』が『一時停止Button.Pu
shPort1 <=一時停止Button.Value×γ』と、『一時停止
Button.PushPort2 <= table+一時停止Button.Value*
β』といったメソッドで使用されていることを示してい
る。
【0020】ここで、『録画Button.Value = 6』『早
送りButton.Value = 7』『再生Button.Value = 3』
『一時停止Button.Value = 4』といったキーの割り当
てを、『録画Button.Value = 1』『早送りButton.Valu
e = 8』『再生Button.Value =6』『一時停止Button.V
alue = 6』といった割り当てに変更しようとする場
合、オブジェクト変数『一時停止Button.Value』『再生
Button.Value』の初期値を使用している再生ボタンオブ
ジェクトや一時停止ボタンオブジェクトのメソッドと、
『再生Button.PushPort2 <= table+再生Button.Value
*β』『一時停止Button.PushPort2 <= table+一時停
止Button.Value*β』で値が設定されている『再生Butt
on.PushPort2』、『一時停止Button.PushPort2』等のオ
ブジェクト変数の値とがおかしくなってしまう。
【0021】このような瑕疵ある初期値変更を防止する
には、各オブジェクトが内部に持っている変数のうちメ
ソッドによって互いに係りあっている変数の初期値も併
せて変更しなければならない。ところがオブジェクト変
数は、オブジェクト内に隠蔽されていため、図28の下
半分に示したような機械語コードで検索するのが非常に
手間が掛かる。たとえオブジェクト変数を検索しても、
検索結果が膨大になって、このうち有意義なものを選別
する必要があり、この選別作業も手軽にできるものでは
ないため、上記の初期値変更作業が効率よく行えなかっ
た。
【0022】本発明は、複数のオブジェクトを有するソ
フトウェアシステムの開発環境において、プログラマに
よる各オブジェクトの変数初期値の変更作業が効率良く
行えるように当該変更作業の支援を行い、オブジェクト
の再利用性による制御プログラムの開発作業を効率化で
きるソフトウェア開発支援装置及びソフトウェア開発支
援方法を提供することを目的とする。
【0023】
【発明を解決するための手段】この課題を解決するため
に本発明は、オブジェクト名のオブジェクトが属するク
ラスや、ヘッダファイル内のクラス宣言文に示された各
クラスの親のクラス名の所定の親等内にあるクラスを探
索し、これらのクラスに属するオブジェクトのオブジェ
クト変数を一覧表示するようにしている。
【0024】これにより係り合いの強いオブジェクト変
数の初期値がどのように設定されているかが把握し易く
なる。
【0025】
【発明の実施の形態】本発明の請求項1に記載のソフト
ウェア開発支援装置は、複数の変数を有するオブジェク
トを組み合わせることでシステムを構築するオブジェク
ト指向型ソフトウェアシステムの開発環境に用いられ、
各オブジェクトが有する変数の変更作業を支援するソフ
トウェア開発支援装置であって、各オブジェクトが属す
るクラスの識別子と、そのクラスで宣言されている変数
識別子と、その親クラスの識別子とを対応させて記憶す
る第1記憶手段と、各オブジェクトのオブジェクト識別
子とクラス識別子との対応関係と、オブジェクト識別子
と変数識別子と変数の値との対応関係とを記憶する第2
記憶手段と、変更しようとする変数を有しているオブジ
ェクトのオブジェクト識別子について操作者の指定を受
け付ける第1受付手段と、当該第1受付手段により指定
されたオブジェクト識別子のオブジェクトが属するクラ
スを判定し、且つ、各クラスの親のクラス識別子を参照
して、当該クラスの所定の親等内にあるクラスを判定す
る判定手段と、判定手段によって判定されたクラスのク
ラス識別子について操作者の指定を受け付ける第2受付
手段と、第2受付手段が受け付けたクラスに属する全て
のオブジェクトのオブジェクト識別子と、それらのオブ
ジェクトが有する変数の変数識別子と、各変数の初期値
との対応を一覧表示する一覧表示手段とを備えることを
特徴としたものであり、第1記憶手段は、各オブジェク
トが属するクラスの識別子と、そのクラスで宣言されて
いる変数識別子と、その親クラスの識別子とを対応させ
て記憶しており、第2記憶手段は各オブジェクトのオブ
ジェクト識別子とクラス識別子との対応関係と、オブジ
ェクト識別子と変数識別子と変数の値との対応関係とを
記憶している。変更しようとする変数を有しているオブ
ジェクトのオブジェクト識別子についての操作者による
指定は第1受付手段によって受け付けられ、これを受け
て判定手段はオブジェクト識別子のオブジェクトが属す
るクラスを判定する。加えて各クラスの親のクラス識別
子が参照されて、当該クラスの所定の親等内にあるクラ
スが判定される。判定手段によって判定されたクラスの
クラス識別子について操作者の指定が第2受付手段によ
って受け付けられる。このように受け付けが行われる
と、一覧表示手段は、第2受付手段が受け付けたクラス
に属する全てのオブジェクトのオブジェクト識別子と、
それらのオブジェクトが有する変数の変数識別子と、各
変数の初期値との対応が一覧表示してゆく。このように
して各オブジェクトが有する変数の変更作業が支援され
てゆくという作用を有する。
【0026】本発明の請求項2に記載のソフトウェア開
発支援装置は、複数の変数を有するオブジェクトと、各
変数に初期値を代入する代入ブロックとからなるオブジ
ェクト指向型ソフトウェアシステムの開発環境に用いら
れ、各オブジェクトが有する変数の初期値の一覧表示を
行うことにより変数の初期値の変更作業を支援するソフ
トウェア開発支援装置であって、各オブジェクトが属す
るクラスのクラス名と、そのクラスで宣言されている変
数名と、その親のクラスのクラス名とを一対にしたクラ
ス宣言文を含むヘッダファイルを記憶する第1記憶手段
と、各オブジェクトのオブジェクト名とクラス名との対
応関係を示し、且つ、オブジェクト名と変数名との組み
合わせと変数の初期値との対応関係を示す前記ソフトウ
ェアシステムのソースファイルを記憶する第2記憶手段
と、代入ブロックにおいて初期値を変更しようとする変
数を有しているオブジェクトのオブジェクト名について
操作者の指定を受け付ける第1受付手段と、ソースファ
イルから指定されたオブジェクト名のオブジェクトが属
するクラスを判定し、且つ、ヘッダファイル内のクラス
宣言文に示された各クラスの親のクラス名を参照して、
当該クラスの所定の親等内にあるクラスを判定する判定
手段と、判定手段によって判定されたクラスのクラス名
について操作者の指定を受け付ける第2受付手段と、第
2受付手段が受け付けたクラスに属する全てのオブジェ
クトのオブジェクト名と、それらのオブジェクトが有す
る変数の変数名と、各変数の初期値との対応を一覧表示
する一覧表示手段とを備えることを特徴としたものであ
り、第1記憶手段には、各オブジェクトが属するクラス
のクラス名と、そのクラスで宣言されている変数名と、
その親のクラスのクラス名とが一対にしたクラス宣言文
が含まれるヘッダファイルが記憶されている。第1受付
手段はオブジェクト名について操作者の指定を受け付け
る。これによって初期値が変更される変数が指定され判
定手段は指定されたオブジェクトが属するクラスと当該
クラスの所定の親等内にあるクラスを判定する。この判
定処理で判定されたクラスの親のクラス名が参照され
て、当該クラスの所定の親等内にあるクラスが順次判定
される。このようにして幾つものクラスが順次判定され
てゆくと第2受け付け手段を介してクラス名が操作者に
よって指定される。このような指定に応じて一覧表示手
段は変数の変数名と、各変数の初期値との対応を一覧表
示する。これによって指定されたクラスに属する全ての
オブジェクトのオブジェクト名と、それらのオブジェク
トが有される変数の変数名と、各変数の初期値との対応
が一覧表示される。このようにして一覧表示がなされて
ゆき、オブジェクト指向型ソフトウェアシステムの開発
環境に従事している開発者の初期値変更作業が支援され
るという作用を有する。
【0027】また請求項3に記載のソフトウェア開発支
援装置は、判定手段は、ソースファイルから、受け付け
たオブジェクト名に対応するクラス名を探し出し、探し
出したクラス名をそのオブジェクトが属するクラスとす
る第1探索部と、ヘッダファイルにおいて第1探索部に
よって探し出されたクラス名と一対になっている親クラ
ス名を判定する第1判定部と、第1探索部によって探し
出されたクラス名を親クラス名としている全てのクラス
のクラス名を判定し、判定したクラスを子のクラスとす
る第2判定部と、第1判定部によって判定されたクラス
名を親クラス名としている全てのクラスを探し出し、探
し出されたクラスを兄弟のクラスとする第3判定部とを
備え、第2受付手段は、第1、第2、第3判定部によっ
て判定された親のクラス、子のクラス、兄弟のクラスの
クラス名を表示する第1表示部と、表示された親のクラ
ス、子のクラス、兄弟のクラスの何れかのクラス名につ
いて操作者の指定を受け付ける第1受付部とを備えるこ
とを特徴としたものであり、第1探索部はクラス名を探
し出しを行い探し出したクラス名をクラスとする。これ
によってソースファイルから受け付けたオブジェクト名
と対応がとられているクラス名が探し出され、探し出さ
れたクラス名がそのオブジェクトが属するクラスとされ
る。このようにして探し出されたクラス名と一対になっ
ている親クラス名を第1判定部は判定し、ヘッダファイ
ルにおいて第1探索部によって探し出されたクラス名と
一対になっている親クラス名を順次判定してゆく。第2
判定部はそのクラス名を親クラス名としている全てのク
ラスのクラス名を判定し、判定したクラスを子のクラス
とする。これによって子のクラスが判定される。このよ
うにして各クラスを子のクラスとして順次決定してゆ
く。第3判定部は更に第1判定部によって判定されたク
ラス名を親クラス名としているクラスを探し出す。次々
とクラスが探し出されると、それらのクラスが兄弟のク
ラスとみなされる。親のクラス、子のクラス、兄弟のク
ラスのクラス名は第1表示部によって表示される。この
ように表示が行われると、第1受付部がクラス名につい
て操作者の指定を受け付ける。これによって表示された
親のクラス、子のクラス、兄弟のクラスの何れかが指定
される。このようにして各クラスに対するクラス名につ
いての指定が受け付けられてゆくという作用を有する。
【0028】また請求項4に記載のソフトウェア開発支
援装置は、一覧表示手段は、第2受付手段が受け付けた
クラス名に対応するオブジェクト名をソースファイルか
ら探し出す第2探索部と、ソースファイルから、探し出
されたオブジェクト名と対応している変数名を全て探し
出し、それらの変数名に対応する初期値を探し出す第3
探索部と、探し出された当該オブジェクト名と変数名と
の組み合わせと初期値との対応関係を一覧表示する表示
部とを備えることを特徴としたものであり、第2探索部
は、オブジェクト名をソースファイルから探し出す。こ
れによって第2受付手段が受け付けたクラス名に対応が
とられているオブジェクト名がソースファイルから探し
出される。このようにしてオブジェクト名がソースファ
イルから探し出されてゆく。オブジェクト名が探し出さ
れると第3探索部は、ソースファイルから、変数名を全
て探し出し、それらの変数名に対応する初期値を探し出
す。これによってソースファイルから、探し出されたオ
ブジェクト名と対応している変数名が全て探し出され、
それらの変数名に対応がとられている初期値が探し出さ
れる。このようにして変数名及び初期値が順次探し出さ
れてゆく。変数名、初期値を順次取得すると表示部は一
覧表示行う。これによって探し出された当該オブジェク
ト名と変数名との組み合わせと初期値との対応関係が一
覧表示されるという作用を有する。
【0029】また請求項5に記載のソフトウェア開発支
援装置は、前記判定手段は更に、クラスにおいて検索を
望む親族を網羅する情報であるカテゴリ情報を記憶する
カテゴリ情報記憶手段と、第1、第2、第3判定部を制
御して、第1受付手段によって指定されたオブジェクト
名とカテゴリ情報とに基づいてクラスを判定させる判定
制御部とを備えることを特徴としており、第1、第2、
第3判定部が制御されて、第1受付手段によって指定さ
れたオブジェクト名とカテゴリ情報と係り合いがあるク
ラスが判定されてゆくという作用を有する。
【0030】また請求項6に記載のソフトウェア開発支
援装置は、判定手段は、クラス名を記憶するクラス名記
憶部と、所定の親等数を記憶する親等数記憶部と、第1
受付手段が受け付けたオブジェクト名のオブジェクトが
属するクラスのクラス名の親クラス名をクラス名記憶部
に書き込む第1書込部と、クラス宣言文から、クラス名
記憶部に書き込まれたクラス名と一対になっている親ク
ラス名を探し出し、探し出した親クラス名をクラス名記
憶部に書き込む第2書込部と、記憶された所定の親等数
だけ尊属に当たるクラスを親の方向へと探索してゆくよ
う、第2書込部の起動を繰り返す繰返部とを備え、第2
受付手段は、クラス記憶部に書き込まれる度に、書き込
まれたクラス名を順次表示する第1表示部と、表示され
たクラス名について操作者の指定を受け付ける第1受付
部とを備えることを特徴としたものであり、クラス名記
憶部には、クラス名が記憶されている。親等数記憶部に
は、所定の親等数が記憶されている。第1書込部はクラ
ス名をクラス名記憶部に書き込む。これによって第1受
付手段が受け付けたオブジェクト名のオブジェクトが属
するクラスのクラス名の親クラス名がクラス名記憶部に
書き込まれる。このようにしてクラスの親クラス名が順
次クラス名記憶部に書き込まれてゆく。続いて第2書込
部も親クラス名をクラス名記憶部に書き込む。これによ
ってクラス宣言文からクラス名記憶部に書き込まれたク
ラス名と一対になっている親クラス名が探し出され、探
し出された親クラス名がクラス名記憶部に書き込まれ
る。このようにしてクラス宣言文から、クラス名記憶部
に書き込まれたクラス名と一対になっている親クラス名
が探し出され、その親クラス名がクラス名記憶部に書き
込まれる。繰返部は、第2書込部を繰り返し起動する。
これによって記憶された所定の親等数だけ尊属に当たる
クラスが親の方向へと探索してゆく。このような制御に
よって尊属に当たるクラスへと探索が進んでゆく。第1
表示部はクラス名を順次表示する。これによってクラス
記憶部に書き込まれる度に、書き込まれたクラス名が順
次表示される。表示されたクラス名について第1受付部
によって操作者の指定が受け付けられる。このようにし
て指定が順次受け付けられてゆくという作用を有する。
【0031】また請求項7に記載のソフトウェア開発支
援装置は、判定手段は、クラス名を記憶するクラス名記
憶部と、所定の親等数を記憶する親等数記憶部と、第1
受付手段が受け付けたオブジェクト名のオブジェクトが
属するクラスのクラス名をクラス名記憶部に書き込む第
1書込部と、クラス宣言文から、クラス名記憶部に書き
込まれたクラス名が親クラス名として対になっているク
ラスを探し出し、探し出したクラスのクラス名をクラス
名記憶部に書き込む第2書込部と、親等数記憶部に記憶
された所定の親等数だけ卑属に当たるクラスを子の方向
へと探索してゆくよう、第2書込部の起動を繰り返す繰
返部とを備え、第2受付手段は、クラス記憶部に書き込
まれる度に、書き込まれた各クラス名を順次表示する第
1表示部と、表示されたクラス名について操作者の指定
を受け付ける第1受付部とを備えることを特徴としたも
のであり、クラス名記憶部には、クラス名が記憶されて
いる。親等数記憶部には、所定の親等数が記憶されてい
る。第1書込部は、クラス名をクラス名記憶部に書き込
む。これによって第1受付手段が受け付けたオブジェク
ト名のオブジェクトが属するクラスのクラス名がクラス
名記憶部に書き込まれる。このようにしてクラス名がク
ラス名記憶部に書き込まれてゆく。第2書込部はクラス
名をクラス名記憶部に書き込む。これによってクラス宣
言文から、クラス名記憶部に書き込まれたクラス名が親
クラス名として対になっているクラスが探し出され、探
し出されたクラスのクラス名がクラス名記憶部に書き込
まれる。このようにクラス名がクラス名記憶部に書き込
まれてゆく。この第2書込部の起動を繰返部は繰り返
す。これによって親等数記憶部に記憶された所定の親等
数だけ卑属に当たるクラスが子の方向へと探索してゆく
よう、第2書込部の起動が繰り返される。このようにし
て親等数記憶部に記憶された所定の親等数だけ卑属に当
たるクラスが順次探索されてゆく。第1表示部はクラス
記憶部に書き込まれる度に、書き込まれた各クラス名を
順次表示する。第1受付部は、表示されたクラス名につ
いて操作者の指定を受け付けるという作用を有する。
【0032】また請求項8に記載のソフトウェア開発支
援装置は、第1受付手段は更に、初期値を変更しようと
する変数の変数名について操作者の指定を受け付ける変
数名受付部を有し、判定手段は更に、第1受付手段が受
け付けたオブジェクト名のオブジェクトが属するクラス
の尊属に当たるクラスを親の方向へと順次探索してゆ
き、受け付けた変数名を宣言しているクラスを探し出す
第1探索部と、探し出されたクラスから子の方向を探索
してゆき、クラスの卑属にあたる全てのクラスを探し出
す第2探索部とを備え、第2受付手段は、第2探索部に
よって探し出されたクラスのクラス名の何れかについて
操作者の指定を受け付けることを特徴としたものであ
り、変数名受付部は、変数名について指定を受け付け
る。これによって初期値が変更しようとされる変数の変
数名について操作者の指定が受け付けられる。このよう
にして、操作者からの指定が順次受け付けられてゆく。
第1探索部はクラスの尊属に当たるクラスを親の方向へ
と順次探索してゆく。これによって第1受付手段が受け
付けたオブジェクト名のオブジェクトが属するクラスの
尊属に当たるクラスが親の方向へと順次探索されてゆ
き、受け付けた変数名が宣言しているクラスが探し出さ
れる。このようにして変数名を宣言しているクラスが探
し出されてゆく。第2探索部は、探し出されたクラスか
ら子の方向を探索してゆく。これによって探し出された
クラスから子の方向を探索してゆき、クラスの卑属にあ
たる全てのクラスが探し出される。このようにして当該
クラスの卑属にあたる全てのクラスが探し出されてゆ
く。クラスが探し出されると第2受付手段は操作者の指
定を受け付ける。これによって第2探索部によって探し
出されたクラスのクラス名の何れかについて操作者の指
定が受け付けられる。このようにして操作者の指定が受
け付けられてゆくという作用を有する。
【0033】また請求項9に記載のソフトウェア開発支
援装置は、第1探索部は、クラス名を記憶する第1クラ
ス名記憶部と、第1受付手段が受け付けたオブジェクト
名のオブジェクトが属するクラスのクラス名の親クラス
名をクラス名記憶部に書き込む第1書込部と、クラス名
記憶部に書き込まれたクラス名のクラスに変数名受付部
が受け付けた変数名が一対になっているか否かを判定
し、一対になっていると、そのクラスが変数名を宣言し
ているクラスとする第1判定部と、変数名が一対になっ
ていなければ、引き続き尊属に当たるクラスを親の方向
へと探索してゆくよう第1書込部を起動を繰り返す第1
繰返部とを備え、第2探索部は、クラス名を記憶する第
2クラス名記憶部と、第1探索部によって探し出された
クラス名をクラス名記憶部に書き込む第2書込部と、ク
ラス宣言文から、クラス名記憶部に書き込まれたクラス
名が親クラス名として対になっているクラスを探し出
し、探し出されたクラスのクラス名を子クラスとしてク
ラス名記憶部に書き込む第3書込部と、親クラス名とし
て一対になっているクラス名が無くなるまで、卑属に当
たるクラスを子の方向へと探索してゆくよう第3書込部
の起動を繰り返す第2繰返部とを備えることを特徴とし
たものであり、第1クラス名記憶部には、クラス名が記
憶されている。第1書込部は親クラス名をクラス名記憶
部に書き込む。これによって第1受付手段が受け付けた
オブジェクト名のオブジェクトが属するクラスのクラス
名の親クラス名がクラス名記憶部に書き込まれる。この
ようにして親クラス名が順次クラス名記憶部に書き込ま
れてゆく。第1判定部は、変数名受付部が受け付けた変
数名が一対になっているか否かを判定する。これによっ
てクラス名記憶部に書き込まれたクラス名のクラスに変
数名受付部が受け付けた変数名が一対になっているか否
かが判定がされ、一対になっていると、そのクラスが変
数名が宣言しているクラスとされる。このようにして変
数名が宣言されているクラスが判定されてゆく。第1繰
返部は第1書込部を起動を繰り返す。これによって上記
判定において変数名が一対になっていなければ、引き続
き尊属に当たるクラスが親の方向へと探索してゆくよう
第1書込部が起動が繰り返される。このようにして引き
続き尊属に当たるクラス探索が続けられる。第2クラス
名記憶部にはクラス名が記憶されている。第2書込部は
クラス名をクラス名記憶部に書き込む。これによって第
1探索部によって探し出されたクラス名がクラス名記憶
部に書き込まれる。第3書込部はクラス宣言文において
対になっているクラスを探し出し、クラス名を子クラス
としてクラス名記憶部に書き込む。これによってクラス
宣言文から、クラス名記憶部に書き込まれたクラス名が
親クラス名として対になっているクラスが探し出され、
探し出されたクラスのクラス名が子クラスとしてクラス
名記憶部に書き込まれる。このようにしてクラスが順次
探し出され、子クラスとして順次クラス名記憶部に書き
込まれる。第3書込部の起動を第2繰返部は繰り返す。
これによって親クラス名として一対になっているクラス
名が無くなるまで、卑属に当たるクラスが子の方向へと
探索してゆくよう第3書込部の起動が繰り返される。こ
のようにして親クラス名として一対になっているクラス
名が無くなるまで、卑属に当たるクラスが子の方向へと
探索してゆくよう第3書込部の起動が繰り返されるとい
う作用を有する。
【0034】また請求項10に記載のソフトウェア開発
支援装置は、ソフトウェア開発支援装置は更に、一覧表
示手段によって一覧表示された各オブジェクトが有する
変数の初期値を変更するための数値入力を受け付ける第
3受付手段と、第2記憶手段に記憶されているソースフ
ァイルにおける、当該オブジェクトのオブジェクト名と
変数名との組み合わせに対応している初期値を、数値入
力された値に更新する更新手段とを備えることを特徴と
したものであり、第3受付手段は数値入力を受け付け
る。これによって一覧表示手段によって一覧表示された
各オブジェクトが有される変数の初期値を変更するため
の数値入力が受け付けられる。更新手段は、ソースファ
イルにおける初期値を、数値入力された値に更新する。
これによって第2記憶手段に記憶されているソースファ
イルにおける、当該オブジェクトのオブジェクト名と変
数名との組み合わせに対応している初期値が、数値入力
された値に更新される。このようにして、第2記憶手段
に記憶されているソースファイルにおける、当該オブジ
ェクトのオブジェクト名と変数名との組み合わせに対応
している初期値が、数値入力された値に更新されてゆく
という作用を有する。
【0035】また請求項11に記載のソフトウェア開発
支援方法は、複数の変数を有するオブジェクトと、各変
数に初期値を代入する代入ブロックとからなるオブジェ
クト指向型ソフトウェアシステムの開発環境に用いら
れ、各オブジェクトが有する変数の初期値の一覧表示を
行うことにより変数の初期値の変更作業を支援するソフ
トウェア開発支援方法であって、代入ブロックにおいて
初期値を変更しようとする変数を有しているオブジェク
トのオブジェクト名について操作者の指定を受け付ける
第1受付ステップと、各オブジェクトのオブジェクト名
とクラス名との対応関係を示し、且つ、オブジェクト名
と変数名との組み合わせと変数の初期値との対応関係を
示す前記ソフトウェアシステムのソースファイルから指
定されたオブジェクト名のオブジェクトが属するクラス
を判定する第1判定ステップと、各オブジェクトが属す
るクラスのクラス名と、そのクラスで宣言されている変
数名と、その親のクラスのクラス名とを一対にしたクラ
ス宣言文を含むヘッダファイル内のクラス宣言文に示さ
れた各クラスの親のクラス名を参照して、当該クラスの
所定の親等内にあるクラスを判定する第2判定ステップ
と、第1、第2判定ステップによって判定されたクラス
のクラス名について操作者の指定を受け付ける第2受付
ステップと、第2受付ステップが受け付けたクラスに属
する全てのオブジェクトのオブジェクト名と、それらの
オブジェクトが有する変数の変数名と、各変数の初期値
との対応を一覧表示する一覧表示ステップと、からなる
ことを特徴としたものであり、ソフトウェア開発支援方
法は、複数の変数を有するオブジェクトと、各変数に初
期値を代入する代入ブロックとからなるオブジェクト指
向型ソフトウェアシステムの開発環境に用いられ、各オ
ブジェクトが有する変数の初期値の一覧表示を行うこと
により変数の初期値の変更作業を支援する。
【0036】具体的には、第1受付ステップはオブジェ
クト名について操作者の指定を受け付ける。これによっ
て代入ブロックにおいて初期値が変更されようとしてい
る変数が有しているオブジェクトのオブジェクト名につ
いて操作者の指定が受け付けられる。このようにして、
操作者の指定が受け付けられてゆく。第1判定ステップ
は、ソースファイルから指定されたオブジェクト名のオ
ブジェクトが属するクラスを判定する。これによって各
オブジェクトのオブジェクト名とクラス名との対応関係
が示され、且つ、オブジェクト名と変数名との組み合わ
せと変数の初期値との対応関係を示している前記ソフト
ウェアシステムのソースファイルから指定されたオブジ
ェクト名のオブジェクトが属するクラスが判定される。
このようにして、オブジェクト名のオブジェクトが属す
るクラスが順次判定されてゆく。
【0037】第2判定ステップでは、当該クラスの所定
の親等内にあるクラスを判定する。これによって各オブ
ジェクトが属するクラスのクラス名と、そのクラスで宣
言されている変数名と、その親のクラスのクラス名とが
一対にしたクラス宣言文が含まれるヘッダファイル内の
クラス宣言文に示された各クラスの親のクラス名が参照
されて、当該クラスの所定の親等内にあるクラスが判定
される。このようにして、当該クラスの所定の親等内に
あるクラスが判定されてゆく。
【0038】第2受付ステップは、第1、第2判定ステ
ップによって判定されたクラスのクラス名について操作
者の指定を受け付ける。一覧表示ステップは、変数の変
数名と、各変数の初期値との対応を一覧表示する。これ
によって第2受付ステップが受け付けたクラスに属する
全てのオブジェクトのオブジェクト名と、それらのオブ
ジェクトが有される変数の変数名と、各変数の初期値と
の対応が一覧表示される。このようにして、変数名と、
各変数の初期値との対応が一覧表示されてゆくという作
用を有する。
【0039】また請求項12に記載のソフトウェア開発
支援方法は、第1判定ステップは、ソースファイルか
ら、受け付けたオブジェクト名に対応するクラス名を探
し出し、探し出したクラス名をそのオブジェクトが属す
るクラスとする第1探索サブステップを備え、第2判定
ステップは、ヘッダファイルにおいて第1探索サブステ
ップによって探し出されたクラス名と一対になっている
親クラス名を判定する第1判定サブステップと、第1探
索サブステップによって探し出されたクラス名を親クラ
ス名としている全てのクラスのクラス名を判定し、判定
したクラスを子のクラスとする第2判定サブステップ
と、第1判定サブステップによって判定されたクラス名
を親クラス名としている全てのクラスを探し出し、探し
出されたクラスを兄弟のクラスとする第3判定サブステ
ップとからなり、第2受付ステップは、第1、第2、第
3判定サブステップによって判定された親のクラス、子
のクラTス、兄弟のクラスのクラス名を表示する第1表
示サブステップと、表示された親のクラス、子のクラ
ス、兄弟のクラスの何れかのクラス名について操作者の
指定を受け付ける第1受付サブステップとからなること
を特徴としたものであり、第1探索サブステップは、ソ
ースファイルから、受け付けたオブジェクト名に対応す
るクラス名を探し出す。これによってソースファイルか
ら、受け付けたオブジェクト名に対応がとられているク
ラス名が探し出され、探し出されたクラス名がそのオブ
ジェクトが属するクラスとされる。このようにして、順
次クラス名が探し出されてゆく。
【0040】第2判定ステップは、第1判定サブステッ
プは、親クラス名を判定するこれによってヘッダファイ
ルにおいて第1探索サブステップによって探し出された
クラス名と一対になっている親クラス名が判定される。
このようにして、親クラス名が順次判定されてゆく。第
2判定サブステップは、第1探索サブステップによって
探し出されたクラス名を親クラス名としている全てのク
ラスのクラス名を判定する。これによって、第1探索サ
ブステップによって探し出されたクラス名が親クラス名
としている全てのクラスのクラス名が判定がされ、判定
したクラスが子のクラスとされる。このようにして、子
のクラスが順次判定されてゆく。第3判定サブステップ
は、第1判定サブステップによって判定されたクラス名
を親クラス名としている全てのクラスを探し出す。これ
によって第1判定サブステップによって判定されたクラ
ス名が親クラス名としている全てのクラスが探し出さ
れ、探し出されたクラスが兄弟のクラスとみなされる。
このようにして第1判定サブステップによって判定され
たクラス名が親クラス名としている全てのクラスが探し
出され、探し出されたクラスが兄弟のクラスとされてゆ
く。第1表示サブステップは親のクラス、子のクラス、
兄弟のクラスのクラス名を表示する。これによって第
1、第2、第3判定サブステップによって判定された親
のクラス、子のクラス、兄弟のクラスのクラス名が表示
される。このようにして、第1、第2、第3判定サブス
テップによって判定された親のクラス、子のクラス、兄
弟のクラスのクラス名が順次表示されてゆく。第1受付
サブステップでは、表示された親のクラス、子のクラ
ス、兄弟のクラスの何れかのクラス名について操作者の
指定を受け付ける。これによって表示された親のクラ
ス、子のクラス、兄弟のクラスの何れかのクラス名につ
いて操作者の指定が受け付けられるという作用を有す
る。
【0041】また請求項13に記載のソフトウェア開発
支援方法は、一覧表示ステップは、第2受付ステップが
受け付けたクラス名に対応するオブジェクト名をソース
ファイルから探し出す第2探索サブステップと、ソース
ファイルから、探し出されたオブジェクト名と対応して
いる変数名を全て探し出し、それらの変数名に対応する
初期値を探し出す第3探索サブステップと、探し出され
た当該オブジェクト名と変数名との組み合わせと初期値
との対応関係を一覧表示する表示サブステップとからな
ることを特徴としたものであり、第2探索サブステップ
はオブジェクト名をソースファイルから探し出す。これ
によって第2受付ステップが受け付けたクラス名に対応
がとられているオブジェクト名がソースファイルから探
し出される。このようにして、第2受付ステップが受け
付けたクラス名に対応がとられているオブジェクト名が
ソースファイルから探し出されてゆく。第3探索サブス
テップはソースファイルから探し出されたオブジェクト
名と対応している変数名を全て探し出し、それらの変数
名に対応する初期値を探し出す。これによってソースフ
ァイルから、探し出されたオブジェクト名と対応してい
る変数名が全て探し出され、それらの変数名に対応がと
られている初期値が探し出される。このようにして、初
期値が順次探し出されてゆく。表示サブステップは探し
出された当該オブジェクト名と変数名との組み合わせと
初期値との対応関係を一覧表示する。これによって探し
出された当該オブジェクト名と変数名との組み合わせと
初期値との対応関係が一覧表示される。このようにし
て、探し出された当該オブジェクト名と変数名との組み
合わせと初期値との対応関係が一覧表示されてゆくとい
う作用を有する 以下本発明のソフトウェア開発支援装置の実施形態につ
いて、図面を参照しながら説明する。
【0042】(実施の形態1)先ず、図1のフロ−チャ
−トを参照しながらオブジェクト指向型のプログラムの
開発過程について説明を行う。図1は、オブジェクト指
向型プログラムの開発過程についてのフロ−チャ−トで
ある。尚以降の説明において特に断らない限り、本実施
形態の具体例には、図26、図27に示した説明図の具
体例、及び、図28に示したプログラム例に準じた具体
例を用いる。また図1以降の図は、この具体例に準じた
ものになっている。
【0043】本図の分析工程においては、作成すべきソ
フトウェアシステム(制御プログラム)をどのように実
現するかを分析し、概略仕様を決定する。このような分
析によって、ターゲットマシンの概略仕様が決定されて
ゆく(ステップK1)。ステップK1の実行後、ステッ
プK2に移行する。ステップK2の設計工程において
は、作成すべきソフトウェアにどのような機能を持たせ
るかを決定してクラスを設計してゆき、各クラスの変
数、メソッドを定義してゆく。
【0044】これによって作成すべきソフトウェアにど
のような機能が持たせるかが決定してクラスが設計され
てゆき、各クラスの変数、メソッドが定義されてゆく。
ステップK2の実行後、ステップK3に移行する。ステ
ップK3の製造工程においては、各クラスに基づいてコ
ーディングを行い、コンパイルを行って、オブジェクト
を製造してゆく。この後、オブジェクトのリンクを行
い、デバッグ(単体デバッグ)を行う。
【0045】ステップK3の実行後、ステップK4に移
行する。ステップK4のテスト工程においては、製造さ
れたソフトウェアをハードウェア上で動作させ、仕様と
の整合を最終確認する。これによって製造されたソフト
ウェアがハードウェア上で動作させられ、仕様との整合
が最終確認される。このように整合を確認してゆき、キ
ーの割り当ての変更等、ハードウェア側の変更があれば
(ステップK5でNo)、再度ステップK3に戻って、コ
ーディングのやり直しを行う。以上のテスト工程で仕様
との整合がとられるまでステップK3〜ステップK4を
繰り返す。
【0046】仕様との整合作業が初期値の変更作業で済
み場合、このステップK3に戻らずにステップK4の工
程で制御プログラムにパッチ当てを行い、この変更作業
を行う。特に旧機種の制御プログラムをベースにして新
機種の制御プログラムを開発する場合には、開発者はス
テップK4において図28に示したソースファイルに対
応する箇所にパッチ当てを行い仕様との整合を図る。オ
ブジェクト指向型のソフトウェアでは、このようなオブ
ジェクトの再利用によって制御プログラムを開発してゆ
く。
【0047】<開発環境の説明>次に図2の説明図を参
照しながら、ターゲットマシンのソフトウェアの開発環
境について説明を行う。図2はターゲットマシンのソフ
トウェアの開発環境を説明するための説明図である。本
実施形態におけるソフトウェア開発は、C言語風のオブ
ジェクト指向型プログラミング言語によってソースファ
イルを記述するものである。記述されたソースファイル
f1、f2、f3・・・は後述するファイルサーバに蓄
積され、ファイルとしてコンパイラに与えられる。コン
パイラ100は、これらのソースファイルが与えられる
と、クラス宣言文が記述されたヘッダファイル(図中で
は、クラス宣言ヘッダと記述している。)を一点鎖線の
矢印で示すように、これらをソースファイル内に取り込
む。このように取り込んだ後、コンパイラは、ソースフ
ァイルを翻訳し、プログラムmain(図28に示したmain
()部に相当)、オブジェクトg1、g2、g3・・を
生成する。尚、ソースファイルのどこからどこまでを1
つのソースファイルにするかは開発者側に一任されてい
る。即ち、多くのプログラマが開発に携わっている場
合、なるべく多くのソースファイルに分割して、多くの
プログラマに分業させることで、プログラム開発の分業
化が図られる。但し、それらのソースファイルのクラス
部は、ヘッダファイルとしてファイルサーバの別のディ
レクトリィに格納される。このコンパイラ100は、翻
訳の前にこのヘッダファイルを各ソースファイル内に取
り込み、取り込んだ後に翻訳を行う。またコンパイラに
は、本図におけるターゲットマシンのプロセッサの命令
仕様が設定されており、このプロセッサ120の命令仕
様に応じたオブジェクトを生成する。
【0048】ここで生成されたオブジェクトのファイル
は、このソースファイルと1対1に対応しており、ター
ゲットマシンのプロセッサが解読可能な機械語命令の状
態になっている。尚本図においてコンパイラ100に対
しての入出力は破線の矢印で示しているが、これはソー
スファイルの翻訳が、それぞれ個別に行われることを示
している。
【0049】全てのソースファイルからオブジェクトが
生成されるとプログラマはこれらに対してリンカ110
を起動する。リンカ110はこれらのオブジェクトをタ
ーゲットマシン内のメモリに割り当て、これらを1つに
結合して、ターゲットマシン用のロードモジュールを生
成する。このように生成されたロードモジュールは、タ
ーゲットマシン内のROMに書き込まれる。そして、ロ
ードモジュール内の機械語命令は、ターゲットマシン内
に備えられたマイクロプロセッサによって逐一解読され
る。
【0050】次に、図3の説明図を参照しながらコンパ
イラ時でのヘッダファイルとソースファイルとの関係に
ついて説明を行う。本図では、図2のソースファイルと
ヘッダファイルとの対応をより詳細に表したものであ
る。即ち、図3は図2におけるソースファイル及びヘッ
ダファイルの内部を表し、ヘッダファイルの内部がどう
なっているか、あるいはソースファイル内にどう取り込
まれるかを明らかにしている。本図において、ヘッダフ
ァイル『class1.h』では、クラスの宣言がなされてい
る。一方、ソースファイル『module1.c』では、その冒
頭の文『#include <class1.h>』において、ヘッダフ
ァイル『class1.h』を内部に取り込むことを明示してい
る。図2におけるコンパイラによるコンパイルは、この
ようにヘッダファイルが取り込まれたソースファイルに
対して行われる。
【0051】<クラス宣言の説明>次に、図4の説明図
を参照しながらクラスについて説明を行う。図4はクラ
スの定義と、クラスとオブジェクトとの関係について説
明するため説明図である。本図において、『クラス』
『押ボタンクラス』『数値ボタンクラス』といった文字
列が書かれた4角形がクラスを示す。これらのクラスの
うち、継承関係にあるもの同士を線で結んでいる。即
ち、これらの線で対応するもの同士が、継承関係にあ
る。本図において『ボタンクラス』があり、これと『押
しボタンクラス』『数値ボタンクラス』『トグルボタン
クラス』が実線で結ばれているが、これは『ボタンクラ
ス』と、『押しボタンクラス』『数値ボタンクラス』
『トグルボタンクラス』とが互いに継承関係にあること
を意味する。即ち、本図では、クラス間の変数、メソッ
ドの継承関係が実線による親子関係で表されている。
【0052】本図において、ボタンオブジェクトの中に
は、先ずオブジェクトの名称を示す文字列『ボタン』が
あり、その下に『性格:押下を受け付けて状態が変わ
る』があるが、これらが上記のクラスにおける特徴を具
体的に示している。即ち、クラス『ボタン』が、『性
格:押下を受け付けて状態が変わる』といった特徴を有
していることを意味する。
【0053】本図において、ボタンオブジェクトの中に
は、先ずオブジェクトの名称を示す文字列『押しボタン
クラス』があり、その下に『押下されている間だけ状態
を維持』があるが、これらは『押しボタンオブジェク
ト』の特徴が、上記ボタンクラスの特徴と、『押下され
ている間だけ状態を維持』とからなることを意味する。
本図において、数値ボタンオブジェクトの中には、先ず
オブジェクトの名称を示す文字列『数値ボタンクラス』
があり、その下に『押下された位置を数値として出力』
があるが、これは『数値ボタンクラス』の特徴が、ボタ
ンクラスの特徴と上記『押下された位置を数値として出
力』とからなることを意味する。これらの図中の説明が
上記のクラスにおける各クラスの特徴を具体的に示して
いる。
【0054】本図において、『トグルボタンクラス』の
縦の並びには、その下に『押下された状態を維持し続け
る。』があるが、これは『トグルボタンクラス』の性格
が、上記ボタンクラスの特徴と、『押下された状態を維
持し続ける。』とからなることを意味する。即ち、各ク
ラスに対応づけて書かれた文字列が、各クラスのみに付
加された特徴を具体的に示している。本図の押しボタン
クラスからは、破線の矢印が伸び、その先に再生オブジ
ェクト、録画オブジェクトが記述されているが、これ
は、これらのオブジェクトが上記の製造工程を経ること
で生成されることを示している。
【0055】次に、これらのクラスがヘッダファイル内
でどのように表されているか、またこれらのクラスから
オブジェクトが如何に生成されるかを図面を参照しなが
ら説明を行う。図5は図6のオブジェクト指向型プログ
ラム開発用のプログラム言語で記述されたクラスの宣言
部のヘッダファイルである。本図は、図4に示したクラ
スの説明図をより具体的に表している。即ち、図4にお
けるのクラスの継承関係を実現するには、どのようにヘ
ッダファイルを記述すべきがを明らかにしている。
【0056】この図5、図6を参照しながらヘッダファ
イルについて説明を行う。尚これらの図には、随所に
『{/*』『*/』といった一対の記号で囲まれた文字
列が存在するが、これはコメント文であり、ヘッダファ
イルの各部を解説するために記述された文である。本実
施形態において、クラスの宣言の記述は以下の文法に準
じている。
【0057】 クラス名:親クラス名{ 変数の宣言 メソッドの宣言 } 図5において、縦の並びには、先ず『class Button{/
*ボタンクラス*/』があり、その下に『public:』が
あり、その下に『int:Value;/*変数*/』があり、そ
の下に『void ButtonPressed(int Value)/*メソッド
*/』があり、その下に『}』があるが、これらは、上
記の図3の説明図で模式的に示したクラスを如何に表す
かを具体的に示している。これは『class Button{/*
ボタンクラス*/』と、『public:』と、ボタンクラス
が有する変数の宣言文『int:Value;/*変数*/』と、
ボタンクラスが有するメソッドの宣言文の『void Butto
nPressed(int Value)/*メソッド*/』と、『}』と
で上記ボタンクラスの宣言がなされていることを意味す
る。
【0058】図5において、『class Pushbutton:Butto
n{/*押しボタンクラス*/』の縦の並びには、コメ
ント文『/*ボタンクラスのサブクラスなので変数、メ
ソッドを継承している。*/』があり、その下に『publ
ic:』があり、その下に『/*押しボタンクラスのロー
カル変数*/』があり、その下に『 int Value』があ
り、その下に『 int PushPort1』があり、その下に『 i
nt PushPort2』があるが、これらのコーディング部が上
記図4における押しボタンクラスの宣言部を具体的に示
している。
【0059】これは『class Pushbutton:Button{/*
押しボタンクラス*/』の、『〜Pushbutton:Button
〜』は、コメント文『/*ボタンクラスのサブクラスな
ので変数、メソッドを継承している。*/』の内容通り
に押しボタンクラスが、親クラスであるボタンクラスの
特徴を継承していることを示している。即ち、図4のク
ラス間において実線で表されているクラス間の継承関係
を示している。『int PushPort1』と、『 int PushPort
2』とは、コメント文『/*押しボタンクラスのローカ
ル変数*/』の内容通りに押しボタンクラス内のみで使
用される変数の宣言部を示している。その下の『void d
o1(int Value)』は、コメント文『/*押しボタンによ
る制御のためのメソッド*/』の内容通りに、押しボタ
ンクラス内のみで使用されるメソッドの宣言部を示して
いる。
【0060】また図5において、『class Numbutton:Bu
tton{/*数値ボタンクラス*/』縦の並びには、先ず
『/*ボタンクラスのサブクラスなので変数、メソッド
を継承している。*/』があり、その下に『public:』
があり、その下に『/*数値ボタンクラスのローカル変
数*/』があり、その下に『 int NumKey1』があり、そ
の下に『 int NumPort1』があり、その下に『int NumPo
rt2』があり、『voiddo2(int Value)/*数値ボタンに
よる制御のためのメソッド*/』があるが、これは数値
ボタンクラスのコーディング部を示している。即ち、数
値ボタンオブジェクトの宣言文『class Numbutton: Bu
tton』は、コメント文『/*ボタンクラスのサブクラス
なので変数、メソッドを継承している。*/』通りにボ
タンクラスの特徴を継承していることを示している。
【0061】また本図は、数値ボタンオブジェクトは、
コメント文『/*数値ボタンクラスのローカル変数*
/』通りに『 int NumKey1』と、『 int NumPort1』
と、『 int NumPort2』とのオブジェクト変数の宣言部
を含んでおり、メソッド『void do2(int Value)/*数
値ボタンによる制御のためのメソッド*/』を含んでい
ることを示している。
【0062】図6において、『class Togglebutton:But
ton{/*トグルボタンクラス*/』の縦の並びには、
先ず『/*ボタンクラスのサブクラスなので変数、メソ
ッドを継承している。*/』があり、その下に『publi
c:』があり、その下に『/*トグルボタンクラスのロー
カル変数*/』があるが、これは上記数値ボタンクラス
の宣言が、『class Togglebutton:Button{』『〜lebut
ton:Button〜』でボタンクラスの特徴を継承することを
示している。
【0063】その下の『class Togglebutton:Button
{/*トグルボタンクラス*/』の縦の並びには、トグ
ルボタンオブジェクトが、『 int ToggleKey1』の宣言
文と、『int TogglePort1』の宣言文と、『int ToggleP
ort2』の宣言文とを含んでいることを示している。図6
において、『/*ボタンクラスにおけるメソッドの定義
*/』の縦の並びには、先ず『void Button::buttonPre
ssed(int value){』があり、その下に『Control.do(se
lf.Value)/*メッセージの送信*/』があるが、これ
らは、クラスのメソッドを示すコーディングを示してい
る。
【0064】本図において『Control.do(self.Valu
e){』の縦の並びの下に『GetSensorValue()/*メッセ
ージの送信*/』があり、その下に『RotateMoter()/
*メッセージの送信*/』があるが、これはメソッド
『Control.do(self.Value){』は、『GetSensorValue()
/*メッセージの送信*/』と、『RotateMoter()/*
メッセージの送信*/』とを含んでいることを示してい
る。即ち、図の一例でオブジェクト間の矢印によって表
したメッセージの送信は、ソースプログラムレベルで
は、このようなオブジェクトの呼び出しのコーディング
によって表される。
【0065】<インスタンス変数の初期値について>図
7は、図5、図6のクラス例からオブジェクトを生成す
る部分を示すソースファイルのコーディング例である。
本図において、縦の並びには、先ず『void main(){』
があり、その下に『/*インスタンスのポインタを定義
*/ 』があり、その下に『NumButton *NumButtonInsta
nce1,*NumButtonInstance1; 』があり、その下に『Push
Button *PushButtonInstance1 』があり、その下に『To
ggleButton *ToggleInstance1;』があるが、これらはク
ラスのポインタを定義していることを示している。
【0066】またこの縦の並びは『NumButton *NumButt
onInstance1,*NumButtonInstance1;』と、『PushButton
*PushButtonInstance1 』と、『ToggleButton *Toggle
Instance1;』といったインスタンスのポインタを定義が
冒頭にまとめられていることを示している。次に本図を
参照して、インスタンスの生成のコーディング例につい
て説明する。本図において、『再生Button=new NumB
utton();』の縦の並びには、『再生Button =new Pu
shButton();』があり、その下に『/*再生ボタンのイ
ンスタンス(オブジェクト)を生成*/』があり、その
下に『録画Button =newPushButton();』があり、そ
の下に『/*録画ボタンのインスタンス(オブジェク
ト)を生成*/ 』がある。更にその下に『巻戻しButt
on =new PushButton();』があり、その下に『/*
巻戻しボタンのインスタンス(オブジェクト)を生成*
/』があり、その下に『早送りButton =new PushBu
tton();』があり、その下に『/*早送りボタンのイン
スタンス(オブジェクト)を生成*/』がある。これら
はインスタンス文であり、以下の文法で、クラスからオ
ブジェクトを生成する。
【0067】{インスタンス文} オブジェクト名=new クラス名 機能:クラス名のクラスからオブジェクト名のオブジェ
クトを生成する。本図おいて、この文の等号の左辺の
『録画Button』『巻戻しButton』『早送りButton』はこ
のインスタンス文で生成されるオブジェクトのオブジェ
クト名である。これらのオブジェクトは、等号の右辺の
クラス名『PushButton()』から生成される。即ち、これ
らのインスタンス文では、押しボタンクラスから、オブ
ジェクト『再生Button』『録画Button』『巻戻しButto
n』『早送りButton』が生成されている。
【0068】本図において、『/*インスタンス変数の
設定*/』の縦の並びには、『再生Button.Value=3』が
あり、その下に『録画Button.Value=1』があり、その下
に『巻戻しButton.Pushport1=24』があり、その下に
『早送りButton.Pushport1=56』があり、その下に『巻
戻しButton.Pushkey1=43』があり、その下に『早送りBu
tton.Pushkey1=55』があるが、これらは、上記インスタ
ンス文によって生成したオブジェクトに値が設定される
箇所のコーディング例を具体的に示している。
【0069】即ち、『再生Button.Value=3』『録画Butt
on.Value=1』では、再生ボタンオブジェクトが有するオ
ブジェクト変数『再生Button.Value』『録画Button.Val
ue』(この変数Valueが宣言されているのはボタンクラ
スであり、再生ボタンオブジェクトの生成元のクラスで
宣言されているものではないが、押しボタンクラスはボ
タンクラスの特徴を継承していため、ボタンクラスで宣
言されている変数を使用することができる。)にそれぞ
れ、初期値『3』『1』が設定されていることを示して
いる。
【0070】同様にその下の代入文『巻戻しButton.Pus
hport1=24』と、『早送りButton.Pushport1=56』と、
『巻戻しButton.Pushkey1=43』と、『早送りButton.Pus
hkey1=55』とでインスタンス文によって生成されたオブ
ジェクトに値が設定されている。次に、図8の説明図を
参照しながら図1のフロ−チャ−トに示した開発環境で
用いられる機器について説明を行う。図8に示すよう
に、本開発環境では、ファイルサーバ1と、ROMライ
タ2と、試験装置3と、ソフトウェア開発支援装置4
と、多数のワークステーション11a、11b、11c
・・・・が使用される。尚本図において、ソースファイ
ル、ヘッダファイル等のロードモジュールの生成過程で
得られるファイルが送られる経路を破線の矢印で示して
いる。即ち、これらのファイルは、矢印で指示される機
器に送られる。本図において実線の矢印はロードモジュ
ールが送られる経路を示しており、この実線の矢印がR
OMライタ2に与えられているが、これはロードモジュ
ールがROMライタ2に送られることを意味する。また
本図において破線の矢印はソースファイル、ヘッダファ
イルが流れる経路を示しており、この破線の矢印が試験
装置3、ソフトウェア開発支援装置4に与えられている
が、これはソースファイル、ヘッダファイルが試験装置
3、ソフトウェア開発支援装置4に与えられてゆくこと
を意味する。尚、ファイルサーバ1と試験装置3、ソフ
トウェア開発支援装置4間は、LAN(Local Area N
etwork)によって互いに接続している。そして、この矢
印に示したファイルのやりとりは、ネットワークのファ
イル転送プロトコル(File Transration Protocol(FT
P))によって実現される。
【0071】ファイルサーバ1には、ソースファイル等
のファイルが蓄積されて、コンパイラ及びリンカが動作
する。ファイルサーバは、上記LANによって多数のワ
ークステーション11a、11b、11c、11d・・
・と接続し、これのワークステーション11a、11
b、11c、11d・・・でプログラマ達は各自の作業
を行って、このファイルサーバ1上でファイルを共用し
合う。
【0072】ROMライタ2は、ファイルサーバ1とネ
ットワークを介して接続しており、ファイルサーバ1か
らロードモジュールをダウンロードしてROMに書き込
む。また、このROMライタ2は、ROM中のロードモ
ジュールにパッチを当てて初期値を変更するといったパ
ッチ当て機能も有している。試験装置3は、ICE(In-Ci
rcuit Emulator)であり、ターゲットマシン上でロード
モジュールを動作させ、ロードモジュールが正常に動作
するかを試験する。試験装置3による試験時には、開発
者はターゲットマシン内のメモリの記憶内容を参照する
ことができる。また、試験装置3は逆アセンブル機能を
有しており、このメモリの記憶内容がどういうニーモニ
ックに対応しているかを参照することができる。更に試
験装置3はパッチ当て機能を有し、ターゲットマシン内
のメモリの内容にパッチを当てることができる。また試
験装置3はリンカ110から上記LANを介してロード
モジュールのマップファイルを取得して記憶している。
このロードモジュールのマップファイルには各オブジェ
クトのオブジェクト名のラベルと、そのオブジェクトに
割り当られた絶対アドレスとの対応が記されている。ま
た『再生Button.Value』『録画Button.Value』といった
オブジェクト変数の変数名のラベルと、各オブジェクト
変数に割り当られた絶対アドレスとの対応をも記してお
り、試験装置3によるターゲットマシンのROMのアク
セスはこのオブジェクト名のラベルやオブジェクト変数
名ラベルを参照することによって行える。試験装置3で
は変数名ラベルの参照によってROM内のアクセスが行
えため、開発者は上記のROMライタ2を用いてのパッ
チ当て作業が変数名ラベルを参照しながら行える。
【0073】ソフトウェア開発支援装置4は、試験装置
3を用いてのターゲットマシンの試験において、オブジ
ェクト変数の初期値の一覧表示を行うことで、開発者に
よるオブジェクト変数の初期値の変更作業を支援する。
そのためソフトウェア開発支援装置4は図9の構成図に
示すように、ファイルサーバに蓄積されているソースフ
ァイル、ヘッダファイルをLANを介してダウンロード
するためのEthernet通信カード21と、ダウンロードし
たファイルを記憶しておくための記憶部22と、記憶し
ているヘッダファイルのうち、所定のものを一覧するた
めのディスプレィ23と、開発者側からの様々な指示を
受け付けるキーボード24と、マウス25と、制御部2
6とを備える。
【0074】制御部26は、ソフトウェア開発支援装置
の統合的な処理制御を行う。図10は制御部26の処理
内容を示すフローチャートである。以降、図10のフロ
−チャ−トを参照しながらソフトウェア開発支援装置が
上記の試験工程で用いられる動作の説明を行う。尚これ
らのフロ−チャ−トは、図10のフロ−チャ−トにおけ
るステップなら『ステップM』、図11のフロ−チャ−
トにおけるステップなら『ステップN』、図12のフロ
−チャ−トにおけるステップなら『ステップO』、図1
3のフロ−チャ−トにおけるステップなら『ステップ
P』、図14のフロ−チャ−トにおけるステップなら
『ステップQ』、図15のフロ−チャ−トにおけるステ
ップなら『ステップR』というように、各フロ−チャ−
トの各ステップは異なるアルファベットの参照符号を用
いて互いに区別する。
【0075】<メインフロ−チャ−ト>次に、図10の
フロ−チャ−トについて説明を行う。図10を用いての
動作の説明は、図17〜図18に示す表示例を参照しな
がら行う。ステップM1では、オブジェクト変数の指定
用の入力画面をディスプレィ23に表示する。図17の
表示例はフロ−チャ−トに示された処理がステップM1
に進行した場合ディスプレィ23に映じるものである。
この表示例におけるカーソル位置は、ステップにおける
入力受け処理によって適宜移動する。この表示例の状態
で操作者がポインティングデバイスを操作すれば、その
操作に応じてこのカーソル位置は移動する。そしてクリ
ック操作やリターンキーの押下が行われればカーソル位
置の項目が選択される。本図において、縦の並びには、
先ず『変数サーチ』があり、その下に『オブジェクトの
変数名を入力して下さい。』があり、その下に『オブジ
ェクト名:再生Button』があり、その下に『変数名:Va
lue■』があるが、これらの表示例が上記のステップM
1の処理による表示結果を具体的に示している。この状
態では、『変数サーチ』と、『オブジェクトの変数名を
入力して下さい。』といった入力を促す旨の旨のコメン
ト文が表示され、これに応じて開発者はキーボード24
をキーパンチし、『オブジェクト名:再生Button』と、
『変数名:Value■』といったキー入力を行ったことを
意味する。
【0076】ステップM2では、Ethernet通信カード2
1を用いて、LANにおけるトランスポート層における
コネクションを確立し、ファイルサーバ1とコネクショ
ン接続する。これによってファイルサーバ1とコネクシ
ョン接続がなされる。ステップM2の実行後、ステップ
M3に移行する。ステップM3では、ファイルサーバ1
に蓄積されている全てのソースファイルを記憶部22に
ダウンロードする。これによってファイルサーバ1に蓄
積されている全てのヘッダファイルやソースファイルが
記憶部22にダウンロードされる。このように図5、6
に一例を示したヘッダファイルや図7に一部を示したソ
ースファイルが記憶部22にダウンロードされてゆき、
これらのファイルは参照可能な状態になる。
【0077】ステップM3の実行後、ステップM4に移
行する。ステップM4では、記憶部22はテキストコー
ド検索を行って、一致するオブジェクト名、変数名を含
んでいるソースファイルが有るか否かを判定する。もし
そうであればステップM5に移行し、異なればステップ
M11に移行する。これによって記憶部22に蓄積され
たソースファイルが探索されてゆき、指定されたオブジ
ェクト名、変数名に相当するコーディング部が有るか否
かが判定されてゆく。
【0078】ステップM4の実行後、ステップM5に移
行する。ステップM5では、一致するコーディングを含
む全てのソースファイルからオブジェクト変数に対する
代入文が取り出される。図7に示した代入文『再生Butt
on.Value=3』『録画Button.Value=1』『再生Button.Val
ue=3』『録画Button.Value=1』は、このステップM5で
の処理によって順次取り出されてゆく。ステップM5の
実行後、ステップM6に移行する。
【0079】ステップM6では、取り出した代入文によ
る初期値をディスプレィ23に表示する。これによって
取り出された代入文『再生Button.Value=3』『録画Butt
on.Value=1』『再生Button.Value=3』『録画Button.Val
ue=1』による初期値『3』『1』『3』『1』が順次表示さ
れてゆく。ステップM6の実行後、ステップM7に移行
する。ステップM7では、オブジェクト名が左辺にある
インスタンス生成文を取り出される。
【0080】ステップM7の実行後、ステップM8に移
行する。ステップM8では、指定されたオブジェクト名
のオブジェクトを生成しているインスタンス生成文の右
辺から、クラス名を取り出して表示する。これによって
インスタンス生成文『再生Button=new〜』の右辺から、
クラス名が取り出されて表示される。このステップM6
〜M8に対しての動作の説明は、図18の表示例を参照
しながらより詳しく行う。図18の表示例はフロ−チャ
−トに示された処理がステップに進行した場合ディスプ
レィ2324に映じるものである。
【0081】本図において、縦の並びには、先ず『ソー
スファイルにおけるオブジェクト再生Buttonの変数Valu
eの初期初期値は以下の通りです』があり、その下に
『再生Button.Value3■』があり、その下に『●再生B
uttonは、クラスPushbuttonから生成されました。』が
あるが、これらの表示例が上記のステップM5の処理に
よる表示結果を具体的に示している。これは『ソースフ
ァイルにおけるオブジェクト再生Buttonの変数Valueの
初期初期値は以下の通りです』で解説を行い、文字列
『再生Button.Value3』で再生ボタンオブジェクトの
オブジェクト変数の初期値を表示している。そして、
『●再生Buttonは、クラスPushbuttonから生成されまし
た。』で、再生ボタンオブジェクトの生成元のクラスを
表示している。
【0082】制御部26はステップM8の実行後、ステ
ップM9に移行する。ステップM9では、制御部26は
入力受け処理を行う。この表示例におけるカーソル位置
は、このステップM9における入力受け処理によって適
宜移動する。この表示例の状態で操作者がポインティン
グデバイスを操作すれば、その操作に応じてこのカーソ
ル位置は移動する。そしてクリック操作やリターンキー
の押下が行われれればカーソル位置の項目が選択され
る。
【0083】図18の下半分において、縦の並びには、
先ず『数値キー:初期値変更 削除キー:1文字削
除』があり、その下に『リターンキー:訂正をソースフ
ァイルに反映します。』があり、その下に『ファンクシ
ョンf1キー:メニュ−選択画面』があるが、これらの
表示例が上記の処理内容を具体的に示している。これは
数値キーの押下によって初期値が変更され、また、削除
キーの押下によって表示されている初期値のうち、1文
字が削除されることを意味する。また、リターンキーの
押下によって、訂正をソースファイルに反映することを
意味し、ファンクションf1キーの押下によってメニュ
−選択画面が表示されることを意味する。
【0084】ステップM10では、終了操作がなされた
か否かを判定する。もしなされるとステップM1に移行
して次のオブジェクト変数の指定を受け付けようとす
る。もしなされなければステップM9に移行する。 <入力受け処理>次に、図11のフロ−チャ−トを参照
しながらについて図10のステップM9における入力受
け処理について説明を行う。
【0085】今、図10のステップM9に移行すると、
制御部26はステップN1における入力待機状態になっ
ている。もしキーボード24内の何れかのキーが押下さ
れれば、そのキーのキーコードに応じて、ステップN2
〜ステップN5のうち何れかが選択的に実行される。
今、ステップM8の表示処理によってディスプレィ23
に、図18の表示例を表示しており、キー入力を受け付
けるようになっている。
【0086】ステップN2では、削除キーの押下によっ
て初期値における1文字を削除する。これによってディ
スプレィ23に表示されているオブジェクト変数の初期
値が1文字ずつ削除されてゆく。ステップN3では、数
値キーの押下によって初期値の変更処理を行う。これに
よって数値キーの押下によって、ディスプレィ23に表
示中のオブジェクトの初期値が変更されてゆく。
【0087】ステップN4では、リターンキーの押下に
よって初期値をファイルサーバ1内のソースファイルに
反映する。これによってリターンキーの押下によって初
期値が変更済みのソースファイルがEthernet通信カード
21を介して、LANを通じてファイルサーバ1内にア
ップロードされる。ステップN5では、ファンクション
f1の押下でメニュ−表示を行う。この図18における
表示例がディスプレィ23に表示された状態で、ファン
クションキーのf1が押下されると、図19の表示例が
表示される。この押下によって処理はフロ−チャ−トの
ステップN5から図12のステップO1へと移行する。
【0088】次に、図12のフロ−チャ−トを参照しな
がらメニュ−画面の選択時の処理について説明を行う。
本図においてステップO1では、図19に示したメニュ
−画面を表示する。これによってディスプレィ23に
は、メニュ−画面が表示される。図19の表示例はフロ
−チャ−トに示された処理がステップに進行した場合デ
ィスプレィ23に映じるものである。この表示例におけ
るカーソル位置は、図11のフロ−チャ−トにおける入
力受け処理によって適宜移動する。この表示例の状態で
操作者がポインティングデバイスを操作すれば、その操
作に応じてこのカーソル位置は移動する。そしてクリッ
ク操作やリターンキーの押下が行われればカーソル位置
の項目が選択される。
【0089】本図において、縦の並びには、先ず『★メ
ニュ−選択:』があり、その下に『:クラスPushbutt
onから生成されたオブジェクトを表示』があり、その下
に『●:クラスPushbuttonの親のクラスから生成された
オブジェクトを表示』があり、その下に『:クラスPu
shbuttonの子孫のクラスから生成されたオブジェクトを
表示』があり、その下に『:クラスPushbuttonの兄弟
のクラスから生成されたオブジェクトを表示』がある
が、これらは、判定されたクラスとどのような関係にあ
るクラスを一覧表示するかを示している。
【0090】具体的には、『:クラスPushbuttonから
生成されたオブジェクトを表示』は、判定されたクラス
から生成されたオブジェクトを指定させることを示し、
『●:クラスPushbuttonの親のクラスから生成されたオ
ブジェクトを表示』は、判定されたクラスの親のクラス
から生成されたオブジェクトを指定させることを示して
いる。また、『:クラスPushbuttonの子孫のクラスか
ら生成されたオブジェクトを表示』は判定されたクラス
の兄弟のクラスから生成されたオブジェクトを指定させ
ることを示している。『:クラスPushbuttonの兄弟の
クラスから生成されたオブジェクトを表示』は、判定さ
れたクラスの子孫のクラスから生成されたオブジェクト
を指定させることを示している。
【0091】以上の縦の並びの下には、先ず『カーソル
又はマウスで〜のうち、何れかを選択してくださ
い。』があるが、これは、カーソル又はマウスの押下に
よって、上記〜の何れかが指定されることを具体的
に示している。ステップO1の実行後、ステップO2に
移行する。ステップO2では、制御部は表示面上に表示
されたメニュ−の選択待機状態になっている。もし項目
が選択されれば、ステップO3〜ステップO6の何れか
へと移行する。即ち、ステップO3〜ステップO6のう
ち何れかが選択的に実行される。
【0092】ステップO3では、指定されたクラスと同
一クラスから生成されたオブジェクトの探索処理を図1
3に示したフロ−チャ−トに従って行う。これによって
生成元が同一クラスから生成されたオブジェクトが探索
されてゆく。ステップO4では、図14に示すフロ−チ
ャ−ト通りの処理を行って、親クラスを探索する。これ
によってステップO4では、親クラスから生成されたオ
ブジェクトが順次探索されてゆく。
【0093】ステップO5では、図16に示すフロ−チ
ャ−トに従って指定されたクラスの子孫のクラスを探索
する。これによって指定されたクラスの子孫クラスが順
次探索される。ステップO6では、図15に示すフロ−
チャ−トに従って指定されたクラスの兄弟のクラスを探
索する。これによって兄弟クラスから生成されたオブジ
ェクトが順次探索処理されてゆく。
【0094】<クラス−オブジェクト探索処理>次に、
図13のフロ−チャ−トを参照しながらクラス−オブジ
ェクト探索処理について説明を行う。今、ステップO2
での選択処理によってステップP1に既に移行してい
る。ステップP1では、指定されたクラスが右辺にある
全てのインスタンス生成文を探し出す。これによって
『再生Button =new PushButton();』『録画Button
=new PushButton();』といったインスタンス生成
文が探し出される。
【0095】ステップP1の実行後ステップP2に移行
する。ステップP2では、探し出されたインスタンス文
の左辺にあるオブジェクト名を取り出す。これによって
『再生Button』、『録画Button』といったオブジェクト
名が取り出される。ステップP2の実行後、ステップP
3に移行する。ステップP3では、取り出されたオブジ
ェクト名のオブジェクト変数を代入している全ての代入
文での初期値を一覧表示する。これによって全ての代入
文での初期値が一覧表示される。
【0096】次に、図20の表示例を参照しながらステ
ップP1における一覧表示について説明を行う。本図に
おいて、縦の並びには、先ず『★再生Buttonの生成元ク
ラスPushbuttonから生成されたオブジェクト再生Butto
n、巻戻しButton、早送りButtonを表示します。』があ
り、その下に『それらの変数の初期初期値は以下の通り
です。』があるが、これらの表示例が上記の処理による
表示結果を具体的に示している。これは再生Buttonの生
成元クラスPushbuttonから生成されたオブジェクトは、
オブジェクト名『再生Button』の再生ボタンオブジェク
ト、オブジェクト名『巻戻しButton』の巻き戻しボタン
オブジェクト、オブジェクト名『早送りButton』の早送
りボタンオブジェクトであることを示している。
【0097】この文字列の下方向の縦の並びには、先ず
『再生Button.Value 24』があり、その下に『再生B
utton.PushKey1 30』があり、その下に『再生Butt
on.Pushport1 34』があり、その下に『再生Butto
n.Pushport2 45』があるが、これらは再生ボタン
オブジェクトのオブジェクト変数『再生Button.Value』
の初期値が 『24』であり、再生ボタンオブジェクト
のオブジェクト変数『再生Button.PushKey1の初期値が
『30』であることを示している。以下同様に『再生Bu
tton.Pushport1』の初期値は、『34』であり、『再生
Button.Pushport2』の初期値は、『45』であることを
示している。
【0098】また、その下に『巻戻しButton.Value 2
4』があり、その下に『巻戻しButton.PushKey1 2
4』があり、その下に『巻戻しButton.Pushport1 2
4』があり、その下に『巻戻しButton.Pushport2 2
4』があり、その下に『早送りButton.Value 24』
があり、その下に『早送りButton.Pushkey1 43』
があり、その下に『早送りButton.Pushport156』があ
り、その下に『早送りButton.Pushport256■』がある
が、これらもステップP3における表示結果を具体的に
示している。この表示例と、入力操作との対応関係は、
図10のフロ−チャ−トのステップM9と図18の表示
例との間のものと同様である。つまり図20の表示例に
おけるカーソル位置は、図11のフロ−チャ−トにおけ
る入力受け処理によって適宜移動する。この表示例の状
態で操作者がポインティングデバイスを操作すれば、そ
の操作に応じてこのカーソル位置は移動する。そしてク
リック操作やリターンキーの押下が行われればカーソル
位置の項目が選択される。
【0099】このようにステップP3が実行されると、
図13のフロ−チャ−トのステップP3から図12のメ
ニュ−選択の状態である、フロ−チャ−トのステップO
1に戻る。以上のステップP1〜ステップP3の一連の
処理は、図19の表示例においての項目が選択される
度に、その都度実行される。このような一覧表示によっ
て、オブジェクトの生成元のクラスから生成されたオブ
ジェクトにはどのようなものがあるかが把握し易くな
る。またこれらのオブジェクトで使用されている変数の
初期値も把握し易くなる。
【0100】尚今度の新製品は旧機種のデザインを変更
したのみのマイナーチェンジであり、その内部仕様は旧
機種の内部仕様を踏襲したものであるものとする。但し
このデザイン変更によってフロントパネルにおけるボタ
ン配置が旧機種のものから変更されており、この変更に
あたって、上記制御プログラムにおける図28に示した
キー割り当て部を変更する必要がある。このため、図1
のフロ−チャ−トのステップK4の工程でキーコードの
割り当てを変更しようとしている 開発者は上記図13のフロ−チャ−ト通りの処理をソフ
トウェア開発支援装置に行わせ、ディスプレィ上にオブ
ジェクト変数の初期値を一覧表示させる。これによっ
て、開発者は所望の変数にはどのような値が設定されて
いるかを確認し、この一覧表示によって開発者はオブジ
ェクト変数の初期値を頭に入れる。そして、初期値変更
のためのパッチ当てを試験装置3やROMライタ2を用
いて行い、試験装置3を用いて仕様との整合を確認す
る。この一連の処理を何度も繰り返し、ハードウェアと
の整合を図ってゆく。
【0101】<親クラス探索処理のフロ−チャ−ト>次
に、図14のフロ−チャ−トを参照しながら親クラス探
索処理ついて説明を行う。今、ステップO4の選択処理
によって本フロ−チャ−トの親クラスの選択処理が選択
されており、図14のフロ−チャ−トが順次実行される
ようになっている。
【0102】図14のフロ−チャ−トのステップQ1で
は、指定されたクラスの宣言文を取り出す。これによっ
てヘッダファイルから『class Pushbutton:Button{/
*押しボタンクラス・・・・・・・・』といったクラス
の宣言文が取り出される。ステップQ1の実行後、ステ
ップQ2に移行する。ステップQ2では、取り出された
クラス宣言文は、記号『:』によってクラス名を指定し
ているか否かを判定する。もしそうであればステップQ
3に移行し、異なれば本フロ−チャ−トの処理を終了す
る。このステップQ2の処理によって、指定されたクラ
スのクラス宣言文で親クラスのクラス名が指定されてい
るかであるか否かが判定される。
【0103】ステップQ2の実行後、ステップQ3に移
行する。ステップQ3では、記号『:』で指定されてい
るクラスを親のクラスとする。これによってクラス宣言
文『class Pushbutton:Button・・・・』の記号『:』
で指定されているクラス『Button』が親のクラスとされ
る。ステップQ3の実行後、ステップQ4に移行する。
ステップQ4では、探し出された親クラスのそれぞれが
右辺にあるインスタンス文を探し出す。
【0104】ステップQ4の実行後、ステップQ5に移
行する。ステップQ5では、探し出されたインスタンス
文で生成されたオブジェクトのオブジェクト変数及びそ
の初期値を一覧表示する。これによってオブジェクト変
数及びその初期値が図21に示すように表示される。次
に、図21の表示例を参照しながらこのフロ−チャ−ト
のステップQ5における一覧表示について説明を行う。
本図において、縦の並びには、先ず『★Pushbuttonの親
のクラスButtonから生成されたオブジェクト特殊Button
を表示します。』がある。その下に『★Pushbuttonの親
のクラスButtonから生成されたオブジェクト特殊Button
を表示します。』があり、『それらの変数の初期初期値
は以下の通りです。』があり、その下に『特殊Button.v
alue 30■ 』があるが、これらの表示例が上記ステッ
プの一覧表示による表示結果を具体的に示している。即
ち、『それらの変数の初期初期値は以下の通りです。』
といった解説用の文字列と、指定されたクラスの親クラ
スから生成されたオブジェクトのオブジェクト変数の初
期値『特殊Button.value 30■ 』が表示されているこ
とを意味する。
【0105】ステップQ5の実行後、ステップQ6に移
行する。ステップQ6では、図のフロ−チャ−トに示し
た入力受け処理を行う。このようにステップQ6が実行
されると、図14のフロ−チャ−トのステップQ6から
図12のフロ−チャ−トのステップO1に戻る。以上の
ステップQ1〜ステップQ6の一連の処理は、図12の
フロ−チャ−トのステップO2において親クラスの指定
がなされる度に、その都度実行される。このように、オ
ブジェクト変数の指定に応じてステップQ1〜ステップ
Q6の一連の処理が何度も繰り返されると、開発者は、
親クラスから生成されたオブジェクトのオブジェクト変
数の初期値も把握できるようになる。
【0106】<兄弟クラス探索処理のフロ−チャ−ト>
次に、図15のフロ−チャ−トを参照しながら兄弟クラ
ス探索処理について説明を行う。今、ステップの選択処
理によって兄弟クラスの探索処理が選択されており、図
15のフロ−チャ−トが順次実行されるようになってい
る。
【0107】ステップR1では、指定されたクラスのク
ラス宣言文を取り出す。これによって『class Pushbutt
on:Button・・・・』といったクラスの宣言文が取り出
される。ステップR1の実行後、ステップR2に移行す
る。ステップR2では、取り出されたクラス宣言文は、
記号『:』によってクラス名を指定しているか否かを判
定する。もしそうであればステップR3に移行し、異な
れば本フロ−チャ−トの処理を終了する。これによって
クラス宣言文は、記号『:』によってクラス名『Butto
n』が指定されていることが判定される。
【0108】ステップR2の実行後、ステップR3に移
行する。ステップR3では、記号『:』で指定されてい
るクラスを親のクラスとする。これによって記号『:』
で指定されているクラス『Button』が親のクラスにな
る。ステップR3の実行後、ステップR4に移行する。
ステップR4では、ソースファイルのうち、クラス宣言
文で記号『:』によって同一クラスを親クラスとしてい
るクラスを探し出し、探し出したクラスを兄弟クラスと
する。これによってクラス『Button』が親クラスになっ
ているクラス『NumButton』『ToggleButton』が探し出
され、探し出されたクラスが兄弟クラスとされる。
【0109】ステップR4の実行後、ステップR5に移
行する。ステップR5では、探し出された兄弟クラスの
それぞれが右辺にあるインスタンス文を探し出される。
これによって兄弟クラスのそれぞれが右辺にあるインス
タンス文が探し出される。ステップR5の実行後、ステ
ップR6に移行する。ステップR6では、探し出された
兄弟クラスのインスタンス文で生成されたオブジェクト
のオブジェクト変数及びその初期値を図23に示すよう
に一覧表示する。これによってオブジェクト変数及びそ
の初期値が一覧表示される。
【0110】次に、図23の表示例を参照しながら、ス
テップR5における一覧表示について説明を行う。図2
3は、ステップR5〜ステップR6の表示結果を説明す
るため説明図である。本図において、縦の並びには、先
ず『○:クラスの兄弟のクラスは、Numbutton、Toggl
ebuttonです。◆NumButtonから生成されたオブジェクト
時刻ButtonカレンダButtonを表示します。それらの変数
の初期初期値は以下の通りです。』があり、その下の縦
の並びには、先ず『時刻Button.Value 30』があり、
その下に『時刻Button.NumKey1 30』があり、その下
に『時刻Button.Numport1 34』があり、その下に
『時刻Button.NUmport2 45』があり、その下に『時
刻Button.Value 30』があり、その下に『カレンダBu
tton.NumKey124』があり、その下に『カレンダButto
n.Numport1 24』があり、その下に『カレンダButto
n.Numport2 24』があるが、これらの表示例が上記ス
テップR6の処理による表示結果を具体的に示してい
る。
【0111】これはステップR5、R6の処理によって
『時刻Button.Value 30』と、『時刻Button.NumKey1
30』と、『時刻Button.Numport1 34』と、『時
刻Button.NUmport2 45』と、『時刻Button.Value
30』と、『カレンダButton.NumKey1 24』と、『カ
レンダButton.Numport1 24』と、『カレンダButton.
Numport2 24』とが表示されることを意味する。これ
らの表示例が上記の処理による表示結果を具体的に示し
ている。
【0112】本図において、縦の並びには、先ず『◆To
gglebuttonから生成されたオブジェクト』があり、その
下に『タイマButton時刻設定Buttonの変数を表示しま
す。』があるがこれはステップR6の実行によって『◆
Togglebuttonから生成されたオブジェクト』と、『タイ
マButton時刻設定Buttonの変数を表示します。』と、
『それらの変数の初期値は以下の通りです。』といった
文字列がディスプレィ23に表示されることを示してい
る。これらの文字列の下の縦の並びには、先ず『タイマ
Button.Value 30』があり、その下に『タイマButto
n.ToggleKey1 30』があり、その下に『タイマButto
n.TogglePort1 34』があり、その下に『タイマButto
n.TogglePort2 45』がある。更にその下に『時刻設
定Button.Value24』があり、その下に『時刻設定Butt
on.ToggleKey1 24』があり、その下に『時刻設定But
ton.TogglePort1 24』があり、その下に『時刻設定B
utton.TogglePort2 24』があるが、これらは兄弟ク
ラスのオブジェクトの初期値として『タイマButton.Val
ue 30』と、『タイマButton.ToggleKey1 30』
と、『タイマButton.TogglePort1 34』と、『タイマ
Button.TogglePort2 45』と、『時刻設定Button.Val
ue 24』と、『時刻設定Button.ToggleKey1 24』
と、『時刻設定Button.TogglePort1 24』と、『時刻
設定Button.TogglePort2 24』とが一覧表示されるこ
とを示している。
【0113】ステップR6の実行後、ステップR7に移
行する。ステップR7では、図11のフロ−チャ−トに
示した入力受け処理を行う。ステップR7が実行される
と、図12のステップO2に戻る。以上のステップR1
〜ステップR7の一連の処理は、図12のフロ−チャ−
トのステップO6において兄弟クラスの探索処理が選択
される度に、その都度実行される。このように、ステッ
プR1〜ステップR7の一連の処理が何度も繰り返され
ることで、開発者はオブジェクト変数の初期値の係り合
いを把握してゆく。
【0114】このように一覧表示表示によって図1のフ
ロ−チャ−トのステップK4でキーコードの割り当てを
変更しようとする場合、この図13のフロ−チャ−トの
処理を行わせ、オブジェクト変数の初期値の一覧表示に
よって各オブジェクトにおいて所望の変数には、どのよ
うな値が設定されているかを確認する。図15のフロ−
チャ−トの処理ではこの一覧表示が兄弟に当たる各クラ
スから生成したオブジェクト変数に対して行われるた
め、これらの初期値を頭に入れた開発者は初期値変更の
ためのパッチ当てをROMライタ2を用いて行い、試験
装置3を用いて仕様との整合を確認する。この一連の処
理を何度も繰り返し、ハードウェアとの整合を図ってゆ
く。
【0115】<子孫クラス探索処理のフロ−チャ−ト>
次に、図16のフロ−チャ−トを参照しながら子孫クラ
ス探索処理について説明を行う。今、図12のフロ−チ
ャ−トにおけるステップO5の探索処理の選択によって
図16のフロ−チャ−トのステップS1に移行してい
る。
【0116】ステップS1では、指定されたクラスを、
記号『:』によって親クラスとして指定しているクラス
を探し出して子クラスとする。また、その子クラスを親
クラスとしているクラスを探し出して孫クラスとする。
これによって親クラスとして指定しているクラスが探し
出されて子クラスとされる。また、その子クラスが親ク
ラスとしているクラスが探し出されて孫クラスとされ
る。
【0117】ステップS1の実行後、ステップS2に移
行する。ステップS2では、探し出された子孫クラスの
それぞれが右辺にあるインスタンス文を探し出される。
これによって子孫クラスのそれぞれが右辺にあるインス
タンス文が探し出される。ステップS2の実行後、ステ
ップS3に移行する。ステップS3では、探し出された
インスタンス文で生成されたオブジェクトのオブジェク
ト変数及びその初期値を一覧表示する。これによってオ
ブジェクトのオブジェクト変数及びその初期値が一覧表
示される。
【0118】ステップS3の実行後、ステップS4に移
行する。ステップS4では、図11のフロ−チャ−トに
示した入力受け処理を行う。次に、上記ステップS3に
おける一覧表示による表示例を図22の表示例を参照し
ながら説明を行う。図22は、ステップS3の処理を説
明するため説明図である。本図において、縦の並びに
は、先ず『○:再生Buttonの子孫のクラスは存在しま
せん。』があるが、これらの表示例が上記の表示処理に
よる表示結果を具体的に示している。即ち、図4のクラ
ス図においては、押しボタンクラス『Pushbutton:』に
は、子孫のクラスが無かったから、その旨がディスプレ
ィ23に表示される。
【0119】このようにステップS4が実行されると、
図16のフロ−チャ−トのステップS4から図12のフ
ロ−チャ−トのステップO2に戻る。以上のステップS
1〜ステップS4の一連の処理は、図12のフロ−チャ
−トのステップO5において選択がなされる度に、その
都度実行される。以上の一覧表示を親クラス、兄弟クラ
ス、子孫クラスに対して行って、開発者は、図28に示
した変数Valueが、各オブジェクトにおいてどのように
設定されているかを把握する。即ち、キーポートの割り
当て状況を把握することができる。
【0120】またこれに併せて、変数Valueと同一クラ
スのオブジェクト変数の初期値、そのクラスの親等内に
あるクラスのオブジェクト変数の初期値も確認できるの
で、初期値の変更が他のオブジェクト変数にどう影響す
るかも把握することができる。またソフトウェア開発支
援装置は、クラスにおいて検索を望む親族を網羅する情
報としてカテゴリ情報を記憶している。カテゴリ情報は
ヘッダファイル内のクラス間の関係を一部抜粋した情報
であり開発者によって適宜作成される。このようなカテ
ゴリ情報を予め作成しておいて図19の表示例ふが表示
された状態で、特殊キーの操作(ここでは『Ctrl+Q』
の押下とする)を行うと、制御部26はこのカテゴリ情
報通りの検索を上記フロ−チャ−トの処理を組み合わせ
ながら行う。このようにしてカテゴリ情報通りにクラス
を探索させることもできる。
【0121】このように本実施形態によれば、オブジェ
クトの変数の初期値の変更を行う際、そのオブジェクト
変数のオブジェクトの生成元のクラスや、そのクラスの
親等内にあるクラスから生成されたオブジェクトのオブ
ジェクト変数の初期値を一覧表示させることで、図28
に示したような、ソースプログラムを検索すれば代入文
のレベルで初期値の設定を開発者側に確認を求めること
ができる。そのため、各オブジェクト変数の初期値をど
う変更すべきか、また、変更にあたって注意すべきはど
のオブジェクト変数であるかが把握し易くなり、初期値
の変更作業が効率良く行うことができる。
【0122】特に多くのプログラマが制御プログラムの
開発に係っており、ソースプログラムの量が膨大であっ
ても、オブジェクト変数の初期値変更作業において、ハ
ードウェアの変更と共にパッチ当てが必要な箇所はどこ
であるかを開発者は把握することができる。他人のソー
スプログラムからでもどのオブジェクト変数にどのよう
な初期値が設定されているかが把握できる。このように
初期値の変更作業が効率化されれば、ある機種用に開発
した制御プログラムを再利用するといった制御プログラ
ムの流用によって新機種の制御プログラムを作り上げて
ゆくことがより高効率に行え、近年の目まぐるしい製品
のモデルチェンジに対応できるようになる。
【0123】例えば、内部構成は旧機種と同じのまま
で、筐体のデザインをのみを変更してキーの割り当てを
変えた新機種を開発したり、廉価版機種、高級機種とい
っ一連のラインナップの製品を一度に開発するといった
製品の開発が非常に効率良く行える。また旧機種では録
画予約のMAX件数が10件だったが、新製品では14件
までMAX件数が増やすような状況でも、膨大なコード量
となる制御プログラムの全般においてこのような変更が
完全になされたかを確認することができる。従って、開
発者の誰かがパッチ当てをし忘れたかを指摘することが
でき、完全にパッチ当てが行われたかを確認ことができ
る。従って、新製品を動作させるまでわからないといっ
た危険な状況を回避でき、制御プログラムの再利用を確
実に実現できる。加えて、各クラスからどのようなオブ
ジェクトが生成しているかが把握されため、オブジェク
ト変数の初期値の変更にあたって、クラスにおけるメソ
ッドに影響が生じるか否か、クラスのメソッドによって
おかしな値になるオブジェクト変数が有るか無いかを容
易に確認できる。そのため、クラス内のメソッドのアル
ゴリズムの見直しやメソッドにおけるパラメータの増減
を見直すことが容易に行える。
【0124】(実施の形態2)実施の形態2では、クラ
ス間の継承関係を尊属の方向に辿って行き、指定された
オブジェクト変数が宣言されているクラスを探索するよ
うに構成されている。そのため、実施の形態2では、図
12に示した制御部26のフロ−チャ−トのステップO
2での選択に応じて、図24に示すステップO7が選択
される。即ち、実施形態2では、図12におけるステッ
プO1でのメニュ−画面の表示において、5番目の項目
として、『オブジェクト変数が宣言されているクラスの
探索処理』が表示され、カーソルキーによってこの探索
処理が選択された場合、図25のフロ−チャ−トのステ
ップP1に移行する。
【0125】以降、これらの図に示したステップを順を
追って説明してゆく。図24のステップO7では、入力
変数が宣言されているクラスを頂点とするサブツリー全
体を処理対象とするかが判定される。このステップが選
択されると、入力変数が宣言されているクラスが頂点と
されるサブツリー全体が探索される。次に、図25のフ
ロ−チャ−トを参照しながら上記『オブジェクト変数が
宣言されているクラスの探索処理』について説明を行
う。図25は、入力変数の宣言されているクラスの探索
処理を説明するためフロ−チャ−トである。
【0126】今、ステップO7の選択処理によって図2
5のステップT1に処理は移行している。ステップT2
では、親クラス内から、入力されたオブジェクト変数の
宣言文を探索する。これによって親クラス内から入力さ
れたオブジェクト変数の宣言文が探索される。ステップ
T2の実行後、ステップT3に移行する。
【0127】ステップT3では、入力されたオブジェク
ト変数の宣言文が有るか否かを判定する。もしあればス
テップT4に移行し、無ければステップT5に移行す
る。この場合無いので、ステップT4へと移行する。以
上の一連の処理を『:』記号によって指定されている生
成元のクラスの尊属のクラスについて繰り返す(ステッ
プT1)。これによって親のクラスから親のクラスへと
尊属方向の探索が進んでゆく。
【0128】このようにして、探索が親から親へと進む
ことで、オブジェクト変数の宣言文を含んでいるクラス
宣言に行き着いたとする。オブジェクト変数の宣言文が
探し出されれば、ステップT1からステップT6に移行
する。ステップT6では、クラスから生成されたオブジ
ェクトのオブジェクト変数を一覧表示する。これによっ
てステップT6では、クラスから生成されたオブジェク
トのオブジェクト変数が一覧表示される。ステップT6
の実行後、ステップT5に移行する。ステップT5で
は、そのクラスの卑属のクラスについて繰り返す。
【0129】このような繰り返しによって、クラスから
生成されたオブジェクトのオブジェクト変数が一覧表示
されてゆく。このように本実施形態によれば、入力され
た変数が宣言されているクラスのサブツリーが順次一覧
表示されるので、入力されたオブジェクト変数からどの
ようなオブジェクト変数が派生したかが把握し易くな
り、オブジェクト変数の初期値の変更作業がより効率良
く行えるようになる。
【0130】(実施の形態3)実施の形態3では、クラ
ス宣言文における尊属、卑属の探索を所定数のみ行うよ
うに構成されている。そのため、実施の形態3では、図
9に示したソフトウェア開発支援装置の構成図において
クラス名の記憶用のクラス名記憶部を備え、所定の親等
数を記憶する親等数記憶部を備えている。
【0131】この尊属、卑属の探索処理について説明を
行う。尚この説明は尊属クラスを探索する場合(a)、
卑属のクラスを探索する場合(b)で場合分けして行
う。 (a)尊属のクラスの探索 (a-1)制御部26は、図10のフロ−チャ−トのステッ
プM9で受け付けたオブジェクト名のオブジェクトが属
するクラスのクラス名の親クラス名をクラス名記憶部に
書き込む。
【0132】(a-2)制御部26は、記憶部22にヘッダ
ファイルとして記憶されているクラス宣言文から、クラ
ス名記憶部に書き込まれたクラス名と一対になっている
親クラス名を探し出し、探し出した親クラス名をクラス
名記憶部に書き込む。 (a-3)制御部26は、記憶された所定の親等数だけ尊属
に当たるクラスを親の方向へと探索してゆくよう、(a-
2)の処理を繰り返す。
【0133】(a-4)制御部26は、クラス記憶部に書き
込まれる度に、書き込まれたクラス名をディスプレィ2
3に順次表示する。 (a-5)制御部26は、表示されたクラス名について操作
者の指定をキーボード24を介して受け付ける。 (a-6)制御部26は、指定がなされると、そのクラスが
生成元になるオブジェクトをソースプログラムから全て
探索し、探索したオブジェクトが有する変数の変数名
と、その初期値を一覧表示する。
【0134】(b)卑属のクラスの探索 (b-1)制御部26は、図12のフロ−チャ−トのステッ
プM9で受け付けたオブジェクト名のオブジェクトが属
するクラスのクラス名をクラス名記憶部に書き込む。 (b-2)制御部26は、クラス宣言文から、クラス名記憶
部に書き込まれたクラス名が親クラス名として対になっ
ているクラスを探し出し、探し出したクラスのクラス名
をクラス名記憶部に書き込む。
【0135】(b-3)制御部26は、親等数記憶部に記憶
された所定の親等数だけ卑属に当たるクラスを子の方向
へと探索してゆくよう、(b-2)の処理を繰り返す。 (b-4)制御部26は、クラス記憶部に書き込まれる度
に、書き込まれた各クラス名をディスプレィ23に順次
表示する。 (b-5)制御部26は、表示されたクラス名について操作
者の指定をキーボード24を介して受け付ける。
【0136】(b-6)指定がなされると、制御部26は、
そのクラスが生成元になるオブジェクトをソースプログ
ラムから全て探索し、探索したオブジェクトが有する変
数の変数名と、その初期値を一覧表示する。 このように本実施形態によれば、予め定められている親
等数だけ、クラスが探索されるので、係り合いを把握し
たい範囲に応じて、ソフトウェア開発支援装置に探索を
行わせるこが可能になる。
【0137】以上実施形態1〜実施形態3に基づいて説
明してきたが、本発明は、その要旨を逸脱しない範囲で
変更実施することができる。例えば以下(a)〜(c)
に示すような変更実施が可能である。 (a)ターゲットマシンの実際の開発構築を対象にして
説明したが、これは説明の便宜を優先しただけにすぎな
い。即ち、図1、図2、図8に示した一連の開発工程を
擬似的に行うシュミレーションシステムで、本発明を適
用してよいことはいうまでもない。
【0138】(b)クラスとオブジェクトとの対応関係
をプログラミング言語の一例でしてきたが、クラスとオ
ブジェクトとの対応関係で開発を行うシステムでも本発
明が適用できることもいうまでもない。即ち、グラフィ
カルに仕様を作成してゆき、プログラムの骨組み(スケ
ルトン)を作成して、これにデータベースに蓄積された
プログラム部品で肉付けを行って、開発を進めるような
合成システムを用いる場合でも本発明は適用できること
はゆうまでもない。
【0139】(c)上記実施形態ではテキスト形式の表
示データを出力していたが、表形式の表示データを出力
してもよい。
【0140】
【発明の効果】このように請求項1〜5に係るソフトウ
ェア開発支援装置によれば、オブジェクトの変数の初期
値の変更を行う際、そのオブジェクト変数のオブジェク
トの生成元のクラスや、そのクラスの親等内にあるクラ
スから生成されたオブジェクトのオブジェクト変数の初
期値を一覧表示させることで、図28に示したような、
ソースプログラムを検索すれば代入文のレベルで初期値
の設定について開発者側に確認を求めることができる。
そのため開発者は各オブジェクト変数の初期値をどう変
更すべきか、また開発者は変更にあたって注意すべきは
どのオブジェクト変数であるかが把握し易くなり、初期
値の変更作業が効率良く行うことができる。
【0141】特に多くのプログラマが制御プログラムの
開発に係っており、ソースプログラムの量が膨大であっ
ても、オブジェクト変数の初期値変更作業において、ハ
ードウェアの変更と共にパッチ当てが必要な箇所はどこ
であるかが把握することができる。他人のソースプログ
ラムからでも、どのオブジェクト変数にどのような初期
値が設定されているかが把握できる。このように初期値
の変更作業が効率化されれば、ある機種用に開発した制
御プログラムを再利用するといった制御プログラムの流
用によって新機種の制御プログラムを作り上げてゆくこ
とがより高効率に行え、近年の目まぐるしい製品のモデ
ルチェンジに対応できるようになる。
【0142】例えば、内部構成は旧機種と同じのまま
で、筐体のデザインをのみを変更してキーの割り当てを
変えた新機種を開発したり、廉価版機種、高級機種とい
っ一連のラインナップの製品を一度に開発するといった
製品の開発が非常に効率良く行える。また旧機種では録
画予約のMAX件数が10件だったが、新製品では14件
までMAX件数が増やすような状況でも、膨大なコード量
となる制御プログラムの全般においてこのような変更が
完全になされたかを確認することができる。従って、開
発者の誰かがパッチ当てをし忘れたかを指摘することが
でき、完全にパッチ当てが行われたかを確認ことができ
る。従って、新製品を動作させるまでわからないといっ
た危険な状況を回避でき、制御プログラムの再利用を確
実に実現できる。
【0143】加えて、各クラスからどのようなオブジェ
クトが生成しているかが把握されため、オブジェクト変
数の初期値の変更にあたって、クラスにおけるメソッド
に影響が生じるか否か、クラスのメソッドによっておか
しな値になるオブジェクト変数が有るか無いかを容易に
確認できる。そのため、クラス内のメソッドのアルゴリ
ズムの見直しやメソッドにおけるパラメータの増減を見
直すことが容易に行える。
【0144】オブジェクト指向型プログラムによる開発
の過程を擬似的にシュミレーションしようとするシステ
ムでは、このオブジェクト変数の初期値の変更によって
異なる形態の製品を擬似的に開発できるので、本発明の
構成で各オブジェクト変数の初期値の一覧表示を行え
ば、このシュミレーションもより効率的に行える。ま
た、請求項6記載のソフトウェア開発支援装置によれ
ば、請求項2の効果に加えて、クラスの宣言文の所定の
親等数だけ尊属に当たるクラスを親の方向へと探索して
ゆくため、クラスのヘッダファイルに集約された変数の
継承関係からオブジェクトを効率良く探索することがで
きる。
【0145】また、請求項7記載のソフトウェア開発支
援装置によれば、請求項2の効果に加えて、親等数記憶
部に記憶された所定の親等数だけ卑属に当たるクラスを
子の方向へと探索してゆくため、クラスのヘッダファイ
ルに集約された変数の継承関係からオブジェクトを効率
良く探索することができる。
【0146】まは、請求項8、9記載のソフトウェア開
発支援装置によれば、請求項2の効果に加えて、初期値
を変更しようとする変数の変数名について操作者の指定
を受け付けて、受け付けた変数名を宣言しているクラス
を探し出すので、初期値を変更すべき変数がどのクラス
で宣言されたかを突き止めることができる。
【0147】また、探し出されたクラスから子の方向を
探索してゆき、クラスの卑属にあたる全てのクラスのク
ラス名の何れかが指定可能になってそのうち指定された
ものから生成されたオブジェクトのオブジェクト変数の
一覧表示がなされため、開発者は指定したクラス名に係
るオブジェクトがどのようなオブジェクトで使用されて
いるかを網羅することができる。
【0148】まは、請求項10記載のソフトウェア開発
支援装置によれば、請求項2の効果に加えて、表示面に
一覧表示がなされた状態で、初期値の変更が可能となる
ので、初期値の確認と共にソースファイルに反映するこ
とができ、利便性が非常に増す。
【図面の簡単な説明】
【図1】オブジェクト指向型プログラムの開発過程につ
いてのフロ−チャ−トである。
【図2】ターゲットマシンのソフトウェアの開発環境を
説明するための説明図である。
【図3】図2のソースファイルとヘッダファイルとの対
応をより詳細に表したものである。
【図4】クラスの定義とクラスとオブジェクトとの関係
について説明するため説明図である。
【図5】オブジェクト指向型プログラム開発用のプログ
ラム言語で記述されたクラスの宣言部のヘッダファイル
である。
【図6】オブジェクト指向型プログラム開発用のプログ
ラム言語で記述されたクラスの宣言部のヘッダファイル
である。
【図7】図5、図6のクラス例からオブジェクトを生成
する部分を示すソースファイルのコーディング例であ
る。
【図8】図1のフロ−チャ−トに示した開発環境で用い
られる機器を説明するための説明図である。
【図9】ソフトウェア開発支援装置4の内部構成図であ
る。
【図10】制御部26の処理内容を示すメインフローで
ある。
【図11】図10のステップM9における入力受け処理
のフロ−チャ−トである。
【図12】メニュ−画面の選択時の処理のフロ−チャ−
トである。
【図13】指定されたクラスと同一クラスから生成され
たオブジェクトを探索する処理のフロ−チャ−トであ
る。
【図14】親クラスの探索処理のフロ−チャ−トであ
る。
【図15】兄弟クラス探索処理についてのフロ−チャ−
トである。
【図16】子孫のクラスの探索処理のフロ−チャ−トで
ある。
【図17】図10のフロ−チャ−トステップM1に処理
が進行した場合、ディスプレィ23に映じる表示例であ
る。
【図18】図10のフロ−チャ−トに示された処理がス
テップM8に進行した場合ディスプレィ23に映じる表
示例である。
【図19】ステップN5でファンクションf1の押下で
メニュ−表示を行った場合、ディスプレィ23に表示さ
れる表示例である。
【図20】図13のステップP3における一覧表示時の
表示例である。
【図21】図14のフロ−チャ−トのステップQ5にお
ける一覧表示についての表示例である。
【図22】図16のフロ−チャ−トのステップS3の処
理を説明するための表示例である。
【図23】図15のステップR5〜ステップR6の表示
結果を説明するため表示例である。
【図24】図12に示した制御部のフロ−チャ−トのス
テップO2での選択に応じて、選択されるステップを示
す図である。
【図25】変数名が宣言されているクラスを探索するた
めの探索処理のフロ−チャ−トである。
【図26】オブジェクト指向型プログラムで設計された
制御プログラムを説明するための説明図である。
【図27】オブジェクトの内部構成を説明するための説
明図である。
【図28】オブジェクト指向型プログラムとハードウェ
アとの接合点について説明図である。
【符号の説明】
1 ファイルサーバ 2 ROMライタ 3 試験装置 4 ソフトウェア開発支援装置 11a ワークステーション 11b ワークステーション 11c ワークステーション 11d ワークステーション 11e ワークステーション 21 通信カード 22 記憶部 22 制御部 23 ディスプレィ 24 キーボード 25 マウス 26 制御部 100 コンパイラ 110 リンカ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 安武 剛一 大阪府門真市大字門真1006番地 松下電器 産業株式会社内

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】複数の変数を有するオブジェクトを組み合
    わせることでシステムを構築するオブジェクト指向型ソ
    フトウェアシステムの開発環境に用いられ、各オブジェ
    クトが有する変数の変更作業を支援するソフトウェア開
    発支援装置であって、 各オブジェクトが属するクラスの識別子と、そのクラス
    で宣言されている変数識別子と、その親クラスの識別子
    とを対応させて記憶する第1記憶手段と、 各オブジェクトのオブジェクト識別子とクラス識別子と
    の対応関係と、オブジェクト識別子と変数識別子と変数
    の値との対応関係とを記憶する第2記憶手段と、 変更しようとする変数を有しているオブジェクトのオブ
    ジェクト識別子について操作者の指定を受け付ける第1
    受付手段と、 当該第1受付手段により指定されたオブジェクト識別子
    のオブジェクトが属するクラスを判定し、且つ、各クラ
    スの親のクラス識別子を参照して、当該クラスの所定の
    親等内にあるクラスを判定する判定手段と、 判定手段によって判定されたクラスのクラス識別子につ
    いて操作者の指定を受け付ける第2受付手段と、 第2受付手段が受け付けたクラスに属する全てのオブジ
    ェクトのオブジェクト識別子と、それらのオブジェクト
    が有する変数の変数識別子と、各変数の値との対応を一
    覧表示する一覧表示手段とを備えることを特徴とするソ
    フトウェア開発支援装置。
  2. 【請求項2】複数の変数を有するオブジェクトと、各変
    数に初期値を代入する代入ブロックとからなるオブジェ
    クト指向型ソフトウェアシステムの開発環境に用いら
    れ、各オブジェクトが有する変数の初期値の一覧表示を
    行うことにより変数の初期値の変更作業を支援するソフ
    トウェア開発支援装置であって、 各オブジェクトが属するクラスのクラス名と、そのクラ
    スで宣言されている変数名と、その親のクラスのクラス
    名とを一対にしたクラス宣言文を含むヘッダファイルを
    記憶する第1記憶手段と、 各オブジェクトのオブジェクト名とクラス名との対応関
    係を示し、且つ、オブジェクト名と変数名との組み合わ
    せと変数の初期値との対応関係を示す前記ソフトウェア
    システムのソースファイルを記憶する第2記憶手段と、 代入ブロックにおいて初期値を変更しようとする変数を
    有しているオブジェクトのオブジェクト名について操作
    者の指定を受け付ける第1受付手段と、 ソースファイルから指定されたオブジェクト名のオブジ
    ェクトが属するクラスを判定し、且つ、ヘッダファイル
    内のクラス宣言文に示された各クラスの親のクラス名を
    参照して、当該クラスの所定の親等内にあるクラスを判
    定する判定手段と、 判定手段によって判定されたクラスのクラス名について
    操作者の指定を受け付ける第2受付手段と、 第2受付手段が受け付けたクラスに属する全てのオブジ
    ェクトのオブジェクト名と、それらのオブジェクトが有
    する変数の変数名と、各変数の初期値との対応を一覧表
    示する一覧表示手段と、 を備えることを特徴とするソフトウェア開発支援装置。
  3. 【請求項3】前記判定手段は、 ソースファイルから、受け付けたオブジェクト名に対応
    するクラス名を探し出し、探し出したクラス名をそのオ
    ブジェクトが属するクラスとする第1探索部と、 ヘッダファイルにおいて第1探索部によって探し出され
    たクラス名と一対になっている親クラス名を判定する第
    1判定部と、 第1探索部によって探し出されたクラス名を親クラス名
    としている全てのクラスのクラス名を判定し、判定した
    クラスを子のクラスとする第2判定部と、 第1判定部によって判定されたクラス名を親クラス名と
    している全てのクラスを探し出し、探し出されたクラス
    を兄弟のクラスとする第3判定部とを備え、 前記第2受付手段は、 第1、第2、第3判定部によって判定された親のクラ
    ス、子のクラス、兄弟のクラスのクラス名を表示する第
    1表示部と、 表示された親のクラス、子のクラス、兄弟のクラスの何
    れかのクラス名について操作者の指定を受け付ける第1
    受付部とを備えることを特徴とする請求項2記載のソフ
    トウェア開発支援装置。
  4. 【請求項4】前記一覧表示手段は、 第2受付手段が受け付けたクラス名に対応するオブジェ
    クト名をソースファイルから探し出す第2探索部と、 ソースファイルから、探し出されたオブジェクト名と対
    応している変数名を全て探し出し、それらの変数名に対
    応する初期値を探し出す第3探索部と、 探し出された当該オブジェクト名と変数名との組み合わ
    せと初期値との対応関係を一覧表示する表示部とを備え
    ることを特徴とする請求項3記載のソフトウェア開発支
    援装置。
  5. 【請求項5】前記判定手段は更に、 クラスにおいて検索を望む親族を網羅する情報であるカ
    テゴリ情報を記憶するカテゴリ情報記憶手段と、 第1、第2、第3判定部を制御して、第1受付手段によ
    って指定されたオブジェクト名とカテゴリ情報とに基づ
    いてクラスを判定させる判定制御部とを備えることを特
    徴とする請求項4記載のソフトウェア開発支援装置。
  6. 【請求項6】前記判定手段は、 クラス名を記憶するクラス名記憶部と、 所定の親等数を記憶する親等数記憶部と、 第1受付手段が受け付けたオブジェクト名のオブジェク
    トが属するクラスのクラス名の親クラス名をクラス名記
    憶部に書き込む第1書込部と、 クラス宣言文から、クラス名記憶部に書き込まれたクラ
    ス名と一対になっている親クラス名を探し出し、探し出
    した親クラス名をクラス名記憶部に書き込む第2書込部
    と、 記憶された所定の親等数だけ尊属に当たるクラスを親の
    方向へと探索してゆくよう、第2書込部の起動を繰り返
    す繰返部とを備え、 前記第2受付手段は、 クラス記憶部に書き込まれる度に、書き込まれたクラス
    名を順次表示する第1表示部と、 表示されたクラス名について操作者の指定を受け付ける
    第1受付部とを備えることを特徴とする請求項2記載の
    ソフトウェア開発支援装置。
  7. 【請求項7】前記判定手段は、 クラス名を記憶するクラス名記憶部と、 所定の親等数を記憶する親等数記憶部と、 第1受付手段が受け付けたオブジェクト名のオブジェク
    トが属するクラスのクラス名をクラス名記憶部に書き込
    む第1書込部と、 クラス宣言文から、クラス名記憶部に書き込まれたクラ
    ス名が親クラス名として対になっているクラスを探し出
    し、探し出したクラスのクラス名をクラス名記憶部に書
    き込む第2書込部と、 親等数記憶部に記憶された所定の親等数だけ卑属に当た
    るクラスを子の方向へと探索してゆくよう、第2書込部
    の起動を繰り返す繰返部とを備え、 第2受付手段は、 クラス記憶部に書き込まれる度に、書き込まれた各クラ
    ス名を順次表示する第1表示部と、 表示されたクラス名について操作者の指定を受け付ける
    第1受付部とを備えることを特徴とする請求項2記載の
    ソフトウェア開発支援装置。
  8. 【請求項8】前記第1受付手段は更に、 初期値を変更しようとする変数の変数名について操作者
    の指定を受け付ける変数名受付部を有し、 前記判定手段は更に、 第1受付手段が受け付けたオブジェクト名のオブジェク
    トが属するクラスの尊属に当たるクラスを親の方向へと
    順次探索してゆき、受け付けた変数名を宣言しているク
    ラスを探し出す第1探索部と、 探し出されたクラスから子の方向を探索してゆき、クラ
    スの卑属にあたる全てのクラスを探し出す第2探索部と
    を備え、 前記第2受付手段は、 第2探索部によって探し出されたクラスのクラス名の何
    れかについて操作者の指定を受け付けることを特徴とす
    る請求項2記載のソフトウェア開発支援装置。
  9. 【請求項9】前記第1探索部は、 クラス名を記憶する第1クラス名記憶部と、 第1受付手段が受け付けたオブジェクト名のオブジェク
    トが属するクラスのクラス名の親クラス名をクラス名記
    憶部に書き込む第1書込部と、 クラス名記憶部に書き込まれたクラス名のクラスに変数
    名受付部が受け付けた変数名が一対になっているか否か
    を判定し、一対になっていると、そのクラスが変数名を
    宣言しているクラスとする第1判定部と変数名が一対に
    なっていなければ、引き続き尊属に当たるクラスを親の
    方向へと探索してゆくよう第1書込部を起動を繰り返す
    第1繰返部とを備え、 前記第2探索部は、 クラス名を記憶する第2クラス名記憶部と、 第1探索部によって探し出されたクラス名をクラス名記
    憶部に書き込む第2書込部と、 クラス宣言文から、クラス名記憶部に書き込まれたクラ
    ス名が親クラス名として対になっているクラスを探し出
    し、探し出されたクラスのクラス名を子クラスとしてク
    ラス名記憶部に書き込む第3書込部と、 親クラス名として一対になっているクラス名が無くなる
    まで、卑属に当たるクラスを子の方向へと探索してゆく
    よう第3書込部の起動を繰り返す第2繰返部とを備える
    ことを特徴とする請求項8記載のソフトウェア開発支援
    装置。
  10. 【請求項10】ソフトウェア開発支援装置は更に、 一覧表示手段によって一覧表示された各オブジェクトが
    有する変数の初期値を変更するための数値入力を受け付
    ける第3受付手段と、 第2記憶手段に記憶されているソースファイルにおけ
    る、当該オブジェクトのオブジェクト名と変数名との組
    み合わせに対応している初期値を、数値入力された値に
    更新する更新手段とを備えることを特徴とする請求項2
    〜9記載の何れかのソフトウェア開発支援装置。
  11. 【請求項11】複数の変数を有するオブジェクトと、各
    変数に初期値を代入する代入ブロックとからなるオブジ
    ェクト指向型ソフトウェアシステムの開発環境に用いら
    れ、各オブジェクトが有する変数の初期値の一覧表示を
    行うことにより変数の初期値の変更作業を支援するソフ
    トウェア開発支援方法であって、 代入ブロックにおいて初期値を変更しようとする変数を
    有しているオブジェクトのオブジェクト名について操作
    者の指定を受け付ける第1受付ステップと、 各オブジェクトのオブジェクト名とクラス名との対応関
    係を示し、且つ、オブジェクト名と変数名との組み合わ
    せと変数の初期値との対応関係を示す前記ソフトウェア
    システムのソースファイルから指定されたオブジェクト
    名のオブジェクトが属するクラスを判定する第1判定ス
    テップと、 各オブジェクトが属するクラスのクラス名と、そのクラ
    スで宣言されている変数名と、その親のクラスのクラス
    名とを一対にしたクラス宣言文を含むヘッダファイル内
    のクラス宣言文に示された各クラスの親のクラス名を参
    照して、当該クラスの所定の親等内にあるクラスを判定
    する第2判定ステップと、 第1、第2判定ステップによって判定されたクラスのク
    ラス名について操作者の指定を受け付ける第2受付ステ
    ップと、 第2受付ステップが受け付けたクラスに属する全てのオ
    ブジェクトのオブジェクト名と、それらのオブジェクト
    が有する変数の変数名と、各変数の初期値との対応を一
    覧表示する一覧表示ステップとからなることを特徴とす
    るソフトウェア開発支援方法。
  12. 【請求項12】前記第1判定ステップは、 ソースファイルから、受け付けたオブジェクト名に対応
    するクラス名を探し出し、探し出したクラス名をそのオ
    ブジェクトが属するクラスとする第1探索サブステップ
    を備え、 前記第2判定ステップは、 ヘッダファイルにおいて第1探索サブステップによって
    探し出されたクラス名と一対になっている親クラス名を
    判定する第1判定サブステップと、 第1探索サブステップによって探し出されたクラス名を
    親クラス名としている全てのクラスのクラス名を判定
    し、判定したクラスを子のクラスとする第2判定サブス
    テップと、 第1判定サブステップによって判定されたクラス名を親
    クラス名としている全てのクラスを探し出し、探し出さ
    れたクラスを兄弟のクラスとする第3判定サブステップ
    とからなり、 前記第2受付ステップは、 第1、第2、第3判定サブステップによって判定された
    親のクラス、子のクラス、兄弟のクラスのクラス名を表
    示する第1表示サブステップと、 表示された親のクラス、子のクラス、兄弟のクラスの何
    れかのクラス名について操作者の指定を受け付ける第1
    受付サブステップとからなることを特徴とする請求項1
    1記載のソフトウェア開発支援方法。
  13. 【請求項13】前記一覧表示ステップは、 第2受付ステップが受け付けたクラス名に対応するオブ
    ジェクト名をソースファイルから探し出す第2探索サブ
    ステップと、 ソースファイルから、探し出されたオブジェクト名と対
    応している変数名を全て探し出し、それらの変数名に対
    応する初期値を探し出す第3探索サブステップと、 探し出された当該オブジェクト名と変数名との組み合わ
    せと初期値との対応関係を一覧表示する表示サブステッ
    プとからなることを特徴とする請求項12記載のソフト
    ウェア開発支援方法
JP28311495A 1995-10-31 1995-10-31 ソフトウェア開発支援装置及びソフトウェア開発支援方法 Pending JPH09128224A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP28311495A JPH09128224A (ja) 1995-10-31 1995-10-31 ソフトウェア開発支援装置及びソフトウェア開発支援方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28311495A JPH09128224A (ja) 1995-10-31 1995-10-31 ソフトウェア開発支援装置及びソフトウェア開発支援方法

Publications (1)

Publication Number Publication Date
JPH09128224A true JPH09128224A (ja) 1997-05-16

Family

ID=17661412

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28311495A Pending JPH09128224A (ja) 1995-10-31 1995-10-31 ソフトウェア開発支援装置及びソフトウェア開発支援方法

Country Status (1)

Country Link
JP (1) JPH09128224A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6674544B2 (en) 1996-06-12 2004-01-06 Fuji Photo Film Co., Ltd. Image processing method and apparatus
KR100492131B1 (ko) * 1998-04-08 2005-08-01 한국항공우주산업 주식회사 웹 프로그램의 변수 전달 방법
US9069892B2 (en) 2013-05-10 2015-06-30 International Business Machines Corporation Reducing false-positive errors in a software change-impact analysis

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6674544B2 (en) 1996-06-12 2004-01-06 Fuji Photo Film Co., Ltd. Image processing method and apparatus
KR100492131B1 (ko) * 1998-04-08 2005-08-01 한국항공우주산업 주식회사 웹 프로그램의 변수 전달 방법
US9069892B2 (en) 2013-05-10 2015-06-30 International Business Machines Corporation Reducing false-positive errors in a software change-impact analysis

Similar Documents

Publication Publication Date Title
US6282699B1 (en) Code node for a graphical programming system which invokes execution of textual code
US5754755A (en) Method and system for generating test scripts
Koskimies et al. Automated support for modeling OO software
US5297250A (en) Method of generating interfaces for use applications that are displayable on the screen of a data processing system, and apparatus for performing the method
US6651240B1 (en) Object-oriented software development support apparatus and development support method
US5933139A (en) Method and apparatus for creating help functions
US8214822B2 (en) Editor for program files
US5812847A (en) Rule-based method for designing user interfaces for applications
US20060142989A1 (en) Method and apparatus for pattern based generation of graphical user interfaces (GUI)
US20100138778A1 (en) Methods, systems, and computer readable media for automatically generating customizable user interfaces using programming patterns
JPH11161398A (ja) コンピュータを利用したドキュメンテーション及びインストラクション
US6518979B1 (en) Automatically-maintained customizable user interfaces
US6297820B1 (en) Method and system for designing a graphical user interface for an electronic consumer product
Marin et al. Generating native user interfaces for multiple devices by means of model transformation
Bouillon et al. Reverse engineering of web pages based on derivations and transformations
US5781905A (en) Program generating method combining data item part with database manipulation part
JP2006285707A (ja) 業務仕様作成支援システム及び方法
JPH08286901A (ja) ソフトウエア部品の再利用システム
JPH09128224A (ja) ソフトウェア開発支援装置及びソフトウェア開発支援方法
CN114721647B (zh) 一种基于无代码应用开发的面向对象编程方法
Molnár et al. An introduction to the generic modeling environment
Olsen Jr et al. Research directions for user interface software tools
JP3294691B2 (ja) オブジェクト指向システム構築方法
Myatt Pro NetBeans IDE 5.5 enterprise edition
Masiero et al. Development and instantiation of a generic application generator