Software development organizations are now discovering the efficiencies that can be achieved by architecting entire software product families together. In Software Architecture for Product Families, experts from one of the world's most advanced software domain engineering projects share in-depth insights about the techniques that work -- and those that don't. The book offers a solutions-oriented, case-study approach covering the entire development lifecycle, based on advanced work done by three of Europe's leading technology companies and their academic partners. Discover the challenges that drive companies to consider architecting product families, and the new problems they encounter in doing so. Master concepts and terms that can be used to describe the architecture of a product family; then learn how to assess that architecture, and transform it into working applications. The authors also present chapter-length, real-world case studies of domain engineering projects at Nokia, Philips, and ABB.
This book contains the proceedings of a third workshop on the theme of Software Arc- tecture for Product Families. The first two workshops were organised by the ESPRIT project ARES, and were called “Development and Evolution of Software Architectures for Product Families”. Proceedings of the first workshop, held in November 1996, were only published electronically at: “http://www.dit.upm.es/~ares/”. Proceedings of the second workshop, held in February 1998, were published as Springer LNCS 1429. The ARES project was finished in February 1999. Several partners continued - operation in a larger consortium, ITEA project 99005, ESAPS. As such it is part of the European Eureka ! 2023 programme. The third workshop was organised as part of the ESAPS project. In order to make the theme of the workshop more generic we decided to rename it “International Workshop on Software Architectures for Product Families”. As with the earlier two workshops we managed to bring together people working in the so- ware architecture of product families and in software product-line engineering. Submitted papers were grouped in five sessions. Moreover, we introduced two s- sions, one on configuration management and one on evolution, because we felt that d- cussion was needed on these topics, but there were no submitted papers for these subjects. Finally, we introduced a surveys session, giving an overview of the present situation in Europe, focussed on ESAPS, and in the USA, focussed on the SEI Product Line Systems Program.
This book contains the proceedings of the Fourth International Workshop on Product Family Engineering, PFE-4, held in Bilbao, Spain, October 3–5, 2001. This workshop was the fourth in a series started in 1996, with the same s- ject, software product-family engineering. Proceedings of the second and third workshops have been published as LNCS 1429 and LNCS 1951. The workshops were organized within co-operation projects of European - dustry, the ?rst two by ARES (Esprit IV 20.477) 1995–1999. This project had three industrial and three academic partners, and focused on software archit- turesforproductfamilies.SomeofthepartnerscontinuedinITEAproject99005, ESAPS(1999–2001).ITEAisthesoftwaredevelopmentprogram(?!2023)within the European Eureka initiative. ITEA projects last for two years and ESAPS ́ was succeeded by CAFE (ITEA ip00004), which started in 2001 and will t- minate in 2003. This workshop was initially prepared within ESAPS and the ́ preparation continued in CAFE. Due to the attacks in the USA of September 11, several people were not able to ?y and therefore did not show up. However, we have included their submissions in these proceedings. The session chair presented these submissions, and their inputs were used during the discussions. It was planned that Henk Obbink be workshop chair, and Linda Northrop and Sergio Bandinelli be co-chairs. However, because of personal circumstances Henk Obbink was not able to leave home during the workshop. Moreover both co-chairs had already enough other duties. Therefore the chairing duties were taken over by the program chair, Frank van der Linden.
This book constitutes the thoroughly refereed post-proceedings of the 5th International Workshop on Product-Family Engineering, PFE 2003, held in Siena, Italy in November 2003. The 36 revised full papers presented together with an introductory overview and 3 keynote presentations were carefully selected during two rounds of reviewing and improvement. The papers are organized in topical sections on variation mechanisms, requirements analysis and management, product derivation, transition to family development, industrial experience, evolution, and decision and derivation.
"Designing Software Product Lines with UML is well-written, informative, and addresses a very important topic. It is a valuable contribution to the literature in this area, and offers practical guidance for software architects and engineers." --Alan Brown Distinguished Engineer, Rational Software, IBM Software Group "Gomaa''s process and UML extensions allow development teams to focus on feature-oriented development and provide a basis for improving the level of reuse across multiple software development efforts. This book will be valuable to any software development professional who needs to manage across projects and wants to focus on creating software that is consistent, reusable, and modular in nature." --Jeffrey S Hammond Group Marketing Manager, Rational Software, IBM Software Group "This book brings together a good range of concepts for understanding software product lines and provides an organized method for developing product lines using object-oriented techniques with the UML. Once again, Hassan has done an excellent job in balancing the needs of both experienced and novice software engineers." --Robert G. Pettit IV, Ph.D. Adjunct Professor of Software Engineering, George Mason University "This breakthrough book provides a comprehensive step-by-step approach on how to develop software product lines, which is of great strategic benefit to industry. The development of software product lines enables significant reuse of software architectures. Practitioners will benefit from the well-defined PLUS process and rich case studies." --Hurley V. Blankenship II Program Manager, Justice and Public Safety, Science Applications International Corporation "The Product Line UML based Software engineering (PLUS) is leading edge. With the author''s wide experience and deep knowledge, PLUS is well harmonized with architectural and design pattern technologies." --Michael Shin Assistant Professor, Texas Tech University Long a standard practice in traditional manufacturing, the concept of product lines is quickly earning recognition in the software industry. A software product line is a family of systems that shares a common set of core technical assets with preplanned extensions and variations to address the needs of specific customers or market segments. When skillfully implemented, a product line strategy can yield enormous gains in productivity, quality, and time-to-market. Studies indicate that if three or more systems with a degree of common functionality are to be developed, a product-line approach is significantly more cost-effective. To model and design families of systems, the analysis and design concepts for single product systems need to be extended to support product lines. Designing Software Product Lines with UML shows how to employ the latest version of the industry-standard Unified Modeling Language (UML 2.0) to reuse software requirements and architectures rather than starting the development of each new system from scratch. Through real-world case studies, the book illustrates the fundamental concepts and technologies used in the design and implementation of software product lines. This book describes a new UML-based software design method for product lines called PLUS (Product Line UML-based Software engineering). PLUS provides a set of concepts and techniques to extend UML-based design methods and processes for single systems in a new dimension to address software product lines. Using PLUS, the objective is to explicitly model the commonality and variability in a software product line. Hassan Gomaa explores how each of the UML modeling views--use case, static, state machine, and interaction modeling--can be extended to address software product families. He also discusses how software architectural patterns can be used to develop a reusable component-based architecture for a product line and how to express this architecture as a UML platform-independent model that can then be mapped to a platform-specific model. Key topics include: Software product line engineering process, which extends the Unified Development Software Process to address software product lines Use case modeling, including modeling the common and variable functionality of a product line Incorporating feature modeling into UML for modeling common, optional, and alternative product line features Static modeling, including modeling the boundary of the product line and information-intensive entity classes Dynamic modeling, including using interaction modeling to address use-case variability State machines for modeling state-dependent variability Modeling class variability using inheritance and parameterization Software architectural patterns for product lines Component-based distributed design using the new UML 2.0 capability for modeling components, connectors, ports, and provided and required interfaces Detailed case studies giving a step-by-step solution to real-world product line problems Designing Software Product Lines with UML is an invaluable resource for all designers and developers in this growing field. The information, technology, and case studies presented here show how to harness the promise of software product lines and the practicality of the UML to take software design, quality, and efficiency to the next level. An enhanced online index allows readers to quickly and easily search the entire text for specific topics.
This book covers research into the most important practices in product line organization. Contributors offer experience-based knowledge on the domain and application engineering, the modeling and management of variability, and the design and use of tools to support the management of product line-related knowledge.
Software product lines represent perhaps the most exciting paradigm shift in software development since the advent of high-level programming languages. Nowhere else in software engineering have we seen such breathtaking improvements in cost, quality, time to market, and developer productivity, often registering in the order-of-magnitude range. Here, the authors combine academic research results with real-world industrial experiences, thus presenting a broad view on product line engineering so that both managers and technical specialists will benefit from exposure to this work. They capture the wealth of knowledge that eight companies have gathered during the introduction of the software product line engineering approach in their daily practice.
This book originates from a workshop organised by ESPRIT project 20 477, ARES in Las Palmas de Gran Canaria, Spain, February 1998. ARES is an acronym for Architectural Reasoning for Embedded Systems. Within this project we investigate techniques to deal with problems of software architecture of families of embedded systems. It is the second workshop organised by this project. Its predecessor was held in Las Navas de Marques, Spain, November 1996. The proceedings of the first workshop are only available in electronic format at "http://www.dit.upm.es/~ares/". The second workshop succeeded, even more than the first one, in gathering many of the most prominent people working in the area of software architecture for product families or product lines. This second workshop consisted of six sessions. The first session was meant to report the ARES results, according to the topics of the next five sessions. The remaining sessions dealt with different aspects of software architecture, focussed on applications for product families or product lines. Because there will be a separate book covering all ARES results, the first session is not included in this book. The workshop was chaired by Henk Obbink from Philips Research and Paul Clements from the Software Engineering Institute at Carnegie Mellon University. They prepared and presented an overall conclusion at the end of the workshop. This conclusion was used in the introduction to this book.
This is the eagerly-anticipated revision to one of the seminal books in the field of software architecture which clearly defines and explains the topic.
Software product lines are emerging as an important new paradigm for so- ware development. Product lines are enabling organizations to achieve impressive time-to-market gains and cost reductions. In 1997, we at the Software Engine- ing Institute (SEI) launched a Product Line Practice Initiative. Our vision was that product line development would be a low-risk, high-return proposition for the entire software engineering community. It was our hope from the beginning that there would eventually be su?cient interest to hold a conference. The First Software Product Line Conference (SPLC1) was the realization of that hope. Since SPLC1, we have seen a growing interest in software product lines. Companies are launching their own software product line initiatives, product line technical and business practices are maturing, product line tool vendors are emerging, and books on product lines are being published. Motivated by the enthusiastic response to SPLC1 and the increasing number of software product lines and product line researchers and practitioners, the SEI is proud to sponsor this second conference dedicated to software product lines. We were grati?ed by the submissions to SPLC2 from all parts of the globe, from government and commercial organizations. From these submissions we were able to assemble a rich and varied conference program with unique opportunities for software product line novices, experts, and those in between. This collection represents the papers selected from that response and includes research and experience reports.