開発支援ツールにおける進化の過程
現在の標準的なソフトウェア開発は、大まかには、要求仕様を定義するまでの上流工程とその仕様に基づくプログラム開発以降の下流工程に分類される。この下流工程は、綿密に計画されたスケジュールに基づき、「プログラム開発」、「単体テスト」、「結合テスト」を消化して、「運用テスト」の後、本稼動となる。

これらの工程は一般的にウォータフォール型の開発によって進められるが、近年導入事例が増加しているアジャイル型でも、実際に必要とされる工程に大きな違いはなく、システム開発全体では多くの工数が割かれている。
そのような状況に対し、最近の開発支援ツールの進化は、フレームワーク活用によるコーディング量の抑制、ビルド管理やテスト工程等の生産性向上を目指して進んでいる。しかし、いずれにしても、これらの手法では抜本的に改善されるには至っていない。
ノンプログラミング手法=ソフトウエアジェネレータ
そこで「ノンプログラミングツール」なるものがある。設計仕様を入力することにより、実行形式のプログラムやソースコード(もしくは実行形式ファイル)が自動生成されるもので、プログラマ不要論とまで言われ始めており、上記のシステム開発工程を抜本的に改革するものとして、最近急激に注目されている。
例として、近年では、ジェナのseapやMicrosoftのPowerAppsなど、利用者側が直感的に利用できるツールが登場している。これらは、「プログラム開発」だけではなく、「テスト」や「バージョンアップ」「仕様改訂」についても極めて大きな工程短縮効果があり、一部の用途に急速に広がっており、「ソフトウエアジェネレータ」と呼ばれている。
このソフトウェアジェネレータには、以下の2つの工程がある。
要件定義から設計情報の生成
機能要件と非機能要件に関わらず、ソフトウェアが実現すべき要件の情報(自然言語や簡易なコード)からプログラム設計情報を生成し、矛盾仕様の排除と仕様の欠損事項を補い、言語仕様に依存しない設計情報を生成する。
必要とされる言語仕様と実行環境に合わせたコードの生成
上記の設計情報から実行環境に最適化されたプログラムを自動生成する。
これらにおいて多くの経験が積み重ねられることで、最近ソフトウェア開発の自動化が具現化されてきている。もちろんこの「ソフトウエアジェネレータ」にも課題がある。まだ広い分野に汎用的に適用できるものではなく対象領域が狭いことだ。
また、複雑な業務システムの機能の全てを実装しようとすると、その工程短縮効果は高くない。さらには、「不具合が発生した場合の原因追求に多くの時間がかかる」、「レスポンス改善の為のチューニング対応の範囲が限定される」など想定される効果が得られない場合もある。しかし、限定的な用途には、圧倒的な効果を生むため、注目が集まっているのである。