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 Technical feasibility studies Detailed market analysis Control overall uncertainty Project-integration adoption Key components are sucessively generalized into reusable components When is impossible to derive new Products from available systems Reengineering-driven adoption Leveraged adoption 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 Economic Impact Essential Product line activitiesProduct Line line investment curves Product Line evolutionPractice Areas Situations for adopting PLE Product Line PlanningPractice Areas Patterns