Advertisement

An Iterative Framework for Software Architecture Recovery: An Experience Report

  • Banani Roy
  • T. C. Nicholas Graham
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5292)

Abstract

Both architecture recovery and architecture evaluation play an important role in the area of software reverse-engineering. In this paper, we propose and evaluate a framework for incremental and iterative application of automated architecture recovery (using SWAG Kit) and architecture analysis (using SAAM.) We conclude that SWAG Kit helps in generating a low-level architecture that forms the basis of analysis, while SAAM helps in deriving from this a deeply understood conceptual architecture. The process is iterative, where SAAM analysis helps refine the parameters fed to SWAG Kit, in turn leading to a superior architecture for further analysis. We have applied this process to the extraction of the architectures of three open source compression tools, and we report on the strengths and weaknesses of the approach that this case study exposed. Over all, we conclude that the framework allowed us to understand the software architectures more deeply than would have been possible with the software architecture recovery process alone.

Keywords

Software Architecture Recovery SAAM SWAG Kit Iterative Framework Evaluation 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Abowd, G., Bass, L., Clements, P., Kazman, R., Northrop, L., Zaremski, A.: Recommended Best Industrial Practice for Software Architecture Evaluation (CMU/SEI-96-TR-025) (1996)Google Scholar
  2. 2.
    Babar, M.A., Zhu, L., Jefery, R.: A Framework for Classifying and Comparing Software Architecture Evaluation Methods. In: Australian Software engineering, pp. 309–318. IEEE CS, Washington (2004)CrossRefGoogle Scholar
  3. 3.
    Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice. SEI Series in Software Engineering. Addison-Wesley, Reading (1998)Google Scholar
  4. 4.
    Bergner, K., Rausch, A., Sihling, M., Ternité, T.: DoSAM - Domain-Specific Software Architecture Comparison Model. In: Reussner, R., Mayer, J., Stafford, J.A., Overhage, S., Becker, S., Schroeder, P.J. (eds.) QoSA 2005 and SOQUA 2005. LNCS, vol. 3712, pp. 4–20. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  5. 5.
    Bosch, J., Molin, P.: Software architecture design: Evaluation and transformation. In: Engineering of Computer Based Systems Symposium, pp. 4–10. IEEE CS, Los Alamitos (1999)Google Scholar
  6. 6.
    Ivan, T.B., Holt, R.C.: Software Architecture Recovery Using Conway’s Law. In: Centre for Advanced Studies Conference, pp. 123–133. IBM Press, Toronto (1998)Google Scholar
  7. 7.
    Clements, P., Kazman, R., Klein, M.: Evaluating Software Architectures: Methods and Case Studies. Addison-Wesley Professional, Reading (2002)Google Scholar
  8. 8.
    Dobrica, L., Niemela, E.: A Survey on Software Architecture Analysis Methods. IEEE Transactions on Software Engineering 28, 638–653 (2002)CrossRefGoogle Scholar
  9. 9.
    Eixelsberger, W.: Recovery of a Reference Architecture: A case study. In: 3rd International Software Architecture Workshop, pp. 105–108. ACM, New York (1998)Google Scholar
  10. 10.
    Graaf, B., Dijk, H.v.: Evaluating an Embedded Software Reference Architecture. In: 9th European Conference on Software Maintenance and Reengineering, pp. 354–363. IEEE CS, Washington (2005)CrossRefGoogle Scholar
  11. 11.
    Garlan, D.: Software Architecture: A Roadmap. In: The Future of Software Engineering, pp. 93–101. ACM, New York (2000)Google Scholar
  12. 12.
  13. 13.
    Gronbaek, K., Wiil, U.K.: Towards a Reference Architecture for Open Hypermedia, http://www.aue.aau.dk/~kock/OHS-HT97/Papers/gronbak.html
  14. 14.
    Guo, G.Y., Atlee, J.M., Kazman, R.: A Software Architecture Reconstruction Method. In: Working IFIP Conference on Software Architecture, pp. 15–34. Kluwer B.V., Deventer (1998)Google Scholar
  15. 15.
  16. 16.
    Kazman, R., Abowd, G., Webb, M.: SAAM: A Method for Analyzing the Properties of Software Architectures. In: 16th International Conference on Software Engineering, pp. 81–90. IEEE CS, Los Alamitos (1994)CrossRefGoogle Scholar
  17. 17.
    Kazman, R., Carriére, S.J.: Playing Detective: Reconstructing Software Architecture from Available Evidence. Automated Software Engineering 6, 107–138 (1999)CrossRefGoogle Scholar
  18. 18.
  19. 19.
    Lutz, R., Gannod, G.C.: Analysis of a software product line architecture: an experience report. The Journal of Systems and Software 66, 253–267 (2003)CrossRefGoogle Scholar
  20. 20.
    Matinlassi, M.: Evaluating the Portability and Maintainability of Software Product Family Architecture: Terminal Software Case Study. In: 4th Working IEEE/IFIP Conference on Software Architecture, pp. 295–298. IEEE CS, Wasington (2004)CrossRefGoogle Scholar
  21. 21.
    Medvidovic, N., Jakobac, V.: Using Software Evolution to Focus Architectural Recovery. Automated Software Engineering 13, 225–256 (2006)CrossRefGoogle Scholar
  22. 22.
    Mendonca, N.C., Kramer, J.: An Approach for Recovering Distributed System Architectures. Automated Software Engineering Journal 8, 311–354 (2001)zbMATHCrossRefGoogle Scholar
  23. 23.
    Monroe, R.T., Kompanek, A., Melton, R., Garlan, D.: Architectural Styles, Design Patterns, and Objects. IEEE Software 15, 43–52 (1997)CrossRefGoogle Scholar
  24. 24.
    Murphy, G.C., Notkin, D., Griswold, W.G., Lan, E.S.: An empirical study of static call graph extractors. In: 18th International Conference on Software Engineering, pp. 158–191. ACM, New York (1996)Google Scholar
  25. 25.
    Perry, D.E., Wolf, A.L.: Foundations for the Study of Software Architecture. In: Software Engineering Notes. ACM Sigsoft, vol. 17, pp. 40–52. ACM, New York (1992)Google Scholar
  26. 26.
    Pinzger, M., Gall, H., Girard, J.F., Knodel, J., Riva, C., Pasman, W., Broerse, C., Wijnstra, J.G.: Architecture Recovery for Product Families. In: van der Linden, F.J. (ed.) PFE 2003. LNCS, vol. 3014, pp. 332–351. Springer, Heidelberg (2004)Google Scholar
  27. 27.
  28. 28.
    Roy, B., Graham, T.C.N.: Methods for Evaluating Software Architecture: A Survey, p. 82, School of Computing TR 2008-545, Queen’s University (2008), http://www.cs.queensu.ca/TechReports/reports2008.html
  29. 29.
  30. 30.
    SWAG Kit: Software Architecture Group, http://www.swag.uwaterloo.ca/SWAGKit/
  31. 31.
  32. 32.

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Banani Roy
    • 1
  • T. C. Nicholas Graham
    • 1
  1. 1.Queen’s UniversityKingstonCanada

Personalised recommendations