Software Product Lines Kadir Kuz
Topics What is a Software Product Line? SPL vs Traditional Software Reuse Basic SPL Concepts Production SPL Process and Organization SPL Component Development and System Integration Benefits Costs and Potential Risks
What is a Software Product Line? A software product line is a set of software-intensive systems sharing a common, managed set of futures 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.
The product line is a product suite sharing a common, managed set of features that satisfy specific needs of a selected domain. pertain to Domain Architecture Components is satisfied by share an Products guides development of are built from 3 4
Traditional Software Reuse reuse library with components, modules and algorihtms takes longer to find the desired functionality SPL reuse is planned, enabled and enforced
The Key Concepts Sotware asset inputs Decision Model and product decisions Production mechanism and process Software product outputs
Production Automation Periodicity Roles assets decisions products
SPL Process and Organization
Development Department
Business Units
Domain Engineering Unit
SPL Component Development & System Integration
Organizational Benefits Improved Poductivity (up to 10x) Decreased time to market (up to 10x) Decreased cost (up to %60) Decreased labor needs(up to 10x fewer software developers) Increased quality (up to 10x fewer defects)
Benefits of Software Product Lines Individuals Who Benefit -CEO -COO -Architect -Core Asset Developer -Technical Manager -Marketer -Customer -End User
Technical Manager increased predictability well-established roles and responsibilities efficient production
Software Product Developer higher morale greater job satisfaction Can focus on truly unique aspects of products Easier software Integration Fewer schedule delays Has time to learn new technology is a part of a team, building products with an established quality record and reputation
Costs and Potential Risks Core Assets Costs Architecture Must support variation inherent in the PL Software components Must be designed to be general without a loss of performance; must build in support for variation points Project plans Must be generic or be made extensible to accommodate product variations people Must involve training and expertise centered around the assets and procedures associated with the PL Test plans, Test cases Must consider the variation points and multiple instances of the PL Business case and market analysis Must adress a family of software products, not just one product
FAQ What is the difference between a domain and product line? Is not the product line practice just another name for component based development/domain engineering?
SPLC 2007
Thanks for your listening, Any Questions?