Domain-specific architectures are a software development technology that promises to greatly reduce the cost and time to develop a family of systems for a common application domain such as satellite command and control.
First, the domain is analyzed to produce a generic breakdown into functional elements, with defined interfaces and data flows between elements. This can be done by traditional structured analysis or object-oriented analysis. Given a generic framework or architecture, developing systems within the domain can be accomplished more efficiently because many components will be reusable and the interfaces will be well-defined when new components must be developed.
By working with the vendor community for the domain, the COTS products they develop are more likely to follow the architecture, and hence have common functional boundaries and interfaces. This, in turn, makes it much easier to integrate different COTS products into an overall system, or to exchange one COTS product for another in the some functional area (e.g., an orbit package).
Although some extra "up front" work is needed to gain consensus on the domain architecture, implementation of solutions for specific programs can proceed more quickly. The initial implementation is likely to be able to use more COTS products and subsequent systems can be derived from the first implementation by making small changes or substitutions for some components. Adding mission-unique extensions is easier due to the thoughtful functional decomposition that went into the initial architecture and the well defined interfaces.