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 set of core requirements necessary for the developing a product with some known or allowable variations.
What is SPL? • It is the process of developing related systems from common assets or common assets . • Core assets : • The core assets include the architecture, reusable components, documentations, process descriptions etc .
Activities in the SPL: • Core Asset Development, • Product Development, • Management.
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.
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.
Product Development: • In the product development, the inputs include the requirements, product line scope and the core assets . • The output is the product itself.
Management: • The management includes two levels. They are: • The organizational level and • The technical level.
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.
Software engineering practice areas include the following: • Architecture definition, • Requirements engineering, • Testing, • Understanding relevant domains etc.
Technical management practice areas includes the following: • Process definition, • Technical risk management, • Tool support etc.
The Organizational management practice areas include: • Funding, • Market analysis, • Organizational planning, • Training etc.
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 .
Advantages of Software Product Line: • Achieve productivity gains, • Improve time to market, • Exploit economies of scope through reuse of common assets , • Enhance the predictability of software development processes, • Improve software quality.
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 . • The software mass customization is one of the development methodologies which focus on domain engineering of reusable assets .
References:  L. M. Northrop,” SEI’s Software Product Line Tenets”, IEEE Software, Vol. 19, I. 4, P. 32-40, 2002.  P. Donohoe, "Introduction to Software Product Lines", 12th International Software Product Line Conference, P.370 - 370, 2008.  C. W. K. Krueger, “New methods in Software Product Line Development”, 10th International Software Product Line conference, 2006.  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.  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.
References contd..  M. Kim, S. Park, “Goal and Scenario Driven Product Line Development”, IEEE Computer Society, 2004.