JPH06214776A - ソフトウェア自動生成システム - Google Patents

ソフトウェア自動生成システム

Info

Publication number
JPH06214776A
JPH06214776A JP5007571A JP757193A JPH06214776A JP H06214776 A JPH06214776 A JP H06214776A JP 5007571 A JP5007571 A JP 5007571A JP 757193 A JP757193 A JP 757193A JP H06214776 A JPH06214776 A JP H06214776A
Authority
JP
Japan
Prior art keywords
software
natural language
input
specifications
processing
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
JP5007571A
Other languages
English (en)
Inventor
Yoshitoshi Hamada
佐敏 浜田
Takakazu Sakurai
孝員 桜井
Susumu Kitani
進 木谷
Takafumi Fujita
隆文 藤田
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.)
Hitachi Ltd
Hitachi Information and Control Systems Inc
Original Assignee
Hitachi Ltd
Hitachi Information and Control Systems Inc
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 Hitachi Ltd, Hitachi Information and Control Systems Inc filed Critical Hitachi Ltd
Priority to JP5007571A priority Critical patent/JPH06214776A/ja
Publication of JPH06214776A publication Critical patent/JPH06214776A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】 自然言語で書かれたソフトウェア仕様を入力
として、対象とするプログラムソースを自動的に生成す
るものである。 【構成】 自然言語解析手段110、推論手段120、
編集手段130の各手段を用いて自然言語で記述された
ソフトウェア仕様を形態素解析、意味解析を通して意味
構文に変換し、意味構文の意図する内容を推論手段12
0で分析し、必要なモジュールに展開する。 【効果】 自然言語で記述されたソフトウェア仕様を入
力として扱いソフトウェア仕様をフローチャートなどの
記号化表現に置き換える必要が無いので、ソフトウェア
生産性の向上に大きく寄与すると共に、製品の信頼性の
確保、品質の確保が可能となる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ソフトウェアの自動生
成システムに関し、特に、論理的、明示的な自然言語を
用いた文章で記述されたソフトウェア仕様から対象シス
テムに対するプログラムソースを自動的に生成するソフ
トウェアの自動生成システムに関する。
【0002】
【従来の技術】ソフトウェアの開発課程を説明するモデ
ルとして、一般に広く採用されているものはウオーター
フォールモデルと呼ばれるもので、その説明するところ
では、ソフトウェア開発手順は、 (1)対象システムとして必要な機能を要求仕様として
定義する。
【0003】(2)要求仕様に定義された機能を分析
し、ソフトウェアとして必要な機能を抽出し、機能仕様
として定義する。 (3)機能仕様に定義されたシステムを、ソフトウェア
としてどう実現するかを決定し、外部設計仕様として定
義する。 (4)外部設計仕様に定義された機能モジュールを、プ
ログラムとしてどう実現するかを決定し、モジュール仕
様として定義する。
【0004】(5)モジュール仕様に定義されたプログ
ラム実現内容をソース・コードで表現する。 である。これら5段階の作業において、そこに定義され
る内容は5−>4−>3−>2−>1の順序で抽象化さ
れた概念の表現となってくる。ソフトウェアの自動生成
の問題は、この5段階のステップの出来るだけ抽象化の
進んだ段階での定義を用いて、以降の課程を自動的に実
行する事を目的としている。そして、最終的には、要求
仕様を定義すればそれを入力情報として対象となるプロ
グラムソースを生成する事が、ソフトウェア自動生成の
目的である。
【0005】従来のソフトウェア自動生成は、例えば、
特開昭62−9435号公報の様に、所定フォーマット
のプログラム内部処理図(フローチャート等)を作成
し、これを読み出して図面認識処理し、フォートラン等
の指定の高級言語に変換してプログラムソースを作成す
るもので、前記のモジュール仕様に相当するものとして
プログラム内部処理図を用いている。或いは、特開平2
−58126号公報の様にソースプログラムをソース図
形の形で入力装置より対話入力し、この入力されたソー
ス図形を変換してソースプログラムを生成する装置や、
特開平2−277126号公報の様に標準モジュールを
絵情報として作成し、システムの制御手順に従って標準
モジュールを組み合わせてシステムを構成する非標準モ
ジュールを絵情報として作成し、これらの非標準モジュ
ールをコンパイル・アセンブルしてオブジェクト・プロ
グラムモジュールを作成し、更に、これらオブジェクト
・プログラムモジュールを編集してロードモジュールを
作成する装置等が知られている。
【0006】
【発明が解決しようとする課題】これら従来のソフトウ
ェア自動生成システムにおいては、計算機が認識できる
図形情報にソフトウェア仕様を人間が置き換えて、人間
が置き換えた図形情報に従ってプログラムソースを生成
するものである。つまり、従来のソフトウェア自動生成
が対応している部分は前記ソフトウェア開発手順のステ
ップ5である。すなわち、ステップ4で作られるモジュ
ール仕様の表現方法としてフローチャート、ソース図
形、絵情報と表現は異なるが、ソフトウェア仕様をシン
ボル化し、そのシンボルを図形認識することで、そのシ
ンボルに対して約束されたソース・コードを生成するも
のである。このように、計算機が認識できるシンボルに
ソフトウェア仕様を変換する事で、自動的にソース・コ
ードを生成する事が出来るものである。
【0007】しかしながら、ソフトウェア仕様を計算機
が認識できる形に変換する作業は人間が行なわねばなら
ず、従来のソフトウェア自動生成システムの問題点であ
る。すなわち、前記ソフトウェア開発手順のステップ1
からステップ4迄のソフトウェア開発の大多数のステッ
プを人が行なわなければならない。そして、人が行なう
限り、担当した人によって持っている技術力の違いや知
識の違いによってソフトウェア仕様定義の内容に差異が
生じてしまう(「属人性」)、また人間に常に完璧な成
果を期待する事は不可能であり人為的ミスの混入は避け
られないのが現状である。
【0008】さらに、前記ソフトウェア開発手順のステ
ップ1で定義される要求仕様やステップ2で定義される
機能仕様は、通常の文章で書かれており特に専門的な図
面や記述法を用いないのが一般である。それは、要求仕
様を定義するのは一般にシステムのユーザーであり、ま
た、機能仕様を定義するのはシステムを構築する立場の
人達であり、そして、この両者の意志疎通は、要求仕様
と機能仕様によって行われるので、特に専門的な知識が
無くても理解できる表現手段を必要とする。
【0009】このようにして、従来の技術では、ソフト
ウェア開発における属人性に伴う品質確保の困難さ及び
人為的ミスの混入排除の困難さを克服できないという問
題点があった。本発明は、前記従来技術の問題に鑑みて
なされたものであって、その目的は、特に、ソフトウェ
ア開発手順における人手の介入を極力減らして自動化さ
せることであり、通常の文章で作成された機能仕様を文
章のままで入力し、文章のまま入力された機能仕様に基
づいて、プログラムソースを出力するソフトウェア自動
生成システムを提供することである。
【0010】
【課題を解決するための手段】本発明が解決しようとす
る課題は、通常の文章の形で入力されたソフトウェア仕
様を基にプログラムソースを生成しようとするものであ
る。本発明が対象にしているソフトウェア仕様を定義す
る自然言語で書かれた文章を考察してみる。ソフトウェ
ア機能を定義するものであるので、その文章は一般の文
章(手紙文とか小説など)に比べて次のような特徴があ
る。
【0011】(1)文章の構造が平明で、文学的な言い
回しや比喩的な表現がなく、物事を直接的に表現する。 (2)使われる構文の種類が少なく、ある範囲に限定さ
れたものとする事が可能である。 (3)使われる品詞は、文章が形容詞や副詞のように言
葉を修飾するような表現が無い事から名詞と動詞に限定
して考えられる。
【0012】(4)使われる名詞は、大別すると実行す
る機能を表現したものと取り扱う情報の名称を表すもの
に分類できる。 (5)使われる動詞は、機能の内容を表現するのである
から多くの種類を要するわけではなく、数10個から1
00個程度の種類である。 このような文章表現上の特徴をふまえて、従来技術の課
題を解決するために、以下に説明する3個の手段を設け
る。その1は、通常の文章で入力されたソフトウェア仕
様が定義している内容の意味を正しく抽出するための自
然言語に関する構文解析と意味解析手段である。その2
は、構文解析・意味解析によって明快に定義されたソフ
トウェア仕様をプログラムモジュールに展開するための
規則を与える推論機構と、推論機構によって得られた結
論に従ってソフトウェア仕様をプログラムモジュールに
展開する手段である。その3は、プログラムモジュール
の展開手段で展開されたプログラム仕様定義に基づい
て、標準モジュールの編集、非標準モジュールの展開を
行う仕様編集手段である。
【0013】
【作用】自然言語に対する構文解析手段は、自然語の入
力文字列は1文字毎に分割された文字列を別に用意され
ている辞書を検索する事によって単語に分割するいわゆ
る形態素解析処理を行い、形態素解析によって得られた
単語列を用いて構文辞書を検索して入力文章の構文を決
定する。構文解析によって得られた入力文章の構文形式
と使用されている述語によって文章を構成する主語、目
的語、補語を選定する事で入力文章の意味構文を決定す
る。
【0014】推論機構は、意味構文それぞれに応じて必
要となる情報定義、モジュール定義の確認及びそれらの
相関関係をチェックする。推論機構で確認された意味構
文の一つ一つに対応してモジュール展開の規則が定めら
れ、展開された意味構文がモジュール関連に展開され
る。編集手段は、前記のモジュール展開で得られたモジ
ュールの関連から使用するモジュール名称を決定し、そ
れがシステムに登録されているモジュールの時は対応す
るモジュールを抽出し、未登録の場合は名称のみのダミ
ーモジュールを抽出し、意味構文の内容と新たな登録の
要求がガイドされモジュールの定義、又は情報名称の定
義を行う。
【0015】
【実施例】以下、本発明の一実施例を図を用いて説明す
る。図1は、本発明を実現するハードウェアの1構成例
であり、キーボード等の入力装置とディスプレイ等の表
示装置を備える端末装置10、その内容を受けて処理を
行う処理装置11、並びに前記入力装置からの入力情報
及び処理装置に実行結果を記憶する記憶装置12からな
っている。
【0016】次に、本発明の具体的な動作を図2を用い
て説明する。前記端末装置10から入力された自然言語
によるソフトウェア仕様は、前記処理装置11に構築さ
れているソフトウェア自動生成装置100に入力され
る。前記ソフトウェア自動生成装置100は、概略次の
ような構成からなっている。
【0017】(a)入力される自然言語を解析し、この
意味を前記100の内部表現(例えば機械語)へ変換す
る自然言語解析手段110、(b)前記自然言語解析手
段110の解析結果を受けて、入力されたソフトウェア
仕様に定義されているモジュールの関連を判断する推論
手段120、(c)前記推論手段120の結果を用い
て、プログラムモジュールの結合を及び編集を行う編集
手段130、(d)自然言語解析で入力文章の形態素解
析を行うのに用いる単語辞書140、(e)前記形態素
解析の結果を用いて構文解析を行うのに用いる構文辞書
150、(f)前記推論手段120が推論を行うに必要
なソフトウェア仕様記述上の規則を整理・分類して記憶
しておくルール・ベース160、(g)前記推論手段1
20が推論を行った結果得られた意味構文に対応するソ
フトウェアのモジュール構造を整理・分類して記憶して
おくモジュール展開辞書170、(h)前記編集手段1
30で前記推論手段120の結果を用いてモジュールを
結合するときに参照するライブラリィ180、そして、
前記推論手段130によって結合されたプログラムモジ
ュールは、目的とするプログラムソースとしてソースフ
ァイル190を介して出力される。
【0018】前記自然言語解析手段110は、図3に示
す手順に従って後述するように自然言語解析を実行す
る。 ステップ111・・前記記憶装置12に格納されている自
然言語で記述された仕様を文章の単位で読み込む。 ステップ112・・仕様定義文章の終わりまで処理したか
どうかを判断し、処理を完了しておれば自然言語解析の
処理を終わる。
【0019】ステップ113・・1文字毎に分割された入
力文字列を、図4(b)にその内容例を示す前記単語辞
書140の検索によって、単語に分割する形態素解析を
行う。 ステップ114・・前記形態素解析の結果を受けて、図5
にその内容例を示す前記構文辞書150を参照して、入
力文章の意味を解析する意味構文解析を行う。
【0020】ステップ115・・前記意味構文解析の結果
を受けて、入力文章を意味構造に変換し、以下に行われ
る処理に用いる形で前記記憶装置12に格納する。 ステップ115の処理が終わると、再度文章の入力を行
うべくステップ111へ処理が戻される。以上の処理
を、更に具体的に説明する。具体的な例として図4
(a)に記した文章例「生産計画データを運転管理CR
Tに表示する。」を使用する。
【0021】図4(a)で示される入力文字列、「生産
計画データを運転管理CRTに表示する」が、漢字・か
な・ローマ字などの形式で入力される。前記ステップ1
13において「生」から始まる単語を、図4(b)の辞
書の見出し語から求める。見出し語「生」が存在する事
がわかると、それに続く文字列を同図の辞書情報と比較
し、「生産計画データ」の単語が切り出される。同様に
して、「を」、「運転管理CRT」、「に」、「表示す
る」を切り出す。この様な文字列から辞書を引く処理動
作の詳細については、例えば「LISPで学ぶ認知心理
学3 (財)東京大学出版会」の第28〜30頁に説明
されているものと同等で、公知の内容である。また、こ
の動作に使用する辞書の構造についても、同書の第30
〜35頁に記載されている。
【0022】次に、切り出された単語文字列は図4
(c)の接続行列と対照され、「生産管理データ」と
「を」及び「運転管理CRT」と「に」が第1項と第2
項の接続関係を満足する事が確認される。この様にし
て、単語を切り出す形態素解析が行われる。
【0023】ここで、形態素解析に使用される単語辞書
が対象となるソフトウェアに対応して整備されている事
と、入力される自然言語で記述された文章に使われてい
る言葉がこの辞書に登録されている事が前提となってい
る。ソフトウェアの開発を進める初期の段階では、対象
となるソフトウェアで取り扱う情報を整理し、その内容
をデータベースとして構築することが行なわれる。この
作業の中で、対象となるソフトウェアが取り扱う情報の
名称が明確に定義される。この情報の名称が、即ち、辞
書に定義される装置名称、情報名称、一般名称等に対応
する。この様に整理されデータベースに登録された名称
が、そのまま辞書に登録され、単語辞書を構成する。一
方、ソフトウェア機能仕様を書き表す段階で使用される
述語(動詞)は、前述した如く、せいぜい100種類程
度で表現できるので、その内容を不完全ながら予め辞書
に登録しておく。そして、ソフトウェアの処理機能を表
現する名称は、未登録の状況から、ソフトウェア機能仕
様の定義記述を開始する。ソフトウェア機能使用の記述
に関しては、一般的に使用されている日本語ワードプロ
セッサを使用するのと同じ要領で進められ、また、記述
に使用される言葉は、単語辞書を参照しながら採用され
る。したがって、事前に登録されている言葉であれば希
望した結果が表現されるが、未登録の言葉であれば入力
されたままで表現される。この段階で、入力した言葉が
未登録の言葉であれば、それを新たに登録する事でこの
問題が解消される。この様にして、ソフトウェアの仕様
を記述する上で必要となる言葉は辞書に登録されること
になり、その結果、ソフトウェア仕様記述に使用された
言葉は全て辞書に登録されることになる。
【0024】そして、新たに登録した言葉に対しては、
その品詞に従って、構文辞書、モジュール展開辞書、ル
ールベースの入力が必要となり、それ等を併せて入力す
れば本発明の実施に使用する辞書関連情報の整備が行な
われる。前記の形態素解析の結果を受けて、意味構文解
析を行う。前記形態素解析によって切り出された単語列
から、述語「表示する」の図4(b)に示される辞書の
意味条件を見ると「処理定義」となっている。図4
(b)の単語辞書の意味条件に「処理定義」とある項目
については、その述語に関連してソフトウェア処理定義
がなされている。そこで、この処理定義の指示に従っ
て、図5にその内容を示す前記構文辞書150を参照す
る。図5(a)は述語「表示する」にともなう処理の定
義内容を表現しており、述語との関連で、タイミング、
動作主、対象、場所の4個の情報が必要である事を示し
ている。
【0025】図5(a)の処理定義に、前記形態素解析
の結果を代入すると、 (1)入力文章には、タイミングの指定(名詞+の時)
が無いので、デフォルト値の「表示要求」が採用され
る。つまり、この述語「表示する」では、処理するタイ
ミングは常に表示要求時であるので指定が無くても受け
入れる事を意味している。
【0026】(2)入力文章には、動作主の指定(名詞
+が)が無いので、デフォルト値の「システム」が採用
される。つまり、この述語「表示する」では、処理する
動作主は計算機そのものであるので指定がなくても受け
入れる事を意味している。 (3)対象は、図5(a)より「名詞+助詞(を)」で
あるので、それを調べると「生産計画データ」が該当す
る。
【0027】(4)場所は、図5(a)より「名詞+助
詞(に)」であるので、それを調べると「運転管理CR
T」が該当する。 の様に解析が行われ、図4(a)の入力文章に対して図
5(b)に示すような解析結果が得られる。解析の結果
としては、図4(a)の入力文「生産計画データを運転
管理CRTに表示する」が、「表示要求の時、システム
が、生産管理データを、運転管理CRTに、表示する」
と解析された事になる。この解析結果は、一般に文章表
現の原則として使用される5W1Hの形式「何時、何処
で、誰が、何を、どうした」の形式になっている。つま
り、ソフトウェア仕様の定義として記述されている自然
言語による表現を前記の形態素解析手段及び意味構文解
析手段を用いる事で、一般的に定義できる標準的な表現
様式に変換しているのである。
【0028】この様な手順によって解析された結果は、
図5(b)の形式で前記ステップ115によって前記記
憶装置12に格納される。以上のようにして得られた前
記自然言語解析手段110の解析結果は、前記推論手段
120に供給され、図6に示す手順に従って、後述する
ようにモジュール展開が行われる。
【0029】ステップ121・・前記自然言語解析手段1
10で解析された意味構文を図5(b)の形式で読み込
む。 ステップ122・・すべての意味構文を読み込み完了すれ
ば、モジュール展開処理は完了する。 ステップ123・・意味構文の中に指定されている「述
語」に関する構文の明細情報が、図7(a)にその例を
示す前記モジュール展開辞書170に登録されている事
を調べる。
【0030】ステップ124・・述語に関する明細の検索
条件に従いプログラム実行上の明細情報が検索できるよ
うに登録されている事を、図7(b)にその例を示す前
記ルールベース160の検索規則を使って、後述する手
順に従い調べる。述語「表示する」に対応する処理展開
は、図7(a)に示されている明細を展開する事で実現
される。
【0031】「タイミング」は、デフォルトの「表示要
求」に対するモジュールIDによって明細の索引を完了
する。「動作主」は、デフォルトの「システム」に対応
する展開は自分自身となるので展開は不要となる。「対
象」は、「情報名称」をユーザー指定の条件として、I
D及びデータリストをルール検索によって決定する旨の
指示がなされている。この指示にしたがい、図7(b)
の検索ルールが参照される。「対象」に対するIDは画
面表示の場合は、画面IDであるので、画面IDの検索
ルールにユーザー指定情報を代入すると、対象オブジェ
クト「生産計画データ」の、属性「CRT表示」に、パ
ラメータ「運転管理CRT」を送り込む事で運転管理C
RTに生産計画データを表示するための画面IDが得ら
れる。同様にデータリスト検索については、対象オブジ
ェクト「生産計画データ」の、属性「表示」を参照する
事で、対応する画面に表示すべきデータのリストが得ら
れる。
【0032】「場所」は、「設備名称」をユーザー指定
の条件として、IDをルール検索によって決定する旨の
指示がされている。この指示にしたがい、図7(b)の
検索ルールが参照される。「場所」に対するIDは画面
表示の場合は、装置番号であるので、装置番号の検索ル
ールにユーザー指定情報を代入すると、対象オブジェク
ト「CRT装置」の、属性「運転管理CRT」を参照す
る事で運転管理CRTに生産計画データを表示するため
の装置番号が得られる。
【0033】この様にして、前記モジュール展開辞書1
70及びルールベース160を用いて推論を行い、モジ
ュールへの展開を実行していく。前述の説明で用いた、
オブジェクトの「生産計画データ」及び「CRT装置」
の内部構造例を図8に示す。また、この様な展開によっ
て得られたモジュール展開の構造例を図9に示す。 ステップ125・・明細情報に従ったモジュール展開が正
常に実行できたかどうかをチェックする。ステップ12
5の処理が終わると、再度構文の入力を行うべくステッ
プ111へ処理が戻される。一連の構文処理が完了すれ
ば、ステップ126へ処理が移る。
【0034】ステップ126・・前記ルールベース160
及びモジュール展開辞書170によって作成された一連
のモジュール展開内容を以下の編集手段に渡すために前
記記憶装置12に格納する。以上のようにして得られた
前記推論手段120の展開結果は、前記編集手段130
に供給され、図10に示す手順に従って、後述するよう
な編集処理が行われる。
【0035】ステップ131・・意味構文の「対象」に該
当する部分のモジュール展開内容を編集する。この時、
例に示すようにモジュールのパラメータの定義が必要な
場合には、そのパラメータ定義を含めて編集する。 ステップ132・・意味構文の「場所」に該当する部分の
モジュール展開内容を編集する。この場合にも、対象の
場合と同じようにモジュールのパラメータが定義されて
いる場合には、それをも含めて編集する。
【0036】ステップ133・・意味構文の「タイミン
グ」に該当する部分のモジュール展開内容を編集する。 ステップ134・・意味構文の中でタイミングの定義部分
に条件判断を伴う部分がある。この為に、その様な判断
を伴うのかを判断する。 ステップ135・・タイミングの判断では、モジュールと
してその内容が提示されるので、それを用いて編集を行
う。判断モジュールには、include listとして編集情報
を入れ込む形で編集するようになっているので、それに
よってモジュールを編集完了させる。
【0037】ステップ136・・前記の各ステップで編集
した結果を、コンパイラーに渡すために前記12に格納
する。 ステップ137・・前記ステップ131から136で編集
を完了したモジュール内容を対応するコンパイラーにか
けてコンパイルする。この時、すでにシステムに登録し
ているモジュール、オブジェクト等の種々の情報がライ
ブラリィに登録されており、それらを参照しながらコン
パイルを実行する。
【0038】前述した110から130の処理を全て問
題なく完了したとき、入力されたソフトウェア仕様に対
応したソースプログラムが出力され前記ソースファイル
190に格納される。しかし、前記110から130の
処理の中で処理が正しく行えないような時には、その旨
のメッセージが出力され、処理はその段階で中断され
る。
【0039】前記自然言語解析手段110では、形態素
解析、意味構文解析において単語辞書及び構文辞書に存
在しない単語及び述語を使用したときには、解析の実行
時にエラーメッセージが出力され、ソフトウェア仕様の
自動生成はその処理を中断する。この場合、新たに使用
したい言葉を辞書に登録するか、仕様定義の記述を変更
するかによってこの問題を解消する必要がある。
【0040】以下、同様に前記推論手段120及び編集
手段130の処理でも処理の続行に必要な情報に欠落が
あるとその旨のメッセージが出力され、それぞれ処理は
その時点で中断する。以上、本発明の一実施例を詳述し
たが、本発明は、前記実施例に限定されるものではな
く、特許請求の範囲に記載された本発明を逸脱すること
なく種々の設計変更を行うことが可能である。
【0041】たとえば、前記実施例は、CRTへの画面
出力を行う処理であったが、他の処理であっても単語辞
書、構文辞書、ルールベース、モジュール展開辞書、ラ
イブラリィを整備しておく事によって対応できる事は前
記説明で明確である。当然の事柄ではあるが、意味構文
で使用している「タイミング」「動作主」「対象」「場
所」の呼称の仕方、内容は対象となる述語の用途によっ
て変わるものである。
【0042】例えば、「生産順序データと生産指示デー
タを用いて生産計画データを作成する。」という表現で
あれば、前記自然言語解析手段110の処理を終えた時
点の意味構文は、図11(a)の様になり、前記推論手
段120の処理を終えた時点では、モジュール展開は図
11(b)の様になる。そして、前記編集手段130を
経て得られるプログラムソースは、図11(c)の様な
形になる。
【0043】同様に、「運転モードが自動ならば、運転
開始指令をコンベヤーに出力する。」という表現であれ
ば、前記自然言語解析手段110の処理を終えた時点の
意味構文は、図12(a)の様になり、前記推論手段1
20の処理を終えた時点では、モジュール展開は図12
(b)の様になる。そして、前記編集手段130を経て
得られるプログラムソースは、図12(c)の様な形に
なる。この例では、「〜ならば」という接続詞が現れて
おり、意味構文解析のときに、述語「出力する」のタイ
ミングを与える記述が接続詞の前に記述されていると判
断する。そして、接続詞「ならば」から、判断を実施す
る構文であることが判断される。
【0044】また、「運転中信号がONの間、運転時間
積算処理を実行する。」という表現であれば、前記自然
言語解析手段110の処理を終えた時点の意味構文は、
図13(a)の様になり、前記推論手段120の処理を
終えた時点では、モジュール展開は図13(b)の様に
なる。そして、前記編集手段130を経て得られるプロ
グラムソースは、図13(c)の様な形になる。この例
では、「〜の間」という接続詞が現れており、意味構文
解析のときに、述語「実行する」のタイミングを与える
記述が接続詞の前に記述されていると判断する。そし
て、接続詞「の間」から、繰返しを実施する構文である
ことが判断される。
【0045】以上、説明してきたように、本発明によれ
ば、意味構文の形を述語に対して定義していくことによ
り全て表現できるようにしたので、自然言語で記述され
たソフトウェア仕様を基にプログラム・ソースの自動生
成が可能となり、中間的なフローチャートの様な図式表
現への変換も必要でなく、ソフトウェアの設計者が設計
した仕様をそのまま入力情報とできるので、信頼性の高
い誤りの少ないソフトウェアの完成が可能となる。な
お、以上の実施例の説明においては、プログラミング言
語としてフォートランの表現を用いているが、他の高級
言語であっても同様に表現できるものである。
【0046】
【発明の効果】以上の説明から理解されるように、本発
明によるソフトウェア自動生成システムによれば、自然
言語で記述されたソフトウェア仕様そのものを入力とし
て目的とするプログラムソースを自動的に生成できるの
で、生成されたプログラムには人為的な要素が含まれな
くなり、したがって、品質が高く信頼性の高いプログラ
ムが得られる。
【0047】また、ソフトウェア仕様の段階からプログ
ラムソースへの生成を行うものであるので、機能仕様の
段階で既作成分に対応する場合においても、その機能全
体に既作成分を再利用することができ、より品質の高い
製品の確保が可能となるとともに、ソフトウェアの再利
用の幅が広がり、したがって、当初は抽象度の低いモジ
ュールを組み合わせる段階から順々に抽象度の高いモジ
ュールを組み合わせてシステムを完成出来るようにな
り、ソフトウェア生産の生産性の向上に大きな効果が得
られる。
【図面の簡単な説明】
【図1】 本発明の1実施例のハードウェア構成図。
【図2】 本発明の1実施例の機能ブロック図。
【図3】 本発明の中の、自然言語解析手段の動作説明
図。
【図4】 本発明で使用する、単語辞書の内容例を示す
説明図。
【図5】 本発明で使用する、構文辞書の内容例を示す
説明図。
【図6】 本発明の中の、推論手段の動作説明図。
【図7】 本発明で使用する、モジュール展開辞書並び
にルールベースの内容例を示す説明図。
【図8】 本発明の動作説明で用いる、オブジェクト情
報例の説明図。
【図9】 本発明の自動生成による、モジュール展開結
果例を示す説明図。
【図10】 本発明の中の、編集手段の動作説明図。
【図11】 本発明の自動生成によるプログラムソース
生成の他の実施例の説明図。
【図12】 本発明の自動生成によるプログラムソース
生成の他の実施例の説明図。
【図13】 本発明の自動生成によるプログラムソース
生成の他の実施例の説明図。
【符号の説明】
10 ・・・・・・・・ 端末装置 11 ・・・・・・・・ 処理装置 12 ・・・・・・・・ 記憶装置 100 ・・・・・・・ ソフトウェア自動生成装置 110 ・・・・・・・ 自然言語解析手段 120 ・・・・・・・ 推論手段 130 ・・・・・・・ 編集手段 140 ・・・・・・・ 単語辞書 150 ・・・・・・・ 構文辞書 160 ・・・・・・・ ルールベース 170 ・・・・・・・ モジュール展開辞書 180 ・・・・・・・ ライブラリィ 190 ・・・・・・・ ソースファイル 111〜115 ・・・ 自然言語解析手段の動作説明
ステップ 121〜126 ・・・ 推論手段の動作説明ステップ 131〜137 ・・・ 編集手段の動作説明ステップ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 木谷 進 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内 (72)発明者 藤田 隆文 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 ソフトウェア仕様を入力する端末装置
    と、前記入力されたソフトウェア仕様を処理する処理装
    置と、前記入力されたソフトウェア仕様並びに内部処理
    で作成された情報を格納する記憶装置を備え、自然言語
    で記述されたソフトウェア仕様を入力情報として、目的
    とするソフトウェア製品を生成するようになしたことを
    特徴とするソフトウェア自動生成システム。
  2. 【請求項2】 自然言語で入力されたソフトウェア仕様
    を単語に分解する形態素解析手段と、前記分解された単
    語を述語から構文に再構成する意味構文解析手段とによ
    って、自然言語で記述されたソフトウェア仕様に定義さ
    れている意味を解析分解する自然言語解析手段を備えた
    ことを特徴とする前記請求項1記載のソフトウェア自動
    生成システム。
  3. 【請求項3】 前記自然言語解析手段によって解析され
    たソフトウェア仕様の意味構文を参照し、構文を構成す
    る各要素が対象となる述語に対応して定まるソフトウェ
    ア仕様記述内容を展開するルールベースを備え、該ルー
    ルベースとそれに対応するモジュールの展開手順によっ
    て入力されたソフトウェア仕様に対応するソフトウェア
    モジュールの構造を生成することを特徴とする前記請求
    項2記載のソフトウェア自動生成システム。
JP5007571A 1993-01-20 1993-01-20 ソフトウェア自動生成システム Pending JPH06214776A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5007571A JPH06214776A (ja) 1993-01-20 1993-01-20 ソフトウェア自動生成システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5007571A JPH06214776A (ja) 1993-01-20 1993-01-20 ソフトウェア自動生成システム

Publications (1)

Publication Number Publication Date
JPH06214776A true JPH06214776A (ja) 1994-08-05

Family

ID=11669504

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5007571A Pending JPH06214776A (ja) 1993-01-20 1993-01-20 ソフトウェア自動生成システム

Country Status (1)

Country Link
JP (1) JPH06214776A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007257252A (ja) * 2006-03-23 2007-10-04 Hitachi Ltd ソフトウェア開発支援方法
JP2020024705A (ja) * 2018-08-08 2020-02-13 上海網曇信息諮詢有限公司 電子ファイルシステム開発定義書に基づくソフトウェアシステム作成方法
JP6949341B1 (ja) * 2021-03-10 2021-10-13 ソプラ株式会社 プログラムコード自動生成装置及びプログラム
US11461547B2 (en) 2018-09-12 2022-10-04 Fujifilm Business Innovation Corp. Non-transitory computer readable medium for generating a target program source using software specification written in a natural language

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007257252A (ja) * 2006-03-23 2007-10-04 Hitachi Ltd ソフトウェア開発支援方法
JP2020024705A (ja) * 2018-08-08 2020-02-13 上海網曇信息諮詢有限公司 電子ファイルシステム開発定義書に基づくソフトウェアシステム作成方法
US11461547B2 (en) 2018-09-12 2022-10-04 Fujifilm Business Innovation Corp. Non-transitory computer readable medium for generating a target program source using software specification written in a natural language
JP6949341B1 (ja) * 2021-03-10 2021-10-13 ソプラ株式会社 プログラムコード自動生成装置及びプログラム
WO2022190646A1 (ja) * 2021-03-10 2022-09-15 ソプラ株式会社 プログラムコード自動生成装置及びプログラム
JP2022138568A (ja) * 2021-03-10 2022-09-26 ソプラ株式会社 プログラムコード自動生成装置及びプログラム

Similar Documents

Publication Publication Date Title
US6446081B1 (en) Data input and retrieval apparatus
JP3009215B2 (ja) 自然語処理方法および自然語処理システム
US5555169A (en) Computer system and method for converting a conversational statement to computer command language
US5311429A (en) Maintenance support method and apparatus for natural language processing system
JPH06110701A (ja) コンピユータ・プログラム言語変換装置及びその方法
CN102439590A (zh) 用于自然语言文本的自动语义标注的系统和方法
Michos et al. Towards an adaptive natural language interface to command languages
JP2004021791A (ja) 自然言語による既存データの記述方法及びそのためのプログラム
JPH0567144A (ja) 前編集支援方法およびその装置
US5369573A (en) Structured document syntax management
US20040102960A1 (en) Process and system for generating knowledge code and converting knowledge code into text
JPH06259420A (ja) 文章編集支援装置
JPH06214776A (ja) ソフトウェア自動生成システム
JPH04160473A (ja) 事例再利用型翻訳方法および装置
JP2001060194A (ja) 企画支援装置、企画支援方法および企画支援プログラムを格納したコンピュータ読取り可能な記録媒体
Busemann et al. A constructive view of GPSG or how to make it work
JPH07160490A (ja) コーディング支援装置
Barzdins et al. Metamodel Specialization for Graphical Language and Editor Definition.
JP3051747B2 (ja) 機械翻訳方法及び機械翻訳システム
JP3892227B2 (ja) 機械翻訳システム
Hana The AGILE system1
JPH11259480A (ja) 文書作成装置、文書作成方法および文書作成プログラムを記憶した媒体
JPS63113631A (ja) ソフトウエア部品検索システム
JP2004240605A (ja) 文の拡大表現方法、文の拡大表現生成方法および文の拡大表現生成装置
JPH06124157A (ja) 語句入力装置およびその方法