Manipulating Recovered Software Architecture Views

Automatically recovered (reverse engineered) architectural views of legacy software are valuable for carrying out many software engineering tasks. However, while directly recovered views provide some relevant information, they often are either too fragmented or complex to be really useful in practice. This paper describes methods for making views more useful. We automatically combine and/or simplify views to produce hierarchies, hybrids, and abstractions. The methods we use take advantage of the source code fragments underlying the views to cross-reference between parts from different views.

[1]  Melissa P. Chase,et al.  Analysis and presentation of recovered software architectures , 1996, Proceedings of WCRE '96: 4rd Working Conference on Reverse Engineering.

[2]  John W. Backus,et al.  Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs , 1978, CACM.

[3]  Emden R. Gansner,et al.  A Technique for Drawing Directed Graphs , 1993, IEEE Trans. Software Eng..

[4]  D. R. Harris,et al.  Recovering abstract data types and object instances from a conventional procedural language , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.

[5]  Mike Adler,et al.  An Algebra for Data Flow Diagram Process Decomposition , 1988, IEEE Trans. Software Eng..

[6]  Mary Shaw,et al.  An Introduction to Software Architecture , 1993, Advances in Software Engineering and Knowledge Engineering.

[7]  Robert W. Schwanke,et al.  An intelligent tool for re-engineering software modularity , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

[8]  P. Tonella,et al.  A cliche-based environment to support architectural reverse engineering , 1996, 1996 Proceedings of International Conference on Software Maintenance.

[9]  Ted J. Biggerstaff,et al.  Program understanding and the concept assignment problem , 1994, CACM.

[10]  Le MétayerDaniel Software architecture styles as graph grammars , 1996 .

[11]  Daniel Le Métayer,et al.  Software architecture styles as graph grammars , 1996, SIGSOFT '96.

[12]  Giuliano Antoniol,et al.  Augmenting pattern-based architectural recovery with flow analysis: Mosaic-a case study , 1996, Proceedings of WCRE '96: 4rd Working Conference on Reverse Engineering.

[13]  Barry Boehm,et al.  Composing heterogeneous software architectures , 1996 .

[14]  Jeff Magee,et al.  Dynamic structure in software architectures , 1996, SIGSOFT '96.

[15]  Martin S. Feather,et al.  Representation and Presentation of Requirements Knowledge , 1992, IEEE Trans. Software Eng..

[16]  Mary Shaw Heterogeneous design idioms for software architecture , 1991, Proceedings of the Sixth International Workshop on Software Specification and Design.

[17]  Margherita Napoli,et al.  The Tool Development Language TDL for the Software Development Environment WSDW , 1993, SEKE.

[18]  Hausi A. Müller,et al.  A reverse-engineering approach to subsystem structure identification , 1993, J. Softw. Maintenance Res. Pract..

[19]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[20]  Premkumar T. Devanbu,et al.  LaSSIE—a knowledge-based software information system , 1991, ICSE '90.

[21]  Atul Prakash,et al.  Supporting Queries on Source Code: a Formal Framework , 1994, Int. J. Softw. Eng. Knowl. Eng..

[22]  A. A. Abd Allah Composing heterogeneous software architectures , 1996 .

[23]  Giuseppe Visaggio,et al.  Software salvaging and the call dominance tree , 1995, J. Syst. Softw..

[24]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[25]  Alexander S. Yeh,et al.  Recognizers for extracting architectural features from source code , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.

[26]  Hausi A. Müller,et al.  Structural Redocumentation: A Case Study , 1995, IEEE Softw..

[27]  Alexander S. Yeh,et al.  Reverse Engineering to the Architectural Level , 1995, 1995 17th International Conference on Software Engineering.