JPS6288032A - Component selection method for program development - Google Patents
Component selection method for program developmentInfo
- 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)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。(57) [Summary] This bulletin contains application data before electronic filing, so abstract data is not recorded.
Description
【発明の詳細な説明】
〔発明の利用分野〕
本発明は、ブロクラム開発のための部品選択方式に関し
、特にプログラム開発に当り、業務処理用語についての
変換辞書を利用して、入出力データ型を決定し、そのデ
ータ型により、部品蓄積フアイルから部品(プログラム
の断片)を選択する部品選択方式に関するものである。[Detailed Description of the Invention] [Field of Application of the Invention] The present invention relates to a component selection method for blockbrush development, and in particular, in program development, input/output data types are changed using a conversion dictionary for business processing terms. This relates to a component selection method in which a component (program fragment) is selected from a component storage file based on the determined data type.
ソフトウェアを開発する場合、従来使用しているソフト
ウェアを再利用することが有効である。When developing software, it is effective to reuse previously used software.
その場合、データベースに登録しであるソフトウェアの
部品(すなわち、ソフトウェアの断片)を組合せること
により、新しいプログラムを作成することができる。In that case, a new program can be created by combining software components (ie, software fragments) registered in the database.
一方、従来より、自然語を解析することによりプログラ
ムを開発する方法、すなわち対話型自然言語プログラミ
ングシステムが知られている(電子通信学会論文誌 8
4/3 Vol、J67−DNo、3 r対話型自然
言語プログラミングシステムの試作」参照)、このシス
テムでは、対象となる入力文についてデータを収集し、
それらの特徴を得る。入力文はあいまいさがあったり、
矛盾を含んでいるため、必要に応じてユーザと対話して
これらを除く。また、ユーザが作り出そうとしているプ
ロプラムや文の意味等をモデル化するため、意味モデル
、プログラムモデル、コードモデルを導入する。このシ
ステムにより、日本語文からの情報抽出、断片的情報を
まとめあげる情報獲得処理。On the other hand, a method for developing programs by analyzing natural language, that is, an interactive natural language programming system, has been known (Transactions of the Institute of Electronics and Communication Engineers, 8).
4/3 Vol. J67-D No. 3 R Prototype of an Interactive Natural Language Programming System), this system collects data about the target input sentence,
Get those characteristics. The input sentence may be ambiguous,
Contains inconsistencies, so remove them by interacting with the user as necessary. Furthermore, in order to model the meaning of programs and sentences that the user is trying to create, a semantic model, a program model, and a code model are introduced. This system performs information acquisition processing that extracts information from Japanese sentences and compiles fragmented information.
自動プログラミング、マンマシンインタフェースの機能
を実現することができる。Automatic programming and man-machine interface functions can be realized.
一方、プログラムを部品化して記憶しておき、これらの
部品を合成して新しいプログラムを作成するプログラム
自動合成方式が開発されているが、従来より機能により
部品を分類していたので、ある部分がどこに分類される
か統一性がなく、自動合成が効率よく動作しないという
問題がある。プログラムを断片的に結合することにより
、プログラム開発を行うものとしては1例えば、菰田純
−1小林義広1gロ幸雄著「ソフトウェア部品によるプ
ログラム開発支援:パラダイム」 (ソフトウエア工学
34−18)に記載された方法がある。この方法では1
部品の見出し方として、部品化を適用しようとしている
応用分野の典型的な処理パターンに着目して、部品の数
を不要に増加させないようにしており、また部品形態の
決定として、ソフトウェアには、サブルーチン形式のも
の、利用者が修正して使用することを前提としたソース
プログラムライブラリ等が考えられ、利用目的に適した
部品の選択が必要となる。しかし、この方法では、ソフ
トウェア部品が多くなると、整合性のとれた分類が困難
になるという問題がある。すなわち、従来のプロクラム
の部品の分類は、機能を基準として行われているものが
殆んどである。この分類方法では、同じ機能を実現する
部品であっても、作用を及ぼすデータの型が違うとプロ
グラムが全く別のものになることが多く、他の部品を流
可する等という融通性が乏しかった。また、新しく追加
しようとする部品が、どの機能に属するか不明確なこと
が多く、性能を正確に引き出せるように追加することは
困難であった。On the other hand, an automatic program synthesis method has been developed in which a program is stored as parts and then these parts are combined to create a new program. There is a problem that there is no uniformity in where they are classified, and automatic synthesis does not work efficiently. An example of developing a program by combining programs piecemeal is described in Jun Komoda, Yoshihiro Kobayashi, Yukio Ro, "Program Development Support Using Software Components: Paradigm" (Software Engineering 34-18). There is a method. In this method, 1
In order to find parts, we focus on the typical processing pattern of the application field to which we are applying componentization to avoid unnecessary increase in the number of parts, and in determining the form of parts, the software has This may be in the form of a subroutine or a source program library that is intended to be modified and used by the user, and it is necessary to select components appropriate for the purpose of use. However, this method has the problem that consistent classification becomes difficult when the number of software components increases. That is, most conventional classifications of program parts are based on function. In this classification method, even if the parts implement the same function, the program will often be completely different if the type of data that acts on them is different, and there is little flexibility to use other parts. Ta. Furthermore, it is often unclear to what function a new part is to be added, making it difficult to add it in a way that accurately brings out the performance.
本発明の目的は、このような従来の問題を改善し1部品
を結合してプログラムを作成する場合に、部品蓄積ファ
イルから適切な部品を選択することができ、かつ新しい
プログラムの部品の追加が簡単に行えるプログラム開発
のための部品選択方式を提供することにある。An object of the present invention is to improve such conventional problems, and when creating a program by combining one part, to be able to select an appropriate part from a parts accumulation file, and to be able to add new program parts. The object of the present invention is to provide a component selection method for easy program development.
上記目的を達成するため、本発明によるプログラムrj
HMのための部品選択方式は、計算機の処理手順を示す
プログラム部品を結合して新しいプログラムを開発する
ために、開発プログラムの要求仕様をルールを用いた推
論により意味解析を行い。In order to achieve the above object, the program rj according to the present invention
In the component selection method for HM, in order to develop a new program by combining program components that indicate computer processing procedures, the required specifications of the developed program are semantically analyzed by reasoning using rules.
データフローを作成して、既存の部品蓄積データベース
からデータフローの各ノードに対応する部品を選択する
方式において、各業務に呪われる計算機処理対象物を業
務処理用語で記述してこれを体系化し、かつ個々の対象
物の特性項目として計算機処理での入出力データ型を記
述した変換辞書を有し、該変換辞書を参照することによ
り、上記要求仕様中の業務用語で指定された入出力デー
タに対し、上記データフローの各ノードごとに入出力デ
ータ型を割当て、該入出力データ型に応じて部品蓄積デ
ータベースを検索し、組合せる部品を決定することに特
徴がある。In the method of creating a data flow and selecting parts corresponding to each node of the data flow from an existing parts accumulation database, the computer processing objects that are cursed by each business are described in business processing terms and systematized. It also has a conversion dictionary that describes input/output data types in computer processing as characteristic items of each object, and by referring to the conversion dictionary, input/output data specified by business terms in the above requirement specifications can be converted. On the other hand, the present invention is characterized by assigning an input/output data type to each node of the data flow, searching the parts accumulation database according to the input/output data type, and determining the parts to be combined.
以下、本発明の実施例を、図面により詳細に説明する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
第1図は、本発明の一実施例を示すソフトウェア部品検
索システムのブロック図である。FIG. 1 is a block diagram of a software component search system showing one embodiment of the present invention.
第1図において、1はビデオデータ・ターミナルで、デ
ィスプレイとキーボードを備えている。In FIG. 1, 1 is a video data terminal equipped with a display and a keyboard.
2は計算機処理装置、3は推論ルール蓄積ファイル、4
は変換辞書ファイル、5は既存部品蓄積ファイル、6は
部品選択処理部、7は要求仕様解析部、8デ一タフロー
作成部、9は変換辞書検索部、10は部品データベース
検索部、11はルールによる推論部である。2 is a computer processing device, 3 is an inference rule accumulation file, 4 is
is a conversion dictionary file, 5 is an existing parts accumulation file, 6 is a parts selection processing unit, 7 is a requirements specification analysis unit, 8 is a data flow creation unit, 9 is a conversion dictionary search unit, 10 is a parts database search unit, 11 is a rule This is the inference part by.
本実施例においては、要求仕様に記述する入出力データ
について、厳密なデータ型を指定することなく、そのデ
ータが何であるかを示す業務用語で記述すれば、変換辞
書の参照により、計算機処理に適切なデータ型を決定し
、それに応じた部品を選択できるので、従来のように、
要求仕様作成時に、処理内容まで考えてデータ型を指定
する必要がない。In this example, if the input/output data described in the requirements specifications is described in business terms that indicate what the data is without specifying a strict data type, computer processing can be performed by referring to a conversion dictionary. You can determine the appropriate data type and select the parts accordingly, so you can
When creating requirement specifications, there is no need to consider the processing content and specify data types.
第2図は、第1図の制御手順を示す動作フローチャート
である。先ず、自然語で記述された要求仕様を読み込み
、ルール蓄積ファイルを参照して解析を行い(ステップ
1ot)、計算機操作をノードとし、計算機操作への入
出力データをアークとするデータフローを作成する(ス
テップ102)。FIG. 2 is an operation flowchart showing the control procedure of FIG. 1. First, read the requirement specifications written in natural language, analyze them by referring to the rule accumulation file (step 1ot), and create a data flow with computer operations as nodes and input/output data to the computer operations as arcs. (Step 102).
データフローの各ノードは、次のような構造体として表
現されている。Each node of the data flow is expressed as the following structure.
(ノード名
(入出力データ型)
(データフロー)
(機能)
・・・・・・・・・)
ここで、要求仕様の入出力データは、業務用語で記述さ
れていたので、各ノードの入出力データ型は、データ名
だけであり、データ型は記述されていない。(Node name (input/output data type) (data flow) (function) ......) Here, since the input/output data of the requirement specification was written in business terms, the input/output data of each node The output data type is only a data name, and the data type is not described.
次に、変換辞書を利用して、各ノードの入出力データに
データ型を割当てる。変換辞書は、次のような構造体で
ある。Next, a conversion dictionary is used to assign data types to the input and output data of each node. The conversion dictionary is a structure as shown below.
(データの種類
(計算機処理名(入力(データ型))
(出力(データ型)))
(・・・・・・・・ )・・・・)(・
・・・・・・・ )各ノード
の各データについて、業務用語で指定されたデータの種
類と、そのノードで行われる計算機処理名、そのデータ
が入力データか出力データかにより、データ型を決定す
る(ステップ103゜104)。決定したデータ型をデ
ータフローに書き込む(ステップ105)、変換辞書か
ら決定できない場合には、対話人力を行う(ステップ1
06)。(Data type (computer processing name (input (data type)) (output (data type))) (...)...)...) (...
・・・・・・・・・) For each data at each node, the data type is determined based on the type of data specified in business terms, the name of the computer processing performed at that node, and whether the data is input data or output data. (Steps 103 and 104). The determined data type is written into the data flow (step 105), and if it cannot be determined from the conversion dictionary, human interaction is performed (step 1).
06).
全部のデータ型が決定したノードについて、データ型に
よって体系化した部品蓄積ファイルから推論により適切
な部品を選択しくステップ107)、部品対応図に書き
込む(ステップ108)。ここでも、対応する部品がな
い場合のみ、対話人力を行う(ステップ109)。For the nodes for which all data types have been determined, appropriate parts are selected by inference from the parts accumulation file organized by data type (step 107) and written in the parts correspondence diagram (step 108). Here too, human interaction is performed only when there is no corresponding part (step 109).
同じように、全てのノードについて、入出力型を決定し
、利用する部品を決定する(ステップ110.111)
。Similarly, for all nodes, determine the input/output type and determine the parts to be used (steps 110 and 111).
.
第3図は、自然語で記述された要求仕様の一例を示す図
、第4図は第3図の要求仕様から作成されたデータフロ
ーチャート、第5図は体系化された部品蓄積ファイルの
一部を示す図である。Figure 3 shows an example of requirements specifications written in natural language, Figure 4 is a data flowchart created from the requirements specifications in Figure 3, and Figure 5 is part of a systemized parts accumulation file. FIG.
次に、第3図、第4図および第5図により、II単な例
について、自然語の要求仕様から、データフローを作成
し、対応する部品を選択する手順を述べる。第3図には
、今から開発しようとするプログラムの要求仕様が、自
然語で記述されている。Next, with reference to FIGS. 3, 4, and 5, a procedure for creating a data flow from a natural language requirement specification and selecting corresponding parts will be described for a simple example. In Figure 3, the requirements specifications of the program that we are about to develop are written in natural language.
入出力データは、業務用語で指定されている。Input/output data is specified in business terms.
第3図の要求仕様からデータフローチャートを作成する
と、第4図に示すようになる。各ノードの構造体の入出
力データ型は、まだ空欄である。When a data flow chart is created from the required specifications shown in FIG. 3, it becomes as shown in FIG. 4. The input/output data type of each node structure is still blank.
第5図には、体系化された部品の一部が示されている。FIG. 5 shows some of the systemized parts.
先ず、第3図の要求仕様を読み込み、格文法解析法を利
用してルールによる推論を行い、第4図のデータフロー
チャートを作成する0次に、第4図の各ノードについて
、データ型を決定し、部品を選択する。ここで、変換辞
書は次のような内容である。First, read the requirement specifications in Figure 3, perform inference based on rules using case grammar analysis, and create the data flow chart in Figure 4.Next, determine the data type for each node in Figure 4. and select the part. Here, the contents of the conversion dictionary are as follows.
(単価(入力(入力(外部10通型))(出力(外部1
0′d!A型)))
(Ia集(入力(外部IO進型))
(出力(文字列型))・・・・・)
単価は、1円の誤差も許されないため、入力、計算にお
いては外部lO進型、出力する場合には文字列型と決ま
っているので、&I集で、文字列型に変換するというこ
とを推論で決定し、作成しである。数量、金額シ二つい
ても、同じような構造体を持つ。(Unit price (input (input (external 10 type)) (output (external 1 type)
0′d! A type))) (Ia collection (input (external IO base type)) (output (character string type))...) Since even a 1 yen error is not allowed for the unit price, external IO is used for input and calculation. Since it is fixed to be a base type and a string type when outputting, I decided by inference to convert it to a string type in the &I collection and created it. Even if there are two quantities and amounts, they have similar structures.
先ず、第4図において、4−1は、入力データとしてA
、Bを持つ、Aは単価であり、入力処理の入力データで
あるので、外部10進型であるということが決定される
。Bも数量であり、入力処理の入力データであるため、
外部lO進型である。First, in FIG. 4, 4-1 is A as input data.
, B. Since A is the unit price and is input data for input processing, it is determined that it is an external decimal type. B is also a quantity and is input data for input processing, so
It is an external lO base type.
4−1の出力データA、Bも、同じように外部10進型
であることがわかる。これで、ノード4−1についての
構造体は、次のように決定される。It can be seen that the output data A and B of 4-1 are also of external decimal type. The structure for node 4-1 is now determined as follows.
(入力データ型(A:外部10進型)
(B:外部10進型))
(出力データ型(A:外部10進型)
(B:外部io進型))
(データフロー(・・・・ ))・・・・・・)次に
、この4−1について、対応する部品を選ぶ。(Input data type (A: external decimal type) (B: external decimal type)) (Output data type (A: external decimal type) (B: external io decimal type)) (Data flow (... ))...) Next, select the corresponding parts for this 4-1.
4−1の入力データは、外部IO進型であるため、第5
図において、5−1の下位の部品を利用する。The input data of 4-1 is external IO base type, so the fifth
In the figure, lower parts 5-1 are used.
また、4−1は、入力処理であるため、さらに、5−2
の下位の部品となる。そして、5−2に肩しているいく
つかの部品の中から、3−1の機能を持つものを検索す
る(すなわち、A、Bはキーボードから入力するもの)
、その結果、5−4が選ばれたとすると、ノード4−1
の部品で、部品Road−1を利用するということにな
る。部品は、次のような形の構造体である。In addition, since 4-1 is input processing, 5-2
It becomes the lower part of . Then, search for one with the function of 3-1 from among the several parts that correspond to 5-2 (i.e., A and B are input from the keyboard).
, As a result, if 5-4 is selected, node 4-1
This means that the component Road-1 is used for the component Road-1. A component is a structure with the following shape.
(部品名
(属性)
(入出力データ型)
(機能)
(ソースコード)・・・・・)
しかし、ソースコード等のうち、複数個の部品で共通し
ているものについては、上位のレベルの構造体に記述さ
れており、それを継承するものとする。(Part name (attribute) (Input/output data type) (Function) (Source code)...) However, for source codes that are common to multiple parts, It is written in the structure and shall be inherited.
次に、4−2についても、同じように、入力データA、
Bは、外部10進型、出力データCも、金額の計算処理
の出力ということから、外部10進型であるとわかる。Next, for 4-2, input data A,
It can be seen that B is an external decimal type, and the output data C is also an output of an amount calculation process, so it is an external decimal type.
そして、第5図の5−1で、計算処理5−3の下位の部
品5−5を利用するということを、推論により決定する
。Then, at 5-1 in FIG. 5, it is determined by inference that the lower component 5-5 of the calculation process 5-3 is to be used.
同じように、4−3についても、入力データA。Similarly, for 4-3, input data A.
B、Cは外部10進型、出力データA、B、Cは文字型
で、対応する部品は、5−1の下位のもの。B and C are external decimal type, output data A, B, and C are character type, and the corresponding parts are lower-order ones of 5-1.
4−4についても、入力データA、B、C1出力データ
A、B、Cとも1文字列型、対応する部品は、5−6の
下位のもの、ということがわかる。Regarding 4-4 as well, it can be seen that input data A, B, and C1 and output data A, B, and C are all of one character string type, and the corresponding parts are lower-order ones of 5-6.
このようにして、データフローの各ノードについて、利
用する部品を決定する。In this way, the parts to be used are determined for each node of the data flow.
本実施例では、伝票作成業務であるため、営業用の変換
辞書や部品データベースを利用したが。In this embodiment, since the task is to create a slip, a sales conversion dictionary and parts database are used.
別の辞書や部品を用意することにより、数値計算用のプ
ログラム等、他の職種に関するものについても、同じよ
うな処理が行える。このようにして、本実施例において
は、要求仕様を自然語で記述する場合に、入出力データ
を業務用語で指定するだけで、内部の計算機処理に対し
ては、推論により適切なデータ型を割当て、それに応じ
た部品を選択することができる。By preparing other dictionaries and parts, similar processing can be performed for programs related to other occupations, such as numerical calculation programs. In this way, in this example, when describing requirements specifications in natural language, input/output data can only be specified in business terms, and appropriate data types can be determined by inference for internal computer processing. You can make assignments and select parts accordingly.
第6図は、本発明の他の実施例を示すプログラム開発シ
ステムのブロック図である。第6図において、1は端末
(キーボード・ディスプレイ)、2はプログラム部品の
選択および結合を行う処理装置、13はプログラム部品
を分類・蓄積しておくデータベース、14は開発された
ソースプログラムである。FIG. 6 is a block diagram of a program development system showing another embodiment of the present invention. In FIG. 6, 1 is a terminal (keyboard/display), 2 is a processing device for selecting and combining program parts, 13 is a database for classifying and storing program parts, and 14 is a developed source program.
通常、プログラムの部品を分類する場合1機能を基準と
して分類しているが、これでは同じ機能を実現する部品
であっても1作用を及ぼすデータの型が異なるとプログ
ラムが全く別のものになることが多く、他の部品を流用
するという融通性が乏しかった。さらに、新しく追加し
ようとする部品がどの機能に厘するか不明確であること
が多く、性能を最大限に引き出せるように追加すること
は困難であった。そこで、本実施例では、プログラムが
どこに分類されるかが明確になるように、その部品が作
用を及ぼすデータの型によって分類する。さらに、関連
する別のデータ型に属する部品を流用し易いように、デ
ータ型に属する派生関係に従って階層を設ける。この結
果、各々のデータ型に及ぼすことができる作用を制限で
き、モジュール性の高いプログラム開発が可能になった
。Normally, program parts are classified based on one function, but this means that even if the parts implement the same function, if the type of data that exerts one effect is different, the program will be completely different. In many cases, there was little flexibility in reusing other parts. Furthermore, it is often unclear which function a newly added component will perform, making it difficult to add it in a way that maximizes performance. Therefore, in this embodiment, programs are classified according to the type of data that their parts act on so that it is clear where they are classified. Furthermore, a hierarchy is provided according to the derivation relationship belonging to the data type so that parts belonging to another related data type can be easily used. As a result, the effects that can be exerted on each data type can be restricted, making it possible to develop highly modular programs.
第7図は5本発明の実施例を示すデータ型の階層構造の
図であり、また第8図はプログラム部品のTj積および
上位データ型に対する参照の状況を示す図である。FIG. 7 is a diagram of the hierarchical structure of data types showing the fifth embodiment of the present invention, and FIG. 8 is a diagram showing the Tj product of program parts and the state of references to higher-level data types.
小さな1つの機能を実現するプロクラムの部品には、そ
の機能が作用を及ぼす対象となるデータがあり、そのデ
ータは何等かのデータ型を属性として持っている。例え
ば、「値Xをディスプレイに表示するため書き出す」と
いう部品の場合、作用を及ぼす対象となるデータはXで
あり、そのデータ型は例えば文字型である。このような
作用の対象データ型は、プログラム部品ごとに明確に決
まるので、それが共通である部品相互を集めて1グルー
プとする。ただし、利用者が名称を与えたデータ型につ
いては、機械表現の対応するデータ型の中に分類する。A program component that implements one small function has data on which that function acts, and that data has some data type as an attribute. For example, in the case of a component that "writes a value X to be displayed on a display," the data to be affected is X, and its data type is, for example, a character type. Since the target data type for such an action is clearly determined for each program component, components that have this in common are collected into one group. However, data types given names by the user are classified into the corresponding data types in machine representation.
これらのデータ型を、次に述べる規則に従って9層づけ
る。(a)最上位の階層は、「整数型」、「実数型」、
「文字型」、「プール型」の4つである。(h)配列型
、集合型、レコード型は、その構成要素の型の直下に階
層づける。(c)部分範囲型は1部分を限るもとになっ
た型の直下に階層づける。(d)スカラー型は、整数の
部分範囲型の直下に階層づける。(e)その他の利用者
定義の型は、その型に相当する(=)〜(d)の規則で
作られる型の直下に階層づける。These data types are layered into nine layers according to the rules described below. (a) The top layer is "integer type", "real number type",
There are four types: "character type" and "pool type". (h) Array types, set types, and record types shall be hierarchically placed directly under the types of their constituent elements. (c) A subrange type is hierarchically placed directly under the type that limited one part. (d) Scalar types are hierarchically placed directly under integer subrange types. (e) Other user-defined types are hierarchically placed directly below the types created using the rules (=) to (d) that correspond to those types.
第7図は、上記規則に従って作成した階層づけの例を示
すもので、階層の上位のデータ型に属するものに対して
、似た機能の部品を一部修正して、そのデータ型に対す
る操作のための部品を構成することができる。これによ
り1派生データ型を判うプログラム部品の作成が容易と
なる。Figure 7 shows an example of a hierarchy created according to the above rules, in which some parts with similar functions are modified for those belonging to data types higher in the hierarchy, and operations on that data type are performed. It is possible to configure parts for This makes it easy to create a program component that understands one derived data type.
次に1本実施例により分類されたプログラム部品を組合
せることによって、実行されるプログラム開発の状況を
詳述する。開発者は、作成したいプログラムの概略を、
単文の連鎖として記述していく。各々の単文は、あるデ
ータに対する何等かの操作を表わすか、プログラムの実
行順序を規定するかのいずれかである。システムは、こ
の概略から、あるデータに対する操作の単文を抽出し、
該当するデータ型の中に分類されているプログラム部品
群から、操作内容の一致するものを抽出する。抽出され
たプログラム部品は、そのままでは変数名称が埋められ
ておらず、このままでは他の部品と結合できないので、
プログラムの概略に基づいて単一化を行う。その後に、
実行順序を規定する単文に従って、選ばれたプログラム
部品を結合していき、完成プログラムを作成する。Next, the situation of program development executed by combining program parts classified according to this embodiment will be explained in detail. The developer outlines the program he/she wants to create.
Write it as a chain of simple sentences. Each simple statement either represents some operation on some data or defines the order of execution of a program. From this outline, the system extracts a simple sentence for an operation on certain data,
Extract those with matching operation contents from the program parts group classified into the corresponding data type. The extracted program parts do not have variable names filled in as they are, and cannot be combined with other parts as they are.
Perform unification based on the program outline. After that,
A complete program is created by combining the selected program parts according to a simple sentence that defines the execution order.
次に、第8図により、プログラム部品の蓄積形態および
新しい部品の追加の状況を述べる。実際のプログラム部
品のテキスト44は、データ型の階層の定義をしている
部分とは独立して?S積されている。各データ型には、
その型に属する部品を参照する識別子と、変数名の単一
化の方法、型に合せて部品を変形する方法が記述されて
いる。Next, with reference to FIG. 8, the accumulation form of program parts and the state of addition of new parts will be described. Is the actual program part text 44 independent of the part that defines the data type hierarchy? It is multiplied by S. Each data type has
It describes identifiers that refer to parts belonging to that type, methods for unifying variable names, and methods for transforming parts to match the type.
例えば、「整数配列」42というデータ型に居する「合
計するJという機能のプログラム部品は、そのまま整数
配列を含む構造体にも適用できる。For example, a program component with a function of ``total J'' in the data type ``integer array'' 42 can be applied as is to a structure containing an integer array.
このような場合に、2重登録をしなくても済むように、
データ型の階層を利用し、上位データ型に属するプログ
ラム部品を間接的に参照する機能が備えられている。こ
れは、該当するデータ型の分類の中に希望するプログラ
ム部品がなくても、上位データ型に分類されている部品
で同じ機能のものがあれば、それを受けつぎ、必要なら
ばその型に合せた変形を施して出力するというものであ
る。In such cases, so that you do not have to register twice,
It is equipped with a function that uses the data type hierarchy to indirectly refer to program parts that belong to higher-level data types. This means that even if the desired program component is not in the classification of the applicable data type, if there is a component with the same function that is classified as a higher data type, it will be inherited and if necessary, it can be changed to that type. The combined transformation is performed and output.
例えば、第8図において、[lI数数列列文字列の構造
体」43に作用し、配列中の整数を文字列に変換すると
いう機能のプログラム部品はない。For example, in FIG. 8, there is no program component that operates on the [lI number sequence character string structure] 43 and converts the integers in the array into character strings.
しかし、上位階層の「整数配列」42に対して参照を申
し込むことができる。「整数配列」42は、この申し込
みを受けると、さらに上位の「整数型」41に対して参
照を申し込む、「整数型J41に属している「整数を文
字列に変換する」という機能のプログラム部品44がr
′!Ii数配列」42に受は渡され、「!1数配列」4
2はこれを変形して、繰り返しを行うようにし、配列と
いう型に適合したものにする。さらに、それが「整数配
列・文字列の構造体」43に受は渡され、構造体43は
これをそのまま出力する。このようにして、構造体43
に腐する変換機能44を実現することができる。However, it is possible to request a reference to the "integer array" 42 in the upper layer. When the "integer array" 42 receives this application, it applies for reference to the higher-level "integer type" 41, and the program component with the function of "converting an integer to a string" belonging to the "integer type J41" 44 is r
′! The receiver is passed to ``Ii number array'' 42, and ``!1 number array'' 4
2 transforms this so that it repeats, and makes it suitable for the array type. Furthermore, it is passed to the "integer array/character string structure" 43, and the structure 43 outputs it as is. In this way, the structure 43
It is possible to realize a conversion function 44 that can be used in various ways.
ある型に対して、新しくプログラム部品を追加する場合
には、これとは逆に、上位階層の型に属するプログラム
部品を利用し、必要ならばその変形の方法を記述して登
録することによって行う。When adding a new program component to a certain type, conversely, use a program component that belongs to a higher-level type, and if necessary, describe and register the method for transforming it. .
本実施例においては、人の経験に頼る分類と異なって、
全ての人が行った場合にも、同一の部品は同じ場所に分
類される。従って、適切な部品の選択が効率的に行われ
、新しい部品の蓄積も容易になるため、プログラム開発
の効率が上る。In this example, unlike classification that relies on human experience,
Identical parts will be classified in the same place even if all people do it. Therefore, appropriate parts can be selected efficiently and new parts can be easily stored, thereby increasing the efficiency of program development.
このように、既存のソフトウェア部品を組み立てて、新
しいプログラムを開発する場合に、第1の実施例では、
データフローに対応する部品を選択する際に、業務内容
に応じて作成しておいた変換辞書を利用することにより
、要求仕様中には、業務用語で書かれていた入出力デー
タについて、データフローの各ノードごとに、適切なデ
ータ型を割り当て、その入出力データ型により、体系化
した部品蓄積ファイルを検索し、データフローのノード
に対応する部品を選択することができる。In this way, when developing a new program by assembling existing software components, in the first embodiment,
When selecting parts that correspond to a data flow, by using a conversion dictionary created according to the business content, input/output data written in business terminology in the requirement specifications can be An appropriate data type is assigned to each node in the data flow, and the systemized parts accumulation file can be searched using the input/output data type to select the part corresponding to the data flow node.
これにより、要求仕様作成時に、内部での計算機処理の
内容まで考えてデータ型を指定する必要はなく、そのデ
ータの種類を業務用語で記述するのみでよい。As a result, when creating requirement specifications, there is no need to designate data types by considering the details of internal computer processing, and it is only necessary to describe the type of data in business terms.
また、第2の実施例においては、プログラム部品を分類
する場合、その部品が作用を及ぼすデータの型により分
類し、関連する別のデータ型に属する部品を流用し易い
ように、データ型の派生関係に従って階層を設けたので
、各データ型に及ぼすことができる作用を制限できる。In addition, in the second embodiment, when classifying program parts, the parts are classified according to the type of data that they act on, and data type derivatives are created so that parts belonging to another related data type can be easily reused. By creating a hierarchy according to relationships, we can limit the effects that can be exerted on each data type.
また、新しく部品を追加する際に、上位階層の型に属す
る部品を利用し、必要なときには、その変形のし方を記
述して登録することにより、誰が行っても同じ部品は同
じ箇所に分類されるので、部品の蓄積が容易となり、開
発効率は向上する。In addition, when adding new parts, you can use parts that belong to higher-level types, and if necessary, describe and register how to transform them, so that no matter who does it, the same parts will be classified in the same place. This makes it easier to accumulate parts and improves development efficiency.
以上説明したように、本発明によれば、業務内容に応じ
て作成された変換辞書を利用することにより、データの
種類を業務用語で記述するだけでよいので、プログラム
開発の手順の筒軸化および効率の向上が図れ、また、適
切な部品を効率的に選択できるとともに、新しいプログ
ラム部品の追加が容易となるため、各業務ごと、あるい
は各利用者ごとに、必要な部品をM積していくことによ
り、プログラム開発効率が向上する。As explained above, according to the present invention, by using a conversion dictionary created according to the business content, it is only necessary to describe the type of data in business terminology, so the program development procedure can be streamlined. In addition, it is possible to efficiently select appropriate parts, and it is easy to add new program parts. By doing so, program development efficiency will improve.
第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:開発されたソースプロ
グラム。Fig. 1 is a functional block diagram of a program development system showing a first embodiment of the present invention, Fig. 2 is a flowchart showing the control procedure of Fig. 1, and Fig. 3 is a requirement specification written in natural language according to the present invention. An example diagram, Figure 4 is a data brooch yard created from the required specifications in Figure 3, Figure 5 is a diagram showing part of a systemized parts accumulation file, and Figure 6 is a diagram showing the second part of the present invention. FIG. 7 is a block diagram of a program development system showing an example. FIG. 7 is a diagram configuring a data type hierarchy based on this example. FIG. 8 is a diagram showing the accumulation of program parts and reference to higher-level data types. be. 1: Terminal (video data terminal), 2: Processing device (
CPU), 3: Inference rule accumulation file, 4: Conversion dictionary file, 5: Existing parts accumulation file, 6: Component selection processing section, 7: Requirement specification analysis section, data flow creation section, 9
: Conversion dictionary search unit, 10: Parts database search unit, l
1: Inference section based on rules, 13 Database for classifying and storing Niprogram parts, 14: Developed source program.
Claims (3)
て新しいプログラムを開発するために、開発プログラム
の要求仕様をルールを用いた推論により意味解析を行い
、データフローを作成して、既存の部品蓄積データベー
スからデータフローの各ノードに対応する部品を選択す
る方式において、各業務に現われる計算機処理対象物を
業務処理用語で記述してこれを体系化し、かつ個々の対
象物の特性項目として計算機処理での入出力データ型を
記述した変換辞書を有し、該変換辞書を参照することに
より、上記要求仕様中の業務用語で指定された入出力デ
ータに対し、上記データフローの各ノードごとに入出力
データ型を割当て、該入出力データ型に応じて部品蓄積
データベースを検索し、組合せる部品を決定することを
特徴とするプログラム開発のための部品選択方式。(1) In order to develop a new program by combining program parts that indicate the processing steps of a computer, the requirements specifications of the development program are semantically analyzed by reasoning using rules, a data flow is created, and existing parts are In the method of selecting parts corresponding to each node of the data flow from the accumulated database, the computer processing objects that appear in each task are described in business processing terms and systematized, and the computer processing objects are described as characteristic items of each object. It has a conversion dictionary that describes the input/output data types in the above data flow, and by referring to the conversion dictionary, input/output data specified by the business terminology in the above requirement specifications can be input/output data for each node of the above data flow. A parts selection method for program development characterized by assigning an output data type, searching a parts accumulation database according to the input/output data type, and determining parts to be combined.
作用を及ぼすデータの型を基準に分類され、各々の部品
の集合がデータ型の派生関係により階層づけられ、必要
に応じて上位階層の部品も利用されるようになつている
ことを特徴とする特許請求の範囲第1項記載のプログラ
ム開発のための部品選択方式。(2) The above parts accumulation database is classified based on the type of data that the program parts act on, and each set of parts is hierarchically organized based on the derivation relationship of the data type, and parts in higher layers are also used as necessary. A component selection method for program development according to claim 1, characterized in that the component selection method is adapted to perform program development.
される場合、上位階層の型に属する部品が利用され、必
要なときにはその変形のし方が記述登録されていること
を特徴とする特許請求の範囲第1項記載のプログラム開
発のための部品選択方式。(3) In the above-mentioned parts accumulation database, when a new part is added, a part belonging to a type in a higher hierarchy is used, and when necessary, a description of how to transform the part is registered. Part selection method for program development described in scope 1.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP22845985A JPS6288032A (en) | 1985-10-14 | 1985-10-14 | Component selection method for program development |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP22845985A JPS6288032A (en) | 1985-10-14 | 1985-10-14 | Component selection method for program development |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS6288032A true JPS6288032A (en) | 1987-04-22 |
Family
ID=16876818
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP22845985A Pending JPS6288032A (en) | 1985-10-14 | 1985-10-14 | Component selection method for program development |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS6288032A (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH032923A (en) * | 1989-05-30 | 1991-01-09 | Shimadzu Corp | Automatic programming system |
-
1985
- 1985-10-14 JP JP22845985A patent/JPS6288032A/en active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH032923A (en) * | 1989-05-30 | 1991-01-09 | Shimadzu Corp | Automatic programming system |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| 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 | |
| JPH04229370A (en) | Knowledge-based order processing methods and systems | |
| CN117608656A (en) | A hybrid front-end framework migration method based on AST and LLM | |
| US20030208367A1 (en) | Flow composition model searching | |
| JP2022534506A (en) | Processes and systems for automatic generation of functional architecture documents and software design and analysis specification documents from natural language | |
| 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 | |
| Gil | Workflow composition: Semantic representations for flexible automation | |
| Motta et al. | Solving VT in VITAL: a study in model construction and knowledge reuse | |
| Konsynski | Advances in information system design | |
| Saeki | Software specification & design methods and method engineering | |
| CN121008807A (en) | Compiler Backend Generation Enhancement Method and Apparatus Based on Large Language Model | |
| Miller et al. | A model management system to support policy analysis | |
| Ram | Deriving functional dependencies from the entity-relationship model | |
| Jarzabek | From reuse library experiences to application generation architectures | |
| JPS6288032A (en) | Component selection method for program development | |
| Monk et al. | Supporting design rationale for system evolution | |
| 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 | |
| Bouchiha | Reengineering legacy systems towards new technologies | |
| Brockman | A schema-based approach to CAD task management |