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


The First Software
Product Line Conference

Conference Tutorials

SPLC Logo
Monday, August 28
{short description of image} COPA: A Component-Oriented Platform Architecting Method for Families of Software Intensive Electronic Products (Full day)
{short description of image} A Feature-Oriented Method for Product Line Software Engineering (Full day)
{short description of image} Designing and Evolving a Product Line Architecture (Half day, AM)
{short description of image} Architecture Synthesis (Half day, PM)
Tuesday, August 29
{short description of image} Architecture for Planning Software Product Platforms (Half day, AM)
{short description of image} TrueScope(tm): A Full Life-cycle Approach to Develop Software Product Lines (Half day, AM)
{short description of image} Product Line Architectures, Aspects, and Reuse (Half day, AM)
{short description of image} Process Improvement for Software Product Lines (Half day, PM)
{short description of image} Introduction to the Architecture Based Design Method (Half day, PM)
{short description of image} Building Reusable Test Assets for a Product Line (Half day, PM)
{short description of image}

Title: COPA: A Component-Oriented Platform Architecting Method for Families of Software Intensive Electronic Products
Presenter: Henk Obbink, Jürgen Müller, Pierre America, and Rob van Ommering
Time: Monday, Full day
Abstract: This tutorial will present a coherent view of a product family development approach covering subjects ranging from the business goals to integration testing. This approach is especially suited for systems that contain embedded software of considerable size and complexity. It combines modern techniques such as component-based software development, domain analysis, platform-based reuse, etc. The approach was validated in practice in several divisions of a large industrial company and the tutorial will present two in-depth cases taken from these industrial applications.
Intended Audience: System and software architects with at least a little experience in developing product families.

Title: A Feature-Oriented Method for Product Line Software Engineering
Presenter: Kyo C. Kang
Time: Monday, Full day
Abstract: To be able to engineer application software for a product line, the application domain of the product line must first be understood in terms of application family's commonality and variability. Since the feature-oriented approach to domain analysis (FODA) was introduced in 1990 by the Software Engineering Institute, many domain engineering methods for software reuse have adopted the technique to support the domain commonality and variability analysis. FORM (Feature-Oriented Reuse Method), for instance, expanded FODA to include architecture design and object-oriented component development. This method has been applied to several industry application domains, including elevator control systems, electronic bulletin board systems, yard automation systems, and PBX, to create product line software engineering environments and software packages. This tutorial will introduce the FORM method using these industry applications as example.
Intended Audience: The tutorial will be prepared primarily for those who are interested in adopting the product line software development in their organization and those who want to develop reusable packages. Researchers who are working on software reuse will also benefit from this course greatly.

Title: Designing and Evolving a Product Line Architecture
Presenter: Jan Bosch
Time: Monday, Half day, AM
Abstract: One can identify two important developments in software architecture, i.e. software product lines and software architecture design. This tutorial addresses these topics by presenting an method for architectural design explicitly focussing on assessment of and transformation for quality attributes. In addition, the notion of software product lines and the process, technology, business and organizational issues of adopting the approach are presented. Both design and product-lines are extensively illustrated by examples and experiences from several industrial cases. The tutorial is based on a forthcoming book (tentative publication date: early June 2000) authored by the tutorial presenter and published by Addison-Wesley.
Intended Audience: The expected audience can be divided into two categories. First, software engineers and technical managers considering the introduction of software architecture design and, potentially, product-line architectures in their organization. Second, researchers interested in the experiences collected by the tutorial presenter and his research group and the reflections made based on their experiences.

Title: Architecture Synthesis
Presenter: Mehmet Aksit
Time: Monday, Half day, PM
Abstract: One of the major issues in designing architectures is to derive the fundamental abstractions of architectures from the business context and requirement specifications. This tutorial first presents a comparative analysis of the current architecture design approaches. To this aim, with in the context of Product Line architectures, OMT, Unified Process, architectural patterns, domain specific architecture design techniques are discussed. Based on the identified issues, an architecture synthesis process is presented. This process is based on mapping business context and requirement specifications into a set of concerns and synthesizing the concerns into architectural abstractions through a systematic application of solution domain knowledge.
Intended Audience: This tutorial can be particularly useful for architecture designers who want to obtain a comparative understanding of the current architecture design approaches, recognize their strong and weak points, and learn techniques to identify the fundamental abstractions of architecture using problem synthesis techniques. The participants must have an understanding of the basic object-oriented concepts and some knowledge of at least one of the popular object-oriented analysis and design methods. Further, basic knowledge on software architectures is highly recommended.
The first 10 registrants for this tutorial will receive a free copy of the book "Synthesis Based Architecture Design".

Title: Architecture for Planning Software Product Platforms
Presenter: Derek Coleman
Time: Tuesday, Half day, AM
Abstract: For companies today, creating the design and the software or firmware for each product from the ground up is no longer feasible - especially from the point of view of product quality, ease of implementation, and shorter product development schedules. Therefore, the trend is to create new product versions by intentionally reusing the architecture, design, and code from an established software platform. In this tutorial we explore the role of architecture in planning product platforms. In the planning phase, the task is to develop an architecture to support the planned product portfolio. This requires modeling the requirements and architectures of the products on a vintage chart. Because there is always uncertainty about the future, the planning must be lightweight enough to be done quickly yet accurate enough to be worth doing. Planning product line architectures needs modeling techniques that have just enough precision and formality, i.e. lightweight and focussed on key needs.
Intended Audience: The tutorial is aimed at architects, software engineers, project managers and process engineers interested in how to develop architected software platforms. Preferably participants should have some familiarity with software modeling notations and techniques, e.g. UML, use cases etc.

Title: TrueScope(tm): A Full Life-cycle Approach to Develop Software Product Lines
Presenter: Jean-Marc DeBaud
Time: Tuesday, Half day, AM
Abstract: The goal of this tutorial is to provide the participants with the basics of an overall, well-integrated approach to develop software product families they can use in practice. The key of our process resides in its ability to define the software family's potential economies of scope at the requirements level and, as strictly as possible, propagate these economies to the reference architecture (the platform). The platform is the most critical asset of a product family. Its scope both determines its ability to handle the variation among the different product family members but also really how much return on the overall investment can be made by switching the organization to a product family engineering mode of operation. Hence, gaining a quantitative understanding of the tradeoffs involved when including or excluding products or features within the family and/or platform is critical to the success of any product family engineering endeavor. For more information, please see www.truescope-tech.com.
Intended Audience: This tutorial is open to everyone.

Title: Product Line Architectures, Aspects, and Reuse
Presenter: Don Batory
Time: Tuesday, Half day, AM
Abstract: This tutorial is aimed at researchers and practitioners who are faced with the problem of building Product-Line Architectures (i.e., families of applications) economically, and/or who are interested in assembling customized and evolvable applications automatically from component reuse libraries. We present an increasingly popular model of architecturally-evolveable software (i.e., software that evolves through the addition and removal of components) that brings together significant research areas: aspect-oriented programming, Perry's lite semantics (for testing architectural consistency), parameterized programming, generative programming, and Baxter's design maintenance. Among the case studies presented in the tutorial are extensible Java compilers and extensible simulators for Army fire support.
Intended Audience: The tutorial assumes rudimentary knowledge of OO concepts, but no experience with the tutorial's subject.

Title: Process Improvement for Software Product Lines
Presenter: Grady Campbell
Time: Tuesday, Half day, PM
Abstract: The goal of this tutorial is to present a systematic process improvement method that organizations can follow to adopt a product line approach to software development. Starting with an organization's business objectives and technical expertise, this method helps adopters evaluate the viability of a product line approach, improve process and reuse maturity to an acceptable level, target a beneficial and cost-effective level of reuse capability, and implement a strategy for instituting corresponding product line practices.
Intended Audience: This tutorial is targeted to experienced engineers and managers whose organizations repeatedly build similar products and want to achieve substantial improvements in software 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 Model approach.

Title: Introduction to the Architecture Based Design Method
Presenter: Felix Bachmann and Len Bass
Time: Tuesday, Half day, PM
Abstract: This tutorial will introduce the Architecture Based Design (ABD) method. This is a method for designing the conceptual architecture for a product line. The conceptual architecture includes the decomposition of function for the final system, identification of possible threads of parallelism and identification of possible physical network configurations and the allocation of the functional decomposition to processors.
The ABD method includes explicit steps that enable the designed architectures to serve as the basis for product lines of software. These steps include explicit consideration of commonalities and variabilities and explicit consideration and verification of quality and business requirements. The ABD method is based on the identification of architectural drivers (those requirements that "shape the architecture") and this allows the architecture design to be carried on in parallel to the requirements process.
The ABD explicitly supports the design of product lines and it is one of the few design methods that makes explicit the dependence of architecture on quality and business requirements.
Intended Audience: System architects and designers who want to understand how to design architectures, especially product line architectures) that achieve the desired system qualities.

Title: Building Reusable Test Assets for a Product Line
Presenter: John D. McGregor
Time: Tuesday, Half day, PM
Abstract: The testing activities on a project consume valuable resources that could better be used to increase functionality. This tutorial presents techniques for taking advantage of the personnel organization and software architectures to reduce the effort required for adequate testing. The techniques organize unit-level testing assets in a manner that directly reflects the architecture of the product software. The techniques also associate the requirements in the form of use cases with the system test cases.
Intended Audience: Managers, system testers, quality assurance personnel, and development personnel. This tutorial will assume that the participant has a developer's working knowledge of testing terminology and concepts.


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 ©2000 by Carnegie Mellon University