JPS6288032A - プログラム開発のための部品選択方式 - Google Patents
プログラム開発のための部品選択方式Info
- Publication number
- JPS6288032A JPS6288032A JP22845985A JP22845985A JPS6288032A JP S6288032 A JPS6288032 A JP S6288032A JP 22845985 A JP22845985 A JP 22845985A JP 22845985 A JP22845985 A JP 22845985A JP S6288032 A JPS6288032 A JP S6288032A
- Authority
- JP
- Japan
- Prior art keywords
- parts
- program
- data
- type
- input
- 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
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔発明の利用分野〕
本発明は、ブロクラム開発のための部品選択方式に関し
、特にプログラム開発に当り、業務処理用語についての
変換辞書を利用して、入出力データ型を決定し、そのデ
ータ型により、部品蓄積フアイルから部品(プログラム
の断片)を選択する部品選択方式に関するものである。
、特にプログラム開発に当り、業務処理用語についての
変換辞書を利用して、入出力データ型を決定し、そのデ
ータ型により、部品蓄積フアイルから部品(プログラム
の断片)を選択する部品選択方式に関するものである。
ソフトウェアを開発する場合、従来使用しているソフト
ウェアを再利用することが有効である。
ウェアを再利用することが有効である。
その場合、データベースに登録しであるソフトウェアの
部品(すなわち、ソフトウェアの断片)を組合せること
により、新しいプログラムを作成することができる。
部品(すなわち、ソフトウェアの断片)を組合せること
により、新しいプログラムを作成することができる。
一方、従来より、自然語を解析することによりプログラ
ムを開発する方法、すなわち対話型自然言語プログラミ
ングシステムが知られている(電子通信学会論文誌 8
4/3 Vol、J67−DNo、3 r対話型自然
言語プログラミングシステムの試作」参照)、このシス
テムでは、対象となる入力文についてデータを収集し、
それらの特徴を得る。入力文はあいまいさがあったり、
矛盾を含んでいるため、必要に応じてユーザと対話して
これらを除く。また、ユーザが作り出そうとしているプ
ロプラムや文の意味等をモデル化するため、意味モデル
、プログラムモデル、コードモデルを導入する。このシ
ステムにより、日本語文からの情報抽出、断片的情報を
まとめあげる情報獲得処理。
ムを開発する方法、すなわち対話型自然言語プログラミ
ングシステムが知られている(電子通信学会論文誌 8
4/3 Vol、J67−DNo、3 r対話型自然
言語プログラミングシステムの試作」参照)、このシス
テムでは、対象となる入力文についてデータを収集し、
それらの特徴を得る。入力文はあいまいさがあったり、
矛盾を含んでいるため、必要に応じてユーザと対話して
これらを除く。また、ユーザが作り出そうとしているプ
ロプラムや文の意味等をモデル化するため、意味モデル
、プログラムモデル、コードモデルを導入する。このシ
ステムにより、日本語文からの情報抽出、断片的情報を
まとめあげる情報獲得処理。
自動プログラミング、マンマシンインタフェースの機能
を実現することができる。
を実現することができる。
一方、プログラムを部品化して記憶しておき、これらの
部品を合成して新しいプログラムを作成するプログラム
自動合成方式が開発されているが、従来より機能により
部品を分類していたので、ある部分がどこに分類される
か統一性がなく、自動合成が効率よく動作しないという
問題がある。プログラムを断片的に結合することにより
、プログラム開発を行うものとしては1例えば、菰田純
−1小林義広1gロ幸雄著「ソフトウェア部品によるプ
ログラム開発支援:パラダイム」 (ソフトウエア工学
34−18)に記載された方法がある。この方法では1
部品の見出し方として、部品化を適用しようとしている
応用分野の典型的な処理パターンに着目して、部品の数
を不要に増加させないようにしており、また部品形態の
決定として、ソフトウェアには、サブルーチン形式のも
の、利用者が修正して使用することを前提としたソース
プログラムライブラリ等が考えられ、利用目的に適した
部品の選択が必要となる。しかし、この方法では、ソフ
トウェア部品が多くなると、整合性のとれた分類が困難
になるという問題がある。すなわち、従来のプロクラム
の部品の分類は、機能を基準として行われているものが
殆んどである。この分類方法では、同じ機能を実現する
部品であっても、作用を及ぼすデータの型が違うとプロ
グラムが全く別のものになることが多く、他の部品を流
可する等という融通性が乏しかった。また、新しく追加
しようとする部品が、どの機能に属するか不明確なこと
が多く、性能を正確に引き出せるように追加することは
困難であった。
部品を合成して新しいプログラムを作成するプログラム
自動合成方式が開発されているが、従来より機能により
部品を分類していたので、ある部分がどこに分類される
か統一性がなく、自動合成が効率よく動作しないという
問題がある。プログラムを断片的に結合することにより
、プログラム開発を行うものとしては1例えば、菰田純
−1小林義広1gロ幸雄著「ソフトウェア部品によるプ
ログラム開発支援:パラダイム」 (ソフトウエア工学
34−18)に記載された方法がある。この方法では1
部品の見出し方として、部品化を適用しようとしている
応用分野の典型的な処理パターンに着目して、部品の数
を不要に増加させないようにしており、また部品形態の
決定として、ソフトウェアには、サブルーチン形式のも
の、利用者が修正して使用することを前提としたソース
プログラムライブラリ等が考えられ、利用目的に適した
部品の選択が必要となる。しかし、この方法では、ソフ
トウェア部品が多くなると、整合性のとれた分類が困難
になるという問題がある。すなわち、従来のプロクラム
の部品の分類は、機能を基準として行われているものが
殆んどである。この分類方法では、同じ機能を実現する
部品であっても、作用を及ぼすデータの型が違うとプロ
グラムが全く別のものになることが多く、他の部品を流
可する等という融通性が乏しかった。また、新しく追加
しようとする部品が、どの機能に属するか不明確なこと
が多く、性能を正確に引き出せるように追加することは
困難であった。
本発明の目的は、このような従来の問題を改善し1部品
を結合してプログラムを作成する場合に、部品蓄積ファ
イルから適切な部品を選択することができ、かつ新しい
プログラムの部品の追加が簡単に行えるプログラム開発
のための部品選択方式を提供することにある。
を結合してプログラムを作成する場合に、部品蓄積ファ
イルから適切な部品を選択することができ、かつ新しい
プログラムの部品の追加が簡単に行えるプログラム開発
のための部品選択方式を提供することにある。
上記目的を達成するため、本発明によるプログラムrj
HMのための部品選択方式は、計算機の処理手順を示す
プログラム部品を結合して新しいプログラムを開発する
ために、開発プログラムの要求仕様をルールを用いた推
論により意味解析を行い。
HMのための部品選択方式は、計算機の処理手順を示す
プログラム部品を結合して新しいプログラムを開発する
ために、開発プログラムの要求仕様をルールを用いた推
論により意味解析を行い。
データフローを作成して、既存の部品蓄積データベース
からデータフローの各ノードに対応する部品を選択する
方式において、各業務に呪われる計算機処理対象物を業
務処理用語で記述してこれを体系化し、かつ個々の対象
物の特性項目として計算機処理での入出力データ型を記
述した変換辞書を有し、該変換辞書を参照することによ
り、上記要求仕様中の業務用語で指定された入出力デー
タに対し、上記データフローの各ノードごとに入出力デ
ータ型を割当て、該入出力データ型に応じて部品蓄積デ
ータベースを検索し、組合せる部品を決定することに特
徴がある。
からデータフローの各ノードに対応する部品を選択する
方式において、各業務に呪われる計算機処理対象物を業
務処理用語で記述してこれを体系化し、かつ個々の対象
物の特性項目として計算機処理での入出力データ型を記
述した変換辞書を有し、該変換辞書を参照することによ
り、上記要求仕様中の業務用語で指定された入出力デー
タに対し、上記データフローの各ノードごとに入出力デ
ータ型を割当て、該入出力データ型に応じて部品蓄積デ
ータベースを検索し、組合せる部品を決定することに特
徴がある。
以下、本発明の実施例を、図面により詳細に説明する。
第1図は、本発明の一実施例を示すソフトウェア部品検
索システムのブロック図である。
索システムのブロック図である。
第1図において、1はビデオデータ・ターミナルで、デ
ィスプレイとキーボードを備えている。
ィスプレイとキーボードを備えている。
2は計算機処理装置、3は推論ルール蓄積ファイル、4
は変換辞書ファイル、5は既存部品蓄積ファイル、6は
部品選択処理部、7は要求仕様解析部、8デ一タフロー
作成部、9は変換辞書検索部、10は部品データベース
検索部、11はルールによる推論部である。
は変換辞書ファイル、5は既存部品蓄積ファイル、6は
部品選択処理部、7は要求仕様解析部、8デ一タフロー
作成部、9は変換辞書検索部、10は部品データベース
検索部、11はルールによる推論部である。
本実施例においては、要求仕様に記述する入出力データ
について、厳密なデータ型を指定することなく、そのデ
ータが何であるかを示す業務用語で記述すれば、変換辞
書の参照により、計算機処理に適切なデータ型を決定し
、それに応じた部品を選択できるので、従来のように、
要求仕様作成時に、処理内容まで考えてデータ型を指定
する必要がない。
について、厳密なデータ型を指定することなく、そのデ
ータが何であるかを示す業務用語で記述すれば、変換辞
書の参照により、計算機処理に適切なデータ型を決定し
、それに応じた部品を選択できるので、従来のように、
要求仕様作成時に、処理内容まで考えてデータ型を指定
する必要がない。
第2図は、第1図の制御手順を示す動作フローチャート
である。先ず、自然語で記述された要求仕様を読み込み
、ルール蓄積ファイルを参照して解析を行い(ステップ
1ot)、計算機操作をノードとし、計算機操作への入
出力データをアークとするデータフローを作成する(ス
テップ102)。
である。先ず、自然語で記述された要求仕様を読み込み
、ルール蓄積ファイルを参照して解析を行い(ステップ
1ot)、計算機操作をノードとし、計算機操作への入
出力データをアークとするデータフローを作成する(ス
テップ102)。
データフローの各ノードは、次のような構造体として表
現されている。
現されている。
(ノード名
(入出力データ型)
(データフロー)
(機能)
・・・・・・・・・)
ここで、要求仕様の入出力データは、業務用語で記述さ
れていたので、各ノードの入出力データ型は、データ名
だけであり、データ型は記述されていない。
れていたので、各ノードの入出力データ型は、データ名
だけであり、データ型は記述されていない。
次に、変換辞書を利用して、各ノードの入出力データに
データ型を割当てる。変換辞書は、次のような構造体で
ある。
データ型を割当てる。変換辞書は、次のような構造体で
ある。
(データの種類
(計算機処理名(入力(データ型))
(出力(データ型)))
(・・・・・・・・ )・・・・)(・
・・・・・・・ )各ノード
の各データについて、業務用語で指定されたデータの種
類と、そのノードで行われる計算機処理名、そのデータ
が入力データか出力データかにより、データ型を決定す
る(ステップ103゜104)。決定したデータ型をデ
ータフローに書き込む(ステップ105)、変換辞書か
ら決定できない場合には、対話人力を行う(ステップ1
06)。
・・・・・・・ )各ノード
の各データについて、業務用語で指定されたデータの種
類と、そのノードで行われる計算機処理名、そのデータ
が入力データか出力データかにより、データ型を決定す
る(ステップ103゜104)。決定したデータ型をデ
ータフローに書き込む(ステップ105)、変換辞書か
ら決定できない場合には、対話人力を行う(ステップ1
06)。
全部のデータ型が決定したノードについて、データ型に
よって体系化した部品蓄積ファイルから推論により適切
な部品を選択しくステップ107)、部品対応図に書き
込む(ステップ108)。ここでも、対応する部品がな
い場合のみ、対話人力を行う(ステップ109)。
よって体系化した部品蓄積ファイルから推論により適切
な部品を選択しくステップ107)、部品対応図に書き
込む(ステップ108)。ここでも、対応する部品がな
い場合のみ、対話人力を行う(ステップ109)。
同じように、全てのノードについて、入出力型を決定し
、利用する部品を決定する(ステップ110.111)
。
、利用する部品を決定する(ステップ110.111)
。
第3図は、自然語で記述された要求仕様の一例を示す図
、第4図は第3図の要求仕様から作成されたデータフロ
ーチャート、第5図は体系化された部品蓄積ファイルの
一部を示す図である。
、第4図は第3図の要求仕様から作成されたデータフロ
ーチャート、第5図は体系化された部品蓄積ファイルの
一部を示す図である。
次に、第3図、第4図および第5図により、II単な例
について、自然語の要求仕様から、データフローを作成
し、対応する部品を選択する手順を述べる。第3図には
、今から開発しようとするプログラムの要求仕様が、自
然語で記述されている。
について、自然語の要求仕様から、データフローを作成
し、対応する部品を選択する手順を述べる。第3図には
、今から開発しようとするプログラムの要求仕様が、自
然語で記述されている。
入出力データは、業務用語で指定されている。
第3図の要求仕様からデータフローチャートを作成する
と、第4図に示すようになる。各ノードの構造体の入出
力データ型は、まだ空欄である。
と、第4図に示すようになる。各ノードの構造体の入出
力データ型は、まだ空欄である。
第5図には、体系化された部品の一部が示されている。
先ず、第3図の要求仕様を読み込み、格文法解析法を利
用してルールによる推論を行い、第4図のデータフロー
チャートを作成する0次に、第4図の各ノードについて
、データ型を決定し、部品を選択する。ここで、変換辞
書は次のような内容である。
用してルールによる推論を行い、第4図のデータフロー
チャートを作成する0次に、第4図の各ノードについて
、データ型を決定し、部品を選択する。ここで、変換辞
書は次のような内容である。
(単価(入力(入力(外部10通型))(出力(外部1
0′d!A型))) (Ia集(入力(外部IO進型)) (出力(文字列型))・・・・・) 単価は、1円の誤差も許されないため、入力、計算にお
いては外部lO進型、出力する場合には文字列型と決ま
っているので、&I集で、文字列型に変換するというこ
とを推論で決定し、作成しである。数量、金額シ二つい
ても、同じような構造体を持つ。
0′d!A型))) (Ia集(入力(外部IO進型)) (出力(文字列型))・・・・・) 単価は、1円の誤差も許されないため、入力、計算にお
いては外部lO進型、出力する場合には文字列型と決ま
っているので、&I集で、文字列型に変換するというこ
とを推論で決定し、作成しである。数量、金額シ二つい
ても、同じような構造体を持つ。
先ず、第4図において、4−1は、入力データとしてA
、Bを持つ、Aは単価であり、入力処理の入力データで
あるので、外部10進型であるということが決定される
。Bも数量であり、入力処理の入力データであるため、
外部lO進型である。
、Bを持つ、Aは単価であり、入力処理の入力データで
あるので、外部10進型であるということが決定される
。Bも数量であり、入力処理の入力データであるため、
外部lO進型である。
4−1の出力データA、Bも、同じように外部10進型
であることがわかる。これで、ノード4−1についての
構造体は、次のように決定される。
であることがわかる。これで、ノード4−1についての
構造体は、次のように決定される。
(入力データ型(A:外部10進型)
(B:外部10進型))
(出力データ型(A:外部10進型)
(B:外部io進型))
(データフロー(・・・・ ))・・・・・・)次に
、この4−1について、対応する部品を選ぶ。
、この4−1について、対応する部品を選ぶ。
4−1の入力データは、外部IO進型であるため、第5
図において、5−1の下位の部品を利用する。
図において、5−1の下位の部品を利用する。
また、4−1は、入力処理であるため、さらに、5−2
の下位の部品となる。そして、5−2に肩しているいく
つかの部品の中から、3−1の機能を持つものを検索す
る(すなわち、A、Bはキーボードから入力するもの)
、その結果、5−4が選ばれたとすると、ノード4−1
の部品で、部品Road−1を利用するということにな
る。部品は、次のような形の構造体である。
の下位の部品となる。そして、5−2に肩しているいく
つかの部品の中から、3−1の機能を持つものを検索す
る(すなわち、A、Bはキーボードから入力するもの)
、その結果、5−4が選ばれたとすると、ノード4−1
の部品で、部品Road−1を利用するということにな
る。部品は、次のような形の構造体である。
(部品名
(属性)
(入出力データ型)
(機能)
(ソースコード)・・・・・)
しかし、ソースコード等のうち、複数個の部品で共通し
ているものについては、上位のレベルの構造体に記述さ
れており、それを継承するものとする。
ているものについては、上位のレベルの構造体に記述さ
れており、それを継承するものとする。
次に、4−2についても、同じように、入力データA、
Bは、外部10進型、出力データCも、金額の計算処理
の出力ということから、外部10進型であるとわかる。
Bは、外部10進型、出力データCも、金額の計算処理
の出力ということから、外部10進型であるとわかる。
そして、第5図の5−1で、計算処理5−3の下位の部
品5−5を利用するということを、推論により決定する
。
品5−5を利用するということを、推論により決定する
。
同じように、4−3についても、入力データA。
B、Cは外部10進型、出力データA、B、Cは文字型
で、対応する部品は、5−1の下位のもの。
で、対応する部品は、5−1の下位のもの。
4−4についても、入力データA、B、C1出力データ
A、B、Cとも1文字列型、対応する部品は、5−6の
下位のもの、ということがわかる。
A、B、Cとも1文字列型、対応する部品は、5−6の
下位のもの、ということがわかる。
このようにして、データフローの各ノードについて、利
用する部品を決定する。
用する部品を決定する。
本実施例では、伝票作成業務であるため、営業用の変換
辞書や部品データベースを利用したが。
辞書や部品データベースを利用したが。
別の辞書や部品を用意することにより、数値計算用のプ
ログラム等、他の職種に関するものについても、同じよ
うな処理が行える。このようにして、本実施例において
は、要求仕様を自然語で記述する場合に、入出力データ
を業務用語で指定するだけで、内部の計算機処理に対し
ては、推論により適切なデータ型を割当て、それに応じ
た部品を選択することができる。
ログラム等、他の職種に関するものについても、同じよ
うな処理が行える。このようにして、本実施例において
は、要求仕様を自然語で記述する場合に、入出力データ
を業務用語で指定するだけで、内部の計算機処理に対し
ては、推論により適切なデータ型を割当て、それに応じ
た部品を選択することができる。
第6図は、本発明の他の実施例を示すプログラム開発シ
ステムのブロック図である。第6図において、1は端末
(キーボード・ディスプレイ)、2はプログラム部品の
選択および結合を行う処理装置、13はプログラム部品
を分類・蓄積しておくデータベース、14は開発された
ソースプログラムである。
ステムのブロック図である。第6図において、1は端末
(キーボード・ディスプレイ)、2はプログラム部品の
選択および結合を行う処理装置、13はプログラム部品
を分類・蓄積しておくデータベース、14は開発された
ソースプログラムである。
通常、プログラムの部品を分類する場合1機能を基準と
して分類しているが、これでは同じ機能を実現する部品
であっても1作用を及ぼすデータの型が異なるとプログ
ラムが全く別のものになることが多く、他の部品を流用
するという融通性が乏しかった。さらに、新しく追加し
ようとする部品がどの機能に厘するか不明確であること
が多く、性能を最大限に引き出せるように追加すること
は困難であった。そこで、本実施例では、プログラムが
どこに分類されるかが明確になるように、その部品が作
用を及ぼすデータの型によって分類する。さらに、関連
する別のデータ型に属する部品を流用し易いように、デ
ータ型に属する派生関係に従って階層を設ける。この結
果、各々のデータ型に及ぼすことができる作用を制限で
き、モジュール性の高いプログラム開発が可能になった
。
して分類しているが、これでは同じ機能を実現する部品
であっても1作用を及ぼすデータの型が異なるとプログ
ラムが全く別のものになることが多く、他の部品を流用
するという融通性が乏しかった。さらに、新しく追加し
ようとする部品がどの機能に厘するか不明確であること
が多く、性能を最大限に引き出せるように追加すること
は困難であった。そこで、本実施例では、プログラムが
どこに分類されるかが明確になるように、その部品が作
用を及ぼすデータの型によって分類する。さらに、関連
する別のデータ型に属する部品を流用し易いように、デ
ータ型に属する派生関係に従って階層を設ける。この結
果、各々のデータ型に及ぼすことができる作用を制限で
き、モジュール性の高いプログラム開発が可能になった
。
第7図は5本発明の実施例を示すデータ型の階層構造の
図であり、また第8図はプログラム部品のTj積および
上位データ型に対する参照の状況を示す図である。
図であり、また第8図はプログラム部品のTj積および
上位データ型に対する参照の状況を示す図である。
小さな1つの機能を実現するプロクラムの部品には、そ
の機能が作用を及ぼす対象となるデータがあり、そのデ
ータは何等かのデータ型を属性として持っている。例え
ば、「値Xをディスプレイに表示するため書き出す」と
いう部品の場合、作用を及ぼす対象となるデータはXで
あり、そのデータ型は例えば文字型である。このような
作用の対象データ型は、プログラム部品ごとに明確に決
まるので、それが共通である部品相互を集めて1グルー
プとする。ただし、利用者が名称を与えたデータ型につ
いては、機械表現の対応するデータ型の中に分類する。
の機能が作用を及ぼす対象となるデータがあり、そのデ
ータは何等かのデータ型を属性として持っている。例え
ば、「値Xをディスプレイに表示するため書き出す」と
いう部品の場合、作用を及ぼす対象となるデータはXで
あり、そのデータ型は例えば文字型である。このような
作用の対象データ型は、プログラム部品ごとに明確に決
まるので、それが共通である部品相互を集めて1グルー
プとする。ただし、利用者が名称を与えたデータ型につ
いては、機械表現の対応するデータ型の中に分類する。
これらのデータ型を、次に述べる規則に従って9層づけ
る。(a)最上位の階層は、「整数型」、「実数型」、
「文字型」、「プール型」の4つである。(h)配列型
、集合型、レコード型は、その構成要素の型の直下に階
層づける。(c)部分範囲型は1部分を限るもとになっ
た型の直下に階層づける。(d)スカラー型は、整数の
部分範囲型の直下に階層づける。(e)その他の利用者
定義の型は、その型に相当する(=)〜(d)の規則で
作られる型の直下に階層づける。
る。(a)最上位の階層は、「整数型」、「実数型」、
「文字型」、「プール型」の4つである。(h)配列型
、集合型、レコード型は、その構成要素の型の直下に階
層づける。(c)部分範囲型は1部分を限るもとになっ
た型の直下に階層づける。(d)スカラー型は、整数の
部分範囲型の直下に階層づける。(e)その他の利用者
定義の型は、その型に相当する(=)〜(d)の規則で
作られる型の直下に階層づける。
第7図は、上記規則に従って作成した階層づけの例を示
すもので、階層の上位のデータ型に属するものに対して
、似た機能の部品を一部修正して、そのデータ型に対す
る操作のための部品を構成することができる。これによ
り1派生データ型を判うプログラム部品の作成が容易と
なる。
すもので、階層の上位のデータ型に属するものに対して
、似た機能の部品を一部修正して、そのデータ型に対す
る操作のための部品を構成することができる。これによ
り1派生データ型を判うプログラム部品の作成が容易と
なる。
次に1本実施例により分類されたプログラム部品を組合
せることによって、実行されるプログラム開発の状況を
詳述する。開発者は、作成したいプログラムの概略を、
単文の連鎖として記述していく。各々の単文は、あるデ
ータに対する何等かの操作を表わすか、プログラムの実
行順序を規定するかのいずれかである。システムは、こ
の概略から、あるデータに対する操作の単文を抽出し、
該当するデータ型の中に分類されているプログラム部品
群から、操作内容の一致するものを抽出する。抽出され
たプログラム部品は、そのままでは変数名称が埋められ
ておらず、このままでは他の部品と結合できないので、
プログラムの概略に基づいて単一化を行う。その後に、
実行順序を規定する単文に従って、選ばれたプログラム
部品を結合していき、完成プログラムを作成する。
せることによって、実行されるプログラム開発の状況を
詳述する。開発者は、作成したいプログラムの概略を、
単文の連鎖として記述していく。各々の単文は、あるデ
ータに対する何等かの操作を表わすか、プログラムの実
行順序を規定するかのいずれかである。システムは、こ
の概略から、あるデータに対する操作の単文を抽出し、
該当するデータ型の中に分類されているプログラム部品
群から、操作内容の一致するものを抽出する。抽出され
たプログラム部品は、そのままでは変数名称が埋められ
ておらず、このままでは他の部品と結合できないので、
プログラムの概略に基づいて単一化を行う。その後に、
実行順序を規定する単文に従って、選ばれたプログラム
部品を結合していき、完成プログラムを作成する。
次に、第8図により、プログラム部品の蓄積形態および
新しい部品の追加の状況を述べる。実際のプログラム部
品のテキスト44は、データ型の階層の定義をしている
部分とは独立して?S積されている。各データ型には、
その型に属する部品を参照する識別子と、変数名の単一
化の方法、型に合せて部品を変形する方法が記述されて
いる。
新しい部品の追加の状況を述べる。実際のプログラム部
品のテキスト44は、データ型の階層の定義をしている
部分とは独立して?S積されている。各データ型には、
その型に属する部品を参照する識別子と、変数名の単一
化の方法、型に合せて部品を変形する方法が記述されて
いる。
例えば、「整数配列」42というデータ型に居する「合
計するJという機能のプログラム部品は、そのまま整数
配列を含む構造体にも適用できる。
計するJという機能のプログラム部品は、そのまま整数
配列を含む構造体にも適用できる。
このような場合に、2重登録をしなくても済むように、
データ型の階層を利用し、上位データ型に属するプログ
ラム部品を間接的に参照する機能が備えられている。こ
れは、該当するデータ型の分類の中に希望するプログラ
ム部品がなくても、上位データ型に分類されている部品
で同じ機能のものがあれば、それを受けつぎ、必要なら
ばその型に合せた変形を施して出力するというものであ
る。
データ型の階層を利用し、上位データ型に属するプログ
ラム部品を間接的に参照する機能が備えられている。こ
れは、該当するデータ型の分類の中に希望するプログラ
ム部品がなくても、上位データ型に分類されている部品
で同じ機能のものがあれば、それを受けつぎ、必要なら
ばその型に合せた変形を施して出力するというものであ
る。
例えば、第8図において、[lI数数列列文字列の構造
体」43に作用し、配列中の整数を文字列に変換すると
いう機能のプログラム部品はない。
体」43に作用し、配列中の整数を文字列に変換すると
いう機能のプログラム部品はない。
しかし、上位階層の「整数配列」42に対して参照を申
し込むことができる。「整数配列」42は、この申し込
みを受けると、さらに上位の「整数型」41に対して参
照を申し込む、「整数型J41に属している「整数を文
字列に変換する」という機能のプログラム部品44がr
′!Ii数配列」42に受は渡され、「!1数配列」4
2はこれを変形して、繰り返しを行うようにし、配列と
いう型に適合したものにする。さらに、それが「整数配
列・文字列の構造体」43に受は渡され、構造体43は
これをそのまま出力する。このようにして、構造体43
に腐する変換機能44を実現することができる。
し込むことができる。「整数配列」42は、この申し込
みを受けると、さらに上位の「整数型」41に対して参
照を申し込む、「整数型J41に属している「整数を文
字列に変換する」という機能のプログラム部品44がr
′!Ii数配列」42に受は渡され、「!1数配列」4
2はこれを変形して、繰り返しを行うようにし、配列と
いう型に適合したものにする。さらに、それが「整数配
列・文字列の構造体」43に受は渡され、構造体43は
これをそのまま出力する。このようにして、構造体43
に腐する変換機能44を実現することができる。
ある型に対して、新しくプログラム部品を追加する場合
には、これとは逆に、上位階層の型に属するプログラム
部品を利用し、必要ならばその変形の方法を記述して登
録することによって行う。
には、これとは逆に、上位階層の型に属するプログラム
部品を利用し、必要ならばその変形の方法を記述して登
録することによって行う。
本実施例においては、人の経験に頼る分類と異なって、
全ての人が行った場合にも、同一の部品は同じ場所に分
類される。従って、適切な部品の選択が効率的に行われ
、新しい部品の蓄積も容易になるため、プログラム開発
の効率が上る。
全ての人が行った場合にも、同一の部品は同じ場所に分
類される。従って、適切な部品の選択が効率的に行われ
、新しい部品の蓄積も容易になるため、プログラム開発
の効率が上る。
このように、既存のソフトウェア部品を組み立てて、新
しいプログラムを開発する場合に、第1の実施例では、
データフローに対応する部品を選択する際に、業務内容
に応じて作成しておいた変換辞書を利用することにより
、要求仕様中には、業務用語で書かれていた入出力デー
タについて、データフローの各ノードごとに、適切なデ
ータ型を割り当て、その入出力データ型により、体系化
した部品蓄積ファイルを検索し、データフローのノード
に対応する部品を選択することができる。
しいプログラムを開発する場合に、第1の実施例では、
データフローに対応する部品を選択する際に、業務内容
に応じて作成しておいた変換辞書を利用することにより
、要求仕様中には、業務用語で書かれていた入出力デー
タについて、データフローの各ノードごとに、適切なデ
ータ型を割り当て、その入出力データ型により、体系化
した部品蓄積ファイルを検索し、データフローのノード
に対応する部品を選択することができる。
これにより、要求仕様作成時に、内部での計算機処理の
内容まで考えてデータ型を指定する必要はなく、そのデ
ータの種類を業務用語で記述するのみでよい。
内容まで考えてデータ型を指定する必要はなく、そのデ
ータの種類を業務用語で記述するのみでよい。
また、第2の実施例においては、プログラム部品を分類
する場合、その部品が作用を及ぼすデータの型により分
類し、関連する別のデータ型に属する部品を流用し易い
ように、データ型の派生関係に従って階層を設けたので
、各データ型に及ぼすことができる作用を制限できる。
する場合、その部品が作用を及ぼすデータの型により分
類し、関連する別のデータ型に属する部品を流用し易い
ように、データ型の派生関係に従って階層を設けたので
、各データ型に及ぼすことができる作用を制限できる。
また、新しく部品を追加する際に、上位階層の型に属す
る部品を利用し、必要なときには、その変形のし方を記
述して登録することにより、誰が行っても同じ部品は同
じ箇所に分類されるので、部品の蓄積が容易となり、開
発効率は向上する。
る部品を利用し、必要なときには、その変形のし方を記
述して登録することにより、誰が行っても同じ部品は同
じ箇所に分類されるので、部品の蓄積が容易となり、開
発効率は向上する。
以上説明したように、本発明によれば、業務内容に応じ
て作成された変換辞書を利用することにより、データの
種類を業務用語で記述するだけでよいので、プログラム
開発の手順の筒軸化および効率の向上が図れ、また、適
切な部品を効率的に選択できるとともに、新しいプログ
ラム部品の追加が容易となるため、各業務ごと、あるい
は各利用者ごとに、必要な部品をM積していくことによ
り、プログラム開発効率が向上する。
て作成された変換辞書を利用することにより、データの
種類を業務用語で記述するだけでよいので、プログラム
開発の手順の筒軸化および効率の向上が図れ、また、適
切な部品を効率的に選択できるとともに、新しいプログ
ラム部品の追加が容易となるため、各業務ごと、あるい
は各利用者ごとに、必要な部品をM積していくことによ
り、プログラム開発効率が向上する。
第1図は本発明の第1実施例を示すプログラム開発シス
テムの機能ブロック図、第2図は第1図の制御手順を示
すフローチャート、第3図は本発明における自然語で記
述された要求仕様の一例図、第4図は第3図の要求仕様
から作成されたデータブローチヤード、第5図は体系化
された部品蓄積ファイルの一部を示す図、第6図は本発
明の第2の実施例を示すプログラム開発システムのブロ
ック図、第7図は本実施例に基づいてデータ型の階層を
構成した図、第8図はプログラム部品の蓄積および上位
データ型に対する参照の状況を示す図である。 1;端末(ビデオデータターミナル)、2:処理装置(
CPU)、3 :推論ルール蓄積ファイル、4:変換辞
書ファイル、5:既存部品蓄積ファイル、6:部品選択
処理部、7:要求仕様解析部、データフロー作成部、9
:変換辞書検索部、10:部品データベース検索部、l
l:ルールによる推論部、13ニブログラム部品を分類
・蓄積するデータベース、14:開発されたソースプロ
グラム。
テムの機能ブロック図、第2図は第1図の制御手順を示
すフローチャート、第3図は本発明における自然語で記
述された要求仕様の一例図、第4図は第3図の要求仕様
から作成されたデータブローチヤード、第5図は体系化
された部品蓄積ファイルの一部を示す図、第6図は本発
明の第2の実施例を示すプログラム開発システムのブロ
ック図、第7図は本実施例に基づいてデータ型の階層を
構成した図、第8図はプログラム部品の蓄積および上位
データ型に対する参照の状況を示す図である。 1;端末(ビデオデータターミナル)、2:処理装置(
CPU)、3 :推論ルール蓄積ファイル、4:変換辞
書ファイル、5:既存部品蓄積ファイル、6:部品選択
処理部、7:要求仕様解析部、データフロー作成部、9
:変換辞書検索部、10:部品データベース検索部、l
l:ルールによる推論部、13ニブログラム部品を分類
・蓄積するデータベース、14:開発されたソースプロ
グラム。
Claims (3)
- (1)計算機の処理手順を示すプログラム部品を結合し
て新しいプログラムを開発するために、開発プログラム
の要求仕様をルールを用いた推論により意味解析を行い
、データフローを作成して、既存の部品蓄積データベー
スからデータフローの各ノードに対応する部品を選択す
る方式において、各業務に現われる計算機処理対象物を
業務処理用語で記述してこれを体系化し、かつ個々の対
象物の特性項目として計算機処理での入出力データ型を
記述した変換辞書を有し、該変換辞書を参照することに
より、上記要求仕様中の業務用語で指定された入出力デ
ータに対し、上記データフローの各ノードごとに入出力
データ型を割当て、該入出力データ型に応じて部品蓄積
データベースを検索し、組合せる部品を決定することを
特徴とするプログラム開発のための部品選択方式。 - (2)上記部品蓄積データベースは、プログラム部品が
作用を及ぼすデータの型を基準に分類され、各々の部品
の集合がデータ型の派生関係により階層づけられ、必要
に応じて上位階層の部品も利用されるようになつている
ことを特徴とする特許請求の範囲第1項記載のプログラ
ム開発のための部品選択方式。 - (3)上記部品蓄積データベースは、新しく部品が追加
される場合、上位階層の型に属する部品が利用され、必
要なときにはその変形のし方が記述登録されていること
を特徴とする特許請求の範囲第1項記載のプログラム開
発のための部品選択方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP22845985A JPS6288032A (ja) | 1985-10-14 | 1985-10-14 | プログラム開発のための部品選択方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP22845985A JPS6288032A (ja) | 1985-10-14 | 1985-10-14 | プログラム開発のための部品選択方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS6288032A true JPS6288032A (ja) | 1987-04-22 |
Family
ID=16876818
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP22845985A Pending JPS6288032A (ja) | 1985-10-14 | 1985-10-14 | プログラム開発のための部品選択方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS6288032A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH032923A (ja) * | 1989-05-30 | 1991-01-09 | Shimadzu Corp | 自動プログラミングシステム |
-
1985
- 1985-10-14 JP JP22845985A patent/JPS6288032A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH032923A (ja) * | 1989-05-30 | 1991-01-09 | Shimadzu Corp | 自動プログラミングシステム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Overmyer et al. | Conceptual modeling through linguistic analysis using LIDA | |
| US6219831B1 (en) | Device and method for converting computer programming languages | |
| Moon et al. | An approach to developing domain requirements as a core asset based on commonality and variability analysis in a product line | |
| US6243835B1 (en) | Test specification generation system and storage medium storing a test specification generation program | |
| Stroulia et al. | User interface reverse engineering in support of interface migration to the web | |
| Stroulia et al. | Reverse engineering legacy interfaces: An interaction-driven approach | |
| CN117608656A (zh) | 一种基于ast和llm的混合式前端框架迁移方法 | |
| CN114503073A (zh) | 将用过程编程语言编写的程序自动转换为数据流图及相关系统和方法 | |
| JP2022534506A (ja) | 自然言語からの機能アーキテクチャドキュメントならびにソフトウェア設計および分析仕様ドキュメントの自動生成のためのプロセスおよびシステム | |
| King et al. | A unified model and methodology for conceptual database design | |
| Hamoud et al. | Quran question and answer corpus for data mining with WEKA | |
| Konsynski | Advances in information system design | |
| CN121008807A (zh) | 基于大语言模型的编译器后端生成增强方法及装置 | |
| Ram | Deriving functional dependencies from the entity-relationship model | |
| Kong et al. | Legacy Interface Migration: A Task-Centered Approach. | |
| JPS6288032A (ja) | プログラム開発のための部品選択方式 | |
| Huh et al. | A model management framework for heterogeneous algebraic models: Object-oriented database management systems approach | |
| Berry et al. | The R programming language | |
| Urban et al. | Utilizing an executable specification language for an information system | |
| Brockman | A schema-based approach to CAD task management | |
| Hafiza Aunsa et al. | Defining Classes and Semantic Relationships from User Scenarios Through a Heuristic Approach | |
| Teichroew et al. | Computer-aided software development | |
| Harandi et al. | Software design using reusable algorithm abstractions | |
| Shneidebman | A review of design techniques for programs and data | |
| Wasserman et al. | A balanced view of MUMPS |