JPH04137039A - プログラム自動生成方式 - Google Patents

プログラム自動生成方式

Info

Publication number
JPH04137039A
JPH04137039A JP2256866A JP25686690A JPH04137039A JP H04137039 A JPH04137039 A JP H04137039A JP 2256866 A JP2256866 A JP 2256866A JP 25686690 A JP25686690 A JP 25686690A JP H04137039 A JPH04137039 A JP H04137039A
Authority
JP
Japan
Prior art keywords
bubble
knowledge
intermediate product
design process
supplied
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2256866A
Other languages
English (en)
Inventor
Shinichi Hoiden
真一 本位田
Takeshi Kono
河野 毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2256866A priority Critical patent/JPH04137039A/ja
Priority to US07/763,587 priority patent/US5353371A/en
Priority to EP19910308638 priority patent/EP0478255A3/en
Publication of JPH04137039A publication Critical patent/JPH04137039A/ja
Priority to US08/272,231 priority patent/US5461714A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S706/00Data processing: artificial intelligence
    • Y10S706/902Application using ai with detail of the ai system
    • Y10S706/919Designing, planning, programming, CAD, CASE
    • Y10S706/922Computer program preparation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [発明の目的] (産業上の利用分野) 本発明は代数的仕様記述言語で記述された形式的仕様か
らオブジェクト指向言語で記述されたオブジェクトを生
成してプログラムを作成するプログラム自動生成方式に
関する。
(従来の技術) 与えられた形式的仕様に基づいてオブジェクト指向言語
で記述されたオブジェクトを形式的に作成する場合、従
来では専ら次のような2つの手法が採られている。その
1つは人間が積極的に介入して、予め定められた手順に
従って前記形式的仕様を段階的に詳細化していく手法で
あり、今1つは制限された論理式に従いながら、自動証
明手法によってオブジェクトを生成していくものである
然し乍ら、前者の手法にあっては人間が介入してプログ
ラムが生成されるので、そのプログラムの品質を保証す
ることが難く、また介入の仕方によって異なったプログ
ラムが生成されると云う問題がある。この為、かなりの
熟練者でない限り、この手法によるプログラムの生成を
高品質に行うことか困難であった。また後者の方式であ
ると、未だに生成可能なプログラムのサイズが極めて小
さいので、実用レベルサイズのプログラムを作成するこ
とが困難であった。
一方、ソフトウェアの生産性の向上を目的として、ソフ
トウェアの部品化再利用の手法が提唱されている。しか
しこの部品化再利用の手法には次のような問題があり、
高生産性に対する要求を満たしているとは云い難い。即
ち、この部品化再利用の手法には ■ 類似した機能を持つ部品の効率的な検索手段が確立
していない。
■ 検索した部品の一部を修正する手順が確立していな
い。
等の不具合かあり、所望とするプログラムを効率良く作
成することかできないと云う問題がある。
(発明が解決しようとする課題) このように従来にあっては、代数的仕様記述言語で記述
された形式的仕様から、高生産性および高品質性の両方
の性質を保ちながらプログラムを生成することが非常に
困難であると云う問題があった。
本発明はこのような事情を考慮してなされたもので、そ
の目的とするところは、形式的仕様記述言語で記述され
た仕様から、所望とするプログラムを生産性良く、しか
も高品質に生成することのできるプログラム自動生成方
式を提供することにある。
[発明の構成] (課題を解決するための手段) 本発明に係るプログラム自動生成方式は、■ 代数的仕
様記述言語で記述された仕様に対して、設計プロセスの
途中で生成される代数的仕様記述言語で記述されている
中間生成物、および中間生成物から次の中間生成物への
変換知識を検索する段階的な機能展開手段。
■ 検索された設計プロセス間の類似性を判定する手段
■ 類似性の高い設計プロセス間の整合性を判断する手
段。
■ 機能の追加に対して複数の設計プロセスを融合する
手段 ■ そしてこれらの手段により新たに生成された設計プ
ロセスに基づいてオブジェクトを生成する手段 を具備し、オブジェクト指向言語で記述されたオブジェ
クトを協調させて新しい仕様や仕様の変更に対処して新
しいオブジェクトを生成するようにしたものである。
(作 用) このように本発明では、代数的仕様記述言語で記述され
た仕様を段階的に機能展開して設計プロセスの途中で生
成される中間生成物、中間生成物から次の中間生成物へ
の変換知識として求め、設計プロセス間の類似性や整合
性を判定しながら、新たな機能の追加に対して複数の設
計プロセスを融合させてオブジェクトを生成していくの
で、新たな機能の追加や環境の変化、更にはオブジェク
ト間に矛盾が生じた場合でも、オブジェクト同士を協調
させて、自れのオブジェクト、或いは他のオブジェクト
の設計プロセスを再利用するので、人間の介入なしに形
式的仕様から実用レベルサイズのプログラムを自動的に
生成することが可能となる。
(実施例) 以下、本発明の一実施例に係るプログラム自動生成方式
について説明する。
第1図は実施例方式を実現する概略的な機能構成を示す
ブロック図である。
この方式は、大略的には機能展開手段1、類似性判定手
段2.設計プロセス融合手段3.整合性判定手段4.オ
ブジェクト生成手段5に加えて、設計プロセス中間生成
物知識ベース6、および設計プロセス変換知識ベース7
を具備シて実現される。
与えられた仕様、および中間生成物は、例えばS A 
(Structured Analysis)手法にお
けるDFD(Data Flow Diagra+a)
のバブルとして定義される。
上記バブルは、第2図に示すように入力データを処理し
て出力データを生成する1つの単位である。
尚、ここで取り扱われるバブルの人出力データは、成る
形式に従って詳細に記述されているものとし、バブルの
機能については代数的仕様記述言語によって記述されて
いるものとする。
さて前記DFDは複数のバブルと、これらのバブル間で
のデータの流れとにより構成される。このようなりFD
における成る1つのバブルの詳細化は、例えば第3図に
示すように下位レベルのDFDを記述することにより実
現される。機能展開手段1は、このようにしてDFDの
バブルを、下位レベルのDFDとして記述することによ
り、与えられた形式的仕様を段階的に詳細化していく機
能として実現される。
さて類似性判定手段2は、与えられた形式的仕様に従い
、設計プロセス中間生成物知識ベース6から、上記仕様
と類似する中間生成物を検索する。
この類似の中間生成物の検索は、その検索単位であるバ
ブルの入出力データに着目してその類似性を判断するこ
とにより実現される。このバブルとしての類似度は、複
数の入出力データについて、各々のデータ間の類似度を
求め、これらの類似度を積算することにより算出される
尚、各々のデータは意味ネットワークに基づいて管理さ
れており、成るデータが他のデータに対して意味的に上
位概念であるか、或いは下位概念であるかについては、
上記意味ネットワークを辿ることにより判定される。
類似性判定手段2は、このような類似度に従い、前記設
計プロセス中間生成物知識ベース6から、与えられた仕
様(バブルの形式)に類似する中間生成物を検索するこ
とになる。
またこのようにして検索される中間生成物には、その中
間生成物から次の中間生成物である下位のDFDへの変
換知識が付随して記述されている。
さて上記変換知識には、仕様を実際に詳細化していく為
の具体的な知識である詳細化知識と、この詳細化知識の
抽象的表現に対する補足説明に相当する知識としてのメ
タ知識との2種類かある。
具体的には、上記メタ知識は、例えば (a)  多くの入出力データを持つバブルを、ヒユー
リスティックスにより各バブルの入出力データか少なく
なるように展開する。
(b)  出力データの1つに対して、機能か1つ対応
するようにバブルを展開する。
(c)  仕様を記述した等式における右辺の記述に基
づいてバブルを展開する。
(d)  性能に応してバブルを展開する。
等として与えられる。また前記詳細化知識は、例えば (A)  バブルを具体的にどのようにして展開したの
かを、代数的仕様記述を用いて記述た情報。
(B)  バブルにおける入出力データを関連付ける演
算を、代数的仕様記述を用いて記述した情報。
等として与えられる。
類似性判定手段2は、このような変換知識を上述した如
く検索される中間生成物に付随して前記設計プロセス変
換知識ベース7から検索する。
−i曇!オブジェクト生成手段5は上述した如く検索さ
れた中間生成物およびこれに付・随した変換知識と、前
述した如く与えられた仕様とに基づき、この仕様と上記
中間生成物の差異を反映したオブジェクトを生成する。
この際、オブジェクト生成手段5は上記仕様と中間生成
物との差異を次の3つに分類し、前記整合性判定手段4
および設計プロセス融合手段3と協調してオブジェクト
の生成を行う。
即ち、仕様と中間生成物との差異は ■ 中間生成物の入出力の要素が、与えられた仕様の入
出力の要素を含んでいる。
■ 与えられた仕様の入出力の要素が、中間生成物の入
出力の要素を含んでいる。
■ 与えられた仕様の入出力の要素の一部と、中間生成
物の入出力の要素の一部が等しい。
と云う3つのケースに分類される。
尚、例えばバブルAの入出力の要素が、バブルBの入出
力の要素を[含むコどは、[バブルBの入出力データと
して現われている要素の全てが、バブルAの入出力デー
タとして現われているコことを意味する。ここで取り扱
われる入出力データは、必すしも構文的に一致している
必要はなく、意味的に一致していれば良い。
またバブルAの成る要素Iの意味が、バブルBの要素J
の意味的に下位概念であるような場合であって、且つバ
ブルA、Bの他の要素か等しい場合には、バブルBはバ
ブルAを含み、逆にバブルAはバブルBを含まないこと
を意味する。
このような定義の下で上述した如く分類される3つのケ
ースにおける、それぞれの設計プロセスの再利用手法に
ついて以下に説明する。尚、ここでは便宜上、与えられ
た仕様をバブルAとし、機能展開して検索した中間生成
物をバブルBとして説明する。
■に示す[中間生成物の入出力の要素が、与えられた仕
様の入出力の要素を含んでいる]場合には、先ずバブル
Bを機能展開手段2によって展開し、−段下位のDFD
を作成する。そして展開されたDFDの中にバブルAの
要素だけからなるバブルが存在するか否かを調べる。仮
に展開した一段下位のDFDの中にバブルAの要素たけ
からなるバブルが存在しないならば、更にそのバブルを
展開し、これ以上展開できなくなるまで、つまり各バブ
ルの入出力の要素がそれぞれ1個となるまて展開する。
この時点においても展開されたDFDにバブルAの要素
たけからなるバブルかq在しないならば、検索したバブ
ルBかバブルAと意味的に離れていたと判断し、バブル
Bに変えて他のバブルCを検索する。
逆に展開したDFDの中にバブルAの要素だけからなる
バブルか存在する場合には、バブルBがバブルAに類偏
していると判断し、前記バブルBの中てバブルAに関与
するバブルのみを抽出する。
そしてオブジェクト生成手段5により、抽出したバブル
に付随する変換知識を利用して前記バブルAに対するプ
ログラムを生成する。
■に示す[与えられた仕様の入出力の要素が、中間生成
物の入出力の要素を含んでいる]場合には、先ずバブル
Aの要素からバブルBの要素を差し引き、バブルAの残
された要素を検索キーとして中間生成物を検索する。中
間生成物の検索を、バブルAの残された要素を含むバブ
ルを対象として行う。そしてこの検索により見出された
中間生成物をバブルCとする。
しかる後、上述した■の場合と同様にして上記バブルC
を展開し、バブルAにとって必要な変換知識を抽出する
。そしてバブルAについての変換知識と、求められたバ
ブルCにおける前記バブルAにとって必要な変換知識と
を、前記整合性判定手段4および設計プロセス融合手段
3によりマージする。このマージ結果に基づき、前記オ
ブジェクト生成手段5により前記バブルAに対するプロ
グラムを生成する。
■に示す[与えられた仕様の入出力の要素の一部と、中
間生成物の入出力の要素の一部が等しいコ場合には、先
ずバブルBを■の場合と同様に展開し、バブルAに関す
るバブルのみを抽出して、そのバブルに付随する変換知
識を求める。一方、上述した■の場合と同様にしてバブ
ルAの要素からバブルBの要素を差し引き、前記バブル
Aの残された要素を検索キーとして求められるバブルC
の、前記バブルAにとって必要な変換知識を検索する。
このようにして求められる2種類の変換知識を、前記整
合性判定手段4および設計プロセス融合手段3によって
マージする。そしてこのマージ結果として示される設計
プロセスを利用し、前記オブジェクト生成手段5により
前記バブルAに対するプログラムを生成する。
このようにして、与えられた仕様(バブルA)に対して
類似性の高い中間生成物(バブルB)を検索し、検索さ
れた中間生成物とその中間生成物に付随する変換知識と
に基づいて設計プロセス間の整合性を判断し、適宜複数
の設計プロセスを融合して新しい設計プロセスを生成す
ることにより、矛盾のないプログラムを高品質に、且つ
生産性良く生成することか可能となる。
尚、本発明は上述した実施例に限定されるものではない
。例えば中間生成物への変換知識として前述した詳細化
知識やメタ知識以外のものを用いることも勿論可能であ
る。また中間生成物への展開の手法も種々変形可能であ
り、要するに本発明はその要旨を逸脱しない範囲で種々
変形して実施することができる。
[発明の効果] 以上説明したように本発明によれば、新たな機能の追加
や環境の変化、更にはオブジェクト間に矛盾か生じた場
合でも、オブジェクト同士を協調させて仕様に適合した
設計プロセスを求めることかできるので、与えられた仕
様に基づく高品質なプログラムを生産性良く生成するこ
とが可能となる等の実用上多大なる効果が奏せられる。
【図面の簡単な説明】
図は本発明の一実施例に係るプログラム自動生成方式に
ついて示すもので、 第1図は実施例方式を実現する概略的な機能構成を示す
ブロック図、第2図は検索の単位である中間生成物の形
態を示す図、第3図は成るバブルを展開したときのDF
Dの形態を示す図である。 1・・・機能展開手段、2・・・類似性判定手段、3・
・プロセス融合手段、4・・・整合性判定手段、5・・
・オブジェクト生成手段、6・・・中間生成物知識ベー
ス、7・・・変換知識ベース。 出願人代理人 弁理士 鈴江武彦

Claims (1)

    【特許請求の範囲】
  1. 設計プロセスの途中で生成される中間生成物を記憶した
    中間生成物知識ベース、および中間生成物から次の中間
    生成物への変換知識を記憶した変換知識ベースを参照し
    て代数的仕様記述言語で記述された仕様に類似する中間
    生成物とその変換知識を検索する手段と、検索された中
    間生成物とその変換知識とに基づいて複数の設計プロセ
    ス間の整合性を判断する手段と、この整合性の判断結果
    に従って複数の設計プロセスを融合して新しいオブジェ
    クトを生成する手段とを具備したことを特徴とするプロ
    グラム自動生成方式。
JP2256866A 1990-09-28 1990-09-28 プログラム自動生成方式 Pending JPH04137039A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2256866A JPH04137039A (ja) 1990-09-28 1990-09-28 プログラム自動生成方式
US07/763,587 US5353371A (en) 1990-09-28 1991-09-23 Apparatus and methods for generating a program by synthesizing an object described in an object-oriented language
EP19910308638 EP0478255A3 (en) 1990-09-28 1991-09-23 Program synthesis system
US08/272,231 US5461714A (en) 1990-09-28 1994-07-08 Apparatus for synthesizing an object described in an object-oriented language on the basis of a predetermined specification

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2256866A JPH04137039A (ja) 1990-09-28 1990-09-28 プログラム自動生成方式

Publications (1)

Publication Number Publication Date
JPH04137039A true JPH04137039A (ja) 1992-05-12

Family

ID=17298506

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2256866A Pending JPH04137039A (ja) 1990-09-28 1990-09-28 プログラム自動生成方式

Country Status (3)

Country Link
US (2) US5353371A (ja)
EP (1) EP0478255A3 (ja)
JP (1) JPH04137039A (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04137039A (ja) * 1990-09-28 1992-05-12 Toshiba Corp プログラム自動生成方式
JPH06332678A (ja) * 1993-05-18 1994-12-02 Software Kouchiku Kagaku Kenkyusho:Kk 特定業務用プログラムの製造方法
JPH08234975A (ja) * 1995-02-28 1996-09-13 Fujitsu Ltd プログラム生成装置および方法
GB2302420A (en) * 1995-06-19 1997-01-15 Ibm Semantic network
US5815717A (en) * 1995-10-27 1998-09-29 Authorgenics, Inc. Application program and documentation generator system and method
JPH09134282A (ja) * 1995-11-08 1997-05-20 Hitachi Ltd プログラム作成方法
US6119049A (en) * 1996-08-12 2000-09-12 Tandon Associates, Inc. Memory module assembly using partially defective chips
US5875285A (en) * 1996-11-22 1999-02-23 Chang; Hou-Mei Henry Object-oriented data mining and decision making system
US5920725A (en) * 1997-07-02 1999-07-06 Adaptivity Inc. Run-time object-synthesis and transparent client/server updating of distributed objects using a meta server of all object descriptors
US20020188436A1 (en) * 1998-02-10 2002-12-12 Gunter Schmidt Nth- order fractal network for handling complex structures
DE19914326A1 (de) 1999-03-30 2000-10-05 Delphi 2 Creative Tech Gmbh Verfahren zur Nutzung von fraktalen semantischen Netzen für alle Arten von Datenbank-Anwendungen
DE19917592A1 (de) * 1999-04-19 2000-10-26 Delphi 2 Creative Tech Gmbh Situationsabhängig operierendes semantisches Netz n-ter Ordnung
JP2003006401A (ja) * 2001-06-26 2003-01-10 Hitachi Ltd 企業情報流処理方法と設計帳票作成方法
AU2003262015A1 (en) * 2002-09-09 2004-04-30 Catena Corporation Requirement defining method, method for developing software, method for changing requirement word, and newly defining method
US7543274B2 (en) 2003-12-22 2009-06-02 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration System and method for deriving a process-based specification
US8209657B1 (en) * 2006-04-03 2012-06-26 Bae Systems Information And Electronic Systems Integration Inc. System design combining functional decomposition and object-oriented programming
KR20140036731A (ko) * 2012-09-18 2014-03-26 한국전자통신연구원 응용 프로그램 개발 방법 및 시스템
WO2014152800A1 (en) 2013-03-14 2014-09-25 Massively Parallel Technologies, Inc. Project planning and debugging from functional decomposition
CN110287001A (zh) * 2019-06-18 2019-09-27 山东工商学院 程序合成虚拟机

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5151867A (en) * 1986-09-12 1992-09-29 Digital Equipment Corporation Method of minimizing sum-of-product cases in a heterogeneous data base environment for circuit synthesis
US5084813A (en) * 1988-04-20 1992-01-28 Kabushiki Kaisha Toshiba Rule based system for synthesizing a program suited for a target system in response to an input target system specification
JPH02259873A (ja) * 1989-03-31 1990-10-22 Hitachi Ltd 表処理プログラム合成方法
JP2592955B2 (ja) * 1989-04-04 1997-03-19 株式会社東芝 プログラム自動生成装置
JPH03116281A (ja) * 1989-09-29 1991-05-17 Toshiba Corp 論理合成装置
JP3211241B2 (ja) * 1990-07-27 2001-09-25 オムロン株式会社 近似推論装置
JPH04137039A (ja) * 1990-09-28 1992-05-12 Toshiba Corp プログラム自動生成方式

Also Published As

Publication number Publication date
US5353371A (en) 1994-10-04
US5461714A (en) 1995-10-24
EP0478255A2 (en) 1992-04-01
EP0478255A3 (en) 1993-01-07

Similar Documents

Publication Publication Date Title
JPH04137039A (ja) プログラム自動生成方式
CN107918666B (zh) 一种区块链上的数据同步方法和系统
JP6163607B2 (ja) イベント知識データベースの構築方法および装置
US8321371B2 (en) Enhanced artificial intelligence language
JPS58175074A (ja) 構文分析方式
CN111339334B (zh) 异构图数据库的数据查询方法及其系统
Verlage Multi-view modeling of software processes
CN117355852A (zh) 基于知识的装配工艺规划方法、装置和系统
CN102568295A (zh) 基于面向虚拟拆装的产品装配序列模型的教学平台
JPH07219754A (ja) 画面遷移図を用いた要求定義支援装置
KR920018579A (ko) 사용자 인터페이스 및 다수 사용자 인터페이스 유형의 컴퓨터를 운영하는 프로그래밍 시스템을 명시(Specifying)하는 방법
Zhang et al. A hybrid method for recognizing feature interactions
CN112799673B (zh) 一种网络协议数据的校核方法及装置
KR100463833B1 (ko) 컴포넌트 자동 변환 시스템 및 방법
Hirsch et al. Two graph-based techniques for software architecture reconfiguration
JPH07129382A (ja) スパイラル型オブジェクト指向のソフトウェア開発支援システムおよびソフトウェア開発方法
JPH06214776A (ja) ソフトウェア自動生成システム
JPH04148328A (ja) 状態遷移変換装置
JP2724241B2 (ja) ブロック図部品処理機能付きプログラム自動生成装置
KR20240041469A (ko) 자연어 처리 기술을 이용한 쿼리 생성 시스템 및 이를 포함하는 질의 응답 시스템
JP2007004226A (ja) マスタ同期プログラムおよびマスタ同期方法
JPH10269227A (ja) 分類データの生成方法
Ichiko et al. An entity model for conceptual design
JPH0628169A (ja) プログラム作成支援装置
JPS63132332A (ja) 表形式デ−タの合成装置