This material is being posted by Carnegie Mellon University's Software Engineering Institute (SEI) on this Web site as a community service.


The Second Software
Product Line Conference

Conference Tutorials

SPLC2 Logo
Monday, August 19
{short description of image} Tutorial 1: Software Product Lines: Practices and Patterns (8:30 a.m.– 5:00 p.m.)
{short description of image} Tutorial 2: Experiencing Product Line Adoption (8:30 a.m.– 12:00 p.m.)
{short description of image} Tutorial 3: Building Reusable Test Assets for a Product Line (1:30 p.m.– 5:00 p.m.)
Tuesday, August 20
{short description of image} Tutorial 4: Practical Product Line Scoping and Modeling (8:30 a.m.– 12:00 p.m.)
{short description of image} Tutorial 5: Component-based Product-line Engineering with the UML (1:30 p.m.– 5:00 p.m.)
{short description of image} Tutorial 6: Global Analysis: Developing Software Architecture Design Strategies to Respond to Variation and Anticipated Change (8:30 a.m.– 12:00 p.m.)
{short description of image} Tutorial 7: Architecture-Centric Software Engineering (1:30 p.m.– 5:00 p.m.)
{short description of image}

Tutorial 1: Software Product Lines: Practices and Patterns
Presenters: Linda Northrop and Paul Clements, Software Engineering Institute

Monday, August 19
Time:
8:30 a.m.– 5:00 p.m.
Room: Coronado A

Abstract: The primary aim of this tutorial is to help a decision-maker understand the basics of software product line strategies, the advantages of the approach, and what will be involved in adopting a product line approach. Additionally, the aim is to help them assess where their organization stands in relation to the capabilities needed to launch a product line and to give them the necessary tools to tailor adoption and execution strategies to their organization.
Intended Audience: The tutorial is aimed at those in an organization who are in a position to make decisions affecting the decision to adopt a product line approach, and those in a position to carry out that decision. This includes technical managers at all levels, as well as those on the software development staff. Anyone who can act as a technology change agent will benefit from this tutorial.


Tutorial 2: Experiencing Product Line Adoption
Presenter: Grady Campbell, Prosperity Heights Software

Monday, August 19
Time:
8:30 a.m.– 12:00 p.m.
Room: Coronado B

Abstract: The goal of this tutorial is to give participants a roadmap for adopting a product line approach to software development. Guided by the reuse-driven Process Improvement (PIr)1 method, the tutorial will step participants through the activities of a systematic adoption process. Participants will be presented guidance on identifying market-oriented business objectives and success criteria, evaluating the viability of a product line approach for meeting those needs, determining related process improvement goals, and deriving a suitable strategy and plan for instituting product line practices.
Intended Audience: This tutorial is targeted to experienced engineers and managers whose organizations have a need to build similar products and, in doing so, want to increase their productivity and product quality. Tutorial attendees should be familiar with the principles and use of a conventional process improvement method such as the SEI Capability Maturity Model2 approach.


Tutorial 3: Building Reusable Test Assets for a Product Line
Presenter: John D. McGregor, Clemson University

Monday, August 19
Time: 1:30 p.m. – 5:00 p.m.
Room: Coronado B

Abstract: The resources needed to test a software product can equal or exceed the resources required to create the product. This tutorial takes a typical comprehensive testing process that includes both "development" testing and "system" testing and identifies those aspects of software product line practice that can be applied to the development of test assets. Achieving profitable reuse requires the same disciplined, managed approach to the production of test assets as is applied to the creation of development assets. Creating a software architecture for the test software, using abstract and generic classes, and mirroring the architecture of the application in the test architecture are some of the techniques illustrated in the tutorial.
Intended Audience: This tutorial presents a comprehensive test process that includes roles for software developers, traditional testers and managers of both. The test process is tightly integrated with the development process during the early phases of development and becomes more independent as development proceeds. The tutorial will describe techniques used by each of the roles at each of the stages of development.


Tutorial 4: Practical Product Line Scoping and Modeling
Presenter: Isabel John, Fraunhofer IESE

Tuesday, August 20
Time: 8:30 a.m. – 12:00 p.m.
Room: Coronado A

Abstract: While the technologies for scoping and modeling of product lines are typically treated as independent, practical experience shows that they are actually strongly interrelated. This observation is a key point for this tutorial: its focus is on an integrated presentation of product line scoping and modeling technologies. The presentation illustrates this with the PuLSE3 method, which has been successfully applied in industrial practice.
Intended Audience: The tutorial aims both at researchers wishing to get a fresh view of the topic of product line modeling and scoping, and at practitioners wishing to gain an understanding of how they can integrate product line scoping and modeling techniques in their existing practices.


Tutorial 5: Component-based Product-line Engineering with the UML4
Presenter: Dirk Muthig, Fraunhofer IESE

Tuesday, August 20
Time: 1:30 p.m. – 5:00 p.m.
Room: Coronado A

Abstract: To date the component paradigm has only really penetrated the implementation and deployment phases of the software life cycle; it does not yet play a major role in the earlier analysis and design activities of large software projects. This tutorial will present a new method for component-based software engineering, known as KobrA, which supports a higher-level, model driven representation of components and thus enables the benefits of components to be realized throughout the software life cycle. Other distinctive features of the approach include the use of a product-line approach to develop and deploy component frameworks, a systematic, architecture-centric process that highlights the component composition hierarchy, and fully integrated quality assurance in the form of inspections and quality modeling.
Intended Audience: The audience for this tutorial is software professionals with knowledge of the unified modeling language (UML) and basic familiarity with the concepts of component technology.


Tutorial 6: Global Analysis: Developing Software Architecture Design Strategies to Respond to Variation and Anticipated Change
Presenters: Robert L. Nord and Daniel J. Paulish, Siemens

Tuesday, August 20
Time: 8:30 a.m. – 12:00 p.m.
Room: Coronado B

Abstract: The purpose of global analysis is to analyze the factors that influence the architecture and to develop strategies for accommodating these factors in the architecture design. Some of these influencing factors–which include market requirements, technologies, hardware, and business factors–affect the entire system, and some directly contradict other factors. In order to avoid major potential rework, they must be addressed from the beginning of high-level design. By applying the approach described in this tutorial, we believe that projects will have better understanding and control of the risks associated with alternative software architecture designs. Such an approach can be used to support the design of a single evolving system or variation within a product line.
Intended Audience: This tutorial is intended for experienced software engineers, architects, and project and technical managers.


Tutorial 7: Architecture-Centric Software Engineering
Presenter: Jan Bosch, University of Groningen

Tuesday, August 20
Time: 1:30 p.m. – 5:00 p.m.
Room: Coronado B

Abstract: This tutorial provides both an overview and an in-depth treatment of the issues surrounding architecture-centric engineering of software. Topics include software architecture design in the presence of existing components and infrastructure (top-down versus bottom-up), architecture evaluation and assessment, software artifact variability management, software product lines, and the role of the software architect. In addition to the technical perspective, the topics are discussed from process and organizational viewpoints, and are extensively illustrated by examples and experiences from many industrial cases.
Intended Audience: The expected audience is (1) software engineers and technical managers considering the introduction of architecture-centric software development and evolution, and (2) researchers interested in the experiences collected by the tutorial presenter and his research group and the reflections made based on the experiences. Participants are assumed to have some experience with industrial software development.


1 PIr is a trademark of Prosperity Heights Software.
2 Capability Maturity Model is registered in the U.S. Patent and Trademark Office.
3 PuLSE is a registered trademark of the IESE.
4 UML is a trademark of the Object Management Group.

The SEI is a federally funded research and development center sponsored by
the U.S. Department of Defense and operated by Carnegie Mellon University.

Copyright ©2002 by Carnegie Mellon University