あなたの質問で、ソフトウェア開発者がしなければならない仕事の量を最小限に抑えることができる将来の開発がどれだけできるかをあなたは尋ねていると私は信じています。プログラム全体を作成できるAIがある場合でも、自動自動車ビルダーの場合と同様に、何をすべきかを指示する必要があります。設計図を与える必要があり、その設計図にはいくつかの作業が必要です。
AIを使用している場合でも、AIを教える必要があり、いくつかのプロジェクトを通じて学習する必要があります。したがって、私はAIがこの種の作業に適しているとは思いません。むしろ、コードジェネレーターを使用したより確定的なアプローチです。これらのコードジェネレーターは非常に複雑になる可能性がありますが、必ずしも機械学習を採用する必要はありません。
とはいえ、機能指向ソフトウェア設計およびアスペクト指向ソフトウェア設計と呼ばれる分野での研究はすでに存在しています。これらは、必要な機能を選択してソフトウェアアプリケーションをアセンブルし、そのためのコードが生成されます。目標は、特定のドメインに繰り返し現れるいくつかの機能の実装を用意し、特定のアプリケーションに適したように、それらをビルディングブロックのようにアセンブルすることです。たとえばWeb開発の場合、機能には、トランザクション、統計、スケーラビリティ、ロギングなど、さまざまなWebアプリの繰り返し発生する特性と考えることができるものが含まれます。
機能と側面は、通常、横断的な関心事であるため、コンポーネントとは異なります。ロギングを例にとります。ライブラリを取得してアプリケーションに組み込んで、今すぐログに記録したと言うことはできません。ロギング呼び出しをコード全体に分散させる必要があります。そのため、コードジェネレーターが便利です。最近、ソフトウェアエンジニアリングラジオに関するこの2部構成の インタビューから、これらすべてについて聞いたことがあります。
個人的な経験からも言えるように、この種の研究はヨーロッパ、特にドイツ、特に業界でも非常に流行しているようです。コード生成は、必要なインフラストラクチャコードの生成に役立ちます。これにより、開発者はアプリケーションの特定の動作の実装に専念でき、すべての異なるプロジェクトで同じ問題に悩まされることがなくなります。
アプリケーション固有のコードをどれだけ絞り込むことができるかはまだ不明です。最初に述べたように、完全に排除することはできず、ある種の青写真にまで縮小することはできません。