Software Factories.

Historical material · original site, 2004–2005 era

The book

Cover of Software Factories by Jack Greenfield and Keith Short

Original text, with presentation adapted for this site. Roles, predictions, event notices and external links are historical. External destinations have not all been validated. View the preserved original page.

     

We have written a book that was published by John Wiley & Sons in September 2004. It is called: "Software Factories: Assembling Applications with Patterns, Frameworks, Models & Tools" byJack Greenfield and Keith Short, with contributions by Steve Cook and Stuart Kent. ISBN 0471202843 To view the book’s entry at amazon.com, please click here.

About the Book

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.

Awards

We are greatly honored to have been awarded a "Productivity Award" at the Software Development Magazine Jolt Awards 2005 in the General Books category (see original press announcement — PDF preserved by Industrial Logic).

Book nominated for R. R. Hawkins Award

Software Factories was one of 5 books nominated by John Wiley & Sons for the R. R. Hawkins Award this year out of more that 300 books they published in the Computer and Information Science category.

As a member of the Professional Scholarly Publishing division of the Association of American Publishers, Wiley competes with other publishers in this division for the coveted award, which recognizes excellence and innovation in professional, scholarly, refernce, book, journa;, and electronic publishing with awards in more than 35 categories, including the Hawkins Award for the most outstanding publication.

Cover Endorsements

Original endorsements and historical affiliations, preserved from the original site. View the separate endorsements page.

The authors are deeply grateful to the following colleagues in the Industry and Academia who have given their endorsement to the Book. 

John Crupi, Sun Distinguished Engineer, Co-author, "Core J2EE Patterns: Best Practices and Design Strategies, Second Edition".

This book presents a clear articulation of the vision for moving to higher levels of software design abstraction through model driven development. Software Factories does a wonderful job integrating modeling with patterns, frameworks, and agile development. Finally, 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.

Douglas C. Schmidt, Professor of Electrical Engineering, and Computer Science,  Vanderbilt University , Co-author of "Pattern Oriented Software Architecture, Volume 2", "Patterns for Concurrent and Networked Objects".

The model-based development technologies described in this book will enable us to reliably and repeatably construct and compose software systems that can meet and adapt to more diverse, changing requirements and environments, as well as enable the affordable development of the large numbers of these systems that society will demand, each precisely tailored to specific domains and user needs. These technologies will industrialize software production in ways the assembly line industrialized automobile production.

David S. Frankel, Principal, David Frankel Consulting, Author of "Model Driven Architecture: Applying MDA to Enterprise Computing".

The authors of Software Factories have performed an enormous service to the computer industry by presenting a powerful conceptual framework for designing, developing, deploying, and managing complex software systems. Programmers, architects, and IT managers will find much value in Software Factories' thoughtful integration of product line practices, domain-specific lanaguages, generative programming, component-based development, model-driven methods, patterns, and metadata management.

Paul C. Clements, Associate Professor of Computer Science, University of Waterloo, Co-author of "Software Product Lines : Practices and Patterns".

Software product lines and generative programming offer the potential for breathtaking improvements in software cost, time to market, and flexibility. "Software Factories" is the definitive source for applying these technologies in a real business context.

Krzysztof Czarnecki, Senior Technical Staff Member at the Software Engineering Institute, Co-author of "Generative Programming".

"Software Factories" integrates the best of the emerging approaches to  software development, including patterns, frameworks, components, and  generative development. Although the book is visionary, it is also firmly grounded in reality. Focusing on the combination of software product lines and domain-specific languages, "Software Factories" gives the reader both a very deep understanding of the technologies underlying software factories and practical insights about their application. This book is a true landmark in the field of generative software development!  

 

Book Chapter Outline

Chapter outline transcribed from the diagram on the original website. The original diagram is included below.

Part 1

  1. Introduction
  2. Dealing with Complexity
  3. Dealing with Change
  4. Paradigm Shift
  5. Software Factories

Part 2

  1. Models and Patterns
  2. Programming with Models
  3. Language Anatomy
  4. Families of Languages
  5. Systematic Reuse
  6. Software Product Lines
  7. Platform Based Abstractions
  8. Components and Services
  9. Mappings and Transformations
  10. Generating Implementations

Part 3

  1. A Software Factory Example
  2. Frequently Asked Questions
Original chapter-outline diagram, showing the three parts and seventeen chapters listed above
Chapter-outline diagram from the original Software Factories website.