Introduction to Software Product Lines Patrick Donohoe Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213

Similar documents
Software Product Lines Essentials

Complexity and Software: How to Meet the Challenge. NDIA CMMI Technology Conference

Designing the Infrastructure for an Enterprise IT System

A Case Study: Experiences with Agile and Lean Principles

CARNEGIE MELLON UNIVERSITY

Acquisition Overview: The Challenges

Effective Reduction of Avoidable Complexity in Embedded Systems

Supporting Safety Evaluation Process using AADL

Reducing Architecture Complexity with AADL

Defining a Maturity Scale for Governing Operational Resilience

Safety Evaluation with AADLv2

TSP Performance and Capability Evaluation (PACE): Customer Guide

Adapting Agile to the. Framework. Mary Ann Lapham, PMP, CSM Principal Engineer Software Engineering Institute

Achieving Agility and Stability in Large-Scale Software Development. Ipek Ozkaya Senior Researcher, Research, Technology, and System Solutions Program

Architecture-Centric Procurement

What Metrics Should a CSIRT Collect to Measure. Success?

SOFTWARE PRODUCT LINES: A RESEARCH INFRASTRUCTURE. John D. McGregor Clemson University

Incremental Lifecycle Assurance of Critical Systems

Methodology for the Cost Benefit Analysis of a Large Scale Multi-phasic Software Enterprise Migration

CERT Resilience Management Model, Version 1.2

OSATE overview & community updates

CERT Resilience Management Model, Version 1.2

The Business Case for Systems Engineering: Comparison of Defense-Domain and Non- Defense Projects

Creating a Computer Security Incident Response Team Action Plan

It Takes an Ecosystem Gary Chastek John D. McGregor

Architecture Support for Testing

Agile In Government: A Research Agenda for Agile Software Development

Implementing Product Development Flow: The Key to Managing Large Scale Agile Development

Oh No, DevOps is Tough to Implement!

Architecture-led Incremental System Assurance (ALISA) Demonstration

Measuring What Matters Lisa Young

I ve Evaluated My Architecture. Now What?

The Business Case for Systems Engineering: Comparison of Defense-Domain and Non- Defense Projects

Software Product Lines: Reuse That Makes Business Sense

CMMI Version 1.3: Are you Ready for Release?

Complexity and Safety (FAA) SEI Board of Visitors. Sarah Sheard, Team Lead Team: Mike Konrad, Chuck Weinstock, Bill Nichols, Greg Such

Engineering Practices and Patterns for Rapid BIT Evolution

Software Product Lines: Today s Impact and Tomorrow s Potential

Arcade Game Maker Pedagogical Product Line: Business Case

Fall 2014 SEI Research Review. Team Attributes &Team Performance FY14-7 Expert Performance and Measurement

Improving Acquisition in Government Requirements Management Leading Practices: CMMI-ACQ Visualization

Driving Out Technical Risk by Blending Architecture, Process, and Project Discipline

'HYHORSPHQWVLQ3URGXFW/LQHV DQG$UFKLWHFWXUH(YDOXDWLRQ

Product Line Engineering Lecture PLE Principles & Experiences (2)

Understanding Model Representations and Levels: What Do They Mean?

Agile Development and Software Architecture: Understanding Scale and Risk

Risk and Resilience: Considerations for Information Security Risk Assessment and Management

OCTAVE -S Implementation Guide, Version 1.0. Volume 9: Strategy and Plan Worksheets. Christopher Alberts Audrey Dorofee James Stevens Carol Woody

Designing Collaborative Systems of Systems in support of Multi-sided Markets

Analyzing and Evaluating Enterprise Architectures John Klein Senior Technical Staff

Agile Security Review of Current Research and Pilot Usage

Software in System Engineering: Affects on Spacecraft Flight Software

Architecting High Quality Software: The Role of Software Architecture in System Development and Evolution

Business Case for the Arcade Game Maker Product Line

Use and Organizational Impact of Process Performance Modeling in CMMI High Maturity Organizations

Dr. Nader Mehravari Research Scientist, CERT Division

The Smart Grid Maturity Model & The Smart Grid Interoperability Maturity Model. #GridInterop

Creating a Computer Security Incident Response Team Attendee Workbook

CERT Resilience Management Model Capability Appraisal Method (CAM) Version 1.1

Practical Risk Management: Framework and Methods

Prioritizing IT Controls for Effective, Measurable Security

Software Process Improvement and Product Line Practice: CMMI and the Framework for Software Product Line Practice

An Introduction to Influence Maps: Foundations, Construction, and Use

Formulation of a Production Strategy for a Software Product Line

CMMI A-Specification. Version 1.7. November, For CMMI Version 1.2. This document is controlled by the CMMI Steering Group.

CMMI for Acquisition (CMMI-ACQ) Primer, Version 1.2

Acquisition & Management Concerns for Agile Use in Government Series. Agile Development and DoD Acquisitions

The Agile Program Office

Using Scenarios in Architecture Evaluations Rick Kazman

Driving Out Technical Risk by Blending Architecture, Process, and Project Discipline

Security Measurement and Analysis

Inferring Patterns in Network Traffic: Time Scales and Variation

Arcade Game Maker Pedagocical Product Line

Using the Architecture Tradeoff Analysis Method SM to Evaluate a Reference Architecture: A Case Study

Introduction to Software Product Line Adoption

CMM,,mproving and,ntegrating

Capability Maturity Model Integration (CMMI) V1.3 and Architecture-Centric Engineering

Integration and infrastructure software Executive brief May The business value of deploying WebSphere Portal software in an SOA environment.

Given the competitive importance of

ORACLE SOA GOVERNANCE SOLUTION

Business Process Improvement Guided by the BPMM i

MEASURING PROCESS CAPABILITY VERSUS ORGANIZATIONAL PROCESS MATURITY

Acquisition & Management Concerns for Agile Use in Government Series. Agile Culture in the DoD

Systems and software engineering Software life cycle processes

Capability Maturity Model

PRM - IT IBM Process Reference Model for IT

Update Observations of the Relationships between CMMI and ISO 9001:2000

How to Develop Highly Useable CMMI Documentation

Mission Success in Complex Environments (MSCE)

This document is a preview generated by EVS

Designing Collaborative. support of Multi-sided Markets. Philip Boxer, Software Engineering Institute Dr Nicholas J. Whittall, 28 th October 2009

Policy Administration Transformation

We Have All Been Here Before

Software Engineering. Lecture 7: CMMI

Finding a Vendor You Can Trust in the Global Marketplace

Risk Mitigated SCAMPI SM Process

Rational Software White Paper TP 174

CMMI for Acquisition (CMMI-ACQ) Primer, Version 1.2

Exploring Enterprise, System of Systems, and System and Software Architectures

Applying Software Architecture Evaluation to Systems Acquisition

Transcription:

Introduction to Software Product Lines Patrick Donohoe Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 2014 by Carnegie Mellon University Copyright 2014 Carnegie Mellon University This material is based upon work funded and supported by the Department of Defense under Contract No. FA8721-05-C-0003 with Carnegie Mellon University for the operation of the Software Engineering Institute, a federally funded research and development center. Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the United States Department of Defense. NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN AS-IS BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. This material has been approved for public release and unlimited distribution except as restricted below. This material may be reproduced in its entirety, without modification, and freely distributed in written or electronic form without requesting formal permission. Permission is required for any other use. Requests for permission should be directed to the Software Engineering Institute at permission@sei.cmu.edu. Framework for Software Product Line Practice SM,PLQL SM,PLTP SM, Product Line Quick Look SM and Product Line Technical Probe SM are service marks of Carnegie Mellon University. DM-0001757 2 1

Business Success Requires Software Prowess Software pervades every sector. Software has become the bottom line for many organizations, even those who never envisioned themselves in the software business. 3 Few Systems Are Unique Most organizations produce families of similar systems, differentiated by features. A reuse strategy makes sense. 4 2

What Is a Software Product Line? 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. a new application of a proven concept an innovative, growing concept in software engineering 5 Software Product Lines pertain to BUSINESS GOALS/ APPLICATION DOMAIN PRODUCTS share an is satisfied by ARCHITECTURE used to structure are built from COMPONENTS and SERVICES CORE ASSETS Product lines take economic advantage of commonality bound variation 6 3

How Do Product Lines Help? Product lines amortize the investment in these and other core assets: requirements and requirements analysis domain model software architecture and design performance engineering documentation test plans, test cases, and test data people: their knowledge and skills processes, methods, and tools defect elimination budgets, schedules, and work plans components and services TOTAL LIFE-CYCLE REUSE MORE BENEFIT PRODUCT LINES = STRATEGIC REUSE 7 Organizational Benefits Organizations use product line practices to achieve large-scale productivity gains improve time to market maintain market presence sustain unprecedented growth achieve greater market agility compensate for an inability to hire enable mass customization get control of diverse product configurations improve product quality increase customer satisfaction increase predictability of cost, schedule, and quality 8 4

Costs of a Software Product Line Core Assets Architecture Costs Must support variation inherent in the product line Software Components Test Plans, Test Cases, Test Data Business Case and Market Analysis Project Plans Tools and Processes Must be designed to be general without a loss of performance; must build in support for variation points Must consider variation points and multiple instances of the product line Must address a family of software products, not just one product Must be generic or be made extensible to accommodate product variations Must be more robust People, Skills, Training Must involve training and expertise centered around the assets and procedures associated with the product line 9 Economics of Product Lines Current Practice Cumulative Costs With Product Line Approach Numbers of Products Weiss, D. M. & and Lai, C. T. R. Software Product-Line Engineering: A Family-Based Software Development Process. Reading, MA: Addison-Wesley, 1999. 10 5

Economics of Product Lines Current Practice Cumulative Costs PAYOFF POINT With Product Line Approach Numbers of Products Weiss, D. M. & and Lai, C. T. R. Software Product-Line Engineering: A Family-Based Software Development Process. Reading, MA: Addison-Wesley, 1999. 11 Product Line Practice Contexts for product lines vary widely, based on nature of products nature of market or mission business goals organizational infrastructure workforce distribution process discipline artifact maturity But there are universal essential activities and practices. 12 6

The Three Essential Activities Core Asset Development Product Development Management 13 Different Approaches - 1 Proactive: Develop the core assets first. Develop the scope first and use it as a mission statement. Products come to market quickly with minimum code writing. Requires up-front investment and predictive knowledge Reactive: Start with one or more products. From them, generate the product line core assets and then future products; the scope evolves more dramatically. Much lower cost of entry The architecture and other core assets must be robust, extensible, and appropriate to future product line needs. 14 7

Different Approaches - 2 Incremental: In either a reactive or proactive approach, it is possible to develop the core asset base in stages, while planning from the beginning to develop a product line. Develop part of the core asset base, including the architecture and some of the components. Develop one or more products. Develop part of the rest of the core asset base. Develop more products. Evolve more of the core asset base. 15 The SEI Framework for Software Product Line Practice SM The SEI Framework for Software Product Line Practice is a conceptual framework that describes the essential activities and twenty-nine practice areas necessary for successful software product lines. The Framework, originally conceived in 1998, is evolving based on the experience and information provided by the community. Version 4.0 in Software Product Lines: Practices and Patterns Version 5.0 http://www.sei.cmu.edu/productlines/tools/framework/index.cfm SM Framework for Software Product Line Practice is a service mark of Carnegie Mellon University. 16 8

Framework Version 5.0 Core Asset Development ESSENTIAL ACTIVITIES Product Development Management PRACTICE AREAS Software Engineering Technical Management Organizational Management Architecture Definition Configuration Management Building a Business Case Architecture Evaluation Make/Buy/Mine/Commission Analysis Customer Interface Management Component Development Measurement and Tracking Developing an Acquisition Strategy Mining Existing Assets Process Discipline Funding Requirements Engineering Scoping Launching and Institutionalizing Software System Integration Technical Planning Market Analysis Testing Technical Risk Management Operations Understanding Relevant Domains Tool Support Organizational Planning Using Externally Available Software Organizational Risk Management Structuring the Organization Technology Forecasting Training 17 Necessary Changes Architecture The product line architecture is central to success. 18 9

Why Is Software Architecture Important? Architecture Represents earliest design decisions First design artifact addressing Key to systematic reuse hardest to change most critical to get right communication vehicle among stakeholders performance modifiability reliability security transferable, reusable abstraction Key to system evolution manage future uncertainty assure cost-effective agility The right architecture paves the way for system success. The wrong architecture usually spells some form of disaster. 19 At the Heart of Successful Product Lines A pressing need that addresses the heart of the business Long and deep domain experience A legacy base from which to build Architectural excellence Process discipline Management commitment Loyalty to the product line as a single entity 20 10

The Product Line Adoption Endgame To have an operational software product line. To do that, an organization must have a core asset base supportive processes and organizational structures develop products from that asset base in a way that achieves business goals prepare itself to institutionalize product line practices 21 Widespread Use of Software Product Lines Successful software product lines have been built for families of among other things mobile phones shipboard command and control systems satellite ground-station systems avionics systems command and control/situational awareness systems pagers engine control systems mass storage devices billing systems Web-based retail systems printers consumer electronic products acquisition management enterprise systems financial and tax systems medical devices fish farm management software 22 11

In a Nutshell Software product lines epitomize the concept of strategic, planned reuse. The product line concept is about more than a new technology. It is a new way of doing one s software business. There are essential product line activities and practices areas as well as product line patterns to make the move to product lines more manageable. Core Asset Development Product Development ESSENTIAL ACTIVITIES Management PRACTICE AREAS Software Engineering Technical Management Organizational Management 23 Contact Information Patrick Donohoe Software Engineering and Acquisition Practices Directorate Telephone: +1 412-268-7616 Email: pd@sei.cmu.edu U.S. Mail: Software Engineering Institute Customer Relations 4500 Fifth Avenue Pittsburgh, PA 15213-2612 USA Telephone: +1 412-268-7616 Email: pd@sei.cmu.edu World Wide Web: www.sei.cmu.edu/productlines Customer Relations Email: customerrelations@sei.cmu.edu Telephone: +1 412-268-5800 SEI Phone: +1 412-268-5800 SEI Fax: +1 412-268-6257 24 12