Empirical Software Engineering

, Volume 21, Issue 2, pp 411–448 | Cite as

Assessing software product line potential: an exploratory industrial case study

  • Heiko Koziolek
  • Thomas Goldschmidt
  • Thijmen de Gooijer
  • Dominik Domis
  • Stephan Sehestedt
  • Thomas Gamer
  • Markus Aleksy
Experience Report

Abstract

Corporate organizations sometimes offer similar software products in certain domains due to former company mergers or due to the complexity of the organization. The functional overlap of such products is an opportunity for future systematic reuse to reduce software development and maintenance costs. Therefore, we have tailored existing domain analysis methods to our organization to identify commonalities and variabilities among such products and to assess the potential for software product line (SPL) approaches. As an exploratory case study, we report on our experiences and lessons learned from conducting the domain analysis in four application cases with large-scale software products. We learned that the outcome of a domain analysis was often a smaller integration scenario instead of an SPL and that business case calculations were less relevant for the stakeholders and managers from the business units during this phase. We also learned that architecture reconstruction using a simple block diagram notation aids domain analysis and that large parts of our approach were reusable across application cases.

Keywords

Software product lines Domain analysis Business case 

References

  1. Ahnassay A, Bagheri E, Gasevic D (2013) Empirical evaluation in software product line engineering. Tech. rep., Laboratory for Systems, Software and Semantics. Ryerson University . http://ls3.rnet.ryerson.ca/wp-content/uploads/2013/08/TR-LS3-130084R4T.pdf
  2. America P, Thiel S, Ferber S, Mergel M (2001) Introduction to domain analysis, http://www.ibrarian.net/navon/paper/Introduction_to_Domain_Analysis_Pierre_America__e.pdf?paperid=15855122
  3. Bayer J, Flege O, Knauber P, Laqua R, Muthig D, Schmid K, Widen T, DeBaud JM (1999) Pulse: A methodology to develop software product lines. In: Proceedings of the 1999 Symposium on Software Reusability, SSR ’99, pp 122–131. ACM, New YorkGoogle Scholar
  4. Birk A, Heller G, John I, Schmid K, von der Massen T, Muller K (2003) Product line engineering, the state of the practice. IEEE Softw 20(6):52–60. doi: 10.1109/MS.2003.1241367 CrossRefGoogle Scholar
  5. Boeckle G, Clements P, McGregor J, Muthig D, Schmid K (2004) Calculating roi for software product lines, vol 21, pp 23–31Google Scholar
  6. Boehm BW, Clark H, Brown RC, Madachy R, Steece B (2000) Software Cost Estimation with Cocomo II with Cdrom, 1st edn. Prentice Hall PTR, Upper Saddle RiverGoogle Scholar
  7. Bosch J (2001) Software product lines: Organizational alternatives. In: Proceedings of the 23rd International Conference on Software Engineering, ICSE ’01, pp 91–100. IEEE Computer Society, Washington . http://dl.acm.org/citation.cfm?id=381473.381482
  8. Breivold HP, Larsson S, Land R (2008) Migrating industrial systems towards software product lines: Experiences and observations through case studies. In: Proceedings of the 2008 34th Euromicro Conference Software Engineering and Advanced Applications, SEAA ’08, pp 232–239. IEEE Computer Society, WashingtonGoogle Scholar
  9. Buhr RJA (1998) Use case maps as architectural entities for complex systems. IEEE Trans Softw Eng 24(12):1131–1155. doi: 10.1109/32.738343 CrossRefGoogle Scholar
  10. Capilla R (2005) Using map for recovering the architecture of web systems of a spanish insurance company. International Workshop on Software Technology and Engineering Practice 0:92–101. doi: 10.1109/STEP.2005.33 Google Scholar
  11. Carnegie Mellon University - Software Engineering Institute (2013) Product Line Hall of Fame. http://splc.net/fame.html. Last visited 2013-01-21
  12. Carnegie Mellon University - Software Engineering Institute (2013) Software Product Lines. http://www.sei.cmu.edu/productlines/. Last visited 2013-01-21
  13. Chrissis MB, Konrad M, Shrum S (2003) CMMI: Guidelines for Process Integration and Product Improvement. Addison-WesleyGoogle Scholar
  14. Clements P, Northrop L (2001) Software Product Lines: Practices and Patterns. Addison-WesleyGoogle Scholar
  15. Davis T (1993) The reuse capability model: a basis for improving an organization’s reuse capability. In: Software Reusability, 1993. Proceedings Advances in Software Reuse, Selected Papers from the Second International Workshop on, pp 126 –133. doi:10.1109/ASR.1993.291710
  16. Domis D, Sehestedt S, Gamer T, Aleksy M, Koziolek H (2014) Customizing domain analysis for assessing the reuse potential of industrial software systems. In: Proceedings of 18th Internal Software Product Line Conference (SPLC2014), Industry Track. ACMGoogle Scholar
  17. Ducasse S, Pollet D (2009) Software architecture reconstruction: A process-oriented taxonomy. IEEE Trans Softw Eng 35(4):573–591CrossRefGoogle Scholar
  18. Eisenbarth T, Simon D (2001) Guiding feature asset mining for software product line development In: Proceedings of the International Workshop on Product Line Engineering: The Early Steps: Planning, Modeling, and Managing, Erfurt, Germany, Fraunhofer IESE, pp 1–4Google Scholar
  19. Eisenhardt KM (1989) Building theories from case study research. Acad Manag Rev 14(4):532–550Google Scholar
  20. Fairbanks G (2010) Just Enough Software Architecture: A Risk-Driven Approach, 1st edn. Marshall & BrainerdGoogle Scholar
  21. Frenzel P, Koschke R, Breu APJ, Angstmann K (2007) Extending the reflexion method for consolidating software variants into product lines. In: Proceedings of the 14th Working Conference on Reverse Engineering, WCRE ’07, pp 160–169. IEEE Computer Society, WashingtonCrossRefGoogle Scholar
  22. Ganesan D, Knodel J (2005) Identifying domain-specific reusable components from existing oo systems to support product line migration. In: Proceedings First International Workshop on Reengineering towards Product Lines, R2PL 2005, Pittsburgh, Pennsylvania, USA, pp 16–20Google Scholar
  23. Groene B (2012) Introducing architecture modeling at a big software product company. In: Proceedings Praxisforum Modellierung 2012 http://qfam.gi.de/fileadmin/user_upload/PraxiforumModellierung2012/Introducing-architecture-modeling-at-a-big-software-product-company_Groene.pdf
  24. Guo GY, Atlee JM, Kazman R (1999) A software architecture reconstruction method. In:Proceedings of the TC2 First Working IFIP Conference on Software Architecture (WICSA1), WICSA1, pp 15–34. Kluwer, B.V., Deventer. http://dl.acm.org/citation.cfm?id=646545.696370
  25. Harhurin A, Hartmann J (2008) Service-oriented commonality analysis across existing systems. In: Software Product Line Conference, 2008. SPLC ’08. 12th International, pp 255–264 doi: 10.1109/SPLC.2008.19
  26. Hariri N, Castro-Herrera C, Mirakhorli M, Cleland-Huang J, Mobasher B (2013) Supporting domain analysis through mining and recommending features from online product listings. IEEE Trans Softw Eng 39(12):1736–1752. doi: 10.1109/TSE.2013.39 CrossRefGoogle Scholar
  27. Holmes R, Walker RJ (2013) Systematizing pragmatic software reuse. ACM Trans Softw Eng Methodol 21(4):20:1–20:44. doi: 10.1145/2377656.2377657 Google Scholar
  28. John I, Knodel J, Lehner T, Muthig D (2006) A practical guide to product line scoping. In: Software Product Line Conference, 2006 10th International, pp 3–12 doi: 10.1109/SPLINE.2006.1691572
  29. Jones LG, Northrop LM (2010) Clearing the way for software product line success. IEEE Softw 27(3):22–28. doi: 10.1109/MS.2010.71 CrossRefGoogle Scholar
  30. Kazman R, Carrière SJ (1999) Playing detective: Reconstructing software architecture from available evidence. Autom Softw Eng 6(2):107–138CrossRefGoogle Scholar
  31. Khurum M, Gorschek T (2009) A systematic review of domain analysis solutions for product lines. J Syst Softw 82(12):1982–2003. doi: 10.1016/j.jss.2009.06.048 CrossRefGoogle Scholar
  32. Knauber P, Muthig D, Schmid K, Widen T (2000) Applying product line concepts in small and medium-sized companies. IEEE Softw 17(5):88–95. doi: 10.1109/52.877873 CrossRefGoogle Scholar
  33. Knoepfel A, Groene B, Tabeling P (2006) Fundamental Modeling Concepts: Effective Communication of IT Systems. WileyGoogle Scholar
  34. Koziolek H, Goldschmidt T, de Gooijer T, Domis D, Sehestedt S (2013) Experiences from identifying software reuse opportunities by domain analysis. In: Proceedings of the 17th Internal Software Product Line Conference (SPLC2013), Industry Track. ACMGoogle Scholar
  35. Koziolek H, Weiss R, Doppelhamer J (2009) Evolving Industrial Software Architectures into a Software Product Line: A Case Study. In: Proceedings of the 5th Int. Conf. on the Quality of Software Architecture (QoSA’09), LNCS, vol 5581, pp 177–193. SpringerGoogle Scholar
  36. Krueger CW (2002) Easing the transition to software mass customization. In: Revised Papers from the 4th International Workshop on Software Product-Family Engineering, PFE ’01, pp 282–293. Springer-Verlag, London. http://dl.acm.org/citation.cfm?id=648114.748909 CrossRefGoogle Scholar
  37. van der Linden FJ, Schmid K, Rommes E (2007) Software Product Lines in Action: The Best Industrial Practice in Product Line Engineering. SpringerGoogle Scholar
  38. Neighbors JM (1984) The draco approach to constructing software from reusable components. IEEE Trans Softw Eng 5:564–574CrossRefGoogle Scholar
  39. Northrop L, Jones L, Donohoe P (2005) Examining product line readiness: Experiences with the sei product line technical probe. https://resources.sei.cmu.edu/asset_files/Presentation/2005_017_001_23904.pdf
  40. Pinzger M, Gall H, Girard JF, Knodel J, Riva C, Pasman W, Broerse C, Wijnstra J (2004) Architecture recovery for product families. In: van der Linden F (ed) Software Product-Family Engineering, Lecture Notes in Computer Science, vol 3014, pp 332–351. Springer, BerlinGoogle Scholar
  41. Pohl K, Boeckle G, van der Linden FJ (2005) Software Product Line Engineering: Foundations, Principles and Techniques. SpringerGoogle Scholar
  42. Poulin JS (1996) Measuring Software Reuse: Principles, Practices, and Economic Models, 1st edn. Addison-Wesley ProfessionalGoogle Scholar
  43. Prieto-Diaz R, Arango G (1991) Domain Analysis and Software Systems Modeling. IEEE Computer Society PressGoogle Scholar
  44. Rubin J, Chechik M (2013) A survey of feature location techniques. In: Domain Engineering, pp 29–58. SpringerGoogle Scholar
  45. Runeson P, Höst M (2009) Guidelines for conducting and reporting case study research in software engineering. Empirical Softw Engg 14(2):131–164. doi: 10.1007/s10664-008-9102-8 CrossRefGoogle Scholar
  46. Schmid K (2002) A comprehensive product line scoping approach and its validation. In: Proceedings of the 24th International Conference on Software Engineering, ICSE ’02, pp 593–603. ACM, New YorkCrossRefGoogle Scholar
  47. Schmid K, John I, Kolb R, Meier G (2005) Introducing the pulse approach to an embedded system population at testo ag. In: Proceedings of the 27th International Conference on Software Engineering, ICSE ’05, pp 544–552. ACM, New YorkGoogle Scholar
  48. Simos M, Creps D, Klingler C, Levine L, Allemang D (1996) Organization domain modeling (odm) guidebook, version 2.0. Tech. Rep. STARS-VC-A025/001/00, Lockheed Martin Tactical Defence Systems, United States of AmericaGoogle Scholar
  49. Stoermer C, O’Brien L (2001) Map - mining architectures for product line evaluations. In: Proceedings of the Working IEEE/IFIP Conference on Software Architecture, 2001, pp 35–44. doi: 10.1109/WICSA.2001.948405
  50. Van Deursen A, Klint P, Visser J (2000) Domain-specific languages: An annotated bibliography. SIGPLAN Not 35(6):26–36CrossRefGoogle Scholar
  51. Yin RK (2013) Case Study Research: Design and Methods, 5th edn. Sage Publications LtdGoogle Scholar

Copyright information

© Springer Science+Business Media New York 2015

Authors and Affiliations

  • Heiko Koziolek
    • 1
  • Thomas Goldschmidt
    • 1
  • Thijmen de Gooijer
    • 1
  • Dominik Domis
    • 1
  • Stephan Sehestedt
    • 1
  • Thomas Gamer
    • 1
  • Markus Aleksy
    • 1
  1. 1.ABB Corporate ResearchLadenburgGermany

Personalised recommendations