Software Product Line Engineering

Software Product Line Engineering • The lectures (and slides) of this part will mostly be based on the book: Pohl, K., Böckle, G., van der Linden, F. ...
6 downloads 0 Views 1MB Size
Software Product Line Engineering • The lectures (and slides) of this part will mostly be based on the book: Pohl, K., Böckle, G., van der Linden, F. “Software Product Line Engineering. Foundations, Principles and Techniques”, Springer-Verlag, 2005

© S Saukkonen 2013

1

1. Motivation • What is a product line? • Why product lines? • Principles of software product line engineering • When to start a Software Product Line (SPL)? • Key differences between SPLE and single systems development • Exercises © S Saukkonen 2013

2

What is a product line? • SW Product Lines are akin to “production lines” in manufacturing • “A set of products that together address a particular market segment or fulfill a particular mission” • The products are built from common assets in a prescribed way • Allow customization © S Saukkonen 2013

3

How many different snacks? Example of a product line

All breads different All cheese different All sausage different A snack may include one slice of loaf, one cheese and one sausage

© S Saukkonen 2013

4

Platform • “Platform is any base of technologies on which other technologies or processes are built”

• Slices of bread, available cheese and sausages constitute a platform on which the specific snacks will be built

© S Saukkonen 2013

5

Mass customisation • Mass customisation – “is the large-scale production of goods tailored to individual customers’ needs” – “Effectively postponing the task of differentiating a product for a specific customer until the latest possible point in the supply network”

• Assembling different snacks in large numbers from the slices of loaf, cheese and sausage is an example of mass customisation

Product Line Engineering = Platforms + Mass customisation -> - Large variety of products - Cost reduction © S Saukkonen 2013

6

Why product lines? • Trying to combine two paradigms of software development • Software product = One size fits all – Course book: Standard software – Millions of user use the same product / service – E.g. Microsoft Word, Google Docs

• Tailor-made / Bespoke software – Course book: Individual software – All individual concerns can be taken care of – E.g. Tatu used exclusively at the University of Oulu 2016

7

Why product lines? • More different products – Customer specific needs – Market differentiation e.g. high vs. low-end products – Differences between target devices – Legal or environmental regulations e.g. emission regulations

• Business benefits – Can develop and support more products – Big productivity gains – Improved product quality – Faster time-to-market

© S Saukkonen 2013

8

Principles of software product line engineering • Software product line engineering is a paradigm to develop software applications (software-intensive systems and software products) using platforms and mass customisation

• A software platform is a set of software subsystems and interfaces that form a common structure from which a set of derivative products can be efficiently developed and produced

© S Saukkonen 2013

9

Economics of software product lines (Pohl et al)

10

Shorter time to market (for multiple systems) (Pohl et al)

11

Principles of software product line engineering

The Software Product Line Engineering Framework

© S Saukkonen 2013

12

Key differences between SPLE and single systems development SPLE • Two development processes: domain and application • Separation of concerns. Build robust platform for all. Then build customer specific application

Single system • One development process – Maintenance of products (new features, error corrections)

– Commonalities between products – Variation in development artefacts

© S Saukkonen 2013

13

Software product lines are highly configurable. In ideal case application engineering is only configuration no coding

14

Linux kernel can be considered a software product line (or a core asset in SPL) • Android uses Linux kernel • To see your version: Settings (Asetukset) -> About (Tietoja) -> Kernel Version (Ytimen versio)

© S Saukkonen 2013

15

Want to know more see article • http://gsd.uwaterloo.ca/node/336 • Note: such extra material can be used for Peerwise questions but the question needs to give a link

© S Saukkonen 2013

16

Exercises • Fetch it from Noppa folder ‘Exercises’ • Remember both the exercise time and the due date of the final deliverable for this assignment.

© S Saukkonen 2013

17

Extras

© S Saukkonen 2013

18

When to start a software product line? • Start only when you have Product Line Potential – All essential criteria – Some supporting criteria – Few exclusion criteria

© S Saukkonen 2013

19

Essential criteria • Necessary conditions to benefit from SPLE – More than one product is developed or planned to be developed – Products have common functional requirements – Products have common non-functional (quality) requirements

© S Saukkonen 2013

20

Supporting criteria • Indicate you probably would benefit from SPLE – Assets (platforms) already reused between products – Market demand for multiple products – Recognition that something needs to change e.g. due to quality or complexity issues

© S Saukkonen 2013

21

Exclusion criteria • Indicate you probably wouldn’t benefit from SPLE – Software plays a small part in the overall product – Market instability – Unpredictable technological change

© S Saukkonen 2013

22

Suggest Documents