Skip to main content
Log in

On building architecture-centric product line architecture

  • Original Article
  • Published:
Requirements Engineering Aims and scope Submit manuscript

Abstract

Software architects typically spend a great deal of time and effort exploring uncertainties, evaluating alternatives, and balancing the concerns of stakeholders. Selecting the best architecture to meet both the functional and non-functional requirements is a critical but difficult task, especially at the early stage of software development when there may be many uncertainties. For example, how will a technology match the operational or performance expectations in reality? This paper presents an approach to building architecture-centric product line. The main objective of the proposed approach is to support effective requirements validation and architectural prototyping for the application-level software. Architectural prototyping is practically essential to architecture design and evaluation. However, architectural prototyping practiced in the field mostly is not used to explore alternatives. Effective construction and evaluation of multiple architecture alternatives is one of the critically challenging tasks. The product line architecture advocated in this paper consists of multiple software architecture alternatives, from which the architect can select and rapidly generate a working application prototype. The paper presents a case study of developing a framework that is primarily built with robust architecture patterns in distributed and concurrent computing and includes variation mechanisms to support various applications even in different domains. The development process of the framework is an application of software product line engineering with an aim to effectively facilitate upfront requirements analysis for an application and rapid architectural prototyping to explore and evaluate architecture alternatives.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4

Similar content being viewed by others

References

  1. Alhussaini A, Balasubramaniam B, Chandrabose P, Kasinathan A (2004) Software restructuring and performance evaluation, project report, Department of Systems and Computer Engineering, Carleton University

  2. Bardram JE, Christensen HB, Hansen KM (2004) Architectural prototyping: an approach for grounding architectural design and learning. In: Proceedings of the 4th working IEEE/IFIP conference on software architecture, 15–24

  3. Bachmann F, Bass L, Klein M (2003) Preliminary design of ArchE: a software architecture design assistant. Technical report CMU/SEI-2003-TR-021, Software Engineering Institute, Sept 2003

  4. Batory D, Chen G, Robertson E, Wang T (2000) Design wizards and visual programming environments for GenVoca generators. IEEE Trans Softw Eng 26(5):441–452

    Article  Google Scholar 

  5. Batory D, Sarvela JD, Rauschmayer A (2004) Scaling step-wise refinement. IEEE Trans Softw Eng 30(6):355–371

    Article  Google Scholar 

  6. Batory D (2006) Multi-level models in model driven development, product-lines, and metaprogramming. IBM Syst J 45(3):1–13

    Article  Google Scholar 

  7. Bosch J (2000) Design and use of software architectures: adopting and evolving a product-line approach. Addison-Wesley, Reading, MA

    Google Scholar 

  8. Botterweck G, O’Brien L, Thiel S (2007) Model-driven derivation of product architectures. In: Proceedings of the 22nd IEEE/ACM international conference on automated software eng, 469–472

  9. Cao Y, Lung C-H, Majumdar S (2011) A peer-to-peer model for XML publish/subscribe services. In: Proceedings of the 9th conference on communication networks and services research conference (CNSR)

  10. Chen L, Babar MA (2011) A systematic review of evaluation of variability management approaches in software product lines. Inf Softw Technol 53:344–362

    Article  Google Scholar 

  11. Christensen HB, Hansen KM (2010) An empirical investigation of architectural prototyping. J Syst Softw 83(1):133–142

    Article  Google Scholar 

  12. Czarnecki K, Eisenecker UW (2000) Generative programming methods, tools, and applications. Addison-Wesley, Reading

    Google Scholar 

  13. Czarnecki K et al (2012) Cool features and tough decisions: a comparison of variability modeling approaches. In: Proceedings of the sixth international workshop on variability modeling of software-intensive systems, 173–182

  14. Diao Y, Rizvi S, Franklin MJ (2004) Towards an internet-scale XML dissemination service. In: Proceedings of the 30th VLDB conference, 612–623

  15. Duran-Limon HA, Castillo-Barrera FE, Lopez-Herrejon RE (2011) Towards an ontology-based approach for deriving product architectures. In: Proceedings of the 15th international software product line conference, vol 2, Article 19, p 5

  16. Fayad M, Schmidt D, Johnson R (eds) (1999) Building application framework. Wiley, New York

    Google Scholar 

  17. Franks G, Al-Omari T, Woodside M, Das O, Derisavi S (2009) Enhanced modeling and solution of layered queueing networks. IEEE Trans Softw Eng 35(2):148–161

    Article  Google Scholar 

  18. Hatton L, van Genuchten M (2012) Early design decisions. IEEE Softw 29(1):87–89

    Google Scholar 

  19. Heineman GT, Councill WT (2001) Component based software engineering: putting the pieces together. Addison-Wesley, Reading

    Google Scholar 

  20. Hillston J (1996) A compositional approach to performance modelling. Cambridge University Press, Cambridge

    Book  Google Scholar 

  21. Holl G, Grunbacher P, Rabiser R (2012) A systematic review and an expert survey on capabilities supporting multi product lines. Inf Softw Technol 54(8):828–852

    Article  Google Scholar 

  22. Kazman R, Klein M, Barbacci M, Longstaff T, Lipson H, Carriere J (1998) The architecture tradeoff analysis method. In: Proceedings of the 4th international conference on engineering of complex comp. sys., 68–78

  23. Khurum M, Gorschek T (2009) A systematic review of domain analysis solutions for product lines. J Syst Softw 82:1982–2003

    Article  Google Scholar 

  24. Krueger C (2002) Eliminating the adoption barrier. IEEE Softw 19(4):29–31

    Google Scholar 

  25. Lee J-C, Zhang X (2004) Performance investigation of a network system on different Linux kernels. Project report 2004, Department of Systems and Comp. Eng., Carleton University

  26. Lung C-H, Kalaichelvan K (2000) A quantitative approach to software architecture sensitivity analysis. Int J Softw Eng Knowl Eng 10(1):97–114

    Article  Google Scholar 

  27. Lung C-H, Zhao Q, Xu H, Mar H, Kanagaratnam P (2004) Experience of communications software evolution and performance improvement with patterns. In: Proceedings of IASTED software engineering, 321–326

  28. Lung C-H, Zhao Q (2004) Pattern-oriented reengineering of a network system. J Syst Cybern Inform 2(5):19–23

    Google Scholar 

  29. Lung C-H, Balasubramaniam B, Selvarajah K, Elankeswaran P, Gopalasundaram U (2010) Towards architecture-centric software generation. In: Proceedings of the 4th European conference on software architecture (ECSA), 38–52

  30. Martensson F, Grahn H, Mattsson M (2004) Prototype-based software architecture evaluation—component quality attribute evaluation. In: Proceedings of the 4th conference on software engineering research and practice in Sweden, 11–17

  31. Northrop LM, Clements PC (2005) A framework for software product line practice, Version 5.0. Software Engineering Institute, Carnegie Mellon University

  32. Ovaska E, Evesti A, Henttonen K, Palviainen M, Aho P (2010) Knowledge based quality-driven architecture design and evaluation. Inf Softw Technol 52:577–601

    Article  MATH  Google Scholar 

  33. Perovich D, Rossel PO, Bastarrica MC (2009) Feature model to product architectures: applying MDE to software product lines. In: Proceedings of WICSA/ECSA 2010 conference, 201–210

  34. Poulin JS (1997) Measuring software reuse: principles, practices, and economic models. Addison-Wesley, Reading, MA

    Google Scholar 

  35. Poulin JS (2001) Measurement and metrics for software components. In: Heineman GT, Councill W (eds) Component based software engineering. Addison-Wesley, Boston, MA, pp 435–452

    Google Scholar 

  36. Schmidt D, Stal M, Rohnert H, Buschmann F (2000) Pattern-oriented software architecture: patterns for concurrent and networked objects. Wiley, New York

    Google Scholar 

  37. Sinnema M, Deelstra S, Nijhuis J, Bosch J (2004) COVAMOF: A framework for modeling variability in software product families. In: Proceedings of the 3rd international software product line conference, 197–213

  38. Smith CU, Williams LG (2001) Performance solutions a practical guide to creating responsive and scalable software. Addison-Wesley, Reading

    Google Scholar 

  39. TAO Framework, http://www.dre.vanderbilt.edu/~schmidt/TAO.html

  40. Tawhid R, Petriu DC (2011) Automatic derivation of a product performance model from a software product line model. In: Proceedings of the 15th software product line conference

  41. Thaker S, Batory D, Kitchin D, Cook W (2009) Safe composition of product lines. In: Proceedings of the 6th international conference on generative programming and component engineering, 95–104

  42. Thiel S, Hein A (2002) Systematic integration of variability into product line architecture design. In: Proceedings of the 2nd international software product line conference, 67–102

  43. Trujillo S, Batory D, Diaz O (2007) Feature oriented model driven development: a case study for portlets. In: Proceedings of the 29th international conference on software eng, 44–53

  44. Trujillo S, Azanza M, Diaz O (2007) Generative metaprogramming. In: Proceedings of the 6th international conference on generative programming and component engineering, Oct 2007, 105–114

  45. Wang Q, Lung, C-H, Majumdar S (2005) Effective fair share resource management algorithms in support of quality-of-service. In: Proceedings of the international symposium on performance evaluation of computer and telecommunication systems (SPECTS)

  46. Wyatt DF, Wynn DC, Clarkson PJ (2009) Comparing representations for product architecture design through life-cycle evaluation methods. In: Proceedings of the 2nd NORDIC conference on product lifecycle management, pp 1–14

  47. Weiss DM, Li J, Slye H, Sun H (2008) Decision-model-based code generation for SPLE. In: Proceedings of the 12th international software product line conference, 129–137

  48. Williams LG, Smith CU (2002) PASA: an architectural approach to fixing software performance problems. In: Proceedings of CMG

  49. Woodside CM, Franks G, Petriu DC (2007) The future of software performance engineering. In: Proceedings of the 29th international conference on software engineering, pp 171–187

  50. Zhang X, Lung C-H, Franks G (2010) Towards architecture-based autonomic software performance engineering. In: Proceedings of the 4th conference on software architectures (CAL), March 2010, pp 155–167

  51. Zhang X, Lung C-H (2010) Improving software performance and reliability with an architecture-based self-adaptive framework. In: Proceedings of the 34th annual IEEE computer software and applications conference (COMPSAC), July 2010

  52. Zeng X, Lung C-H, Huang C, Srinivasan A (2004) A bandwidth-efficient scheduler for MPLS DiffServ networks. In: Proceedings of the 12th annual meeting of the IEEE/ACM international symposium on modeling, analysis, and simulation of computer and telecommunication systems (MASCOTS), pp 251–258

  53. Kruchten P (2003) The rational unified process: an introduction, 3rd edn. Addison-Wesley, Boston

    Google Scholar 

  54. Runeson P, Hoest M (2009) Guidelines for conducting and reporting case study research in software engineering. Empir Software Eng 14:131–164

    Article  Google Scholar 

  55. Schmidt D, Gokhale A, Natarajan B (2004) Frameworks: why leveraging application frameworks. ACM Queue Mag 2(5):66

    Article  Google Scholar 

Download references

Acknowledgments

We would like to thank Nortel Networks for providing us with a network routing software system, cgNet, for research and education. The project was partially funded by National Sciences and Engineering Research Council (NSERC) of Canada.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Chung-Horng Lung.

Appendix

Appendix

The appendix demonstrates the challenge of architecture evaluation for performance. Three systems were evaluated using different architecture alternatives: ST, HS/HA, and LFs. ST was the architecture of the original system, which has been restructured using HS/HA and LFs for performance improvement based on the recommendation of the patterns documentation. However, some results were inconsistent with the expectation. The performance issue is even more challenging at the front-end stage where only abstract representations are available. The experience was one of the reasons that motivated this research.

We present partial performance results of a network routing application running on three independent systems implemented in C++ [1, 27]. Those three systems were designed using ST, HS/HA, and LFs architecture patterns, respectively. Tables 4 and 5 present partial results for a new network protocols, open shorted path first (OSPF), and multi-protocol label switching (MPLS), with respect to the number of packets processed and discarded. The experiments were conducted using PCs with a 2-GHz CPU and 256 MB RAM running on Linux 2.4.18-27.7.x. The results were average of multiple runs, and the duration of each run was 20 min. Figures 5 and 6 illustrate the number of packets discarded for three different architecture alternatives for OSPF and MPLS, respectively.

Table 4 OSPF protocol performance results for three different architecture alternatives
Table 5 MPLS protocol performance results for three different architecture alternatives
Fig. 5
figure 5

Packets discarded for the OSPF protocol for three architecture alternatives

Fig. 6
figure 6

Packets discarded for the MPLS protocol for three architecture alternatives

The results for this particular application revealed that the performance based on the HS/HA architectural pattern is much better and scalable than LFs and ST. The outcome for different number of threads (from 2 to 15) for LFs is very close (<1 % difference). Further, as presented in Table 4, the performance of the re-engineered systems based on the LFs architectural pattern was even worse than that of the traditional ST design in many situations for the OSPF protocol. Table 5 also shows that ST and LFs have similar results. The outcome for this specific study did not conform to the general understanding that LFs pattern performs faster [36] due to its lower overhead and high parallelism. This outcome may have to do with a high degree of parallelism and high input rates in the specific application under consideration. The results presented here are not meant to draw a general conclusion of performance for three architecture patterns. Nevertheless, the study did illustrate the challenge of conducting software performance engineering at the early stage of the development process.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Lung, CH., Balasubramaniam, B., Selvarajah, K. et al. On building architecture-centric product line architecture. Requirements Eng 20, 301–321 (2015). https://doi.org/10.1007/s00766-014-0201-3

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00766-014-0201-3

Keywords

Navigation