[PDF][PDF] Designing software product lines with UML
H Gomaa - 29th Annual IEEE/NASA Software Engineering …, 2005 - cmapspublic3.ihmc.us
29th Annual IEEE/NASA Software Engineering Workshop-Tutorial …, 2005•cmapspublic3.ihmc.us
This book describes an evolutionary software engineering process for the development of
software product lines, which uses the Unified Modeling Language (UML) notation. A
software product line (or product family) consists of a family of software systems that have
some common functionality and some variable functionality. The interest in software product
lines emerged from the field of software reuse when developers and managers realized that
they could obtain much greater reuse benefits by reusing software architectures instead of …
software product lines, which uses the Unified Modeling Language (UML) notation. A
software product line (or product family) consists of a family of software systems that have
some common functionality and some variable functionality. The interest in software product
lines emerged from the field of software reuse when developers and managers realized that
they could obtain much greater reuse benefits by reusing software architectures instead of …
This book describes an evolutionary software engineering process for the development of software product lines, which uses the Unified Modeling Language (UML) notation. A software product line (or product family) consists of a family of software systems that have some common functionality and some variable functionality. The interest in software product lines emerged from the field of software reuse when developers and managers realized that they could obtain much greater reuse benefits by reusing software architectures instead of reusing individual software components. The field of software product lines is increasingly recognized in industry and government as being of great strategic importance for software development. Studies indicate that if three or more systems with a degree of common functionality are to be developed, then developing a product line is significantly more cost-effective than developing each system from scratch.
The traditional mode of software development is to develop single systems—that is, to develop each system individually. For software product lines, the development approach is broadened to consider a family of software systems. This approach involves analyzing what features (functional requirements) of the software family are common, what features are optional, and what features are alternatives. After the feature analysis, the goal is to design a software architecture for the product line, which has common components (required by all members of the family), optional components (required by only some members of the family), and variant components (different versions of which are required by different members of the family). Instead of starting from square one, the developer creates applications by adapting and configuring the product line architecture.
cmapspublic3.ihmc.us