JP2914664B2 - 自動プログラミング装置 - Google Patents

自動プログラミング装置

Info

Publication number
JP2914664B2
JP2914664B2 JP63129501A JP12950188A JP2914664B2 JP 2914664 B2 JP2914664 B2 JP 2914664B2 JP 63129501 A JP63129501 A JP 63129501A JP 12950188 A JP12950188 A JP 12950188A JP 2914664 B2 JP2914664 B2 JP 2914664B2
Authority
JP
Japan
Prior art keywords
program
design
block diagram
knowledge
test
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.)
Expired - Lifetime
Application number
JP63129501A
Other languages
English (en)
Other versions
JPH01298435A (ja
Inventor
徹 荻野
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP63129501A priority Critical patent/JP2914664B2/ja
Priority to EP19890109537 priority patent/EP0343682B1/en
Priority to DE1989623126 priority patent/DE68923126T2/de
Publication of JPH01298435A publication Critical patent/JPH01298435A/ja
Priority to US07/792,803 priority patent/US5269014A/en
Application granted granted Critical
Publication of JP2914664B2 publication Critical patent/JP2914664B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明はソフトウェア開発におけるプログラミング
をできるだけ機械によって行う自動プログラミング装置
に関する。
〔従来の技術〕 従来の自動プログラミング装置は、例えば「情報処理
学会第36回全国大会講演論文集(II)」に記載されてい
る論文「パーソナルコンピュータ上のPAD仕様記述によ
るプログラム自動生成」(論文番号3L−10)で説明され
ているようにPAD表記法などで表わしたブロック線図か
らプログラムのソースコードを自動的に生成する狭義の
自動プログラミング装置がある。又、「情報処理学会第
36回全国大会講演論文集(II)」に記載されている論文
「リアルタイムシステム開発一貫支援システム……基本
構想……」(論文番号5M−10)で説明されているように
プログラムに対する設計上の要求定義から、テストまで
の設計・製造・試験の全工程を支援または自動化する広
義の自動プログラミング装置まであった。上記した狭義
の自動プログラミング装置は広義の自動プログラミング
装置に含まれるので、ここでは、従来の自動プログラミ
ング装置例として広義の自動プログラミング装置につい
て以下に構成と動作を説明する。
第6図は上記した論文「リアルタイムシステム開発一
貫支援システム……基本構想……」の説明に基づき作成
した従来技術例のソフトウェア構成図である。第6図に
おいて、102は機能や規模についての要求仕様に基づい
て設計開始時の要求定義を分析する要求定義分析手段、
103は上記手段102の分析結果からデータフロー図,制御
フロー図,モジュール図,PAD図などのいわゆるブロック
線図を作成するブロック線図作成手段、104は上記ブロ
ック線図に基づき計算機が実行できるソースコードを自
動生成するプログラム自動生成手段、105は上記ソース
コードを用いてプログラムの単体テストを行うプログラ
ムテスト手段である。これらの各手段はソフトウェアと
してコンピュータに組み込まれているもので、ハードウ
ェアとしては、現在市場に出回っている一般的なコンピ
ュータが使用される。
次に動作について説明する。要求定義分析手段102は
機能や規模についての要求仕様に基づき実施されるわけ
であるが、従来技術例では機械による自動化は行われて
おらず、大部分人間の専門家が実施している。人間の行
う要求定義分析の内容は設計時の要求仕様を満すプログ
ラム構成をトレードオフにより決めることが主体であ
る。この要求定義分析の結果、ブロック線図作成手段10
3によりデータフロー図,制御フロー図,モジュール図,
PAD図などが作成される。これらのブロック線図作成は
完全ではないまでも機械化されている。そして作成され
たブロック線図等に基づきプログラム自動生成手段104
により要求仕様を満足する機械語のソースコード(プロ
グラム)が自動的に作成される。そして最後に上記ソー
スコード形式のプログラムについてのテストがプログラ
ムテスト手段105により実施される。このプログラムテ
ストは設計時の要求仕様を満たすものかどうかを試験す
るものであり、プログラムの実行を目で追いながらテス
ト可能なように効率化が図られている。もし要求仕様を
満足しない場合は、再度プログラミングをやり直す必要
がある。
このように、これらの設計結果の見直しを行い、不備
を指摘し改善するデザインレビュー作業は全て人手によ
り行われていたために、機械化を目的としたソフトウェ
アとしてのデザインレビュー手段が従来の装置に組み込
まれていることはなかった。さらに、設計時に行う通称
「プログラム故障モード影響解析」(略称「FMEA」:Fai
lure Mode and Effect Analysis)を実施するための手
段(ソフトウェア)も組み込まれておらず、人手によっ
ていた。
〔発明が解決しようとする課題〕
以上説明したように、従来の自動プログラミング装置
は以上のように構成されているので、ソフトウェア(プ
ログラム)の設計時に行うプログラム構成のトレードオ
フ作業、ブロック線図に基づくプログラム故障モード影
響解析作業、及び設計の見直しを行うデザインレビュー
作業は機械化されておらず、人手に頼らざるを得なかっ
た。従って多数のソフトウェア設計の専門家を必要と
し、かつ各作業に要する時間も膨大になるなどの課題が
あった。さらに、上記プログラム故障モード及びその影
響解析結果に基づくプログラムテストデータの作成も機
械化されていなかったために、設計と製造は直結されて
いるが設計と試験が直結されておらず分離されているこ
とになり、人手を介さないと設計結果を試験時に有効活
用できないなどの課題があった。
この発明は上記のような課題を解消するためになされ
たもので、プログラム設計時にプログラム構成を作成す
るトレードオフ作業,プログラム故障モード及びその影
響解析作業,およびデザインレビュー作業を機械化し、
各作業に要する時間も短縮できるとともに、設計時の設
計データが試験時に自動的に有効活用できるように、設
計と試験を直結して、テストデータの作成を自動化し、
試験の省力化と試験時間の短縮化ができ効率よくプログ
ラミングを行う自動プログラミング装置を得ることを目
的とする。
〔課題を解決するための手段〕
この発明においては、ソフトウェア要求仕様に基づ
き、プログラム構成のトレードオフを行いプログラムを
構成するコンポーネントの最適組合せを行うプログラム
構成トレードオフ手段2と、このコンポーネントの最適
組合せlの結果から信号系統図を含むブロック線図mを
作成するブロック線図作成手段3と、該ブロック線図作
成手段3の結果に基づき、設計者との対話的処理により
入力したプログラムの故障モード及びその影響の解析結
果をFMEAシートの枠組みに埋め込み解析シートnを作成
するプログラム故障モード影響解析手段4と、ブロック
線図mにより構成されるプログラムについてその動作を
確認するシミュレーションを行うシミュレーション手段
5と、コンポーネントの最適組合せl及び解析シートn
の作成過程からソフトウェアについて設計知識を獲得し
学習する学習部6aとこの設計知識を蓄積する知識ベース
部6b及びこの設計知識を使い推論を行う推論部6cとから
なるソフトウェアデザインレビュー手段6と、ブロック
線図mからプログラムのソースコードoを生成するプロ
グラム自動生成手段7と、解析シートnからプログラム
のテストルールpを生成するプログラムテストデータ自
動生成手段8と、プログラムのソースコードoに関して
該テストルールpに基づきプログラムのテストを行うプ
ログラムテスト手段9とを設けた。
〔作用〕
この発明においては、自動プログラミング装置にソフ
トウェアとして組み込まれているプログラム構成トレー
ドオフ手段2により、これから開発しようとするソフト
ウェア要求仕様に基づくプログラム構成のトレードオフ
を行い、モジュール,コンポーネントの最適組合せを決
めることができる。そして、このプログラム構成トレー
ドオフ手段2の結果である最適組合せlから信号系統図
を含むブロック線図mを、ブロック線図作成手段3によ
り作図することができる。そしてこのブロック線図mに
基づき、プログラム故障モード影響解析手段4により、
設計時に、事前にプログラムの不具合などの故障モード
を予測解析し、その影響解析を行い、解析シートnを作
成し、対策を立てておくことができる。そして、ソフト
ウェアデザインレビュー手段6により、解析シートn及
び最適組合せlの設計結果の見直しを行い、設計不備を
指摘し、改善する。
次に、プログラム故障モード及びその影響の解析シー
トnに基づき、プログラムテストデータ自動作成手段8
により、プログラムテスト時に必要なテストデータ(テ
ストルール)pを作成する。さらに、ブロック線図mに
基づき、プログラム自動生成手段7により、プログラム
のソースコードoを自動的に生成する。そしてテストデ
ータ(テストルール)pを使ってプログラムテスト手段
9によりプログラムのソースコードoのテストを行う。
以上の各作用を通じて、プログラム設計,生成(製
造)試験の作業を統合化でき,自動化/省力化できると
ともに,工期短縮を実現する。
〔実施例〕
以下、この発明の一実施例を図について説明する。第
1図はこの発明の一実施例の全体構成を示すもので、自
動プログラミング装置1に組み込まれているソフトウェ
アである。自動プログラミング装置1はハードウェアと
して現在市場に出回っている一般的なコンピュータを処
理装置として使用している。
第1図において、1は自動プログラミング装置全体で
あり、2はこの自動プログラミング装置1の中にソフト
ウェアとして組み込まれているプログラム構成トレード
オフ手段、3はこのプログラム構成トレードオフ手段2
の結果に基づき信号系統図を含むブロック線図を作成す
るブロック線図作成手段、4はこのブロック線図作成手
段3の結果に基づき、プログラムの故障モード影響解析
を実施し、故障モード影響解析シートを作成するプログ
ラム故障モード影響解析手段、5は上記ブロック線図か
ら動作確認を行うためのシミュレーションを実施するシ
ミュレーション手段、6は上記プログラム構成トレード
オフ手段2、およびプログラム故障モード影響解析手段
4の処理過程を含む結果10からソフトウェアの設計知識
獲得と学習を行う学習部6aと、この学習部6aにより生成
された知識や設計知識を蓄積する知識ベース部6bと、こ
の知識ベース部6bに蓄えられた知識を使い推論を行う推
論部6cとから成るソフトウェアデザインレビュー手段、
7は上記ブロック線図作成手段3の結果からプログラム
のソースコードを自動的に生成するプログラム自動生成
手段、8は上記プログラム故障モード影響解析手段4の
結果からプログラムテストデータを自動的に生成するプ
ログラムテストデータ自動生成手段、9は上記プログラ
ム自動生成手段7とプログラムテストデータ自動生成手
段8の結果に基づきプログラムのテストを行うプログラ
ムテスト手段である。
上記のように構成された自動プログラミング装置にお
いては、各手段2〜9が連携して動作することにより、
プログラムの設計から製作,試験までをほぼ自動的に行
うことができる。以下に各手段2〜9の作用,動作の詳
細を説明する。
一般にプログラムの構成は、サブルーチンやモジュー
ルなどと呼ばれている最小構成要素から成っている。こ
こでは以下、これら最小構成要素を部品と呼ぶことにす
る。この部品の中には、上記サブルーチンやモジュール
と呼ばれるもの以外に、知識工学分野で呼ばれているオ
ブジェクトやクラスなども部品の中に含まれる。さらに
これら部品が集まりある機能を持つプログラムの単位を
コンポーネントと呼ぶことにする。これらの部品・コン
ポーネントのデータはソフトウェアレビュー手段6の中
の知識ベース部6bに予め蓄積されている。
プログラム構成トレードオフ手段2はソフトウェア要
求仕様に基づきプログラム構成のトレードオフを行う。
このソフトウェア要求仕様はこれから構築しようとする
ソフトウェア(プログラム)に要求される機能や性能や
規模等を規定した仕様であり、この仕様と実現可能なプ
ログラム構成との間にトレードオフ(割付け分担)を行
ってできるだけ要求仕様に合った構成を決める。この構
成の決め方の大別すると次の二種類に分けて行う。即ち
まず初めに、要求仕様の中の大まかな要求機能を実現す
るために必要なプログラム機能の基本構成をトレードオ
フにより決定する。そして次に、各プログラム機能を実
現するためのより具体的な詳細構成を決める。
プログラム機能の基本構成とプログラム詳細構成をト
レードオフにより決定する場合、このプログラム構成ト
レードオフ手段2は、最適化のための評価基準パラメー
タを備え、最適化処理を行うことができる。この評価基
準パラメータとしては、プログラムの処理速度,規模,
移植性,コスト,使用実績などが含まれている。さらに
上記した最適化処理には、従来から使用されている数理
計画法の中の「動的計画法」や、知識工学分野で注目さ
れている「拘束条件解法理論」などを応用した処理アル
ゴリズムを採用している。
さらにプログラム構成トレードオフ手段2は以上説明
した構成トレードオフの動作を設計者との対話処理によ
り行う機能を備えており、以下にこの機能の動作を説明
する。
構成トレードオフを対話処理で行う場合、設計しよう
とするプログラムについて要求されるソフトウェア機能
の仕様が設計者から入力されると、デザインレビュー手
段6の中の知識ベース部6bに含まれているコンポーネン
トデータベースの中から要求仕様に合う、または類似の
コンポーネントデータを選択し、組み合せてグラフィッ
ク画面上に表示する。コンポーネントデータベースの中
には評価パラメータとして、プログラムの処理速度,規
模,移植性,コスト,入出力条件,使用実績などが含ま
れており、設計者は、要求仕様とこれらの評価パラメー
タを使って上記した最適化処理をしながら必要に応じ、
コンポーネントの組合せを対話処理により変更して、基
本構成について最適なコンポーネントの組合せlを決定
することができる。同様にして部品からなる詳細構成に
ついて部品の組合せを決定する。
次に、ブロック線図作成手段3は上記したプログラム
構成トレードオフ手段2の結果作成されたプログラム機
能基本構成及びプログラム詳細構成に基づきプログラム
ブロック線図mを作成する。ブロック線図mの中には信
号系統図なども含まれているが、一般的なブロック線図
を作図するプログラムと同様な処理動作を行うプログラ
ムである。
次に、プログラム故障モード影響解析手段4は上記プ
ログラムブロック線図mに基づき、故障モードとその影
響との解析(略称FMEA)を実施し、その解析結果を解析
(FMEA)シートnとしてまとめる動作を行うことができ
る。
上記FMEAはシステム工学的解析手法の一つとして、世
間一般に普及している設計時に行う解析手法であり、こ
の発明ではこの解析手段(FMEA)をプログラムの故障モ
ード及びその影響解析へ応用しており、ソフトウェア
(プログラム)の場合に、上記した部品やコンポーネン
トの概念を導入して、このFMEA手法の処理動作をプログ
ラムの故障モード及びその影響解析に導入している。
プログラムの設計者は、自動プログラミング装置1と
対話処理を行いながらFMEA手法を実行する。即ちグラフ
ィック上に表示された質問に対して専門家の設計者がそ
の回答を入力するような方法である。
プログラム故障モード影響解析手段4はFMEAフォーマ
ット作成プログラムと質問文発生処理プログラムとから
構成されており、以下にこれらのプログラムの動作につ
いて詳細に説明する。
(a) FMEAフォーマット作成プログラムについて このプログラムは上記したFMEA手法に基づくFMEAシー
トのフォーマット(枠組み)を作図するプログラムであ
り、一般的な表の枠組みを作図するプログラムの処理の
流れと同様な機能を持ち、自動的に作成されるもので、
第2図にこのプログラムで使用されるFMEAシートのフォ
ーマット例を示した。この図の中で、各欄21から30には
対話処理により記述されるべき内容に関して名称がつけ
られているが、これらは上記FMEA手法で一般的に採用さ
れている区分に従っている。
(b) 質問発生処理プログラムについて このプログラムは上記FMEAフォーマット作成プログラ
ムによって作成されたFMEAシートの各欄の空欄のところ
に具体的な内容を埋めて行うための質問文を発生させ、
グラフィック画面上に表示する。そしてその質問文に対
する専門家(設計者)からの回答を取り込み、FMEAシー
トの各欄に埋め込む処理を行うプログラムであり、これ
らの処理動作は、一般的な対話処理プログラムと同様な
機能である。このプログラムの処理動作をさらに詳しく
説明するために、このプログラムが処理に従って順に発
生される質問文の具体例を第3図に、フローチャートの
形で示した。この図の中で示す各質問文41から50に順に
答える形式で、専門家は回答文を自動プログラミング装
置1のキーボードから入力すると、このプログラムは上
記FMEAシートの各欄に入力された回答文を埋め込んで行
き、FMEAシート(解析シート)nを完成される働きをす
る。
さらに、FMEAシート(解析シート)nを作成する上
で、ソフトウェアデザインレビュー手段6の知識ベース
部6bに含まれている各値も引用される。
以上説明した二種類のプログラム(a),(b)から
成るプログラム故障モード影響解析手段4を使うことに
より、上記FMEA手法に基づいたFMEAシート(解析シー
ト)nの作成を、自動プログラミング装置1と専門家と
の対話処理により行うことができる。
次にシミュレーション手段5はトレードオフ処理を経
て、ブロック線図作成手段3により作成されたプログラ
ムブロック線図mに基づき、設計段階で認められた要求
仕様(以下設計仕様という)を満足する機能を達成する
ことができるかどうか動作確認も含めてプログラムの処
理動作のシミュレーションを実施するプログラムであ
り、一般的なシミュレーションプログラムと同様な処理
動作を行うプログラムである。このシミュレーションの
結果、設計仕様を満足する機能が得られていない場合
は、再び上記プログラム構成トレードオフ手段2へ戻り
プログラム構成を見直し、再度構成トレードオフを実施
し設計仕様を満す機能が得られるまでこれらの動作を繰
り返す。
次にソフトウェアデザインレビュー手段6は第1図に
示すように、学習部6a,知識ベース部6b,および推論部6c
から成り、知識ベース部6bには過去に設計された、トレ
ードオフ実績のある部品等が蓄積されている。ソフトウ
ェアデザインレビュー手段6は、次に示す三種類の機能
を備えており、各々の機能とその動作について以下に説
明する。
設計知識獲得と学習機能について 第1図に示すように、上記したプログラム構成トレー
ドオフ手段2とプログラム故障モード影響解析手段4の
処理結果10から設計知識やルールを抽出,整理し、ソフ
トウェアに関するデザインレビュー用知識を生成して、
知識ベース部6bに知識ベースとして蓄積する。
設計評価機能について 知識ベース部6bに蓄えられたソフトウェアに関するデ
ザインレビュー用知識を使って、設計の見直しを行い、
設計不備を指摘し、上記したプログラム構成トレードオ
フ手段2やプログラム故障モード影響解析手段4を使っ
た設計作業へ反映11させ、プログラムの設計の評価,改
善,確認を行う機能。
設計相談機能について 設計者からの問合せに応じて、知識ベースを知的に検
索して、設計に必要な各種情報を提示する機能。
以上、三つの機能,,はソフトウェアデザイン
レビュー手段6を構成する学習部6a,知識ベース部6b,お
よび推論部6cの連携動作により発揮することができる。
これらの各部の説明を以下に行う。
(イ)学習部6aについて 学習部6aは主として、設計知識獲得と学習を司る役目
をしており、知識ベース部6bと推論部6cを使って知的な
処理を行う。
ここで「知的」とは、「知識ベースと推論機能に基づ
き、何らかの推論をする能力を備えている」ことをさし
ている。「何らかの推論」とは、知識工学分野で一般に
定義されている推論をさしており、例えば演繹推論,帰
納推論,類似推論などである。
従って学習部6aは、これらの推論機能と知識ベースを
使って獲得した設計知識からの発見的または経験的によ
り、ソフトウェアに関するデザインレビュー用の知識
を、自動生成することができる。
ここで「発見的または経験的」とは上記した帰納推論
等による学習をさしている。さらに断片的に獲得された
知識も、それらを分類,整理し,体系/構造化して、知
識ベースへ蓄えると共に、知識不備を指摘し補う役目も
持っている。
(ロ)知識ベース部6bについて 色々な知識やプログラム用のコンポーネント,部品を
整理,編集して格納し蓄積したものが知識ベース部6bで
ある。
ここで「知識」とは次の四種類をさしており、各々に
ついて以下に説明する。
(i)過去の設計情報 今までに設計されたプログラム設計事例(部品やコン
ポーネントも含む)に関して、文字,数値,図形,画像
などで表わされる設計情報,不具合情報,チェックリス
トなど。
(ii)今回獲得した設計情報 上記したプログラム構成トレードオフ手段2、および
プログラム故障モード影響解析手段4の処理結果から獲
得した設計情報。
(iii)学習成果情報 上記(i),(ii)で獲得した設計情報から推論機能
を使って学習した結果得られたソフトウェアに関する設
計とデザインレビュー用知識。
(iv)設計モデル情報 知識工学分野では「対象モデル」とも呼ばれている設
計対象そのものを表わした情報であり、例えば、最初に
与えられた要求仕様に基づき設計されたトレードオフの
制約なく理想形の自由なもの自体を表わす情報のこと等
をさしている。以上、四種類の知識が、様々な形式で知
識ベース部6bに蓄積されている。
ここで「様々な形式」とは知識工学分野で一般に知識
表現法と呼ばれているもので、例えば、「プロダクショ
ンシステム」,「フレーム」,「黒板モデル」,「意味
ネットワーク」,「述語論理」,「オブジェクト」など
をさしている。
(ハ)推論部6cについて 推論部6cは学習部6aや知識ベース部6bから独立した機
構になっており、知識ベース部6bに蓄えられた知識を使
って推論を行う。
ここで「推論」とは、「既知の情報から意味的にはこ
れと同じかあるいはこれに含まれるが、少なくとも明示
的な形としては、これと異なる表現の情報を導き出す機
能」をさしており、一般的に使われている三段論法など
もこの推論に含まれる。
ただし、この推論部6cは三段論法だけでなく、上記し
たように、知識工学分野で一般に定義されている帰納推
論,類似推論,デフォルト推論などの各種推論機能を備
えている。
以上の説明で明らかなように、学習部6a,知識ベース
部6b,および推論部6cから成るソフトウェアデザインレ
ビュー手段6は設計知識獲得と学習機能,設計評価機
能,および設計相談機能を兼ね備えており、ソフトウェ
ア設計そのものから、更にその見直しをはじめとする設
計支援手段として役立つことがわかる。
次にプログラム自動生成手段7は、上記したブロック
線図作成手段3により作成されたブロック線図mに基づ
き、プログラムのソースコードoを生成する処理動作を
行う。上記ブロック線図mは、サブルーチンやモジュー
ルと呼ばれる部品から構成されており、これらの部品デ
ータベースに基づいて、該当するソースコードoを関連
づけて自動的に生成することができる。
次にプログラムテストデータ自動生成手段8は、上記
したプログラム故障モード影響解析手段4が行う各故障
モードの分析とそれによって引き起される影響の解析結
果からプログラムのテストデータを自動的に生成する処
理動作を行う。ここではこのプログラムのテストデータ
をテスト(診断)ルールpと呼ぶことにする。これは、
各種の不具合のケースを調べて、対応する故障を予め割
り振りしておくことになる。これらはプログラムテスト
手段9の知識データベース部に入れられて、プログラム
テストのための、診断用判定基準に相当するテストルー
ルpとなるものである。
第4図は上記プログラムテストデータ自動生成手段8
の動作を説明するための処理の流れをフローチャートで
表わしたもので、この図の中で、処理61,62,63,65は自
動的に処理されるが、64の処理のところでは、上記処理
61から63の処理過程で自動作成されたプログラム診断ル
ールの内容をチェックして、必要ならば専門家が修正す
る処理が含まれている。最終的にチェックされ、修正さ
れたプログラム診断ルールpはプログラムテスト手段9
の知識データベース部に蓄積されて、プログラムのテス
トに活用される。
次にプログラムテスト手段9は上記したプログラムテ
ストデータ自動生成手段8により作成されたプログラム
診断ルールpに基づいて、上記したプログラム自動生成
手段7により得られたプログラムのソースコードのテス
トを実施する。このプログラムテスト手段9は知識工学
や人工知能分野で「診断型エキスパートシステム」と呼
ばれているソフトウェア(プログラム)と同様な処理動
作をするもので、図示しないが知識データベース部と推
論機能部とから成っており、プログラムのテストを実施
することができる。
この知識データベース部はプログラムテスト用のプロ
グラム診断ルールpが蓄積されており、推論機能部は知
識工学や人工知能分野で通称「推論エンジン」などと呼
ばれている一般的なアルゴリズムで構成されているもの
で、いわゆる三段論法等の論法で結果を推論するアルゴ
リズムがソフトウェアで作成されており、上記診断ルー
ルpは「もしAならばBである」の集合体から診断結果
を推論するときに使用される。
以上が自動プログラミング装置1に組み込まれている
ソフトウェアとしての各手段の構成と動作/作用の詳細
な説明であるが、最後にまとめとして、各手段の関連と
その動作/作用の全体の様子を第5図のフローチャート
の形で示した。
この第5図に示すように、まず初めに、ソフトウェア
設計の理想的な要求仕様に基づきプログラグ構成トレー
ドオフ手段2により、プログラム機能の基本構成のトレ
ードオフ処理(71)が実施され、その結果に基づきブロ
ック線図作成手段3によりプログラム機能の基本ブロッ
ク図作成処理(72)が行われてプログラム機能の基本ブ
ロック図が得られる。そしてこのプログラム機能の基本
ブロック図に基づきシミュレーション手段5により、プ
ログラム機能の基本動作確認のためのプログラム機能の
基本シミュレーション処理(73)が行われ、要求機能の
基本を満足しているときは次の処理(74)へ進む。機能
の基本を満たさないときは、再び上記処理(71)へ戻り
繰り返す。次に上記プログラム機能の基本ブロック図に
基づき、プログラム故障モード影響解析手段4によりプ
ログラム機能の基本故障モード影響解析処理(74)が行
われ、その結果としてFMEAシートが作成される。
次に、これらの設計作業の見直しを行うプログラム機
能の基本デザインレビュー処理(75)がソフトウェアデ
ザインレビュー手段6により行われる。そしてこのデザ
インレビューの結果、プログラム機能の基本構成を変更
する必要が生じた場合(76)は再び上記プログラム機能
の基本構成のトレードオフ処理(71)に戻り、同様な処
理が行われる。ただし、上記プログラム機能デザインレ
ビュー処理(75)は必要に応じて各処理の後、例えば上
記プログラム機能の基本構成のトレードオフ処理(71)
の後にも実施される。
構成の変更が不要のときは次に具体的なプログラム詳
細構成のトレードオフ処理(77)へ処理動作が移行され
る。上記したプログラム機能の基本構成のトレードオフ
処理(71)と同様にして、トレードオフ処理(77)の後
にプログラム詳細構成ブロック図が作成され(78)、シ
ミュレーションが実施された(79)後、プログラム詳細
故障モード及びその影響解析結果(80)に基づき、FMEA
シートが作成される。そして同様にプログラム詳細構成
に関するデザインレビュー処理(81)が行われる。この
デザインレビュー処理(81)も必要に応じて、上記プロ
グラム詳細構成のトレードオフ処理(77)の後などにも
実行される。プログラム詳細構成の変更以外に上記した
プログラム機能の基本構成の変更が必要な場合(82)
は、再度プログラム機能の基本構成のトレードオフ処理
(71)が必要となり、再び初めの処理(71)へ戻る。
以上の処理動作により、全てのプログラム機能の基本
構成とプログラム詳細構成に関する処理が完了して、全
てのFMEAシートの作成が完了すると、次のプログラム自
動生成処理(83)へ移行し、プログラムのソースコード
が作成される。そして上記したFMEAシートに基づき、プ
ログラムテストデータ自動生成手段8によりプログラム
テストデータ自動生成処理(84)が行われプログラム診
断ルールが作成され、プログラムテスト手段9の知識デ
ータベース部へ蓄積され、最後にプログラムテスト手段
9によりプログラムのテスト処理(85)が実行され一連
の処理動作が完了する。
なお、上記実施例ではプログラムテスト手段9の知識
データベース部に蓄積される診断ルールが「もしAなら
ばBである」の形をしていることを示したが、この診断
ルールの特に限定しておらず、フレーム,黒板モデル,
意味ネットワーク,述語論理,オブジェクトなどでもよ
く、これらの混在した形でもよい。同様に上記プログラ
ムテスト手段9の推論機能部6も三段論法だけでなく、
知識工学分野で一般に定義されている帰納推論,類似推
論,デフォルト推論などの推論機能でもよい。
さらに、上記プログラムテスト手段9の結果は上記プ
ログラム構成トレードオフ手段2やプログラム故障モー
ド影響解析手段4の結果10と同様に上記ソフトウェアデ
ザインレビュー手段6へ入力されてプログラムテストの
結果がソフトウェアデザインレビュー用知識の生成に役
立つように利用されてもよい。
さらに、上記実施例で説明した手段2〜9は全てソフ
トウェアであるとして説明したが、同様な機能,性能が
得られれば、ハードウェアやファームウェアでもよく、
またこれらが混在していてもよい。
さらに、上記各手段2〜9の処理装置としてのコンピ
ュータも一般的なコンピュータを使っているが、これら
の各手段の処理ができればコンピュータの種類は特に限
定しないと共に、コンピュータの使用台数も一台に限る
ものではなく、上記各手段2〜9の処理内容に応じて、
複数台に分散してもよい。
さらに、上記プログラム構成トレードオフ手段2で使
う部品やコンポーネントのデータは上記知識ベース部6b
に含まれていることを示したが、これらの部品やコンポ
ーネントのデータは知識ベース部6b以外の別のデータベ
ースに分散して蓄積されていてもよい。
次に、上記実施例ではソフトウェアの設計,製造,試
験の全工程を含む広義のプログラミング作業の自動化装
置について説明したが、人間の行う作業を支援するソフ
トウェア開発支援装置や、半自動プログラミング装置な
どであってもよく、上記実施例と同様の効果を奏する。
〔発明の効果〕
以上のように、この発明によれば、ソフトウェアの設
計,製造,試験作業を機械化するための8種類の手段を
ソフトウェアとしてコンピュータに組み込み、各手段が
連携して動作する構成にしたので、ソフトウェアの設計
やデザインレビュー作業,プログラム作成作業,および
試験作業の省力化,自動化,高速化が得られる効果があ
る。
【図面の簡単な説明】
第1図はこの発明の実施例による全体構成図、第2図は
第1図に示したプログラム故障モード撮影解析手段によ
り作成されるFMEAシート(解析シート)のフォーマット
例の説明図、第3図は上記プログラム故障モード影響解
析手段の動作説明図、第4図は第1図に示したプログラ
ムテストデータ自動生成手段の動作説明図、第5図は自
動プログラミング装置に組み込まれている全部の手段の
一連の処理動作を説明するための図、第6図は従来の自
動プログラミング装置を説明する全体構成図である。 図中2はプログラム構成トレードオフ手段、3はブロッ
ク線図作成手段、4はプログラム故障モード影響解析手
段、5はシミュレーション手段、6はソフトウェアデザ
インレビュー手段、6aは学習部、6bは知識ベース部、6c
は推論部、7はプログラム自動生成手段、8はプログラ
ムテストデータ自動生成手段、9はプログラムテスト手
段、lは最適組合せ、mはブロック線図、nは解析シー
ト(FMEAシート)、oはソースコード、pはテストルー
ル(テストデータ)である。
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.6,DB名) G06F 9/06,9/44,11/28

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】ソフトウェア要求仕様に基づき、プログラ
    ム構成のトレードオフを行いプログラムを構成するコン
    ポーネントの最適組合せを行うプログラム構成トレード
    オフ手段と、このコンポーネントの最適組合せの結果か
    ら信号系統図を含むブロック線図を作成するブロック線
    図作成手段と、該ブロック線図作成手段の結果に基づ
    き、設計者との対話的処理により入力したプログラムの
    故障モード及びその影響の解析結果をFMEAシートの枠組
    みに埋め込み解析シートを作成するプログラム故障モー
    ド影響解析手段と、前記ブロック線図により構成される
    プログラムについてその動作を確認するシミュレーショ
    ンを行うシミュレーション手段と、前記コンポーネント
    の最適組合せ及び前記解析シートからソフトウェアにつ
    いて設計知識を獲得し学習する学習部とこの設計知識を
    蓄積する知識ベース部及びこの設計知識を使い推論を行
    う推論部とからなるソフトウェアデザインレビュー手段
    と、前記ブロック線図からプログラムのソースコードを
    生成するプログラム自動生成手段と、前記解析シートか
    らプログラムのテストルールを生成するプログラムテス
    トデータ自動生成手段と、前記プログラムのソースコー
    ドに関して該テストルールに基づきプログラムのテスト
    を行うプログラムテスト手段とを具備した自動プログラ
    ミング装置。
JP63129501A 1988-05-24 1988-05-27 自動プログラミング装置 Expired - Lifetime JP2914664B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP63129501A JP2914664B2 (ja) 1988-05-27 1988-05-27 自動プログラミング装置
EP19890109537 EP0343682B1 (en) 1988-05-27 1989-05-26 Automatic programming system
DE1989623126 DE68923126T2 (de) 1988-05-27 1989-05-26 Automatisches Programmiersystem.
US07/792,803 US5269014A (en) 1988-05-24 1991-11-15 Automatic programming system with design review capabilities

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63129501A JP2914664B2 (ja) 1988-05-27 1988-05-27 自動プログラミング装置

Publications (2)

Publication Number Publication Date
JPH01298435A JPH01298435A (ja) 1989-12-01
JP2914664B2 true JP2914664B2 (ja) 1999-07-05

Family

ID=15011044

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63129501A Expired - Lifetime JP2914664B2 (ja) 1988-05-24 1988-05-27 自動プログラミング装置

Country Status (3)

Country Link
EP (1) EP0343682B1 (ja)
JP (1) JP2914664B2 (ja)
DE (1) DE68923126T2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3206907B2 (ja) * 1990-02-22 2001-09-10 三菱電機株式会社 運用管制装置
JPH0546377A (ja) * 1991-08-08 1993-02-26 Hitachi Ltd 制御プログラム作成方法及びその作成装置
IL99927A0 (en) * 1991-11-01 1992-08-18 Ibm Israel Restriction checker generator
JP2924939B2 (ja) 1992-07-31 1999-07-26 株式会社日立製作所 制御プログラムモジュ−ルの作成方法およびその装置
GB2293669B (en) * 1994-09-30 1999-07-14 Hoskyns Technologies Ireland L A software testing apparatus
DE19837871C2 (de) 1998-08-20 2000-06-08 Manfred Broy Verfahren zum automatischen Erzeugen eines Programms
DE10057575A1 (de) * 2000-11-20 2002-05-29 Andreas Foltinek Verfahren zur automatischen Softwaregenerierung
FR2825487B1 (fr) * 2001-06-01 2003-08-29 Alliance Pour Les Technologies Procede et equipements de production de logiciel
NL1024464C2 (nl) 2003-10-06 2005-04-07 J A A A Doggen Beheer B V Werkwijze, ontwerpprogramma en uitvoeringsprogramma voor het samenstellen en uitvoeren van een computerapplicatie, alsmede gegevensdrager voorzien van ontwerpprogramma en gegevensdrager voorzien van uitvoeringsprogramma.
CN113767363B (zh) * 2019-11-08 2024-06-07 大日本印刷株式会社 软件生成装置、软件生成方法和程序产品

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
宇宙用人工知能/ロボット/オートメーションシンポジウム講演集(1987)P.103−106
第29回宇宙科学技術連合講演会講演集(1985)P.316−317

Also Published As

Publication number Publication date
DE68923126T2 (de) 1995-11-09
EP0343682A3 (en) 1990-08-22
EP0343682B1 (en) 1995-06-21
EP0343682A2 (en) 1989-11-29
JPH01298435A (ja) 1989-12-01
DE68923126D1 (de) 1995-07-27

Similar Documents

Publication Publication Date Title
US5269014A (en) Automatic programming system with design review capabilities
US5557774A (en) Method for making test environmental programs
JP2705087B2 (ja) 試験装置
CN112199086B (zh) 自动编程控制***、方法、装置、电子设备及存储介质
JPH0614320B2 (ja) 図式プログラム・テスト方法
AU2007200386B2 (en) Debugging of master documents
US5412758A (en) Flexible system for knowledge acquisition in expert system development
JPH06208592A (ja) データベースシステム用インターフェースのための自動レイアウト・ジェネレータ及びその生成方法
CN108255837B (zh) 一种sql解析器及方法
JP2914664B2 (ja) 自動プログラミング装置
Minch et al. Conceptual design of decision support systems utilizing management science models
JP3206907B2 (ja) 運用管制装置
US7757160B2 (en) Debugging of master documents
JPH07168709A (ja) プログラムジェネレータ利用仕様シミュレーション方法およびその装置
Bünder et al. Towards behavior-driven graphical user interface testing
US5471559A (en) Method and apparatus for fuzzy knowledge reasoning
Parasch et al. Development and application of a designer oriented cyclic simulator
Davis et al. Requirements language processing for the effective testing of real-time systems
JPH0850576A (ja) 視覚対話型シミュレーション装置
JP2882876B2 (ja) プログラム試験方法
JP3112623B2 (ja) プログラム生産支援装置
US20030033332A1 (en) Control/display unit page builder software tool
Bass et al. PRESTIGE: a CASE workbench for the JSD implementor
Pelzetter A declarative model for web accessibility requirements–design and implementation
CN115016773A (zh) 一种基于bs的软件开发引擎***及其构建方法