SEI´S Software Product Line Tenets Linda M. Northrop Software Engineering Institute IEEE Software July/August 2002 What is a Product Line? “ A set of software-intensive systems that share a common, managed feature set satisfying a particular market segment´s specific needs or mission and that are developed from a common set of core assets in a prescribed way”. Core Assets • Basis for the software product line – – – – – – – – – Architeture Reusable Components Domain Models Requirements Schedules Budgets Test plans Process descriptions And more Essential Product line activities Management • Technical management: core assets development and product development activities • Organizational management: a funding model that ensures core asset evolution & orchestrates the technical activities and iterations between core asset development and product development. • Important! PRODUCT LINE MANAGER Software product line practice areas • A practice area is a body of work or a collection of activities. • Defines activities that are smaller and more tractable than a broad imperative such as “Develop core assets.” Software Engineering practice areas • • • • • • • • • Architecture Definition Architecture Evaluation Component Development COTS Utilization Mining Existing Assets Requirements Engineering Software System Integration Testing Understanding Relevant Domains Technical management practice areas • • • • • • • • Configuration Management Data Collection, Metrics, and Tracking Make/Buy/Mine/Commission Analysis Process Definition Scoping Technical Planning Technical Risk Management Tool Support Organizational management practice areas • • • • • • • • • • • • Building a Business Case Customer Interface Management Developing an Acquisition Strategy Funding Launching and Institutionalizing Market Analysis Operations Organizational Planning Organizational Risk Management Structuring the Organization Technology Forecasting Training Product line practice patterns Lessons learned defining the approach • Product line business practices cannot be affected without explicit management commitment and involvement. • Organization size doesn’t matter. • Reuse has a bad reputation in many organizations owing to the failure of earlier small-grained reuse initiatives. • Organizations often want an evaluation of their product line efforts. • Process discipline is critical. The Economic Impact of Product Line Adoption and Evolution Klaus Schmid, Fraunhofer IESE Martin Verlage, Market Maker Software AG Big Bang approach X Incremental approach Product Line line investment curves Situations for adopting PLE • Independent: from scratch • Project-Integrating • Reengineering-driven: Legacy systems, nontrivial effort • Leveraged: a new product line based on a existent one Independent Adoption Project-integration adoption Reengineering-driven adoption Leveraged adoption •Technical feasibility studies •Detailed market analysis •Control overall uncertainty Key components are sucessively generalized into reusable components When is impossible to derive new Products from available systems Address a new market segment with low costs and few risks. Must perform risk and technical analysis Product line evolution • Infrastrucuture-based evolution: new requirements lead to generalization for PL infrastructure. • Branch-and-unite: new version branch for a new variant and reunifies with the infrastructure after product release. • Bulk: larger branching (avoid!) Product line planning techniques Product portfolio scoping: Which products shall be part of the product line? Domain-based scoping: Which technical areas (domains) provide good opportunities for PL reuse? Reuse infrastructure scoping: Which functionalities should the reuse infrastrucutre support? Product Line Tenets Essential Product line activities Economic Impact Product Line line investment curves Situations for adopting PLE Practice Areas Product Line evolution Practice Areas Patterns Product Line Planning