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.
- E. Tom, A. Aurum, and R. Vidgen, "An exploration of technical debt", J. Syst. Softw., vol. 86, no. 6, pp. 1498--1516, 2013. Google ScholarDigital Library
- 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 ScholarDigital Library
- L. O'Brien, C. Stoermer, and C. Verhoef, "Software architecture reconstruction: Practice needs and current approaches", 2002.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- K. Beck et al., "Manifesto for agile software development", 2001.Google Scholar
- VersionOne, "State of Agiles", 2017. {Online}. Available: http://stateofagile.versionone.com/.Google Scholar
- 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 ScholarCross Ref
- M. M. Lehman, "Laws of software evolution revisited", in Software process technology, Springer, pp. 108--124, 1996. Google ScholarDigital Library
- R. S. Arnold, Software Reengineering. Los Alamitos, CA, USA: IEEE Computer Society Press, 1993. Google ScholarDigital Library
- R. S. Arnold, "Software Restructuring", Proc. IEEE, vol. 77, no. 4, pp. 607--617, 1989.Google ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- G. Rasool and N. Asif, "Software architecture recovery", Int. J. Comput. Information, Syst. Sci. Eng., vol. 1, no. 3, 2007.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- G. Y. Guo, J. M. Atlee, and R. Kazman, "A software architecture reconstruction method", in Software Architecture, Springer, pp. 15--33, 1999. Google ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- L. De Silva and D. Balasubramaniam, "Controlling software architecture erosion: A survey", J. Syst. Softw., vol. 85, no. 1, pp. 132--151, 2012. Google ScholarDigital Library
- 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 ScholarDigital Library
Index Terms
- Towards a (semi)-automatic reference process to support the reverse engineering and reconstruction of software architectures
Recommendations
Reverse engineering: a roadmap
ICSE '00: Proceedings of the Conference on The Future of Software EngineeringSustainable software engineering: Reflections on advances in research and practice
Abstract Context:Modern societies are highly dependent on complex, large-scale, software-intensive systems that increasingly operate within an environment of continuous availability, which are challenging to maintain, and evolve in response to changes in ...
Towards a reference process for software architecture reconstruction
Nowadays, software systems remain useful and competitive; entail the inevitable need to change over time and to be adapted to new technologies, platforms, and architectures. These quick changes imply following systematic, automated, or standardised ...
Comments