ソフトウエアを開発する際に,ソース・コードを中心にした開発ではなく,設計図を中心にした開発のこと。
最終成果物であるソース・コードを無計画に書き始めるのではなく,まずはソフトウエアで実装したい機能を図で整理したり,あるいはシミュレーションによってソフトウエアの動作をあらかじめ確認したりすることで,設計者自身の思考を整理し,設計そのものを改善するための取り組みである。
ソフトウエアの構造を可視化することで,同じソフトウエアを他の機種で再利用する際,どこが再利用できて,どこを変えるべきかといった具体的な議論がしやすくなる。さらに,設計図から自動的にソース・コードを生成するなど,これまでのソフトウエアの開発体制を一新する可能性を秘めている。