Collaborative Software Architecting Through Knowledge Sharing



In the field of software architecture, there has been a paradigm shift from describing the outcome of the architecting process to documenting architectural knowledge, such as design decisions and rationale. Moreover, in a global, distributed setting, software architecting is essentially a collaborative process in which sharing and reusing architectural knowledge is a crucial and indispensible part. Although the importance of architectural knowledge has been recognized for a considerable period of time, there is still no systematic process emphasizing the use of architectural knowledge in a collaborative context. In this chapter, we present a two-part solution to this problem: a collaborative architecting process based on architectural knowledge and an accompanying tool suite that demonstrates one way to support the process.


Software architecture Collaborative architecting Architecting process Architectural knowledge Knowledge sharing Collaborative software engineering 



This research has been partially sponsored by the Dutch Joint Academic and Commercial Quality Research & Development (Jacquard) program on Software Engineering Research via contract 638.001.406 GRIFFIN: a GRId For inFormatIoN about architectural knowledge. The authors would like to thank Astron for their support and access to the LOFAR software architecture documents.


  1. 1.
    Ali-Babar M, Gorton I (2007) A tool for managing software architecture knowledge. Proceedings of the 2nd Workshop on Sharing and Reusing architectural Knowledge – Architecture, rationale, and Design Intent (SHARK/ADI 2007), 20–26 May, pp. 11–17.Google Scholar
  2. 2.
    Ali-Babar M, Gorton I, Kitchenham B (2006) A framework for supporting architecture knowledge and rationale management. In: Dutoit AH et al. (Eds.) Rationale Management in Software Engineering. Berlin: Springer-Verlag, pp. 237–254.CrossRefGoogle Scholar
  3. 3.
    Avgeriou P, Lago P, Kruchten P (2008) Third International Workshop on Sharing and Reusing Architectural Knowledge (SHARK 2008). ICSE Companion, pp. 1065–1066.Google Scholar
  4. 4.
    Avgeriou P, Kruchten P, Lago P, Grisham P, Perry D (2007) Architectural knowledge and rationale: Issues, trends, challenges. ACM SIGSOFT Software Engineering Notes 32(4): 41–46.CrossRefGoogle Scholar
  5. 5.
    Bass L, Clements P, Kazman R (2003) Software Architecture in Practice, 2nd edn. Boston, MA: Addison-Wesley Professional.Google Scholar
  6. 6.
    Bhat JM, Gupta M, Murthy SN (2006) Overcoming requirements engineering challenges: Lessons from offshore outsourcing. IEEE Software 23(5): 38–44.CrossRefGoogle Scholar
  7. 7.
    Bischofberger WR, Kofler T, Mätzel KU, Schäffer B (2002) Computer supported cooperative software engineering with beyond-sniff. Proceedings of the 7th Conference on Software Engineering Environments (SEE 1995), 5–7 April, pp. 135–143.Google Scholar
  8. 8.
    Capilla R, Nava F, Carrillo C (2008) Effort estimation in capturing architectural knowledge. Proceedings of the 23rd IEEE/ACM International Conference on Automated Software Engineering (ASE 2008), 15–19 September, pp. 208–217.Google Scholar
  9. 9.
    Capilla R, Nava F, Pérez S, Dueñas J (2006) A web-based tool for managing architectural design decisions. ACM SIGSOFT Software Engineering Notes 31(5): 20–27.Google Scholar
  10. 10.
    de Boer RC, Farenhorst R, Lago P, van Vliet H, Clerc V, Jansen A (2007) Architectural knowledge: Getting to the core. Proceedings of the 3rd International Conference on the Quality of Software Architectures (QoSA 2007), 12–13 July, pp. 197–214.Google Scholar
  11. 11.
    Dingsøyr T, Conradi R (2002) A survey of case studies of the use of knowledge management in software engineering. International Journal of Software Engineering and Knowledge Engineering 12(4): 391–414.CrossRefGoogle Scholar
  12. 12.
    Farenhorst R (2006) Tailoring knowledge sharing to the architecting process. ACM SIGSOFT Software Engineering Notes 31(5): 15–19.Google Scholar
  13. 13.
    Farenhorst R, van Vliet H (2008) Experiences with a wiki to support architectural knowledge sharing. Proceedings of the 3rd Workshop on Wikis for Software Engineering (Wikis4SE 2008), 8–10 September.Google Scholar
  14. 14.
    Ferreira D, da Silva AR (2008) Wiki supported collaborative requirements engineering. Proceedings of the 3rd Workshop on Wikis for Software Engineering (Wikis4SE 2008), 8–10 September.Google Scholar
  15. 15.
    Guo J, Liao Y, Parviz B (2006) A collaboration-oriented software architecture modeling system – JarchiDesigner. Proceedings of the 13th Annual IEEE International Symposium and Workshop on Engineering of Computer Based Systems (ECBS 2006), 27–30 March, pp. 481–482.Google Scholar
  16. 16.
    Hansen MT, Nohria N, Tierney T (1999) What’s your strategy for managing knowledge? Havard Business Review 77(2): 106–116.Google Scholar
  17. 17.
    Hofmeister C, Kruchten P, Nord RL, Obbink H, Ran A, America P (2005) A general model of software architecture design derived from five industrial approaches. Journal of Systems and Software 80(1): 106–126.CrossRefGoogle Scholar
  18. 18.
    Jansen A, Avgeriou P, van der Ven JS (2009) Enriching software architecture documentation. Journal of Systems and Software 82(8): 1232–1248.Google Scholar
  19. 19.
    Jansen A, Bosch J (2005) Software architecture as a set of architectural design decisions. Proceedings of the 5th Working IEEE/IFIP Conference on Software Architecture (WICSA 2005), 6–10 November, pp. 109–120.Google Scholar
  20. 20.
    Jansen A, de Vries T, Avgeriou P, van Veelen M (2008) Sharing the architectural knowledge of quantitative analysis. Proceedings of the 4th International Conference on the Quality of Software Architectures (QoSA 2008), 14–17 October, pp. 220–234.Google Scholar
  21. 21.
    Jansen A, van der Ven J, Avgeriou P (2007) Tool support for architectural decisions. Proceedings of the 6th Working IEEE/IFIP Conference on Software Architecture (WICSA 2007), 6–9 January, pp. 44–53.Google Scholar
  22. 22.
    Kruchten P (2004) An ontology of architectural design decisions in software intensive systems. Proceedings of the 2nd Groningen Workshop on Software Variability Management (SVM 2004), 2–3 December, pp. 54–61.Google Scholar
  23. 23.
    Kruchten P, Lago P, van Vliet H (2006) Building up and reasoning about architectural knowledge. Proceedings of the 2nd International Conference on the Quality of Software Architectures (QoSA 2006), 27–29 June, pp. 43–58.Google Scholar
  24. 24.
    Lago P, Avgeriou P (2006) First workshop on sharing and reusing architectural knowledge. ACM SIGSOFT Software Engineering Notes 31(5): 32–36.CrossRefGoogle Scholar
  25. 25.
    Li J, Li T, Lin Z, Mathur AP, Kanoun K (2004) Computer supported co-operative work in software engineering. Proceedings of the 28th International Computer Software and Applications Conference (COMPSAC 2004), 27–30 September, pp. 328–328.Google Scholar
  26. 26.
    Liang P, Jansen A, Avgeriou P (2008) Selecting a high-quality central model for sharing architectural knowledge. Proceedings of the 8th International Conference on Quality Software (QSIC 2008), 12–13 August, pp. 357–365.Google Scholar
  27. 27.
    Liang P, Jansen A, Avgeriou P (2009) Sharing architecture knowledge through models: Quality and cost. The Knowledge Engineering Review 24(3): 225–244.Google Scholar
  28. 28.
    Liang P, Jansen A, Avgeriou P (2009) Knowledge architect: A tool suite for managing software architecture knowledge. Technical Report RUG-SEARCH-09-L01, University of Groningen,∼liangp/download/liang2009kat.pdf.
  29. 29.
    Maheshwari P, Teoh A (2005) Supporting ATAM with a collaborative web-based software architecture evaluation tool. Science of Computer Programming 57(1): 109–128.CrossRefMathSciNetGoogle Scholar
  30. 30.
    Nonaka I, Takeuchi H (1995) The Knowledge-Creating Company: How Japanese Companies Create the Dynamics of Innovation. New York: Oxford University Press.Google Scholar
  31. 31.
    Nuseibeh B (2001) Weaving together requirements and architectures. IEEE Computer 34(3): 115–117.Google Scholar
  32. 32.
    Rubart J, Dawabi P (2004) Shared data modeling with UML-G. International Journal of Computer Applications in Technology 19(3): 231–243.CrossRefGoogle Scholar
  33. 33.
    Rus I, Lindvall M (2002) Knowledge management in software engineering. IEEE Software 19(3): 26–38.CrossRefGoogle Scholar
  34. 34.
    Tang A, Ali-Babar M, Gorton I, Han J (2006) A survey of architecture design rationale. Journal of Systems and Software 79(12): 1792–1804.CrossRefGoogle Scholar
  35. 35.
    Tang A, Jin Y, Han J (2007) A rationale-based architecture model for design traceability and reasoning. Journal of Systems and Software 80(6): 918–934.CrossRefGoogle Scholar
  36. 36.
    Tyree J, Akerman A (2005) Architecture decisions: Demystifying architecture. IEEE Software 22(2): 19–27.CrossRefGoogle Scholar
  37. 37.
    van der Ven J, Jansen A, Avgeriou P, Hammer D (2006) Using architectural decisions. Short Papers of the 2nd International Conference on the Quality of Software Architectures (QoSA 2006), 27–29 July.Google Scholar
  38. 38.
    Whitehead J (2007) Collaboration in software engineering: A roadmap. Proceedings of Future of Software Engineering (FOSE 2007), 20–22 March, pp. 214–225.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  1. 1.Department of Mathematics and Computing ScienceUniversity of GroningenAG GroningenNetherlands

Personalised recommendations