search menu icon-carat-right cmu-wordmark

Software Product Lines Curriculum

Collection
These materials from all three of the courses in our software product line curriculum are designed to help organizations produce a set of related products to achieve increased quality, significant cost reductions, and quicker time to market.
Publisher

Software Engineering Institute

Abstract

A software product line is a set of software-intensive systems sharing a common, managed set of features that satisfy the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way. Producing a set of related products as a product line has allowed organizations to achieve increased quality and significant reductions in cost and time to market. See, for example, the success stories in the Software Product Line Hall of Fame. Software product lines epitomize the concept of strategic, planned reuse.

The SEI and others have worked to lower the adoption barrier by codifying practices, writing case studies, perfecting methods useful in product line approaches, and engendering a software product line community. The business-focused, architecture-centric fundamentals of our product lines work remain as relevant today as ever, though the details require some adaptation to match an organization's context. To assist in broader adoption, we are making our educational materials freely available to the software engineering community.

The materials from all three of the courses in our software product line curriculum are now freely available. They complement our existing software product lines collection of technical reports, white papers, and presentations. While the SEI book Software Product Lines is no longer in print, much of its content is available in the product lines collection, including the Framework for Software Product Line Practice and two of the case studies.

In 1996, the SEI set out to make software product lines a low-risk, high-return proposition for all organizations. We worked for a decade with researchers and practitioners from around the world to cull out the core ideas and practices necessary to succeed with a product line approach. We wrote reports and books, gave countless presentations, developed and delivered courses, worked directly with organizations, and nurtured a community that persists today.

Decreased development cost by as much as 60%, decreased time to market by as much as 98%, increased quality, and ability to move into new markets in months versus years: these are the business benefits we saw across diverse domains and organizations using a product line approach.

Such results are no less attractive today. Software product lines make good business sense. Inherently, product line engineering is a fusion of technical and business practices.

Product line thinking is now a part of the culture. Software product line ideas have become ingrained in many other technical strategies such as open architecture and model-based engineering. Still, it is useful to revisit the foundational principles lest we be like those who lack fundamental mathematical skills and use automated computation to produce flawed results.

We invite you to ingest the courses and wealth of material in the SEI product line legacy. Infuse this thinking into today’s technologies that allow for, among other things, greater automation, configuration languages, continuous integration, containerization, and machine learning. Recent developments have the potential to make software product lines more doable, pliable, and dynamic, and to accrue even greater benefits than those already demonstrated. We look forward to learning about your experiences.

Linda Northrop, SEI Fellow

Video

In addition to the print materials listed in the collection below, all course videos are available from the SEI YouTube channel. The course video modules are as follows:

Module 1: Software Product Lines - Introduction (1 video)

Module 2: Software Product Lines Fundamentals (4 videos)

  • Basic Ideas and Terms – Lecture 1 of 4
  • Basic Ideas and Terms – Lecture 2 of 4
  • Basic Ideas and Terms – Lecture 3 of 4
  • Basic Ideas and Terms – Lecture 4 of 4

Module 3: Benefits of Software Product Lines (3 videos)

  • Organizational Benefits - Lecture 1 of 3
  • Individual Benefits - Lecture 2 of 3
  • Costs - Lecture 3 of 3

Module 4: The Three Essential Activities (4 videos)

  • What are the Essential Activities - Lecture 1 of 6
  • Core Asset Development - Lecture 2 of 6
  • Core Asset Development (cont'd)  - Lecture 3 of 6
  • Core Asset Development (cont'd)  -  Lecture 4 of 6
  • Product Development - Lecture 5 of 6
  • Management - Lecture 6 of 6

Module 5: Software Product Lines Practice Areas (1 video)

Modules 6 and 7: Software Engineering and Technical Management Practice Areas (8 videos)

  • Understanding Relevant Domains - Lecture 1 of 8
  • Understanding Relevant Domains (cont.) - Lecture 2 of 8
  • Understanding Relevant Domains: Practice Risk - Lecture 3 of 8
  • Requirements Engineering and Architecture Definition - Lecture 4 of 8
  • Component Development:  Technical Management - Lecture 5 of 8
  • Scoping - Lecture 6 of 8
  • Configuration Management - Lecture 7 of 8
  • Measurement and Tracking - Lecture 8 of 8

Module 8: Organizational Management Areas (6 videos)

  • Organizational Management Practices Areas - Lecture 1 of 6
  • Launching and Institutionalizing - Lecture 2 of 6
  • Structuring the Organization - Lecture 3 of 6
  • Structuring the Organization - Lecture 4 of 6
  • Developing a Business Case - Lecture 5 of 6
  • Funding - Lecture 6 of 6

Module 9: Case Study - Cummins, Inc. (5 videos)

  • Case Studies - Lecture 1 of 5
  • Cummins Background - Lecture 2 of 5
  • Cummins Launching Product Lines - Lecture 3 of 5
  • Cummins Practice Areas of Particular Interest - Lecture 4 of 5
  • Cummins Results - Lecture 5 of 5

Module 10: Case Study - Control Channel Toolkit (7 videos)

  • CCT Background - Lecture 1 of 7
  • CCT Launching Product Line - Lecture 2 of 6
  • CCT Engineering Core Assets - Lecture 3 of 6
  • CCT Managing the Effort - Lecture 4 of 6
  • CCT Early Benefits - Lecture 5 of 6
  • CCT Lessons and Issues - Lecture 6 of 6

Module 11: Case Study - Salion, Inc. (1 video)

Module 12: Software Product Line Practice Patterns (12 videos)

  • Software Product Line Practice Patterns - Lecture 1 of 12
  • Pattern Descriptions - Lecture 2 of 12
  • Example Patterns What to Build - Lecture 3 of 12
  • Example Patterns Factory - Lecture 4 of 12
  • Example Patterns Each Asset - Lecture 5 of 12
  • Example Patterns Product Parts - Lecture 6 of 12
  • Example Patterns Product Builder - Lecture 7 of 12
  • Example Patterns Product Building (cont'd) - Lecture 8 of 12
  • Example Patterns Assembly Line - Lecture 9 of 12
  • Example Patterns Process - Lecture 10 of 12
  • Example Patterns Cold Start - Lecture 11 of 12
  • Example Patterns Collection - Lecture 12 of 12

Module 13: SEI Product Line Technical Probe (1 video)

Module 14: Product Line Adoption Roadmap (2 videos)

  • SEI Product Line Adoption Roadmap - Lecture 1 of 2
  • SEI Product Line Adoption Roadmap - Lecture 2 of 2

Module 15: Wrap Up and Course Conclusion (1 video)

Collection Items

    educational-material-thumbnail-1

    Introduction to Software Product Lines (Course)

    Educational Material
    By

    This course introduces the essential technical and management practices needed to succeed with software product lines and provides guidelines for applying product line techniques.

    Learn More
    educational-material-thumbnail-1

    Adopting Software Product Lines

    Educational Material
    By

    This course describes a practical, phased, pattern-based approach to planning and orchestrating software product line adoption.

    Learn More
    educational-material-thumbnail-1

    Developing Software Product Lines

    Educational Material
    By

    This course focuses on understanding and applying the practice areas needed for software product line mastery.

    Learn More