JPH07319677A - 自動的に構造化プログラムを生成する、プログラムされた計算機を用いて流れ図を作成する方法と装置 - Google Patents
自動的に構造化プログラムを生成する、プログラムされた計算機を用いて流れ図を作成する方法と装置Info
- Publication number
- JPH07319677A JPH07319677A JP6314908A JP31490894A JPH07319677A JP H07319677 A JPH07319677 A JP H07319677A JP 6314908 A JP6314908 A JP 6314908A JP 31490894 A JP31490894 A JP 31490894A JP H07319677 A JPH07319677 A JP H07319677A
- Authority
- JP
- Japan
- Prior art keywords
- icon
- flow
- statement
- flow chart
- icons
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000010586 diagram Methods 0.000 claims description 20
- 229910003460 diamond Inorganic materials 0.000 claims description 8
- 239000010432 diamond Substances 0.000 claims description 8
- 230000002401 inhibitory effect Effects 0.000 claims description 2
- 238000004519 manufacturing process Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 13
- 230000014509 gene expression Effects 0.000 description 11
- 238000013461 design Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
(57)【要約】
【目的】 ソフトウエア設計者が構造化ソフトウエアを
容易に効率的に開発して品質の高い製品をより安価に製
作することのできるソフトウエア開発ツールを提供す
る。 【構成】 プログラム可能な計算機(10)と、プログ
ラム可能な計算機(10)のディスプレイ(15)を用
いて構造化流れ図を作成し、前記流れ図から作成される
任意のプログラムが構造化プログラムになるような方法
であって、基本的な流れ形式の所定の組を第1ディスプ
レイ領域(15a)に表示し、流れ形式の前記組からユ
ーザが2つの流れ形式を選択できる手段(20、25)
を提供し、前記2つの選択された流れ形式を組み合わせ
て、前記ユーザが与える情報に従って新しい有効な流れ
形式を生成し、前記選択された流れ形式と任意の新しい
有効な流れ形式を前記ディスプレイ(15)の第2領域
に表示する、段階を含む。
容易に効率的に開発して品質の高い製品をより安価に製
作することのできるソフトウエア開発ツールを提供す
る。 【構成】 プログラム可能な計算機(10)と、プログ
ラム可能な計算機(10)のディスプレイ(15)を用
いて構造化流れ図を作成し、前記流れ図から作成される
任意のプログラムが構造化プログラムになるような方法
であって、基本的な流れ形式の所定の組を第1ディスプ
レイ領域(15a)に表示し、流れ形式の前記組からユ
ーザが2つの流れ形式を選択できる手段(20、25)
を提供し、前記2つの選択された流れ形式を組み合わせ
て、前記ユーザが与える情報に従って新しい有効な流れ
形式を生成し、前記選択された流れ形式と任意の新しい
有効な流れ形式を前記ディスプレイ(15)の第2領域
に表示する、段階を含む。
Description
【0001】
【産業上の利用分野】本発明は構造化された計算機プロ
グラムを作成する方法と装置に関する。すなわち、自動
的に構造化プログラムを生成する、プログラムされた計
算機を用いて流れ図を作成する方法と装置に関する。詳
しく言うと、本発明は、流れ図から作成された任意のプ
ログラムコードが構造化プログラムになるような、流れ
図を作成する方法と装置に関する。
グラムを作成する方法と装置に関する。すなわち、自動
的に構造化プログラムを生成する、プログラムされた計
算機を用いて流れ図を作成する方法と装置に関する。詳
しく言うと、本発明は、流れ図から作成された任意のプ
ログラムコードが構造化プログラムになるような、流れ
図を作成する方法と装置に関する。
【0002】
【従来の技術】流れ図プログラムは多数存在する(例え
ば、米国特許第4,546,435号、第4,872,
167号、第4,852,047号を参照)。しかし既
存のシステムの中には、本発明で用いる厳密な図形表示
方法に照らして、作成する流れ図が構造化されるよう支
援し、促進し、または要求するものはない。構造化され
ていない原始コードまたは流れ図は、「厄介なもの」ま
たは「スパゲッティ」と呼ばれる。純粋な、構造化され
た流れ図またはコードから逸れる程度に応じて「スパゲ
ッティ」度がある。構造化されていない流れ図(または
構造化されていない流れ図から得られるコード)は、構
造化された流れ図またはコードよりエラーが多くまた保
守が困難であることが知られている。
ば、米国特許第4,546,435号、第4,872,
167号、第4,852,047号を参照)。しかし既
存のシステムの中には、本発明で用いる厳密な図形表示
方法に照らして、作成する流れ図が構造化されるよう支
援し、促進し、または要求するものはない。構造化され
ていない原始コードまたは流れ図は、「厄介なもの」ま
たは「スパゲッティ」と呼ばれる。純粋な、構造化され
た流れ図またはコードから逸れる程度に応じて「スパゲ
ッティ」度がある。構造化されていない流れ図(または
構造化されていない流れ図から得られるコード)は、構
造化された流れ図またはコードよりエラーが多くまた保
守が困難であることが知られている。
【0003】埋め込み型計算機を備える製品(例えば電
話交換機メーカーの製品)のメーカーがソフトウエアに
頼る度合いはますます増えている。その理由は、ソフト
ウエアを含む製品の付加価値が製品への投資の中で占め
る割合がますます大きくなっているからである。ソフト
ウエアが与える処理機能は、顧客にとってますます貴重
なものになっている。
話交換機メーカーの製品)のメーカーがソフトウエアに
頼る度合いはますます増えている。その理由は、ソフト
ウエアを含む製品の付加価値が製品への投資の中で占め
る割合がますます大きくなっているからである。ソフト
ウエアが与える処理機能は、顧客にとってますます貴重
なものになっている。
【0004】顧客は製品が早く納入されることを要求す
る。顧客は購入する製品に、より多くの処理機能を要求
する。例えば電話交換機などのシステムでは、これはよ
り多くの交換機能を持つことである。機能に対する要求
や希望は年毎に複雑になっている。しかしメーカーにと
っては、所望の機能を持つソフトウエアを納期通りに、
高い品質で納入することは非常に難しい場合が多い。所
望の機能を備えた高品質のソフトウエアを納期通りに納
入できるメーカーの競争力は、それができないメーカー
に比べて非常に高い。
る。顧客は購入する製品に、より多くの処理機能を要求
する。例えば電話交換機などのシステムでは、これはよ
り多くの交換機能を持つことである。機能に対する要求
や希望は年毎に複雑になっている。しかしメーカーにと
っては、所望の機能を持つソフトウエアを納期通りに、
高い品質で納入することは非常に難しい場合が多い。所
望の機能を備えた高品質のソフトウエアを納期通りに納
入できるメーカーの競争力は、それができないメーカー
に比べて非常に高い。
【0005】
【発明が解決しようとする課題】製品またはプロジェク
トのコードの数が多くなるほど、コードを構造化するこ
とが重要になる。また構造化コードは、正しいコードを
開発するのに用いる方法の非常に重要な要素である。納
入するときにすでに正しいコードは、納入後に修正を要
するコードより全製作費がはるかに少ない。ソフトウエ
アの設計者は、コード開発の工程において恐らく最も希
少で高価な資源である。設計者の時間は効率よく用いら
れなければならない。ソフトウエアの設計者が時間を最
も有効に使う方法は、構造化コードを設計して書くこと
である。この目標は、今日のソフトウエア開発ツールを
用いては達成することが困難である。その理由は、開発
する流れ図またはコードを構造化することは設計者に任
されているからである。
トのコードの数が多くなるほど、コードを構造化するこ
とが重要になる。また構造化コードは、正しいコードを
開発するのに用いる方法の非常に重要な要素である。納
入するときにすでに正しいコードは、納入後に修正を要
するコードより全製作費がはるかに少ない。ソフトウエ
アの設計者は、コード開発の工程において恐らく最も希
少で高価な資源である。設計者の時間は効率よく用いら
れなければならない。ソフトウエアの設計者が時間を最
も有効に使う方法は、構造化コードを設計して書くこと
である。この目標は、今日のソフトウエア開発ツールを
用いては達成することが困難である。その理由は、開発
する流れ図またはコードを構造化することは設計者に任
されているからである。
【0006】
【課題を解決するための手段】従って本発明の目的は、
ソフトウエア設計者が構造化ソフトウエアを容易に効率
的に開発して品質の高い製品をより安価に製作すること
のできるソフトウエア開発ツールを提供することであ
る。
ソフトウエア設計者が構造化ソフトウエアを容易に効率
的に開発して品質の高い製品をより安価に製作すること
のできるソフトウエア開発ツールを提供することであ
る。
【0007】本発明の別の目的は、複雑でソフトウエア
の比重の高い製品を納期通りに高品質で納入できるよう
に、構造化ソフトウエアを開発することのできるソフト
ウエア開発ツールを提供することである。
の比重の高い製品を納期通りに高品質で納入できるよう
に、構造化ソフトウエアを開発することのできるソフト
ウエア開発ツールを提供することである。
【0008】本発明の更に別の目的は、開発されたソフ
トウエアが高い収益をあげるのに必要な性質を持つよう
なソフトウエア開発ツールを提供することである。
トウエアが高い収益をあげるのに必要な性質を持つよう
なソフトウエア開発ツールを提供することである。
【0009】本発明の一実施態様では、プログラム可能
な計算機と、プログラム可能な計算機のディスプレイを
用いて流れ図を作成し、前記流れ図から作成される任意
のプログラムが構造化プログラムになるような方法を提
供する。この方法は、基本的な流れ形式の所定の組を第
1ディスプレイ領域に表示し、流れ形式の前記組からユ
ーザが2つの流れ形式を選択できる手段を提供し、選択
された流れ形式の一方の流れ形式を他方の任意のステー
トメントボックス内に置くことにより前記2つの選択さ
れた流れ形式を組み合わせて、前記ユーザが与える情報
に従って新しい有効な流れ形式を生成し、前記選択され
た流れ形式と任意の新しい有効な流れ形式を前記ディス
プレイの第2領域に表示する、段階を含む。基本的な流
れ形式は、ステートメントボックス、2つのステートメ
ントボックスのシーケンス、FORおよびWHILEス
テートメント用の繰り返し形式、IF−THENおよび
IF−THEN−ELSEステートメントおよびCAS
Eステートメント用の論理形式を含む交代形式である。
な計算機と、プログラム可能な計算機のディスプレイを
用いて流れ図を作成し、前記流れ図から作成される任意
のプログラムが構造化プログラムになるような方法を提
供する。この方法は、基本的な流れ形式の所定の組を第
1ディスプレイ領域に表示し、流れ形式の前記組からユ
ーザが2つの流れ形式を選択できる手段を提供し、選択
された流れ形式の一方の流れ形式を他方の任意のステー
トメントボックス内に置くことにより前記2つの選択さ
れた流れ形式を組み合わせて、前記ユーザが与える情報
に従って新しい有効な流れ形式を生成し、前記選択され
た流れ形式と任意の新しい有効な流れ形式を前記ディス
プレイの第2領域に表示する、段階を含む。基本的な流
れ形式は、ステートメントボックス、2つのステートメ
ントボックスのシーケンス、FORおよびWHILEス
テートメント用の繰り返し形式、IF−THENおよび
IF−THEN−ELSEステートメントおよびCAS
Eステートメント用の論理形式を含む交代形式である。
【0010】本発明の一実施態様では、プログラム可能
な計算機のディスプレイ上で流れ図を組み立てる装置を
提供する。このディスプレイは、それぞれが1入力線と
1出力線を持つ少なくとも1つの多角形を備え、それぞ
れが1入力線と1出力線を持つ、1組の基本的な流れ形
式アイコンをスクリーン上に表示する手段と、ユーザが
少なくとも1つの基本的流れ形式アイコンを選択できる
ユーザ入力手段と、スクリーン上の異なる領域上の前記
ユーザが指定した位置に前記選択されたアイコンを表示
する手段と、を備える。
な計算機のディスプレイ上で流れ図を組み立てる装置を
提供する。このディスプレイは、それぞれが1入力線と
1出力線を持つ少なくとも1つの多角形を備え、それぞ
れが1入力線と1出力線を持つ、1組の基本的な流れ形
式アイコンをスクリーン上に表示する手段と、ユーザが
少なくとも1つの基本的流れ形式アイコンを選択できる
ユーザ入力手段と、スクリーン上の異なる領域上の前記
ユーザが指定した位置に前記選択されたアイコンを表示
する手段と、を備える。
【0011】本発明の一実施態様の装置は、前記少なく
とも1つの選択されたアイコン内の少なくとも1つの多
角形に関連するテキストを入力するユーザ入力手段と、
前記入力されたテキストを前記少なくとも1つの選択さ
れたアイコン内の前記少なくとも1つの多角形に隣接す
る領域に表示する手段と、を更に備える。
とも1つの選択されたアイコン内の少なくとも1つの多
角形に関連するテキストを入力するユーザ入力手段と、
前記入力されたテキストを前記少なくとも1つの選択さ
れたアイコン内の前記少なくとも1つの多角形に隣接す
る領域に表示する手段と、を更に備える。
【0012】本発明の一実施態様の装置内の各アイコン
は長方形または正方形を含み、前記選択されたアイコン
を表示する手段は、2つの選択された流れ形式アイコン
を組み合わせる手段と、選択されたアイコンを表示する
ようユーザが指定した位置が所定の規則によると正しい
ことを決定する手段と、指定された位置が前記所定の規
則によると正しくないことを決定する手段により行われ
た決定に応じて前記選択されたアイコンを表示する手段
の動作を禁止する手段と、を備える。
は長方形または正方形を含み、前記選択されたアイコン
を表示する手段は、2つの選択された流れ形式アイコン
を組み合わせる手段と、選択されたアイコンを表示する
ようユーザが指定した位置が所定の規則によると正しい
ことを決定する手段と、指定された位置が前記所定の規
則によると正しくないことを決定する手段により行われ
た決定に応じて前記選択されたアイコンを表示する手段
の動作を禁止する手段と、を備える。
【0013】本発明の一実施態様では、計算機のディス
プレイ上で流れ図を組み立てる装置を提供する。前記デ
ィスプレイは、前記ディスプレイ上の第1領域に、それ
ぞれが少なくとも1つのステートメントボックスと1入
力線と1出力線を備える、所定の複数の流れ図アイコン
を表示する手段と、前記複数の流れ図アイコンの中の1
つを選択するよう指示するユーザ入力手段と、前記選択
されたアイコンを前記ディスプレイの第2領域に置くよ
う指示するユーザ入力手段と、前記選択された流れ図ア
イコンの前記指示された位置が所定の規則に合うかどう
かを決定する手段と、ただし前記規則により1つのアイ
コンを前に選択された別のアイコンのステートメントボ
ックス内に置いて新しい流れ図アイコンを作ることがで
き、1つのアイコンと他のアイコンを直列の関係に置く
ことができ、前記流れ図の中の制御の流れは下向きだけ
が許され、前記流れ図の中ではどの流れの線も交差する
ことを禁止するものであり、また位置を指示する前記ユ
ーザ入力手段により生成される任意の新しい流れ図アイ
コンを前記所定の複数の流れ図アイコンに一時的に追加
する手段と、を備える。
プレイ上で流れ図を組み立てる装置を提供する。前記デ
ィスプレイは、前記ディスプレイ上の第1領域に、それ
ぞれが少なくとも1つのステートメントボックスと1入
力線と1出力線を備える、所定の複数の流れ図アイコン
を表示する手段と、前記複数の流れ図アイコンの中の1
つを選択するよう指示するユーザ入力手段と、前記選択
されたアイコンを前記ディスプレイの第2領域に置くよ
う指示するユーザ入力手段と、前記選択された流れ図ア
イコンの前記指示された位置が所定の規則に合うかどう
かを決定する手段と、ただし前記規則により1つのアイ
コンを前に選択された別のアイコンのステートメントボ
ックス内に置いて新しい流れ図アイコンを作ることがで
き、1つのアイコンと他のアイコンを直列の関係に置く
ことができ、前記流れ図の中の制御の流れは下向きだけ
が許され、前記流れ図の中ではどの流れの線も交差する
ことを禁止するものであり、また位置を指示する前記ユ
ーザ入力手段により生成される任意の新しい流れ図アイ
コンを前記所定の複数の流れ図アイコンに一時的に追加
する手段と、を備える。
【0014】本発明の更に別の目的、機能、付随する利
点は、各実施態様の以下の詳細な説明を図面と共に読め
ば、この技術に精通した人には明らかになる。単なる例
示として、本発明の装置の望ましい実施態様と関連する
図面を参照して以下に詳細に説明する。
点は、各実施態様の以下の詳細な説明を図面と共に読め
ば、この技術に精通した人には明らかになる。単なる例
示として、本発明の装置の望ましい実施態様と関連する
図面を参照して以下に詳細に説明する。
【0015】
【実施例】この説明において、「構造化」という語は特
定の厳密に定義された性質を持つコードまたは流れ図を
記述する形容詞として用いる。「これらのコードを構造
化して下さい」というように表現した場合は動詞であっ
て、コードまたは流れ図で実行する特定の行動を示す。
定の厳密に定義された性質を持つコードまたは流れ図を
記述する形容詞として用いる。「これらのコードを構造
化して下さい」というように表現した場合は動詞であっ
て、コードまたは流れ図で実行する特定の行動を示す。
【0016】エラーなくコンパイルする、またはエラー
なくアセンブルする(アセンブラ言語の場合)全てのコ
ードは、あるレベルで「編成された」という意味で「構
造化され」ている。コードが言語の構文規則に従うとい
う意味で編成されていない場合は、コンパイルまたはア
センブルしない。しかし、これはこの応用の「構造化」
という意味とは全く異なる。ここで用いる「構造化」と
いう語は、以下に詳細に説明するように、厳密に定義さ
れている。
なくアセンブルする(アセンブラ言語の場合)全てのコ
ードは、あるレベルで「編成された」という意味で「構
造化され」ている。コードが言語の構文規則に従うとい
う意味で編成されていない場合は、コンパイルまたはア
センブルしない。しかし、これはこの応用の「構造化」
という意味とは全く異なる。ここで用いる「構造化」と
いう語は、以下に詳細に説明するように、厳密に定義さ
れている。
【0017】本発明のプログラムは構造化流れ図を要求
できるという新しい属性を持っており、構造化流れ図の
固有の性質から、これを用いて作った流れ図はほぼ正確
である確率が高い。流れ図または流れ図から得られるコ
ードが最初から正しければ経済的に非常に有利である。
本発明を用いれば、年間に莫大な費用の節約になる。
できるという新しい属性を持っており、構造化流れ図の
固有の性質から、これを用いて作った流れ図はほぼ正確
である確率が高い。流れ図または流れ図から得られるコ
ードが最初から正しければ経済的に非常に有利である。
本発明を用いれば、年間に莫大な費用の節約になる。
【0018】図1は、本発明を実現するのに用いること
ができるハードウエアの実施態様を示す略図である。C
PU10は、ROM30に記憶されている本発明のプロ
グラムコードを実行する。一時的なデータを記憶するR
AM35も備える。ディスプレイ15はCPUに接続さ
れ、流れ図アイコンのユーザインターフェースと、ユー
ザが流れ図を作るのに用いる表示領域とを表示する。キ
ーボード20は、ユーザが計算機プログラムに命令を入
力するのに用いる。マウス25により、本発明が提供す
る流れ図アイコンのクリックやドラッグ操作などの、追
加のユーザ制御を行うことができる。
ができるハードウエアの実施態様を示す略図である。C
PU10は、ROM30に記憶されている本発明のプロ
グラムコードを実行する。一時的なデータを記憶するR
AM35も備える。ディスプレイ15はCPUに接続さ
れ、流れ図アイコンのユーザインターフェースと、ユー
ザが流れ図を作るのに用いる表示領域とを表示する。キ
ーボード20は、ユーザが計算機プログラムに命令を入
力するのに用いる。マウス25により、本発明が提供す
る流れ図アイコンのクリックやドラッグ操作などの、追
加のユーザ制御を行うことができる。
【0019】本発明の望ましい実施態様では6個の基本
的流れ形式または流れ形式アイコンがあり、1組の規則
に従ってこれを組み合わせることにより構造化流れ図を
作成する。これらの6個の基本的流れ形式を図2から図
7に示す。説明の都合上、「流れ形式」と「流れ形式ア
イコン」は同じものを指す。
的流れ形式または流れ形式アイコンがあり、1組の規則
に従ってこれを組み合わせることにより構造化流れ図を
作成する。これらの6個の基本的流れ形式を図2から図
7に示す。説明の都合上、「流れ形式」と「流れ形式ア
イコン」は同じものを指す。
【0020】本発明で構造化プログラムを作るために
は、基本的流れ形式を用いる際に次の3規則に従わなけ
ればならない。 1. 有効な流れ形式アイコンの組から2個の流れ形式
アイコンを選択する。同じ流れ形式アイコンを2回選択
した場合は、2個の流れ形式アイコンを選択したと数え
る。これらの2個の選択されたアイコンは、規則2によ
って組み合わせなければならない。 2. 組み合わせ規則。任意の有効な流れ形式を、他の
有効な流れ形式の任意のステートメントボックス内に置
くことができる。流れ形式アイコンの写しを自分のステ
ートメントボックスの一つの内部に置くこともできる。 3. 組み合わせ規則に従って得られた流れ形式は全て
それ自身が有効な流れ形式アイコンであって、6個の基
本的流れ形式アイコンの1つと同じように用いることが
できる。段階1に戻って有効な流れ形式アイコンの組
(拡張されたものでもよい)の中から選択する(必要で
あれば)ことによりプログラムの開発は続けられる。
は、基本的流れ形式を用いる際に次の3規則に従わなけ
ればならない。 1. 有効な流れ形式アイコンの組から2個の流れ形式
アイコンを選択する。同じ流れ形式アイコンを2回選択
した場合は、2個の流れ形式アイコンを選択したと数え
る。これらの2個の選択されたアイコンは、規則2によ
って組み合わせなければならない。 2. 組み合わせ規則。任意の有効な流れ形式を、他の
有効な流れ形式の任意のステートメントボックス内に置
くことができる。流れ形式アイコンの写しを自分のステ
ートメントボックスの一つの内部に置くこともできる。 3. 組み合わせ規則に従って得られた流れ形式は全て
それ自身が有効な流れ形式アイコンであって、6個の基
本的流れ形式アイコンの1つと同じように用いることが
できる。段階1に戻って有効な流れ形式アイコンの組
(拡張されたものでもよい)の中から選択する(必要で
あれば)ことによりプログラムの開発は続けられる。
【0021】次に定義により、本発明の構造化流れ図は
6個の基本的流れ形式アイコンを用いて上の3規則に従
って作成された(または、され得る)流れ図である。実
際は、本発明によるプログラムの作成は第2規則の例外
も含み、2個の流れ形式の一方を他方のステートメント
ボックス内に挿入するのではなく、2個の選択された流
れ図を直列に接続することができる。それは、本発明に
よりプログラムを作成すると言っても、3規則に厳密に
従って行う必要はないからである。必要なことは、3規
則に従って得られるものと同じ結果を得ることである。
6個の基本的流れ形式アイコンを用いて上の3規則に従
って作成された(または、され得る)流れ図である。実
際は、本発明によるプログラムの作成は第2規則の例外
も含み、2個の流れ形式の一方を他方のステートメント
ボックス内に挿入するのではなく、2個の選択された流
れ図を直列に接続することができる。それは、本発明に
よりプログラムを作成すると言っても、3規則に厳密に
従って行う必要はないからである。必要なことは、3規
則に従って得られるものと同じ結果を得ることである。
【0022】例えば3つの連続したステートメントだけ
の簡単なプログラムを作るには、1個のシーケンス流れ
形式(図3)を選択し、次に別のシーケンス形式を選択
してこれを最初のシーケンス流れ形式の第2ステートメ
ントボックス内に置くことができる。できた組み合わせ
を展開すると、3ステートメントのシーケンス流れ形式
になる。実際は、本発明のユーザは流れ形式のこのよう
なシーケンスを選択する必要があるのではなく、本発明
の一実施態様として(図16に示すように)、ユーザは
1個のステートメントアイコンを選択し、次にシーケン
スアイコンを直列に置くことにより、同じ3ステートメ
ントシーケンス流れ形式を得ることができる。
の簡単なプログラムを作るには、1個のシーケンス流れ
形式(図3)を選択し、次に別のシーケンス形式を選択
してこれを最初のシーケンス流れ形式の第2ステートメ
ントボックス内に置くことができる。できた組み合わせ
を展開すると、3ステートメントのシーケンス流れ形式
になる。実際は、本発明のユーザは流れ形式のこのよう
なシーケンスを選択する必要があるのではなく、本発明
の一実施態様として(図16に示すように)、ユーザは
1個のステートメントアイコンを選択し、次にシーケン
スアイコンを直列に置くことにより、同じ3ステートメ
ントシーケンス流れ形式を得ることができる。
【0023】構造化プログラムを実現し作成するため、
多くの規則や流れ形式アイコンやグラフを開発すること
ができる。上に述べた規則や流れ形式アイコンの組が唯
一の可能な組ではない。
多くの規則や流れ形式アイコンやグラフを開発すること
ができる。上に述べた規則や流れ形式アイコンの組が唯
一の可能な組ではない。
【0024】規則や流れ形式の特定の組を作るに当たっ
て、流れ形式の数と規則の数および複雑さの間にバラン
スをとらなければならない。本発明では、書くことがで
きるどんなプログラムの作成にも用いることができるシ
ステムが確立されている。つまりこの規則は、1行のプ
ログラムにでも1億行のプログラムにでも適用できなけ
ればならない。この範囲をカバーするため、図2のステ
ートメントアイコンと図3のシーケンスアイコンは両方
とも、本発明の望ましい実施態様の有効な流れ形式の組
に含まれる。
て、流れ形式の数と規則の数および複雑さの間にバラン
スをとらなければならない。本発明では、書くことがで
きるどんなプログラムの作成にも用いることができるシ
ステムが確立されている。つまりこの規則は、1行のプ
ログラムにでも1億行のプログラムにでも適用できなけ
ればならない。この範囲をカバーするため、図2のステ
ートメントアイコンと図3のシーケンスアイコンは両方
とも、本発明の望ましい実施態様の有効な流れ形式の組
に含まれる。
【0025】例えば設計者が1行だけのプログラムを作
ろうとし、これを本発明の構造化プログラムの規則に従
って行おうとする場合は、単一ステートメント流れ形式
を2度選択して自分の中に挿入する。これで工程が終わ
り、プログラムが書かれる。このプログラムは規則に従
って書かれているので構造化されている。
ろうとし、これを本発明の構造化プログラムの規則に従
って行おうとする場合は、単一ステートメント流れ形式
を2度選択して自分の中に挿入する。これで工程が終わ
り、プログラムが書かれる。このプログラムは規則に従
って書かれているので構造化されている。
【0026】最初の2つの流れ形式アイコンのどちらか
または両方を用いなければ、アルゴリズムに従ってコー
ドを構造化する方法を指定するための規則はより複雑に
ならざるを得ない。これらの規則に従えば、作られたプ
ログラムは確かに構造化される。
または両方を用いなければ、アルゴリズムに従ってコー
ドを構造化する方法を指定するための規則はより複雑に
ならざるを得ない。これらの規則に従えば、作られたプ
ログラムは確かに構造化される。
【0027】本発明の範囲内で、流れ形式のやや異なる
組と規則のやや異なる組を定義して同じ結果を得ること
ができる。上に説明した規則を用いれば、ユーザは1行
だけのプログラム(またはサブルーチン)を書くことが
できる。(ユーザはステートメントボックス流れ形式を
選択して自分の中に置く。) しかしプログラムの中の
必要なステートメント(流れ形式)が1つだけであれ
ば、ユーザは1つの所望の流れ形式を選択して終わりに
することができるような、特別の規則を追加してよい。
このための費用は新しい規則の追加である。というの
は、6個の基本的流れ形式はそのままあり、更に規則が
追加されるからである。
組と規則のやや異なる組を定義して同じ結果を得ること
ができる。上に説明した規則を用いれば、ユーザは1行
だけのプログラム(またはサブルーチン)を書くことが
できる。(ユーザはステートメントボックス流れ形式を
選択して自分の中に置く。) しかしプログラムの中の
必要なステートメント(流れ形式)が1つだけであれ
ば、ユーザは1つの所望の流れ形式を選択して終わりに
することができるような、特別の規則を追加してよい。
このための費用は新しい規則の追加である。というの
は、6個の基本的流れ形式はそのままあり、更に規則が
追加されるからである。
【0028】上に述べた規則は完全である。プログラム
が構造化コーディングの3規則と6個の基本的な流れ形
式アイコンに従って構造化され、またはすることができ
れば、そのプログラムは構造化されている。プログラム
(または流れ図)が構造化コードの規則に従って再び作
成することはできないように作られていれば、そのプロ
グラムは構造化されていない。
が構造化コーディングの3規則と6個の基本的な流れ形
式アイコンに従って構造化され、またはすることができ
れば、そのプログラムは構造化されている。プログラム
(または流れ図)が構造化コードの規則に従って再び作
成することはできないように作られていれば、そのプロ
グラムは構造化されていない。
【0029】このように、プログラムが構造化されてい
るかどうかを決定する標準は厳密に客観的である。主観
的な判断は必要ない。このように、本発明による計算機
プログラムは、プログラムが構造化されているかどうか
を決定するのに理想的である。
るかどうかを決定する標準は厳密に客観的である。主観
的な判断は必要ない。このように、本発明による計算機
プログラムは、プログラムが構造化されているかどうか
を決定するのに理想的である。
【0030】図2−図7を参照して、6個の基本的流れ
形式を以下に説明する。流れ形式は本発明の望ましい実
施態様のプログラムのユーザインターフェース部分を用
いて表示されるので、アイコンとも呼ばれる。
形式を以下に説明する。流れ形式は本発明の望ましい実
施態様のプログラムのユーザインターフェース部分を用
いて表示されるので、アイコンとも呼ばれる。
【0031】本発明の望ましい実施態様において、図2
はステートメントアイコンを示し図3はシーケンスアイ
コン示す。図4は、本発明の望ましい実施態様のFOR
およびWHILE言語構造を示す繰り返し形式を表す。
図5および図6は、本発明の望ましい実施態様のIF−
THENおよびIF−THEN−ELSE言語構造を表
す交代形式アイコン、特に論理形式アイコンの1つの型
を示す。図7は、本発明の望ましい実施態様のCASE
言語構造を表す交代形式アイコンの別の型を示す。すな
わち、菱形の中または付近に指定されたテストの結果に
従って、流れ形式内の経路の組から1つの経路を選択す
る。
はステートメントアイコンを示し図3はシーケンスアイ
コン示す。図4は、本発明の望ましい実施態様のFOR
およびWHILE言語構造を示す繰り返し形式を表す。
図5および図6は、本発明の望ましい実施態様のIF−
THENおよびIF−THEN−ELSE言語構造を表
す交代形式アイコン、特に論理形式アイコンの1つの型
を示す。図7は、本発明の望ましい実施態様のCASE
言語構造を表す交代形式アイコンの別の型を示す。すな
わち、菱形の中または付近に指定されたテストの結果に
従って、流れ形式内の経路の組から1つの経路を選択す
る。
【0032】各アイコンは、入力線Iと出力線Oにより
接続される1つ以上の多角形から成る。各アイコンは1
入力線Iと1出力線Oだけを持つ。アイコン内の各多角
形も1入力線と1出力線だけを持つ。各アイコンの出力
線は、そのアイコンの入力線の真下に置かれる。
接続される1つ以上の多角形から成る。各アイコンは1
入力線Iと1出力線Oだけを持つ。アイコン内の各多角
形も1入力線と1出力線だけを持つ。各アイコンの出力
線は、そのアイコンの入力線の真下に置かれる。
【0033】FORおよびWHILEステートメントは
自分の中で実行する論理式を必要とする。しかし、これ
らの形式は分岐ではなくてループを主にしているので、
論理形式ではなく繰り返し形式と呼ばれる。
自分の中で実行する論理式を必要とする。しかし、これ
らの形式は分岐ではなくてループを主にしているので、
論理形式ではなく繰り返し形式と呼ばれる。
【0034】論理流れ形式、IF−THENおよびIF
−THEN−ELSE論理ステートメントに関する本発
明のプログラムには多数の約束がある。詳しく言うと、
IF−THENは2つの経路を提供する。TRUEの側
にはステートメントボックスがあるが、FALSEの側
にはステートメントボックスがない。この規則は、アイ
コン内にTRUEおよびFALSEのラベルを設けるこ
とによりアイコン内に作られている。定義により、IF
−THENのFALSEの経路にはステートメントボッ
クスがない。本発明で流れ図にこの約束が取り入れられ
ているのは、これが原始コードの約束だからである。流
れ図と原始コードを似たものにすることが目標の一部で
ある。定義により、原始コードのIF−THENステー
トメントはFALSEの経路にステートメントボックス
を持つことができない。
−THEN−ELSE論理ステートメントに関する本発
明のプログラムには多数の約束がある。詳しく言うと、
IF−THENは2つの経路を提供する。TRUEの側
にはステートメントボックスがあるが、FALSEの側
にはステートメントボックスがない。この規則は、アイ
コン内にTRUEおよびFALSEのラベルを設けるこ
とによりアイコン内に作られている。定義により、IF
−THENのFALSEの経路にはステートメントボッ
クスがない。本発明で流れ図にこの約束が取り入れられ
ているのは、これが原始コードの約束だからである。流
れ図と原始コードを似たものにすることが目標の一部で
ある。定義により、原始コードのIF−THENステー
トメントはFALSEの経路にステートメントボックス
を持つことができない。
【0035】論理式がFALSEの場合にユーザがIF
−THENステートメント内のステートメントボックス
を実行したい場合は、論理式の前にNOTを入れなけれ
ばならない。これにより式は負になる。式の結果がFA
LSEになると、NOTにより真になる。従って、内部
の論理式がFALSEになったときにIF−THENの
ステートメントボックスが実行される。ステートメント
ボックスを実行するには、論理式は(NOTを含んで)
TRUEでなければならない。
−THENステートメント内のステートメントボックス
を実行したい場合は、論理式の前にNOTを入れなけれ
ばならない。これにより式は負になる。式の結果がFA
LSEになると、NOTにより真になる。従って、内部
の論理式がFALSEになったときにIF−THENの
ステートメントボックスが実行される。ステートメント
ボックスを実行するには、論理式は(NOTを含んで)
TRUEでなければならない。
【0036】図に示すように、これまでの慣例とは異な
り、TRUEおよびFALSEの択一経路は決定菱形の
横または底から出るようには描かない。これは、決定菱
形の中に論理式を置くことが難しいことが多いからであ
る。決定菱形のそばであれば長い論理式でも置く余地が
十分ある。しかしこのためには経路を菱形の真下に移す
必要がある。
り、TRUEおよびFALSEの択一経路は決定菱形の
横または底から出るようには描かない。これは、決定菱
形の中に論理式を置くことが難しいことが多いからであ
る。決定菱形のそばであれば長い論理式でも置く余地が
十分ある。しかしこのためには経路を菱形の真下に移す
必要がある。
【0037】本発明では、IF−THENまたはIF−
THEN−ELSEは論理式と共にだけ用いられる。論
理式はTRUEかFALSEかだけを評価することがで
きる。他のことはできない。
THEN−ELSEは論理式と共にだけ用いられる。論
理式はTRUEかFALSEかだけを評価することがで
きる。他のことはできない。
【0038】本発明の約束により、IF−THENステ
ートメントでもIF−THEN−ELSEステートメン
トでもTRUE分岐は右側に置く。この約束にした理由
は、IF−THEN−ELSEステートメントにおいて
論理式の結果がTRUEであればステートメントの第1
のまたは最初の組を実行するというのが、ほとんど全て
の言語での定義だからである。論理式の結果がFALS
Eであれば、ステートメントの第2のまたは最後の組を
実行する。西欧社会では、最初が右側というのがTRU
Eである。同様に最後が左側というのがFALSEであ
る。従って、本発明の作図の約束は、計算機言語の構造
の約束と標準的な社会の慣習との組合わせの延長上にあ
る。
ートメントでもIF−THEN−ELSEステートメン
トでもTRUE分岐は右側に置く。この約束にした理由
は、IF−THEN−ELSEステートメントにおいて
論理式の結果がTRUEであればステートメントの第1
のまたは最初の組を実行するというのが、ほとんど全て
の言語での定義だからである。論理式の結果がFALS
Eであれば、ステートメントの第2のまたは最後の組を
実行する。西欧社会では、最初が右側というのがTRU
Eである。同様に最後が左側というのがFALSEであ
る。従って、本発明の作図の約束は、計算機言語の構造
の約束と標準的な社会の慣習との組合わせの延長上にあ
る。
【0039】図5および図6では、本発明の望ましい実
施態様のアイコンにTRUE−FALSEラベルが付い
ている。「IF論理」式はない。これは望ましい実施態
様のプログラムを用いて、ユーザが追加するものであ
る。
施態様のアイコンにTRUE−FALSEラベルが付い
ている。「IF論理」式はない。これは望ましい実施態
様のプログラムを用いて、ユーザが追加するものであ
る。
【0040】本発明で実現される構造化流れ図方式で
は、上向きの線はあり得ない。上向きの線がないので、
流れ線に矢印を用いる必要は全くない。全ての流れ線は
下向きである。この約束により流れ図はすっきりする。
流れ図がすっきりしているので読み易くもある。流れの
方向を示す矢印を探す必要がない。もう1つの重要な約
束は、構造化流れ図では流れ線が互いに交差する必要が
全くないことである。
は、上向きの線はあり得ない。上向きの線がないので、
流れ線に矢印を用いる必要は全くない。全ての流れ線は
下向きである。この約束により流れ図はすっきりする。
流れ図がすっきりしているので読み易くもある。流れの
方向を示す矢印を探す必要がない。もう1つの重要な約
束は、構造化流れ図では流れ線が互いに交差する必要が
全くないことである。
【0041】原則として、本発明の方法と装置を用いて
作られる流れ図ではページ間の接続は許されない。この
規則には多くの例外がある。多数のケースがあってCA
SEステートメントがページの外にはみ出すようなCA
SEステートメントの場合はページ間の接続が許され
る。
作られる流れ図ではページ間の接続は許されない。この
規則には多くの例外がある。多数のケースがあってCA
SEステートメントがページの外にはみ出すようなCA
SEステートメントの場合はページ間の接続が許され
る。
【0042】有限状態機械(FSM)を記述する流れ図
を描く場合は、状態符号はCASEステートメントと同
様な挙動をする。その状態内で受けることのできる各信
号は、CASEステートメントのケースと同様である。
この型の状態は「待ち」状態とも呼ばれる。待ち状態は
受信点として有効に動作する。その点で受けることので
きる信号や事象が多数ある状態の場合は、ページ間の接
続が許される。本発明の望ましい実施態様のプログラム
を実現する際に、ページ間の接続を行うことは通常の設
計者の技術の範囲内と考えられる。
を描く場合は、状態符号はCASEステートメントと同
様な挙動をする。その状態内で受けることのできる各信
号は、CASEステートメントのケースと同様である。
この型の状態は「待ち」状態とも呼ばれる。待ち状態は
受信点として有効に動作する。その点で受けることので
きる信号や事象が多数ある状態の場合は、ページ間の接
続が許される。本発明の望ましい実施態様のプログラム
を実現する際に、ページ間の接続を行うことは通常の設
計者の技術の範囲内と考えられる。
【0043】図8は、1つの流れ形式アイコンが他の流
れ形式アイコンの適当なステートメントボックス内に置
かれている状態を示す。新しく作られた有効な流れ形式
を図9に示す。図9はIF−TEHN−ELSE流れ形
式で、そのTRUE側のステートメントボックス内にI
F−THEN流れ形式を持つものを示す。この新しく作
られた有効な流れ形式は、元の6個の基本的流れ形式ア
イコンと同じ種類になる。更に、他の1つのステートメ
ントボックスの中に新しい流れ形式を置くことにより新
しく作られた流れ形式を他の流れ形式と組み合わせても
よいし、既存の流れ形式を1つの新しい流れ形式ステー
トメントボックスの中に置いてもよい。また新しく作ら
れた流れ形式を複写して、自分の1つのステートメント
ボックスの中に置いてもよい。本発明では、これらの作
られた流れ形式はメモリ内に一時的に記憶されるのであ
って、6個の基本的アイコンの所定の組の一部にはなら
ない。
れ形式アイコンの適当なステートメントボックス内に置
かれている状態を示す。新しく作られた有効な流れ形式
を図9に示す。図9はIF−TEHN−ELSE流れ形
式で、そのTRUE側のステートメントボックス内にI
F−THEN流れ形式を持つものを示す。この新しく作
られた有効な流れ形式は、元の6個の基本的流れ形式ア
イコンと同じ種類になる。更に、他の1つのステートメ
ントボックスの中に新しい流れ形式を置くことにより新
しく作られた流れ形式を他の流れ形式と組み合わせても
よいし、既存の流れ形式を1つの新しい流れ形式ステー
トメントボックスの中に置いてもよい。また新しく作ら
れた流れ形式を複写して、自分の1つのステートメント
ボックスの中に置いてもよい。本発明では、これらの作
られた流れ形式はメモリ内に一時的に記憶されるのであ
って、6個の基本的アイコンの所定の組の一部にはなら
ない。
【0044】有効な流れ形式をこのように組み合わせる
作業は、ユーザがプログラムを作り終えるまで何度でも
繰り返される。
作業は、ユーザがプログラムを作り終えるまで何度でも
繰り返される。
【0045】図10は、IF−THENアイコンをFO
Rループの中に置いたものを示す。IF−THENステ
ートメントの内部には、図10に示すようにステートメ
ントボックスと送信ステートメントボックスの2つのス
テートメントのシーケンスがある。送信ステートメント
ボックスは、特殊な型のステートメントを表す特殊な形
状にした別個の長方形のステートメントボックスの例で
ある。これらの特殊な形状は、従来の流れ図方式におい
て出力をプリンタ装置に送ったり、値をメモリに記憶し
たりするステートメントに一般に用いられる形状で表現
してよい。これらの特殊な形状はプログラムの流れに影
響を与えるものではなく、プログラムを用途の要求に一
致させるために用いられる。特殊な形状のどれを選択す
るかは、この開示を見た通常の設計者が決めるものであ
る。図には示していないが、本発明の一実施態様のプロ
グラミングによって、ユーザは基本的な流れ形式の1つ
を選択した後で、形式の中の1つの長方形を利用可能な
特殊な形状に変更することができる。
Rループの中に置いたものを示す。IF−THENステ
ートメントの内部には、図10に示すようにステートメ
ントボックスと送信ステートメントボックスの2つのス
テートメントのシーケンスがある。送信ステートメント
ボックスは、特殊な型のステートメントを表す特殊な形
状にした別個の長方形のステートメントボックスの例で
ある。これらの特殊な形状は、従来の流れ図方式におい
て出力をプリンタ装置に送ったり、値をメモリに記憶し
たりするステートメントに一般に用いられる形状で表現
してよい。これらの特殊な形状はプログラムの流れに影
響を与えるものではなく、プログラムを用途の要求に一
致させるために用いられる。特殊な形状のどれを選択す
るかは、この開示を見た通常の設計者が決めるものであ
る。図には示していないが、本発明の一実施態様のプロ
グラミングによって、ユーザは基本的な流れ形式の1つ
を選択した後で、形式の中の1つの長方形を利用可能な
特殊な形状に変更することができる。
【0046】図11は、よく起こるCASEステートメ
ントの処理方法の例を示す。ステートメントの機能を理
解しやすくするため、各ケースの内容をサブルーチンで
呼び出さなければならない場合がしばしばある。同様
に、CASEステートメント自身をルーチン本体内の唯
一のステートメントとしてそのルーチン内に置かなけれ
ばならないことがしばしばある。これは、CASEステ
ートメントや、CASEステートメントの外部の密接に
関連する他のステートメントに関連するコードを1ペー
ジ内に納めるためにしばしば必要になる。
ントの処理方法の例を示す。ステートメントの機能を理
解しやすくするため、各ケースの内容をサブルーチンで
呼び出さなければならない場合がしばしばある。同様
に、CASEステートメント自身をルーチン本体内の唯
一のステートメントとしてそのルーチン内に置かなけれ
ばならないことがしばしばある。これは、CASEステ
ートメントや、CASEステートメントの外部の密接に
関連する他のステートメントに関連するコードを1ペー
ジ内に納めるためにしばしば必要になる。
【0047】上に述べた方法に従って流れ図を作成する
と、流れ図の結果は図12に示すようなある新しい性質
を持つ。
と、流れ図の結果は図12に示すようなある新しい性質
を持つ。
【0048】まず、コードのモジュールの一番上の入力
点は、必ず一番下の出力点の真上に描かれる。更に、ス
テートメントボックスであった各領域の付近にボックス
を描くこともできる。最後にステートメントボックスで
あった領域の付近にボックスを描くと、そのボックスは
2本だけの線と交わり、一方は上部の中央に、他方は上
の線の真下の底部の中央に描かれる。
点は、必ず一番下の出力点の真上に描かれる。更に、ス
テートメントボックスであった各領域の付近にボックス
を描くこともできる。最後にステートメントボックスで
あった領域の付近にボックスを描くと、そのボックスは
2本だけの線と交わり、一方は上部の中央に、他方は上
の線の真下の底部の中央に描かれる。
【0049】図7のCASEステートメントでは、3つ
の選択肢すなわち3本の択一経路だけが示されている。
実際には、CASEステートメントは2本以上の択一経
路を持つ。本発明の望ましい実施態様では、ユーザはア
イコン内に必要な経路の数を指定するように指示され
る。
の選択肢すなわち3本の択一経路だけが示されている。
実際には、CASEステートメントは2本以上の択一経
路を持つ。本発明の望ましい実施態様では、ユーザはア
イコン内に必要な経路の数を指定するように指示され
る。
【0050】上に述べたように、本発明の流れ図を用い
てプログラムを書く場合は、どの特定のルーチンの流れ
図も1ページ以内に納めなければならない。CASEス
テートメントの選択する経路が多すぎて1ページ以内に
表示できない場合を除けば、これは正しい。これを行う
ため、設計者は一番上から始めて一度に1つずつ階層を
下がり、細目の一番下のレベルに達しなければならな
い。
てプログラムを書く場合は、どの特定のルーチンの流れ
図も1ページ以内に納めなければならない。CASEス
テートメントの選択する経路が多すぎて1ページ以内に
表示できない場合を除けば、これは正しい。これを行う
ため、設計者は一番上から始めて一度に1つずつ階層を
下がり、細目の一番下のレベルに達しなければならな
い。
【0051】ページにまたがらない、つまりモジュール
方式のコードを作成するため、プログラムをいくつかの
レベルに分解する必要がある。各レベルは、前のまたは
他のレベルから呼び出すことができるモジュールでなけ
ればならない。
方式のコードを作成するため、プログラムをいくつかの
レベルに分解する必要がある。各レベルは、前のまたは
他のレベルから呼び出すことができるモジュールでなけ
ればならない。
【0052】レベルを作成する基本的な規則として、高
位のレベルから次の低位のレベルの概要を見るか参照す
ることができなければならない。例えば原則として、船
の設計では船全体の図から船を構成するデッキの組を見
ることができる。別の例として建物の図がある。建物全
体の図から、原則的に建物の中に約何階あるかを見るこ
とができる。
位のレベルから次の低位のレベルの概要を見るか参照す
ることができなければならない。例えば原則として、船
の設計では船全体の図から船を構成するデッキの組を見
ることができる。別の例として建物の図がある。建物全
体の図から、原則的に建物の中に約何階あるかを見るこ
とができる。
【0053】船の特定のデッキの図から、デッキの上の
各室がどこにあるかを見ることができる。同様に、建物
の中の特定の階の設計図から、その階の各室を見ること
ができる。船の機関室の図から、機関を見ることができ
る。機関の図から、ピストンを見ることができる。
各室がどこにあるかを見ることができる。同様に、建物
の中の特定の階の設計図から、その階の各室を見ること
ができる。船の機関室の図から、機関を見ることができ
る。機関の図から、ピストンを見ることができる。
【0054】これは工学において何世紀にも渡って実際
に行われてきた設計の規則である。しかしここに説明し
た階層化の基本的原理は、それよりはるかに長く用いら
れている。技術者は単に自然を見習ってシステムをサブ
システムに分割し、更にこのプロセスを必要な回数だけ
繰り返している。
に行われてきた設計の規則である。しかしここに説明し
た階層化の基本的原理は、それよりはるかに長く用いら
れている。技術者は単に自然を見習ってシステムをサブ
システムに分割し、更にこのプロセスを必要な回数だけ
繰り返している。
【0055】プログラム(または流れ図)の中のIF−
THENステートメントは何枚かの紙面やスクリーンに
分かれるのが普通である。あるサブルーチン(プログラ
ムにはサブルーチンもあると仮定する)は多数のページ
にまたがっていてよい。この状態はきわめて普通のこと
であって、多くの設計者はこれを悪いとは思っていな
い。大きなプログラムの設計では、これは必要なことと
考えられている。実はこれは全く必要ない。必要がない
だけではなく、非常に有害である。
THENステートメントは何枚かの紙面やスクリーンに
分かれるのが普通である。あるサブルーチン(プログラ
ムにはサブルーチンもあると仮定する)は多数のページ
にまたがっていてよい。この状態はきわめて普通のこと
であって、多くの設計者はこれを悪いとは思っていな
い。大きなプログラムの設計では、これは必要なことと
考えられている。実はこれは全く必要ない。必要がない
だけではなく、非常に有害である。
【0056】プログラムは、工学の他の対象と同様に設
計しなければならない。プログラム全体を記述する1ペ
ージが必要である。単一プロセスであってそのプロセス
が有限状態機械で表されていないプログラムでは、これ
は実際に必ず実行できる。
計しなければならない。プログラム全体を記述する1ペ
ージが必要である。単一プロセスであってそのプロセス
が有限状態機械で表されていないプログラムでは、これ
は実際に必ず実行できる。
【0057】多数のプロセスを含むソフトウエアの場合
は、この規則を、各プロセスを1ページに記述しなけれ
ばならない、に変更してよい。プロセスが有限状態機械
としてモデル化されている場合は、高レベルの記述(実
際に、ある意味を持ち、何かを行う)でも1ページに納
まらないことがある。この場合は、有限状態機械の各状
態を1ページに納めることができる(ここでも例外が許
されることがある)。状態/事象を分割した後では、1
モジュールを1ページに、の規則を厳密に適用すること
ができる。工学作図の見地から、ここでソフトウエアは
シーケンシャル(非実時間)コードと全く同じになる。
は、この規則を、各プロセスを1ページに記述しなけれ
ばならない、に変更してよい。プロセスが有限状態機械
としてモデル化されている場合は、高レベルの記述(実
際に、ある意味を持ち、何かを行う)でも1ページに納
まらないことがある。この場合は、有限状態機械の各状
態を1ページに納めることができる(ここでも例外が許
されることがある)。状態/事象を分割した後では、1
モジュールを1ページに、の規則を厳密に適用すること
ができる。工学作図の見地から、ここでソフトウエアは
シーケンシャル(非実時間)コードと全く同じになる。
【0058】これは原始コードでも流れ図でも同じであ
って、階層すなわち層の原理をソフトウエアに適用する
方法である。
って、階層すなわち層の原理をソフトウエアに適用する
方法である。
【0059】この全体の考え方を初めてソフトウエア設
計者に提案すると非常にショックを与えることが多い。
しかし、設計者が何ページにもまたがる論理ステートメ
ントや信号やルーチン(流れ図や原始コードの形式の中
の)と格闘しなければならない理由はない。6個の基本
的な流れ形式全てを必ず1ページに納めなければならな
い(CASEステートメントの場合はいくらかの例外が
あるが)。IF−THENやIF−THEN−ELSE
やWHILEやFORステートメントは、必ず一つのペ
ージで始まって同じページで終わらなければならない。
計者に提案すると非常にショックを与えることが多い。
しかし、設計者が何ページにもまたがる論理ステートメ
ントや信号やルーチン(流れ図や原始コードの形式の中
の)と格闘しなければならない理由はない。6個の基本
的な流れ形式全てを必ず1ページに納めなければならな
い(CASEステートメントの場合はいくらかの例外が
あるが)。IF−THENやIF−THEN−ELSE
やWHILEやFORステートメントは、必ず一つのペ
ージで始まって同じページで終わらなければならない。
【0060】この規則に従うだけで、ソフトウエアの質
は直ちに向上する。これはソフトウエア工学を除く全て
の他の工学の分野では実際に経験則になっている。「1
ページ規則」に従うだけで、ソフトウエア設計者は自動
的に層、レベル、階層で考えるようになる。これはまた
事物全体は最高レベルで表し、細目の低いレベルは低レ
ベルに置くように、自動的に大きな圧力をかける。全て
の他の工学の分野ではこれが全く標準的であるのに、ソ
フトウエア工学ではほとんど聞いたことがないというの
は驚くべきことである。
は直ちに向上する。これはソフトウエア工学を除く全て
の他の工学の分野では実際に経験則になっている。「1
ページ規則」に従うだけで、ソフトウエア設計者は自動
的に層、レベル、階層で考えるようになる。これはまた
事物全体は最高レベルで表し、細目の低いレベルは低レ
ベルに置くように、自動的に大きな圧力をかける。全て
の他の工学の分野ではこれが全く標準的であるのに、ソ
フトウエア工学ではほとんど聞いたことがないというの
は驚くべきことである。
【0061】コードのモジュールは1ページより大きく
てはならない。1ページより大きくなる場合は複数のル
ーチンに分解しなければならない。
てはならない。1ページより大きくなる場合は複数のル
ーチンに分解しなければならない。
【0062】1つのステートメントボックスに入れるこ
とのできるものは(構造化の規則に従えば)全て1つの
ルーチンに入れることができる。コードの一部をステー
トメントボックスで囲むことができなければ、コードの
その部分はルーチンに変換できる候補ではない。
とのできるものは(構造化の規則に従えば)全て1つの
ルーチンに入れることができる。コードの一部をステー
トメントボックスで囲むことができなければ、コードの
その部分はルーチンに変換できる候補ではない。
【0063】一般に流れ図でも原始コードでも、プログ
ラムが1組の図面とは見なされていない。更に、プログ
ラムが1組のモジュールとは、ほとんどまたは全く見な
されていない。ここで用いるモジュールとは、プロセ
ス、ルーチン、サブルーチン、プロシジャなどのプログ
ラム全体のサブルーチン的なものをいう。標準的に行わ
れている「流れ」の方法では、プログラムをレベルに分
解せずに全体を1つとして扱う。
ラムが1組の図面とは見なされていない。更に、プログ
ラムが1組のモジュールとは、ほとんどまたは全く見な
されていない。ここで用いるモジュールとは、プロセ
ス、ルーチン、サブルーチン、プロシジャなどのプログ
ラム全体のサブルーチン的なものをいう。標準的に行わ
れている「流れ」の方法では、プログラムをレベルに分
解せずに全体を1つとして扱う。
【0064】流れ形式は、たとえ長いCASEステート
メントを含んでいる場合でも、決して1ページを超えて
はいけない。CASEステートメントが他の流れ形式の
中にあるためにその流れ形式が1ページを超える場合
は、そのCASEステートメントをサブルーチンの中に
置かなければならない。CASEステートメントを含む
サブルーチンを呼び出すのは、原始コードの中の1行だ
けである。同じ原理が、本発明のプログラムで作成され
る流れ図にも当てはまる。このことは、全ての実行可能
なコード(個々のCASEステートメントまたは受信点
のリストが1ページより長い場合を除いて)は、1ペー
ジを超えないモジュール内に納まるはずであることを意
味する。
メントを含んでいる場合でも、決して1ページを超えて
はいけない。CASEステートメントが他の流れ形式の
中にあるためにその流れ形式が1ページを超える場合
は、そのCASEステートメントをサブルーチンの中に
置かなければならない。CASEステートメントを含む
サブルーチンを呼び出すのは、原始コードの中の1行だ
けである。同じ原理が、本発明のプログラムで作成され
る流れ図にも当てはまる。このことは、全ての実行可能
なコード(個々のCASEステートメントまたは受信点
のリストが1ページより長い場合を除いて)は、1ペー
ジを超えないモジュール内に納まるはずであることを意
味する。
【0065】このようにして、宣言や受信点のリストや
長いステートメントを除けば、全プログラムはそれぞれ
1ページに納まるユニットに分解される。従ってプログ
ラムは短い1組の「プログラム群」になる。各モジュー
ル自身は必ず理解しやすい。短くて1ページに納まるの
で、それ自身で理解しやすいはずである。これは実際に
は、モジュールが33行から50行程度より長くないコ
ードであることを意味する。同じことが本発明で作成さ
れる流れ図に要求される。
長いステートメントを除けば、全プログラムはそれぞれ
1ページに納まるユニットに分解される。従ってプログ
ラムは短い1組の「プログラム群」になる。各モジュー
ル自身は必ず理解しやすい。短くて1ページに納まるの
で、それ自身で理解しやすいはずである。これは実際に
は、モジュールが33行から50行程度より長くないコ
ードであることを意味する。同じことが本発明で作成さ
れる流れ図に要求される。
【0066】設計者にとってまず大切なことは正しいプ
ログラムを書くことである。これに比べれば、その他の
ことは2次的である。設計者が正しいプログラムを書く
ためには、コードに組織と秩序がなければならない。工
学作図の原理をうまく用いるために、設計者はルーチン
を十分使わなければならない。
ログラムを書くことである。これに比べれば、その他の
ことは2次的である。設計者が正しいプログラムを書く
ためには、コードに組織と秩序がなければならない。工
学作図の原理をうまく用いるために、設計者はルーチン
を十分使わなければならない。
【0067】プログラムに秩序を与える第1の手段は構
造化コードを用いることである。プログラムに秩序を与
える第2の強力な手段は、モジュールが常に短くなるよ
うに工学作図の原理を構造化コードに適用することであ
る。
造化コードを用いることである。プログラムに秩序を与
える第2の強力な手段は、モジュールが常に短くなるよ
うに工学作図の原理を構造化コードに適用することであ
る。
【0068】本発明の望ましい実施態様では、上に述べ
た規則やアイコンは図1に示す型のプログラムされた計
算機を用いて実現することができる。図13および図1
4は、本発明に従ってプログラムを作成するソフトウエ
アルーチンの例示の流れ図を示す。プログラムのコーデ
ィングや、用いる言語と計算機システムの選択は、本特
許を読む人の自由である。上に述べたコーディングの原
則は、エキスパートシステムや他のプログラミング技術
を用いて、本発明のプログラムで自由に実現してよい。
この開示を理解すれば、本発明のプログラムを実現しコ
ード化することは通常の設計者の技術の範囲内であると
考えられる。
た規則やアイコンは図1に示す型のプログラムされた計
算機を用いて実現することができる。図13および図1
4は、本発明に従ってプログラムを作成するソフトウエ
アルーチンの例示の流れ図を示す。プログラムのコーデ
ィングや、用いる言語と計算機システムの選択は、本特
許を読む人の自由である。上に述べたコーディングの原
則は、エキスパートシステムや他のプログラミング技術
を用いて、本発明のプログラムで自由に実現してよい。
この開示を理解すれば、本発明のプログラムを実現しコ
ード化することは通常の設計者の技術の範囲内であると
考えられる。
【0069】図13は主ルーチンを示す。段階S300
で、スクリーンディスプレイの1領域内に流れ図アイコ
ンの所定の組を表示する。この表示は、図18に示すよ
うに、現在多くのシステムで用いられているウインドウ
配列や所定のアイコンのパネルから成るものでよい。図
18は、本発明の実施態様のプログラムのユーザインタ
ーフェースとして用いられる例示の一表示形式を示す。
領域15aは、図2から図7に示す6個の基本的な流れ
形式アイコンを含む。領域15bは、ユーザが作成する
流れ図を表示する領域として用いられる。
で、スクリーンディスプレイの1領域内に流れ図アイコ
ンの所定の組を表示する。この表示は、図18に示すよ
うに、現在多くのシステムで用いられているウインドウ
配列や所定のアイコンのパネルから成るものでよい。図
18は、本発明の実施態様のプログラムのユーザインタ
ーフェースとして用いられる例示の一表示形式を示す。
領域15aは、図2から図7に示す6個の基本的な流れ
形式アイコンを含む。領域15bは、ユーザが作成する
流れ図を表示する領域として用いられる。
【0070】段階S310は、ユーザがキーを押すかマ
ウスを動かしたことを検知したときに入るユーザ入力ル
ーチンである。
ウスを動かしたことを検知したときに入るユーザ入力ル
ーチンである。
【0071】図14は、段階S310のユーザ入力サブ
ルーチンを示す。ユーザ入力段階S320で、ユーザ入
力がアイコンを選択したものかどうかを決定する。この
選択は、例えば領域15aからマウスかカーソルキーか
タッチパッド機構を用いて行ったものでよい。アイコン
を選択した場合は、プログラムはTRUEの経路を通っ
て段階S330に進む。これはユーザ配置ルーチンで、
以下に図15を参照して説明する。段階S320でのテ
ストの結果がFALSEの場合は、段階S340でテキ
ストの入力かどうかをテストする。そうであればTRU
Eの経路をとり、ユーザは前に選択したアイコンに関連
するテキストを入力するよう指示される。ユーザが入力
したテキストは、ディスプレイ領域15b内の、関連す
るアイコンの近くに置かれる。テキストはアイコン内の
多角形より大きくてよいので、これにより非常に見やす
くなる。
ルーチンを示す。ユーザ入力段階S320で、ユーザ入
力がアイコンを選択したものかどうかを決定する。この
選択は、例えば領域15aからマウスかカーソルキーか
タッチパッド機構を用いて行ったものでよい。アイコン
を選択した場合は、プログラムはTRUEの経路を通っ
て段階S330に進む。これはユーザ配置ルーチンで、
以下に図15を参照して説明する。段階S320でのテ
ストの結果がFALSEの場合は、段階S340でテキ
ストの入力かどうかをテストする。そうであればTRU
Eの経路をとり、ユーザは前に選択したアイコンに関連
するテキストを入力するよう指示される。ユーザが入力
したテキストは、ディスプレイ領域15b内の、関連す
るアイコンの近くに置かれる。テキストはアイコン内の
多角形より大きくてよいので、これにより非常に見やす
くなる。
【0072】従来の流れ図のプログラムでは、ユーザは
いろいろのボックスを接続する線を引くことができる。
これは本発明のプログラムでは必要ない。というのは、
ユーザ配置ルーチンにより、アイコンを既存のアイコン
のステートメントボックス内に置くか、または既存のア
イコンの真下に置いて第2のアイコンの入力線を第1の
アイコンの出力線に接続するからである。このようにし
て、選択されたアイコンの配置に基づいて本発明のプロ
グラムにより、下向きだけに延びる流れ線が自動的に作
成される。
いろいろのボックスを接続する線を引くことができる。
これは本発明のプログラムでは必要ない。というのは、
ユーザ配置ルーチンにより、アイコンを既存のアイコン
のステートメントボックス内に置くか、または既存のア
イコンの真下に置いて第2のアイコンの入力線を第1の
アイコンの出力線に接続するからである。このようにし
て、選択されたアイコンの配置に基づいて本発明のプロ
グラムにより、下向きだけに延びる流れ線が自動的に作
成される。
【0073】図15は、本発明の望ましい実施態様のユ
ーザ配置ルーチンを示す。段階S360で、選択された
アイコンがディスプレイ領域15bに置かれる最初のア
イコンかどうかを決定する。そうであれば、アイコンの
配置が適当かどうかをチェックする必要がないのでルー
チンは終わる。そうでなければルーチンは終わる。そう
であれば、プログラムは段階S370の規則チェックル
ーチンに入る。規則チェックサブルーチンが終わると、
段階S380でフラグが1かどうかを決定する。このフ
ラグは、アイコンの配置にエラーが起こったかどうかを
規則チェックルーチンが示すのに用いる。1でなければ
エラーメッセージルーチンに入る。1であればユーザ配
置ルーチンは終わる。
ーザ配置ルーチンを示す。段階S360で、選択された
アイコンがディスプレイ領域15bに置かれる最初のア
イコンかどうかを決定する。そうであれば、アイコンの
配置が適当かどうかをチェックする必要がないのでルー
チンは終わる。そうでなければルーチンは終わる。そう
であれば、プログラムは段階S370の規則チェックル
ーチンに入る。規則チェックサブルーチンが終わると、
段階S380でフラグが1かどうかを決定する。このフ
ラグは、アイコンの配置にエラーが起こったかどうかを
規則チェックルーチンが示すのに用いる。1でなければ
エラーメッセージルーチンに入る。1であればユーザ配
置ルーチンは終わる。
【0074】図16は規則チェックルーチンを示す。段
階S395で、あるフラグを1にする。このフラグは、
ユーザがアイコンを正しく置かなかったかどうかを示
す。段階S398で、アイコンをステートメントボック
ス内に移動したかどうかを決定する。そうであれば段階
S400で、ユーザが選択できる利用可能なアイコンに
新しく作成された形式を追加し、一時メモリに記憶す
る。新しく作成された形式はディスプレイの別の領域
(図示せず)に表示して、ユーザがクリック・ドラッグ
マウスやカーソルキーやタッチパッド方式を用いてアク
セスできるようにしてよい。
階S395で、あるフラグを1にする。このフラグは、
ユーザがアイコンを正しく置かなかったかどうかを示
す。段階S398で、アイコンをステートメントボック
ス内に移動したかどうかを決定する。そうであれば段階
S400で、ユーザが選択できる利用可能なアイコンに
新しく作成された形式を追加し、一時メモリに記憶す
る。新しく作成された形式はディスプレイの別の領域
(図示せず)に表示して、ユーザがクリック・ドラッグ
マウスやカーソルキーやタッチパッド方式を用いてアク
セスできるようにしてよい。
【0075】段階S398の答えがFALSEであれ
ば、このアイコンはディスプレイ内の既存のアイコンの
下に置かれたと見なされる。この場合は、第2のアイコ
ンの入力は第1のアイコンの出力に接続される。段階S
420で、アイコンを既存のアイコンの下に置かなかっ
た場合などで、下向きの制御以外の流れが必要かどうか
を決定する。そうであれば、段階S430でフラグを2
にする。下向きの制御だけで設計されていれば、段階S
430で、異なるアイコンの線の中で互いに交差するも
のがあるかどうかを決定する。交差する線があれば、段
階S440でフラグを3にしてルーチンを終える。交差
する線がなければルーチンを終える。
ば、このアイコンはディスプレイ内の既存のアイコンの
下に置かれたと見なされる。この場合は、第2のアイコ
ンの入力は第1のアイコンの出力に接続される。段階S
420で、アイコンを既存のアイコンの下に置かなかっ
た場合などで、下向きの制御以外の流れが必要かどうか
を決定する。そうであれば、段階S430でフラグを2
にする。下向きの制御だけで設計されていれば、段階S
430で、異なるアイコンの線の中で互いに交差するも
のがあるかどうかを決定する。交差する線があれば、段
階S440でフラグを3にしてルーチンを終える。交差
する線がなければルーチンを終える。
【0076】図15の段階S380でフラグが2か3で
あれば、段階S390でエラーメッセージルーチンに入
り、選択されたアイコンは表示しない。
あれば、段階S390でエラーメッセージルーチンに入
り、選択されたアイコンは表示しない。
【0077】エラーメッセージルーチンを図17に示
す。段階S450でフラグが2であれば、下向きの制御
だけが可能であることを示す特定のエラーメッセージを
表示してルーチンを終える。段階S470でフラグが3
であれば、線が交差しているので正しくないことを示す
エラーメッセージを表示し、新しいアイコンの位置を再
入力するようユーザに要求する。
す。段階S450でフラグが2であれば、下向きの制御
だけが可能であることを示す特定のエラーメッセージを
表示してルーチンを終える。段階S470でフラグが3
であれば、線が交差しているので正しくないことを示す
エラーメッセージを表示し、新しいアイコンの位置を再
入力するようユーザに要求する。
【0078】本発明の望ましい実施態様のソフトウエア
実現の基本的な機能を上に説明した。アイコンを表示
し、動かし、その他の操作を行う機構は、本開示を見た
普通の設計者の技術の範囲内にあると理解される。
実現の基本的な機能を上に説明した。アイコンを表示
し、動かし、その他の操作を行う機構は、本開示を見た
普通の設計者の技術の範囲内にあると理解される。
【0079】流れ図やコードを作成する理想的な状況
は、計算機支援ソフトウエア工学(CASE)ツールが
使えて、これにより設計者は状況の必要に応じて設計者
の選択に従って原始コードか流れ図により作業できるこ
とである。例えば設計者は最初原始コードによりデータ
の型や他の宣言を決め、次に実行可能なコードを作るた
めに流れ図に移行する。設計者が流れ図とコードの間を
往来するに従って、このツールは自動的に相手の形式を
更新する。このようにして、流れ図と原始コードは自動
的に並列に保全される。従って流れ図とコードは同じも
のになる。流れ図が「高いレベル」のコードを表すとい
う目標は、コード自身を階層的にすなわち層的に書くこ
とにより達成される。
は、計算機支援ソフトウエア工学(CASE)ツールが
使えて、これにより設計者は状況の必要に応じて設計者
の選択に従って原始コードか流れ図により作業できるこ
とである。例えば設計者は最初原始コードによりデータ
の型や他の宣言を決め、次に実行可能なコードを作るた
めに流れ図に移行する。設計者が流れ図とコードの間を
往来するに従って、このツールは自動的に相手の形式を
更新する。このようにして、流れ図と原始コードは自動
的に並列に保全される。従って流れ図とコードは同じも
のになる。流れ図が「高いレベル」のコードを表すとい
う目標は、コード自身を階層的にすなわち層的に書くこ
とにより達成される。
【0080】従って、実行可能な最も詳細なコードに対
する流れ図があってよいが、原始コードの高い層に対応
する高いレベルの流れ図も作成することができる。この
ようなツールが使えても(発明者の知る限り、上に指定
した要件を正確に満たす実用的なツールはまだ存在しな
い)、このツールのユーザがCASEツールから最高の
利益を得る助けになるという意味で、本発明はやはり有
用である。構造化コードを強制的に作成する言語はほと
んどなく、また構造化流れ図(ここでの定義に従う「構
造化」)を強制的に作成する既存の流れ図ツールはな
い。これは、最新のツールや言語を用いても、構造化ソ
フトウエア製品の開発は設計者の自己訓練にまつことを
意味する。
する流れ図があってよいが、原始コードの高い層に対応
する高いレベルの流れ図も作成することができる。この
ようなツールが使えても(発明者の知る限り、上に指定
した要件を正確に満たす実用的なツールはまだ存在しな
い)、このツールのユーザがCASEツールから最高の
利益を得る助けになるという意味で、本発明はやはり有
用である。構造化コードを強制的に作成する言語はほと
んどなく、また構造化流れ図(ここでの定義に従う「構
造化」)を強制的に作成する既存の流れ図ツールはな
い。これは、最新のツールや言語を用いても、構造化ソ
フトウエア製品の開発は設計者の自己訓練にまつことを
意味する。
【0081】特定の実施態様のこれまでの説明により本
発明の一般的な性質が十分明らかになったので、現在の
知識を用いれば一般的な概念からそれることなく、誰で
もこの特定の実施態様の各種の応用を修正しおよび/ま
たは適用することができる。従ってこのような適応また
は修正は、開示された実施態様と同等の意味と範囲内に
含まれるものである。ここに用いられた用語の用法は説
明のためのものであって、制限的なものではない。
発明の一般的な性質が十分明らかになったので、現在の
知識を用いれば一般的な概念からそれることなく、誰で
もこの特定の実施態様の各種の応用を修正しおよび/ま
たは適用することができる。従ってこのような適応また
は修正は、開示された実施態様と同等の意味と範囲内に
含まれるものである。ここに用いられた用語の用法は説
明のためのものであって、制限的なものではない。
【図1】本発明を実現する計算機システムの略図。
【図2】本発明の望ましい実施態様で用いられる基本的
な流れ形式アイコンの図。
な流れ形式アイコンの図。
【図3】本発明の望ましい実施態様で用いられる基本的
な流れ形式アイコンの図。
な流れ形式アイコンの図。
【図4】本発明の望ましい実施態様で用いられる基本的
な流れ形式アイコンの図。
な流れ形式アイコンの図。
【図5】本発明の望ましい実施態様で用いられる基本的
な流れ形式アイコンの図。
な流れ形式アイコンの図。
【図6】本発明の望ましい実施態様で用いられる基本的
な流れ形式アイコンの図。
な流れ形式アイコンの図。
【図7】本発明の望ましい実施態様で用いられる基本的
な流れ形式アイコンの図。
な流れ形式アイコンの図。
【図8】本発明の望ましい実施態様により作成すること
のできる各種の流れ図。
のできる各種の流れ図。
【図9】本発明の望ましい実施態様により作成すること
のできる各種の流れ図。
のできる各種の流れ図。
【図10】本発明の望ましい実施態様により作成するこ
とのできる各種の流れ図。
とのできる各種の流れ図。
【図11】本発明の望ましい実施態様により作成するこ
とのできる各種の流れ図。
とのできる各種の流れ図。
【図12】本発明の望ましい実施態様により作成するこ
とのできる各種の流れ図。
とのできる各種の流れ図。
【図13】本発明の望ましい実施態様の流れ図。
【図14】本発明の望ましい実施態様の流れ図。
【図15】本発明の望ましい実施態様の流れ図。
【図16】本発明の望ましい実施態様の流れ図。
【図17】本発明の望ましい実施態様の流れ図。
【図18】本発明の望ましい実施態様のユーザインター
フェースを表示するディスプレイの例示的な略図。
フェースを表示するディスプレイの例示的な略図。
10 CPU 15 ディスプレイ 20 キーボード 25 マウス 30 ROM 35 RAM
Claims (16)
- 【請求項1】プログラム可能な計算機と、前記プログラ
ム可能な計算機のディスプレイを用いて流れ図を作成
し、前記流れ図から作成される任意のプログラムが構造
化プログラムになるような方法であって、 基本的な流れ形式の所定の組を第1ディスプレイ領域に
表示し、 流れ形式の前記組からユーザが2つの流れ形式を選択で
きる手段を提供し、 前記2つの選択された流れ形式を組み合わせて、前記ユ
ーザが与える配置情報に従って新しい有効な流れ形式を
生成し、 前記選択された流れ形式と任意の新しい有効な流れ形式
を前記ディスプレイの第2領域に表示する、段階を含む
方法。 - 【請求項2】前記基本的な流れ形式は、ステートメント
ボックス、2つのステートメントボックスのシーケン
ス、FORおよびWHILEステートメント用の繰り返
し形式、IF−THENおよびIF−THEN−ELS
EステートメントとCASEステートメント用の論理形
式を含む交代形式である、請求項1記載の方法。 - 【請求項3】組み合わせる前記段階は、 前記ユーザが与える前記配置情報が所定の複数の規則を
満足するかどうかを決定し、 前記情報が前記所定の複数の規則を満足しない場合は適
当なエラーメッセージを表示する、段階を含む、請求項
1記載の方法。 - 【請求項4】前記所定の複数の規則は、前記2つの選択
された流れ形式の一方を前記2つの選択された流れ形式
の他方の内部に置き、または前記2つの選択された流れ
形式の一方を前記2つの選択された他方に直列に置くこ
と、前記流れ図の中では制御の下向きの流れだけが必要
であること、流れ形式を接続する2本の線は互いに交差
しないこと、を要求する、請求項3記載の方法。 - 【請求項5】プログラム可能な計算機のディスプレイ上
で流れ図を組み立てる装置であって、 それぞれが1入力線と1出力線を持つ少なくとも1つの
多角形を備え、それぞれが1入力線と1出力線を持つ、
1組の基本的な流れ形式アイコンをスクリーン上に表示
する手段と、 ユーザが少なくとも1つの基本的な流れ形式アイコンを
選択できるユーザ入力手段と、 スクリーンの異なる領域上の前記ユーザが指定する位置
に前記選択されたアイコンを表示する手段と、を備える
装置。 - 【請求項6】前記少なくとも1つの選択されたアイコン
内の前記少なくとも1つの多角形と関連するテキストを
入力するユーザ入力手段と、 前記入力されたテキストを、前記少なくとも1つの選択
されたアイコン内の前記少なくとも1つの多角形に隣接
する領域に表示する手段と、を更に備える、請求項5記
載の装置。 - 【請求項7】基本的な流れ形式アイコンの前記組は、1
入力線と1出力線を持つ1多角形を備えるステートメン
トボックス・アイコンを備える、請求項5記載の装置。 - 【請求項8】基本的な流れ形式アイコンの前記組は、1
線により接続される2つの多角形を含むシーケンスアイ
コンを備え、前記シーケンスアイコンは前記2つの多角
形の第1への1入力と前記2つの多角形の第2から来る
1出力を持つ、請求項5記載の装置。 - 【請求項9】基本的な流れ形式アイコンの前記組はFO
RおよびWHILE言語構造を表す繰り返し形式アイコ
ンを備え、前記繰り返し形式アイコンは、 1入力線を備える第1六角形と、 1線により前記第1六角形に接続する四角形と、 1線により前記四角形に接続し、1出力線を持つ第2六
角形と、を備える、請求項5記載の装置。 - 【請求項10】基本的な流れ形式アイコンの前記組は2
つの交代形式アイコン、すなわち、 IF−THEN言語構造を示し1入力線と1出力線を備
える菱形を持つ第1交代形式アイコンであって、前記出
力線は前記菱形の下の隅から下向きにまっすぐ延びる偽
分岐と、前記菱形の右に延び前記偽分岐に接続される1
出力線を持つ長方形または正方形を含む真分岐とを備
え、前記第1論理形式は1入力線と1出力線を備える、
第1交代形式アイコンと、 IF−THEN−ELSE言語構造を示し1入力線と1
出力線を備える菱形を持つ第2交代形式アイコンであっ
て、前記出力線は菱形の右側と左側に分かれて延び、前
記右分岐は前記構造のTHEN経路であり、前記左分岐
は前記構造のELSE経路であり、各分岐は1出力線を
持つ長方形または正方形を備え、前記出力線は互いに合
流して第2論理形式アイコンの単一出力線を形成する、
第2交代形式アイコンと、を備える、請求項5記載の装
置。 - 【請求項11】基本的な流れ形式の前記組はCASE言
語構造を示す交代形式アイコンを備え、前記交代形式ア
イコンは1入力線と1出力線を持つ菱形を備え、前記出
力線はCASE言語構造の可能性の数に相当する数の複
数の分岐に分かれ、各分岐は1出力線を持つ長方形また
は正方形を備え、前記出力線は合流して交代形式アイコ
ンの単一出力線を形成する、請求項5記載の装置。 - 【請求項12】各アイコンは長方形または正方形を備
え、前記選択されたアイコンを表示する前記手段は、 2つの選択された流れ形式アイコンを組み合わせる手段
と、 選択されたアイコンを表示するようユーザが指定する位
置が所定の規則によると正しいことを決定する手段と、 指定された位置が前記所定の規則によると正しくないと
決定する手段により行われた決定に応じて前記選択され
たアイコンを表示する手段の動作を禁止する手段と、を
備える、請求項5記載の装置。 - 【請求項13】前記アイコンの一番上の点の入力線は、
ディスプレイ上の前記アイコンの一番下の点の出力線の
真上に現れる、請求項5記載の装置。 - 【請求項14】計算機のディスプレイ上で流れ図を組み
立てる装置であって、 前記ディスプレイの第1領域に、それぞれが少なくとも
1つのステートメントボックスと1入力線と1出力線を
備える、所定の複数の流れ図アイコンを表示する手段
と、 前記複数の流れ図アイコンの中の1つを選択するよう指
示するユーザ入力手段と、 前記選択されたアイコンを前記ディスプレイの第2領域
に置くよう指示するユーザ入力手段と、 前記選択された流れ図アイコンの前記指示された配置が
所定の規則に合うかどうかを決定する手段と、ただし前
記規則により1つのアイコンを前に選択された別のアイ
コンのステートメントボックス内に置いて新しい流れ図
アイコンを作ることができ、1つのアイコンと他のアイ
コンを直列の関係に置くことができ、前記流れ図の中の
制御の流れは下向きだけが許され、前記流れ図の中では
どの流れ線も交差することを禁止するものであり、 配置を指示する前記ユーザ入力手段により作成される任
意の新しいアイコンを前記所定の複数の流れ図アイコン
に一時的に加える手段と、を備える装置。 - 【請求項15】前記少なくとも1つの選択されたアイコ
ン内の前記少なくとも1つの多角形に関連するテキスト
を入力するユーザ入力手段と、 前記少なくとも1つの選択されたアイコン内の前記少な
くとも1つの多角形に隣接する領域に前記入力されたテ
キストを表示する手段と、を更に備える、請求項14記
載の装置。 - 【請求項16】前記所定の複数の流れ図アイコンは、ス
テートメントボックス・アイコン、2つの接続されたス
テートメントボックスを備えるシーケンスアイコン、F
ORおよびWHILEステートメントを形成する繰り返
し形式アイコン、IF−THENおよびIF−THEN
−ELSEステートメントを形成しまたCASEステー
トメントを形成する交代形式アイコンを備える、請求項
14記載の装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/172,290 US6179490B1 (en) | 1993-12-23 | 1993-12-23 | Method and apparatus for creating a flowchart using a programmed computer which will automatically result in a structured program |
US172290 | 1993-12-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH07319677A true JPH07319677A (ja) | 1995-12-08 |
Family
ID=22627078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6314908A Pending JPH07319677A (ja) | 1993-12-23 | 1994-12-19 | 自動的に構造化プログラムを生成する、プログラムされた計算機を用いて流れ図を作成する方法と装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US6179490B1 (ja) |
EP (1) | EP0661631B1 (ja) |
JP (1) | JPH07319677A (ja) |
KR (1) | KR100352570B1 (ja) |
CA (1) | CA2138682A1 (ja) |
DE (1) | DE69427453T2 (ja) |
TW (1) | TW434488B (ja) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2660163B2 (ja) * | 1994-10-11 | 1997-10-08 | 有限会社アレフロジック | アルゴリズム教育支援システム |
US5862372A (en) * | 1994-11-16 | 1999-01-19 | Morris; Robert M. | Visually oriented computer implemented application development system utilizing standardized objects and multiple views |
US5893105A (en) * | 1996-11-12 | 1999-04-06 | Micrografx, Inc. | Executable flowchart |
US5913195A (en) * | 1996-12-27 | 1999-06-15 | Intervoice Limited Partnership | System and method for developing VRU voice dialogue |
FI980778A (fi) | 1998-04-03 | 1999-10-04 | Nokia Networks Oy | Menetelmä ja järjestelmä teknisen sovelluksen toteuttamiseksi |
US6061602A (en) * | 1998-06-23 | 2000-05-09 | Creative Lifestyles, Inc. | Method and apparatus for developing application software for home automation system |
EP1222533A1 (en) * | 1999-09-19 | 2002-07-17 | Kestrel Institute | Method and apparatus for determining colimits of hereditary diagrams |
US6964037B1 (en) | 1999-09-19 | 2005-11-08 | Kestrel Institute | Method and apparatus for determining colimits of hereditary diagrams |
US7110936B2 (en) * | 2001-02-23 | 2006-09-19 | Complementsoft Llc | System and method for generating and maintaining software code |
US20020154119A1 (en) * | 2001-04-24 | 2002-10-24 | Lepejian Yervant D. | Apparatus and method for performing branch processing according to a user indicated selection from displayed graphics |
US6986122B2 (en) * | 2001-06-07 | 2006-01-10 | International Business Machines Corporation | IF statement having an expression setup clause to be utilized in structured assembly language programming |
SE0102648A0 (sv) * | 2001-08-02 | 2003-03-06 | Lars Höidahl | Arrangemang att utföra objekt-orienterad programmering |
US20030040833A1 (en) * | 2001-08-06 | 2003-02-27 | Joseph Gasiorek | Flowchart-based control system with active description objects |
US6845275B2 (en) * | 2001-08-06 | 2005-01-18 | Entivity, Inc. | Flowchart-based control system with active diagnostic objects |
US6775579B2 (en) * | 2001-08-06 | 2004-08-10 | Entivity, Inc. | Flowchart-based control system with active debugging objects |
US20030117417A1 (en) * | 2001-12-20 | 2003-06-26 | Nortel Networks Limited | Generic application flow management system and method |
US7310784B1 (en) * | 2002-01-02 | 2007-12-18 | The Jellyvision Lab, Inc. | Methods for identifying cells in a path in a flowchart and for synchronizing graphical and textual views of a flowchart |
US20030153998A1 (en) * | 2002-02-13 | 2003-08-14 | Micron Technology, Inc. | Feature modeling application |
JP2003256203A (ja) * | 2002-03-01 | 2003-09-10 | Mitsubishi Electric Corp | 自動機アプリケーションプログラム開発システム、プログラム開発方法、この方法を実行するプログラム、及びこのプログラムを記憶した記憶媒体 |
US7822628B2 (en) * | 2002-09-04 | 2010-10-26 | Advanced Health Media, Llc | System and method for a planner |
DE10248621A1 (de) * | 2002-10-18 | 2004-04-29 | Giesecke & Devrient Gmbh | Verfahren und System zur Bearbeitung von Banknoten |
US7949995B2 (en) * | 2005-09-14 | 2011-05-24 | Sadlek James M | Visual programming method |
US20070226732A1 (en) * | 2006-03-16 | 2007-09-27 | Timekeeping Systems, Inc. | Flow chart programmable data collector |
US20070240070A1 (en) * | 2006-04-11 | 2007-10-11 | Invensys Systems, Inc. | Strategy editor supporting designating execution order via control object graphical representations |
US20080026357A1 (en) * | 2006-07-14 | 2008-01-31 | Research Foundation Of The City University Of New York | Discipline oriented contextual learning software system |
US8521709B2 (en) * | 2006-10-31 | 2013-08-27 | The Jellyvision Lab, Inc. | Methods for preloading media assets |
US20080184143A1 (en) * | 2006-12-14 | 2008-07-31 | Gottlieb Harry N | Methods for Identifying Actions in a Flowchart |
WO2008098161A1 (en) | 2007-02-08 | 2008-08-14 | Gottlieb Harry N | Method of automatically populating and generating flowchart cells |
KR100936670B1 (ko) | 2007-12-05 | 2010-02-12 | 비티에스테크놀로지스(주) | 도형화된 시스템 요구사항 처리 장치 |
US10339681B2 (en) | 2013-11-22 | 2019-07-02 | Raytheon Company | Interactive multimedia process flow chart builder |
US20150261400A1 (en) * | 2014-03-12 | 2015-09-17 | Yokogawa Electric Corporation | System and method for generating a process flow structure |
US10108419B2 (en) * | 2014-09-26 | 2018-10-23 | Qualcomm Incorporated | Dependency-prediction of instructions |
KR20180097224A (ko) | 2017-02-23 | 2018-08-31 | 박도환 | 순서도 제작을 통해 코드를 자동생성하는 방법 |
KR20180097223A (ko) | 2017-02-23 | 2018-08-31 | 박도환 | 순서도 제작을 통해 코드가 자동생성되도록 매체에 저장된 컴퓨터 프로그램 |
CN112036666B (zh) * | 2020-09-29 | 2024-03-22 | 中移(杭州)信息技术有限公司 | 绑定流程评估方法、装置、服务器、存储介质 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4153932A (en) | 1974-03-29 | 1979-05-08 | Massachusetts Institute Of Technology | Data processing apparatus for highly parallel execution of stored programs |
US4546435A (en) | 1980-06-24 | 1985-10-08 | Herbert Frank P | Graphic computer system and keyboard |
JPH0640302B2 (ja) * | 1984-01-30 | 1994-05-25 | 株式会社日立製作所 | 図式・ソ−スプログラム自動生成方法 |
US4831580A (en) * | 1985-07-12 | 1989-05-16 | Nippon Electric Industry Co., Ltd. | Program generator |
CA1268557A (en) | 1986-04-01 | 1990-05-01 | Mikio Tomioka | Method for displaying program executing circumstances and an apparatus using the same |
US4914568A (en) | 1986-10-24 | 1990-04-03 | National Instruments, Inc. | Graphical system for modelling a process and associated method |
US5005119A (en) | 1987-03-02 | 1991-04-02 | General Electric Company | User interactive control of computer programs and corresponding versions of input/output data flow |
US4852047A (en) | 1987-04-14 | 1989-07-25 | Universal Automation Inc. | Continuous flow chart, improved data format and debugging system for programming and operation of machines |
EP0347162A3 (en) * | 1988-06-14 | 1990-09-12 | Tektronix, Inc. | Apparatus and methods for controlling data flow processes by generated instruction sequences |
US5187788A (en) * | 1989-05-01 | 1993-02-16 | The United States Of America As Represented By The Secretary Of The Air Force | Graphics system for automatic computer code generation |
US5313574A (en) * | 1990-06-13 | 1994-05-17 | Hewlett-Packard Company | Method for starting processing of an iconic programming system |
US5133045A (en) | 1990-07-13 | 1992-07-21 | Integrated Systems, Inc. | Method for operating a real-time expert system in a graphical programming environment |
US5293476A (en) * | 1991-03-12 | 1994-03-08 | Hewlett-Packard Co. | System for entering and modifying variable names for terminals of icons in an iconic programming system |
-
1993
- 1993-12-23 US US08/172,290 patent/US6179490B1/en not_active Expired - Lifetime
-
1994
- 1994-12-19 JP JP6314908A patent/JPH07319677A/ja active Pending
- 1994-12-19 DE DE69427453T patent/DE69427453T2/de not_active Expired - Lifetime
- 1994-12-19 EP EP94850227A patent/EP0661631B1/en not_active Expired - Lifetime
- 1994-12-21 CA CA002138682A patent/CA2138682A1/en not_active Abandoned
- 1994-12-22 KR KR1019940035871A patent/KR100352570B1/ko not_active IP Right Cessation
-
1995
- 1995-01-04 TW TW084100006A patent/TW434488B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
DE69427453T2 (de) | 2001-10-11 |
TW434488B (en) | 2001-05-16 |
DE69427453D1 (de) | 2001-07-19 |
US6179490B1 (en) | 2001-01-30 |
CA2138682A1 (en) | 1995-06-24 |
EP0661631B1 (en) | 2001-06-13 |
EP0661631A3 (en) | 1997-02-19 |
EP0661631A2 (en) | 1995-07-05 |
KR100352570B1 (ko) | 2003-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH07319677A (ja) | 自動的に構造化プログラムを生成する、プログラムされた計算機を用いて流れ図を作成する方法と装置 | |
CN108021363B (zh) | 可视化游戏逻辑编辑方法及系统 | |
Balzer | Transformational implementation: An example | |
JP2783641B2 (ja) | 設計評価方法および設計評価ツール | |
Floyd | A systematic look at prototyping | |
US6421822B1 (en) | Graphical user interface for developing test cases using a test object library | |
JP3127442B2 (ja) | アプリケーション・プログラム・ステップのための対話式インタフェースを提供する表示画面パネルをダイナミックに生成するコンピュータ・システム | |
US5485615A (en) | System and method of interactively developing desired computer programs by using plurality of tools within a process described in graphical language | |
US20020029377A1 (en) | System and method for developing test cases using a test object library | |
US20030200533A1 (en) | Method and apparatus for creating software objects | |
US20020046394A1 (en) | Method and apparatus for producing software | |
EP1836565A1 (en) | Dynamic generation of formatted user interfaces in software environments | |
US6370683B1 (en) | Computer software for generating flowchart images of a source program | |
JP2671793B2 (ja) | プログラムジェネレータ利用仕様シミュレーション方法およびその装置 | |
US7134114B2 (en) | Apparatus, method, and program product for supporting programming | |
Schulze | Text in diagrams: challenges to and opportunities of automatic layout | |
WO1990004828A1 (en) | Software operating environment | |
JP3819313B2 (ja) | システム構築装置 | |
Lee et al. | Sequence control for integrated structural design models | |
JPH1139163A (ja) | 知識システム構築装置 | |
Fuller | Graphical method for creating MCAP assembler programs | |
Denert | Software engineering: experience and convictions | |
JP2937381B2 (ja) | 集積回路の設計方法及び設計装置 | |
CN108984168A (zh) | 一种适用软件开发人员的效率工作台 | |
US20050099404A1 (en) | Maintenance of user interfaces |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050215 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050705 |