310 likes | 341 Views
Introducing Software Product Lines (SPL). Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br. Recent area. 2002. Evolution. 1960 subroutines. 1970 modules. 1980 objects. 1990 components. 2000 SPL. Previous Classes. Overview
E N D
Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br
Recent area 2002
Evolution 1960 subroutines 1970 modules 1980 objects 1990 components 2000 SPL
Previous Classes Overview Concepts Steps Product Lines Overview Origins Concepts Elements Component-Based Development Overview Steps Scoping Elements Domain Engineering Overview Success and Failure Factors Myths Inibitors Software Reuse
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. Paul Clements and Linda Northrop, 2002
Essential Factors • Investment • Planning • Direction • Business Strategy Management
Is Product Lines a new approach? • Small-Grained Reuse • Single-System Development with Reuse • Component-Based Development • Reconfigurable Architecture • Release and versions of Single Products
Small-Grained Reuse • Reuse of pieces of code • Algorithms, modules, objects, components • Company Libraries • Poor documentation • Ineficient search mechanisms • Opportunistic reuse • Software Product Line • Reuse is planned, comprehensive, and enabled • Asset base • Requirements, domain models, architecture, test cases.....
Single-System Development with Reuse • Software Product Line • Assets designed for reuse • Product line is treated as a whole
Just Component-Based Development • Products in product lines are composed of components, however: • Product-Line Architecture • Production Plan • Technical and Organizational Management
Others • Reconfigurable Architecture • Variability Points • Release and versions of Single Products • Previous versions
Organizational Benefits • To achieve large-scale productivity gains • To improve time-to-market • To maintain market presence • To improve product quality • To increase customer satisfaction • To achieve reuse goals • To enable mass customization
Product Line asset repository Benefits • Requirements • Architecture • Components • Modeling and Analysis • Testing • Planning
Essential Activities Core Asset Development Product Development Management Domain Engineering Application Engineering
Core Asset Development Core Asset Development Management
Product Line Scope • Product Line scope is a description of the products, that will constitute the product line or that the product line is capable of including • Fundamental activity {Scoping} • Commonality and Variability • Iterative process
Core assets • Core assets are the basis for production of products in the product line • Core assets • Architecture {scope, styles, patterns, and frameworks} • Components • Test plans, Test cases • Documentation • Domain models • Requirements • Commercial off-the-shelf (COTS) components
Production Plan • A production plan describes how the products are produced from the core assets {reuser’s guide} • A Set of attached process {with the glue} • Production Plan describes: • Tools • Metrics, Metric Plan
Product Development Product Development Management
Management • Critical role in the successful fielding of a product line • Technical • Core asset development • Product development • Organizational • Training • Funding • Risks
SPL Cultural Costs DE Rules CBD
References • [Clements, 2002] P. Clements., L. Northrop., Software Product Lines: Practices and Patterns, Addison-Wesley, 2002. • [SEI, 2000] L. Northrop.,SEI’s Software Product Line Tenets, IEEE Software, July/August, Vol. 19, No 04, 2002.