Recovering Software Layers from Object Oriented Systems

Alvine Boaye Belle, Ghizlane El Boussaidi, Hafedh Mili


Recovering the architecture of existing software systems remains a challenge and an active research field in software engineering. In this paper, we propose an approach to recover the layered architecture of object oriented software systems. To do so, our approach first recovers clusters corresponding to the various responsibilities of the system; the challenge in this context is to find the appropriate level of granularity of these responsibilities. Then the recovered clusters are assigned to layers using an optimization algorithm that exploits the principles of the layering architectural style. The approach was validated on five Java open source systems.


  1. Ulrich, W., Newcomb, P., 2010. Information systems transformation: Architecture-Driven Modernization Case Studies.OMG Press.
  2. Shaw, M., Garlan, D., 1996, Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall.
  3. Stoermer, C., O'Brien, L., Verhoef, C., 2003. Moving Towards Quality Attribute Driven Software Architecture Reconstruction. In WCRE, (Vol. 3, p. 46).
  4. OMG Specifications: [accessed in March 2013]
  5. Clements, P., Garlan, D., Bass, L., Stafford, J., Nord, R., Ivers, J., & Little, R., 2003. Documenting Software Architectures: Views and Beyond. Addison-Wesley.
  6. Bass, L., Clements, P., Kazman, R., 2003. Software Architecture in Practice. Addison-Wesley.
  7. Tzerpos, V., Holt, R.C., 2000. ACDC: An Algorithm for Comprehension-Driven Clustering. In WCRE.
  8. Mitchell, B., Traverso, M., Mancoridis, S., 2001. An architecture for distributing the computation of software clustering algorithms. In Software Architecture, 2001.Proceedings.Working IEEE/IFIP Conference on (pp. 181-190).IEEE.
  9. Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M., 1996. Pattern-Oriented Software Architecture: A System of Patterns. John Wiley & Sons.
  10. Maqbool, O., Babri, H.A., 2007. Hierarchical Clustering for Software Architecture Recovery. TSE, vol.33, no.11, pp.759-780.
  11. Lung, C-H., Zaman M., Nandi, A., 2004. Applications of Clustering Techniques to Software Partitioning, Recovery and Restructuring. JSS, vol. 73, pp. 227-244.
  12. Shtern, M., Tzerpos, V., 2012. Clustering Methodologies for Software Engineering. Advances in Software Engineering.
  13. Zimmermann, H., 1980. OSI Reference Model--The ISO Model of Architecture for Open Systems Interconnection. IEEE Transactions on Communications, vol.28, no.4, pp.425-432.
  14. Szyperski, C., 1998. Component Software. Addison Wesley.
  15. Eeles, P., 2002. Layering Strategies. Rational Software White Paper, TP 199.
  16. Sarkar, S., G. Maskeri, S. Ramachandran, 2009. Discovery of architectural layers and measurement of layering violations in source code. JSS, Vol. 82 (11), pp. 1891- 1905.
  17. El Boussaidi, G., Boaye-Belle, A., Vaucher, S., Mili, H., 2012. Reconstructing Architectural Views from Legacy Systems. In WCRE, 2012, pp. 345-354.
  18. Bourquin, F., Keller, R.K, 2007. High-impact Refactoring Based on Architecture Violations. In CSMR 7807, pp. 149-158.
  19. Lague, B., LeDuc, C., Le Bon, A., Merlo, E.,Dagenais, M., 1998. An analysis framework for understanding layered software architectures. In IWPC, pp. 37-44
  20. Laval, J., Anquetil, N., Bhatti, M.U., Ducasse, S., 2012. OZONE: Layer Identification in the presence of Cyclic Dependencies. Science of Computer Programming.
  21. Scanniello, G., D'Amico, A., D'Amico, C., D'Amico, T, 2010. Architectural layer recovery for software system understanding and evolution. SPE vol. 40(10), pp. 897-916.
  22. Hautus, E., 2002. Improving Java software through package structure analysis.In International Conference on Software Engineering and Applications.
  23. Müller, H. A., Orgun, M. A., Tilley, S.R., Uhl, J.S., 1993. A reverse engineering approach to subsystemstructure identification. Journal of Software Maintenance: Research and Practice ;5(4):181-204.
  24. Hassan, A. E., Holt, R. C, 2002. Architecture recovery of web applications. ICSE, pp. 349-359
  25. Tzerpos, V., Holt, R. C., 1996. A Hybrid process for recovering software architecture. In Proceedings of the 1996 conference of the Centre for Advanced Studies on Collaborative research (p. 38). IBM Press. 1996.
  26. Achermann, F., Nierstrasz, O., 2000. Explicit Namespaces. In Modular Programming Languages (pp. 77-89). Springer Berlin Heidelberg. 2000.
  27. Boaye-Belle, A., El Boussaidi, G., Desrosiers, C., Mili, H., 2013. The Layered Architecture revisited: Is it an Optimization Problem?. In SEKE.
  28. Andreopoulos, B., An, A., Tzerpos, V., Wang, X., 2007. Clustering large software systems at multiple layers. Information & Software Technology 49(3): 244-254.

Paper Citation

in Harvard Style

Boaye Belle A., Boussaidi G. and Mili H. (2014). Recovering Software Layers from Object Oriented Systems . In Proceedings of the 9th International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE, ISBN 978-989-758-030-7, pages 78-89. DOI: 10.5220/0004900400780089

in Bibtex Style

author={Alvine Boaye Belle and Ghizlane El Boussaidi and Hafedh Mili},
title={Recovering Software Layers from Object Oriented Systems},
booktitle={Proceedings of the 9th International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE,},

in EndNote Style

JO - Proceedings of the 9th International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE,
TI - Recovering Software Layers from Object Oriented Systems
SN - 978-989-758-030-7
AU - Boaye Belle A.
AU - Boussaidi G.
AU - Mili H.
PY - 2014
SP - 78
EP - 89
DO - 10.5220/0004900400780089