skip to main content
10.1145/3241403.3241414acmotherconferencesArticle/Chapter ViewAbstractPublication PagesecsaConference Proceedingsconference-collections
short-paper

Towards a (semi)-automatic reference process to support the reverse engineering and reconstruction of software architectures

Authors Info & Claims
Published:24 September 2018Publication History

ABSTRACT

The purpose of this work is to define a reference process to support the software architecture reconstruction in a systematic and automatic way. This process aims to be applied to the construction and maintenance phases within Agile methodologies and Continuous Integration processes, where the quick and continuous test and changes at design or coding level can generate an increase or reduction of technical debt and green software levels. This process is based on phases, activities, techniques, and strategies proposed by related works about reverse engineering and software architecture reconstruction. Specifically, it integrates all of them to create a complete process; which may be a reference process by providing green and technical debt-oriented recommendations during the decision-making of software architecture at design level or coding level. This recommendation phase will be based on algorithms and techniques of Machine Learning, that will allow to apply the process in an Agile way and taking into account previous knowledge.

References

  1. E. Tom, A. Aurum, and R. Vidgen, "An exploration of technical debt", J. Syst. Softw., vol. 86, no. 6, pp. 1498--1516, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. E. J. Chikofsky and J. H. Cross, "Reverse engineering and design recovery: A taxonomy", IEEE Softw., vol. 7, no. 1, pp. 13--17, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. L. O'Brien, C. Stoermer, and C. Verhoef, "Software architecture reconstruction: Practice needs and current approaches", 2002.Google ScholarGoogle Scholar
  4. S. Ducasse and D. Pollet, "Software architecture reconstruction: A process-oriented taxonomy", IEEE Trans. Softw. Eng., vol. 35, no. 4, pp. 573--591, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. D. Miorandi, S. Sicari, F. De Pellegrini, and I. Chlamtac, "Internet of things: Vision, applications and research challenges", Ad Hoc Networks, vol. 10, no. 7, pp. 1497--1516, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. K. Beck et al., "Manifesto for agile software development", 2001.Google ScholarGoogle Scholar
  7. VersionOne, "State of Agiles", 2017. {Online}. Available: http://stateofagile.versionone.com/.Google ScholarGoogle Scholar
  8. L. E. Lwakatare, P. Kuvaja, and M. Oivo, "Relationship of DevOps to Agile, Lean and Continuous Deployment", in Int. Conf. on Product-Focused Software Process Improvement, pp. 399--415, 2016.Google ScholarGoogle ScholarCross RefCross Ref
  9. M. M. Lehman, "Laws of software evolution revisited", in Software process technology, Springer, pp. 108--124, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. R. S. Arnold, Software Reengineering. Los Alamitos, CA, USA: IEEE Computer Society Press, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. R. S. Arnold, "Software Restructuring", Proc. IEEE, vol. 77, no. 4, pp. 607--617, 1989.Google ScholarGoogle ScholarCross RefCross Ref
  12. P. Kruchten, R. L. Nord, and I. Ozkaya, "Technical debt: From metaphor to theory and practice", IEEE Software, vol. 29, no. 6. pp. 18--21, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. S. Naumann, M. Dick, E. Kern, and T. Johann, "The greensoft model: A reference model for green and sustainable software and its engineering", Sustain. Comput. Informatics Syst., vol. 1, no. 4, pp. 294--304, 2011.Google ScholarGoogle ScholarCross RefCross Ref
  14. H. Gall, M. Jazayeri, R. Klösch, W. Lugmayr, and G. Trausmuth, "Architecture recovery in ARES", in Joint proceedings of the second international software architecture workshop (ISAW-2) and international workshop on multiple perspectives in software development (Viewpoints' 96) on SIGSOFT'96 workshops, pp. 111--115, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. G. Rasool and N. Asif, "Software architecture recovery", Int. J. Comput. Information, Syst. Sci. Eng., vol. 1, no. 3, 2007.Google ScholarGoogle Scholar
  16. R. Kazman and S. J. Carriere, "View extraction and view fusion in architectural understanding", in Software Reuse, Proceedings. Fifth International Conference on, pp. 290--299, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. S. R. Tilley, S. Paul, and D. B. Smith, "Towards a framework for program understanding", in Program Comprehension Proc., 4th Workshop, pp. 19--28, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. G. Y. Guo, J. M. Atlee, and R. Kazman, "A software architecture reconstruction method", in Software Architecture, Springer, pp. 15--33, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. M. Shahin, P. Liang, and M. A. Babar, "A systematic review of software architecture visualization techniques", J. Syst. Softw., vol. 94, pp. 161--185, 2014.Google ScholarGoogle ScholarCross RefCross Ref
  20. S. Herold, M. Blom, and J. Buckley, "Evidence in architecture degradation and consistency checking research: preliminary results from a literature review", in Proccedings of the 10th European Conference on Software Architecture Workshops, p. 20, 2016. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. N. Ali, S. Baker, R. O'Crowley, S. Herold, and J. Buckley, "Architecture consistency: State of the practice, challenges and requirements", Empir. Softw. Eng., vol. 23, no. 1, pp. 224--258, 2018. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. L. De Silva and D. Balasubramaniam, "Controlling software architecture erosion: A survey", J. Syst. Softw., vol. 85, no. 1, pp. 132--151, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. M. A. Laguna and Y. Crespo, "A systematic mapping study on software product line evolution: From legacy system reengineering to product line refactoring", Sci.. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Towards a (semi)-automatic reference process to support the reverse engineering and reconstruction of software architectures

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Other conferences
      ECSA '18: Proceedings of the 12th European Conference on Software Architecture: Companion Proceedings
      September 2018
      325 pages
      ISBN:9781450364836
      DOI:10.1145/3241403

      Copyright © 2018 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 24 September 2018

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • short-paper

      Acceptance Rates

      Overall Acceptance Rate48of72submissions,67%
    • Article Metrics

      • Downloads (Last 12 months)19
      • Downloads (Last 6 weeks)2

      Other Metrics

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader