Items related to Designing Software Product Lines with UML: From Use...

Designing Software Product Lines with UML: From Use Cases to Pattern-Based Software Architectures - Softcover

  • 3.30 out of 5 stars
    10 ratings by Goodreads
 
Image Not Available

Synopsis

"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.



"synopsis" may belong to another edition of this title.

About the Author

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.

Excerpt. © Reprinted by permission. All rights reserved.

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:

  • Describes fundamental concepts and technologies in the design of software product lines.
  • Describes, in considerable detail, a UML-based object-oriented analysis and design method for software product lines. It examines how each of the UML modeling views—use case modeling, static modeling, dynamic state machine modeling, and dynamic interaction modeling—is extended to address software product lines. Each UML modeling view is extended to reflect the commonality and variability of the product line. A new view, the feature modeling view, is added to explicitly model the commonality and variability of software requirements.
  • Uses the Object Management Group (OMG) concept of model-driven architecture to develop a component-based software architecture for a product line. The product line architecture is expressed as a UML platform-independent model, which can then be mapped to a platform-specific model.
  • Describes how architectures for software product lines are developed through the consideration of software architectural patterns in relation to the characteristics of the product line. The product line architecture is component-based and explicitly models the commonality and variability of the product line.
  • Presents three case studies illustrating how a software product line architecture is developed, starting with use cases and feature modeling in the requirements modeling phase, static and dynamic modeling in the analysis modeling phase, and the development of the component-based software architecture in the design modeling phase. The case studies focus on a microwave oven product line, an electronic commerce product line, and a factory automation product line.
  • Includes a glossary, a bibliography, and two appendices, which provide (1) an overview of UML 2 notation and (2) a catalog of software architectural patterns for product lines.

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

  • Use case modeling. Model commonality and variability in the use case model. For this purpose, PLUS provides an approach to modeling kernel, optional, and alternative use cases, as well as an approach to modeling variation points in use cases.
  • Feature modeling. Model product line features. Feature modeling is a key concept in software product lines. PLUS provides an approach for modeling common, optional, and alternative features, an approach for deriving the feature model from the use case model, and an approach for representing features with the UML notation.

Software Product Line Analysis Modeling

  • Static modeling. Develop a product line context model for the product line boundary. Determine kernel, optional, and alternative external classes. Develop a product line information (entity class) model: determine kernel, optional, and alternative entity classes.
  • Dynamic interaction modeling. Develop interaction diagrams to realize kernel, optional, and alternative use cases. Use evolutionary development: the kernel first approach is applied to determine product line commonality, followed by product line evolution to determine variability.
  • Dynamic state machine modeling. Develop kernel, optional, and alternative statecharts. Manage state machine variability through inheritance and parameterization.
  • Feature/class dependency modeling. Determine how the common, optional, and alternative features of the product lines depend on the kernel, optional, and variant classes.

Software Product Line Design Modeling

  • Software architectural patterns. Determine the software architectural structure and communication patterns that are most appropriate for the product line given the catalog of architectural patterns.
  • Component-based software design. Develop a component-based software design for the product line, which models kernel, optional, and variant components, as well as their ports and provided and required interfaces. Design the component-based architecture that explicitly models the components and their interconnections.

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.

  • PublisherAddison-Wesley Professional
  • Publication date2004
  • ISBN 10 0201775956
  • ISBN 13 9780201775952
  • BindingPaperback
  • LanguageEnglish
  • Number of pages730
  • Rating
    • 3.30 out of 5 stars
      10 ratings by Goodreads

Buy Used

Condition: Good
Connecting readers with great books...
View this item

US$ 3.75 shipping within U.S.A.

Destination, rates & speeds

Buy New

View this item

US$ 13.32 shipping from United Kingdom to U.S.A.

Destination, rates & speeds

Search results for Designing Software Product Lines with UML: From Use...

Stock Image

Gomaa, Hassan
Published by Addison-Wesley Professional, 2004
ISBN 10: 0201775956 ISBN 13: 9780201775952
Used Paperback

Seller: HPB-Red, Dallas, TX, U.S.A.

Seller rating 5 out of 5 stars 5-star rating, Learn more about seller ratings

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

Contact seller

Buy Used

US$ 20.29
Convert currency
Shipping: US$ 3.75
Within U.S.A.
Destination, rates & speeds

Quantity: 1 available

Add to basket

Stock Image

Gomaa, Hassan
Published by Addison-Wesley Professional, 2004
ISBN 10: 0201775956 ISBN 13: 9780201775952
Used Softcover

Seller: SecondSale, Montgomery, IL, U.S.A.

Seller rating 5 out of 5 stars 5-star rating, Learn more about seller ratings

Condition: Very Good. Item in very good condition! Textbooks may not include supplemental items i.e. CDs, access codes etc. Seller Inventory # 00086704509

Contact seller

Buy Used

US$ 24.21
Convert currency
Shipping: FREE
Within U.S.A.
Destination, rates & speeds

Quantity: 1 available

Add to basket

Stock Image

Gomaa, Hassan
Published by Addison-Wesley, 2004
ISBN 10: 0201775956 ISBN 13: 9780201775952
Used Hardcover

Seller: BookOrders, Russell, IA, U.S.A.

Seller rating 5 out of 5 stars 5-star rating, Learn more about seller ratings

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

Contact seller

Buy Used

US$ 38.00
Convert currency
Shipping: US$ 4.00
Within U.S.A.
Destination, rates & speeds

Quantity: 1 available

Add to basket

Stock Image

Gomaa, Hassan/ Barber, Maryann/ Jacobson, Ivar (Foreward By)
Published by Addison-Wesley, 2004
ISBN 10: 0201775956 ISBN 13: 9780201775952
New Paperback

Seller: Revaluation Books, Exeter, United Kingdom

Seller rating 5 out of 5 stars 5-star rating, Learn more about seller ratings

Paperback. Condition: Brand New. illustrated edition. 736 pages. 9.50x7.25x2.00 inches. In Stock. Seller Inventory # zk0201775956

Contact seller

Buy New

US$ 100.98
Convert currency
Shipping: US$ 13.32
From United Kingdom to U.S.A.
Destination, rates & speeds

Quantity: 1 available

Add to basket

Stock Image

GOMAA
Published by PEARSON EDUCACION, 2004
ISBN 10: 0201775956 ISBN 13: 9780201775952
Used Softcover

Seller: OM Books, Sevilla, SE, Spain

Seller rating 5 out of 5 stars 5-star rating, Learn more about seller ratings

Condition: usado - bueno. Seller Inventory # 9780201775952

Contact seller

Buy Used

US$ 611.14
Convert currency
Shipping: US$ 66.23
From Spain to U.S.A.
Destination, rates & speeds

Quantity: 1 available

Add to basket