- 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.8 Modeling Software Product Lines with UML
The field of software reuse has evolved from reuse of individual components toward large-scale reuse with software product lines. Software modeling approaches are now widely used in software development and have an important role to play in software product lines. Modern software modeling approaches, such as UML, provide greater insights into understanding and managing commonality and variability by modeling product lines from different perspectives.
The UML-based software design method for software product lines described in this book is called PLUS (Product Line UML-Based Software Engineering). The PLUS method extends the UML-based modeling methods that are used for single systems to address software product lines. With PLUS, the objective is to explicitly model the commonality and variability in a software product line. PLUS provides a set of concepts and techniques to extend UML-based design methods and processes for single systems to handle software product lines.
The PLUS method is similar to other UML-based object-oriented methods when used for analyzing and modeling a single system. Its novelty, and where it differs from other methods, is the way it extends object-oriented methods to model product families. In particular, PLUS allows explicit modeling of the similarities and variations in a product line.
In order to understand the product line and develop a model of it, an analyst needs to consider several different perspectives of the product line. A product line model is therefore a multiple-viewpoint representation of the product family, such that each viewpoint presents a different perspective on the family. The different viewpoints are developed iteratively. By analyzing the different viewpoints of the family, an analyst can get a better understanding of the product line. For product line analysis and modeling, the object-oriented analysis and design method used for individual systems is extended to product lines. Requirements, analysis, and design models of the product line are developed.