Recovering Three-Level Architectures from the Code of Open-Source Java Spring Projects (S)

Despite the well-admitted benefits of keeping design decisions as a documentation all along the lifecycle of software, many software projects have lost this information. In order to use design information to guide software maintenance and evolution, this paper proposes to retro-engineer architecture descriptions from source code. The originality of this work is to target a three-leveled architecture description language which represents software specification , configuration and deployment. Retro-engineering these three levels will provide a more precise source of guidance for the maintenance of software. Targeted projects are open-source Java projects that use Spring to describe the implemented "architecture".

[1]  Stéphane Ducasse,et al.  Software Architecture Reconstruction: A Process-Oriented Taxonomy , 2009, IEEE Transactions on Software Engineering.

[2]  Marianne Huchard,et al.  A formal approach for managing component-based architecture evolution , 2016, Sci. Comput. Program..

[3]  Rainer Koschke,et al.  Equipping the reflexion method with automated clustering , 2005, 12th Working Conference on Reverse Engineering (WCRE'05).

[4]  Rainer Koschke,et al.  Locating Features in Source Code , 2003, IEEE Trans. Software Eng..

[5]  Hong Yan,et al.  DiscoTect: a system for discovering architectures from running systems , 2004, Proceedings. 26th International Conference on Software Engineering.

[6]  Gang Huang,et al.  Runtime recovery and manipulation of software architecture of component-based systems , 2006, Automated Software Engineering.

[7]  Houari A. Sahraoui,et al.  Reverse engineering reusable software components from object-oriented APIs , 2017, J. Syst. Softw..

[8]  Christelle Urtado,et al.  Architecture-Centric Component-Based Development Needs a Three-Level ADL , 2010, ECSA.

[9]  Jens Knodel,et al.  Static Evaluation of Software Architectures - A Short Summary , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[10]  Liam O'Brien,et al.  MAP - mining architectures for product line evaluations , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[11]  Chouki Tibermacine,et al.  Materializing Architecture Recovered from Object-Oriented Source Code in Component-Based Languages , 2016, ECSA.