The promise of software factories is to streamline and automate software development, and thus to produce higher-quality software more efficiently. The key idea is to promote systematic reuse at all levels and exploit economies of scope, which translates into concrete savings in planning, development, and maintenance efforts. However, the theory behind software factories can be overwhelming, because it spans many disciplines of software development. On top of that, software factories typically require significant investments into reusable assets.
This book was written in order to demystify the software factories paradigm by guiding you through a practical case study, from the early conception phase of building a software factory to delivering a ready-made software product. The authors provide you with a hands-on example covering each of the four pillars of software factories: software product lines, architectural frameworks, model-driven development, and guidance in context.
While the ideas behind software factories are platform independent, the Microsoft .NET platform, together with recent technologies such as DSL Tools and the Smart Client Baseline Architecture Toolkit, makes an ideal foundation. A study shows the different facets and caveats and demonstrates how each of these technologies becomes part of a comprehensive factory. Software factories are a top candidate for revolutionizing software development. This book will give you a great starting point to understanding the concepts behind it and ultimately applying this knowledge to your own software projects.
Contributions by Jack Greenfield, Wojtek Kozaczynski
Foreword by Douglas C. Schmidt, Jack Greenfield, Jorgen Kazmeier and Eugenio Pace.
The Software Factory methodology is based on recognition of these similarities and a drive to extend the concept of "reusability" to the point where we achieve entirely automated product lines. Based on an analysis and understanding of the common features and techniques of a set of applications, a Software Factory defines a tailored, end-to-end methodology for building these applications. At the heart of the Software factory methodology is the concept of Domain Specific Languages (DSLs), which in essence are development environments specifically tailored to the set of applications in hand. It removes a certain degree of flexibility but greatly enhances productivity by removing a lot of the coding complexity (for an analogy, consider the use of the now ubiquitous drag-and-drop controls in Winforms or Visual Basic).
However, with the emergence of the Microsoft Software Factories SDK, upon which this book is based, they are moving firmly into the mainstream. For the first time, with this book, .NET developers and architects can see how to put this methodology to practical use in real projects. Throughout the book, every chapter is accompanied with hands-on examples performed on a real-world case study, using Microsoft's Software Factory tools.
Gunther Lenz
.NET Visual Basic complexity design development language object oriented design productivity software software development
From the reviews:
"The purpose of this work is to introduce and demystify the concept of software factories in the .NET environment. … The book covers both the theory and practice of software factories, including an acknowledgment of the genesis of the term in the late 1960s. … this book is recommended reading for people involved in the management of large software development groups, particularly ones that develop many similar products. It provides a good theoretical discussion, and practical illustration … in the creation of software solutions." (Neil D. Burgess, ACM Computing Reviews, Vol. 49 (3), March, 2008)