Skip to main content

The Layered Architecture Recovery as a Quadratic Assignment Problem

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 9278))

Abstract

Software architecture recovery is a bottom-up process that aims at building high-level views that support the understanding of existing software applications. Many approaches have been proposed to support architecture recovery using various techniques. However, very few approaches are driven by the architectural styles that were used to build the systems under analysis. In this paper, we address the problem of recovering layered views of existing software systems. We re-examine the layered style to extract a set of fundamental principles which encompass a set of constraints that a layered system must conform to at design time and during its evolution. These constraints are used to guide the recovery process of layered architectures. In particular, we translate the problem of recovering the layered architecture into a quadratic assignment problem (QAP) based on these constraints, and we solve the QAP using a heuristic search algorithm. In this paper, we introduce the QAP formulation of the layering recovery and we present and discuss the results of the experimentation with the approach on four open source software systems.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall (1996)

    Google Scholar 

  2. Clements, P., Bachmann, F., Bass, L., Garlan, D., Ivers, J., Little, R., Nord, R., Stafford, J.: Documenting Software Architectures: Views and Beyond. Addison-Wesley (2003)

    Google Scholar 

  3. Buschmann, F., Meunier, R., Rohnert, H., Sommerlad P., Stal, M.: Pattern-Oriented Software Architecture: A System of Patterns. John Wiley & Sons (1996)

    Google Scholar 

  4. Harris, D.R., Reubenstein, H.B., Yeh, A.S.: Recognizers for Extracting Architectural Features from Source Code. The 2nd WCRE, pp. 252–261 (1995)

    Google Scholar 

  5. Ducasse, S., Pollet, D.: Software Architecture Reconstruction: A Process-Oriented Taxonomy. IEEE Trans. on Soft. Eng. 35(4), 573–591 (2009)

    Article  Google Scholar 

  6. Mitchell, B.S., Mancoridis, S.: On the Evaluation of the Bunch Search-Based Software Modularization Algorithm. Soft Comput. 12(1), 77–93 (2007)

    Article  Google Scholar 

  7. Maqbool, O., Babri, H.A.: Hierarchical Clustering for Software Architecture Recovery. IEEE Transactions on Software Engineering 33(11), 759–780 (2007)

    Article  Google Scholar 

  8. Lung, C.H., Zaman, M., Nandi, A.: Applications of Clustering Techniques to Software Partitioning, Recovery and Restructuring. JSS Journal 73, 227–244 (2004)

    Google Scholar 

  9. Muller, H.A., Orgun, M.A., Tilley, S.R., Uhl, J.S.: A reverse engineering approach to subsystem structure identification. Journal of Software Maintenance 5(4), 181–204 (1993)

    Article  Google Scholar 

  10. Sarkar, S., Maskeri, G., Ramachandran, S.: Discovery of architectural layers and measurement of layering violations in source code. JSS Journal 82(11), 1891–1905 (2009)

    Google Scholar 

  11. Laval, J., Anquetil, N., Bhatti, M.U., Ducasse, S.: OZONE: Layer Identification in the presence of Cyclic Dependencies. submitted to Science of Computer Programming (2012)

    Google Scholar 

  12. Scanniello, G., D’Amico, A., D’Amico, C., D’Amico, T.: Architectural layer recovery for software system understanding and evolution. SPE Journal 40(10), 897–916 (2010)

    Google Scholar 

  13. Andreopoulos, B., Aijun, A., Tzerpos, V., Wang, X.: Clustering large software systems at multiple layers. Information and Software Technology 49(3), 244–254 (2007)

    Article  Google Scholar 

  14. Hassan, AE., Holt, RC.: Architecture recovery of web applications. In: The 24th International Conference on Software Engineering, pp. 349–359. ACM Press, New York (2002)

    Google Scholar 

  15. Sangal, N., Jordan, E., Sinha, V., Jackson, D.: Using dependency models to manage complex software architecture. In: Proceedings of OOPSLA 2005, pp. 167–176 (2005)

    Google Scholar 

  16. Eeles, P.: Layering Strategies. Rational Software White Paper, TP 199, 08/01 (2002)

    Google Scholar 

  17. Szyperski, C.A.: Component Software. Addison Wesley (1998)

    Google Scholar 

  18. Bourquin, F., Keller, R.K.: High-impact refactoring based on architecture violations. In: The 11th CSMR, pp. 149–158 (2007)

    Google Scholar 

  19. El-Boussaidi, G., Boaye-Belle, A., Vaucher, S., Mili, H.: Reconstructing architectural views from legacy systems. In: The 19th WCRE (2012)

    Google Scholar 

  20. Avgeriou, P., Zdun, U.: Architectural patterns revisited-a pattern language. In: EuroPlop (2005)

    Google Scholar 

  21. Pardalos, P.M., Rendl, F., Wolkowicz, H.: The quadratic assignment problem-a survey and recent developments. In: DIMACS. Americ. Mathemat. Society, vol. 16, pp. 1–42 (1994)

    Google Scholar 

  22. Skorin-Kapov, J.: Tabu search applied to the quadratic assignment problem. ORSA Journal on Computing 2(1), 33–45 (1990)

    Article  MATH  Google Scholar 

  23. Glover, F., Laguna, M.: Tabu Search. Kluwer Academic Publishers, Boston (1997)

    Book  MATH  Google Scholar 

  24. MoDisco site. http://www.eclipse.org/MoDisco/

  25. OMG Specifications. http://www.omg.org/

  26. Barros, MdO, Farzat, FdA, Travassos, G.H.: Learning from optimization: A case study with Apache Ant. Information and Software Technology 57, 684–704 (2015)

    Article  Google Scholar 

  27. Boaye, B.A., El-Boussaidi, G., Desrosiers, C., Mili, H.: The layered architecture revisited is it an optimization problem. In: Proc. 25th Int. Conf. SEKE, pp. 344–349 (2013)

    Google Scholar 

  28. Schmidt, F., MacDonell, S.G., Connor, A.M.: An automatic architecture reconstruction and refactoring framework. In: SERA 2011, pp. 95–111 (2011)

    Google Scholar 

  29. Scanniello, G., D’Amico, A., D’Amico, C., D’Amico, T.: Using the Kleinberg algorithm and vector space model for software system clustering. In: ICPC, pp. 180–189 (2010)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ghizlane El Boussaidi .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer International Publishing Switzerland

About this paper

Cite this paper

Belle, A.B., El Boussaidi, G., Desrosiers, C., Kpodjedo, S., Mili, H. (2015). The Layered Architecture Recovery as a Quadratic Assignment Problem. In: Weyns, D., Mirandola, R., Crnkovic, I. (eds) Software Architecture. ECSA 2015. Lecture Notes in Computer Science(), vol 9278. Springer, Cham. https://doi.org/10.1007/978-3-319-23727-5_28

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-23727-5_28

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-23726-8

  • Online ISBN: 978-3-319-23727-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics