JPH0895761A - プログラム生産支援装置 - Google Patents

プログラム生産支援装置

Info

Publication number
JPH0895761A
JPH0895761A JP22692894A JP22692894A JPH0895761A JP H0895761 A JPH0895761 A JP H0895761A JP 22692894 A JP22692894 A JP 22692894A JP 22692894 A JP22692894 A JP 22692894A JP H0895761 A JPH0895761 A JP H0895761A
Authority
JP
Japan
Prior art keywords
programming language
description
lexical
module
tree structure
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.)
Granted
Application number
JP22692894A
Other languages
English (en)
Other versions
JP3112623B2 (ja
Inventor
Seiichi Funasaka
誠市 舩坂
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
Mitsubishi Electric Control Software Corp
Original Assignee
Mitsubishi Electric Corp
Mitsubishi Electric Control Software 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=16852806&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JPH0895761(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Mitsubishi Electric Corp, Mitsubishi Electric Control Software Corp filed Critical Mitsubishi Electric Corp
Priority to JP06226928A priority Critical patent/JP3112623B2/ja
Publication of JPH0895761A publication Critical patent/JPH0895761A/ja
Application granted granted Critical
Publication of JP3112623B2 publication Critical patent/JP3112623B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】 プログラム支援装置におけるプログラム生産
の事務的作業を自動化し、かつ前工程で作成されレビュ
ーされた情報を後工程の入力して流用する。 【構成】 プログラムの機能構成が記述された仕様記述
101から、機能構成図106および次の工程の入力と
なる疑似言語記述のひな形1301を自動生成する。モ
ジュールのインターフェース仕様と処理フローが記述さ
れた疑似言語記述301から、デザインレビュー用資料
307、木構造チャート403、次の工程の入力となる
プログラミング言語記述のひな形503それぞれを自動
生成する。プログラミング言語記述601から、疑似言
語記述301、木構造チャート703、モジュール仕様
書805、モジュール構成図903、シンボル一覧表1
004、警告メッセージ1102、プログラミング言語
記述601に実行追跡処理を埋め込んだ言語記述120
2それぞれを自動生成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、プログラムの生産を
支援する装置に関するものである。
【0002】
【従来の技術】図82は、例えば特開平4−11112
4号公報に示された従来のプログラム生産支援装置を示
す構成図、図83は同従来のプログラム生産支援装置の
動作を示すフローチャートである。図82において、1
501はキーボードなどのデータ入力手段、1502は
データ定義部、1503は表示部、1504は表示手
段、1505はブロック・チャート編集部、1506は
ブロック・エディタ部、1507はソースコード出力
部、1508はソースコード記録手段である。
【0003】この従来のプログラム生産支援装置の動作
について、図83のフローチャートを用いて説明する。
まず、データ入力手段1501より、ファイル名、デバ
イス・タイプなどのデータをデータ定義部1502に入
力し、表示部1503を介して表示手段1504に表示
して確認を行なう。同様にして、データ入力手段150
1より、ブロック・チャートのレイアウト情報をブロッ
ク・チャート編集部1505に入力し、表示部1503
を介して表示手段1504に表示して確認し、修正の必
要があれば同じ手順にて修正する。更に、データ入力手
段1501より、プログラムの部品内容をブロック・エ
ディタ部1506に入力し、表示部1503を介して表
示手段1504に表示して確認し、修正の必要があれば
同じ手順にて修正する。以上の作業結果に不備がある場
合は、満足のいく結果が得られるまで以上の操作を手作
業にて繰り返し行なう。しかる後に、データ定義、ブロ
ック・チャート、プログラム部品の情報を寄せ集めてソ
ースコード出力部1507に入力して編集し、その結果
をソースコード記録手段1508に記録する。こうして
得られたソースコードに不備がある場合は、満足のいく
結果が得られるまで以上全ての操作を繰り返し行なう。
【0004】
【発明が解決しようとする課題】従来のプログラム生産
支援装置は以上のように構成されているので、プログラ
ムを変更する場合には、作業者が上記作業を画面で確認
しながら繰り返して行なう必要があり、かなりの時間を
要するという問題があった。更に作業者が間違ったデー
タを入力しても、そのことを検出する手段がなかった
り、入力途中の段階では内容を確認できないなどの問題
点があった。入力に際しても設計が固まってからでなけ
れば作業に着手できず、設計途中の未完成段階では全く
入力できないという問題があった。また、このような作
業を行なう為には、グラフィック表示機能の付いた高価
な計算機が必要となり、広く全員に広めることが不可能
であった。
【0005】この発明は上記課題を解決する為になされ
たものであり、言語ベースのデータを入力とすることに
より、このデータを入力するだけで、入力データに関す
る文法チェックを自動的に行なうと共に、必要な図表を
自動的に生成する装置を得ることを目的とする。また、
前工程で作成されレビューされたデータを、後工程の入
力(ひな型)として流用できるようにすることで、前工
程のデータを正確に後工程に伝える為の装置を得ること
も目的とする。更に、全ての入力と出力をテキスト(文
字データ)にすることにより、広く一般に普及している
汎用のテキスト・エディタを用いて、データの入力およ
び編集を可能にすると共に、広く一般に普及しているC
RTおよびプリンタから図表を出力できるようにし、広
く全員に普及できる装置を得ることも目的とする。
【0006】
【課題を解決するための手段】この発明におけるプログ
ラム生産支援装置は、言語から言語もしくは言語から図
表への自動変換を主体とし、言語の正当性検査手段と図
表の自動生成手段を設けたものである。具体的には、請
求項1に記載された第1の発明に係るプログラム生産支
援装置は、字句解析手段と構文解析手段と階層構造抽出
手段および機能構成図生成手段を備え、字句解析手段が
自然言語と各機能の階層構造と種別を示す特殊記号で記
述された仕様記述を読み込みその内容を字句に分解し、
構文解析手段が字句に分解された仕様記述の構文解析を
行い、階層構造抽出手段が構文解析結果をもとに各機能
の階層構造を木構造に変換して記憶し、機能構成図生成
手段が木構造をもとに仕様記述に対応した機能構成図を
生成する構成としたものである。
【0007】請求項2に記載された第2の発明に係るプ
ログラム生産支援装置は、字句解析手段と構文解析手段
と階層構造抽出手段とディレクトリ生成手段とファイル
生成手段およびモジュール生成手段を備え、字句解析手
段が自然言語と各機能の階層構造と種別を示す特殊記号
で記述された仕様記述を読み込みその内容を字句に分解
し、構文解析手段が字句に分解された仕様記述の構文解
析を行い、階層構造抽出手段が構文解析結果をもとに各
機能の階層構造を木構造に変換して記憶し、ディレクト
リ生成手段が木構造をもとに仕様記述としての識別子の
末尾記号に従ってディレクトリを生成し、ファイル生成
手段が木構造をもとに仕様記述としての識別子の末尾記
号に従ってファイルを生成し、モジュール生成手段が木
構造をもとに仕様記述としての識別子の末尾記号に従っ
てモジュールを生成する構成としたものである。
【0008】請求項3に記載された第3の発明に係るプ
ログラム生産支援装置は、字句解析手段と構文解析手段
とインターフェース仕様抽出手段とモジュール定義・参
照抽出手段およびデザインレビュー用資料生成手段を備
え、字句解析手段が自然言語とプログラミング言語に準
じた制御構造で記述された疑似言語記述を読み込みその
内容を字句に分解し、構文解析手段が字句に分解された
疑似言語記述の構文解析を行い、インターフェース仕様
抽出手段が構文解析結果をもとに仕様記述部の各欄に記
述されたインターフェース仕様を記憶し、モジュール定
義・参照抽出手段が構文解析結果をもとにロジック記述
部に記述されたモジュールの定義・参照を記憶し、デザ
インレビュー用資料生成手段が記憶した情報をもとに
「疑似言語記述」に対応したデザインレビュー用資料を
生成する構成としたものである。
【0009】請求項4に記載された第4の発明に係るプ
ログラム生産支援装置は、字句解析手段と構文解析手段
と制御構造抽出手段および木構造チャート生成手段を備
え、字句解析手段が自然言語とプログラミング言語に準
じた制御構造で記述された疑似言語記述を読み込みその
内容を字句に分解し、構文解析手段が字句に分解された
疑似言語記述の構文解析を行い、制御構造抽出手段が構
文解析結果をもとに処理説明および制御構造を木構造に
変換して記憶し、木構造チャート生成手段が木構造をも
とに疑似言語記述に対応した木構造チャートを生成する
構成としたものである。
【0010】請求項5に記載された第5の発明に係るプ
ログラム生産支援装置は、字句解析手段と構文解析手段
と制御構造抽出手段と制御構造変換手段および処理説明
→コメント変換手段を備え、字句解析手段が自然言語と
プログラミング言語に準じた制御構造で記述された疑似
言語記述を読み込みその内容を字句に分解し、構文解析
手段が字句に分解された疑似言語記述の構文解析を行
い、制御構造抽出手段が構文解析結果をもとに処理説明
および制御構造を木構造に変換して記憶し、制御構造変
換手段が木構造をもとに疑似言語の制御構造をそれに対
応するプログラミング言語の制御構造に変換し、処理説
明→コメント変換手段が木構造をもとに疑似言語の処理
説明をプログラミング言語のコメントに変換する構成と
したものである。
【0011】請求項6に記載された第6の発明に係るプ
ログラム生産支援装置は、字句解析手段と構文解析手段
と制御構造抽出手段と制御構造変換手段およびコメント
→処理説明変換手段を備え、字句解析手段が特定のプロ
グラミング言語で記述されたプログラミング言語記述を
読み込みその内容を字句に分解し、構文解析手段が字句
に分解されたプログラミング言語記述の構文解析を行
い、制御構造抽出手段が構文解析結果をもとにプログラ
ムの制御構造およびそれに付随するコメントを木構造に
変換して記憶し、制御構造変換手段が木構造をもとにプ
ログラミング言語の制御構造をそれに対応する疑似言語
の制御構造に変換し、コメント→処理説明変換手段が木
構造をもとにプログラミング言語の文およびコメントを
疑似言語の処理説明に変換する構成としたものである。
【0012】請求項7に記載された第7の発明に係るプ
ログラム生産支援装置は、字句解析手段と構文解析手段
と制御構造抽出手段と不要情報割愛手段および木構造チ
ャート生成手段を備え、字句解析手段が特定のプログラ
ミング言語で記述されたプログラミング言語記述を読み
込みその内容を字句に分解し、構文解析手段が字句に分
解されたプログラミング言語記述の構文解析を行い、制
御構造抽出手段が構文解析結果をもとにプログラムの制
御構造とそれに付随するコメントを木構造に変換して記
憶し、不要情報割愛手段が指定に応じて木構造チャート
に反映したくない情報を木構造から削除し、木構造チャ
ート生成手段が木構造をもとにプログラミング言語記述
に対応した木構造チャートを生成する構成としたもので
ある。
【0013】請求項8に記載された第8の発明に係るプ
ログラム生産支援装置は、字句解析手段と構文解析手段
とインターフェース仕様抽出手段とモジュール定義・参
照抽出手段とモジュール名照合手段およびモジュール仕
様書生成手段を備え、字句解析手段が特定のプログラミ
ング言語で記述されたプログラミング言語記述を読み込
みその内容を字句に分解し、構文解析手段が字句に分解
されたプログラミング言語記述の構文解析を行い、イン
ターフェース仕様抽出手段が構文解析結果をもとにヘッ
ダーコメント中の各欄に記述されたインターフェース仕
様を記憶し、モジュール定義・参照抽出手段が構文解析
結果をもとにモジュールの定義・参照を木構造に変換し
て記憶し、モジュール名照合手段がヘッダーコメント中
のMODULE欄の名称が実際のモジュール名に一致している
かを照合し、モジュール仕様書生成手段が記憶した情報
をもとにプログラミング言語記述に対応したモジュール
仕様書を生成する構成としたものである。
【0014】請求項9に記載された第9の発明に係るプ
ログラム生産支援装置は、字句解析手段と構文解析手段
とモジュール定義・参照抽出手段と同一構造割愛手段お
よびモジュール構成図生成手段を備え、字句解析手段が
特定のプログラミング言語で記述されたプログラミング
言語記述を読み込みその内容を字句に分解し、構文解析
手段が字句に分解されたプログラミング言語記述の構文
解析を行い、モジュール定義・参照抽出手段が構文解析
結果をもとにモジュールの定義・参照を木構造に変換し
て記憶し、同一構造割愛手段が木構造をもとに同一構造
を木構造から削除し「〜と同じ」という情報で置換し、
モジュール構成図生成手段が木構造をもとにプログラミ
ング言語記述に対応したモジュール構成図を生成する構
成としたものである。
【0015】請求項10に記載された第10の発明に係
るプログラム生産支援装置は、字句解析手段と構文解析
手段とシンボル定義抽出手段とシンボル定義並換え手段
およびシンボル一覧表生成手段を備え、字句解析手段が
特定のプログラミング言語で記述されたプログラミング
言語記述を読み込みその内容を字句に分解し、構文解析
手段が字句に分解されたプログラミング言語記述の構文
解析を行い、シンボル定義抽出手段が構文解析結果をも
とにシンボルの定義情報を記憶し、シンボル定義並換え
手段がシンボルの定義情報を定義位置の順に並べ換え、
シンボル一覧表生成手段がシンボルの定義情報をもとに
プログラミング言語記述に対応したシンボル一覧表を生
成する構成としたものである。
【0016】請求項11に記載された第11の発明に係
るプログラム生産支援装置は、字句解析手段および特定
パターンの検出手段を備え、字句解析手段が特定のプロ
グラミング言語で記述された「プログラミング言語記
述」を読み込みその内容を字句に分解し、特定パターン
の検出手段が字句に分解されたプログラミング言語記述
中から特定の位置、例えば制御構造の条件中に位置する
ものだけを抽出しその中に特定のパターンが含まれてい
ることを検出して警告メッセージを出力する構成とした
ものである。
【0017】請求項12に記載された第12の発明に係
るプログラム生産支援装置は、字句解析手段と構文解析
手段および実行追跡処理埋込み手段を備え、字句解析手
段が特定のプログラミング言語で記述されたプログラミ
ング言語記述を読み込みその内容を字句に分解し、構文
解析手段が字句に分解されたプログラミング言語記述の
構文解析を行い、実行追跡処理埋込み手段が構文解析結
果をもとにプログラミング言語記述中の所定の位置にプ
ログラムの実行を追跡する為の実行追跡処理を埋込む構
成としたものである。
【0018】請求項13に記載された第13の発明に係
るプログラム生産支援装置は、上記第1〜12の発明を
構成する複数の手段の組のうちの2つ以上の組を組み合
わせる構成としたものである。
【0019】
【作用】この発明におけるプログラム生産支援装置は、
言語から言語への変換を主体とし、図表レベルでの変更
・修正に比べてデータの変更・修正を容易とする一方、
データが部分的に入力された段階でも各種図表を生成
し、中間的な出力結果を見ながらデータを変更・修正し
ていくことを可能とする。すなわち、第1の発明のプロ
グラム生産支援装置は、書籍の目次に準じた形式の仕様
記述を入力にすることにより、プログラムの機能構成を
示した機能構成図を自動的に生成する。
【0020】第2の発明のプログラム生産支援装置は、
書籍の目次に準じた形式の仕様記述を入力にすることに
より、プログラムを実現するに必要なディレクトリ、フ
ァイルおよびモジュールを自動的に生成する。
【0021】第3の発明のプログラム生産支援装置は、
プログラミング言語に準じた疑似言語記述を入力にする
ことにより、モジュールのデザインレビュー用資料を自
動的に生成する。
【0022】第4の発明のプログラム生産支援装置は、
プログラミング言語に準じた疑似言語記述を入力にする
ことにより、モジュールの処理フローを示す木構造をチ
ャートを自動的に生成する。
【0023】第5の発明のプログラム生産支援装置は、
プログラミング言語に準じた疑似言語記述を入力にする
ことにより、モジュールのプログラミング言語記述のひ
な形を自動的に生成する。
【0024】第6の発明のプログラム生産支援装置は、
プログラミング言語記述を入力にすることにより、プロ
グラミング言語記述からプログラミング言語記述に準じ
た疑似言語を自動的に生成する。
【0025】第7の発明のプログラム生産支援装置は、
プログラミング言語記述を入力にすることにより、プロ
グラミング言語記述からユーザ(操作者)の要求に応じ
た木構造チャートを自動的に生成する。
【0026】第8の発明のプログラム生産支援装置は、
プログラミング言語記述を入力にすることにより、ヘッ
ダーコメント中の「MODULE」欄に記述された名前に正確
に対応したモジュール仕様書を自動的に生成する。
【0027】第9の発明のプログラム生産支援装置は、
プログラミング言語記述を入力にすることにより、プロ
グラミング言語記述から実用的なモジュール構成図を自
動的に生成する。
【0028】第10の発明のプログラム生産支援装置
は、プログラミング言語記述を入力にすることにより、
プログラミング言語記述から実用的なシンボル一覧表を
自動的に生成する。
【0029】第11の発明のプログラム生産支援装置
は、プログラミング言語記述を入力にすることにより、
プログラミング言語記述から文法的には正しいが意味的
にはエラーである可能性が高い記述を自動的に検出して
警告メッセージを出力する。
【0030】第12の発明のプログラム生産支援装置
は、プログラミング言語記述を入力にすることにより、
プログラミング言語記述にプログラムの実行追跡処理を
自動的に埋め込む。
【0031】第13の発明のプログラム生産支援装置
は、プログラム生産における事務的な処理を自動化した
り、前工程で作成されレビューされた情報を後工程の入
力として流用することが可能となる。
【0032】
【実施例】以下、この発明の各実施例について、図1乃
至図81を用いて説明する。図81は、以下に記述する
実施例1〜実施例12の前提となるハードウェアを示す
構成図である。この図81において、1401は入力手
段としてのキーボード、1402は表示手段としてのデ
ィスプレイ、1403はプログラム生産支援装置の主要
構成部としての計算機、1404は計算機1403に対
する外部メモリを構成する外部記憶、1405は出力手
段としてのプリンタである。 実施例1.図1は実施例1のプログラム生産支援装置を
示す構成図、図2は実施例1におけるプログラム生産支
援装置の動作を示すフローチャート、図3および図4は
実施例1の入力である「仕様記述」の一例を示す図、図
5および図6は実施例1の出力である「機能構成図」の
一例を示す図、図7は実施例1の制御構造抽出手段によ
って変換され記憶される木構造を示す図である。
【0033】図1において、101は自然言語および各
機能の階層構造と種別が記述された「仕様記述」、10
2は仕様記述101を読み込みその内容を字句に分解す
る「字句解析手段」、103は字句に分解された仕様記
述101の構文解析を行う「構文解析手段」、104は
構文解析手段103による仕様記述101の構文解析結
果をもとに各機能の階層構造を木構造に変換して記憶す
る「階層構造抽出手段」、105は階層構造抽出手段1
04によって記憶された木構造をもとに仕様記述101
に対応した機能構成図を自動生成する「機能構成図生成
手段」、106は機能構成図生成手段105によって自
動生成された「機能構成図」である。
【0034】この実施例1におけるプログラム生産支援
装置の動作について、図2に示すフローチャートを用い
て説明する。まず、字句解析手段102は、自然言語お
よび各機能の階層構造と種別を示す特殊記号で記述され
た仕様記述101(図3および図4参照)を読み込みそ
の内容を字句に分解する(図2のステップ(イ))。次
に、構文解析手段103は、字句解析手段102によっ
て字句に分解された仕様記述101の構文解析を行う
(図2のステップ(ロ))。次に、階層構造抽出手段1
04は、構文解析手段103による仕様記述101の構
文解析結果をもとに仕様記述101内の行頭に記述され
たピリオドの数によって、各機能の階層構造(ピリオド
の数が多いほど下位構造であることを意味する)を判断
し、その情報、例えば、 .大機能 ..中機能 ...小機能 ...小機能 ..中機能 ...小機能 ...小機能 を図7に示す木構造に変換して記憶すると共に、ピリオ
ドの直後に記述されている機能概要(例えば図3および
図4中の「全機能」)を、階層構造に対応付けて記憶す
る(図2中のステップ(ハ))。次に、機能構成図生成
手段105は、階層構造抽出手段104によって記憶さ
れた木構造をもとに、仕様記述101に対応した機能構
成図106(図5および図6参照)を自動生成する(図
2中のステップ(ニ))。
【0035】この実施例1では、各機能の階層構造を示
す特殊記号としてピリオドを用いる方法を紹介したが、
これは他のいかなる記号(例えば「@」)であっても構
わない。同様に、この実施例1では、各機能の階層構造
を記憶する手段として木構造を用いる方法を紹介した
が、これは他のいかなるデータ構造(例えば「リスト構
造」)であっても構わない。
【0036】次に、従来例と比較して、この実施例1の
優れている点について説明する。この実施例1と同じ機
能を実現する従来の方法としては次の2つが考えられ
る。
【0037】第1の方法は、図形エディタなどの汎用ツ
ールを用いて、目的とする機能構成図を人間が作成する
というものである。この方法は確かに現実的ではある
が、図の作成に膨大な時間が必要(作業コストの問題)
となるだけでなく、図の書き方に個人差が出る(属人性
の問題)、ミスが入り込みやすい(作業品質の問題)、
など多くの問題がある。
【0038】第2の方法は、機能構成図を作成する為の
専用エディタを開発し提供するというものである。この
方法では、第1の方法の欠点をある程度解消することは
できるが、代わりに、専用エディタを開発するのに相当
な費用がかかる(開発コストの問題)、開発したエディ
タは機能構成図専用であり潰しが利かない(投資効果の
問題)、ユーザに専用エディタの使い方を教育する必要
がある(教育コストの問題)、といった新たな問題を誘
発する。
【0039】これに対しこの実施例1を使用した場合、
書籍の目次に準じた形式(〜章、〜節、〜項といった感
覚)の仕様記述101を入力するだけで、プログラムの
機能構成を示した機能構成図が自動的に生成されるの
で、人間が図形エディタなどを用いてこれと同等な機能
構成図を作成するのに比べ、図の作成に要する時間が大
幅に短縮されるだけでなく、図の書き方に関する個人差
が完全に是正されると共に、仕様と図との不一致が全く
無くなるという効果がある。更に、入力となる仕様記述
101は容易に再配置可能であり、必要に応じ如何よう
にでも順番を入れ替えて試行錯誤できるという効果があ
る。また、入力となる仕様記述101は単なるテキスト
であり、一般的なテキスト・エディタを用いて作成でき
るので、新たに専用エディタを開発して提供する必要が
ないばかりか、ユーザが自分の使い慣れたエディタを用
いて仕様記述101を作成できるという効果がある。こ
れは、この実施例1が低コストで実現かつ運用可能であ
ることを意味している。
【0040】以上のようにこの実施例1によれば、図1
に示すように、書籍の目次に準じた形式の仕様記述10
1を入力にすると共に、プログラム生産支援装置中に、
字句解析手段102、構文解析手段103、階層構造抽
出手段104、および機能構成図生成手段105を設け
ることにより、機能構成図106の作成に要する時間を
大幅に短縮できると共に、機能構成図106の品質を格
段に高めることができ、結果としてプログラム生産の高
品質化に大きく寄与することができる。
【0041】実施例2.図8は、実施例2のプログラム
生産支援装置を示す、図9は実施例2におけるプログラ
ム生産支援装置の動作を示すフローチャート、図10は
実施例2の出力であるディレクトリ構成の一例を示す
図、図11は実施例2の出力であるモジュールの一例を
示す図構成図である。なお、実施例2の入力である「仕
様記述」の一例としては、図3および図4に図示したも
のを使用する。
【0042】以下、図8の図1と異なる要素について説
明する。図8において、201は階層構造抽出手段10
4によって記憶された木構造をもとに仕様記述101に
従ってディレクトリを自動生成する「ディレクトリ生成
手段」、202は階層構造抽出手段104によって記憶
された木構造をもとに仕様記述101に従ってファイル
を自動生成する「ファイル生成手段」、203は階層構
造抽出手段104によって記憶された木構造をもとに仕
様記述101に従ってモジュールを自動生成する「モジ
ュール生成手段」、204は「外部記憶」、205はデ
ィレクトリ生成手段201によって外部記憶204中に
自動生成された「ディレクトリ」、206、207、2
08はファイル生成手段202によってディレクトリ2
05下に自動生成された「ファイル」、209、21
0、211はモジュール生成手段203によってファイ
ル208内に自動生成された「モジュール」である。
【0043】この実施例2におけるプログラム生産支援
装置の動作について、図9に示すフローチャートを用い
て説明する。図9において、ステップ(イ)、ステップ
(ロ)、ステップ(ハ)は、図2のそれと基本的に同じ
である。ただし、ステップ(ハ)は、ピリオドの直後に
記述されている機能概要(例えば図3および図4中の
「全機能」)を階層構造に対応付けて記憶する以外に、
ピリオドで始まる行の行末に記述されている識別子(例
えば図3および図4中の「dir_1」)、その識別子の末
尾に記述されている各機能の種別を示す特殊記号
(「/」「.c」「()」)、および、行頭がピリオドで始
まる行の次の行に記述されている機能説明(例えば図3
および図4中の「全機能に対する機能説明」)を、階層
構造に対応付けて記憶する点が異なっている。尚、この
とき階層構造に対応付けて記憶された各機能の種別を示
す特殊記号は、のちほど各機能を具現化する際に、それ
らをディレクトリ205、ファイル206〜208、モ
ジュール209〜211のいずれとして生成するかを決
定する(図9のステップ(ニ))。以下、図9の図2と
異なる動作について説明する。仕様記述101に対して
一通りの処理(木構造への変換とその記憶)が完了する
と、ディレクトリ生成手段201は、階層構造抽出手段
104によって記憶された木構造をもとに、各機能の種
別を示す特殊記号が「/」であるものについて、それに
対応して記憶された識別子を名前とするディレクトリ2
05を、外部記憶204中に自動生成する(図9のステ
ップ(ホ))。同様に、ファイル生成手段202は、階
層構造抽出手段104によって記憶された木構造をもと
に、各機能の種別を示す特殊記号が「.c」であるものに
ついて、それに対応して記憶された識別子を名前とする
ファイル206〜208(図10参照)をディレクトリ
205下に自動生成する(図9のステップ(ヘ))。同
様に、モジュール生成手段203は、階層構造抽出手段
104によって記憶された木構造をもとに、各機能の種
別を示す特殊記号が「()」であるものについて、それに
対応して記憶された識別子を名前とするモジュール20
9〜211(図11参照)をファイル208内に自動生
成する(図9のステップ(ト))。
【0044】次に、仕様記述101からモジュール20
9〜211を生成する手順を、図3と図4および図11
を用いて説明する。
【0045】前述のとおり、仕様記述101内の情報が
ディレクトリ205、ファイル206〜208、モジュ
ール209〜211のいずれとして具現化されるかは、
各機能の種別を示す特殊記号(「/」「.c」「()」)に
よって決定される。例えば、図3および図4中の ..大機能 dir_1_1/ [大機能に対する機能説明] ...中機能 file_1_1_1.c [中機能に対する機能説明] ....小機能 func_1_1_1_1() [小機能に対する機能説明] という記述は、行頭のピリオドの数によって、 大機能−中機能−小機能 という階層構造を意味すると共に、各機能の種別を示す
特殊記号によって、「「dir_1_1」という名前のディレ
クトリを生成(「/」で指示)した上で、その下に「fil
e_1_1_1.c」という名前のファイルを生成(「.c」で指
示)し、その内部に「func_1_1_1_1」という名前のモジ
ュールを生成(「()」で指示)せよ」という作業指示を
意味している。この原則により、仕様記述101から必
要なディレクトリ205、ファイル206〜208、モ
ジュール209〜211が自動的に生成される。
【0046】尚、こうして生成されたモジュール209
〜211には、仕様記述101中のピリオドで始まる行
の行末に記述されている識別子(例えば図3および図4
中の「func_1_1_1_1()」)がモジュール209〜211
内の仕様記述部(function spec)とロジック記述部(f
unction logic)の名前として、ピリオドの直後に記述
されている機能概要(例えば図3および図4中の「小機
能」)が仕様記述部のABSTRACT欄の説明として、ピリオ
ドで始まる行の次の行に記述されている機能説明(例え
ば図3および図4中の「小機能に対する機能説明」)が
仕様記述部のFUNCTION欄の説明として、それぞれ function spec func_1_1_1_1() ←仕様記述部 { ABSTRACT: 小機能 FUNCTION: 小機能に対する機能説明 NOTE : interface: ARGUMENT: RETURN : GLOBAL : } function logic func_1_1_1_1() ←ロジック記述部 { } という形式で自動的に反映される。
【0047】この実施例2では、各機能の階層構造を示
す特殊記号としてピリオドを用いる方法を紹介したが、
これは他のいかなる記号(例えば「@」)であっても構
わない。同様に、この実施例2では、各機能の階層構造
を記憶する手段として木構造を用いる方法を紹介した
が、これは他のいかなるデータ構造(例えば「リスト構
造」)であっても構わない。同様に、この実施例2で
は、各機能の種別を示す特殊記号(ディレクトリ20
5、ファイル206〜208、モジュール209〜21
1のいずれとして具現化するかを指示)として、それぞ
れ「/」「.c」「()」を用いる方法を紹介したが、これ
は他のいかなる記号(例えば「.dir」「.file」「.modu
le」)であっても構わない。同様に、この実施例2で
は、仕様記述内の情報をモジュール209〜211内に
反映する手段として、「仕様記述部」と「ロジック記述
部」という形式を用いる方法を紹介したが、これは他の
いかなる形式(例えば「表形式」)であっても構わな
い。
【0048】次に、従来例と比較して、この実施例2の
優れている点について説明する。この実施例2と同じ機
能を実現する従来の方法としては次のものが考えられ
る。
【0049】その方法とは、ディレクトリ、ファイル、
およびモジュールを生成する為の対話型ツールを開発し
提供するというものである。この方法は一見合理的に見
えるが、実施例1のところでも指摘したとおり、対話型
ツールを開発するのに相当な費用がかかる(開発コスト
の問題)、開発した対話型ツールは当該機能専用であり
潰しが利かない(投資効果の問題)、ユーザに対話型ツ
ールの使い方を教育する必要がある(教育コストの問
題)だけでなく、目的のものを作成するのに膨大な時間
がかかる(作業コストの問題)、作業のやり方に個人差
が出る(属人性の問題)、ミスが入り込みやすい(作業
品質の問題)、など多くの問題がある。
【0050】これに対しこの実施例2を使用した場合、
書籍の目次に準じた形式(〜章、〜節、〜項といった感
覚)の仕様記述101を入力するだけで、プログラムを
実現するのに必要なディレクトリ205、ファイル20
6〜208およびモジュール209〜211が自動的に
生成されるので、人間が対話型ツールを用いてこれと同
等なリソースを生成するのに比べ、これらの生成に要す
る時間が大幅に短縮されるだけでなく、作業のやり方に
関する個人差を完全に是正できると共に、前工程の設計
情報(機能構成)を後工程に忠実に伝えることができる
という効果がある。また、入力となる仕様記述101は
単なるテキストであり、一般的なテキスト・エディタを
用いて作成できるので、新たに専用エディタを開発して
提供する必要がないばかりか、ユーザが自分の使い慣れ
たエディタを用いて仕様記述101を作成できるという
効果がある。これは、この実施例2が低コストで実現か
つ運用可能であることを意味している。
【0051】以上のようにこの実施例2によれば、図8
に示すように、書籍の目次に準じた形式の仕様記述10
1を入力にすると共に、プログラム生産支援装置中に、
字句解析手段102、構文解析手段103、階層構造抽
出手段104、ディレクトリ生成手段201、ファイル
生成手段202、およびモジュール生成手段203を設
けることにより、プログラムを実現するのに必要なディ
レクトリ205、ファイル206〜208、およびモジ
ュール209〜211を自動生成できると共に、前工程
の設計情報(機能構成)を後工程に忠実に伝えることが
でき、結果としてプログラム生産の高品質化に大きく寄
与することができる。
【0052】実施例3.図12は実施例3のプログラム
生産支援装置を示す構成図、図13は実施例3における
プログラム生産支援装置の動作を示すフローチャート、
図14および図15は実施例3の入力である「疑似言語
記述」の一例を示す図、図16は実施例3の出力である
「デザインレビュー用資料」の一例を示す図である。
【0053】図12において、301はモジュールのイ
ンターフェース仕様と処理フローが記述された「疑似言
語記述」、302は疑似言語記述301を読み込んで字
句に分解する「字句解析手段」、303は字句に分解さ
れた疑似言語記述301の構文解析を行なう「構文解析
手段」、304は構文解析手段303による疑似言語記
述301の構文解析結果をもとに仕様記述部の各欄に記
述されたインターフェース仕様を記憶する「インターフ
ェース仕様抽出手段」、305は構文解析手段303に
よる疑似言語記述301の構文解析結果をもとにロジッ
ク記述部に記述されたモジュールの定義・参照を記憶す
る「モジュール定義・参照抽出手段」、306はインタ
ーフェース仕様抽出手段304およびモジュール定義・
参照抽出手段305によって記憶された情報をもとに疑
似言語記述301に対応したデザインレビュー用資料を
自動生成する「デザインレビュー用資料生成手段」、3
07はデザインレビュー用資料生成手段306によって
自動生成された「デザインレビュー用資料」である。
【0054】この実施例3におけるプログラム生産支援
装置の動作について、図13に示すフローチャートを用
いて説明する。
【0055】まず、字句解析手段302は、モジュール
のインターフェース仕様と処理フローが記述された疑似
言語記述301(図14および図15参照)を読み込み
その内容を字句に分解する(図13のステップ
(イ))。次に、構文解析手段303は、字句解析手段
302によって字句に分解された疑似言語記述301の
構文解析を行なう(図13のステップ(ロ))。次に、
インターフェース仕様抽出手段304は、構文解析手段
303による疑似言語記述301の構文解析結果をもと
に、疑似言語記述301内の仕様記述部(function spe
c)の先頭に記述されているモジュール名(例えば図1
4および図15中の「main」)、ABSTRACT欄に記述され
ている機能概要(例えば図14および図15中の「モジ
ュールの概要」)、FUNCTION欄に記述されている機能説
明(例えば図14および図15中の「モジュールの機
能」)、NOTE欄に記述されている備考(例えば図14お
よび図15中の「モジュールを使う際の注意事項」)、
ARGUMENT欄に記述されている仮引数(例えば図14およ
び図15中の「IN int argument_1 仮引数の説
明」)、GLOBAL欄に記述されている大域変数(例えば図
14および図15中の「IN int global_1 大域変数
の説明」)、RETURN欄に記述されている戻り値(例えば
図14および図15中の「0 戻り値の説明」)を抽出
して記憶する(図13のステップ(ハ))。次に、モジ
ュール定義・参照抽出手段305は、構文解析手段30
3による疑似言語記述301の構文解析結果をもとに、
疑似言語記述301内のロジック記述部(function log
ic)の先頭に記述されているモジュールの定義(例えば
図14および図15中の「function logic main {
・・・ }」)と、ロジック記述部(function logic)中
に記述されているモジュールの参照(例えば図14およ
び図15中の「××を××する[function_1]」)を抽出
して記憶する(図13のステップ(ニ))。次に、デザ
インレビュー用資料生成手段306は、インターフェー
ス仕様抽出手段304および、モジュール定義・参照抽
出手段305によって記憶された情報をもとに、疑似言
語記述301に対応したデザインレビュー用資料307
(図16参照)を自動生成する(図13のステップ
(ホ))。
【0056】この実施例3では、モジュールのインター
フェース仕様と処理フローを記述する手段として、C言
語に準じた疑似言語を用いる方法を紹介したが、これは
他のいかなるプログラミング言語(例えば「Ada」)に
準じたものであっても構わない。同様に、この実施例3
では、モジュールの処理フローの階層構造を記述する手
段として、疑似言語のブロック構造(例えば図14およ
び図15中の「{・・・}」)を用いる方法を紹介した
が、これは他のいかなる方法(例えばbegin文とend文で
下位構造を囲む)であっても構わない。 (注1)疑似言語とは、プログラミング言語の制御構造
と自然言語の文章が混在する設計用の仮想言語を意味す
る。 (注2)C言語とは、AT&Tベル研究所で開発され、ANSI
(American NationalStandards Institute)で標準化さ
れたプログラミング言語を意味する。 (注3)Adaとは米国防総省で開発されたプログラミン
グ言語のことである。
【0057】次に、従来例と比較して、この実施例3の
優れている点について説明する。この実施例3と同じ機
能を実現する従来の方法としては次の2つが考えられ
る。
【0058】第1の方法は、ワープロなどの汎用ツール
を用いて、目的とするデザインレビュー用資料を人間が
作成するというものである。この方法は確かに現実的で
はあるが、デザインレビュー用資料の作成に膨大な時間
が必要(作業コストの問題)となるだけでなく、デザイ
ンレビュー用資料の形式に個人差が出る(属人性の問
題)、ミスが入り込みやすい(作業品質の問題)、など
多くの問題がある。
【0059】第2の方法は、デザインレビュー用資料を
作成する為の専用エディタを開発し提供するというもの
である。この方法では、第1の方法の欠点をある程度解
消することができるが、代わりに、専用エディタを開発
するのに相当な費用がかかる(開発コストの問題)、開
発したエディタはデザインレビュー用資料専用であり潰
しが利かない(投資効果の問題)、ユーザに専用エディ
タの使い方を教育する必要がある(教育コストの問
題)、といった新たな問題を誘発する。
【0060】これに対しこの実施例3を使用した場合、
プログラミング言語に準じた疑似言語記述を入力するだ
けで、モジュールのデザインレビュー用資料307が自
動的に生成されるので、人間がワープロなどを用いてこ
れと同等なデザインレビュー用資料を作成するのに比
べ、デザインレビュー用資料307の作成に要する時間
が大幅に短縮されるだけでなく、デザインレビュー用資
料307の形式に関する個人差が完全に是正されると共
に、モジュールの仕様とデザインレビュー用資料307
との不一致が完全になくなるという効果がある。また、
入力となる疑似言語記述301は単なるテキストであ
り、一般的なテキスト・エディタを用いて作成できるの
で、新たに専用エディタを開発して提供する必要がない
ばかりか、ユーザが自分の使い慣れたエディタを用いて
疑似言語記述301を作成できるという効果がある。こ
れは、この実施例3が低コストで実現かつ運用可能であ
ることを意味している。
【0061】以上のようにこの実施例3によれば、図1
2に示すように、プログラミング言語に準じた疑似言語
記述301を入力にすると共に、プログラム生産支援装
置中に、字句解析手段302、構文解析手段303、イ
ンターフェース仕様抽出手段304、モジュール定義・
参照抽出手段305およびデザインレビュー用資料生成
手段306を設けることにより、デザインレビュー用資
料307の作成に要する時間を大幅に短縮できると共
に、デザインレビュー用資料307の品質を格段に高め
ることができ、結果としてプログラム生産の高品質化に
大きく寄与することができる。
【0062】実施例4.図17は実施例4のプログラム
生産支援装置を示す構成図、図18は実施例4における
プログラム生産支援装置の動作を示すフローチャート、
図19は実施例4の出力である「木構造チャート」の一
例を示す図、図20は実施例4の制御構造抽出手段によ
って変換され記憶される木構造の一例を示す図、図21
は実施例4の木構造チャート生成手段によって生成され
る木構造チャートの一例を示す図、図22は実施例4の
制御構造抽出手段によって変換され記憶される上記とは
別の木構造の一例を示す図、図23は実施例4の木構造
チャート生成手段によって生成される上記とは別の木構
造チャートの一例を示す図である。なお、この実施例4
の入力である「疑似言語記述」の一例としては、図14
および図15に図示したものを使用する。
【0063】以下、図17の図12と異なる要素につい
て説明する。図17において、401は構文解析手段3
03による疑似言語記述301の構文解析結果をもとに
疑似言語記述301のロジック記述部に記述された処理
説明および制御構造を木構造に変換して記憶する「制御
構造抽出手段」、402は制御構造抽出手段401によ
って記憶された木構造をもとに疑似言語記述301に対
応した木構造チャートを自動生成する「木構造チャート
生成手段」、403は木構造チャート生成手段402に
よって自動生成された「木構造チャート」である。
【0064】この実施例4におけるプログラム生産支援
装置の動作について、図18に示すフローチャートを用
いて説明する。図18において、ステップ(イ)、ステ
ップ(ロ)は図13のそれと同じである。以下、図18
の図13と異なる動作について説明する。まず、制御構
造抽出手段401は、構文解析手段303による疑似言
語記述301の構文解析結果をもとに、疑似言語記述3
01のロジック記述部(function logic)に記述された
処理説明(例えば図14および図15中の「// ××を
××する」)および制御構造(例えば図14および図1
5中の「if (・・・) {・・・}」)を木構造に変換して
記憶する(図18のステップ(ハ))。次に、木構造チ
ャート生成手段402は、制御構造抽出手段401によ
って記憶された木構造をもとに、疑似言語記述301に
対応した木構造チャート403(図19参照)を自動生
成する(図18のステップ(ニ))。
【0065】次に、制御構造抽出手段401および木構
造チャート生成手段402が、疑似言語記述301から
木構造チャート403を生成する手順を図14、図15
および図19〜図23を用いて説明する。
【0066】この疑似言語では、 (1)ブロック(「{」と「}」)は、その内側に記述さ
れた要素を下位構造として包含する。例えば、 という記述において、「××を××する」という処理説
明は、「△△を△△する」という処理説明を下位構造と
して包含する。 (2)「//」は、それに連なる一連の要素を下位構造と
して包含する。例えば、 // ××を××する △△を△△する; □□を□□する; という記述において、「××を××する」という処理説
明は、「△△を△△する」および「□□を□□する」と
いう2つの処理説明を下位構造として包含する。という
単純な原則を前提としているので、例えば、 という疑似言語記述301は、制御構造抽出手段401
によって図20に示す木構造に変換して記憶された後、
木構造チャート生成手段402によって図21に示す木
構造チャートに自動的に変換される。同様に、図14お
よび図15中の という疑似言語記述301は、制御構造抽出手段401
によって図22に示す木構造に変換して記憶された後、
木構造チャート生成手段402によって図23に示す木
構造チャート(図19参照)に自動的に変換される。
【0067】この実施例4では、モジュールのインター
フェース仕様と処理フローを記述する手段として、C言
語に準じた疑似言語を用いる方法を紹介したが、これは
他のいかなるプログラミング言語(例えば「Ada」)に
準じたものであっても構わない。同様に、この実施例4
では、モジュールの処理フローの階層構造を記述する手
段として、疑似言語のブロック構造(例えば図14およ
び図15中の「{・・・}」)を用いる方法を紹介した
が、これは他のいかなる方法(例えばbegin文とen
d文で下位構造を囲む)であっても構わない。同様に、
この実施例4では、具体的な木構造チャートとしてNT
T(株)で考案されたHCPチャートを用いる例を紹介
したが、これは他のいかなる木構造チャート(例えば日
本電気(株)のSPD)であっても構わない。同様に、
この実施例4では、処理説明の階層構造を記憶する手段
として木構造を用いる方法を紹介したが、これは他のい
かなるデータ構造(例えば「リスト構造」)であっても
構わない。 (注4)HCPチャートとは、Hierarchical and ComPa
ct description chartの略称である。 (注5)SPDとは、Structured Programming Diagram
の略称である。
【0068】次に、従来例と比較して、この実施例4の
優れている点について説明する。この実施例4と同じ機
能を実現する従来の方法としては次の2つが考えられ
る。
【0069】第1の方法は、図形エディタなどの汎用ツ
ールを用いて、目的とする木構造チャートを人間が作成
するというものである。この方法は確かに現実的ではあ
るが、木構造チャートの作成に膨大な時間が必要(作業
コストの問題)となるだけでなく、木構造チャートの形
式に個人差が出る(属人性の問題)、ミスが入り込みや
すい(作業品質の問題)、など多くの問題がある。
【0070】第2の方法は、木構造チャートを作成する
為の専用エディタを開発し提供するというものである。
この方法では、第1の方法の欠点をある程度解消するこ
とができるが、代わりに、専用エディタを開発するのに
相当な費用がかかる(開発コストの問題)、開発したエ
ディタは木構造チャート専用であり潰しが利かない(投
資効果の問題)、ユーザに専用エディタの使い方を教育
する必要がある(教育コストの問題)、といった新たな
問題を誘発する。
【0071】これに対しこの実施例4を使用した場合、
プログラミング言語に準じた疑似言語記述301を入力
するだけで、モジュールの処理フローを示す木構造チャ
ート403が自動的に生成されるので、人間が図形エデ
ィタなどを用いてこれと同等な木構造チャート403を
作成するのに比べ、木構造チャート403の作成に要す
る時間が大幅に短縮されるだけでなく、木構造チャート
403の形式に関する個人差が完全に是正されると共
に、モジュールの処理フローと木構造チャート403と
の不一致が完全になくなるという効果がある。また、入
力となる疑似言語記述301は単なるテキストであり、
一般的なテキスト・エディタを用いて作成できるので、
新たに専用エディタを開発して提供する必要がないばか
りか、ユーザが自分の使い慣れたエディタを用いて仕様
記述を作成できるという効果がある。これは、本実施例
が低コストで実現かつ運用可能であることを意味してい
る。
【0072】以上のようにこの実施例4によれば、図1
7に示すように、プログラミング言語に準じた疑似言語
記述301を入力にすると共に、プログラム生産支援装
置中に、字句解析手段302、構文解析手段303、制
御構造抽出手段401および木構造チャート生成手段4
02を設けることにより、木構造チャート403の作成
に要する時間を大幅に短縮できると共に、木構造チャー
ト403の品質を格段に高めることができ、結果として
プログラム生産の高品質化に大きく寄与することができ
る。
【0073】実施例5.図24は実施例5におけるプロ
グラム生産支援装置の構成を示すブロック図、図25は
実施例5におけるプログラム生産支援装置の動作を示す
フローチャート、図26および図27は実施例5の出力
である「プログラミング言語記述のひな形」の一例を示
す図、図28は実施例5の制御構造抽出手段によって変
換され記憶される木構造の一例を示す図である。なお、
この実施例5の入力である「疑似言語記述」の一例とし
ては、図14および図15に図示したものを使用する。
【0074】以下、図24の図17と異なる要素につい
て説明する。図24において、501は制御構造抽出手
段401によって記憶された木構造をもとに疑似言語の
制御構造をプログラミング言語の制御構造に変換する
「制御構造変換手段」、502は制御構造抽出手段40
1によって記憶された木構造をもとに疑似言語の処理説
明をプログラミング言語のコメントに変換する「処理説
明→コメント変換手段」、503は制御構造変換手段5
01および処理説明→コメント変換手段502によって
自動生成された「プログラミング言語記述のひな形」で
ある。
【0075】この実施例5におけるプログラム生産支援
装置の動作について、図25に示すフローチャートを用
いて説明する。
【0076】図25において、ステップ(イ)、ステッ
プ(ロ)、ステップ(ハ)は図18のそれと同じであ
る。以下、図25の図18と異なる動作について説明す
る。まず、本処理系は、制御構造抽出手段401によっ
て記憶された木構造をもとに、変換すべき対象が制御構
造、処理説明のいずれであるかを判断する(図25のス
テップ(ニ))。変換すべき対象が制御構造の場合、制
御構造変換手段501は、制御構造抽出手段401によ
って記憶された木構造をもとに、疑似言語の制御構造
(例えば図14および図15中の「if (・・・) {・・
・}」)を、プログラミング言語の制御構造(例えば図
26および図27中の「if () {・・・}」に変換する
(図25のステップ(ホ))。変換すべき対象が処理説
明の場合、処理説明→コメント変換手段502は、制御
構造抽出手段401によって記憶された木構造をもと
に、疑似言語の処理説明(例えば図14および図15中
の「××が××ならば」)を、プログラミング言語のコ
メント(例えば図26および図27中の「/* ? ××が
××ならば */」)に変換する(図25のステップ
(ヘ))。
【0077】次に、制御構造変換手段501および処理
説明→コメント変換手段502が疑似言語記述301か
らプログラミング言語記述のひな形503を生成する手
順を、図14および図15と図26および図27を用い
て説明する。
【0078】疑似言語からプログラミング言語への変換
に際しては、 (1)疑似言語の仕様記述部に記述されているモジュー
ルのインターフェース仕様を、プログラミング言語のコ
メントに変換してモジュールの先頭に出力する。 (2)上記(1)の実行に際し、仮引数に関するインタ
ーフェース仕様だけは、プログラミング言語における仮
引数の宣言およびコメントに変換して出力する。 (3)疑似言語の制御構造を、プログラミング言語の制
御構造に変換して出力する。 (4)疑似言語の処理説明を、プログラミング言語のコ
メントに変換して出力する。 (5)上記(4)の実行に際し、疑似言語記述の条件中
に記述された処理説明を条件の外へ移動させると共に、
文章の先頭に「?」マークを付加してからプログラミン
グ言語のコメントに変換して出力する。 (6)上記(4)の実行に際し、break文、return文、e
xit文に付随する処理説明を、それぞれの文と分離して
からプログラミング言語のコメントに変換して出力す
る。 という変換規則を前提としているので、例えば、図14
および図15中の という疑似言語記述301は、制御構造抽出手段401
によって図28に示す木構造に変換して記憶された後、
制御構造変換手段501および処理説明→コメント変換
手段502によって /* * ××を××する */ if () { /* ? ××が××ならば */ /* ××を××する */ function_1(); return; /* エラーステータス */ } というプログラミング言語記述のひな形(図26および
図27参照)に自動的に変換される。
【0079】この実施例5では、モジュールのインター
フェース仕様と処理フローを記述する手段として、C言
語に準じた疑似言語を用いる方法を紹介したが、これは
他のいかなるプログラミング言語(例えば「Ada」)に
準じたものであっても構わない。同様に、この実施例5
では、モジュールの処理フローの階層構造を記述する手
段として、疑似言語のブロック構造(例えば図14およ
び図15中の「{・・・}」)を用いる方法を紹介した
が、これは他のいかなる方法(例えばbegin文とend文で
下位構造を囲む)であっても構わない。同様に、この実
施例5では、処理説明の階層構造を記憶する手段として
木構造を用いる方法を紹介したが、これは他のいかなる
データ構造(例えば「リスト構造」)であっても構わな
い。
【0080】次に、従来例と比較して、この実施例5の
優れている点について説明する。この実施例5と同じ機
能を実現する従来の方法としては次のものが考えられ
る。
【0081】その方法とは、モジュールのインターフェ
ース仕様および処理フローをユーザに対話形式で定義さ
せ、それらの情報からプログラミング言語記述のひな形
を生成する対話型ツールを開発し提供するというもので
ある。この方法は一見合理的に見えるが、前記実施例1
のところでも指摘した通り、対話型ツールを開発するの
に相当な費用がかかる(開発コストの問題)、開発した
対話型ツールは当該機能専用であり潰しが利かない(投
資効果の問題)、ユーザに対話型ツールの使い方を教育
する必要がある(教育コストの問題)だけでなく、これ
らのツールは、一般にモジュールの処理フローを自然言
語で記述すること(例えば「××を××する」)ができ
ないので、設計工程であるにもかかわらず、ユーザはプ
ログラミング言語でコーディングするのと変わらないレ
ベルの詳細な情報(例えば「if (a == 0) { a = a + 1;
}」)の入力を強要されるという問題がある。すなわ
ち、この種のツールは、設計工程(モジュールの輪郭を
定義することが目的)とコーディング工程(モジュール
の詳細を定義することが目的)の境目を不明確にし、結
果的にデザインレビュー(設計の再検討)を阻害すると
いう問題を内包している。
【0082】これに対しこの実施例5を使用した場合、
プログラミング言語に準じた疑似言語記述301からプ
ログラミング言語記述のひな形503が自動的に生成さ
れるので、前記実施例3および実施例4を用いてモジュ
ールのインターフェース仕様および処理フロー(疑似言
語で記述)に対し十分なデザインレビューを行ってか
ら、その情報をプログラミング言語記述のひな形503
に正確に反映させられるという効果がある。これは、前
工程(設計)における設計者の意図を後工程(コーディ
ング)を担当するプログラマに正確に伝えられることを
意味している。また、入力となる疑似言語記述301は
単なるテキストであり、一般的なテキスト・エディタを
用いて作成できるので、新たに専用エディタを開発して
提供する必要がないばかりか、ユーザが自分の使い慣れ
たエディタを用いて仕様記述を作成できるという効果が
ある。これは、この実施例5が低コストで実現かつ運用
可能であることを意味している。
【0083】以上のようにこの実施例5によれば、図2
4に示すように、プログラミング言語に準じた疑似言語
記述301を入力にすると共に、プログラム生産支援装
置中に、字句解析手段302、構文解析手段303、制
御構造抽出手段401、制御構造変換手段501および
処理説明→コメント変換手段502を設けることによ
り、前工程(設計)で十分にデザインレビューされた情
報(疑似言語記述)を、後工程(コーディング)の入力
(プログラミング言語記述のひな形)として流用できる
ので、設計者の意図をプログラマに正確に伝えることが
でき、結果としてプログラム生産の高品質化に大きく寄
与することができる。
【0084】実施例6.図29は実施例6のプログラム
生産支援装置を示す構成図、図30は実施例6における
プログラム生産支援装置の動作を示すフローチャート、
図31および図32は実施例6の入力である「プログラ
ミング言語記述」の一例を示す図、図33および図34
は実施例6の出力である「疑似言語記述」の一例を示す
図、図35は実施例6の制御構造抽出手段によって変換
され記憶される木構造の一例を示す図、図36は実施例
6の制御構造変換手段によって置換された木構造の一例
を示す図である。
【0085】図29において、601は特定のプログラ
ミング言語で記述された「プログラミング言語記述」、
602はプログラミング言語記述601を読み込んで字
句に分解する「字句解析手段」、603は字句に分解さ
れたプログラミング言語記述601の構文解析を行う
「構文解析手段」、604は構文解析手段603による
プログラミング言語記述601の構文解析結果をもとに
プログラムの制御構造とそれに付随するコメントを木構
造に変換して記憶する「制御構造抽出手段」、605は
制御構造抽出手段604によって記憶された木構造をも
とにプログラミング言語の制御構造を疑似言語の制御構
造に変換する「制御構造変換手段」、606は制御構造
抽出手段605によって記憶された木構造をもとにプロ
グラミング言語のコメントを疑似言語の処理説明に変換
する「コメント→処理説明変換手段」、301は制御構
造変換手段605およびコメント→処理説明変換手段6
06によって自動生成された「疑似言語記述」である。
【0086】この実施例6におけるプログラム生産支援
装置の動作について、図30に示すフローチャートを用
いて説明する。
【0087】図30において、ステップ(イ)〜(ヘ)
は図25のそれと基本的に同じである。両者で異なるの
は、図30が「プログラミング言語記述→疑似言語記
述」への変換を、図25が「疑似言語記述→プログラミ
ング言語記述」への変換を説明している点である。
【0088】次に、制御構造変換手段605およびコメ
ント→処理説明変換手段606がプログラミング言語記
述601から疑似言語記述301を生成する手順を、図
31〜図36を用いて説明する。
【0089】プログラミング言語から疑似言語への変換
に際しては、 (1)モジュールのヘッダー・コメント中のABSTRACT
欄、FUNCTION欄、NOTE欄、RETURN欄に記述されたインタ
ーフェース仕様、および、モジュールの仮引数の型・名
前・コメント、モジュール内で参照している大域変数の
型・名前・コメントを、疑似言語における仕様記述部
(function spec)の形式に変換して出力する。 (2)モジュール内の制御構造を、疑似言語の制御構造
に変換して出力する。 (3)モジュール内のコメントを、疑似言語の処理説明
に変換して出力する。 (4)上記(3)の実行に際し、文章の先頭に「?」マ
ークの付いたコメントをそれに対応する条件と置き換
え、疑似言語の処理説明に変換して出力する。 (5)上記(3)の実行に際し、break文、return文、e
xit文の行末にあるコメントをそれに対応する引数と置
き換え、疑似言語の処理説明に変換して出力する。 という変換規則を前提としているので、例えば、図31
および図32中の /* * ××を××する */ if (global_1 == 0) { /* ? ××が××ならば */ /* ××を××する */ function_1(); return -1; /* エラーステータス */ } というプログラミング言語記述601は、制御構造抽出
手段604によって図35に示す木構造に変換して記憶
された後、制御構造変換手段605およびコメント→処
理説明変換手段606によって図36のようにif文の条
件とreturn文の引数がそれぞれに対応するコメントと置
き換えられてから という疑似言語記述301(図33および図34参照)
に自動的に変換される。
【0090】この実施例6では、入力となるプログラミ
ング言語としてC言語を用いる方法を紹介したが、これ
は他のいかなるプログラミング言語(例えば「Ada」)
であっても構わない。同様に、この実施例6では、出力
としてC言語に準じた疑似言語を用いる方法を紹介した
が、これは他のいかなるプログラミング言語(例えば
「Ada」)に準じたものであっても構わない。同様に、
この実施例6では、処理説明の階層構造を記憶する手段
として木構造を用いる方法を紹介したが、これは他のい
かなるデータ構造(例えば「リスト構造」)であっても
構わない。
【0091】次に、従来例と比較して、この実施例6の
優れている点について説明する。この実施例6と同じ機
能を実現する従来の方法としては次のものが考えられ
る。
【0092】その方法とは、プログラミング言語記述の
中からモジュールのインターフェース仕様に関する情報
を手作業で抽出するというものである。この方法は誰も
が無意識に行っていることであるが、情報を抽出するの
に膨大な時間が必要(作業コストの問題)となるだけで
なく、経験年数などによって作業効率のばらつきが大き
い(属人性の問題)、ミスが入り込みやすい(作業品質
の問題)など多くの問題がある。
【0093】これに対しこの実施例6を使用した場合、
プログラミング言語記述601からプログラミング言語
に準じた疑似言語が自動的に生成されるので、こうして
得られた疑似言語記述301に対して前記実施例3およ
び実施例4を適用すれば、結果的に、プログラミング言
語記述からモジュールのインターフェース仕様に関する
情報を自動的に抽出し、その情報をデザインレビュー用
資料307や木構造チャート403の形式で把握できる
という効果がある。実際問題として、ソフトウェアが大
規模・複雑化の一途を辿っている現状では、何百、何千
とあるモジュールのインターフェース仕様を人間に分か
りやすいデザインレビュー用資料307や木構造チャー
ト403の形式で把握できる意義は極めて大きい。
【0094】以上のようにこの実施例6によれば、図2
9に示すように、プログラミング言語記述601を入力
にすると共に、プログラム生産支援装置中に、字句解析
手段602、構文解析手段603、制御構造抽出手段6
04、制御構造変換手段605およびコメント→処理説
明変換手段606を設けることにより、プログラミング
言語記述601からモジュールのインターフェース仕様
に関する情報を自動的に抽出できるので、実際に動作し
ているプログラムの仕様を容易かつ正確に把握すること
が可能となり、結果としてプログラム生産および保守の
高品質化に大きく寄与することができる。
【0095】実施例7.図37は実施例7のプログラム
生産支援装置を示す構成図、図38は実施例70のプロ
グラム生産支援装置の動作を示すフローチャート、図3
9および図40は実施例7の入力である「プログラミン
グ言語記述」の一例を示す図、図41乃至図43は実施
例7の出力である「木構造チャート」の一例を示す図、
図44は実施例7の制御構造抽出手段によって変換され
記憶される木構造の一例を示す図、図45は実施例7の
木構造チャート生成手段によって生成される木構造チャ
ートの一例を示す図、図46は実施例7の不要情報割愛
手段701によって補正される木構造の一例を示す図、
図47は実施例7の木構造チャート生成手段によって生
成される上記とは別の木構造チャートの一例を示す図、
図48は実施例7の木構造チャート生成手段によって生
成される上記とは更に別の木構造チャートの一例を示す
図である。
【0096】以下、図37の図29と異なる要素につい
て説明する。図37において、701は制御構造抽出手
段604によって記憶された木構造をもとにユーザの指
定に応じ木構造から不要情報を割愛する「不要情報割愛
手段」、702は不要情報割愛手段701によって補正
された木構造をもとにプログラミング言語記述601に
対応した木構造チャートを自動生成する「木構造チャー
ト生成手段」、703は木構造チャート生成手段702
によって自動生成された「木構造チャート」である。
【0097】この実施例7のプログラム生産支援装置の
動作について、図38に示すフローチャートを用いて説
明する。図38において、ステップ(イ)〜(ハ)は図
6Bのそれと同じである。以下、図38の図30と異な
る動作について説明する。まず、不要情報割愛手段70
1は、ユーザの指定に応じて、制御構造抽出手段604
によって記憶された木構造から何を割愛するかを決定す
る(図38のステップ(ニ))。ユーザの指定が「全て
の文を木構造チャートに反映せよ」である場合、不要情
報割愛手段701は、制御構造抽出手段604によって
記憶された木構造に対して何も行わない。ユーザの指定
が「コメントと制御構造のみを木構造チャートに反映せ
よ」である場合、不要情報割愛手段701は、制御構造
抽出手段604によって記憶された木構造からコメント
と制御構造以外を削除する(図38のステップ
(ホ))。ユーザの指定が「コメントのみを木構造チャ
ートに反映せよ」である場合、不要情報割愛手段701
は、制御構造抽出手段604によって記憶された木構造
からコメント以外を削除する(図38のステップ
(ヘ))。次に、木構造チャート生成手段702は、不
要情報割愛手段701によって補正された木構造をもと
に、プログラミング言語記述601に対応した木構造チ
ャート703(図41、図42、図43参照)を生成す
る(図38のステップ(ト))。
【0098】次に、不要情報割愛手段701および木構
造チャート生成手段702が、プログラミング言語記述
601からユーザの指定に応じ木構造チャート703を
生成する手順を図39〜図48を用いて説明する。
【0099】例えば、図39および図40中の というプログラミング言語記述は、制御構造抽出手段6
04によって図44に示す木構造に変換して記憶され
る。ユーザの指定が「全ての文を木構造チャートに反映
せよ」である場合、不要情報割愛手段701はこの木構
造に対して何も行わないので、木構造チャート生成手段
702は図45に示す木構造チャート(図41参照)を
自動的に生成する。これに対し、ユーザの指定が「コメ
ントと制御構造のみを木構造チャートに反映せよ」であ
る場合、不要情報割愛手段701は木構造からコメント
と制御構造以外を削除し、図46に示すように、木構造
を補正するので、木構造チャート生成手段702は図4
7に示す木構造チャート703(図42参照)を自動的
に生成する。更に、ユーザの指定が「コメントのみを木
構造チャートに反映せよ」である場合、不要情報割愛手
段701は木構造からコメント以外を全て削除し ××を××する のように木構造を補正するので、木構造チャート生成手
段702は図48に示す木構造チャート703(図43
参照)を生成する。
【0100】この実施例7では、入力となるプログラミ
ング言語としてC言語を用いる方法を紹介したが、これ
は他のいかなるプログラミング言語(例えば「Ada」)
であっても構わない。同様に、この実施例7では、具体
的な木構造チャート703としてNTT(株)で考案さ
れたHCPチャートを用いる方法を紹介したが、これは
他のいかなる木構造チャート(例えば日本電気(株)の
SPD)であっても構わない。同様に、この実施例7で
は、処理説明の階層構造を記憶する手段として木構造を
用いる方法を紹介したが、これは他のいかなるデータ構
造(例えば「リスト構造」)であっても構わない。
【0101】次に、従来例と比較して、この実施例7の
優れている点について説明する。
【0102】従来、プログラミング言語記述から木構造
チャートを自動生成するツールとしては既に幾つかのも
のが知られているが、それらは一様にプログラミング言
語記述中の文をありのまま木構造チャートに反映するも
のであり、大規模なプログラムに適用した場合には木構
造チャートが詳細すぎて、プログラムの大まかな流れを
把握する目的では使い物にならないという問題があっ
た。
【0103】これに対しこの実施例7を使用した場合、
ユーザの指定に応じて「プログラミング言語記述中の全
ての文を木構造チャートに反映する」、「コメントと制
御構造のみを木構造チャートに反映する」、「コメント
のみを木構造チャートに反映する」、といった具合に木
構造チャート703の粗さを調整できるので、「処理内
容を逐一チェックしたい」、「プログラムの大まかな流
れを把握したい」、「処理の概要を把握したい」という
目的に応じた木構造チャート703を生成できるという
効果がある。
【0104】以上のようにこの実施例7によれば、図3
7に示すように、プログラミング言語記述601を入力
にすると共に、プリンタ生産支援装置中に、字句解析手
段602、構文解析手段603、制御構造抽出手段60
4、不要情報割愛手段701および木構造チャート生成
手段702を設けることにより、プログラミング言語記
述601からユーザの要求に応じた木構造チャート70
3を生成することができ、結果としてプログラム生産お
よび保守の高品質化に大きく寄与することができる。
【0105】実施例8.図49は実施例8のプログラム
生産支援装置を示す構成図、図50は実施例8のプログ
ラム生産支援装置の動作を示すフローチャート、図51
および図52は実施例8の入力である「プログラミング
言語記述」の一例を示す図、図53は実施例8の出力で
ある「モジュール仕様書」の一例を示す図である。図4
9の図29と異なる要素について説明する。図49にお
いて、801は構文解析手段603によるプログラミン
グ言語記述601の構文解析結果をもとにモジュールの
インターフェース仕様を記憶する「インターフェース仕
様抽出手段」、802は構文解析手段603によるプロ
グラミング言語記述601の構文解析結果をもとにモジ
ュールの定義・参照情報を記憶する「モジュール定義・
参照抽出手段」、803はインターフェース仕様抽出手
段801およびモジュール定義・参照抽出手段802に
よって記憶された情報をもとにモジュール名を照合する
「モジュール名照合手段」、804はインターフェース
仕様抽出手段801およびモジュール定義・参照抽出手
段802によって記憶された情報をもとにプログラミン
グ言語記述601に対応したモジュール仕様書を自動生
成する「モジュール仕様書生成手段」、805はモジュ
ール仕様書生成手段804によって自動生成された「モ
ジュール仕様書」である。
【0106】この実施例8のプログラム生産支援装置の
動作について、図50に示すフローチャートを用いて説
明する。
【0107】図50において、ステップ(イ)〜(ロ)
は図30のそれと同じである。以下、図50の図30と
異なる動作について説明する。まず、インターフェース
仕様抽出手段801は、構文解析手段603によるプロ
グラミング言語記述601の構文解析結果をもとに、モ
ジュールのヘッダーコメント中の各欄(例えば図51お
よび図52中の「MODULE」欄)に記述されたインターフ
ェース仕様を抽出して記憶する(図50のステップ
(ハ))。次に、モジュール定義・参照抽出手段802
は、構文解析手段603によるプログラミング言語記述
601の構文解析結果をもとに、モジュールの定義(例
えば図51および図52中の「void main() {・・
・}」)および、モジュールの参照情報を抽出して記憶
する(図50のステップ(ニ))。次に、モジュール名
照合手段803は、インターフェース仕様抽出手段80
1およびモジュール定義・参照抽出手段802によって
記憶された情報をもとに、ヘッダーコメント中の「MODU
LE」欄に記述されている名前と、そのヘッダーコメント
に対応するモジュール定義の名前を照合する(図50の
ステップ(ホ))。モジュール名が一致した場合、モジ
ュール仕様書生成手段804は、インターフェース仕様
抽出手段801およびモジュール定義・参照抽出手段8
02によって記憶された情報をもとに、プログラミング
言語記述601に対応したモジュール仕様書805を生
成する(図50のステップ(ヘ))。モジュール名が一
致しなかった場合、モジュール仕様書生成手段804
は、エラーメッセージを出力してその旨をユーザに報告
しモジュール仕様書805の生成を中止する(図50の
ステップ(ト))。
【0108】この実施例8では、入力となるプログラミ
ング言語としてC言語を用いる方法を紹介したが、これ
は他のいかなるプログラミング言語(例えば「Ada」)
であっても構わない。
【0109】次に、従来例と比較して、この実施例8の
優れている点について説明する。
【0110】従来、プログラミング言語記述からモジュ
ール仕様書を自動生成するツールとしては既に幾つかの
ものが知られているが、それらは一様に、ヘッダーコメ
ント中から抽出したインターフェース仕様を、その直後
に記述されているモジュール定義と盲目的に対応付けて
モジュール仕様書を生成する様になっている為、ヘッダ
ーコメント中に記述されたインターフェース仕様がモジ
ュール定義と対応していなくてもモジュール仕様書が生
成されるという問題があった。現実問題として、仕様書
から内容を判断して作業しなければならない場合も多い
ので、でたらめな仕様書がソフトウェア生産全体に与え
る影響は無視できない。 勿論、ヘッダーコメントを記
述する際に細心の注意を払っていれば問題ないのだが、
実際には (1)最初のモジュールに対してヘッダーコメントを作
成する。 (2)それをテンプレートにして2番目のヘッダーコメ
ントを作成する。 (3)以下、全てのモジュールに対して(2)を繰り返
す。 といった手順で作業した方が合理的なので、往々にして
無関係なヘッダーコメントの付いたモジュールが発生す
る。大規模なプログラムではモジュールの数が1000
を越えることも珍しくないだけに、一旦紛れ込んだミス
を見つけるのはこの問題がプログラムの動作に影響しな
い分だけ余計に厄介である。
【0111】これに対しこの実施例8を使用した場合、
ヘッダーコメント中の「MODULE」欄に記述された名前と
そのヘッダーコメントに対応するモジュール定義の名前
が一致しないと、エラーメッセージが出力されモジュー
ル仕様書805の生成が中止されるので、この種の事故
を未然に、かつ確実に防ぐことができるという効果があ
る。
【0112】以上のようにこの実施例8によれば、図4
9に示すように、プログラミング言語記述601を入力
にすると共に、プログラム生産支援装置中に、字句解析
手段602、構文解析手段603、インターフェース仕
様抽出手段801、モジュール定義・参照抽出手段80
2、モジュール名照合手段803およびモジュール仕様
書抽出手段804を設けることにより、プログラミング
言語記述601から実際のモジュール定義に正確に対応
したモジュール仕様書805を自動生成することがで
き、結果としてプログラム生産および保守の合理化に大
きく寄与することができる。
【0113】実施例9.図54は実施例9プログラム生
産支援装置を示す構成図、図55は実施例9におけるプ
ログラム生産支援装置の動作を示すフローチャート、図
56および図57は実施例9の入力である「プログラミ
ング言語記述」の一例を示す図、図58は従来の「モジ
ュール構成図」の一例を示す図、図59は実施例9の出
力である「モジュール構成図」の一例を示す図、図60
は実施例9のモジュール定義・参照抽出手段によって変
換され記憶される木構造の一例を示す図、図61は実施
例9の同一構造割愛手段によって補正された木構造の一
例を示す図である。
【0114】図54の図29と異なる要素について説明
する。図54において、802は構文解析手段603に
よるプログラミング言語記述601の構文解析結果をも
とにモジュールの定義・参照情報を記憶する「モジュー
ル定義・参照抽出手段」、901はモジュール定義・参
照抽出手段802によって記憶された木構造をもとに木
構造上の同一構造を割愛する「同一構造割愛手段」、9
02は同一構造割愛手段901によって補正された木構
造をもとにプログラミング言語記述601に対応したモ
ジュール構成図を自動生成する「モジュール構成図生成
手段」、903はモジュール構成図生成手段902によ
って自動生成された「モジュール構成図」である。
【0115】この実施例9におけるプログラム生産支援
装置の動作について、図55に示すフローチャートを用
いて説明する。図55において、ステップ(イ)〜
(ロ)は図30のそれと同じである。以下、図55の図
30と異なる動作について説明する。まず、モジュール
定義・参照抽出手段802は、構文解析手段603によ
るプログラミング言語記述601の構文解析結果をもと
に、モジュールの定義(例えば図56および図57中の
「main() {・・・}」)およびモジュールの参照(例え
ば図56および図57中の「sub();」)を木構造に変換
して記憶する(図55のステップ(ハ))。次に、同一
構造割愛手段901は、モジュール定義・参照抽出手段
802によって記憶された木構造をもとに、木構造上か
ら同一構造を摘出する(図55のステップ(ニ))。同
一構造が摘出できなかった場合、同一構造割愛手段90
1は、モジュール定義・参照抽出手段802によって記
憶された木構造に対して何も行わない。同一構造が摘出
された場合、同一構造割愛手段901は、モジュール定
義・参照抽出手段802によって記憶された木構造上か
ら同一構造を削除し「〜と同じ」という情報で置換する
(図55のステップ(ホ))。次に、モジュール構成図
生成手段902は、同一構造割愛手段901によって補
正された木構造をもとに、プログラミング言語記述60
1に対応したモジュール構成図903(図59参照)を
自動生成する(図55のステップ(ヘ))。
【0116】次に、同一構造割愛手段901およびモジ
ュール構成図生成手段902がプログラミング言語記述
601からモジュール構成図903を生成する手順を、
図56および図57、図59を用いて説明する。
【0117】例えば、図56および図57中の というプログラミング言語記述601は、モジュール定
義・参照抽出手段802によって図60に示す木構造に
変換して記憶された後、同一構造割愛手段901によっ
て、木構造を根元から辿りながら同一構造を順次「〜と
同じ」という情報で置換することによって図61に示す
木構造に補正され、モジュール構成図生成手段902に
よって、図59に示すモジュール構成図903が自動的
に生成される。ちなみに、従来の方法では同一構造が割
愛されない為に、結果として図58に示す冗長なモジュ
ール構成図が生成される。
【0118】この実施例9では、入力となるプログラミ
ング言語としてC言語を用いる方法を紹介したが、これ
は他のいかなるプログラミング言語(例えば「Ada」)
であっても構わない。同様に、この実施例9では、処理
説明の階層構造を記憶する手段として木構造を用いる方
法を紹介したが、これは他のいかなるデータ構造(例え
ば「リスト構造」)であっても構わない。
【0119】次に、従来例と比較して、この実施例9の
優れている点について説明する。
【0120】従来、プログラミング言語記述からモジュ
ール構成図を自動生成するツールとしては既に幾つかの
ものが知られているが、それらが生成するモジュール構
成図は一様に図58の出力形式に準じたものであり、同
一モジュールの参照が随所に現われる大規模プログラム
(数万行以上)では、生成されるモジュール構成図が冗
長(場合によってはA4版で数百ページ)になりすぎて
使い物にならないという問題があった。
【0121】これに対しこの実施例9を使用した場合、
モジュール構成図903上の同一構造が「〜と同じ」と
いう情報で置換されるので、同一モジュールの参照が随
所に現われるような大規模プログラムでは、それに対す
るモジュール構成図903が劇的に簡素化(圧縮)され
るという効果がある。
【0122】以上のようにこの実施例9によれば、図5
4に示すように、プログラミング言語記述601を入力
にすると共に、プログラム生産支援装置中に、字句解析
手段602、構文解析手段603、モジュール定義・参
照抽出手段802、同一構造割愛手段901およびモジ
ュール構成図生成手段902を設けることにより、プロ
グラミング言語記述601から実用的なモジュール構成
図903を自動生成することができ、結果としてプログ
ラム生産および保守の合理化に大きく寄与することがで
きる。
【0123】実施例10.図62は実施例10のプログ
ラム生産支援装置を示す構成図、図63は実施例10に
おけるプログラム生産支援装置の動作を示すフローチャ
ート、図64乃至図67は実施例10の入力である「プ
ログラミング言語記述」の一例を示す図、図68は従来
の「シンボル一覧表」の一例を示す図、図69は実施例
10の出力である「シンボル一覧表」の一例を示す図で
ある。
【0124】図62の図29と異なる要素について説明
する。図62において、1001は構文解析手段603
によるプログラミング言語記述601の構文解析結果を
もとにシンボルの定義情報を記憶する「シンボル定義抽
出手段」、1002はシンボル定義抽出手段1001に
よって記憶された情報をもとにシンボルの定義情報を定
義位置の順に並べ換える「シンボル定義並換え手段」、
1003はシンボル定義並換え手段1002によって並
べ換えられた情報をもとにプログラミング言語記述60
1に対応したシンボル一覧表を自動生成する「シンボル
一覧表生成手段」、1004はシンボル一覧表生成手段
1003によって自動生成された「シンボル一覧表」で
ある。
【0125】この実施例10におけるプログラム生産支
援装置の動作について、図63に示すフローチャートを
用いて説明する。
【0126】図63において、ステップ(イ)〜(ロ)
は図30のそれと同じである。以下、図63の図30と
異なる動作について説明する。まず、シンボル定義抽出
手段1001は、構文解析手段603によるプログラミ
ング言語記述601の構文解析結果をもとに、シンボル
の定義(例えば図64乃至図67中の「function_1()
{}」)を辞書順に記憶する(図63のステップ
(ハ))。次に、シンボル定義並換え手段1002は、
シンボル定義抽出手段1001によって記憶された情報
をもとに、シンボルの定義情報を定義位置(例えば「mo
dule-list.cの6行目」)の順に並べ換える(図63の
ステップ(ニ))。次に、シンボル一覧表生成手段10
03は、シンボル定義並換え手段1002によって並べ
換えられた情報をもとに、プログラミング言語記述60
1に対応したシンボル一覧表1004を自動生成する
(図63のステップ(ホ))。
【0127】この実施例10では、入力となるプログラ
ミング言語としてC言語を用いる方法を紹介したが、こ
れは他のいかなるプログラミング言語(例えば「Ad
a」)であっても構わない。同様に、この実施例10で
は、シンボルの例としてモジュール定義を対象とする方
法を紹介したが、これは他のいかなるシンボル(例えば
「大域変数」や「マクロ」)であっても構わない。
【0128】次に、従来例と比較して、この実施例10
の優れている点について説明する。
【0129】従来、プログラミング言語記述からシンボ
ル一覧表を自動生成するツールとしては既に幾つかのも
のが知られているが、それらが生成するシンボル一覧表
は一様に図68の出力形式に準じたものである。この種
の表は特定のシンボルがどこで定義されているかを探す
手掛かりとしては有用であるが、一般にモジュールや大
域変数といったシンボルは、関連性の強いもの同士が一
箇所(特定のファイル内)に固めて定義される傾向があ
る為、辞書順にシンボル名を並べる方法だと、例えば int x_axis; /* X座標 */ int y_axis; /* Y座標 */ という定義が一覧表上ではばらばらに出力されてしまう
可能性が高い。従って、辞書順にシンボルを出力する形
式のシンボル一覧表では、定義順序に込められたプログ
ラマの意図をないがしろにしてしまうという問題があっ
た。
【0130】これに対しこの実施例10を使用した場
合、プログラミング言語記述601中に定義された順に
シンボルが出力されるので、定義順序に込められたプロ
グラマの意図がありのまま表現されるという効果があ
る。
【0131】以上のようにこの実施例10によれば、図
62に示すようにプログラミング言語記述601を入力
にすると共に、プログラム生産支援装置中に、字句解析
手段602、構文解析手段603、シンボル定義抽出手
段1001、シンボル定義並換え手段1002およびシ
ンボル一覧表生成手段1003を設けることにより、プ
ログラミング言語記述601から実用的なシンボル一覧
表1004を自動生成することができ、結果としてプロ
グラム生産および保守の合理化に大きく寄与することが
できる。
【0132】実施例11.図70は実施例11のプログ
ラム生産支援装置を示す構成図、図71は実施例11に
おけるプログラム生産支援装置の動作を示すフローチャ
ート、図72および図73は実施例11の入力である
「プログラミング言語記述」の一例を示す図、図74は
実施例11の出力である「警告メッセージ」の一例を示
す図である。
【0133】図70の図29と異なる要素について説明
する。図70において、1101は字句解析手段602
によって字句に分解されたプログラミング言語記述60
1をもとに字句の並びの中から特定パターンを検出する
「特定パターンの検出手段」、1102は特定パターン
の検出手段1101によって出力された「警告メッセー
ジ」である。
【0134】この実施例11におけるプログラム生産支
援装置の動作について、図71に示すフローチャートを
用いて説明する。
【0135】図71において、ステップ(イ)は図30
のそれと同じである。以下、図71の図30と異なる動
作について説明する。まず、特定パターンの検出手段1
101は、字句解析手段602によって字句に分解され
たプログラミング言語記述601をもとに、それらの字
句がプログラムのどこに現われたかを見極め、特定の場
所(例えば条件の中)に現われた字句の並びだけを抽出
する(図71のステップ(ロ))。次に、特定パターン
の検出手段1101は、特定の場所に現われた字句の並
びを並びのパターンによって選別し経験則と照合する
(図71のステップ(ハ))。字句の並びが経験則と一
致した場合、特定パターンの検出手段1101は、その
旨を通知する警告メッセージ1102を出力する(図7
1のステップ(ニ))。
【0136】次に、特定パターンの検出手段1101
が、プログラミング言語記述601(図72および図7
3参照)から文法的には問題ないが意味的にはエラーで
ある可能性の高いことが知られている記述を検出する手
順を、図72〜図74を用いて説明する。
【0137】例えば、図72および図73中の というC言語記述は文法的には正しい為、この記述に対
しC言語のコンパイラはいかなるエラーメッセージも出
力しない。ところが、C言語において「if (a = 0)」と
いう条件が成立することはありえない為、結果的に「fu
nction();」という決して実行されることのない死角が
発生する。このような記述に対し、特定パターンの検出
手段1101は、特定の場所(この場合は「条件の
中」)に現われた字句の並び(この場合は「a = 0」)
だけに着目し、それを 条件の中に代入演算子「=」が単独で現われるのはおか
しい 条件の中にビット演算子「|」が単独で現われるのはお
かしい といった一連の経験則と照合することにより、それが経
験則と合致する場合には 演算子「==」と「=」を間違えている可能性があります といった警告メッセージを出力し、文法的には正しいが
意味的にはエラーである可能性が高い記述を摘出する。
【0138】次に、従来例と比較して、この実施例11
の優れている点について説明する。この実施例11と同
じ機能を実現する従来の方法としては次のものが考えら
れる。
【0139】その方法とは、プログラミング言語記述の
中から文法的には正しいが意味的にはエラーである可能
性が高い記述を、自分の経験だけを頼りに手作業で摘出
するというものである。この方法は誰もが無意識に行っ
ていることであるが、問題を摘出するのに膨大な時間が
必要(作業コストの問題)となるだけでなく、経験年数
などによって作業効率のばらつきが大きい(属人性の問
題)、ミスが入り込みやすい(作業品質の問題)など多
くの問題がある。
【0140】これに対しこの実施例11を使用した場
合、プログラミング言語記述601から文法的には正し
いが意味的にはエラーである可能性が高い記述を自動的
に検出できるので、同様な作業を人間が行った場合に比
べ、問題点の摘出に要する時間を桁違いに短縮(数日に
対して数秒)できるだけでなく、チェック漏れ、チェッ
クミスといったことが全く無くなるという効果がある。
【0141】以上のようにこの実施例11によれば、図
70に示すように、プログラミング言語記述601を入
力にすると共に、プログラム生産支援装置中に、字句解
析手段602、特定パターンの検出手段1101を設け
ることにより、プログラミング言語記述601から文法
的には正しいが意味的にはエラーである可能性が高い記
述を自動的に検出できるので、結果としてプログラム生
産の高品質化に大きく寄与することができる。
【0142】実施例12.図75は実施例12のプログ
ラム生産支援装置を示す構成図、図76は実施例12に
おけるプログラム生産支援装置の動作を示すフローチャ
ート、図77は実施例12の入力である「プログラミン
グ言語記述」の一例を示す図、図78は実施例12の出
力である「加工されたプログラミング言語記述」の一例
を示す図、図79は実施例12によって加工されたプロ
グラムの「実行結果」の一例を示す図である。
【0143】図75の図29と異なる要素について説明
する。図75において、1201は構文解析手段603
によるプログラミング言語記述601の構文解析結果を
もとにプログラミング言語記述601の特定箇所にプロ
グラムの実行を追跡する為の実行追跡処理を埋込む「実
行追跡処理埋込み手段」、1202は実行追跡処理埋込
み手段1201によって実行追跡処理を埋め込まれた
「加工されたプログラミング言語記述」である。
【0144】この実施例12におけるプログラム生産支
援装置の動作について、図76に示すフローチャートを
用いて説明する。
【0145】図76において、ステップ(イ)〜(ロ)
は図30のそれと同じである。以下、図76の図30と
異なる動作について説明する。まず、実行追跡処理埋込
み手段1201は、構文解析手段603によるプログラ
ミング言語記述601の構文解析結果をもとに、プログ
ラム中の位置によって処理を振り分ける(図76のステ
ップ(ハ))。プログラム中の位置が「モジュールの先
頭」である場合、実行追跡処理埋込み手段1201は、
プログラムのブロックを一つ深くして実行追跡処理を埋
込む(図76のステップ(ニ))。プログラム中の位置
が「モジュールの末尾」である場合、実行追跡処理埋込
み手段1201は、プログラムのブロックを一つ深くし
て実行追跡処理を埋込む(図76のステップ(ホ))。
プログラム中の位置が「return文の所」である場合、実
行追跡処理埋込み手段1201は、return文を囲む局所
的なブロックを作って実行追跡処理を埋込む(図76の
ステップ(ヘ))。プログラム中の位置が「普通の実行
文の所」である場合、実行追跡処理埋込み手段1201
は、実行文の直前に局所的なブロックを作って実行追跡
処理を埋込む(図76のステップ(ト))。
【0146】次に、実行追跡処理埋込み手段1201が
プログラミング言語記述601(図77参照)に対して
実行追跡処理を埋め込む手順を、図77、図78を用い
て説明する。例えば、図77中において1〜2行目の が「モジュールの先頭」という条件に該当するが、この
行に対して実行追跡処理埋込み手段1201は、 の様に2行目の「{」の外側にもう一つ「{」を追加して
ブロックを一つ深くした上で、 の様に「{」と「{」の間にプログラムの実行追跡処理を
埋め込む。これにより、元のプログラムの動作には一切
干渉せず当該プログラムの実行を追跡することが可能と
なる。尚、こうして埋め込まれた「_probe」というモジ
ュールには、それが埋め込まれた「プログラム中の論理
的な位置(この場合はモジュールの実行開始を示す
「+」)」、「モジュールの名前(この場合は「mai
n」)」、「物理的な位置(この場合は「sample.cとい
うファイルの2行目」)」という情報が引数で渡される
為、後ほどこのプログラムを実行した時にどの「_prob
e」であるかを容易に判断することができる。同様に、
図77において10行目の } が「モジュールの末尾」という条件に該当するが、この
行に対して実行追跡処理埋込み手段1201は、 } } の様に10行目の「}」の外側にもう一つ「}」を追加
してブロックを一つ深くした上で、 } _probe(■-■,”main”,”sample.c”, 10); } のように「}」と「}」の間にプログラムの実行追跡処理
を埋め込む。「モジュールの先頭」の場合と同様、こう
して埋め込まれた「_probe」というモジュールには、そ
れが埋め込まれた「プログラム中の論理的な位置(この
場合はモジュールの実行終了を示す「-」)」、「モジ
ュールの名前(この場合は「main」)」、「物理的な位
置(この場合は「sample.cというファイルの10行
目」)」という情報が引数で渡される。同様に、図77
において8行目の return(sub()); が「return文の所」という条件に該当するが、この行に
対して実行追跡処理埋込み手段1201は、 { return(sub()); } のように8行目のreturn文を「{」と「}」で囲んで局所
的なブロックに封じ込めた上で、 { int tmp; tmp = sub(); _probe(■-■,■main”,■sa
mple.c”, 8); return(tmp); } のように、return文の引数を一旦一時変数に退避する処
理と、return文との間にプログラムの実行追跡処理とを
埋め込む。「モジュールの先頭」の場合と同様、こうし
て埋め込まれた「_probe」というモジュールには、それ
が埋め込まれた「プログラム中の論理的な位置(この場
合はモジュールの実行終了を示す「-」)」、「モジュ
ールの名前(この場合は「main」)」、「物理的な位置
(この場合は「sample.cというファイルの8行目」)」
という情報が引数で渡される。尚、return文の引数を一
旦一時変数に退避しているのは、return文の引数が関数
参照である場合にプログラムの実行追跡結果が main: sample.cの2行目 [モジュールの実行開始] main: sample.cの5行目 main: sample.cの8行目 [モジュールの実行終了] sub: sample.cの13行目 [モジュールの実行開始] sub: sample.cの14行目 sub: sample.cの15行目 [モジュールの実行終了] のように見かけ上おかしくなるのを回避する為である。
ちなみに、この実施例12の方法では main: sample.cの2行目 [モジュールの実行開始] main: sample.cの5行目 sub: sample.cの13行目 [モジュールの実行開始] sub: sample.cの14行目 sub: sample.cの15行目 [モジュールの実行終了] main: sample.cの8行目 [モジュールの実行終了] のように実際の実行順序に従って正しく報告される。同
様に図77において6行目の i = 1; が「普通の実行文の所」という条件に該当するが、この
行に対して実行追跡処理埋込み手段1201は、 { } i = 1; のように実行文の直前に「{」と「}」で囲まれた局所的
なブロックを作った上で、 { _probe(■=■,”main”,”sample.c”, 6); } i =
1; のように「{」と「}」の間にプログラムの実行追跡処理
を埋め込む。「モジュールの先頭」の場合と同様に、こ
うして埋め込まれた「_probe」というモジュールには、
それが埋め込まれた「プログラム中の論理的な位置(こ
の場合はモジュールの実行途中を示す「=」)」、「モ
ジュールの名前(この場合は「main」)」、「物理的な
位置(この場合は「sample.cというファイルの6行
目」)」という情報が引数で渡される。
【0147】この実施例12では、入力となるプログラ
ミング言語としてC言語を用いる方法を紹介したが、こ
れは他のいかなるプログラミング言語(例えば「Ad
a」)であっても構わない。同様に、この実施例12で
は、全ての実行文を対象とする方法を紹介したが、これ
は「モジュールの開始と終了」だけを対象とするもので
あっても構わない。
【0148】次に、従来例と比較して、この実施例12
の優れている点について説明する。この実施例12と同
じ機能を実現する従来の方法としては次のものが考えら
れる。
【0149】その方法とは、プログラミング言語記述の
任意の場所にプログラムの実行追跡処理を手作業で埋め
込むというものである。この方法はコンピュータの歴史
が始まった頃から行われているが、実行追跡処理を埋め
込むのに膨大な時間が必要(作業コストの問題)となる
だけでなく、経験年数などによって作業効率のばらつき
が大きい(属人性の問題)、ミスが入り込みやすい(作
業品質の問題)、プログラミング言語記述を修正する度
に実行追跡処理を埋め込み直す必要があるなど多くの問
題がある。
【0150】これに対しこの実施例12を使用した場
合、プログラムの実行追跡処理がプログラミング言語記
述601中に自動的に埋め込まれるので、同様な作業を
人間が行った場合に比べ、実行追跡処理の埋め込みに要
する時間を桁違いに短縮(数日に対して数秒)できるだ
けでなく、埋め込み漏れ、埋め込みミスといった事が全
く無くなるという効果がある。更に、 (1)入力となるプログラミング言語記述を読み込む。 (2)プログラミング言語記述に実行追跡処理を埋め込
む。 (3)加工したプログラミング言語記述を別のファイル
に出力する。 (4)出力されたファイルをコンパイルして実行モジュ
ールを生成する。 という手順を踏めば、オリジナルのプログラミング言語
記述601を一切変更せずに実行追跡処理を埋め込んだ
実行モジュールを生成できるので、プログラミング言語
記述601に直接実行追跡処理を埋め込むことによる弊
害、すなわち、 ・プログラミング言語記述が汚くなる(可読性、保守性
が低下する)。 ・実行追跡処理を埋め込む前の状態に戻せない。 といった問題を完全に解消できるという効果がある。
【0151】以上のようにこの実施例12によれば、図
75に示すように、プログラミング言語記述601を入
力にする字句解析手段602、構文解析手段603、お
よび実行追跡処理埋込み手段1201を設けることによ
り、プログラミング言語記述601にプログラムの実行
追跡処理を自動的に埋め込むことができるので、結果と
してプログラム生産および保守の合理化に大きく寄与す
ることができる。
【0152】実施例13.図80は実施例13のプログ
ラム生産支援装置を示す構成図である。図80におい
て、101は各機能の階層構造と種別が記述された「仕
様記述」、106は前記実施例1によって自動生成され
た「機能構成図」、1301は前記実施例2によって自
動生成された「疑似言語記述のひな形」、301はモジ
ュールのインターフェース仕様と処理フローが記述され
た「疑似言語記述」、307は前記実施例3によって自
動生成された「デザインレビュー用資料」、403は、
前記実施例4によって自動生成された「木構造チャー
ト」、503は前記実施例5によって自動生成された
「プログラミング言語記述のひな形」、601は特定の
プログラミング言語で記述された「プログラミング言語
記述」、703は前記実施例7によって自動生成された
「木構造チャート」、805は前記実施例8によって自
動生成された「モジュール仕様書」、903は前記実施
例9によって自動生成された「モジュール構成図」、1
004は前記実施例10によって自動生成された「シン
ボル一覧表」、1102は前記実施例11によって自動
出力された「警告メッセージ」、1202は前記実施例
12によって自動生成された「加工されたプログラミン
グ言語記述」である。
【0153】この実施例13のプログラム生産支援装置
は、本発明の第1〜12の実施例によって構成されてい
るので、それぞれの部分の動作は第1〜12の実施例で
説明した通りである。
【0154】この実施例13では前記実施例1〜12を
全て組み合わせたものを紹介したが、この発明は前記実
施例1〜12を任意に組み合わせたものであっても適用
できる。
【0155】次に、従来例と比較して、この実施例13
の優れている点について説明する。この実施例13と同
じ機能を実現する従来の方法としては次のものが考えら
れる。
【0156】その方法とは、 (1)プログラムの機能構成を決定する。 (2)ワープロなどを用いてそれらの情報を手作業で機
能構成図の形にまとめる。 (3)機能構成図を見ながら手作業でモジュール分割を
行う。 (4)モジュールのインターフェース仕様と処理フロー
を決定する。 (5)ワープロなどを用いてそれらの情報を手作業で仕
様書の形にまとめる。 (6)仕様書を見ながらプログラミング言語記述を手作
業でコーディングする。 (7)プログラミング言語記述を見ながら必要な図表を
手作業で作成する。 (8)プログラムの実行追跡処理を手作業で埋め込む。 (9)プログラムを実行する。 というものである。この方法は現在一般的に行われてい
るものであり現実的ではあるが、手作業が主体である以
上は、それぞれの作業に膨大な時間が必要(作業コスト
の問題)となるだけでなく、作業のやり方に個人差が出
る(属人性の問題)、ミスが入り込みやすい(作業品質
の問題)など多くの問題がある。個々の作業を人手で行
っている限り本質的にこれらの問題を解決することは不
可能である。
【0157】これに対しこの実施例13を使用した場
合、事務的な作業(例えば機能構成図の作成など)が全
て自動的に行われるので、同じ作業を人間が手作業で行
う場合に比べ、作業効率および品質が格段に高くなる
(理論的にミスは発生しない)という効果がある。更
に、前工程で作成されレビューされた情報(仕様記述、
疑似言語記述など)を後工程の入力(ひな形)として流
用できるので、前工程を担当した作業者の意図を後工程
の作業者に正確に伝えられるという効果がある。また、
それぞれの段階で利用される入力は単なるテキストであ
り、一般的なテキスト・エディタを用いて作成できるの
で、新たに専用エディタを開発して提供する必要がない
ばかりか、ユーザが自分の使い慣れたエディタを用いて
仕様記述を作成できるという効果がある。これはこの実
施例13が、低コストで実現かつ運用可能であることを
意味している。
【0158】以上のようにこの実施例13によれば、前
記実施例1〜12のいずれか2つ以上の組み合わせを利
用することにより、プログラム生産における事務的な処
理を自動化できると共に、前工程で作成されレビューさ
れた情報を後工程の入力として流用できるので、結果と
してプログラム生産および保守の合理化に大きく寄与す
ることができる。
【0159】
【発明の効果】以上のように第1の発明は、書籍の目次
に準じた形式の仕様記述を入力にすると共に、プログラ
ム生産支援装置中に、字句解析手段、構文解析手段、階
層構造抽出手段、および機能構成図生成手段を設けるこ
とにより、機能構成図の作成に要する時間を大幅に短縮
できると共に、機能構成図の品質を格段に高めることが
でき、結果としてプログラム生産の高品質化に大きく寄
与することができる。
【0160】第2の発明は、書籍の目次に準じた形式の
仕様記述を入力にすると共に、プログラム生産支援装置
中に、字句解析手段、構文解析手段、階層構造抽出手
段、ディレクトリ生成手段、ファイル生成手段、および
モジュール生成手段を設けることにより、プログラムを
実現するのに必要なディレクトリ、ファイル、およびモ
ジュールを自動生成できると共に、前工程の設計情報
(機能構成)を後工程に忠実に伝えることができ、結果
としてプログラム生産の高品質化に大きく寄与すること
ができる。
【0161】第3の発明は、プログラミング言語に準じ
た疑似言語記述を入力にすると共に、プログラム生産支
援装置中に、字句解析手段、構文解析手段、インターフ
ェース仕様抽出手段、モジュール定義・参照抽出手段、
およびデザインレビュー用資料生成手段を設けることに
より、デザインレビュー用資料の作成に要する時間を大
幅に短縮できると共に、デザインレビュー用資料の品質
を格段に高めることができ、結果としてプログラム生産
の高品質化に大きく寄与することができる。
【0162】第4の発明は、プログラミング言語に準じ
た疑似言語記述を入力にすると共に、プログラム生産支
援装置中に、字句解析手段、構文解析手段、制御構造抽
出手段、および木構造チャート生成手段を設けることに
より、木構造チャートの作成に要する時間を大幅に短縮
できると共に、木構造チャートの品質を格段に高めるこ
とができ、結果としてプログラム生産の高品質化に大き
く寄与することができる。
【0163】第5の発明は、プログラミング言語に準じ
た疑似言語記述を入力にすると共に、プログラム生産支
援装置中に、字句解析手段、構文解析手段、制御構造抽
出手段、制御構造変換手段、および処理説明→コメント
変換手段を設けることにより、前工程(設計)で十分に
デザインレビューされた情報(疑似言語記述)を後工程
(コーディング)の入力(プログラミング言語記述のひ
な形)として流用できるので、設計者の意図をプログラ
マに正確に伝えることができ、結果としてプログラム生
産の高品質化に大きく寄与することができる。
【0164】第6の発明は、プログラミング言語記述を
入力にすると共に、プログラム生産支援装置中に、字句
解析手段、構文解析手段、制御構造抽出手段、制御構造
変換手段、およびコメント→処理説明変換手段を設ける
ことにより、プログラミング言語記述からモジュールの
インターフェース仕様に関する情報を自動的に抽出でき
るので、実際に動作しているプログラムの仕様を容易か
つ正確に把握することが可能となり、結果としてプログ
ラム生産および保守の高品質化に大きく寄与することが
できる。
【0165】第7の発明はプログラミング言語記述を入
力にすると共に、プログラム生産支援装置中に、字句解
析手段、構文解析手段、制御構造抽出手段、不要情報割
愛手段、および木構造チャート生成手段を設けることに
より、プログラミング言語記述からユーザの要求に応じ
た木構造チャートを生成することができ、結果としてプ
ログラム生産および保守の高品質化に大きく寄与するこ
とができる。
【0166】第8の発明は、プログラミング言語記述を
入力にすると共に、プログラム生産支援装置中に、字句
解析手段、構文解析手段、インターフェース仕様抽出手
段、モジュール定義・参照抽出手段、モジュール名照合
手段、およびモジュール仕様書抽出手段を設けることに
より、プログラミング言語記述から実際のモジュール定
義に正確に対応したモジュール仕様書を自動生成するこ
とができ、結果としてプログラム生産および保守の合理
化に大きく寄与することができる。
【0167】第9の発明は、プログラミング言語記述を
入力にすると共に、プログラム生産支援装置中に、字句
解析手段、構文解析手段、モジュール定義・参照抽出手
段、同一構造割愛手段、およびモジュール構成図生成手
段を設けることにより、プログラミング言語記述から実
用的なモジュール構成図を自動生成することができ、結
果としてプログラム生産および保守の合理化に大きく寄
与することができる。
【0168】第10の発明は、プログラミング言語記述
を入力にすると共に、プログラム生産支援装置中に、字
句解析手段、構文解析手段、シンボル定義抽出手段、シ
ンボル定義並換え手段、およびシンボル一覧表生成手段
を設けることにより、プログラミング言語記述から実用
的なシンボル一覧表を自動生成することができ、結果と
してプログラム生産および保守の合理化に大きく寄与す
ることができる。
【0169】第11の発明は、プログラミング言語記述
を入力にすると共に、プログラム生産支援装置中に、字
句解析手段、特定パターンの検出手段を設けることによ
り、プログラミング言語記述から文法的には正しいが意
味的にはエラーである可能性が高い記述を自動的に検出
できるので、結果としてプログラム生産の高品質化に大
きく寄与することができる。
【0170】第12の発明は、プログラミング言語記述
を入力にすると共に、プログラム生産支援装置中に、字
句解析手段、構文解析手段、および実行追跡処理埋込み
手段を設けることにより、プログラミング言語記述にプ
ログラムの実行追跡処理を自動的に埋め込むことができ
るので、結果としてプログラム生産および保守の合理化
に大きく寄与することができる。
【0171】第13の発明は、上記第1〜第12の発明
のいずれか2つ以上の組み合わせを利用することによ
り、プログラム生産における事務的な処理を自動化でき
ると共に、前工程で作成されレビューされた情報を後工
程の入力として流用できるので、結果としてプログラム
生産および保守の合理化に大きく寄与することができ
る。
【図面の簡単な説明】
【図1】 実施例1のプログラム生産支援装置を示す構
成図である。
【図2】 実施例1のフローチャートである。
【図3】 実施例1の仕様記述(入力)の一例を示す図
である。
【図4】 実施例1の仕様記述(入力)の一例の続きを
示す図である。
【図5】 実施例1の機能構成図(出力)の一例を示す
図である。
【図6】 実施例1の機能構成図(出力)の一例の続き
を示す図である。
【図7】 実施例1の木構造の一例を示す図である。
【図8】 実施例2のプログラム生産支援装置を示す構
成図である。
【図9】 実施例2のフローチャートである。
【図10】 実施例2のディレクトリ構成(出力)の一
例を示す図である。
【図11】 実施例2の疑似言語記述のひな形(出力)
の一例を示す図である。
【図12】 実施例3のプログラム生産支援装置を示す
構成図である。
【図13】 実施例3のフローチャートである。
【図14】 実施例3の疑似言語記述(入力)の一例を
示す図である。
【図15】 実施例3の疑似言語記述(入力)の一例の
続きを示す図である。
【図16】 実施例3のデザインレビュー用資料(出
力)の一例を示す図である。
【図17】 実施例4のプログラム生産支援装置を示す
構成図である。
【図18】 実施例4のフローチャートである。
【図19】 実施例4の木構造チャート(出力)の一例
を示す図である。
【図20】 実施例4の木構造の一例を示す図である。
【図21】 実施例4の木構造チャートの一例を示す図
である。
【図22】 実施例4の木構造の一例を示す図である。
【図23】 実施例4の木構造チャートの一例を示す図
である。
【図24】 実施例5のプログラム生産支援装置を示す
構成図である。
【図25】 実施例5のフローチャートである。
【図26】 実施例5のプログラミング言語記述のひな
形(出力)の一例を示す図である。
【図27】 実施例5のプログラミング言語記述のひな
形(出力)の一例の続きを示す図である。
【図28】 実施例5の木構造の一例を示す図である。
【図29】 実施例6のプログラム生産支援装置を示す
構成図である。
【図30】 実施例6のフローチャートである。
【図31】 実施例6のプログラミング言語記述(入
力)の一例を示す図である。
【図32】 図31の続きを示す図である。
【図33】 実施例6の疑似言語記述(出力)の一例を
示す図である。
【図34】 図34の続きを示す図である。
【図35】 実施例6の木構造の一例を示す図である。
【図36】 実施例6の木構造の一例を示す図である。
【図37】 実施例7のプログラム生産支援装置を示す
構成図である。
【図38】 実施例7のフローチャートである。
【図39】 実施例7のプログラミング言語記述(入
力)の一例を示す図である。
【図40】 実施例7のプログラミング言語記述(入
力)の一例の続きを示す図である。
【図41】 実施例7の木構造チャート(出力)の一例
を示す図である。
【図42】 実施例7の木構造チャート(出力)の一例
を示す図である。
【図43】 実施例7の木構造チャート(出力)の一例
を示す図である。
【図44】 実施例7の木構造の一例を示す図である。
【図45】 実施例7の木構造チャートの一例を示す図
である。
【図46】 実施例7の木構造の一例を示す図である。
【図47】 実施例7の木構造チャートの一例を示す図
である。
【図48】 実施例7の木構造チャートの一例を示す図
である。
【図49】 実施例8のプログラム生産支援装置を示す
構成図である。
【図50】 実施例8のフローチャートである。
【図51】 実施例8のプログラミング言語記述(入
力)の一例を示す図である。
【図52】 図51の続きを示す図である。
【図53】 実施例8のモジュール仕様書(出力)の一
例を示す図である。
【図54】 実施例9のプログラム生産支援装置を示す
構成図である。
【図55】 実施例9のフローチャートである。
【図56】 実施例9のプログラミング言語記述(入
力)の一例を示す図である。
【図57】 図56の続きを示す図である。
【図58】 従来のモジュール構成図(出力)の一例を
示す図である。
【図59】 実施例9のモジュール構成図(出力)の一
例を示す図である。
【図60】 実施例9の木構造の一例を示す図である。
【図61】 実施例9の木構造の一例を示す図である。
【図62】 実施例10のプログラム生産支援装置を示
す構成図である。
【図63】 実施例10のフローチャートである。
【図64】 実施例10のプログラミング言語記述(入
力)の一例を示す図である。
【図65】 図64の続きを示す図である。
【図66】 図65の続きを示す図である。
【図67】 図66の続きを示す図である。
【図68】 従来のシンボル一覧表(出力)の一例を示
す図である。
【図69】 実施例10のシンボル一覧表(出力)の一
例を示す図である。
【図70】 実施例11のプログラム生産支援装置を示
すブロック図である。
【図71】 実施例11のフローチャートである。
【図72】 実施例11のプログラミング言語記述(入
力)の一例を示す図である。
【図73】 図72の続きを示す図である。
【図74】 実施例11の警告メッセージ(出力)の一
例を示す図である。
【図75】 実施例12のプログラム生産支援装置を示
す構成図である。
【図76】 実施例12のフローチャートである。
【図77】 実施例12のプログラミング言語記述(入
力)の一例を示す図である。
【図78】 実施例12の加工されたプログラミング言
語記述(出力)の一例を示す図である。
【図79】 実施例12の実行結果(出力)の一例を示
す図である。
【図80】 実施例13のプログラム生産支援装置を示
す構成図である。
【図81】 実施例1〜13の前提となるハードウェア
構成を示す図である。
【図82】 従来のプログラム生産支援装置を示す構成
図である。
【図83】 従来のフローチャートである。
【符号の説明】
101 仕様記述、102 字句解析手段、103 構
文解析手段、104 階層構造抽出手段、105 機能
構成図生成手段、106 機能構成図、201 ディレ
クトリ生成手段、202 ファイル生成手段、203
モジュール生成手段、204 外部記憶、205 ディ
レクトリ、206 ファイル1、207 ファイル2、
208 ファイルN、209 モジュール1、210
モジュール2、211 モジュールN、301 疑似言
語記述、302 字句解析手段、303 構文解析手
段、304 インターフェース仕様抽出手段、305
モジュール定義・参照抽出手段、306 デザインレビ
ュー用資料生成手段、307 デザインレビュー用資
料、401 制御構造抽出手段、402 木構造チャー
ト生成手段、403 木構造チャート、501 制御構
造変換手段、502 処理説明→コメント変換手段、5
03 プログラミング言語記述のひな形、601 プロ
グラミング言語記述、602 字句解析手段、603
構文解析手段、604 制御構造抽出手段、605 制
御構造変換手段、606 コメント→処理説明変換手
段、701 不要情報割愛手段、702 木構造チャー
ト生成手段、703 木構造チャート、801 インタ
ーフェース仕様抽出手段、802 モジュール定義・参
照抽出手段、803 モジュール名照合手段、804
モジュール仕様書生成手段、805 モジュール仕様
書、901 同一構造割愛手段、902 モジュール構
成図生成手段、903 モジュール構成図、1001
シンボル定義抽出手段、1002 シンボル定義並換え
手段、1003 シンボル一覧表生成手段、1004
シンボル一覧表、1101 特定パターンの検出手段、
1102 警告メッセージ、1201 実行追跡処理埋
込み手段、1202 加工されたプログラミング言語記
述、1301 疑似言語記述のひな形、1401 キー
ボード、1402 ディスプレイ、1403 計算機、
1404 外部記憶、1405 プリンタ、1501
データ入力手段、1502 データ定義部、1503
表示部、1504 表示手段、1505 ブロックチャ
ート編集部、1506 ブロックエディタ部、1507
ソースコード出力部、1508 ソースコード記録手
段。

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】 自然言語と各機能の階層構造と種別を示
    す特殊記号で記述された仕様記述を読み込みその内容を
    字句に分解する「字句解析手段」と、 字句に分解された仕様記述の構文解析を行う「構文解析
    手段」と、 構文解析結果をもとに各機能の階層構造を木構造に変換
    して記憶する「階層構造抽出手段」と、 木構造をもとに仕様記述に対応した機能構成図を生成す
    る「機能構成図生成手段」と、を有することを特徴とす
    るプログラム生産支援装置。
  2. 【請求項2】 自然言語と各機能の階層構造と種別を示
    す特殊記号で記述された仕様記述を読み込みその内容を
    字句に分解する「字句解析手段」と、 字句に分解された仕様記述の構文解析を行う「構文解析
    手段」と、 構文解析結果をもとに各機能の階層構造を木構造に変換
    して記憶する「階層構造抽出手段」と、 木構造をもとに仕様記述としての識別子の末尾記号に従
    ってディレクトリを生成する「ディレクトリ生成手段」
    と、 木構造をもとに仕様記述としての識別子の末尾記号に従
    ってファイルを生成する「ファイル生成手段」と、 木構造をもとに仕様記述としての識別子の末尾記号に従
    ってモジュールを生成する「モジュール生成手段」と、
    を有することを特徴とするプログラム生産支援装置。
  3. 【請求項3】 自然言語とプログラミング言語に準じた
    制御構造で記述された疑似言語記述を読み込みその内容
    を字句に分解する「字句解析手段」と、 字句に分解された疑似言語記述の構文解析を行う「構文
    解析手段」と、 構文解析結果をもとに仕様記述部の各欄に記述されたイ
    ンターフェース仕様を記憶する「インターフェース仕様
    抽出手段」と、 構文解析結果をもとにロジック記述部に記述されたモジ
    ュールの定義・参照を記憶する「モジュール定義・参照
    抽出手段」と、 記憶した情報をもとに「疑似言語記述」に対応したデザ
    インレビュー用資料を生成する「デザインレビュー用資
    料生成手段」と、を有することを特徴とするプログラム
    生産支援装置。
  4. 【請求項4】 自然言語とプログラミング言語に準じた
    制御構造で記述された疑似言語記述を読み込みその内容
    を字句に分解する「字句解析手段」と、 字句に分解された疑似言語記述の構文解析を行う「構文
    解析手段」と、 構文解析結果をもとに処理説明および制御構造を木構造
    に変換して記憶する「制御構造抽出手段」と、 木構造をもとに疑似言語記述に対応した木構造チャート
    を生成する「木構造チャート生成手段」と、を有するこ
    とを特徴とするプログラム生産支援装置。
  5. 【請求項5】 自然言語とプログラミング言語に準じた
    制御構造で記述された疑似言語記述を読み込みその内容
    を字句に分解する「字句解析手段」と、 字句に分解された疑似言語記述の構文解析を行う「構文
    解析手段」と、 構文解析結果をもとに処理説明および制御構造を木構造
    に変換して記憶する「制御構造抽出手段」と、 木構造をもとに疑似言語の制御構造をそれに対応するプ
    ログラミング言語の制御構造に変換する「制御構造変換
    手段」と、 木構造をもとに疑似言語の処理説明をプログラミング言
    語のコメントに変換する「処理説明→コメント変換手
    段」と、を有することを特徴とするプログラム生産支援
    装置。
  6. 【請求項6】 特定のプログラミング言語で記述された
    プログラミング言語記述を読み込みその内容を字句に分
    解する「字句解析手段」と、 字句に分解されたプログラミング言語記述の構文解析を
    行う「構文解析手段」と、 構文解析結果をもとにプログラムの制御構造およびそれ
    に付随するコメントを木構造に変換して記憶する「制御
    構造抽出手段」と、 木構造をもとにプログラミング言語の制御構造をそれに
    対応する疑似言語の制御構造に変換する「制御構造変換
    手段」と、 木構造をもとにプログラミング言語の文およびコメント
    を疑似言語の処理説明に変換する「コメント→処理説明
    変換手段」と、を有することを特徴とするプログラム生
    産支援装置。
  7. 【請求項7】 特定のプログラミング言語で記述された
    プログラミング言語記述を読み込みその内容を字句に分
    解する「字句解析手段」と、 字句に分解されたプログラミング言語記述の構文解析を
    行う「構文解析手段」と、 構文解析結果をもとにプログラムの制御構造とそれに付
    随するコメントを木構造に変換して記憶する「制御構造
    抽出手段」と、 指定に応じて木構造チャートに反映したくない情報を木
    構造から削除する「不要情報割愛手段」と、 木構造をもとにプログラミング言語記述に対応した木構
    造チャートを生成する「木構造チャート生成手段」と、
    を有することを特徴とするプログラム生産支援装置。
  8. 【請求項8】 特定のプログラミング言語で記述された
    プログラミング言語記述を読み込みその内容を字句に分
    解する「字句解析手段」と、 字句に分解されたプログラミング言語記述の構文解析を
    行う「構文解析手段」と、 構文解析結果をもとにヘッダーコメント中の各欄に記述
    されたインターフェース仕様を記憶する「インターフェ
    ース仕様抽出手段」と、 構文解析結果をもとにモジュールの定義・参照を木構造
    に変換して記憶する「モジュール定義・参照抽出手段」
    と、 ヘッダーコメント中のMODULE欄の名称が実際のモジュー
    ル名に一致しているかを照合する「モジュール名照合手
    段」と、 記憶した情報をもとにプログラミング言語記述に対応し
    たモジュール仕様書を生成する「モジュール仕様書生成
    手段」と、を有することを特徴とするプログラム生産支
    援装置。
  9. 【請求項9】 特定のプログラミング言語で記述された
    プログラミング言語記述を読み込みその内容を字句に分
    解する「字句解析手段」と、 字句に分解されたプログラミング言語記述の構文解析を
    行う「構文解析手段」と、 構文解析結果をもとにモジュールの定義・参照を木構造
    に変換して記憶する「モジュール定義・参照抽出手段」
    と、 木構造をもとに同一構造を木構造から削除し「〜と同
    じ」という情報で置換する「同一構造割愛手段」と、 木構造をもとにプログラミング言語記述に対応したモジ
    ュール構成図を生成する「モジュール構成図生成手段」
    と、を有することを特徴とするプログラム生産支援装
    置。
  10. 【請求項10】 特定のプログラミング言語で記述され
    たプログラミング言語記述を読み込みその内容を字句に
    分解する「字句解析手段」と、 字句に分解されたプログラミング言語記述の構文解析を
    行う「構文解析手段」と、 構文解析結果をもとにシンボルの定義情報を記憶する
    「シンボル定義抽出手段」と、 シンボルの定義情報を定義位置の順に並べ換える「シン
    ボル定義並換え手段」と、 シンボルの定義情報をもとにプログラミング言語記述に
    対応したシンボル一覧表を生成する「シンボル一覧表生
    成手段」と、を有することを特徴とするプログラム生産
    支援装置。
  11. 【請求項11】 特定のプログラミング言語で記述され
    た「プログラミング言語記述」を読み込みその内容を字
    句に分解する「字句解析手段」と、 字句に分解されたプログラミング言語記述中から特定の
    位置に位置するものだけを抽出しその中に特定のパター
    ンが含まれていることを検出して警告メッセージを出力
    する「特定パターンの検出手段」と、を有することを特
    徴とするプログラム生産支援装置。
  12. 【請求項12】 特定のプログラミング言語で記述され
    たプログラミング言語記述を読み込みその内容を字句に
    分解する「字句解析手段」と、 字句に分解されたプログラミング言語記述の構文解析を
    行う「構文解析手段」と、 構文解析結果をもとにプログラミング言語記述中の所定
    の位置にプログラムの実行を追跡する為の実行追跡処理
    を埋込む「実行追跡処理埋込み手段」と、を有すること
    を特徴とするプログラム生産支援装置。
  13. 【請求項13】 下記複数の手段の組のうちのいずれか
    2つ以上の手段の組を組み合わせたことを特徴とするプ
    ログラム生産支援装置。上記複数の手段の組は、上記請
    求項1の「字句解析手段」、「構文解析手段」、「階層
    構造抽出手段」および「機能構成図生成手段」からなる
    組、又は上記請求項2の「ディレクトリ生成手段」、
    「ファイル生成手段」および「モジュール生成手段」か
    らなる組、又は上記請求項3の「字句解析手段」、「構
    文解析手段」、「インターフェース仕様抽出手段」、
    「モジュール定義・参照抽出手段」および「デザインレ
    ビュー用資料生成手段」からなる組、又は上記請求項4
    の「制御構造抽出手段」および「木構造チャート生成手
    段」からなる組、又は上記請求項5の「制御構造変換手
    段」および「処理説明→コメント変換手段」からなる
    組、又は上記請求項6の「字句解析手段」、「構文解析
    手段」、「制御構造抽出手段」、「制御構造変換手段」
    および「コメント→処理説明変換手段」からなる組、又
    は上記請求項7の「不要情報割愛手段」および「木構造
    チャート生成手段」からなる組、又は上記請求項8の
    「インターフェース仕様抽出手段」、「モジュール定義
    ・参照抽出手段」、「モジュール名照合手段」および
    「モジュール仕様書生成手段」からなる組、又は上記請
    求項9の「同一構造割愛手段」および「モジュール構成
    図生成手段」からなる組、又は上記請求項10の「シン
    ボル定義抽出手段」、「シンボル定義並換え手段」およ
    び「シンボル一覧表生成手段」からなる組、又は上記請
    求項11の「特定パターンの検出手段」の組、又は上記
    請求項12の「実行追跡処理埋込み手段」の組で構成さ
    れる。
JP06226928A 1994-09-21 1994-09-21 プログラム生産支援装置 Expired - Fee Related JP3112623B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP06226928A JP3112623B2 (ja) 1994-09-21 1994-09-21 プログラム生産支援装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP06226928A JP3112623B2 (ja) 1994-09-21 1994-09-21 プログラム生産支援装置

Publications (2)

Publication Number Publication Date
JPH0895761A true JPH0895761A (ja) 1996-04-12
JP3112623B2 JP3112623B2 (ja) 2000-11-27

Family

ID=16852806

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06226928A Expired - Fee Related JP3112623B2 (ja) 1994-09-21 1994-09-21 プログラム生産支援装置

Country Status (1)

Country Link
JP (1) JP3112623B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010079447A (ja) * 2008-09-24 2010-04-08 Fujitsu Ltd バグ検出支援プログラム、類似構文識別情報一覧出力プログラム、バグ検出支援装置およびバグ検出支援方法
JP2015005163A (ja) * 2013-06-21 2015-01-08 三菱電機株式会社 仕様書作成装置及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010079447A (ja) * 2008-09-24 2010-04-08 Fujitsu Ltd バグ検出支援プログラム、類似構文識別情報一覧出力プログラム、バグ検出支援装置およびバグ検出支援方法
JP2015005163A (ja) * 2013-06-21 2015-01-08 三菱電機株式会社 仕様書作成装置及びプログラム

Also Published As

Publication number Publication date
JP3112623B2 (ja) 2000-11-27

Similar Documents

Publication Publication Date Title
US6219831B1 (en) Device and method for converting computer programming languages
Robillard Schematic pseudocode for program constructs and its computer automation by schemacode
KR100470440B1 (ko) 법률 개정과정에서 필요한 각종 보고서의 규칙기반 자동생성 방법
JPH0895761A (ja) プログラム生産支援装置
CN112597011B (zh) 一种基于多语言的算子测试用例生成和优化方法
Andrews et al. The formal definition of Modula-2 and its associated interpreter
JP5994150B2 (ja) 文書作成方法、文書作成装置及び文書作成プログラム
US20030101192A1 (en) Method and system for a general computing software system
JP3003459B2 (ja) プログラム作成支援装置
JPH07160490A (ja) コーディング支援装置
JP4310401B2 (ja) 知識コードの生成方法およびその装置
JP4458491B2 (ja) テストコマンドファイル作成システムと方法およびプログラム
JPH0752387B2 (ja) ソフトウエア開発支援装置
JPH05134854A (ja) ソフトウエア開発支援装置
JPH07121379A (ja) 複数言語混在コンパイラ
JPS62145424A (ja) プログラム管理方法
JP3316884B2 (ja) 言語翻訳装置
JPH05265733A (ja) プログラム作成実行装置
CN115062040A (zh) 一种可视化的基于sql语句的代码生成方法及系统
JP2720643B2 (ja) プログラムジェネレータ生成装置
JPH08272596A (ja) プログラム設計書生成装置
Yoshino et al. Reverse engineering from COBOL to narrative specification
JPH11110202A (ja) ジョブ制御言語文自動作成方法
Leggate Computer-aided software engineering—turning the corner
Oliver T [subscript] EXspec, a Computer Aided Software Engineering tool for scientific and mathematical applications

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080922

Year of fee payment: 8

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080922

Year of fee payment: 8

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090922

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees