- Software Reuse
- Software Product Lines
- Modeling Requirements Variability in Software Product Lines: Feature Modeling
- Modeling Design Variability in Software Product Lines
- Reusable Design Patterns
- Modeling Single Systems with UML
- COMET: A UML-Based Software Design Method for Single Systems
- Modeling Software Product Lines with UML
- UML as a Standard
- Related Texts
1.10 Related Texts
This book presents a comprehensive UML-based object-oriented method addressing requirements modeling, analysis modeling, and design modeling for software product lines. This book complements books in other areas.
There are several books on UML-based object-oriented analysis and design for single systems. These include the set of three books by Booch, Jacobson, and Rumbaugh (Booch et al. 2005; Jacobson et al. 1999; Rumbaugh et al. 2005), as well as other UML books, such as Eriksson et al. 2004 and Fowler 2004, books on tool usage with UML (Quatrani 2003), books on real-time design with UML (Douglass 2004; Gomaa 2000), and books on using patterns with UML (Douglass 2002; Larman 2002).
There are few books on software reuse and software product lines. The Jacobson book on software reuse (Jacobson et al. 1997) addresses object-oriented software reuse in general and introduces the topic of variability in use cases and classes using the variation point concept. Weiss's book on software product lines (Weiss and Lai 1999) is a comprehensive treatment of this topic, with particular emphasis on how information hiding can be used effectively in product line design. The book on software product lines (Jazayeri et al. 2000) consists of a collection of papers published as a result of a European industry/university collaborative project. The book provides interesting research-oriented perspectives on product lines, including some papers on software architecture. Bosch also addresses software architecture and product lines in an interesting book (Bosch 2000) that covers a range of topics on software architecture and addresses both technical and management issues in software product lines. Clements and Northrop (2002) provide a very good introduction to the field of software product lines and coverage of the major management issues (in particular the practice areas of technical management and organizational management for product lines), as well as detailed case studies of organizations that have successfully developed software product lines.
There are a growing number of books on component technology, which describe the design of individual components (Brown 2000; Szyperski 2003) or UML components (Cheesman and Daniels 2001). These books complement this book but do not address how to design components so that they can be incorporated into software product lines.
There are several books on software architecture, including Shaw and Garlan 1996 and Bass et al. 2003, and also a UML-based book (Hofmeister et al. 2000). Bass et al. 2003 has some chapters on software product lines, a topic that is not addressed by the other two books. Finally, there are several books on architecture and design patterns, most notably Buschmann et al. 1996, Gamma et al. 1995, Larman 2002, and Schmidt et al. 2000. However, none of these books describe patterns in terms of how they could be incorporated into software product lines.
This book places an emphasis on object orientation, UML, designing software architectures for product lines, and addressing how to incorporate component and pattern technology into software product lines.