JPH10505178A - インターフェースを試験する方法と装置 - Google Patents
インターフェースを試験する方法と装置Info
- Publication number
- JPH10505178A JPH10505178A JP8509422A JP50942296A JPH10505178A JP H10505178 A JPH10505178 A JP H10505178A JP 8509422 A JP8509422 A JP 8509422A JP 50942296 A JP50942296 A JP 50942296A JP H10505178 A JPH10505178 A JP H10505178A
- Authority
- JP
- Japan
- Prior art keywords
- interface
- program
- auxiliary
- testing
- programs
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/03—Protocol definition or specification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Devices For Executing Special Programs (AREA)
- Maintenance And Management Of Digital Transmission (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
Abstract
(57)【要約】
インターフェースと共に第1および第2補助プログラムを作ることにより、インターフェースの基準モデルを提供する。第1補助プログラム(A”)は、インターフェースの使用をシミュレートするモデルプログラムであり、第2補助プログラム(B”)は、インターフェース内の機能を提供することをシミュレートするモデルプログラムである。両プログラムは、インターフェースを通してすべての可能な許容できる動作を実行し、同時に、他のプログラムは許容できないことを一切しないように制御することができる。
Description
【発明の詳細な説明】
インターフェースを試験する方法と装置
発明の技術分野
この発明の第1態様は、インターフェースを試験する方法と装置に関し、第2
態様は、通信システムの新しいプログラムウエアと共にインターフェースを試験
する方法と装置に関し、第3態様は、通信システムの基準モデルを与える方法と
装置に関するものである。プログラムウエアは、プロトコルを通して互いに通信
することができ、プロトコルは、インターフェースによりこれらのプログラムウ
エアから各プログラムウエアに対して分離されている。
互いに独立に設計され維持されている2つのプログラムウエアユニットが互い
に作用する場合、相互作用の規則は、インターフェースに記述される。このイン
ターフェースは、一方のプログラムウエアユニットの設計者が他方のプログラム
ウエアユニット内の機能を使用するのに必要なすべての知識を含んでいなければ
ならない。これに反して、この他方のプログラムウエアユニットについて設計者
が知る必要がないようにするため、使用する機能をインターフェースで隠さなけ
ればならない。その目的は、機能を提供するプログラムをインターフェースの枠
内で自由に変更できるようにすることである。
通常、インターフェースは構文的な用語で定義される。すなわち、第2プログ
ラム内の機能を正しく呼び出すことのできる形で示される。一般に、このような
定義は形式的であり正確である。機能呼び出しプログラムの構文分析では、例え
ば、つづりの誤りなどの形式上の誤りがある呼び出しは必ず発見される。これに
反して、機能呼び出しの使い方を示す意味論的な規則は、多くの場合は形式的で
も完全でもない。具体例を挙げると、車のイグニションキーを時計回りに回すと
いうのは構文的には常に正しい動作である。しかし、エンジンが既に回転してい
る場合は、意味論的には正しくない。
従来の技術
EP 474,339は、アプリケーションの目的向き呼び出し用のクライア
ントインターフェースを与える方法を開示している。不均一なネットワーク内で
、個々のアプリケーションが必要とする特定のインターフェースを使うことを強
制されたユーザから問題が起こらないようにすることが望ましい。この目的は、
プロセスの相互作用を目的向きにさせることである。クライアントのアプリケー
ションは、パラメータを持つ広く知られたメッセージを送ることにより、他のア
プリケーションを呼ぶことができる。クライアントは希望を出し、サーバはその
希望に応えるようなクライアント/サーバを用いる。
EP 540,166は、クライアント/サーバモデルに基づいた、目的向き
分散システムにおける方法を開示している。より詳しく言うと、第1サーバプロ
セスと第2サーバプロセスによりそれぞれ実現された2つの目的が等しいかどう
かをクライアントのプロセスが決定するという場合の問題がある。ただし各目的
を処理するために目的向きインターフェースが与えられている。これは分散形コ
ンピュータシステム内の目的向きプログラミングで実行しなければならない。
EP 278,317では、クライアントプロセスシステム内のプロセスが、
サーバ内で修正されたクライアントキャッシュメモリ内のデータにアクセスする
のを妨げる方法を記述している。前記データは、すでにサーバ内でアクセスされ
てクライアントに送られている。サーバは、ディスク上に永久データファイルを
持ち、サーバのローカルプロセッサが使うキャッシュメモリを持っている。しか
し、クライアントプロセスは、サーバとクライアントのキャッシュメモリを用い
ている間に、このファイルにアクセスすることができる。ディスクからのファイ
ルブロックはサーバのキャッシュメモリに記憶され、クライアントは、ネットワ
ークを通してこれからファイルブロックを受けて、このブロックをクライアント
キャッシュメモリ内に記憶する。後者のこのデータブロックは、クライアントプ
ロセス内での妥当性をチェックし、データが妥当であれば、クライアントキャッ
シュメモリからアクセスされる。
特開平5−11983は、異なる宣言言語内のプログラムの間のインターフェ
ースを検査する方法を開示している。インターフェースが定義するファイルを作
る手段内で、異なる記述言語に対応するプログラム間のインターフェースを定義
して、プログラム間インターフェース用の定義ファイルを与える、定義情報が与
えられる。一貫性試験手段では、インターフェースの一貫性を試験するための、
プログラム記述言語ソースファイルとプログラム間インターフェースを定義する
ファイルが与えられる。さらに、一貫性試験の結果に基づいて、プログラム間イ
ンターフェースを自動的に訂正する手段が与えられる。
特開昭63−86030は、異なるプログラミング言語の間を連結するシステ
ムを開示している。CPUは、Cプログラムモジュールと、プロローグ解釈モジ
ュールと、急速ノードアクセスモジュールを機能部分として備える。またCPU
は、共通データ領域をプロローグスタックと、大データベースと、規定のメモリ
空間内に確保した情報ベースと共に備える。これらのモジュール間のデータ伝送
制御は、共通のデータ領域と2つの専用スタックにより行う。
特開昭62−293347は、異なるプログラミング言語を持つプログラムを
接続する開発システムについて記述している。
EP 498 130は、コンピュータシステム内で互いに通信するプログラ
ムモジュールの間の互換性を確認する方法について述べている。複数の互いに作
用するシステム要素のそれぞれは、バージョン識別子に関連している。バージョ
ン識別子は、他の要素からアクセスできる場所に記憶する。各要素は、互いに作
用する各要素のバージョン識別子を独立に読み出し、この値と内部に記憶してい
る互換性レジスタを比較して、他の要素が確認対象の要素との互換性の要件を満
たしているかどうか決定する。互換性がないことが分かった要素は、システムに
誤りの信号を出す。
EP 495 279は、異なるプログラミング言語で書かれた2つの目的向
けプログラムの間の通信の方法を開示している。メッセージの交換を制御するた
め、2つのプログラムの間に総称送信メッセージ機能を設ける。これを行うため
、総称送信メッセージ機能は、他のコンピュータプログラム内のクラスの記述に
アクセスできる。この記述にアクセスすると、総称送信メッセージ機能は、異な
るコンピュータプログラムの間で効率的にメッセージを送信して、新しい目的を
作る可能性を与えることができる。
EP 371 942は、アプリケーションとデータベースマネージャとの間
のインターフェースについて述べている。インターフェースシステムは複数のア
プリケーションプログラムインターフェースを、データベース核と実時間で通信
するのに必要なすべての機能性をもつプレコンパイラデベロッパを与える一組の
実時間サービスの形で持つ。
EP 371 941は、異なるプログラミング言語で書かれたアプリケーシ
ョンとデータベースマネージャまたは同等物との間のインターフェースについて
記述している。ソフトウエアで支援される複数の機能それぞれに対して、総称ア
プリケーションプログラムインターフェース、すなわち入力点を定義する。これ
は、機能を実行するためにシステムが要求する一貫した形式の複数のパラメータ
を持つ。各入力点は、複数の言語のどれかで書かれたアプリケーションプログラ
ムで呼び出して、呼び出しのパラメータをソフトウエアシステム機能が実行する
一貫した総称形式に変換することができる。
EP 343 682は、ソフトウエアを開発し試験する方法を記述している
。設計と試験は互いに直接接続されていて、設計中に設計データを自動的に試験
に用いることができる。
EP 315 493は、ハードウエアやオペレーティングシステムなどのコ
ンピュータ環境から独立した、実際のインターフェース作成ソフトウエアについ
て述べている。このシステムは、異種の、すなわち「宛先」コンピュータの1個
以上の分散プロセッサ内のアプリケーションソフトウエアが要求する1つまたは
複数のタスクを実行する複数のプロセスを含む。実時間プログラムでは、アプリ
ケーションソフトウエアのコードを事前処理し、コンパイルし、システムインタ
ーフェースモジュールと連結して、宛先コンピュータのオペレーティングシステ
ムが実行可能なコードを作る。プロセスへの多数の機能呼び出しを含む実行可能
なコードはオペレーティングシステムにより走り、アプリケーションソフトウエ
アが要求する測度をプロセスが実行できるようにする。
US 5 045 994には、大きなプログラムシステムの開発と試験に関
するエミュレーションを行う方法が述べられている。エミュレーティングシステ
ム環境を用いて、アプリケーションシステムの実際の入出力インターフェースを
シミュレートする。この環境で入出力トランザクションを作り、ユーザはアプリ
ケーションシステムから独立していて、その側にあるスクリーン・パワード自動
モードでアプリケイションシステムが後で実行する。
「分散システムにおける混合言語プログラミングを容易にする」、ロジャー・
ヘイズ(Roger Hayes)、リチャード・D・シュリヒティング(Richard D.Schlicht
ing)、IEEE TRANSZACTIONS ON SOFTWARE EN
GINEERING、VOL.SE−13、NO.12、1987年12月、ペ
ージ1254−1264には、同じプログラム内の異なるプログラミング言語間
の手順呼び出しの方法が述べられている。これは、各言語に総称遠隔手順呼び出
しシステムを与えることと、手順インターフェースと共に手順の間で伝送するデ
ータを記述するための型のシステムを用いることに基づいている。プログラミン
グ言語毎に標準の写像を定義することにより、横断的な言語呼び出しに必要なデ
ータ変換を、異なる言語で書かれたプログラム要素の間のインターフェースに含
まれる能動的要素により、ほとんどの場合、自動的に与えることができる。
要約
自分で設計したユーザプログラムの中で、他のプログラムへのインターフェー
ス(他のプログラムの機能を用いるにはインターフェースを通す)を用いるプロ
グラム設計者は現在多くの問題に直面している。
設計者がインターフェースについてインターフェース説明書に書かれてある以
上のことを知りたいと思えば、これまで他のユーザがそのインターフェースをど
のように使っているかを知らなければならない。しかし、使い方が間違っている
場合もあるし、条件が異なる場合もある。
また設計者は他のプログラムの中を見て、機能がどのように設計されているか
を見ることもできる。しかし、こうすることは、インターフェースを用いるとい
う全体的な原理に反している。ユーザプログラムが他のプログラムの設計の中の
或る特性を用いていることを知らずに他のプログラムの設計者がプログラムを変
更した場合は、その後はそれが機能するかどうか分からない。
ユーザプログラムの設計者が自分のプログラムを試験し、またインターフェー
スを通した使用を試験したい場合は、他のプログラムの使用可能なバージョンと
共に走らせる。設計者がこれらのプログラムを一緒に機能させることができたと
しても、自分のプログラムが他のプログラムのこの特定の実施態様とだけ一緒に
機能することが分かったに過ぎない。他のプログラムが同じ機能を持つ別のプロ
グラムに対して更新され、または変更された場合は、その後はそれが機能するか
どうか分からない。
ユーザプログラムの設計者が他のプログラムを用いる場合は、ある誤りの事象
を作ることが難しいと言う点で問題が生じる可能性もある。簡単な例では、問題
の場合に作ったために、或る誤りが他のプログラムでは決して起こらないことが
ある。この場合、設計者が他のプログラムを自分で少し書き変えると、インター
フェースの機能についての自分の誤解を組み込む恐れがある。
インターフェースの設計に関する問題点のいくつかを以下に要約する。
・ 通常、インターフェースの意味論的な定義が欠けている。あるとしても、完
全であったり厳密に定義されたりすることはほとんどない。正常とは異なった流
れの場合には特にそうである。
・ インターフェースを使う人にとって、一緒に用いるプログラムの中が変更さ
れても、インターフェース自身が影響を受けない限り、これを使用しても間違い
ないことを確認することのできる試験プログラムがないことが多い。
・ したがって1つのプログラムを単独で保証することはできない。保証できる
のは、共に用いるプログラムの特定のバージョンと一諸のときだけである。プロ
グラムを変更する度に、そのプログラムだけでなく、共に用いるプログラムをす
べて保証し直さなければならない。この発明の一般的な目的は、インターフェー
スの機能を完全に定義することである。すなわち、インターフェースの基準モデ
ルを示し、次にこの定義を用いて、そのインターフェースをどのように使ったか
、または提供したかに関してプログラムを保証することである。インターフェー
スを通して2つのソフトウエアユニットの間の相互作用が確立したとき、この発
明によりこの相互作用を記述し、相互作用の定義が確かに完全で一貫したものに
なるよう支援することができる。
別の目的は、インターフェースの機能を、そのインターフェースを通して他の
ソフトウエアと互いに作用するソフトウエアと共に試験する方法を示すことであ
る。
さらに別の目的は、インターフェースの基準モデルを与えて、そのインターフ
ェースの両側のソフトウエアが、相手側の行動に関する情報をそのインターフェ
ースの構文的な定義に示されたものより多く得られるようにすることである。よ
り詳しく言うと、この情報は、相手側から期待できる行動と、相手側を管理する
測度の範囲とを記述する意味論的な定義も含まなければならない。
この発明のさらに別の目的は、ソフトウエアユニットを保証できるようにする
ことである。すなわち、共に動作するソフトウエアの許された行動パターンは、
すべて正しく再現するが、それ以外には内部構造について何も示さない試験プロ
グラムを示すことにより、ソフトウエアユニットが正しく動作することと、イン
ターフェースを通した他のプログラムと動作することを示すことである。
この発明の第1態様は、インターフェースの機能を、このインターフェースを
通して別のプログラムウエアと互いに作用するプログラムウエアと共に試験する
方法を含む。これは、機能性がインターフェースを通して提供されるプログラム
ウエアの実行と、インターフェースを通して提供される機能を使用するプログラ
ムウエアの実行とを、インターフェースと共にシミュレートすることにより行い
、そのためインターフェースを通してすべての可能な許容される動作を実行し、
同時にインターフェースと共に試験するプログラムウエアの動作は許容できない
ことを一切しないようにチェックする。
この発明の第2態様は、インターフェースの機能を、このインターフェースを
通してその機能性を別のプログラムウエアに提供するプログラムウエアと共に試
験する方法を含む。これは、インターフェースと共に前記プログラムウエアを試
験することによりインターフェースの使用をシミュレートし、同時にインターフ
ェースを通してすべての可能な許容される動作を実行し、またインターフェース
と共に試験するプログラムウエアは許容できないことを一切しないようにチェッ
クすることにより行う。
この発明の第3態様は、インターフェースの機能を、このインターフェースを
通して第2プログラムウエアから提供される機能を用いる第1プログラムと共に
試験する方法を含む。これは、インターフェースと共に前記第1プログラムウエ
アを試験することによりインターフェース内の機能の提供をシミュレートし、同
時にインターフェースを通して受けたすべての可能な許容できる動作を処理し、
またすべての可能な応答を返し、同時に試験中のプログラムは許容できない方法
でインターフェースを使用しないよう監視することにより行う。
この発明の第4態様は、ユーザプログラムウエアが、対応するインターフェー
スにより各ユーザプログラムウエアから分離されるプロトコルを通して互いに通
信することができる通信システム内で、既存のユーザプログラムウエアと通信す
ることができる新しいユーザプログラムウエアを試験する方法を含む。第1およ
び第2補助プログラムを提供し、これらは、ユーザプログラムウエアによるイン
ターフェースとプロトコル機能の使用をそれぞれシミュレートするための、また
両補助プログラムがインターフェースを通してすべての可能な許容できる動作を
実行し、同時にインターフェースの反対側のプログラムは許容できないことを一
切しないようにチェックするためのコードを含む。第2補助プログラムを通して
新しいプログラムウエアを第1補助プログラムと通信接続させ、両補助プログラ
ムに与えられる動作を実行する。
この発明の第5態様は、ユーザプログラムウエアが、対応するインターフェー
スにより各ユーザプログラムウエアから分離されるプロトコルを通して互いに通
信することができる通信システム内で、新しいプロトコルプログラムウエアを試
験する方法を含む。補助プログラムを提供し、これは、インターフェースと共に
新しいプログラムウエアを試験することができるユーザプログラムウエアによる
インターフェースの使用をシミュレートするための、また補助プログラムがイン
ターフェースを通してすべての可能な許容できる動作を実行し、かつインターフ
ェースにより試験するプロトコルプログラムウエアは許容できないことを一切し
ないようにチェックするためのコードを含む。補助プログラムの2つの複写を作
り、新しいプログラムウエアを通してこれらを互いに通信接続させ、両複写に与
えられる動作を実行する。
この発明の第6態様は、ユーザプログラムウエアが、対応するインターフェー
スにより各ユーザプログラムから分離されるプロトコルを通して互いに通信する
ことができる通信システム内で、新しいユーザプログラムウエア試験する方法を
含む。補助プログラムを提供し、これは、インターフェースを通してプロトコル
の機能を提供することをシミュレートし、同時にインターフェースと共に新しい
ユーザプログラムウエアを試験するための、またインターフェースを通してすべ
ての可能な許容できる動作を実行し、かつインターフェースの反対側のプログラ
ムは許容できないことを一切しないようにチェックするためのコードを含む。新
しいユーザプログラムウエアの2つの複写を作り、補助プログラムを通して互い
に通信接続させ、補助プログラムに与えられる動作を実行する。
この発明の第7態様は、プログラムウエアが、各プログラムウエアに対するイ
ンターフェースによりこれらのプログラムウエアから分離されるプロトコルを通
して互いに通信することができる、通信システムの基準モデルを提供する方法を
含む。第1および第2補助プログラムを作り、このため第1補助プログラムが、
プロトコルを通して互いに通信しかつ通信において呼び出しも応答も行うことが
できるプログラムウエアを表し、第2補助プログラムがプロトコルを表し、第1
補助プログラムが通信において呼び出し事例と応答事例の両方の動作を行い、両
事例がインターフェースを通してすべての可能な許容できる動作を実行し、同時
にインターフェースの反対側のプログラムは許容できないことを一切しないよう
にチェックするためのコードを導入する。
この発明の第8態様は、インターフェースの基準モデルを提供する方法を含む
。第1および第2補助プログラムを作り、このため第1補助プログラムがインタ
ーフェースの使用をシミュレートし、第2補助プログラムがインターフェース内
で機能を提供することをシミュレートし、両プログラムがインターフェースを通
してすべての可能な許容できる動作を実行し、またインターフェースの反対側の
プログラムは許容できないことを一切しないようにチェックするためのコードを
導入する。
この発明の第9態様は、インターフェースの機能を試験する装置を含む。この
装置は、インターフェースの使用をシミュレートする第1機能性とインターフェ
ース内で機能を提供することをシミュレートする第2機能性を備え、インターフ
ェースを通してすべての可能な許容できる動作を実行し、同時にインターフェー
スの反対側のプログラムは許容できないことを一切しないようにチェックする。
この発明の第10態様は、プログラムウエアが、各プログラムウエアに対する
インターフェースを通してこれらのプログラムウエアから分離されるプロトコル
により互いに通信することができる、通信システム内のインターフェースを試験
する装置を含む。第1補助機能性は、プロトコルを通して互いに通信するプログ
ラムウエアを表し、第2補助機能性は、プロトコルを表す。第1補助機能性は、
通信において呼び出し事例および応答事例として動作することができる手段を備
える。両事例は、インターフェースを通してすべての可能な許容できる動作を実
行し、同時にインターフェースの反対側のプログラムは許容できないことを一切
しないようにチェックすることができる。
この発明の第11態様は、ユーザプログラムウエアが、対応するインターフェ
ースにより各ユーザプログラムウエアから分離されるプロトコルを通して互いに
通信することができる通信システム内で、既存のユーザプログラムウエアと通信
することができる新しいユーザプログラムウエアを試験する装置を含む。この装
置は、ユーザプログラムウエアによるインターフェースとプロトコル機能の使用
をそれぞれシミュレートする第1および第2補助プログラムを定義し、また両補
助プログラムが、インターフェースを通してすべての可能な許容できる動作を実
行し、同時にインターフェースの反対側のプログラムは許容できないことを一切
しないようにチェックするためのコードを含む。第2補助プログラムを通して新
しいプログラムウエアを第1補助プログラムと通信接続させ、両補助プログラム
に与えられる動作を実行する手段を与える。
この発明の第12態様は、ユーザプログラムウエアが、対応するインターフェ
ースにより各ユーザプログラムから分離されるプロトコルを通して互いに通信す
ることができる通信システム内で、新しいプロトコルプログラムウエアを試験す
る装置を含む。この装置は、インターフェースと共に新しいユーザプログラムウ
エアを試験することができるユーザプログラムウエアによるインターフェースの
使用をシミュレートする補助プログラムを定義し、また補助プログラムがインタ
ーフェースを通してすべての可能な許容できる動作を実行し、かつインターフェ
ースにより試験するプロトコルプログラムウエアは許容できないことを一切しな
いようにチェックするためのコードを含む。新しいプログラムウエアを通して補
助プログラムの2つの複写を互いに通信接続させ、また両複写に与えられる動作
を実行する手段を与える。
この発明の第13態様は、ユーザプログラムウエアが、対応するインターフェ
ースにより各ユーザプログラムから分離されるプロトコルを通して互いに通信す
ることができる通信システム内で、新しいユーザプログラムウエアを試験する装
置を含む。この装置は、インターフェースを通してプロトコルの機能を提供する
ことをシミュレートし、同時にインターフェースと共に新しいユーザプログラム
ウエアを試験する補助プログラムを定義し、またインターフェースを通してすべ
ての可能な許容できる動作を実行し、かつインターフェースの反対側のプログラ
ムは許容できないことを一切しないようにチェックするためのコードを含む。補
助プログラムを通して新しいユーザプログラムウエアの2つの複写を互いに通信
接続させ、補助プログラムに与えられる動作を実行する手段を与える。
異なる態様の実施態様は、各サブクレームに示されている特性を表す機能を持
つ。
インターフェースの基準モデルは、ここではインターフェースを構文的および
意味論的に定義したものとする。
全基準モデルは実行可能である。
インターフェースの設計は、インターフェース自身のソフトウエアを与えるだ
けでなく、補助プログラムの設計も含む。
第1補助プログラムは、すべての許容できる使用事例を含むインターフェース
の完全なユーザとして作る。第2補助プログラムは、すべての使用事例を処理し
、インターフェースの全体像から分かるように、インターフェースの機能性を実
際に提供するプログラム内で何か起こるかを示す。補助プログラムは、インター
フェースと同様に見ることができ、インターフェースに関する完全な情報を含む
。補助プログラムは、常にインターフェースと共に扱われ、一諸に更新されまた
提供される。
補助プログラムとインターフェースは、必ず実行可能なユニットを作ることが
できる。両補助プログラムは、互いに監視し合い、何か禁じられていることを相
手のプログラムが行った場合は、誤りであることをプリントアウトする。これは
まず補助プログラムの試験中に用い、その後はどちらかの補助プログラムを試験
ツールとして用いるときに用いる。
インターフェースを用いるプログラムを設計するとき、設計者は、第1補助プ
ログラムを学ぶことにより、用いる使用事例を知ることができる。さらに設計者
は、インターフェースのサービスを提供するプログラムがどのように機能するか
をよよりく理解することができる。主として、これらはすべて第2補助プログラ
ムとして機能する。
次にこのプログラムを試験するので、実行可能なユニットをインターフェース
および第2補助プログラムと共に作る。この構成は次のような利点を持つ。
・ 第2補助プログラムは、インターフェースと共に供給されるので、常に使用
可能である。
・ 第2補助プログラムは、インターフェースの機能を提供する各設計の基準な
ので機能する。
・ 第2補助プログラムは、すでに作られているので明確に記述される。さらに
別のプログラムを必要とするような他のプログラムは一切必要としない。
・ インターフェースの使用を誤った場合や、インターフェースのサービスを提
供する他のプログラムが許す場合は、第2補助プログラムは、はっきりと誤りで
あることをプリントアウトする。
インターフェースの機能を提供するプログラムを設計するときは、どういう使
用事例があり得るかを第1補助プログラムから知ることができる。これらはすべ
て処理できなければならない。しかし、ユーザソフトウエアは、これらの使用事
例を超えることはないと仮定してよい。これは、ユーザプログラムを第2補助プ
ログラムと共に試験したときに分かる。
さらに、第2ソフトウエアがこれらを処理するすべての可能な方法を導入する
必要はない。したがって、インターフェースに記述される誤りの状況の中には、
当の設計では絶対に起こらないものがある。また考えられるすべての誤りの事例
に対して各ユーザプログラムを備えなければならないとしても、誤りのすべての
事例がその実現の際に起こる必要はない。
新しいプログラムを試験するときは、第1補助プログラムおよびインターフェ
ースと一諸に実行可能なユニットを作る。第1補助プログラムにおけるすべての
使用事例を実行し、すべての機能性の実行が得られる。第1補助プログラムは、
第2プログラムからの各反応を監視する。
いわゆる適用度指標(covering degree indicator)により、新しいプログラム
のコードの中で走った部分と走らなかった部分を見ることができる。他のどのイ
ンターフェースとも関連がないコードや走らなかったコードは、誤りがあると疑
ってよい。
図面の簡単な説明
この発明について、添付の図面を参照して以下に詳細に説明する。
第1図は、この発明の簡単な実施態様を流れ図で示す。
第2図は、多くの異なる着信および発信の回線プロトコルがあるために電話交
換局において発生する問題を説明するためのブロック図である。
第3図は、第2図と同じブロック図であるが、問題を処理するこの発明の補助
プログラムを追加した図である。
第4図は、たとえば普通の電話呼び出しの場合に、この発明の補助プログラム
により電話交換局の異なる動作を行い管理する方法を示す流れ図である。
第5図−第10図は、第4図に示す例から出発して、異なる使用事例でのこの
発明の関わり方を示す図である。
実施態様の詳細な説明
この発明の1つの重要な態様は、インターフェースの基準モデルであって、こ
れは、インターフェースの機能をインターフェースを通して他のソフトウエアと
互いに作用するソフトウエアと共に定義し試験するときに用いる。この基準モデ
ルは、第1および第2補助プログラムを含む。第1補助プログラムは、インター
フェースの使用をシミュレートするモデルプログラムであり、第2補助プログラ
ムは、インターフェース内の機能を提供することをシミュレートするモデルプロ
グラムである。両プログラムは、インターフェースを通してすべての可能な許容
できる動作を実行し、同時に他のプログラムは許容できないことを一切しないよ
うにチェックできるように設計する。
以下に示す基準モデルの機能の異なる実施態様の説明は、主として簡単のため
に、インターフェースを通して両補助プログラムが行う相互作用、すなわち補助
プログラムの保証だけに用いる基準モデルの動作を示す。
インターフェースのどちらかの側の新しいプログラムウエアを試験するときの
基準モデルの機能を理解するには、このプログラムウエアは、同じ側の補助プロ
グラムを「置き換える」と考えるとよい。なぜなら、この場合に動作するのは相
手側の補助プログラムだからである。このように「置き換えられた」補助プログ
ラムは、通常、当の試験には何の機能も持たないが、誤りが発生したときには説
明モデルとして用いることができる。
場合によっては、基準モデルを市販するときは、補助プログラムの一方だけに
限定することも考えられる。すなわち、実際の応用で補助プログラムの提供また
は使用の機能が小さいまたは興味の少ないものである場合は、インターフェース
の使用をシミュレートする補助プログラムだけか、またはインターフェースの提
供をシミュレートする補助プログラムだけにする。しかし、モデルに含まれる補
助プログラムを試験するには、モデルを設計するときに、この試験のためだけに
モデルの試験バージョンを作り、またこのために補助プログラムを追加してもよ
い。
場合によっては、第2補助プログラム、すなわち提供する補助プログラムが、
インターフェースを提供するプログラムが必要とするすべての機能を持つことも
考えられる。この場合は、第2補助プログラムは、全システムにも機能を提供す
るプログラムになる。そして第2補助プログラムは、許容されない動作を検出す
るためのチェックルーチンを含まずに設計してよい。チェックルーチンは、試験
の済んだオペレーティングシステムでは必要がないもので、プロセッサの容量を
消費するだけである。
第1図を参照して、この発明の簡単な実施態様を説明する。背景として、現在
の技術に基づいて考えた状況での測度をまず説明する。
プログラム(以後PROGと書く)には、データを臨時に記憶するためのバッ
ファ領域が必要である。バッファ領域は、オペレーティングシステム(以後OS
と書く)が持つ資源である。
PROGからこのバッファ領域にアクセスするには、インターフェースを通し
てOSに要求しなければならない。
PROGは、プログラミング言語「C」で書かれているとする。「C」の一般
的な解説書には次のようなインターフェースの説明が与えられている。
「char *malloc(大きさ)
は、大きさバイトの連続バッファ領域を占有し、占有が管理されている場合は、
占有領域の始めのポインタが返され、そうでない場合は、空白ポインタが返され
る」。
また次のような説明もある。
「ボイド解放(voidfree)(ポインタ)
は、ポインタで指され、かつ以前にmalloc呼び出しで占有されたバッファ
領域を解放する」。
経験を積んだプログラマにとっては、これで情報は十分である。
しかし、次の場合は、この情報では決して十分ではない。
・ mallocが空白ポインタを返したとする。これは、プログラムPROG
が、要求したバッファ領域にアクセスできなかったことを意味する。オペレーテ
ィングシステムの内部設計に従って、この後は次のどれかにつながる。
1) 再試行する。これは一時的である。
2) これより先に進めない。制御された方法でPROGを終わらせて、オペ
レーティングシステムをアンロードする。
3) 何もできない。オペレーティングシステムは、バッファ領域がなければ
動作することができず、システム全体が崩壊する。
・ PROGがバッファ領域を自由に解放しない場合は消失するか。
・ mallocにより得た以前のバッファ領域以外をポインタが指したままP
ROGを解放すると何が起こるか。
1) 何も起こらない。オペレーティングシステムは、間違いを発見し、PR
OGが終わると、PROGが使用したが解放するのを忘れたすべてのバッファ領
域は解放される。
2) オペレーティングシステムがPROGを信頼する。この場合は、全く予
測できない結果になる。
・ PROGが大きさ0のバッファ領域を要求すると何が起こるか。
このバッファ領域は解放する必要はないか。
実際には、プログラムPROGの設計者は、オペレーティングシステムの動作
を推測し、PROGが完成すると、設計者は、PROGをオペレーティングシス
テムと共に実行させて、推測に誤りがあれば、訂正することができる。これがい
わゆるデバッグである。しかし、この過程の問題は、PROGが正しく動作する
のを確認したのはオペレーティングシステムのその特定のバージョンと共に用い
た場合だけであるということである。PROGを別のオペレーティングシステム
、または古いバージョンを新しくしたものと共に用いた場合は、もう一度確認し
て場合によっては、PROGを訂正する必要がある。
すべての機能を試験することができるかどうかも確かではない。したがって一
般に、まさに望ましい時点で「バッファ領域不足」とオペレーティングシステム
に答えさせることは非常に困難である。したがって、バッファ領域が不足してい
るかどうかについて、このプログラムを試験したければ、この場合のオペレーテ
ィングシステムの測度をシミュレートする試験プログラムを作らなければならな
い。このような試験プログラムの問題は、新しく設計しなければならないことで
ある。もし誤りが起こった場合は、間違っているのは試験プログラムであると考
えて試験プログラムを訂正し勝ちである。このため、すべてが機能しているよう
に見えるときは、試験プログラムが実際のオペレーティングシステムと同じよう
に動作しているかどうか分からない。
これまでは、PROGの設計者の問題だけを取り上げた。しかし、オペレーテ
ィングシステムの設計者も、新たに更新したオペレーティングシステムがユーザ
プログラムに問題を起こさないことを確認しなければならない。PROGが新し
いオペレーティングシステムと共に動作することを確認するだけでは恐らく十分
ではない。PROGは、変更された機能を使わないかも知れない。
ここで、この発明を用いたときに、当のメモリ割り当てインターフェースがど
のような形をしているかを説明する。
第1図を参照して、この発明の1で示すインターフェースは、インターフェー
スの使用をシミュレートするモデルプログラムAと、インターフェース内の機能
を提供することをシミュレートするモデルプログラムBと共に設計する。モデル
プログラムAおよびBの機能の詳細について、この流れ図を用いて示す。
この例では、モデルプログラムBは宣言された全体的に利用可能な領域からま
ず始まる。この領域は、初めからブロックされないと宣言される。さらに、誰か
が領域を要求するのを待っている。モデルプログラムAが始まると、インターフ
ェース1を通して(矢印2)バッファ領域にアクセスを要求する(矢印4)。バ
ッファ領域は、モデルプログラムBが持っているものとしてシミュレートする。
要求4は、呼び出しmalloc(大きさ)で送られる。「大きさ」という概念
は、要求されたバッファ領域の大きさを示すパラメータでAを始めるときに値が
与えられる。
ステップ6で、前回はロックのために失敗したが、改めてバッファ領域を占有
しようとするのではないことをチェックする。失敗の場合であれば、流れはステ
ップ8で終わる。そうでない場合は、流れはステップ10に進み、ユーザプログ
ラムが大きさ0のバッファ領域を要求した場合はロックする。このような要求が
ある場合は、流れはステップ12で終わる。そうでない場合は、流れはステップ
14に進み、解放された領域があるかどうか決める。ない場合は、ステップ16
でロックを示し、空白ポインタをプログラムAに返す(矢印18)。領域が使用
可能な場合は、ステップ20で占有し、malloc=ポインタをプログラムA
に返す(矢印22)。領域を使用した後、解放(ポインタ)をプログラムBに返
す(矢印24)。次にモデルプログラムBの中でステップ26に進み、正しい領
域が返されたかどうかチェックする。正しい領域が返されない場合は、ステップ
28で誤りであることを示す。そうでない場合は、ステップ30で領域を解放す
る。全体はプログラムAの中で終わる(矢印32)。プログラムを用いるバッフ
ァが実行を終わると、モデルプログラムBは停止する。次に、送られたバッファ
領域をすべて返したことをチェックする。返してなければ、誤りであることをプ
リントアウトする。モデルプログラムAもBも、実行中に起こったことを記録す
る。
もちろん、インターフェースはバッファ領域の書き込みおよび読み出しの動作
を含んでよい。ここでは、この発明の説明に関係がないので省略しただけである
。
第1図に示す基準モデルから、インターフェースについて次の結論が得られる
。
ユーザプログラムAの観点から、
・ malloc呼び出しですでに停止になっているユーザは再試行できない
(ステップ6を参照)。
・ 大きさ=0のバッファを要求することはできない(ステップ10を参照)
。
・ 領域は解放して返さなければならない。mallocにより得られた、ま
だ返されていない領域だけで解放を用いることができる(矢印24を参照)。
バッファを管理するプログラムBの観点から、
・ 要求されるバッファ領域は必ず0より大きい(ステップ10を参照)。
・ 解放されているポインタはチェックする必要がない。
・ ユーザプログラムは得られたバッファ領域を返す。
ユーザプログラムがこれらの規則を破った場合は、モデルプログラムBを試験
したときに発見される。
インターフェース用の基準モデルは、より複雑なインターフェースにも適用で
きる。一例として、プロトコルに適用する方法を示す。以下の説明では、第2図
および第3図を参照して、公衆電話交換システムを処理するときに起こる問題を
取り上げ、この問題を主としてこの発明で解決する方法を示す。
電話交換の目的は、着信呼と別の発信呼とを相互接続することであると言って
よい。
呼を設定するには、制御情報(たとえば、どの宛先に届けたいか、すなわち電
話番号)を伝送するためのプロトコルが必要である。歴史的および技術的理由か
ら、第2図にP1、P2、...、Pnで示すように、非常に多くの異なるプロ
トコルがある。よく知られているプロトコルの1つ(たとえば第2図のP1)は
普通の押しボタン電話に用いられるもので、通話線のトーン信号が宛先の番号を
知らせる。別のよく知られている例(たとえば第2図のP2)はダイヤル信号で
、数字は割り込みパルス列で表す。たとえば、数字4は、4個の連続した割り込
みパルスで表す。
あるダイヤル装置から(第2図の矢印46で示す着信)トーンダイヤル装置を
呼ぶ(矢印48で示す発信)とする。これは、たとえばダイヤルインの会社の交
換機への呼び出しであって、内線番号は公衆交換局から会社の交換機へトーンコ
ードの形で伝送される。
このためには、連続した割り込みパルスを数えるプログラム(第2図のブロッ
ク50)と、数字をトーンコードに変換して回線に送り出す別のプログラム(第
2図のブロック52)が必要である。プログラム50と52が互いに通信するに
は、通信するための共通の「言語」、すなわちプロトコルを持たなければならな
い。この言語では、割り込みパルスやトーンコードという概念は用いない。した
がって、すべての電話交換局は、第2図の線54で示す内部プロトコルを持ち、
すべての回線プロトコルは、この内部プロトコルへまたは内部プロトコルから変
換される。
この電話交換局で別のプロトコルを導入する必要が生じた場合は、この新しい
プロトコルは、既存のすべてのプロトコルと協力できるようにしなければならな
い。さらに、すべての既存のプロトコルは、この新しいプロトコルと協力できる
ようにしなければならない。このように、既存のプロトコルの数が多くなるに従
って、新しいプロトコルを設計するときの複雑さが増す。
第2図の場合、内部プロトコル54は、この発明に関する種類のインターフェ
ースと見なしてよい。この発明に従って基準モデルを導入すると、第3図に示す
ような構成になる。この基準モデルは、一方は発呼者(通信の分野の慣用語で言
うと「A側」)を表すモデルプログラムAと、他方は被呼者(「B側」)を表す
モデルプログラムBを含む。しかし、この例が前の例とは異なる重要な点が1つ
ある。すなわち、一方のモデルは、他方のモデルを内部プロトコルを通して見る
ことであり、したがって、相手側に対するインターフェースは、内部プロトコル
に対するインターフェースであることである。AモデルとBモデルは、内部プロ
トコル54を通して、すべての可能な許容できる動作を行い、同時にインターフ
ェースを通して許容できない動作を行わないようにチェックできるよう設計する
。このチェックをインターフェースで行うために、内部プロトコルを内部プロト
コルモデルで置き換える。内部プロトコルモデルは、許容できない動作があれば
、これを発見するためのプログラムウエアルーチンをさらに備える。
第3図に示す構成では、AとBの間で「電話を掛ける」、すなわち呼を設定す
ることはできるが会話はできない。会話は別のインターフェースで制御される。
しかし、どのプロトコルP1−PnでもAから「電話を掛ける」ことができ、ま
たBに「呼び出し」を受けることができる。
モデルプログラムAとBは、純粋なプログラムウエアユニットなので、自分の
ハードウエアは必要ない。これらは常に内部プロトコル54と共に使用可能であ
る。たとえば、着信プロトコルPxが作動可能になった場合は、Bモデルに対し
て、これをすぐ走らせることができる。
Aモデルは、着信プロトコルができることはすべてできる。Bモデルは、発信
プロトコルができることはすべてできるし、また内部プロトコル54を調停する
ことができる。すなわち、
・ 発信プロトコル、たとえばP2は、Aモデルが与えるすべてを処理できるよ
う備えなければならない。つまり、さらに送るか、または拒む、すなわち「でき
ない」と知らせることができる。この発信プロトコルP2は、Aモデルに関わる
すべてを処理することができるので、新しい、試験されていない、または不測の
機能性を持つ他の着信プロトコルに驚かされることはない。
・ 着信プロトコル、たとえばP2は、P2が持つ機能を発信プロトコル、たと
えばP1が処理できない場合に備えなければならない。たとえば、この着信プロ
トコルP2が押しボタン電話用の場合、発信プロトコルもP2であれば、再呼び
出しができるが、たとえば発信プロトコルP1へ長距離電話を掛ける場合は、P
1はこの機能を持たないように見える。この場合は、着信側のP2がこれに備え
なければならない。Bモデルは、再呼び出し機能があるかないか分かるようにし
なければならない。
・ 着信プロトコル、たとえばP2は、内部プロトコルが処理しない機能を持つ
場合がある。これはAモデルから見えるので、これらの機能を処理してはならな
い。
第4図は、第2図および第3図の電話交換局の異なる動作を、普通の電話で行
う例として、加入者によるモデルA’とB加入者によるBモデルの間でどのよう
に走らせて管理するかを示す流れ図である。モデルA’とB’は、それそれぞれ
各インターフェース56と58を通して内部プロトコル55に接続する。
この例ではA側かB側の少数の使用事例を、特に発生したときを強調して示す
。
実際の内部プロトコルでは両側の間にはより多くの信号があり、またより多くの
事象がA側とB側それぞれだけでなく内部プロトコルにも起こるが、分かりやす
くするために省略した。特に、内部プロトコルを簡単化した。これはプログラム
ウエアでもそうであって、実際の事例では、たとえば一方の側に相手側との接触
がなくなったことを知らせるような自分自身の事象がある。
ここで、この発明の重要な特徴の1つを強調したい。それは、どの加入者モデ
ルも、内部プロトコル55の反対側にあるのがモデルであるか「実際の」プロト
コルP1−Pnであるかを全く知らないということである。第4図の流れ図につ
いての以下の説明では、簡単化のために内部プロトコル55を通して通信するの
はに、主としてA’モデルとB’モデルであると述べているが、これは1つの過
程の問題ではなく、2つの完全に独立した過程がたまたま組み合わされていると
いう意味である。これらの過程、すなわちA’過程とB’過程は「臨床的に」分
離されている。
B’モデルは、Tb1、Tb2、Tb3の値を持つパラメータと、B’加入者
に割り当てられた状態で開始し、60で示すように呼び出しを待っている。Tb
1は、呼び出しにかかる時間の長さを示す。Tb2は、B’が応答するまでにか
かる時間の長さを示すが、B’が全く応答しないことも示す。Tb3は、B’が
電話を切るまでにかかる時間の長さを示す。B’加入者の状態は、話中か解放か
ロックである。
62で示すように、A’モデルは、Ta1とTa2の値を持つパラメータで開
始する。Ta1は、A’モデルが電話を切る前に相手側からの応答を待つ時間の
長さを示し、Ta2は、A’モデルが電話を切る前に通話状態を維持する時間の
長さを示す。
実現の際に必要であれば、内部プロトコルは、両側の間のメッセージを調停で
きるようにして開始する。この例では、内部プロトコルは自分では一切主導しな
い。他のいっそう複雑な例の場合は、開始してからどのくらい時間が経った後で
内部プロトコルが両側に接続が切れれたことを知らせるかを示して、これにより
両側が制御された方法で接続を切ることができるようにするパラメータを持って
開始する。
待機中のモデルは、相手側からのメッセージが到着すると、待機を止めてこの
メッセージに従う。これに関して、また以下の説明を完全に理解するために重要
なことは、各メッセージは、3つの部分を持つということである。すなわち、送
信側の希望と内部プロトコルの調停内容と受信側の解釈である。
A’モデルは、まず呼を設定する要求を行い(矢印64)、内部プロトコル内
の信号「呼び出しを送信」を経て(矢印66)、B’モデルに呼を送る(矢印6
8)。これによりB’モデルは、待機を止め、70で時間Tb1の測定を開始す
る。この後B’モデルは、上記のように開始時に割り当てられた加入者の状態に
従って継続する。
B’加入者の状態が話中または呼び出し不可(unobtainable)の場合は、B’モ
デルの事象は72に示すように停止し、内部プロトコル内の信号「話中」または
「呼び出し不可」(それぞれ矢印74と76)により、A’モデルはメッセージ
を「話中トーンを送信」(矢印78)と「呼び出し不可トーンを送信」(矢印8
0)と解釈する。もちろんA’モデルは、トーンを一切送信してはならない−−
送信することができない。しかし、実際のプロトコルは、この場合、トーンを送
信する場合がある。82に示すように、A’モデルの事象の流れは停止する。
事象68、74、78および68、76、80は、A側の第1および第2使用
事例を表す。すなわち、B側はA側からの呼に対して「話中」および「呼び出し
不可」をそれぞれ返す。
B’加入者の状態が解放されている場合は、内部プロトコル内で信号「呼び出
し可」をA側に送信し(矢印84)、A’モデルは、これを「ダイヤルトーンを
送信」と解釈する(矢印86)。もちろん、A’モデルは、この場合もトーンを
送信することができない。上述の「話中トーンを送信」と「呼び出し不可トーン
を送信」の場合と同様に、実際のプロトコルで何が行われるか示す記述だけの問
題がある。ダイヤルトーンがある場合はすぐに送信しなければならない。B’モ
デルは、同時に88で時間Tb2の測定を開始し、A’モデルは、90で時間T
a1の測定を開始する。
パラメータTb2で設定された時間が経った後、B’モデルは、A’モデルに
応答を送信し(矢印92)、これを内部プロトコルが調停して「B応答」とし
(矢印94)、A’モデルは、これを「ダイヤルトーンを停止」と解釈する。要
求を実行した後、A’モデルは、時間Ta1の測定を止めて、98で時間Ta2
の測定を開始する。
パラメータTa1で設定した相手側からの応答を待つ時間か、パラメータTa
2で設定した通話状態の時間のどちらか時間測定が行われている方の時間が経過
した後、100でA’モデルは電話を切る。
事象84、86、90および92、94、96、98は、A側の第3および第
4使用事例をそれぞれ表す。すなわち、それぞれA側が呼んだときにB側は、解
放されているが応答しない場合と、B側は応答するが電話を切らない場合である
。これに対応して、B側では第1および第2使用事例がある。すなわち、それぞ
れA側が呼び出しを掛けるがB側が応答する前に切る場合と、B側が応答した後
で切る場合である。
Bが応答のメッセージを送信する(矢印94)とき、B’モデルは102で時
間Tb3の測定を始める。この時間が経過した後、B’モデルは電話を切る(矢
印104)。これはA側の第5使用事例を表す。すなわちA側が呼んだとき、B
は応答してから切る。これに対応して、B側には第3使用事例がある。すなわち
、A側は呼ぶが、B側が切る前には切らない。
第4図に関する上記の説明から、いくつかの意味論的な規則が得られる。たと
えば、
・ A側は、B側が状態を返す前に切ることはできない。
・ A側もB側も、呼び出し不可/話中の後はさらにメッセージを送ることがで
きない。
・ Bの応答は、Bが解放された後だけ送信してよい。
A’モデルでは停止のための切断は、内部プロトコル内の信号「A切断」(矢
印106)、応答メッセージを要求するB側への信号(矢印108)、B側から
の対応する応答「切断」(矢印110)、内部プロトコル内の信号「B実行可能
」(矢印112)、停止113への矢印114、により実行する。B’モデルの
切断は、内部プロトコル内の信号「B切断」(矢印116)、応答メッセージを
要求するA側への信号(矢印118)、A側からの対応する応答メッセージ「切
断」
(矢印120)、内部プロトコル内の信号「A実行可能」(矢印122)、停止
125への矢印124、により実行する。
上記から、どちら側も相手側が応答したことを確かめずに切断してはならない
ことが分かる。図に示してはいないが、ステップ108と110の間とステップ
118と120の間にそれぞれ遅れを入れてもよい。
第4図に示す例から通信の問題の場合に、この発明が一般に意味することをよ
り詳細に分析する。
まず公衆電話局内に完全な回線インターフェースの問題があると仮定する。第
4図を描き直して細部を省略すると、第5図のようになる。この図の特徴は、3
つの要素から成る基準モデルである。すなわち、A’モデルとB’モデルと内部
プロトコルモードIがあり、A’モデルとIモデルの間にはインターフェース5
6があり、IモデルとB’モデルの間にはインターフェース58がある。
Iモデルをよく調べると次のことが分かる。
最も簡単な事例では、A’とB’またはそれが表す応用は、同じローカル局で
同じプロセッサ上で実行する。ローカル電話の通話に問題があることがある。
しかし、知られているように地球の裏側に電話を掛けるのには大きな差はない
。この場合は、同じIモデルが極めて複雑な技術システムである全地球の電話網
の一部を表す。このような国際的な通話が行われるインターフェースの数は電話
網の経験を積んだ設計者にとっても巨大なものである。しかし、内部プロトコル
モデルIは、複雑な長距離電話の場合でも管理可能な抽象的なモデルである。
さらに実際のところ、送話にも受話にも同じ電話を用いることができる。この
観点から分かるように、A’モデルとB’モデルには全く差がなく、2つの全く
同じ型の個体である。説明を続けるために、また第1図と第3図に示すような他
の実施態様とこの発明の関係を示すために、これらのモデルをそれぞれA”1お
よびA”2と呼ぶことにする。同じ理由からIモデルをB”と呼び変えると、第
5図は第6図に示す形になる。図に示すように、第5図の2つのインターフェー
ス線は1つのインターフェースになり、これが実際である。
上記のようにA”1は、A”2と同等と見なすことができるので、これらをま
とめて第7図のようにA”としてよい。その結果は、この発明で定義した内部基
準モデルになることが分かる。ここでA”は、インターフェースの使用をシミュ
レートする第1補助プログラムであり、またB”は、インターフェース内の機能
を提供することをシミュレートする第2補助プログラムであると特徴付けること
ができる。2つのプログラムは、インターフェースを通してすべての可能な許容
できる動作を実行し、同時に相手のプログラムが許容できないことを一切しない
ようにチェックすることができる。第4図の実施態様では、「A’モデル」と「
B’モデル」が第1補助プログラムを形成し、内部プロトコルモデル55が第2
補助プログラムを形成する。実際は、インターフェース56と58は、同じイン
ターフェースである。すなわち、この発明の基準モデルが目的とするものである
。
より広い観点から、上に例示した同等性は、次のように解釈することができる
。
A側はB側に情報を送り、後でそれを戻してもらう。それが1つの同じA個体
の場合は、第1図の実施態様のようにBはメモリ機能である。A個体が2つの場
合は、Bはたとえば第4図に示すように通信機能である。
このモデルから抽象できることは、そしてこれは重要なことであるが、B側が
情報を内部でどのように処理するかである。モデルAから見ると、B側がメッセ
ージを来た通りに受けてそのまま返しても、インターフェースに示されている方
法で変えても、またはB側が、たとえばメッセージを符号化して十分大きなパケ
ットに分割し、回線などにより送信し、次にパケットを受け、パケットを合わせ
てメッセージにして復号し、Aに戻しても差は全くない。
第2補助プログラムがプロトコルを表す場合は、次のように基準モデルの使用
事例が3つある。
1) 通信インターフェースの使用(第8図を参照)
この場合は、ユーザプログラムウエアの新しいバージョンa”1の試験はイン
ターフェース(これはA個体の1つを表してよい)と共に行わなければならない
。a”は「第2補助プログラムB」を通して第2のA個体であるA”2に「電話
を掛ける」ことができる。これは「第1補助プログラム」の能力により、新しい
プログラムウエアが呼ぶことができる。この使用事例は、A”2がa”1を呼ぶ
場合も含む。
2) 新しい通信システムの設計(第9図を参照)
この場合は、B個体(ここではb”と書く)は、新しい通信システムで、2つ
のA個体であるA”1とA”2から成る「第1補助プログラム」により、インタ
ーフェースと共に試験しなければならない。新しい通信システムb”は、A”1
とA”2があらゆる方法で互いに「電話を掛ける」ことができる場合を扱うこと
ができる。
3) ユーザ内の通信(第10図を参照)
この場合は、2つのA個体を新しいユーザプログラムウエアの「呼び出し」部
a”1と「応答」部a”2でそれぞれ置き換えて、「第2補助プログラム」B”
によりインターフェースと共に試験しなければならない。実際は、自分の複写を
「呼び出し」て情報を伝送するという、1つの同じ新しいプログラムウエア機能
の問題がある。
2つの複写a”1とa”2は、必ずしも他のプログラムに理解できなくてもよ
い方法で互いに通信する。この構成で確認しなければならないことは、メッセー
ジがBを通ってその内容が何らかの修正を受けたときも、相手を互いに理解する
ということである。したがって自分自身と通信するプログラムウエアを設計して
保証するには、通信固有のBモデルが必要である。このBモデルは、この通信を
行う最も簡単な方法を表す。
実際に、この発明の方法を用いる実施態様をより詳細に以下に説明する。
出発点は従来の方法で指定された非常に簡単なインターフェースで、その目的
は基準モデルを用いてインターフェースの定義を厳密にしたときに何が起こるか
を詳細に検討することである。
全欧州ディジタル移動電話システムGSM用のシステムでは、あるネットワー
ク内にいる加入者は、このネットワークから離れて別のネットワークのカバレー
ジ領域に入っても、元のネットワークと同じサービスを受けることができる。同
じ国内に、ネットワークが同じ地理的領域をカバーする複数の普通は競合関係に
あるネットワーク運営者があってよい。したがって異なる運営者は異なる協力者
を持ち、自分の本拠地の領域外でもできるだけ大きなカバレージを自分の加入者
グループに提供する。しかし協力ネットワークに属していない加入者は、一方で
は競合上の理由で、他方では協力規約がなければ料金の徴収ができないという理
由で断られる。したがって外部の加入者からサービスを要求された場合は、この
加入者が協力ネットワーク運営者に属しているかどうか知って、サービスを提供
するか断るかを決める必要がある。サービスを要求する加入者は、たとえばPL
MN(公衆陸上移動ネットワークの略)パラメータ(その加入者が属するネット
ワーク運営者を示す)を用いて自分を識別する。ここで、自分のネットワークが
このように示された運営者と協力するかどうかを決定する。
この機能は、例としてここに選択したインターフェースを通して提供される。
プログラムウエアを詳細に示す前に、この発明の基準モデル法は、特定のコン
ピュータ環境に限定されないことを強調したい。したがって、ここに説明するプ
ログラムウエアはプログラム言語やオペレーティングシステムやコンピュータ構
成などに関しては中立である。理解を助けるためにより詳しく言うと、このプロ
グラムウエアは直感的理解が得られる、いわゆる疑似コードで書かれている。
インターフェースの構文的な定義は、疑似コードで書くと次のようになる。
method checkValidMS により、インターフェースは、移
動体加入者(MS)が協力PLMNに属しているかどうかを知る可能性を定義す
る。移動体加入者のPLMNは、付随のパラメータPlmnに示されており、そ
の形式は、GsmPlmnIdである。この質問に対する回答は、GsmPlm
nResultという形式の返却値で与えられる。
その結果は以下の3つのどれかである。GsmPlmnValidMSは、そ
の加入者にサービスを提供してよいことを示す。GsmPlmnUnValid
MSは、(ここには例として示していないが)その加入者を断るべきことを示す
。3番目のGsmPlmnDBNfaultは、残念なことに回答できないこと
を示す。DBNfaultは、データ内に誤りがあることを示す。
GsmPlmnIdは、別のところで定義する。このように定義には、使用で
きるしいずれ使用するが、実際にどのような形をしているかには関心がないもの
がある。認められている定義を用いてもよいが、自分の定義を見つけてもよい。
基準モデルの原理は、次のようにしてこのインターフェースに適用することが
できる。この発明で定義される第1補助プログラムは、次のようなものである。
この発明で定義される第2補助プログラムは、次のようなものである。
さらにPlmnステートメントの書式であるGsmPlmnIdの定義が必要
である。この定義は、別のインターフェースの一部であって、3つの異なる場合
が考えられる。
1) Plmnステートメントの認められている書式を示す、準備された正し
い定義がある。それが扱いやすいものであれば使ってよい(Plmnの正しい書
式は3+2桁である)。
2) インターフェースGsmPlmnIdにも基準モデルがある。この場合
は、インターフェースGsmPlmnIdの他に、その第2補助プログラムを用
いる。
3) インターフェースに固有のものだけがある。すなわち、書式の型の名が
GsmPlmnIdという場合である。この場合は、GsmPlmnIdの自分
の定義を準備しなければならない。これはどんな形でもよい。Plmnは1桁ま
たは文字列で示してよい。1)または2)の型の定義がないときは、この定義を
用いる。
このようにして、完全な基準モデルが得られた。これは次のように用いる。
A) インターフェースの意味論的なモデルもある。第1補助プログラムは、
インターフェースの一般的な使用を示す。実際は、これをテンプレートとしてユ
ーザプログラムに複写してよい。補助プログラムから意味論的な規則がないこと
は、情報が与えられない場合は、加入者にサービスを提供するかどうかを決める
のはインターフェースはなく、使用するプログラムが自分で決めなければならな
い、ということである。
第2補助プログラムは、意味論的な規則を含む。すなわち、GsmPlmnD
BNfaultを受信した場合はユーザとして再試行することはできない。イン
ターフェースを提供するプログラムにとって、この意味は、データベース(また
は困難を生じたものは何でも)が再試行を許す場合は、再試行するのは提供する
プログラムであり、最初にそれが放棄したときはGsmPlmnDBNfaul
tと応答するということである。したがって、使用するプログラムが再試行する
のは常に無意味である。
B) 新しく設計したユーザプログラムは試験しなければならない。これは第
2補助プログラムから機能を提供されるインターフェースを呼び出す。システム
アプリケーションにおいて、このインターフェースを提供するプログラムの代わ
りに、この補助プログラムを用いると、次の利点がある。
・ インターフェースと共に機能し容易に利用できる補助プログラムがある。
実行可能なものであっても、システムアプリケーションは、かなり複雑なので、
恐らく完全ではない。
・ 試験を行うのに完全なデータベースを作る必要はない。見つけられる誤り
の多くは、データベースの構成が間違っているため、またはデータベースを用い
るプログラムに欠陥があるためである。このような場合は、自分のプログラムの
欠陥は見過ごしやすい。
・ 機能するデータベースを何とか作った場合、機能を止める、すなわちGs
mPlmnDBNfaultという応答を出すことは決して些細なことではない
。
・ 補助プログラムは、問題になるPlmnを書き出す。途中でステートメン
トが間違った場合は、試験するPlmnを補助プログラムが書き出すときに見つ
けることができる。1つの動作中に要求が繰り返される場合も(これ自体は禁じ
られているのではなく、不必要である)見つけられる。
C) インターフェースを提供する新しく設計したプログラムは、試験しなけ
ればならない。これはインターフェースおよび第1補助プログラムと共に作る。
この場合、Plmn値が受け入れられるかどうかという、データベースプログラ
ムに対する問題がすぐ起こる。これを純粋なシステムアプリケーションにより行
う場合は、完全な移動電話システムがまず必要である。多数の異なるPlmn値
がある場合でも速く走れるように、第1補助プログラムは制御が容易でなければ
ならない。
この発明は多くの重要な利点を持つ。
この発明により、インターフェースは、完全に、すなわち構文的および意味論
的に定義される。意味構造は形式的に正確に定義される。
インターフェースは、意味構造を言語で記述できる場合もあるしできない場合
もあるが、これを用いる設計者は経験が必要である。したがって実験や間違いに
より得られるのは経験であって、やはり正しくもなく完全でもなく、これをさら
に他の設計者に単に伝えることはできない。
しかし、この発明に従ってインターフェースにモデルプログラムを与えること
ができれば、すべての知識は、インターフェースに関連付けられ、インターフェ
ースのユーザは、必要な知識をすべて得たことが分かる。さらに、すべての他の
設計者がインターフェースについて同じ知識を持っていることがユーザに分かる
。つまり他の関係者が違った意味に解釈する可能性があると考える必要がなく、
したがって常にチェックする必要があるのは、許容できないと自分が考えること
を他の関係者が一切しないということである。これらの試験が、インターフェー
スを用いるときの設計の負担や実行時間にかかるコストである。
インターフェースモデルにより、使用したり提供したりするインターフェース
から見たプログラムウエアユニットの形式の保証を行うことができる。この保証
は、自分に含まれる、またはインターフェースの反対側に含まれる、プログラム
ウエアユニットの異なるバージョン、変形、版、組み合わせのすべてに関係なく
行われる。
この方法により保証されたプログラムウエアユニットは、いつまでも保証され
る。環境が変わったという理由で再保証を行う必要はない。プログラムウエアユ
ニットは、基準モデルプログラムと共に供給され、だれでもこれらを実行するこ
とができる。保証プロトコルは必要ない。必要なときは反復して保証を行うこと
ができる。
この方法を用いるとき、モデルプログラムは、インターフェースと共に提供さ
れる。モデルプログラムにより、顧客はインターフェースを容易に用いることが
できる。
モデルプログラムは、供給されず、別の供給されたプログラムウエアの事前の
保証に用いられる場合もある。この場合は、このプログラムウエアの質がモデル
プログラムにより保証されていることを保証プロトコルで確かめる。
Claims (1)
- 【特許請求の範囲】 1. インターフェースの機能を、前記インターフェースを通して別のプログ ラムウエアと互いに作用するプログラムウエアと共に試験する方法であって、そ の機能性が前記インターフェースを通して提供されるプログラムウエアの実行と 、前記インターフェースを通して提供される機能を使用するプログラムウエアの 実行とを、前記インターフェースと共にシミュレートすることを特徴とし、前記 インターフェースを通してすべての可能な許容できる動作を実行し、同時に前記 インターフェースと共に試験するプログラムウエアは許容されないことを一切し ないようにチェックする、インターフェースの機能を試験する方法。 2. すべての許容できる使用事例を含むものとして前記インターフェースの 使用の前記シミュレーションを行い、すべての使用事例を処理することにより前 記インターフェースを通して機能を提供することのシミュレーションを行い、実 際に前記インターフェースの機能性を提供するプログラムウエアに何が起こるか を示すことを特徴とする、請求項1記載のインターフェースの機能を試験する方 法。 3. 前記インターフェースを含む実行可能なユニットにより前記処理を実行 することを特徴とする、請求項1または2記載のインターフェースの機能を試験 する方法。 4. 前記シミュレーションを実行し、同時に前記インターフェースと共に試 験するプログラムウエアを監視して、何か許容できないことを行った場合は誤り であることをプリントアウトすることを特徴とする、請求項1−3のいずれかに 記載のインターフェースの機能を試験する方法。 5. インターフェースの機能を、前記インターフェースを通してその機能性 を別のプログラムウエアに提供するプログラムウエアと共に試験する方法であっ て、前記インターフェースと共に前記プログラムウエアを試験することにより前 記インターフェースの使用をシミュレートし、同時に前記インターフェースを通 してすべての可能な許容できる動作を実行し、前記インターフェースを通して試 験するプログラムウエアは許容されないことを一切しないようにチェックするこ とを特徴とする、インターフェースの機能を試験する方法。 6. すべての許容できる使用事例を含むものとして前記インターフェースの 使用の前記シミュレーションを行うことを特徴とする、請求項5記載のインター フェースの機能を試験する方法。 7. シミュレートするプログラムと前記インターフェースと試験するプログ ラムを含む実行可能なユニットによりシミュレーションを行い、同時に、試験す るプログラム内の事象の流れを前記インターフェースを通して開始しまた制御す ることを特徴とする、請求項5または6記載のインターフェースの機能を試験す る方法。 8. 前記インターフェースと共に試験するプログラムウエアを監視し、何か 許容できないことを行った場合は誤りであることをプリントアウトすることを特 徴とする、請求項5−7のいずれかに記載のインターフェースの機能を試験する 方法。 9. インターフェースの機能を、前記インターフェースを通して第2プログ ラムウエアから提供される機能を用いる第1プログラムウエアと共に試験する方 法であって、前記インターフェースと共に前記第1プログラムウエアを試験する ことにより前記インターフェース内の機能を提供することをシミュレートし、同 時に前記インターフェースを通して受けたすべての可能な許容できる動作を処理 し、すべての可能な応答を返し、同時に試験中のプログラムは許容できない方法 で前記インターフェースを使用しないよう監視することを特徴とする、インター フェースの機能を試験する方法。 10. すべての使用事例を処理することにより前記試験を行い、実際に前記 インターフェースの機能性を提供するプログラムウエアに何が起こるかを示すこ とを特徴とする、請求項9記載のインターフェースの機能を試験する方法。 11. 前記インターフェースの完全な情報と定義に基づいて試験を行うこと を特徴とする、請求項9または10記載のインターフェースの機能を試験する方 法。 12. 試験中のプログラムを含む実行可能なユニットによるシミュレーショ ンを行い、同時にインターフェースを通して前記プログラムを離れる事象の流れ をとらえて前記プログラムに返すことを特徴とする、請求項9−11のいずれか に記載のインターフェースの機能を試験する方法。 13. 試験を実行し、同時に前記インターフェースと共に試験するプログラ ムを監視して、何か許容できないことを行った場合は誤りであることをプリント アウトすることを特徴とする、請求項9−12のいずれかに記載のインターフェ ースの機能を試験する方法。 14. 前記インターフェースと共に、前記インターフェースを通るすべての 可能な許容できる動作を実行して前記インターフェースの使用をシミュレートす ることにより前記インターフェース内の機能の提供のシミュレーションを試験し 、同時に前記インターフェース内の機能の提供のシミュレーションが許容できな い結果を一切生じないようにチェックすることを特徴とする、請求項9−13の いずれかに記載のインターフェースの機能を試験する方法。 15. ユーザプログラムウエアが、対応するインターフェースにより前記各 ユーザプログラムから分離されるプロトコルを通して互いに通信することができ る通信システム内で、 既存のユーザプログラムウエアと通信することができる新しいユーザプログラ ム試験する方法であって、 第1および第2補助プログラムを与え、これらは、ユーザプログラムウエアに よる前記インターフェースと前記プロトコル機能の使用をそれぞれシミュレート するための、また両補助プログラムが前記インターフェースを通してすべての可 能な許容できる動作を実行し、同時に前記インターフェースの反対側のプログラ ムが許容できないことを一切しないようチェックするためのコードを含み、 前記第2補助プログラムを通して前記新しいプログラムウエアを前記第1補助 プログラムと通信接続させ、前記両補助プログラムに与えられる動作を実行する ことを特徴とする、通信システムを試験する方法。 16. ユーザプログラムウエアが、対応するインターフェースにより前記各 ユーザプログラムから分離されるプロトコルを通して互いに通信することができ る通信システム内で、 新しいプロトコルプログラムウエア試験する方法であって、 補助プログラムを提供し、これは、前記インターフェースと共に新しいプログ ラムウエアを試験することができるユーザプログラムウエアによるインターフェ ースの使用をシミュレートするためのまた前記補助プログラムが前記インターフ ェースを通してすべての可能な許容できる動作を実行し、かつ前記インターフェ ースにより試験するプロトコルプログラムは許容できないことを一切しないよう チェックするためのコードを含み、 前記補助プログラムの2つの複写を作り、前記新しいプログラムウエアを通し てこれらを互いに通信接続させ、 前記両複写に与えられる動作を実行する、 ことを特徴とする、通信システムを試験する方法。 17. ユーザプログラムウエアが、対応するインターフェースにより前記各 ユーザプログラムから分離されるプロトコルを通して互いに通信することができ る通信システム内で、 新しいユーザプログラムを試験する方法であって、 補助プログラムを提供し、これは、前記インターフェースを通して前記プロト コルの機能を提供することをシミュレートし、同時に前記インターフェースと共 に新しいユーザプログラムを試験するための、また前記インターフェースを通し てすべての可能な許容できる動作とを実行し、かつ前記インターフェースの反対 側のプログラムは許容できないことを一切しないようチェックするためのコード を含み、 前記新しいユーザプログラムの2つの複写を、前記補助プログラムウエアを通 して互いに通信接続させ、 前記補助プログラムに与えられる動作を実行する、 ことを特徴とする通信システムを試験する方法。 18. プログラムウエアが、前記各プログラムウエアに対するインターフェ ースにより、これらのプログラムウエアから分離されるプロトコルを通して互い に通信することができる、通信システムの基準モデルを提供する方法であって、 第1および第2補助プログラムを作り、このため、 前記第1補助プログラムが、前記プロトコルを通して互いに通信しかつ通信に おいて呼び出しも応答も行うことができるプログラムウエアを表し、 前記第2補助プログラムが前記プロトコルを表し、 前記第1補助プログラムが通信において呼び出し事例と応答事例の両方の動作 を行い、 両事例が前記インターフェースを通してすべての可能な許容できる動作を実行 し、同時に前記インターフェースの反対側のプログラムは許容できないことを一 切しないようにチェックする、 ためのコードを導入することを特徴とする、通信システムの基準モデルを提供す る方法。 19. 前記インターフェースと共に2つのプログラムを作り、維持し、供給 することを特徴とする、請求項18記載の通信システムの基準モデルを提供する 方法。 20. 前記第1補助プログラムが前記インターフェースの完全なユーザとし て動作し、呼び出し事例としての役目と応答事例としての役目においてすべての 許容できる使用事例を含み、 前記第2補助プログラムがすべての使用事例を処理し、使用事例の処理中に起 こり得る、また前記インターフェース内で定義される、すべての考えられる結果 と誤りを作り、また実際に前記インターフェースの機能性を提供する或る設計の プログラム内で何が起こり得るかを示す、 ためのコードを導入することを特徴とする、請求項18または19に記載の通信 システムの基準モデルを提供する方法。 21. 前記第1および第2補助プログラム内にコードを導入して、 前記2つの第1補助プログラム事例の間の通信を、前記第2補助プログラムを 通して実行することができ、 前記応答事例だけがアドレスされ、 前記第2補助プログラムは、実際にプロトコルに影響を与える可能性のあるす べての誤り事例を作ることができる、 ようにすることを特徴とする、請求項18−20のいずれかに記載の通信システ ムの基準モデルを提供する方法。 22. 前記第1および第2補助プログラムを前記インターフェースと同様に 見えるようにし、前記インターフェースの完全な情報と定義を含むコードを導入 することを特徴とする、請求項18−21のどれかに記載の通信システムの基準 モデルを提供する方法。 23. 前記インターフェースと共に前記第1および第2補助プログラムを作 って実行可能なユニットを形成し、また前記第1補助プログラムが2つの補助プ ログラム事例を作り、かつ、前記インターフェースを通して前記第2補助プログ ラムにより前記事例の間の通信を可能にするためのコードを導入することを特徴 とする、請求項18−22のいずれかに記載の通信システムの基準モデルを提供 する方法。 24. 前記第1および第2補助プログラムは、前記インターフェースの反対 側のプログラムを監視して、このプログラムが何か許容されないことをした場合 は誤りであることをプリントアウトし、 前記第1補助プログラムは、通信する相手のユーザプログラムが何か許容され ないことをしないようチェックする、 ためのコードを導入することを特徴とする、請求項23記載の通信システムの基 準モデルを提供する方法。 25. インターフェースの基準モデルを提供する方法であって、 第1および第2補助プログラムを作り、 前記第1補助プログラムが前記インターフェースの使用をシミュレートし、 前記第2補助プログラムが前記インターフェース内の機能を提供することをシ ミュレートし、 両プログラムが前記インターフェースを通してすべての可能な許容できる動作 を実行し、また前記インターフェースの反対側のプログラムは許容できないこと を一切しないようにチェックする、 ためのコードを導入することを特徴とする、インターフェースの基準モデルを提 供する方法。 26. 前記インターフェースと共に前記両プログラムを作り、維持し、供給 することを特徴とする、請求項25記載のインターフェースの基準モデルを提供 する方法。 27. 前記第1補助プログラムを前記インターフェースの完全なユーザにし て、すべての許容できる使用事例を含め、 前記第2補助プログラムがすべての使用事例を処理し、使用事例の処理中に起 こり得る、また前記インターフェース内で定義される、すべての考えられる結果 と誤りを作り、また実際に前記インターフェースの機能性を提供する或る設計の プログラム内で何が起こり得るかを示す、 ためのコードを作ることを特徴とする、請求項25または26記載のインターフ ェースの基準モデルを提供する方法。 28. 前記第1および第2補助プログラム内にコードを作って前記インター フェースと同様に見えるようにし、また前記インターフェースの完全な情報と定 義を含めることを特徴とする、請求項25−27のいずれかに記載のインターフ ェースの基準モデルを提供する方法。 29. 前記第1および第2補助プログラムとインターフェースを作って全部 で実行可能なユニットを形成することを特徴とする、請求項25−28のいずれ かに記載のインターフェースの基準モデルを提供する方法。 30. 前記第1および第2補助プログラム内にコードを導入して前記インタ ーフェースの反対側のプログラムを監視できるようにし、このプログラムが何か 許容できないことをした場合は誤りであることをプリントアウトすることを特徴 とする、請求項25−29のいずれかに記載のインターフェースの基準モデルを 提供する方法。 31. インターフェースの機能を試験する装置であって、 前記インターフェースの使用をシミュレートする第1機能性と、前記インター フェース内の機能を提供することをシミュレートする第2機能性を備え、前記イ ンターフェースを通してすべての可能な許容できる動作を実行し、同時に前記イ ンターフェースの反対側のプログラムは許容できないことを一切しないようにチ ェックすることを特徴とする、インターフェースの機能を試験する装置。 32. 前記インターフェースを提供しまたは使用する新しく設計または修正 したプログラムを、第1および第2補助機能性と共に前記インターフェースと前 記プログラムのコードをそれぞれ実行することにより保証する手段と、前記第1 または第2補助機能性内のすべての使用事例または処理を実行し、同時に保証に 反する許容できない性能を探す手段を特徴とする、請求項31記載のインターフ ェースの機能を試験する装置。 33. 前記インターフェースにより影響され、かつ、保証されたプログラム に含まれるすべてのプログラムシーケンスを試験するコードを実行し、同時に許 容できない隠れた明記されない機能性を探す前記手段を特徴とする、請求項31 または32記載のインターフェースの機能を試験する装置。 34. 前記インターフェースの完全なユーザをシミュレートし、すべての許 容できる使用事例を含む前記第1補助機能性と、すべての使用事例の処理をシミ ュレートしまたプログラム内で何が起こり得るかを示し、かつ実際に前記インタ ーフェースの機能性を提供する前記第2補助機能性とを特徴とする、請求項31 −33記載のインターフェースの機能を試験する装置。 35. 前記第1および第2補助機能性は、前記インターフェースと同様に目 に見え、また前記インターフェースの完全な情報を含むことを特徴とする、請求 項31−34記載のインターフェースの機能を試験する装置。 36. 前記第1および第2補助プログラムは、前記インターフェースと共に 実行可能なユニットを形成することを特徴とする、請求項31−35記載のイン ターフェースの機能を試験する装置。 37. 前記第1および第2補助機能性は、前記インターフェースの反対側の プログラムを監視し、このプログラムが何か許容できないことをした場合は誤り であることをプリントアウトすることを特徴とする、請求項31−36記載のイ ンターフェースの機能を試験する装置。 38. プログラムウエアが、前記各プログラムウエアに対するインターフェ ースを通して、これらのプログラムウエアから分離されるプロトコルにより互い に通信することができる、通信システム内のインターフェースを試験する装置で あって、前記プロトコルを通して互いに通信するプログラムウエアを表す第1補 助機能性と前記プロトコルを表す第2補助機能性を特徴とし、前記第1補助機能 性は通信において呼び出し事例および応答事例として動作することができる手段 を備え、前記両事例は前記インターフェースを通してすべての可能な許容できる 動作を実行し、同時に前記インターフェースの反対側のプログラムは許容できな いことを一切しないようにチェックできる、通信システム内のインターフェース を試験する装置。 39. 前記第1補助機能性は、呼び出し事例の役目と応答事例の役目のすべ ての許容できる使用事例を含むインターフェースの完全なユーザとして動作する ことができる手段を備え、前記第2補助機能性は、すべての使用事例を処理し、 使用事例の処理中に起こり得るまた前記インターフェース内で定義されるすべて の考えられる結果および誤りを作り、また実際に前記インターフェースの機能性 を提供する或る設計のプログラム内で何が起こり得るかを示すための手段を備え る、請求項38記載の通信システム内のインターフェースを試験する装置。 40. 前記2つの第1補助機能性の事例の間の通信を前記第2補助機能性に より実行し、 前記応答事例だけにアドレスし、 前記第2補助機能性が実際にプロトコルに影響を与える可能性があるすべての あり得る誤り事例を作る、 ための手段を特徴とする、請求項38または39記載の通信システム内のインタ ーフェースを試験する装置。 41. 前記第1および第2補助機能性は、前記インターフェースと同様に目 に見え、また前記インターフェースの完全な情報と定義を含むことを特徴とする 、請求項38−40のいずれかに記載の通信システム内のインターフェースを試 験する装置。 42. 前記インターフェースと共に実行可能なユニットを形成する前記第1 および第2補助プログラムと、前記第1補助プログラムにより前記両補助プログ ラム事例を作り、かつ前記インターフェースを通して前記第2補助プログラムに より互いに通信するための手段とを特徴とする、請求項38−41のいずれかに 記載の通信システム内のインターフェースを試験する方法。 43. 前記第1および第2補助プログラムは、前記インターフェースの反対 側のプログラムを監視して、このプログラムが何か許容できないことをした場合 は誤りであることをプリントアウトし、前記第1補助プログラムは、通信する相 手のユーザプログラムが何か許容できないことをしないようにチェックする手段 を備えることを特徴とする、請求項42記載の通信システム内のインターフェー スを試験する方法。 44. ユーザプログラムウエアが、対応するインターフェースにより前記各 ユーザプログラムウエアから分離されるプロトコルを通して互いに通信すること ができる通信システム内で、 既存のユーザプログラムウエアと通信することができる新しいユーザプログラ ムウエアを試験する装置であって、 ユーザプログラムウエアによる前記インターフェースとプロトコル機能の使用 をそれぞれシミュレートする第1および第2補助プログラムを定義し、また前記 両補助プログラムが前記インターフェースを通してすべての可能な許容できる動 作を実行し、同時に前記インターフェースの反対側のプログラムは許容できない ことを一切しないようにチェックするためのコードと、 前記第2補助プログラムを通して前記新しいプログラムウエアを前記第1補助 プログラムと通信接続させる手段と、 両補助プログラムに与えられる動作を実行する手段と、 を特徴とする、通信システム内で試験する方法。 45. ユーザプログラムウエアが、対応するインターフェースにより前記各 ユーザプログラムから分離されるプロトコルを通して互いに通信することができ る通信システム内で、 新しいプロトコルプログラムウエアを試験する装置であって、 前記インターフェースと共に新しいユーザプログラムウエアを試験することが できるユーザプログラムウエアによるインターフェースの使用をシミュレートす る補助プログラムを定義し、また前記補助プログラムが、前記インターフェース を通してすべての可能な許容できる動作を実行し、かつ前記インターフェースに より試験するプロトコルプログラムウエアは許容できないことを一切しないよう にチェックするためのコードと、 前記新しいプログラムウエアを通して前記補助プログラムの2つの複写を互い に通信接続させる手段と、 前記両複写に与えられる動作を実行する手段、 を特徴とする、通信システム内で試験する装置。 46. ユーザプログラムウエアが、対応するインターフェースにより前記各 ユーザプログラムから分離されるプロトコルを通して互いに通信することができ る通信システム内で、 新しいユーザプログラムウエアを試験する装置であって、 前記インターフェースを通して前記プロトコルの機能を提供することをシミュ レートし、同時に前記インターフェースと共に新しいユーザプログラムウエアを 試験する補助プログラムを定義し、またインターフェースを通してすべての可能 な許容できる動作を実行し、かつ、前記インターフェースの反対側のプログラム は許容できないことを一切しないようにチェックするためのコードと、 前記補助プログラムを通して前記新しいユーザプログラムウエアの2つの複写 を互いに通信接続させる手段と、 前記補助プログラムに与えられる動作を実行する手段と、 を特徴とする、通信システム内で試験する装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE9402921A SE504860C2 (sv) | 1994-09-02 | 1994-09-02 | Referensmodell för gränssnitt |
SE9402921-2 | 1994-09-02 | ||
PCT/SE1995/000986 WO1996007968A1 (en) | 1994-09-02 | 1995-09-01 | A method and a system for testing an interface |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH10505178A true JPH10505178A (ja) | 1998-05-19 |
Family
ID=20395099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8509422A Pending JPH10505178A (ja) | 1994-09-02 | 1995-09-01 | インターフェースを試験する方法と装置 |
Country Status (11)
Country | Link |
---|---|
EP (1) | EP0777878B1 (ja) |
JP (1) | JPH10505178A (ja) |
KR (1) | KR970705790A (ja) |
CN (1) | CN1265291C (ja) |
AU (1) | AU691032B2 (ja) |
CA (1) | CA2197979A1 (ja) |
DE (1) | DE69527718T2 (ja) |
FI (1) | FI970852A0 (ja) |
NO (1) | NO970929L (ja) |
SE (1) | SE504860C2 (ja) |
WO (1) | WO1996007968A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100392613C (zh) * | 1999-05-14 | 2008-06-04 | 英业达股份有限公司 | 通信接口卡槽的测试装置及方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4617663A (en) * | 1983-04-13 | 1986-10-14 | At&T Information Systems Inc. | Interface testing of software systems |
SE467229B (sv) * | 1983-08-19 | 1992-06-15 | Kurt Katzeff | Anordning foer bildande av en information och/eller instruktion avsedd att inmatas i en datamaskins programminne |
US4595981A (en) * | 1984-03-05 | 1986-06-17 | At&T Bell Laboratories | Method of testing interfaces between computer program modules |
JPS61265644A (ja) * | 1985-05-20 | 1986-11-25 | Fujitsu Ltd | インタフエ−ス・チエツク方式 |
JPH02205930A (ja) * | 1989-02-03 | 1990-08-15 | Fujitsu Ltd | インタフェースチェック処理方法 |
JPH0355633A (ja) * | 1989-07-25 | 1991-03-11 | Nec Corp | モジュール間インタフェイス検査装置 |
MX9200935A (es) * | 1991-03-07 | 1993-03-01 | Digital Equipment Corp | Sistema y metodo para detectar llamadas de instruccion de dominio cruzado en un sistema de computadora |
US5339422A (en) * | 1991-03-07 | 1994-08-16 | Digital Equipment Corporation | System and method for jacketing cross-domain calls in a multi-code execution and debugging system within a multi-architecture environment |
JPH05265772A (ja) * | 1992-02-26 | 1993-10-15 | Nec Corp | プログラム間インタフェース処理方式 |
-
1994
- 1994-09-02 SE SE9402921A patent/SE504860C2/sv not_active IP Right Cessation
-
1995
- 1995-09-01 EP EP95930781A patent/EP0777878B1/en not_active Expired - Lifetime
- 1995-09-01 CA CA002197979A patent/CA2197979A1/en not_active Abandoned
- 1995-09-01 DE DE69527718T patent/DE69527718T2/de not_active Expired - Lifetime
- 1995-09-01 WO PCT/SE1995/000986 patent/WO1996007968A1/en not_active Application Discontinuation
- 1995-09-01 CN CNB951948946A patent/CN1265291C/zh not_active Expired - Fee Related
- 1995-09-01 JP JP8509422A patent/JPH10505178A/ja active Pending
- 1995-09-01 KR KR1019970701388A patent/KR970705790A/ko not_active Application Discontinuation
- 1995-09-01 AU AU34032/95A patent/AU691032B2/en not_active Ceased
-
1997
- 1997-02-28 FI FI970852A patent/FI970852A0/fi unknown
- 1997-02-28 NO NO970929A patent/NO970929L/no not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
SE504860C2 (sv) | 1997-05-12 |
SE9402921L (sv) | 1996-03-03 |
CN1157045A (zh) | 1997-08-13 |
AU691032B2 (en) | 1998-05-07 |
NO970929D0 (no) | 1997-02-28 |
NO970929L (no) | 1997-05-02 |
FI970852A (fi) | 1997-02-28 |
AU3403295A (en) | 1996-03-27 |
KR970705790A (ko) | 1997-10-09 |
DE69527718D1 (de) | 2002-09-12 |
CN1265291C (zh) | 2006-07-19 |
DE69527718T2 (de) | 2002-12-12 |
EP0777878A1 (en) | 1997-06-11 |
WO1996007968A1 (en) | 1996-03-14 |
EP0777878B1 (en) | 2002-08-07 |
SE9402921D0 (sv) | 1994-09-02 |
FI970852A0 (fi) | 1997-02-28 |
CA2197979A1 (en) | 1996-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106776313B (zh) | 一种模拟服务的方法、装置及集中管理平台 | |
US9442822B2 (en) | Providing a visual representation of a sub-set of a visual program | |
KR100252644B1 (ko) | 전기통신 시스템과 개방형 시스템에 있어서의 관리 | |
US20040064527A1 (en) | Agent for communication between a manager and at least one resource, and tool library for creating the agent | |
CN101222385A (zh) | 面向服务的协议仿真系统的设计方法及系统 | |
JPH10505178A (ja) | インターフェースを試験する方法と装置 | |
Lorentsen et al. | Modelling of features and feature interactions in Nokia mobile phones using coloured Petri nets | |
KR20000026295A (ko) | 망 관리 플랫폼 및 방법 | |
US5995741A (en) | Simulation tool for a networking code | |
KR100406031B1 (ko) | Oms를 이용한 교환기 시뮬레이션 방법 및 그 시스템 | |
Lano | Distributed system specification in vdm++ | |
CN110191141B (zh) | 服务调用信息处理方法、装置及计算机系统 | |
Linn et al. | Application of formal description techniques to the specification of distributed test systems | |
JPS6318226B2 (ja) | ||
Bezerra et al. | A Polyadic pi‐Calculus Approach for the Formal Specification of UML‐RT | |
Yuping et al. | Specification, Validation and Implementation of ATM UNI Signaling Protocols in SDL | |
Bochmann | Protocol Engineering | |
CN113467860A (zh) | 一种程序源代码的业务逻辑执行方法及装置 | |
Wade et al. | Architecture for integrated telecommunication management platforms | |
CN116647619A (zh) | 业务处理方法和系统 | |
CN117033177A (zh) | 模拟测试方法、模拟测试装置以及计算机存储介质 | |
Rao et al. | Network element testing using ttcn-3: Benefits and comparison | |
Peng | Modeling of intelligent networks using SDL and an approach for feature interaction detection | |
Lake et al. | System 75: GAMUT: A message utility system for automatic testing | |
JPH1027096A (ja) | ソフトウェア開発連携システム |