米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 計算機;電気通信 -> 松下電器産業株式会社

発明の名称 プログラム部品実行方式とプログラム部品検査装置
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開平7−114462
公開日 平成7年(1995)5月2日
出願番号 特願平5−259871
出願日 平成5年(1993)10月18日
代理人 【弁理士】
【氏名又は名称】岡田 和秀
発明者 眞田 紀男 / 角谷 和俊
要約 目的
プログラム部品合成を行うシステムの仕様作成時において、部品の追加や入れ替えを行ってもすでに存在している部品に対してコードの修正を行うことなく仕様の検討が行えるようにする。

構成
プログラム部品格納部102で、プログラム部品の動作定義中で命令の送り先の指定に送り先の属する分類名を記述しかつ送られてきた命令を実行する条件として命令の送り元の属する分類名を記述したプログラム部品を格納し、分類情報格納部103で、プログラム部品格納部102に格納されているすべてのプログラム部品をグループ化しそれぞれのグループに名前をつけて管理することにより、プログラム部品の定義記述の中に送信する部品名を直接記述していないので、部品の入れ替えを行った場合でもコードを変更することなしにプログラム部品を動作させることができる。
特許請求の範囲
【請求項1】 プログラム部品どうしが命令のやり取りを行って動作するソフトウエアにおいて、 対象となるソフトウエアで使用する全プログラム部品の名前を格納するソフトウエア仕様格納部と、 プログラム部品の動作定義中で命令の送り先の指定に送り先の属する分類名を記述しかつ送られてきた命令を実行する条件として命令の送り元の属する分類名を記述したプログラム部品を格納するプログラム部品格納部と、 前記プログラム部品格納部に格納されているすべてのプログラム部品を所定の方法で分類しそれぞれの分類に名前をつけて管理する分類情報格納部から構成され、 前記ソフトウエア仕様格納部に格納されたプログラム部品より命令を送信する際に命令に記述された送り先の分類名と前記分類情報格納部における分類情報と対象となるソフトウエアに含まれるプログラム部品名に基づいて命令を送信可能である候補となるプログラム部品を検索する送信対象検索部と、 前記送信対象検索部で検索されたプログラム部品に対して命令を送信する命令送信部と、 前記プログラム部品において前記命令送信部で送信された命令を受信する命令受信部と、 前記命令受信部で命令を受信した際に前記プログラム部品格納部の情報に基づいて受信したプログラム部品において命令の定義が存在しているかどうかを判定する命令存在判定部と、 前記命令存在判定部より受信した命令の定義が存在していた場合に前記定義より命令の送り元の属する分類名を抽出する受信条件抽出部と、 前記受信条件抽出部で抽出された分類名と前記分類情報格納部における分類情報に基づいて命令を送信した送り元のプログラム部品が対象となる分類に含まれているかどうかを検査する受信条件判定部と、 前記受信条件判定部の結果に基づいて命令を受信したプログラム部品において命令が実行可能であると判定した場合にその命令を実行する命令実行部と、 を備えたことを特徴とするプログラム部品実行方式。
【請求項2】 前記分類情報格納部で分類されたプログラム部品で分類に属するすべてのプログラム部品の定義で共通なものを分類の動作定義とし命令の送り先の指定に送り先の属する分類名を記述した分類定義格納部と、 前記命令存在判定部の代わりとして前記送信対象検索部の結果と前記プログラム部品格納部と前記分類定義格納部の情報に基づいて送信対象のプログラム部品または分類において命令の定義が存在しているかどうかを判定する命令存在判定部と、 を追加した請求項1に記載のプログラム部品実行方式。
【請求項3】 請求項2に記載のプログラム部品実行方式において、 前記ソフトウエア仕様格納部における一つのソフトウエアを構成するプログラム部品の名前を検索するプログラム部品名検索部と、 前記プログラム部品名と前記プログラム部品格納部の定義に基づいて前記プログラム部品が送信する可能性のある命令を検出する送信命令検出部と、 前記送信命令検出部で検出された命令から送り先の分類名を取り出す送信命令解析部と、 前記送信命令解析部で抽出された分類名と前記分類情報格納部における分類情報と前記ソフトウエア仕様格納部の中に格納されたプログラム名に基づいて命令を送信可能な候補を検索する送信対象検索部と、 前記送信対象検索部の結果と前記プログラム部品格納部の情報に基づいて送信対象のプログラム部品または分類において前記命令の定義が存在しているかどうかを判定する命令存在判定部と、 前記命令存在判定部に基づいて対象の命令の定義が存在していたと判定した場合に前記定義より命令の送り元の属する分類名を抽出する受信条件抽出部と、 前記受信条件抽出部で抽出された分類名と前記分類情報格納部における分類情報に基づいて命令を送信した送り元のプログラム部品が対象となる分類に含まれているかどうかを検査する受信条件判定部と、 前記受信条件判定部の結果に基づいてすべてのプログラム部品より実行可能な命令を送られることのないプログラム部品を抽出する不動作部品抽出部と、 を備えたことを特徴とするプログラム部品検査装置。
【請求項4】 前記不動作部品抽出部の結果より抽出されたプログラム部品名と前記プログラム部品格納部に格納された部品の定義と前記分類情報格納部に格納された分類情報に基づいて抽出されたプログラム部品に命令を送信する可能性のある全プログラム部品名を検索する送信候補部品検索部 を追加した請求項3に記載のプログラム部品検査装置。
発明の詳細な説明
【0001】
【産業上の利用分野】本発明は、複数のプログラム部品が互いにメッセージを送信することで動作するシステムにおけるプログラム部品実行方式とプログラム部品検査装置に関するものである。
【0002】
【従来の技術】図11に、従来のプログラム部品合成装置の構成図を示す。1101はプログラム仕様書格納部で、これから作成するプログラムでどのような機能を実現するのかを記述したプログラム仕様書を格納している。1102はプログラム部品格納部で、合成に使用されるプログラムの部品がまとめられ格納されている。1103はプログラム仕様書読み込み部で、これから作成するプログラムのプログラム仕様書をプログラム仕様書格納部1101より読み込む。1104はプログラム仕様書記憶部で、プログラム仕様書読み込み部1103により読み出された仕様書を一時的に記憶する。1105はプログラム部品選択部で、プログラム仕様書記憶部1104の仕様書に書かれた部品をプログラム部品格納部1102から取り出す。1106はプログラム部品一時記憶部で、プログラム部品選択部1105により取り出されたプログラム部品を一時的に格納する。1107はプログラム部品合成終了確認部で、プログラム仕様書記憶部1104に記述されたすべてのプログラム部品がプログラム部品一時記憶部1106に読み込まれているかどうかを検査する。すべての部品の読み込みが終了していないときは、上記の動作を繰り返す。もし、すべての部品が読み込まれているならば、終了する。
【0003】図12は、従来のプログラム部品の一例を示す。これは「リレーR1」という名前の部品の記述であり、「開始」という命令のなかで「回転」という命令を「モータM1」という名前の部品に送るとともに、「開始」という命令を「タイマーT1」という名前の部品に送ることを意味している。部品合成されたプログラムにおいては、このような部品が集められてプログラムを構成している。
【0004】さて、従来より、要求される仕様からプログラムを生成、実行させる方式の一つとして、プログラム部品を用いた方法が知られている。これは、複数種類の処理パターンを実現したプログラム部品をあらかじめ用意し、要求仕様にあったプログラム部品を検索しそれぞれ適切な部品を組み合わせて行くことで、目的のプログラムを自動的に作成するといったものである。
【0005】
【発明が解決しようとする課題】しかしながら、従来の方式では、部品間の呼び出し関係を予め定めるために、命令の送り先となる部品に対しては同じ名前で管理を行ったり使用する部品をあらかじめ規定するなどの方法がとられている。このため、新規の部品を追加する場合には、作成者に十分な知識が求められる等の問題を有していた。また、使用するプログラム部品の数が増加するにつれて、管理しなければならない部品間の関係が著しく増加し莫大なものとなるので、作成したソフトウエアの検査が大変難しいものとなっていた。
【0006】このため、従来の方式では、処理パターンが予め決まっており処理を行うデータの構成が決まっている事務処理などの分野には有効であるが、処理パターンが明確に存在しなかったり、部品自身の機能拡張が頻繁に行われる分野への適応には適したものとはなっていなかった。このような分野においては、プログラム部品の入れ替えやプログラム部品定義の更新が頻繁に行われるので部品の管理が一層難しいものとなる。
【0007】本発明は、このような従来の課題を解消するため、複数の部品にアクセスできるような部品の作成を容易に行い実行することのできるプログラム部品実行方式、および、作成した製品仕様内の部品の検査を行うプログラム部品検査装置を提供することを目的としたものである。
【0008】
【課題を解決するための手段】前記の目的を達成するために請求項1の発明に係るプログラム部品実行方式は、 プログラム部品どうしが命令のやり取りを行って動作するソフトウエアにおいて、 対象となるソフトウエアで使用する全プログラム部品の名前を格納するソフトウエア仕様格納部と、 プログラム部品の動作定義中で命令の送り先の指定に送り先の属する分類名を記述しかつ送られてきた命令を実行する条件として命令の送り元の属する分類名を記述したプログラム部品を格納するプログラム部品格納部と、 前記プログラム部品格納部に格納されているすべてのプログラム部品を所定の方法で分類しそれぞれの分類に名前をつけて管理する分類情報格納部から構成され、 前記ソフトウエア仕様格納部に格納されたプログラム部品より命令を送信する際に命令に記述された送り先の分類名と前記分類情報格納部における分類情報と対象となるソフトウエアに含まれるプログラム部品名に基づいて命令を送信可能である候補となるプログラム部品を検索する送信対象検索部と、 前記送信対象検索部で検索されたプログラム部品に対して命令を送信する命令送信部と、 前記プログラム部品において前記命令送信部で送信された命令を受信する命令受信部と、 前記命令受信部で命令を受信した際に前記プログラム部品格納部の情報に基づいて受信したプログラム部品において命令の定義が存在しているかどうかを判定する命令存在判定部と、 前記命令存在判定部より受信した命令の定義が存在していた場合に前記定義より命令の送り元の属する分類名を抽出する受信条件抽出部と、 前記受信条件抽出部で抽出された分類名と前記分類情報格納部における分類情報に基づいて命令を送信した送り元のプログラム部品が対象となる分類に含まれているかどうかを検査する受信条件判定部と、前記受信条件判定部の結果に基づいて命令を受信したプログラム部品において命令が実行可能であると判定した場合にその命令を実行する命令実行部と、 を備えたことを特徴としている。
【0009】また、請求項2の発明に係るプログラム部品実行方式は、 請求項1の構成において、 前記分類情報格納部で分類されたプログラム部品で分類に属するすべてのプログラム部品の定義で共通なものを分類の動作定義とし命令の送り先の指定に送り先の属する分類名を記述した分類定義格納部と、 前記命令存在判定部の代わりとして前記送信対象検索部の結果と前記プログラム部品格納部と前記分類定義格納部の情報に基づいて送信対象のプログラム部品または分類において命令の定義が存在しているかどうかを判定する命令存在判定部と、 を追加した構成を有している。
【0010】さらに、請求項3の発明に係るプログラム部品検査装置は、 請求項2に記載のプログラム部品実行方式において、 前記ソフトウエア仕様格納部における一つのソフトウエアを構成するプログラム部品の名前を検索するプログラム部品名検索部と、 前記プログラム部品名と前記プログラム部品格納部の定義に基づいて前記プログラム部品が送信する可能性のある命令を検出する送信命令検出部と、 前記送信命令検出部で検出された命令から送り先の分類名を取り出す送信命令解析部と、 前記送信命令解析部で抽出された分類名と前記分類情報格納部における分類情報と前記ソフトウエア仕様格納部の中に格納されたプログラム名に基づいて命令を送信可能な候補を検索する送信対象検索部と、 前記送信対象検索部の結果と前記プログラム部品格納部の情報に基づいて送信対象のプログラム部品または分類において前記命令の定義が存在しているかどうかを判定する命令存在判定部と、 前記命令存在判定部に基づいて対象の命令の定義が存在していたと判定した場合に前記定義より命令の送り元の属する分類名を抽出する受信条件抽出部と、 前記受信条件抽出部で抽出された分類名と前記分類情報格納部における分類情報に基づいて命令を送信した送り元のプログラム部品が対象となる分類に含まれているかどうかを検査する受信条件判定部と、 前記受信条件判定部の結果に基づいてすべてのプログラム部品より実行可能な命令を送られることのないプログラム部品を抽出する不動作部品抽出部と、 を備えたことを特徴としている。
【0011】また、請求項4の発明に係るプログラム部品検査装置は、請求項3の構成において、 前記不動作部品抽出部の結果より抽出されたプログラム部品名と前記プログラム部品格納部に格納された部品の定義と前記分類情報格納部に格納された分類情報に基づいて抽出されたプログラム部品に命令を送信する可能性のある全プログラム部品名を検索する送信候補部品検索部 を追加した構成を有している。
【0012】
【作用】請求項1のプログラム部品実行方式によれば、プログラム部品の定義記述の中に送信する部品名を直接記述しないので、部品の入れ替えを行った場合でもコードを変更することなしにプログラム部品を動作させることができる。また、受信した場合の実行条件を記述しているので、送信時の対象のしぼり込み以上に細かい送受信の制御を行うことができる。また、同じ名前の定義を複数存在させ、送り元により自由に処理内容を変更することができるので、コードの視認性がよくなる。
【0013】また、請求項2のプログラム部品実行方式によれば、請求項1の方式に加えて、各分類で共通な定義を分類の定義として管理することで、一つ一つのプログラム部品に記述するコードの量を減らすことが可能となる。また、同じ内容のコードをまとめているために、コードの修正が容易となる。
【0014】さらに、請求項3のプログラム部品検査装置によれば、ソフトウエア仕様内に含まれているプログラム部品の検査をすることにより、動作しない不必要な部品を自動的に抽出することが可能となり、プログラムサイズを小さくする上できわめて有用である。
【0015】また、請求項4のプログラム部品検査装置によれば、請求項3の装置に加えて、抽出された部品をソフトウエアの仕様に加えたい場合に、必要となるプログラム部品の候補を自動的に抽出することが可能となり、多量のプログラム部品が存在する場合の検索効率を高めることが可能となる。
【0016】
【実施例】以下、本発明のプログラム部品実行方式とプログラム部品検査装置の実施例について図面を参照して説明する。
【0017】〔第1の実施例〕図1は、本発明の第1の実施例におけるプログラム部品実行方式についての構成図である。
【0018】101はソフトウエア仕様格納部であり、対象となるソフトウエアで使用する全プログラム部品の名前を格納している(一例として図3を参照)。
【0019】102はプログラム部品格納部であり、プログラム部品の動作定義中で命令の送り先の指定に送り先の属する分類名を記述しかつ送られてきた命令を実行する条件として命令の送り元の属する分類名を記述したプログラム部品を格納している(一例として図4を参照)。
【0020】103は分類情報格納部であり、プログラム部品格納部102に格納されているすべてのプログラム部品をグループ化しそれぞれのグループに名前をつけて管理している(一例として図5を参照)。
【0021】104は命令を送信するプログラム部品を表す。
【0022】105は命令を受信するプログラム部品を表す。
【0023】106は送信対象検索部であり、プログラム部品より命令を送信する際に、命令に記述された送り先の分類名と分類情報格納部103における分類情報と対象となるソフトウエアに含まれるプログラム部品名に基づいて命令を送信可能である候補となるプログラム部品を検索する。
【0024】107は命令送信部であり、送信対象検索部106で検索されたプログラム部品に対して命令を送信する。
【0025】108は命令受信部であり、命令送信部107から送信されてきた命令を受信する。
【0026】109は命令存在判定部であり、命令受信部108で命令を受信した際に、プログラム部品格納部102の情報に基づいて受信したプログラム部品において命令の定義が存在しているかどうかを判定する。
【0027】110は受信条件抽出部であり、命令存在判定部109によって命令の定義が存在していると判定された場合に、前記定義より命令の送り元の属する分類名を抽出する。
【0028】111は受信条件判定部であり、受信条件抽出部110で抽出された分類名と分類情報格納部103における分類情報に基づいて命令を送信した送り元のプログラム部品が対象となる分類に含まれているかどうかを検査する。
【0029】112は命令実行部であり、受信条件判定部111の結果より命令を受信したプログラム部品であって命令が実行可能なプログラム部品である場合に、その命令を実行する。
【0030】以上のように構成された第1の実施例におけるプログラム部品実行方式の動作を図2を用いて部分ごとに説明する。図2は、第1の実施例におけるプログラム部品実行方式の動作を示すフローチャートである。
【0031】(201)「送信対象検索部」 プログラム部品より命令を送信する際に、命令に記述された送り先の分類名と分類情報格納部103における分類情報と対象となるソフトウエアに含まれるプログラム部品名に基づいて命令を送信可能である候補となるプログラム部品を検索する。検索されなければ終了する。
【0032】(202)「命令送信部」 ステップ201で送信対象となるべきプログラム部品が検索されたとき、そのプログラム部品に対して命令を送信する。
【0033】(203)「命令受信部」 ステップ202で送信された命令を受信する。
【0034】(204)「命令存在判定部」 プログラム部品格納部102の情報とステップ203で受信した命令に基づいて受信したプログラム部品において命令の定義が存在しているかどうかを判定し、存在していなければ終了する。
【0035】(205)「受信条件抽出部」 ステップ204で命令の定義が存在していたと判定された場合に、その定義より命令の送り元の属する分類名を抽出する。
【0036】(206)「受信条件判定部」 ステップ205で検出した分類名と分類情報格納部103における分類情報に基づいて命令を送信した送り元のプログラム部品が対象となる分類に含まれているかどうかを検査し、含まれていなければ終了する。
【0037】(207)「命令実行部」 ステップ206で命令が実行可能であると判定された場合に、その命令を実行する。
【0038】(おわり)以上のように動作する本実施例のプログラム部品実行方式の具体的な動作の一部を以下に説明する。
【0039】図3はソフトウエア仕様格納部101に格納されているプログラム部品名の一覧表である。
【0040】図4はプログラム部品格納部102に格納されているプログラム部品「リレーR1」の動作定義を表す記述である。
【0041】401は命令名であり、この名前の命令が送られてきた場合に以降の文を実行する。この例の場合、開始の命令が送られてきた場合に以降の文を実行する。
【0042】402は受信条件記述欄であり、送信元の属する分類名を記述する。この例の場合、開始の命令は送り元の分類名がスイッチSであるプログラム部品から送られて来た場合にのみ以降の文を実行できる。
【0043】403は送信条件記述欄であり、送信先の属する分類名を記述する。この例の場合、回転の命令は分類名モータMに属する部品に対してのみ送信される。
【0044】図5は分類情報格納部103に格納されている分類情報を概念的に表したものである。
【0045】501は分類名スイッチSであり、この中の要素としてはスイッチS1が存在する。
【0046】502は分類名モータMであり、この中の要素としてはモータM1が存在する。同時にこの部品モータM1は、分類名制御機器Cにも属している。
【0047】(1)スイッチS1の記述で“send 開始 to リレーR”が実行されたとき、送信対象検索部106により送信対象分類名「リレーR」の検出が行われ、図3のプログラム部品名の一覧表と図5の分類情報に基づいて送信対象となるプログラム部品「リレーR1」を検索する。
【0048】(2)命令送信部107は、プログラム部品「リレーR1」に対して命令「開始」を送信する。
【0049】(3)プログラム部品「リレーR1」は命令受信部108で命令「開始」を受信する。
【0050】(4)命令存在判定部109は、図4のリレーR1の定義を調べ、命令「開始」の存在を判定する。
【0051】(5)受信条件抽出部110は、命令「開始」の定義を調べ、命令の送り元の分類名である「スイッチS」を検出する。
【0052】(6)受信条件判定部111は、図5の分類情報に基づいて「スイッチS」に送り元部品の名前である「スイッチS1」が含まれているかどうかを検査する。
【0053】(7)命令実行部112は、受信条件判定部111によって送られた命令「開始」が実行可能であると判定されたので、開始の記述を実行する。
【0054】以上のように、本実施例によれば、プログラム部品の定義記述の中に送信する部品名を直接記述しないので、部品の入れ替えを行った場合でもコードを変更することなしにプログラム部品を動作させることができる。また、受信した場合の実行条件を記述しているので、送信時の対象のしぼり込み以上に細かい送受信の制御を行うことができる。また、同じ名前の定義を複数存在させ、送り元により自由に処理内容を変更することができるので、コードの視認性がよくなる。
【0055】〔第2の実施例〕図6は、本発明の第2の実施例におけるプログラム部品実行方式についての構成図である。
【0056】601はソフトウエア仕様格納部であり、対象となるソフトウエアで使用する全プログラム部品の名前を格納している(図3参照)。
【0057】602はプログラム部品格納部であり、プログラム部品の動作定義中で命令の送り先の指定に送り先の属する分類名を記述しかつ送られてきた命令を実行する条件として命令の送り元の属する分類名を記述したプログラム部品を格納している(図4参照)。
【0058】603は分類情報格納部であり、プログラム部品格納部602に格納されているすべてのプログラム部品をグループ化しそれぞれのグループに名前をつけて管理している(図5参照)。
【0059】604は分類定義格納部であり、分類情報格納部603で分類されたプログラム部品で分類に属するすべてのプログラム部品の定義で共通なものを分類の動作定義とし、命令の送り先の指定に送り先の属する分類名を記述した分類定義を格納している(図8参照)。
【0060】605は命令を送信するプログラム部品を表す。
【0061】606は命令を受信するプログラム部品を表す。
【0062】607は送信対象検索部であり、プログラム部品より命令を送信する際に、命令に記述された送り先の分類名と分類情報格納部603における分類情報と対象となるソフトウエアに含まれるプログラム部品名に基づいて命令を送信可能である候補となるプログラム部品を検索する。
【0063】608は命令送信部であり、送信対象検索部607で検索されたプログラム部品に対して命令を送信する。
【0064】609は命令受信部であり、命令送信部608から送信されてきた命令を受信する。
【0065】610は命令存在判定部であり、命令受信部609で命令を受信した際に、プログラム部品格納部602と分類定義格納部604の情報に基づいて送信対象の部品または分類において命令の定義が存在しているかどうかを判定する。
【0066】611は受信条件抽出部であり、命令存在判定部610によって命令の定義が存在していると判定された場合に、前記定義より命令の送り元の属する分類名を抽出する。
【0067】612は受信条件判定部であり、受信条件抽出部611で抽出された分類名と分類情報格納部603における分類情報に基づいて命令を送信した送り元のプログラム部品が対象となる分類に含まれているかどうかを検査する。
【0068】613は命令実行部であり、受信条件判定部612の結果より命令を受信したプログラム部品であって命令が実行可能なプログラム部品である場合に、その命令を実行する。
【0069】以上のように構成された第2の実施例におけるプログラム部品実行方式の動作を図7を用いて部分ごとに説明する。図7は、第2の実施例におけるプログラム部品実行方式の動作を示すフローチャートである。
【0070】(701)「送信対象検索部」 プログラム部品より命令を送信する際に、命令に記述された送り先の分類名と分類情報格納部603における分類情報と対象となるソフトウエアに含まれるプログラム部品名に基づいて命令を送信可能である候補となるプログラム部品を検索する。検索されなければ終了する。
【0071】(702)「命令送信部」 ステップ701で送信対象となるべきプログラム部品が検索されたとき、そのプログラム部品に対して命令を送信する。
【0072】(703)「命令受信部」 ステップ702で送信された命令を受信する。
【0073】(704)「命令存在判定部」 プログラム部品格納部602と分類定義格納部604の情報とステップ703で受信した命令に基づいて受信したプログラム部品または分類において命令の定義が存在しているかどうかを判定し、存在していなければ終了する。
【0074】(705)「受信条件抽出部」 ステップ704で命令の定義が存在していたと判定された場合に、その定義より命令の送り元の属する分類名を抽出する。
【0075】(706)「受信条件判定部」 ステップ705で検出した分類名と分類情報格納部603における分類情報に基づいて命令を送信した送り元のプログラム部品が対象となる分類に含まれているかどうかを検査し、含まれていなければ終了する。
【0076】(707)「命令実行部」 ステップ706で命令が実行可能であると判定された場合に、その命令を実行する。
【0077】(おわり)以上のように動作する本実施例のプログラム部品実行方式の具体的な動作の一部を以下に説明する。
【0078】図8は分類定義格納部604に格納されている分類「制御機器C」の動作定義を表す記述である。
【0079】(1)リレーR1の記述で“send 停止 to 制御機器C”が実行されたとき、送信対象検索部607により送信対象分類名「制御機器C」の検出が行われ、図3のプログラム部品名の一覧表と図5の分類情報に基づいて送信対象となるプログラム部品「モータM1」と「タイマーT1」とを検索する。
【0080】(2)命令送信部608は、プログラム部品「モータM1」に対して命令「停止」を送信する。
【0081】(3)プログラム部品「モータM1」は命令受信部609で命令「停止」を受信する。
【0082】(4)命令存在判定部610は、最初に図8の制御機器Cの定義を調べ、次に図4のリレーR1の定義を調べ、命令「停止」の存在を判定する。
【0083】(5)受信条件抽出部611は、命令「停止」の定義を調べ、命令の送り元の分類名がないのでそのまま命令を実行する。
【0084】(6)同様に「モータM1」は命令受信部609で命令「停止」を受信し、命令を実行する。
【0085】以上のように、本実施例によれば、第1の実施例に加えて、各分類で共通な定義を分類の定義として管理することで、一つ一つのプログラム部品に記述するコードの量を減らすことが可能となる。また、同じ内容のコードをまとめているために、コードの修正が容易となる。
【0086】〔第3の実施例〕図9は、本発明の第3の実施例におけるプログラム部品検査装置についての構成図である。
【0087】901はソフトウエア仕様格納部であり、対象となるソフトウエアで使用する全プログラム部品の名前を格納している(図3参照)。
【0088】902はプログラム部品格納部であり、プログラム部品の動作定義中で命令の送り先の指定に送り先の属する分類名を記述しかつ送られてきた命令を実行する条件として命令の送り元の属する分類名を記述したプログラム部品を格納している(図4参照)。
【0089】903は分類情報格納部であり、プログラム部品格納部902に格納されているすべてのプログラム部品をグループ化しそれぞれのグループに名前をつけて管理している(図5参照)。
【0090】904は分類定義格納部であり、分類情報格納部903で分類されたプログラム部品で分類に属するすべてのプログラム部品の定義で共通なものを分類の動作定義とし、命令の送り先の指定に送り先の属する分類名を記述した分類定義を格納している(図8参照)。
【0091】905はプログラム部品名検索部であり、ソフトウエア仕様格納部901における一つのソフトウエアを構成するプログラム部品の名前を検索する。
【0092】906は送信命令検出部であり、プログラム部品名とプログラム部品格納部902の定義に基づいて、そのプログラム部品が送信する可能性のある命令を検出する。
【0093】907は送信命令解析部であり、送信命令検出部906で検出された命令から送り先の分類名を取り出す。
【0094】908は送信対象検索部であり、送信命令解析部907で抽出された分類名と分類情報格納部903における分類情報と対象となるソフトウエアに含まれるプログラム部品名に基づいて命令を送信可能である候補となるプログラム部品を検索する。
【0095】909は命令存在判定部であり、送信対象検索部908の結果とプログラム部品格納部902の情報に基づいて送信対象のプログラム部品または分類において命令の定義が存在しているかどうかを判定する。
【0096】910は受信条件抽出部であり、命令存在判定部909によって命令の定義が存在していると判定された場合に、前記定義より命令の送り元の属する分類名を抽出する。
【0097】911は受信条件判定部であり、受信条件抽出部910で抽出された分類名と分類情報格納部903における分類情報に基づいて命令を送信した送り元のプログラム部品が対象となる分類に含まれているかどうかを検査する。
【0098】912は不動作部品抽出部であり、受信条件判定部911の結果に基づいてすべてのプログラム部品より実行可能な命令を送られることのないプログラム部品を抽出する。
【0099】以上のように動作する本実施例のプログラム部品検査装置の具体的な動作の一部を以下に説明する。
【0100】(1)プログラム部品名検索部905において、図3のようなプログラム部品名の一覧表より使用されているプログラム部品の名前を抜き出す。ここでは、「リレーR1」を抽出する。
【0101】(2)送信命令検出部906において、「リレーR1」が送信する可能性のある全命令を抽出する。ここでは、“send 回転 to モータM”を抽出する。
【0102】(3)送信命令解析部907において、この命令の送信対象となる分類名「モータM」を抽出する。
【0103】(4)送信対象検索部908において、図3の部品名一覧と分類名「モータM」と図5の分類情報に基づいて送信可能である候補となるプログラム部品「モータM1」を検索する。
【0104】(5)命令存在判定部909において、プログラム部品「モータM1」の定義を検査する。
【0105】(6)受信条件抽出部910と受信条件判定部911で送信元のプログラム部品「リレーR1」が受信条件を満たすかどうかを検査する。
【0106】(7)もし送信元のプログラム部品「リレーR1」が受信条件を満たすならば、プログラム部品「モータM1」は命令を受けて動作する可能性があるので、不動作部品の対象からはずされる。
【0107】(8)すべての部品のすべての命令の定義に対してこの処理を行った結果、全く命令を受けて動作する可能性のないプログラム部品を検出する。
【0108】以上のように、本実施例によれば、ソフトウエア仕様内に含まれているプログラム部品の検査をすることにより、動作しない不必要な部品を自動的に抽出することが可能となり、プログラムサイズを小さくする上できわめて有用である。
【0109】〔第4の実施例〕図10は、本発明の第4の実施例におけるプログラム部品検査装置についての構成図である。
【0110】1001はソフトウエア仕様格納部であり、対象となるソフトウエアで使用する全プログラム部品の名前を格納している(図3参照)。
【0111】1002はプログラム部品格納部であり、プログラム部品の動作定義中で命令の送り先の指定に送り先の属する分類名を記述しかつ送られてきた命令を実行する条件として命令の送り元の属する分類名を記述したプログラム部品を格納している(図4参照)。
【0112】1003は分類情報格納部であり、プログラム部品格納部1002に格納されているすべてのプログラム部品をグループ化しそれぞれのグループに名前をつけて管理している。
【0113】1004は分類定義格納部であり、分類情報格納部1003で分類されたプログラム部品で分類に属するすべてのプログラム部品の定義で共通なものを分類の動作定義とし、命令の送り先の指定に送り先の属する分類名を記述した分類定義を格納している(図8参照)。
【0114】1005はプログラム部品名検索部であり、ソフトウエア仕様格納部1001における一つのソフトウエアを構成するプログラム部品の名前を検索する。
【0115】1006は送信命令検出部であり、プログラム部品名とプログラム部品格納部1002の定義に基づいて、そのプログラム部品が送信する可能性のある命令を検出する。
【0116】1007は送信命令解析部であり、送信命令検出部1006で検出された命令から送り先の分類名を取り出す。
【0117】1008は送信対象検索部であり、送信命令解析部1007で抽出された分類名と分類情報格納部1003における分類情報と対象となるソフトウエアに含まれるプログラム部品名に基づいて命令を送信可能である候補となるプログラム部品を検索する。
【0118】1009は命令存在判定部であり、送信対象検索部1008の結果とプログラム部品格納部1002の情報に基づいて送信対象のプログラム部品または分類において命令の定義が存在しているかどうかを判定する。
【0119】1010は受信条件抽出部であり、命令存在判定部1009によって命令の定義が存在していると判定された場合に、前記定義より命令の送り元の属する分類名を抽出する。
【0120】1011は受信条件判定部であり、受信条件抽出部1010で抽出された分類名と分類情報格納部1003における分類情報に基づいて命令を送信した送り元のプログラム部品が対象となる分類に含まれているかどうかを検査する。
【0121】1012は不動作部品抽出部であり、受信条件判定部1011の結果に基づいてすべてのプログラム部品より実行可能な命令を送られることのないプログラム部品を抽出する。
【0122】1013は送信候補部品検索部であり、不動作部品抽出部1012の結果より抽出されたプログラム部品名とプログラム部品格納部1002に格納された部品の定義と分類情報格納部1003に格納された分類情報に基づいて抽出されたプログラム部品に命令を送信する可能性のある全プログラム部品名を検索する。
【0123】以上のように動作する本実施例のプログラム部品検査装置の具体的な動作の一部を以下に説明する。
【0124】(1)プログラム部品名検索部1005において、図3のようなプログラム部品名の一覧表より使用されているプログラム部品の名前を抜き出す。ここでは、「リレーR1」を抽出する。
【0125】(2)送信命令検出部1006において、「リレーR1」が送信する可能性のある全命令を抽出する。ここでは、“send 回転 to モータM”を抽出する。
【0126】(3)送信命令解析部1007において、この命令の送信対象となる分類名「モータM」を抽出する。
【0127】(4)送信対象検索部1008において、図3の部品名一覧と分類名「モータM」と図5の分類情報に基づいて送信可能である候補となるプログラム部品「モータM1」を検索する。
【0128】(5)命令存在判定部1009において、プログラム部品「モータM1」の定義を検査する。
【0129】(6)受信条件抽出部1010と受信条件判定部1011で送信元のプログラム部品「リレーR1」が受信条件を満たすかどうかを検査する。
【0130】(7)もし送信元のプログラム部品「リレーR1」が受信条件を満たすならば、プログラム部品「モータM1」は命令を受けて動作する可能性があるので、不動作部品の対象からはずされる。
【0131】(8)すべての部品のすべての命令の定義に対してこの処理を行った結果、全く命令を受けて動作する可能性のないプログラム部品を検出する。
【0132】(9)不動作部品抽出部1012で検出されたプログラム部品に対して、命令を送信する可能性のあるすべての部品をプログラム部品格納部1002より検索して表示する。
【0133】以上のように、本実施例によれば、第3の実施例に加えて、抽出された部品をソフトウエアの仕様に加えたい場合に、必要となるプログラム部品の候補を自動的に抽出することが可能となり、多量のプログラム部品が存在する場合の検索効率を高めることが可能となる。
【0134】なお、本実施例では、分類をグループ化を用いて実現したが、これは階層関係を用いて実現しても可能であり、特にオブジェクト指向のクラス階層を用いて実現することが効果的である。
【0135】
【発明の効果】以上のように請求項1の発明に係るプログラム部品実行方式によれば、プログラム部品の定義記述の中に送信する部品名を直接記述しないので、部品の入れ替えを行った場合でもコードを変更することなしにプログラム部品を動作させることができる。また、受信した場合の実行条件を記述しているので、送信時の対象のしぼり込み以上に細かい送受信の制御を行うことができる。また、同じ名前の定義を複数存在させ、送り元により自由に処理内容を変更することができるので、コードの視認性がよくなる。
【0136】また、請求項2のプログラム部品実行方式によれば、請求項1の方式に加えて、各分類で共通な定義を分類の定義として管理することで、一つ一つのプログラム部品に記述するコードの量を減らすことが可能となる。また、同じ内容のコードをまとめているために、コードの修正が容易となる。
【0137】さらに、請求項3のプログラム部品検査装置によれば、ソフトウエア仕様内に含まれているプログラム部品の検査をすることにより、動作しない不必要な部品を自動的に抽出することが可能となり、プログラムサイズを小さくする上できわめて有用である。
【0138】また、請求項4のプログラム部品検査装置によれば、請求項3の装置に加えて、抽出された部品をソフトウエアの仕様に加えたい場合に、必要となるプログラム部品の候補を自動的に抽出することが可能となり、多量のプログラム部品が存在する場合の検索効率を高めることが可能となる。
【0139】以上のように、本発明は、自由に部品の置換が行え、その際にコードの修正を行う必要がないのでプログラム部品の再利用率を高めることができる。また不要なプログラム部品削除や特定のプログラム部品を動作させることのできるプログラム部品の検索を容易に行うことができるので実用的効果は大きい。




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013