"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:
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.
"synopsis" may belong to another edition of this title.
Hassan Gomaa, Professor of Software Engineering at George Mason University in Fairfax, Virginia, is an internationally acknowledged authority on the software design of distributed and real-time systems. Hassan's career in software engineering spans both industry and academia, and he develops concurrent, distributed, and real-time applications in industry; designs software development methods and applies them to real-world problems; and teaches short courses to professional software engineers around the world. He has a B.Sc. in electrical engineering from University College, London, and a Ph.D. in computer science from Imperial College, London.
Overview
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 derives applications by adapting and tailoring the product line architecture.
To model and design families of systems, the analysis and design concepts for single product systems need to be extended to support software product lines. This book is intended to appeal to readers who are familiar with modeling and designing single systems but who wish to extend their knowledge to modeling and designing software product lines. It is also intended to appeal to readers who are familiar with applying UML to the modeling and design of single systems but not with developing software product lines.
What This Book Provides
Several textbooks on the market describe object-oriented concepts and methods, which are intended for single systems. Very few books address software families or product lines; and of those that do, even fewer use UML.
This book provides a comprehensive treatment of the application of UML-based object-oriented concepts to the analysis and design of software product lines. In particular, it does the following:
The PLUS Advantage
The UML-based software design method for software product lines described in this book is called PLUS ( P roduct L ine U ML-Based S oftware 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. In particular, for modeling software product lines, PLUS provides the following additions to the process of modeling single systems:
Software Product Line Requirements Modeling
Software Product Line Analysis Modeling
Software Product Line Design Modeling
Software Application Engineering
Develop a software application that is a member of the product line by using the feature model to derive the application from the product line architecture and components.Intended Audience
This book is intended for both professional and academic audiences. The professional audience includes analysts, software architects, software designers, programmers, project leaders, technical managers, program managers, and quality assurance specialists who are involved in the design and development of large-scale software product lines in industry and government. The academic audience includes senior undergraduate- and graduate-level students in computer science and software engineering, as well as researchers in the field.
Ways to Read This Book
This book may be read in various ways. It can be read in the order it is presented, in which case Chapters 1 and 2 provide introductory concepts, Chapter 3 provides an overview of product line engineering and the PLUS process, Chapters 4 through 12 provide an in-depth treatment of designing software product lines with PLUS, and Chapters 13, 14, and 15 provide detailed case studies.
Alternatively, some readers may wish to skip some chapters depending on their level of familiarity with the topics discussed. Chapters 1 and 2 are introductory and may be skipped by experienced readers. Readers familiar with software design concepts may skip Chapter 2. Readers particularly interested in product line development can proceed directly to the description of PLUS, starting in Chapter 3. Readers who are not familiar with UML, or who are interested in finding out about the changes introduced by UML 2.0, can read the appropriate sections in Appendix A in conjunction with reading Chapters 4 through 12.
Experienced product line designers may also use this book as a reference, referring to various chapters as their projects reach a particular stage of the requirements, analysis, or design process. Each chapter is relatively self-contained. For example, at different times you might refer to Chapter 4 for a description of use cases, Chapter 5 for developing the feature model, Chapter 7 for dynamic interaction modeling, Chapter 8 when designing statecharts (skip for non-state dependent product lines), Chapter 10 and Appendix B when referring to software architectural patterns, Chapter 11 for distributed component-based software design, and Chapter 12 for application engineering. You can also increase your understanding of how to use the PLUS method by reading the case studies, because each case study explains the decisions made at each step of the requirements, analysis, and design modeling processes.
Annotated Table of Contents
Chapter 1: Introduction
This chapter presents an introduction to software product lines, a discussion of software reuse issues, and an overview of object-oriented analysis and design with UML.
Chapter 2: Design Concepts for Software Product Lines
This chapter discusses and presents an overview of key design concepts and technologies for software product lines, including object-oriented technology, software architecture, and the software component technology.
Chapter 3: Software Product Line Engineering
This chapter introduces the software product line design method, which is described in much greater detail in subsequent chapters. One of the goals of this method is to be capable of extending other design methods, such as the author's COMET method ( C oncurrent O bject M odeling and Architectural Design M et hod) to model and design software product lines. The acronym for the method is PLUS (Product Line UML-Based Software Engineering). However, the term PLUS is also intended to mean that other methods can be extended to support product lines such as COMET, ROPES, or RUP/USDP.
There are two main strategies for developing a software product line, referred to as forward evolutionary engineering and reverse evolutionary engineering. Forward evolutionary engineering is best used when a new product line is being developed with no previous systems to guide the development. Reverse evolutionary engineering is best used when the product line development begins with existing systems that are candidates for modernization and inclusion in a project to develop a product line.
Chapter 4: Use Case Modeling for Software Product Lines
This chapter describes how use case modeling concepts are extended to address software product lines—in particular, how the common and variable functionality of the product line is modeled with kernel, optional, and alternative use cases, and how variation points are used to model variability.
Chapter 5: Feature Modeling for Software Product Lines
This chapter describes feature modeling—a concept used widely in software product lines but not addressed by UML. The discussion covers how feature modeling concepts can be incorporated into the UML and how features can be determined from use cases.
Chapter 6: Static Modeling in Software Product Lines
This chapter describes how static modeling concepts are extended to address software product lines—in particular, to address modeling the boundary of the software product line and modeling entity classes, which are informationintensive classes. Also discussed is the categorization of application classes from two perspectives: the role the class plays in the application and the reuse characteristic of the class.
Chapter 7: Dynamic Interaction Modeling for Software Product Lines
This chapter describes how dynamic interaction modeling concepts are extended to address software product lines. Communication diagrams are developed for each kernel, optional, and alternative use case. Dynamic interaction modeling to address use case variation points is also covered. The kernel first approach is used for dynamic modeling, followed by the product line evolution approach.
Chapter 8: Finite State Machines and Statecharts for Software Product Lines
This chapter describes how finite state machine and statechart modeling concepts are extended to address software product lines. In particular, each state-dependent control class—whether kernel, optional, or variant—needs to be modeled with a finite state machine and depicted as a statechart. It is also possible to model variability using inherited state machines and parameterized state machines.
Chapter 9: Feature/Class Dependency Modeling for Software Product Lines
This chapter describes how to determine which classes from the analysis model are needed to support the features from the feature model. Product line classes are categorized as kernel, optional, and variant classes. Modeling class variability using both inheritance and parameterization is described. Feature-based dynamic modeling and static modeling are also covered.
Chapter 10: Architectural Patterns for Software Product Lines
This chapter describes a range of software architectural patterns that are particularly useful in the design of software product line architectures. Both architectural structure and communication patterns are described. Architectural structure patterns address the overall structure of the software architecture. Architectural communication patterns address the ways in which distributed components can communicate...
"About this title" may belong to another edition of this title.
US$ 3.75 shipping within U.S.A.
Destination, rates & speedsUS$ 13.32 shipping from United Kingdom to U.S.A.
Destination, rates & speedsSeller: HPB-Red, Dallas, TX, U.S.A.
Paperback. Condition: Good. Connecting readers with great books since 1972! Used textbooks may not include companion materials such as access codes, etc. May have some wear or writing/highlighting. We ship orders daily and Customer Service is our top priority! Seller Inventory # S_378839307
Quantity: 1 available
Seller: SecondSale, Montgomery, IL, U.S.A.
Condition: Very Good. Item in very good condition! Textbooks may not include supplemental items i.e. CDs, access codes etc. Seller Inventory # 00086704509
Quantity: 1 available
Seller: BookOrders, Russell, IA, U.S.A.
Hard Cover. Condition: Good. No Jacket. Ex-library with the usual features. The interior is clean and tight. Binding is good. Cover shows light wear. 701 pages. Ex-Library. Seller Inventory # 122272
Quantity: 1 available
Seller: Revaluation Books, Exeter, United Kingdom
Paperback. Condition: Brand New. illustrated edition. 736 pages. 9.50x7.25x2.00 inches. In Stock. Seller Inventory # zk0201775956
Quantity: 1 available
Seller: OM Books, Sevilla, SE, Spain
Condition: usado - bueno. Seller Inventory # 9780201775952
Quantity: 1 available