Abstract
The software product-line approach (for software product families) is one of the success stories of software reuse. When applied, it can result in cost savings and increases in productivity. In addition, in safety-critical systems the approach has the potential for reuse of analysis and testing results, which can lead to a safer system. Nevertheless, there are times when it seems like a product family approach should work when, in fact, there are difficulties in properly defining the boundaries of the product family. In this paper, we draw on our experiences in applying the software product-line approach to a family of mobile robots, a family of flight guidance systems, and a family of cardiac pacemakers, as well as case studies done by others to (1) illustrate how domain structure can currently limit applicability of product-line approaches to certain domains and (2) demonstrate our progress towards a solution using a set-theoretic approach to reason about domains of what we call n-dimensional and hierarchical product families.
Similar content being viewed by others
Notes
We would like to thank Steven P. Miller of Rockwell-Collins Inc. for this example.
References
Parnas DL (1976) On the design and development of program families. IEEE Trans Softw Eng 2(1):1–9
Campbell G, O'Connor J, Mansour C, Turner-Harris J (1994) Reuse in command and control systems. IEEE Softw 11(5): 70–79
Campbell GH Jr, Faulk SR, Weiss DM (1990) Introduction to synthesis. Technical Report INTRO-SYNTHESIS-PROCESS-90019-N, Software Productivity Consortium, Herdon, VA
Ardis MA, Weiss DM (1997) Defining families: the commonality analysis. In: 19th international conference on software engineering (ICSE'97), Boston, MA, pp 649–650
Weiss DM, Lai CTR (1999) Software product line engineering: a family-based software development process. Addison-Wesley, Reading, MA
Bentley JL (1986) Programming pearls: little languages. Commun ACM 29(8):711–721
Neighbors J (1984) The draco approach to constructing software from reusable components. IEEE Trans Softw Eng 10(5):564–574
Lam W (1997) Creating reusable architectures: initial experience report. ACM SIGSOFT Softw Eng Notes 22(4):39–43
Lam W, McDermid JA, Vickers AJ (1997) Ten steps towards systematics requirements reuse. Requirements Eng 2(2):120–113
Batory D, O'Mally S (1992) The design and implementation of hierarchical software systems with reusable components. ACM Trans Softw Eng Methodol 1(4):355–398
Gomaa H. Reusable software requirements and architectures for families of systems. J Syst Softw 25(3):189–202
Prieto-Diaz R (1990) Domain analysis: an introduction. ACM SIGSOFT Softw Eng Notes 15(2):47–54
Weiss DM (1997) Defining families: the commonality analysis. Technical report, Lucent Technologies Bell Laboratories, Naperville, IL
Lutz RR (2000) Extending the product family approach to support safe reuse. J Syst Softw 53:207–21
Kuusela J, Savolainen J (2000) Requirements engineering for product families. In: Proceedings of the 22nd international conference on software engineering (ICSE'00), Limerick, Ireland, June 2000, pp 60–68
Brownsword L, Clements P (1996) A case study in successful product line development. Technical report CMU/SEI-96-TR-016. Software Engineering Institute, Carnegie Mellon University, October 1996
Lane TG (1990) Studying software architecture through design spaces and rules. Technical report CMU/SEI-90-TR-18, Software Engineering Institute, Carnegie Mellon University, November 1990
Baum L, Becker M, Geyer L, Molter G (2000) Mapping requirements to reusable components using design spaces. In: 4th international conference on requirements engineering (ICRE'00), Schaumburg, IL, June 2000
Baum L, Geyer L, Molter G, Rothkugel S, Sturm P (1998) Architecture-centric software development based on extended design spaces. In: Development and evolution of software architectures for product families: 2nd international workshop on development and evolution of software architectures for product families (ARES), February 1998. Lecture notes in computer science, vol 1429. Springer, Berlin Heidelberg New York, pp 197–204
Faulk SR (2001) Product-line requirements specification (PRS): an approach and case study. In: Proceedings of the Fifth IEEE International Symposium on Requirements Engineering (RE'01), Toronto, Canada, August 2001, pp 48–55
Miller SP (1998) Specifying the mode logic of a flight guidance system in CoRE and SCR. In: Proceedings of the 2nd workshop on formal methods in software practice, Clearwater Beach, FL, pp 44–53
Erickson DM (2000) Structuring formal requirements specifications for reuse: a mobile robotics case study. Masters Project, University of Minnesota, April 2000
Brooks RA (1986) A robust layered control system for a mobile robot. IEEE J Robotics Autom RA-2(1):14–23
ActivMedia. Makers of the Pioneer robot. http://www.activrobots.com/
Thompson JM, Heimdahl MPE. Extending the product family approach to support n-dimensional and hierarchical product lines. In 5th IEEE international symposium on requirements engineering, Toronto, Canada, August 2001
Acknowledgements
The authors wish to thank Steven P. Miller at the Rockwell-Collins Advanced Technology Center for his thoughtful comments and encouragement with regard to this work as well as his insights into how the structuring techniques presented here might be applied to the systems manufactured by Rockwell-Collins, Inc. This work as been partially supported by NSF grants CCR-9624324 and CCR-9615088, by NASA grants NAG-1-2242 and NCC-01-001, and by the University of Minnesota Doctoral Dissertation Fellowship.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Thompson, J.M., Heimdahl, M.P.E. Structuring product family requirements for n-dimensional and hierarchical product lines. Requirements Eng 8, 42–54 (2003). https://doi.org/10.1007/s00766-003-0166-0
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00766-003-0166-0