Presentation is loading. Please wait.

Presentation is loading. Please wait.

Designing a Product Line Architecture Jan Bosch Professor of Software Engineering University of Groningen, Netherlands

Similar presentations


Presentation on theme: "Designing a Product Line Architecture Jan Bosch Professor of Software Engineering University of Groningen, Netherlands"— Presentation transcript:

1 Designing a Product Line Architecture Jan Bosch Professor of Software Engineering University of Groningen, Netherlands Jan.Bosch@cs.rug.nl http://www.cs.rug.nl/~bosch Copyright © 2001 Jan Bosch

2 Designing a product line architecture2 Overview  business case analysis  scoping  product and feature planning  product line architecture design  component requirement specification  verification

3 Designing a product line architecture3 Business Case Analysis  why adopt SPL?  decrease cost  software development  software maintenance  time to market  of new products  of new features in existing products  staff  unable to recruit new staff  need to maintain existing staff

4 Designing a product line architecture4 Business Case Analysis  analysis of current situation  collect key figures  prediction of future cost and benefit current approach  use key figures to make a prediction  investment analysis of adopting SPL  incorporate technical development cost, but also the cost associated with changes to processes, organization and business

5 Designing a product line architecture5 Business Case Analysis  prediction of future cost and benefit using SPL approach  divide cost over domain engineering and application engineering  conclusion  theory: biggest $ figure wins  practice: balance short term costs of SPL approach to long term costs of traditional approach

6 Designing a product line architecture6  Feature  captures logical unit of behaviour (from user perspective)  used to group requirements  consists of functional and quality requirements  Feature relations  depends-on  mutually exclusive  conflicting Scoping

7 Designing a product line architecture7 Scoping  process:  candidate product selection  candidate feature selection  feature graph specification  product line scoping  specification of product requirements

8 Designing a product line architecture8 Scoping - candidate products  existing product set  all existing products  SPL initiation takes time - take delay into account  new product line  strategic plan with greenfield approach  competitor products read [Dikel et al 97]

9 Designing a product line architecture9 Scoping - candidate features  stakeholders  features from stakeholder perspective  existing product set  harmonise features  new product line  consider added value of feature to product line  define product / feature matrix  initial pruning

10 Designing a product line architecture10 Scoping - features graph  present identified features in graph  relation types: depends-on, mutually exclusive, conflicting  identify missing features  e.g. indirect usage  draw product ‘areas’

11 Designing a product line architecture11 Scoping - conclusion  decide scope of product line  relate to SPL goal, e.g. cost, TTM, staff  minimalist approach  only features covered by all or most products  develop products as extensions to SPL  maximalist approach  all or most features used in two or more systems  develop products by pruning SPL

12 Designing a product line architecture12 Scoping - product requirements  boundary between SPL and product defined  specify product specific requirements  additional features  pruned features  conflicting features  managing SPL and product quality requirements

13 Designing a product line architecture13 Product and Feature Planning  scoping only considers status quo  incorporating new features  expected versus unexpected  define technical roadmap for SPL  extend feature graph with planned features

14 Designing a product line architecture14 Product line architecture design  (see Design of Software Architectures tutorial) requirement specification functionality-based architectural design application architecture OK estimate QA values QA optimizing solutions architecture transformation not OK FR QR

15 Designing a product line architecture15 Functionality based design  defining system context  multiple contexts should be supported (products & variants)  identifying archetypes  SPL and product archetypes (relations?)  describing product instantiations

16 Designing a product line architecture16 Architecture assessment  not qualities of PLA, but of product architectures  how to make sure?  consider cost (assessment expensive!)  product architecture assessment  reference product  extremes (e.g. low end versus high end products)  most important product (e.g. largest volume)  incorporate assessment of future features

17 Designing a product line architecture17 Architecture transformation three main aspects  variants  examples: abstract factory, strategy, mediator  optionality  examples: blackboard, proxy, strategy  conflicts  examples: adapter, proxy, mediator

18 Designing a product line architecture18 Component requirements specify component requirements  interfaces: provided, required and configuration  functionality: expected behaviour at interfaces  quality attributes: needed to guarantee product behaviour  variability: aspects of functional and quality requirements that differ between products

19 Designing a product line architecture19 Verification  SPL represents large and long-term investment  design decisions incorporated in PLA hard to change  stakeholder based evaluation suitable  alternatively, employ architecture assessment team

20 Designing a product line architecture20 Conclusion six main steps:  business case analysis  scoping  product and feature planning  product line architecture design  component requirement specification  verification


Download ppt "Designing a Product Line Architecture Jan Bosch Professor of Software Engineering University of Groningen, Netherlands"

Similar presentations


Ads by Google