JPH10105404A - オブジェクト指向ソフトウェア・デザインパターン - Google Patents

オブジェクト指向ソフトウェア・デザインパターン

Info

Publication number
JPH10105404A
JPH10105404A JP8275314A JP27531496A JPH10105404A JP H10105404 A JPH10105404 A JP H10105404A JP 8275314 A JP8275314 A JP 8275314A JP 27531496 A JP27531496 A JP 27531496A JP H10105404 A JPH10105404 A JP H10105404A
Authority
JP
Japan
Prior art keywords
class
subsystem
server
client
design pattern
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
JP8275314A
Other languages
English (en)
Inventor
Yotaro Hachitsuka
陽太郎 八塚
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.)
KDDI Corp
Original Assignee
Kokusai Denshin Denwa KK
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 Kokusai Denshin Denwa KK filed Critical Kokusai Denshin Denwa KK
Priority to JP8275314A priority Critical patent/JPH10105404A/ja
Publication of JPH10105404A publication Critical patent/JPH10105404A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 オブジェクト指向システム開発において、テ
スト性、及びメインテナンス性に優れたサブシステムを
構成するためのソフトウェア・インタフェース・デザイ
ンパターンを提供する。 【解決手段】 オブジェクト指向システムにおいて、該
システムのサブシステム内のクラスにアクセスする為
に、クライアントクラスからのメッセージを変換し指定
された該サブシステム内の該クラスをアクセスするメソ
ッドと、該サブシステム内の該クラス及びサーバクラス
へのインスタンスのポインタと、該サーバクラスへアク
セスするためのメソッドとを少なくとも有することを特
徴としたソフトウェア・インタフェース・デザインパタ
ーン。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、オブジェクト指向
システムにおけるサブシステムのソフトウェアの再利用
と品質の向上を、更にはテスト性や保守性の向上を目的
としたソフトウェア・インタフェース・デザインパター
ンに関するものである。
【0002】
【従来の技術】一般に、オブジェクト指向システムにお
いて、図3のサブシステムに関連したオブジェクト関連
図の1例に示すように、1及び2のクライアントクラス
C(C1、C2)と、サブシステム内の4、5、6、7
及び8の複数のクラスB(B1、B2、B3、B4、B
5)との間で制御手順を含め複雑な依存関係がある場合
に、クライアントクラスC1及びC2とサブシステム内
のクラスBとを図3の如く直接関連づけることは、これ
らの関連を実装したサブシステムのソフトウェアやオブ
ジェクトモデルの再利用を困難にすると共に、ソフトウ
ェアの解読も難しくなり、ソフトウェアのテストが煩雑
になる。この為、オブジェクト指向システムに於けるソ
フトウェア・デザインパターンが種々提案されている。
特に、インタフェースのデザインパターンに関する従来
技術の一つとしてファサード(FACADE)がある。
このファサード・デザインパターンは、これを介してサ
ブシステム内に存在している複数のクラスBにクライア
ントクラスCがアクセスする際に、クライアントクラス
Cに対して1つの統一インタフェースを与える機能を有
している。
【0003】この為、図2の如く、クライアントクラス
Cからサブシステム内のクラスBへの基本操作を行う際
に、ファサード・デザインパターンを導入し、単純なイ
ンタフェース機能を持った19のファサードクラスを定
義している。クライアントクラスC1及びC2からファ
サードクラスへメッセージを送出し、ファサードクラス
内のメソッドによって要求を受取り、更に、ファサード
クラスから適当なクラスBのオブジェクトのインタフェ
ースに変換しメッセージを転送することによりアクセス
している。このように、クライアントクラスCがサブク
ラス内のクラスB(オブジェクト)に直接アクセスする
ことを避け、クラスBに対するクライアントクラスCの
制御手順をファサードクラス内のメソッドに記述するこ
とにより、クライアントクラスCからのメッセージ数が
削減でき、而も、アクセスする為のクラスBの詳細構造
を知る必要は無くなる。従って、サブシステムの独立性
や移植性が高められる。
【0004】また、サブシステム内のクラスBは、原則
的にファサードクラスを介して指定された仕事を処理す
るが、逆に、ファサードクラスへの参照(ポインタ)を
属性として保持してない。従って、サブシステム内のク
ラスBはファサードクラスへメッセージを送ることがで
きず、図2に示すようにクラスB2から9のサーバクラ
スS1へ、11のサーバクラスS3へ、及びクラスB3
から10のサーバクラスS2へ、更にクラスB5から1
1のサーバクラスS3へそれぞれ直接メッセージを送っ
ている。
【0005】従って、クライアントクラスCをテストド
ライバクラスで、更にサーバクラスSをスタブクラスで
それぞれ置き換え、サブシステムをテストする際に、ク
ラスBからサーバークラスSに対する制御手順など詳細
な構造を知る必要があり、インタフェースが統一されず
簡単にテストすることができない。
【0006】また、サブシステム内のクラスBはファサ
ードクラスを介して全て隠蔽されてはおらず、他の低レ
ベルのクライアントクラスからファサードクラスを介さ
ず直接アクセスすることを完全に禁止していない。この
構成条件も、サブシステムのテストを複雑にしている。
【0007】このように、従来のファサードデザインパ
ターンを用いてサブシステムとクライアントクラスCと
のインタフェースを行う場合、ファサードクラスは上記
の構造を持ったインタフェース機能を提供していること
から、クライアントクラスCからサブシステム内のクラ
スBへファサードクラスを介してメッセージを送るに
は、特に問題がない。しかしながら、サブシステムのテ
ストの際に、クライアントクラスCをテストドライバク
ラスで、サーバクラスSをスタブクラスでそれぞれ置き
換え、サブシステムをテストする場合に、個々のサーバ
クラスSとの接続構成と制御手順を解読した後、それぞ
れ個々のインタフェースを用意する必要があり、テスト
の手間が非常にかかりコストアップになるなどの問題が
ある。
【0008】更に、ソフトウェア品質、サブシステムの
機能拡張などメインナンスもやりにくいなどの欠点を持
っている。また、ファサードクラスを介さないメッセー
ジが数多くサブシステム内のクラスBへ送られている場
合には、サブシステムを独立にテストすることが困難
で、テストが一段と非常に難しくなるなどの欠点も持っ
ている。
【0009】
【発明が解決しようとする課題】上記の説明のごとく、
従来のファサード・デザインパターンをサブシステムと
クライアントクラスBとのインタフェースとして用いる
場合に、この間の接続は簡単になるものの、テストを実
行する際にはインタフェースとしては不十分で、サブシ
ステムのクラスBからメッセージをサーバクラスSに送
る際に、クラス毎にそれらのインタフェース条件や制御
手順を考慮したテスト方法を考えることが要求される。
このようにファサード・デザインパターンはソフトウェ
ア・インタフェース・デザインパターンとして、サブシ
ステムの独立性を十分に確保できず、テスト性を考慮し
たインタフェースとしては機能的に不十分で、ソフトウ
ェア品質やメインテナンス性も劣り、多くのテスト期間
やコストがかさむ欠点を有している。
【0010】本発明の目的は、上記の問題を解決し、サ
ブシステムのテストの際にも優れたインタフェース機能
を有し、ソフトウェア品質や再利用性に優れたソフトウ
ェア・インタフェース・デザインパターンを提供するこ
とにある。ここでは、本発明のデザインパターンを以下
コネクタ・デザインパターンと呼ぶこととする。
【0011】
【課題を解決するための手段】オブジェクト指向システ
ムにおいて、上記の問題点を解決するために、該システ
ムのサブシステム内のクラスにアクセスする為に、クラ
イアントクラスからのメッセージを変換し指定された該
サブシステム内の該クラスをアクセスするメソッドと、
該サブシステム内の該クラス及びサーバクラスへのイン
スタンスのポインタと、該サーバクラスへアクセスする
ためのメソッドとを少なくとも有することを特徴とした
ソフトウェア・インタフェース・デザインパターンを用
いることにより、上記の欠点を解決する。
【0012】また、該ソフトウェア・インタフェース・
デザインパターンを有する該サブシステムに対して、該
クライアントクラスの代わりにテストドライバクラス
を、該サーバクラスの代わりにスタブクラスをそれぞれ
定義し、該ソフトウェア・インタフェース・デザインパ
ターンを介して該サブシステムのテストを実行すること
を特徴としたテスト方式を用いることにより、上記の欠
点を解決する。
【0013】上記説明のごとく本発明のソフトウェア・
インタフェース・デザインパターン(コネクタ・デザイ
ンパターン)を設け、コネクタ・デザインパターンのコ
ネクタクラスを介してクライアントクラスC及びサーバ
クラスSとサブシステム内のクラスBとをそれぞれ接続
させることから、サブシステムは他のクライアントクラ
スやサーバクラスから完全に独立したものとなり、サブ
システムの機能拡張や変更が、他システムや他クラスに
は影響を与えず、簡単に実施できる。また、クライアン
トクラス及びサーバクラスとの接続もしやすく統一的な
インタフェース構造を提供できることから、サブシステ
ムの再利用性も従来方式より一段と高くなり、更に、テ
スト性にも非常に優れ、メインテナンス性も大幅に改善
される。
【0014】従って、本発明のソフトウェア・インタフ
ェース・デザインパターンを個々のサブシステムに適用
することにより、開発コスト、メインテナンスコストが
大幅に削減出来ると共に、LSIチップのように同一の
サブシステムやカスタマイズされたサブシステムの幅ひ
ろい利用が可能となる。
【0015】
【発明の実施の形態】以下に本発明のソフトウェア・イ
ンタフェース・デザインパターンの1実施例をあげ説明
する。ソフトウェア・インタフェース・デザインパター
ンとしてのコネクタ・デザインパターンを適用し、コネ
クタ・デザインパターンのコネクタクラスを介したクラ
イアントクラスC及びサーバクラスSとサブシステムの
クラスBとの接続を行う1構成例を図1に示す。クライ
アントクラス及びサーバクラスは、コネクタクラスを介
してサブシステム内のクラスBと接続される。ここで、
接続関係を示す為に、12、13、14及び15にそれ
ぞれ3のコネクタクラス内の入力インタフェース用メソ
ッドI1、I2、I3及びI4を記述したものである。
また、16、17及び18は、それぞれコネクタクラス
内の出力インタフェース用メソッドO1、O2及びO3
である。ここで、コネクタクラスのC++言語による定
義の1例を図4に示す。ファサードクラスと異なり、サ
ーバクラスS(S1、S2、S3)がそれぞれ宣言され
ており、それぞれのインスタンスのポインタも属性とし
て新たに定義されている。更に、クラスBからコネクタ
クラスへ送られるメッセージとサーバクラスSにそれぞ
れアクセスするための出力インタフェース用メソッドO
1、O2及びO3が新たに実装されている。
【0016】また、ファサードクラスを用いた場合と同
様に、クライアントクラスCからのメッセージに従って
クラスBをアクセスする為のメソッドもそれぞれ定義さ
れている。このように、コネクタ・デザインパターンに
おけるコネクタクラスを図4の如く定義することによ
り、入出力インタフェースが準備され、クラスBの詳細
な構造と制御手順を知る必要がなくなり、テストドライ
バクラス及びスタブクラスとの接続性が非常に高く、テ
ストしやすい。また、図6、図7及び図9のクラスBの
定義の1例に示す如く、20、21及び22のクラスB
2、B3及びB5は、ファサードクラスを用いた場合と
は異なっており、それぞれコネクタ・デザインパターン
のコネクタクラスを導入したことにより、ファサードの
場合の5、6及び8と異なり、コメントに記述されてい
るように変更されている。具体的には、コネクタクラス
の宣言と、コネクタクラスにアクセスするためのメソッ
ド、とコネクタクラスがアクセスするクラスへのインス
タンスのポインタを属性として新たに定義している。
【0017】一方、クラスB1及びB4に関しては、図
5のクラスB1(4)及び図8のクラスB4(7)の、
クライアントクラスC1及びC2に関しては、図10の
クライアントクラスC1(1)及び図11のクライアン
トクラスC2(2)の、更に、サーバクラスSに関して
は、図12のサーバクラスS1(9)、図13のサーバ
クラスS2(10)及び図14のサーバクラスS3(1
1)の定義の1例をそれぞれ掲げたが、これらはファサ
ード・デザインパターンのファサードクラスを用いた場
合と同様である。
【0018】上記の各クラスに対して、図1のオブジェ
クト関連図に従って、クライアントクラスCからそれぞ
れメッセージをコネクタクラスに送り、更にクラスBへ
転送し、クラスBからの応答としてのメッセージをコネ
クタクラスが受取り、これらをサーバクラスSへ転送す
ることにより一連の動作をさせることができる。また、
サブシステムのテストの際には、クライアントクラスC
をテストドライバクラスに、サーバクラスSをスタブク
ラスに置き換えることにより、サブシステムになんら変
更を加えることなく実施することができる。また、この
実施例では、サブシステム内のクラスBはコネクタクラ
スを介して全て隠蔽されることを条件としているが、テ
ストに大きな影響を与えない場合には、他の低レベルの
クライアントクラスからコネクタクラスを介さず直接ア
クセスすることを許容してもよい。
【0019】
【発明の効果】以上述べたように、本発明のソフトウェ
ア・インタフェース・デザインパターンとしてのコネク
タ・デザインパターンを設け、これを介してクライアン
トクラス及びサーバクラスとサブシステム内のクラスと
を接続させることから、非常に安定したインタフェース
機能を提供できる。従って、サブシステムは、クライア
ントクラスC及びサーバクラスSとサブシステム内のク
ラスB間の非常に複雑な直接の依存関係が排除され、而
も、クライアントクラスやサーバクラスから完全に独立
したものとなり、サブシステムの機能拡張や変更が、他
システムや他クラスには影響を与えず、実施できる。ま
た、統一的なインタフェース構造によりクライアントク
ラス及びサーバクラスとの接続もしやすいことから、サ
ブシステムの再利用性も従来方式より一段と高まり、更
に、テスト性にも非常に優れ、メインテナンス性も大幅
に改善される。
【0020】従って、本発明のソフトウェア・インタフ
ェース・デザインパターンを個々のサブシステムに適用
することにより、ソフトウェア品質の向上、開発コスト
やメインテナンスコストの大幅な削減が出来ると共に、
LSIチップと同様に同一のソフトウェアからなるサブ
システムやカスタマイズされたサブシステムの幅ひろい
利用が可能となる。
【0021】従来技術では、オブジェクト指向システム
におけるサブシステム内のクラスとクライアントクラス
間及びサーバクラス間の一貫した入出力テストが困難で
あったが、上記の説明の如く本発明のコネクタ・デザイ
ンパターンを適用することにより、サブシステムのテス
ト性と再利用性、更にはそれらのソフトウェア品質の著
しい改善が図られることから、最終的に大規模なオブジ
ェクト指向システムのソフトウェア品質の向上と保守性
の向上が図られ、非常に大きな経済効果を与えることが
できる。
【図面の簡単な説明】
【図1】本発明の実施例のソフトウェア・インタフェー
ス・デザインパターンとしてのコネクタ・デザインパタ
ーンを用いた1実施例におけるコネクタクラスを介した
クライアントクラスC及びサーバクラスSとサブシステ
ム内のクラスBとのオブジェクト関連図の1例である。
【図2】従来のファサード・デザインパターンを用いた
場合のファサードクラスを介したクライアントクラスC
及びサーバクラスSとサブシステム内のクラスBとのオ
ブジェクト関連図の1例である。
【図3】デザインパターンを用いない場合のクライアン
トクラスC及びサーバクラスSとサブシステム内のクラ
スBとのオブジェクト関連図の1例である。
【図4】実施例におけるコネクタクラスの定義の1例で
ある。
【図5】実施例におけるクラスB1の定義の1例であ
る。
【図6】実施例におけるクラスB2の定義の1例であ
る。
【図7】実施例におけるクラスB3の定義の1例であ
る。
【図8】実施例におけるクラスB4の定義の1例であ
る。
【図9】実施例におけるクラスB5の定義の1例であ
る。
【図10】実施例におけるクライアントクラスC1の定
義の1例である。
【図11】実施例におけるクライアントクラスC2の定
義の1例である。
【図12】実施例におけるサーバクラスS1の定義の1
例である。
【図13】実施例におけるサーバクラスS2の定義の1
例である。
【図14】実施例におけるサーバクラスS3の定義の1
例である。
【符号の説明】 1 クライアントクラスC1 2 クライアントクラスC2 3 コネクタクラス 4 クラスB1 5 クラスB2 6 クラスB3 7 クラスB4 8 クラスB5 9 サーバクラスS1 10 サーバクラスS2 11 サーバクラスS3 12 入力インタフェース用メソッドI1 13 入力インタフェース用メソッドI2 14 入力インタフェース用メソッドI3 15 入力インタフェース用メソッドI4 16 出力インタフェース用メソッドO1 17 出力インタフェース用メソッドO2 18 出力インタフェース用メソッドO3 19 ファサードクラス 20 クラスB2 21 クラスB3 22 クラスB5

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 オブジェクト指向システムにおいて、該
    システムのサブシステム内のクラスにアクセスする為
    に、クライアントクラスからのメッセージを変換し指定
    された該サブシステム内クラスをアクセスするメソッド
    と、該サブシステム内クラス及びサーバクラスへのイン
    スタンスのポインタを保持し、該サーバクラスへアクセ
    スするためのメソッドとを少なくとも有することを特徴
    としたソフトウェア・インタフェース・デザインパター
    ン。
  2. 【請求項2】 請求項1の記載において、該ソフトウェ
    ア・インタフェース・デザインパターンを有する該サブ
    システムに対して、該クライアントクラスの代わりにテ
    ストドライバクラスを、該サーバクラスの代わりにスタ
    ブクラスを定義し、該ソフトウェア・インタフェース・
    デザインパターンを介して該サブシステムのテストを実
    行することを特徴としたテスト方式。
JP8275314A 1996-09-27 1996-09-27 オブジェクト指向ソフトウェア・デザインパターン Pending JPH10105404A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8275314A JPH10105404A (ja) 1996-09-27 1996-09-27 オブジェクト指向ソフトウェア・デザインパターン

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8275314A JPH10105404A (ja) 1996-09-27 1996-09-27 オブジェクト指向ソフトウェア・デザインパターン

Publications (1)

Publication Number Publication Date
JPH10105404A true JPH10105404A (ja) 1998-04-24

Family

ID=17553726

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8275314A Pending JPH10105404A (ja) 1996-09-27 1996-09-27 オブジェクト指向ソフトウェア・デザインパターン

Country Status (1)

Country Link
JP (1) JPH10105404A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001229047A (ja) * 2000-02-14 2001-08-24 Toshiba Corp サーバプロセス試験システム、サーバプロセス試験フレームワークを記録したコンピュータ読み取り可能な記録媒体、およびサーバプロセス試験プログラムを記録したコンピュータ読み取り可能な記録媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001229047A (ja) * 2000-02-14 2001-08-24 Toshiba Corp サーバプロセス試験システム、サーバプロセス試験フレームワークを記録したコンピュータ読み取り可能な記録媒体、およびサーバプロセス試験プログラムを記録したコンピュータ読み取り可能な記録媒体

Similar Documents

Publication Publication Date Title
US6205492B1 (en) Method and computer program product for interconnecting software drivers in kernel mode
CA2208135C (en) Method, computer program product, and data structure for validating creation of and routing messages to file objects
US5586312A (en) Method and apparatus for using an independent transaction processing application as a service routine
JP3929551B2 (ja) セパレート・プロセッシング・コンポーネント間のバッファ間データ転送を減らす方法およびコンピュータ読取り可能媒体
JP4608517B2 (ja) モジュール式試験システム
US5926775A (en) Mini driver software architecture for a data acquisition system
US5847955A (en) System and method for controlling an instrumentation system
US6272675B1 (en) Development system for automatically enabling a server application to execute with an XATMI-compliant transaction manager managing transactions within multiple environments
JP4575528B2 (ja) 標準クロック・メカニズムを用いて、多重データ・ストリームの処理の同期と異なる処理速度のマッチングを行う方法
US5710727A (en) System and method for creating resources in an instrumentation system
US20070260909A1 (en) Computer Hardware Fault Administration
US6643712B1 (en) Validating the creation of and routing of messages to file objects
US5627998A (en) System and method for mapping calls to functions in a first driver level library to a session-based instrumentation control driver level system
CN101110031B (zh) 用于灵活在线/离线部署n层软件应用程序的错接接口
US6289394B1 (en) Agent management system capable of readily monitoring and controlling agent
US6052743A (en) Buffer object for performing buffered data transfers in a data acquisition system
JPH10105404A (ja) オブジェクト指向ソフトウェア・デザインパターン
JP2007057541A (ja) 試験エミュレート装置
CN109814871A (zh) 基于dds总线的节点管理方法及系统
JPH04107741A (ja) Rpcにおけるサービスプロシージャの外出し方式
CN118484381A (zh) 车辆测试方法、装置、设备和存储介质
KR100482316B1 (ko) 운영체제상에서의콘솔서버방법및장치
KR19990051702A (ko) 분산객체 시스템에서 원격객체 생성 및 접근방법
CN118964320A (zh) 基于soc的文件共享方法、系统、存储介质及芯片
Snyder Use of client/server structures within ATE systems

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20020813