1
Software Product Lines and Software Architecture Design
OVERVIEW
One can identify two important developments in software
architecture, i.e. software product lines and software
architecture design. This tutorial addresses these topics by
presenting an method for architectural design explicitly
focusing on assessment of and transformation for quality
attributes. In addition, the notion of software product lines
and the process, technology, business and organizational
issues of adopting the approach are presented. Both design
and product-lines are extensively illustrated by examples and
experiences from numerous industrial cases. The tutorial is
based on a recently published book [2] authored by the
tutorial presenter and published by Addison-Wesley and
ACM Press.
The aim of the tutorial is to present our experiences,
reflections and research results based on those experiences in
the domain of software architecture. Over the years, we have
worked on this topic with a variety of companies, including
Ericsson Software Technology, Axis Communications,
Securitas Larm, Ericsson Mobile, EC Gruppen, Ericsson
Software Architecture Research Center and Althin Medical.
Sharing our experiences and research results with the tutorial
participants will allow them to make informed decisions
about the future organization of software development in
their own company (for industrial participants) or to collect
additional empirical data and identify new research questions
(for academic participants).
CONTENTS
The tutorial will contain the following parts:
• introduction to software architecture
• definition of software architecture
• relation to quality attributes
• industrial versus academic perspective
• introducing software product lines
• software product line architecture design method
• functionality-based architecture design
• variability analysis
• architecture evaluation
• scenario-based evaluation
• simulation-based evaluation
• evaluation using mathematical modelling
• experience-based evaluation
• architecture transformation
• imposing architectural styles
• imposing architectural patterns
• applying design patterns
• distribute quality requirements
• convert quality requirements to functionality
• development of reusable components (both traditional
and object-oriented frameworks)
• derivation of products based on the reusable software
product line assets
• evolution of software product lines assets
• organizing for software product line: We have identified
four main organizational alternatives for companies
employing software product lines [3]. In this part we dis-
cuss these alternatives, their applicability, advantages
and disadvantages.
• software product-line case studies: examples and experi-
ences: We performed a case study involving four swedish
software development organizations investigating the
experiences of using product-line architectures. The
study resulted in a list of nine identified problems and
five major issues to be addressed by organizations using
PLA-based software development [1]. The examples are
even discussed in the previous parts.
• conclusion
REFERENCES
1. J. Bosch, ‘Product-Line Architectures in Industry: A Case
Study’, Proceedings of the 21st International Conference on
Software Engineering , pp. 544-554, May 1999.
2. J. Bosch, Design & Use of Software Architectures - Adopting
and Evolving a Product-Line Approach , Addison Wesley, ISBN
0-201-67494-7, 2000.
3. J. Bosch, ‘Software Product Lines: Organizational Alterna-
tives,’ Accepted for the 23rd International Conference on Soft-
ware Engineering (ICSE 2001), November 2000.
Jan Bosch
University of Groningen
Department of Computing Science
PO Box 800, NL9700 AV Groningen, The Netherlands
+31 50 363 3941
Jan.Bosch@cs.rug.nl http://www.ipd.hk-r.se/bosch
Proceedings of the 23rd International Conference on Software Engineering (ICSE’01)
0270-5257/01 $10.00 © 2001 IEEE
View publication stats View publication stats