|
Abstract
This tutorial addresses how to develop
object-oriented requirements, analysis, and design
models of software product lines using the Unified
Modeling Language (UML) 2.0 notation. During
requirements modeling, kernel, optional, and
alternative use cases are developed to define the
functional requirements of the system. The feature
model is then developed to capture product line
requirements and how they relate to the use case
model. During analysis, static models are developed
for defining kernel, optional, and variant classes
and their relationships. Dynamic models are
developed in which statecharts define the state
dependent aspects of the product line and
interaction models describe the dynamic interaction
between the objects. The
object-oriented software architecture for the
product line is then developed,
in which the system is structured into
component-based subsystems. Structural architecture
patterns and communication patterns are also used in
designing component based distributed product lines.
The tutorial is illustrated by means of
several examples.
This tutorial is divided into two self-contained
parts: the first part addresses
Requirements and Analysis Modeling for Software
Product Lines with UML 2.0. The second part
addresses Design Modeling for Software Product
Lines with UML 2.0.
This tutorial is intended for a wide audience of
academic and industrial professionals including
researchers, academic faculty, graduate students,
software developers, systems analysts, software
designers, and project managers. Some basic
knowledge of object-oriented concepts is expected.
Reference:
The tutorial is based on a book
by the presenter:
H. Gomaa,
“Designing
Software Product Lines with UML: From Use Cases to
Pattern-Based Software Architectures", Addison
Wesley Object-Oriented Technology Series, 2005.
Biosketch:
Hassan Gomaa is Chair and Full Professor in the
Department of Computer Science at George Mason
University, Fairfax, Virginia. He has over 30 years
experience in software engineering, both in industry
and academia, and has published over 150 technical
papers and three textbooks, two of which have been
translated into Chinese. He has made conference
presentations and tutorial presentations at many
international conferences. He was keynote speaker at
the Asia-Pacific Software Engineering Conference in
December 2004 and at the International Conference on
Model-Driven Engineering, Languages, and Systems in
October 2006. He has taught several in-depth
industrial courses on software design in North
America, Europe, Japan, and Korea. He also consults
in both the technical and management aspects of
software engineering. |