A Web-Based System for Managing Software Architectural Knowledge

  • Muhammad Ali BabarEmail author
Part of the Advanced Information and Knowledge Processing book series (AI&KP)


The Management of architectural knowledge is vital for improving an organization’s architectural capabilities. Despite the recognition of the importance of capturing and reusing architectural knowledge, there is no suitable support mechanism. We have developed a conceptual framework for capturing and using architectural knowledge to support the software architecture process. A knowledge management system is envisioned to support the proposed framework. Such a system should facilitate architectural knowledge sharing among stakeholders, who may be collocated or geographically distributed. This chapter presents and discusses the design, implementation, and deployment details of a web-based architectural knowledge management system, called PAKME, to support the software architecture process. This chapter also discusses different usages of PAKME in the context of the software architecture process. The chapter concludes with a brief description of the use of PAKME in an industrial setting.


Knowledge Management Design Decision Software Architecture Design Option Knowledge Management System 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.



The author acknowledges the contributions from the AMS’s team, in particular Andrew Northway, on the reported study. This work is based on the research carried out when the author was working with the National ICT Australia. Several people contributed to the theoretical, implementation, and evaluation aspects of PAKME, in particular, Ian Gorton, Andrew Northway, Lingzhi Xu, Janice Wing Yin Leung and Louis Wong. A part of the manuscript was prepared while the author was working with Lero, University of Limerick, Ireland.


  1. 1.
    Ali-Babar, M.: Scenarios, quality attributes, and patterns: Capturing and using their synergistic relationships for product line architectures. In: International Workshop on Adopting Product Line Software Engineering. Busan, South Korea (2004)Google Scholar
  2. 2.
    Ali-Babar, M., Gorton, I.: A tool for managing software architecture knowledge. In: Proceedings of the 2nd Workshop on SHAring and Reusing architectural knowledge – Architecture, rationale, and Design Intent (SHARK/ADI 2007), Collocated with ICSE 2007. IEEE Computer Society, Minneapolis (2007)Google Scholar
  3. 3.
    Ali-Babar, M., Gorton, I., Jeffery, R.: Capturing and using software architecture knowledge for architecture-based software development. In: 5th International Conference on Quality Software. IEEE Computer Press, Melbourne, Australia (2005)Google Scholar
  4. 4.
    Ali-Babar, M., Gorton, I., Jeffery, R.: Toward a framework for capturing and using architecture design knowledge. Tech. Rep. TR-0513, University of New South Wales, Australia (2005)Google Scholar
  5. 5.
    Ali-Babar, M., Gorton, I., Kitchenham, B.: A framework for supporting architecture knowledge and rationale management. In: A.H. Dutoit, R. McCall, I. Mistrik, B. Paech (eds.) Rationale Management in Software Engineering, pp. 237–254. Springer (2006)Google Scholar
  6. 6.
    Ali-Babar, M., Kitchenham, B., Maheshwari, P., Jeffery, R.: Mining patterns for improving architecting activities – a research program and preliminary assessment. In: Proceedings of the 9th International conference on Empirical Assessment in Software Engineering. Keele, UK (2005)Google Scholar
  7. 7.
    Ali-Babar, M., Tang, A., Gorton, I., Han, J.: Industrial perspective on the usefulness of design rationale for software maintenance: A survey. In: Proceedings of the 6th International Conference on Quality Software (2005)Google Scholar
  8. 8.
    Ali-Babar, M., Zhu, L., Jeffery, R.: A framework for classifying and comparing software architecture evaluation methods. In: Proceedings of the 15th Australian Software Engineering Conference, pp. 309–319. Melbourne, Australia (2004)Google Scholar
  9. 9.
    Alur, D., Crupi, J., Malks, D.: Core J2EE Patterns: Best Practices and Design Strategies, 2nd edn. Sun Microsystem Press (2003)Google Scholar
  10. 10.
    Arango, G., Schoen, E., Pettengill, R.: A process for consolidating and reusing design knowledge. In: Proc. 15th Int’l. Conf. of Software Eng., pp. 231–242. Baltimore, Maryland, USA (1993)Google Scholar
  11. 11.
    Bachmann, F., Bass, L., Klein, M.: Deriving architectural tactics: A step toward methodical architectural design. Tech. Rep. CMU/SEI-2003-TR-004, SEI, Carnegie Mellon University, USA (2003)Google Scholar
  12. 12.
    Barbacci, M.R., Klein, M.H., Weinstock, C.B.: Principles for evaluating the quality attributes of a software architecture. Tech. Rep. CMU/SEI-96-TR-036, SEI, Carnegie Mellon University (1996)Google Scholar
  13. 13.
    Basili, V.R., Caldiera, G.: Improving software quality reusing knowledge and experience. Sloan Management Review 37(1), 55–64 (1995)Google Scholar
  14. 14.
    Basili, V.R., Caldiera, G., Rombach, H.D.: The experience factory. In: J.J. Marciniak (ed.) Encyclopedia of Software Engineering. John Wiley & Sons (2001)Google Scholar
  15. 15.
    Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice, 2 edn. Addison-Wesley (2003)Google Scholar
  16. 16.
    Bass, L., Kazman, R.: Architecture-based development. Tech. Rep. CMU/SEI-99-TR-007, Software Engineering Institute (SEI), Carnegie Mellon University, Pittsburgh, USA (1999)Google Scholar
  17. 17.
    Bass, L., Klein, M., Bachmann, F.: Quality attribute design primitives. Technical Report CMU/SEI-2000-TN-017, SEI, Carnegie Mellon University, USA (2000). URL
  18. 18.
    Bengtsson, P.: Architecture-level modifiability analysis. Ph.d. thesis, Blekinge Institute of Technology, Sweden (2002)Google Scholar
  19. 19.
    Bosch, J.: Design & Use of Software Architectures: Adopting and evolving a product-line approach. Addison-Wesley (2000)Google Scholar
  20. 20.
    Bosch, J.: Software architecture: The next step. In: European Workshop on Software Architecture (2004)Google Scholar
  21. 21.
    Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M.: Pattern-Oriented Software Architecture: A System of Patterns. John Wiley & Sons (1996)Google Scholar
  22. 22.
    Capilla, R., Nava, F., Perez, S., Duenas, J.D.: A web-based tool for managing architectural design decisions. In: Proceedings of the 1st Workshop on Sharing and Reusing Architectural Knowledge (2006)Google Scholar
  23. 23.
    Clements, P., Bachmann, F., Bass, L., Garlan, D., james Ivers, Little, R., Nord, R., Stafford, J.: Documenting Software Architectures: Views and Beyond. Addison-Wesley (2002)Google Scholar
  24. 24.
    Clements, P., Kazman, R., Klein, M.: Evaluating Software Architectures: Methods and Case Studies. Addison-Wesley (2002)Google Scholar
  25. 25.
    Conklin, J., Burgess-Yahkemovic, K.C.: A process-oriented approach to design rationale. Human-Computer Interaction 6(3-4), 357–391 (1991)CrossRefGoogle Scholar
  26. 26.
    Desouza, K.C., Evaristo, J.R.: Managing knowledge in distributed projects. Communication of the ACM 47(4), 87–91 (2004)CrossRefGoogle Scholar
  27. 27.
    Dutoit, A.H., Paech, B.: Rationale management in software engineering. In: S.K. Chang (ed.) Handbook of Software Engineering and Knowledge Engineering, vol. 1. World Scientific Publishing, Singapore (2001)Google Scholar
  28. 28.
    Farenhorst, R., Izaks, R., Lago, P., Vliet, H.: A just-in-time architectural knowledge sharing portal. In: Proceedings of the 7th Working IEEE/IFIP Conference on Software Architecture (WICSA). Vancouver, Canada (2008)Google Scholar
  29. 29.
    Farenhorst, R., Lago, P., van Vliet, H.: Effective tool support for architectural knowledge sharing. In: Proceedings of the First European Conference on Software Architecture (2007)Google Scholar
  30. 30.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns-Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, MA (1995)Google Scholar
  31. 31.
    Gruber, T.R., Russell, D.M.: Design knowledge and design rationale: A framework for representing, capture, and use. Tech. Rep. KSL 90-45, Knowledge Systems Laboratory, Standford University, California, USA, California (1991)Google Scholar
  32. 32.
    Hansen, M.T., Nohria, N., Tierney, T.: What’s your strategy for managing knowledge? Harvard Business Review pp. 106–116 (March-April 1999)Google Scholar
  33. 33.
    Henninger, S.: Tool support for experience-based software development methodologies. Advances in Computers 59, 29–82 (2003)Google Scholar
  34. 34.
    Hipergate: An open source crm and groupware system. URL
  35. 35.
    Hofmeister, C., Kruchten, P., Nord, R.L., Obbink, H., Ran, A., America, P.: A general model of software architecture design derived from five industrial approaches. Journal of System and Software 80(1), 106–126 (2007)CrossRefGoogle Scholar
  36. 36.
    IEEE (ed.): Recommended Practices for Architecture Description of Software-Intensive Systems. IEEE Std 1471-2000 (2000)Google Scholar
  37. 37.
    ISO/IEC: Information technology – Software product quality: Quality model (ISO/IEC FDIS 9126-1:2000(E))Google Scholar
  38. 38.
    Jansen, A., Bosch, J.: Software architecture as a set of architectural design decisions. In: Proceedings of the 5th Working IEEE/IFIP Conference on Software Architecture (2005)Google Scholar
  39. 39.
    Jansen, A., van der Ven, J., Avgeriou, P., Hammer, D.: Tool support for architectural decisions. In: Proceedings of the 6th working IEEE/IFIP Conference on Software Architecture, Mumbai, India (2007)Google Scholar
  40. 40.
    Jansen, A., Vries, T., Avgeriou, P., Veelen, M.: Sharing the architectural knowledge of quantitative analysis. In: Proceedings of the Quality of Software-Architectures (QoSA 2008) (2008)Google Scholar
  41. 41.
    Kazman, R., Abowd, G., Bass, L., Clements, P.: Scenario-based analysis of software architecture. IEEE Software Engineering 13(6), 47–55 (1996)CrossRefGoogle Scholar
  42. 42.
    Kazman, R., Bass, L., Klein, M.: The essential components of software architecture design and analysis. Journal of Systems and Software 79(8), 1207–1216 (2006)CrossRefGoogle Scholar
  43. 43.
    Kolodner, J.L.: Improving human decision making through case-based decision aiding. AI Magazine 12(2), 52–68 (1991)Google Scholar
  44. 44.
    Kruchten, P., Lago, P., Vliet, H.V.: Building up and reasoning about architecture knowledge. In: Proceedings of the 2nd International Conference on Quality of Software Architectures (2006)Google Scholar
  45. 45.
    Lassing, N., Rijsenbrij, D., van Vliet, H.: How well can we predict changes at architecture design time? Journal of Systems and Software 65(2), 141–153 (2003)Google Scholar
  46. 46.
    Niemela, E., Kalaoja, J., Lago, P.: Toward an architectural knowledge base for wireless service engineering. IEEE Transactions of Software Engineering 31(5), 361–379 (2005)CrossRefGoogle Scholar
  47. 47.
    Obbink, H., Kruchten, P., Kozaczynski, W., Postema, H., Ran, A., Dominick, L., Kazman, R., Hilliard, R., Tracz, W., Kahane, E.: Software architecture review and assessment (sara) report. Tech. rep., SARA W.G., (2001)Google Scholar
  48. 48.
    Pena-Mora, F., Vadhavkar, S.: Augmenting design patterns with design rationale. Artificial Intelligence for Engineering Design, Analysis and Manufacturing 11, 93–108 (1997)CrossRefGoogle Scholar
  49. 49.
    Potts, C.: Supporting software design: Integrating design methods and design rationale. In: J.M. Carroll (ed.) Design Rationale: Concepts, Techniques, and Use, pp. 295–321. Lawrence Erlbaum Associates, Hillsdale, NJ (1995)Google Scholar
  50. 50.
    Probst, G.J.B.: Practical knowledge management: A model that works. Prism, Arthur D. Little (1998). URL
  51. 51.
    Regli, W.C., Hu, X., Atwood, M., Sun, W.: A survey of design rationale systems: Approaches, representation, capture and retrieval. Engineering with computers 16, 209–235 (2002)CrossRefGoogle Scholar
  52. 52.
    Robillard, P.N.: The role of knowledge in software development. Communication of the ACM 42(1), 87–92 (1999)CrossRefGoogle Scholar
  53. 53.
    Rus, I., Lindvall, M.: Knowledge management in software engineering. IEEE Software 19(3), 26–38 (2002)CrossRefGoogle Scholar
  54. 54.
    Skuce, B.: Knowledge management in software design: a tool and a trial. Software Engineering Journal September, 183–193 (1995)Google Scholar
  55. 55.
    Tang, A., Ali-Babar, M., Gorton, I., Han, J.: A survey of architecture design rationale. Journal of Systems and Software 79(12), 1792–1804 (2006)CrossRefGoogle Scholar
  56. 56.
    Tang, A., Yin, Y., Han, J.: A rationale-based architecture model for design traceability and reasoning. Journal of Systems and Software 80(6), 918–934 (2007)CrossRefGoogle Scholar
  57. 57.
    Terveen, L.G., Selfridge, P.G., Long, M.D.: Living design memory: Framework, implementation, lessons learned. Human-Computer Interaction 10(1), 1–37 (1995)CrossRefGoogle Scholar
  58. 58.
    Tyree, J., Akerman, A.: Architecture decisions: Demystifying architecture. IEEE Software 22(2), 19–27 (2005)CrossRefGoogle Scholar
  59. 59.
    Williams, L.G., Smith, C.U.: Pasa: An architectural approach to fixing software performance problems. In: Proceedings of the International Conference of the Computer Measurement Group. Reno, USA (2002)Google Scholar
  60. 60.
    Zhu, L., Ali-Babar, M., Jeffery, R.: Mining patterns to support software architecture evaluation. In: Proceedings of the 4th Working IEEE/IFIP Conference on Software Architecture (2004)Google Scholar

Copyright information

© Springer-Verlag London Limited 2010

Authors and Affiliations

  1. 1.Software Development Group IT University of Copenhagen, Rued LangaardsCopenhagenS. Denmark

Personalised recommendations