Features
- Cover Type: Paperback with 500 pages
- Published by: Wiley
- Edition: 1st Edition August 16, 2004
- Written in: English
- ISBN 10 Number: 0471202843
- ISBN 13 Number: 978-0471202844
-
Book Dimensions:
9.1 x 7.4 x 1.6 inches
- Weighs: 2.2 pounds
Product Description
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 to enable 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 as documentation. 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 automated methods, 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 professionals understand 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 as patterns, 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 better understanding of these technologies, and will learn how to apply them to implement
software Factories within their own organizations.
Back Cover Copy
"Software Factories does a wonderful job integrating modeling with patterns, frameworks, and agile development. The authors provide a compelling look at how a new generation of tools will make this a reality. A must read for
software architects and developers."
-John Crupi, Sun Distinguished Engineer, and coauthor, Core J2EE Patterns
Many of the challenges currently facing
software developers are symptoms of problems with
software development practices.
software Factories solves these problems by integrating critical innovations that have been proven over the last ten years but have not yet been brought together.
A team of industry experts led by Jack Greenfield explains that a
software Factory is a configuration of languages, patterns, frameworks, and tools that can be used to rapidly and cost-effectively produce an open-ended set of unique variants of a standard product.
Their ground-breaking methodology promises to industrialize
software development, first by automating
software development within individual organizations, and then by connecting these processes across organizational boundaries to form supply chains that distribute cost and risk. Featuring an example introduced in the first chapter and revisited throughout the book, the authors explain such topics as:
- Chronic problems that object orientation has not been able to overcome, and critical innovations that solve them
- How models can become first class software development artifacts, not just documentation
- How software product lines can be used to consistently achieve commercially significant levels of reuse
- How patterns, frameworks, tools, and other reusable assets can be used to scale up agile development methods
- How orchestration and other adaptive mechanisms can be used to enable development by assembly
Reader Reviews30 second summary of the book: - Software development is awfully inefficient. Most of the applications we write have more similarities than differences, yet we build every project from the ground up. - UML is great for communicating on a white board but fails with respect to bridging the gap between requirements and code. The limitations of present-day CASE tools shows this inefficiency. - Innovations such as the maturation of domain-specific languages (DSL), at varying levels of abstraction, and the support of these languages through IDEs are needed to make the next step in software development. - These innovations will provide the key to creating product lines built on reusable processes and software frameworks: software factories. The adoption of this approach will lead to automated development, faster delivery time, systematic reuse, less testing, and greater maintainability. 5 second summary of the book: Microsoft Visual Studio 2005 Team System is going to be really really cool. The good: Greenfield gives a very thorough (600 pg) introduction to the software factories approach to solution development. He presents a convincing case describing current deficiencies in the world of software development, how domain-specific languages and more advanced IDEs will correct these deficiencies, and what challenges remain between us and realizing the goal of having a true software factory. The bad: This book should not be seen as a technical how-to book. Do not expect to be able to apply much of what he describes within your software development routine...unless, of course, you're designing a next generation IDE. This book takes a more academic approach to describing the theory behind software factories. In the near future, when Visual Studio 2005 Beta 2 is available, Chapter 16, "A Software Factory Example," may become useful as a reference as it presents a good example of applying the approach to the project life-cycle. But until then, the material is not very practical, due to the fact that no IDE currently supports the ideas that he has presented. But even after Visual Studio 2005 becomes available, you probably won't open this book too much after the first read through. The hype: There has been a lot of buzz online surrounding the software factories approach to development. Once we're able to try out the approach within VS 2005 Team System, we'll all be able to decide if this is going to be the next wave of development or just another neat idea. As for me, Greenfield has me convinced that this is certainly a step in the right direction.