ソフトウェアファクトリー
開発者は、ソフトウェアファクトリーを使うことで、立ち上がり時間を短縮して、生産性を増大させることができる。これは、コードとパターンを含むアプリケーションの高品質な出発点(ベースライン)を作成できるからである。つまり、これは、プロジェクトが従来の開発方式より高いレベルから始まることを意味する。また、再利用可能な資産、ガイダンス、例などにより、典型的なシナリオやタスクに容易に対応でき、一貫した形で応用することができる。ソフトウェアファクトリーは、アプリケーションの複雑さを隠蔽する抽象化層を提供し、関心を分離する。そのため、個々の開発者は、ビジネスロジックやユーザインタフェースなどそれぞれ異なる分野に集中でき、根底にあるサービスについて深い知識を必要としない。
ソフトウェアファクトリーによるアプリケーション開発は、従来のソフトウェア開発に比べて様々な利点がある。
EUREKAプログラムの下で資金提供された Eureka ソフトウェアファクトリーと呼ばれるものである。ヨーロッパの大企業、コンピュータメーカー、ソフトウェアハウス、研究機関、大学がプロジェクトに参加している。個別の供給業者が販売するコンポーネント群を集積してソフトウェアファクトリーを構築するために、技術、標準、組織的サポート、その他の基盤を提供することを目的としている。
統合開発環境のアーキテクチャとフレームワークを生み出すことを目的としている。汎用ソフトウェアファクトリーは、その一部となるコンポーネント群や生産環境だけでなく、ソフトウェアコンポーネントの標準とガイダンスも開発する。
ソフトウェアファクトリーは、従来のアプリケーション開発において、似たようなアプリケーションの開発で得られた知識や資産を生かしていなかったという問題への対処である。ソフトウェアファクトリー以外にも、トレーニング、文書化、フレームワークといった対策がとられてきたが、さまざまなアプリケーション開発で得られた貴重な知識の伝達という意味では、間違いやすいプロセスでもある。
ソフトウェアファクトリーは、特定スタイルのアプリケーション開発の成果を再利用しやすいパッケージ内に統合することで、この問題に対処する。適切なソフトウェアファクトリーを使ったアプリケーション開発には、生産性や品質の向上、機能の発展性といった多くの長所がある。