The architects of the Software Factories method provide a detailed look at this faster, less expensive, and more reliable approach to application development. Software Factories significantly increase the level of automation in application development at medium to large companies, applying the time tested pattern of using visual languages toenable rapid assembly and configuration of framework based components.Unlike other approaches to Model Driven Development (MDD), such as Model Driven Architecture (MDA) from the Object Management Group (OMG), Software Factories do not use the Unified Modeling Language (UML), a general purpose modeling language designed for models used asdocumentation. They go beyond models as documentation, using models based on highly tuned Domain Specific Languages (DSLs) and the Extensible Markup Language (XML) as source artifacts, to capture life cycle metadata, and to support high fidelity model transformation, code generation and other forms of automation. Building business applications is currently an extremely labor-intensive process that relies on a limited pool of highly talented developers. As global demand for software exceeds the capacity of this labor pool, current software development methods will be replaced by automatedmethods, meaning cheaper, faster, and more reliable application development. Wiley Computer Publishing has teamed with industry experts Jack Greenfield and Keith Short, both architects in the Enterprise Frameworks and Tools group at Microsoft, and leading authorities on Model Driven Development (MDD), to help technical professionalsunderstand how business application development is changing.With two chapters on Domain Specific Language (DSL) development by contributors Steve Cook and Stuart Kent, they take an in-depth look at challenges facing developers using current methods and practices, and critical innovations that can help with these challenges, such as Pattern Automation, Generative Programming, Software Product Lines, Aspect Oriented Programming (AOP), Component Based Development (CBD), Service Oriented Architectures (SOA), Service Orchestration and Web Service Integration. They then propose the Software Factories method, which has the potential to significantly change software development practice, by reducing the cost of building reusable assets, such aspatterns, languages, frameworks and tools, for specific problem domains, and then applying them to accelerate the assembly of applications in those domains. After introducing Software Factories, the book describes these key enabling technologies in depth, and shows how they can be integrated and applied to support a form of Rapid Application Development (RAD). It then provides a detailed example of a working Software Factory and answers Frequently Asked Questions (FAQs). Readers will gain a betterunderstanding of these technologies, and will learn how to apply them to implement Software Factories within their own organizations.