<前回の話>
2009年7月22日 日経コンピューターの特集「もっと速く作れる」に、
「100%自動生成可能」という話が出てきているが、そのようなことが、
可能なのかどうか、考えています。
前回までの話で、
1.入力ー処理ー出力だけでプログラムを作ることは出来ない。
すくなくとも、
入力メディア、出力メディア(デバイスって言うか)は必要
2.これがあれば、入力デバイス、出力デバイスごとに、
入出力ライブラリ、フレームワークがあるから、
それがRDBに入っていれば、検索して取り出してくることはできる
処理内容もRDBにプログラムが入っていれば、取り出せる。
というところまできました。
■プログラムは、これだけで、かける?
じゃ、これだけでかけるか?というと、
取り出すことは出来たのですが、それを順番に並べないといけません。
場合によっては(IF文で書くように)処理をしないということもあります。
そこで、取り出してきたプログラムたちを、条件を考慮して順番に並べる必要がある。
つまり、
・入力データ・メディア
・処理内容、順番・条件
・出力データ・メディア
が必要になる。ここで書いたことと同じですね。
■必要条件を満たす図
そうすると、この必要条件を記述している図は・・・?
それについては、ここで書いたけど、業務流れ図が、上記のことに加え、誰をを付け加えて書いている。
したがって、業務流れ図があると、プログラムがかけそうな気配になってくる。
しかし、実際には、画面定義、帳票定義、DB項目定義は流れ図にはかけないので、このへんの定義が別に必要になる。
そして、これらの外部入出力定義と、入出力フレームワーク・ライブラリ、基本的な処理の間で一貫性があって、それらがDBに入っていれば、それを業務流れ図に沿って、検索して取り出して並べれば、プログラムができそうな気配である。
■で、100%自動生成可能?
その日経コンピューターに載っている例、GeneXusは、
業務ルール、画面、データ構造、帳票・バッチ処理
となっている。
業務ルール=業務流れ図
画面=画面定義書
データ構造=DB、ファイル定義
帳票=帳票定義
バッチ処理=業務流れ図の一部
と考えれば、これで画面定義、帳票定義、DB項目定義、業務流れ図がそろっているので、
基本的な業務のライブラリ、入出力ライブラリがあれば、それを組み合わせて
プログラム自動生成というのは、論理的に可能な話ではある。