software product lines krishna anusha, eturi. introduction: a software product line is a set of...

23
Software Product Lines Krishna Anusha, Eturi

Upload: amber-watkins

Post on 23-Dec-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common

Software Product Lines

Krishna Anusha, Eturi

Page 2: Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common

Introduction:

• A software product line is a set of software systems developed by a company that share a common set of core requirements necessary for the developing a product with some known or allowable variations.

Page 3: Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common

What is SPL?

• It is the process of developing related systems from common assets or common assets [2].

• Core assets :• The core assets include the architecture, reusable

components, documentations, process descriptions etc [1].

Page 4: Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common

Activities in the SPL:

• Core Asset Development,• Product Development,• Management.

Page 5: Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common

Fig.1 Three activities of SPL

Page 6: Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common

Core Asset Development:

• It includes the development of production capability by taking inputs and resulting outputs accordingly.

• The inputs and outputs are affected by each other as this process is iterative.

Page 7: Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common

Fig 2. Core Asset Development

Page 8: Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common

The inputs of the core assets development are:

• Product constraints,• Styles, patterns, frameworks,• Production constraints,• Production strategy,• Inventory of preexisting assets.

The outputs of core assets development are:

• Core assets,• Product line scope,• Production plan.

Page 9: Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common

Product Development:

• In the product development, the inputs include the requirements, product line scope and the core assets [5].

• The output is the product itself.

Page 10: Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common

Fig 3. Production Development

Page 11: Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common

Management:

The management includes two levels. They are:

The organizational level andThe technical level.

Page 12: Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common

Fig 4. Management

Page 13: Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common

Software Product Line practice areas:

A practice area is the body of work or set of activities.

Some of the practice areas defined for the product line concepts such as:

• Software engineering practices area,• Organizational or Technical management.

Page 14: Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common

Software engineering practice areas include the following:

• Architecture definition, • Requirements engineering,• Testing,• Understanding relevant domains etc.

Page 15: Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common

Technical management practice areas includes the following:

• Process definition,• Technical risk management,• Tool support etc.

Page 16: Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common

The Organizational management practice areas include:

• Funding,• Market analysis,• Organizational planning,• Training etc.

Page 17: Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common

What are Product Line patterns:

The patterns include ways to define similar contexts and problem/solution pairs.

The practice areas are put into practices using the product line patterns [1].

Page 18: Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common

Advantages of Software Product Line:

• Achieve productivity gains,• Improve time to market,• Exploit economies of scope through reuse of

common assets [4],• Enhance the predictability of software

development processes,• Improve software quality.

Page 19: Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common

Conclusion: Future directions of Software Product Line

are:• The future directions of the Software Product Line

is heading towards development of more strategic methods.

• Minimizing the short comes of the first generation methodologies, which used manual application engineering. This way, the dynamic software product lines are being developed [6].

The software mass customization is one of the development methodologies which focus on domain engineering of reusable assets [3].

Page 20: Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common

References:

[1] L. M. Northrop,” SEI’s Software Product Line Tenets”, IEEE Software, Vol. 19, I. 4, P. 32-40, 2002.

[2] P. Donohoe, "Introduction to Software Product Lines", 12th International Software Product Line Conference, P.370 - 370, 2008.

[3] C. W. K. Krueger, “New methods in Software Product Line Development”, 10th International Software Product Line conference, 2006.

[4] C.W.Krueger,"Software product line reuse in practice",3rd IEEE Symposium on Application-Specific Systems and Software Engineering Technology, Proceedings, P.117 - 118, 2000.

[5] J. Zhang, X. Cai, G. Liu, "The Role of Aspects in Software Product Lines", International Conference on Computer Science and Information Technology, P. 588-592, 2008.

Page 21: Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common

References contd..

[6] M. Kim, S. Park, “Goal and Scenario Driven Product Line

Development”, IEEE Computer Society, 2004.

Page 22: Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common

Questions?

Page 23: Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common

Thank you