ソフトウェアファクトリー
一般的な機能や機構を実装したコンポーネント群。再利用可能コードを組み合わせることでコーディングの必要性を削減し、アプリケーション間の再利用性を高める。
事前に組み立てられたアプリケーションの一部。プロジェクトに起点として使うことができる。
このアプローチのソフトウェアファクトリーで生み出されたソフトウェアは、主に原子炉、タービンなどの制御システムである。主な目的は生産性に見合った品質の確保であり、コストが増大しても競争力が弱まらない分野に適用された。また、設計・プログラミング・テスト・インストール・保守を一貫した形で実施するための環境を整備するという目的もある。
品質と生産性向上の鍵は、ソフトウェアは再利用である。組織的設計では、運用業務を規定通りな簡単で反復的なものにする断固とした努力を含み、業務プロセスの標準化を伴う。
代表例として、東芝が適用したソフトウェアファクトリーの概念があり、1981年と1987年に論文が発表されている。
Microsoft Patterns & Practices Team は以下の4つのソフトウェアファクトリを開発している:
Smart Client Software Factory (以前の名称は Smart Client Baseline Architecture Toolkit)(2006年6月30日リリース)
Web Service Software Factory (2006年6月リリース)
Mobile Client Software Factory (2006年6月リリース)
Web Client Software Factory (2007年1月リリース)
Project Glidepath はマイクロISV指向のソフトウェアファクトリー。マイクロソフトからもリリースされている。
Project Glidepath Blog
Project Glidepath Forums
EFx Factory は Microsoft Services が他に先駆けてリリースしたアーキテクチャ的ソフトウェアファクトリーであり、モデル駆動開発と統合実行環境ツールによってサービス指向の企業アプリケーションを構築する。
EFx Architectural-Guidance Software Factory
EFx Factory Blog
.NET Database Application Development
tangible architect - .NET Software Factory with DSL Modeller
NConstruct - Intelligent Software Factory
有効であることが証明済みの慣習を容易に学習・実装できる。また、再利用可能コードを組み合わせるので、開発者はそのアプリケーションの独自な部分に集中することができ、設計やコードの問題点を発見しやすくなる。さらに、配布前の検証も容易である。