Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.

Similar presentations


Presentation on theme: "Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI."— Presentation transcript:

1 Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI

2 Introduction Product Lines Auto Industry Need a way to produce a large variety of vehicles within a short time period. Answer: Create a standard family and modify this basis to meet customers needs. Can we apply these techniques to Software Engineering?

3 Introduction … Before defining the Software Product Line, a few concepts need to be addressed. Mass Customization – Large-scale production of goods tailored to individual customers’ needs Platform – Any base of technologies on which other technologies or processes are built.

4 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”.

5 Software Product Lines Two main parts of a software product line: Domain Platform “A software platform is a set of subsystems and interfaces that form a common structure from which a set of derivative products can be efficiently developed and produced” Derivative Applications Distinct products that were realized by using the platform.

6 Motivation … Motivations to use software product lines Reduction of development costs Enhanced quality Platform heavily tested A lot of reuse Reduction of time to market

7 Limitations … Limitations First few projects take much greater time Team issues Inexperience with the domain Poor platform design

8 Engineering the Product Line Broken into two distinct processes: domain engineering and application engineering Reusability is key Strong emphasis on documenting variability

9 Engineering the Product Line

10 Variability in Product Lines Managed variability Support activities concerned with defining variability Managing variable artifacts Support activities concerned with resolving variability Storing information to fulfill these tasks

11 Variability in the Product Line Types Variability in Time Variability in Space Where can Variability Come from? External Variability needed to meet customer satisfaction Internal Variability caused by introducing external variation

12 Variability in Product Lines

13 How to Document Variability What needs to be documented? What varies? Why does it vary? How does it vary? For whom is it documented?

14 Core Assets Basis for the software product line –Architeture –Reusable Components –Domain Models –Requirements –Schedules –Budgets –Test plans –Process descriptions –And more

15 Essential Product line activities

16

17

18 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

19 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.”

20 Software Engineering practice areas Architecture Definition Architecture Evaluation Component Development COTS Utilization Mining Existing Assets Requirements Engineering Software System Integration Testing Understanding Relevant Domains

21

22 Domain Engineering Definition - “Process of software product line engineering in which the commonality and the variability of the product line are defined and realized.” Goal of developing a stable, flexible, maintainable platform

23 Domain Specification Commonality analysis: – Find requirements that are common to all applications Variability analysis: – Find requirements that are variable Modeling Variability – Finding variation points and variants

24 Domain Implementation Generate common subsystems Create Interfaces that will be used by applications Purely abstract, no executables

25 Application Engineering Definition - “Process of software product line engineering in which the applications of the product line are built by reusing domain artifacts and exploiting the product line variability.” High reuse of domain artifacts Exploit commonality and variability of the software product line

26 Application Specification Most requirements are derived from domain requirements Additional requirements need to be analyzed and estimated to ensure that they can be met by the product line

27 Application Design & Implementation Design: Modify reference architecture to meet application requirements Implementation: Setting up Interfaces Both: Add additional components where necessary Find objects to add into platform

28 Testing the Product Line Application Testing Tests are usually derived from domain test artifacts Additional tests are necessary to ensure that variability is correct Test Coverage needs to take into account common and variable parts of the system

29 Testing the Product Line Guide Lines for dealing with Variability in the Product Line Structure the set of testing processes to test each artifact as early as possible Structure test artifacts to accommodate the product line variation Maintain test artifacts Structure testing software for traceability Automate regression testing

30 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

31 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

32 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.


Download ppt "Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI."

Similar presentations


Ads by Google