Architecture recovery of web applications

Web applications are the legacy software of the future. Developed under tight schedules, with high employee turn over, and in a rapidly evolving environment, these systems are often poorly structured and poorly documented. Maintaining such systems is problematic.This paper presents an approach to recover the architecture of such systems, in order to make maintenance more manageable. Our lightweight approach is flexible and retargetable to the various technologies that are used in developing web applications. The approach extracts the structure of dynamic web applications and shows the interaction between their various components such as databases, distributed objects, and web pages. The recovery process uses a set of specialized extractors to analyze the source code and binaries of web applications. The extracted data is manipulated to reduce the complexity of the architectural diagrams. Developers can use the extracted architecture to gain a better understanding of web applications and to assist in their maintenance.

[1]  Brian W. Kernighan,et al.  The C Programming Language , 1978 .

[2]  Mitsuhiko Toda,et al.  Methods for Visual Understanding of Hierarchical System Structures , 1981, IEEE Transactions on Systems, Man, and Cybernetics.

[3]  Thomas A. Standish An Essay on Software Reuse , 1984, IEEE Transactions on Software Engineering.

[4]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[5]  A. L. Gilbert,et al.  Documentation in a software maintenance environment , 1988, Proceedings. Conference on Software Maintenance, 1988..

[6]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[7]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[8]  Larry Wall,et al.  Programming Perl , 1991 .

[9]  Kozo Sugiyama,et al.  Visualization of structural information: automatic drawing of compound digraphs , 1991, IEEE Trans. Syst. Man Cybern..

[10]  Robert L. Glass Editor's Corner we have lost our way , 1992, J. Syst. Softw..

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

[12]  David A. Penny,et al.  The software landscape: a visual formalism for programming-in-the-large , 1993 .

[13]  David T. Barnard,et al.  Error Handling in a Parallel LR Substring Parser , 1993, Comput. Lang..

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

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

[16]  Robert L. Nord,et al.  Software Architecture in Industrial Applications , 1995, 1995 17th International Conference on Software Engineering.

[17]  David Notkin,et al.  Software reflexion models: bridging the gap between source and high-level models , 1995, SIGSOFT FSE.

[18]  Dimitris Christodoulakis,et al.  Measuring the readability and maintainability of hyperdocuments , 1995, J. Softw. Maintenance Res. Pract..

[19]  Scot Hillier Inside Microsoft Visual Basic, Scripting Edition , 1996 .

[20]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[21]  Richard C. Holt,et al.  A hybrid process for recovering software architecture , 1996, CASCON.

[22]  Richard C. Holt Binary Relational Algebra Applied to Software Architecture , 1996 .

[23]  Timothy C. Lethbridge,et al.  Architecture of a Source Code Exploration Tool: A Software Engineering Case Study1 , 1997 .

[24]  Surajit Chaudhuri,et al.  An overview of data warehousing and OLAP technology , 1997, SGMD.

[25]  Hausi A. Müller,et al.  The Software Bookshelf , 1997, IBM Syst. J..

[26]  Geoff W. Hamilton,et al.  Hypertext: The Next Maintenance Mountain , 1998, Computer.

[27]  Susan Elliott Sim,et al.  Supporting Multiple Program Comprehension Strategies During Software Maintenance , 1998 .

[28]  Charles L. A. Clarke,et al.  Archetypal source code searches: a survey of software developers and maintainers , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

[29]  Richard C. Holt Structural manipulations of software architecture using Tarski relational algebra , 1998, Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261).

[30]  Richard C. Holt,et al.  Software botryology. Automatic clustering of software systems , 1998, Proceedings Ninth International Workshop on Database and Expert Systems Applications (Cat. No.98EX130).

[31]  Martin Gaedke,et al.  Object-Oriented Web Application Development , 1999, IEEE Internet Comput..

[32]  Michel Dagenais,et al.  Parsing C++ despite missing declarations , 1999, Proceedings Seventh International Workshop on Program Comprehension.

[33]  Valter Crescenzi,et al.  The ARANEUS Guide to Web-Site Development , 1999, SEBD.

[34]  Jim Conallen,et al.  Building Web applications with UML , 1999 .

[35]  Richard C. Holt,et al.  Linux as a case study: its extracted software architecture , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[36]  Charles L. A. Clarke,et al.  Browsing and searching software architectures , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[37]  Michael W. Godfrey,et al.  Extracting Source Models from Java Programs: Parse, Disassemble, or Profile? , 1999 .

[38]  R. S. Pressman,et al.  What a tangled Web we weave [Web engineering] , 2000 .

[39]  Michael W. Godfrey,et al.  Architectural repair of open source software , 2000, Proceedings IWPC 2000. 8th International Workshop on Program Comprehension.

[40]  Hausi A. Müller,et al.  Reverse engineering: a roadmap , 2000, ICSE '00.

[41]  Richard C. Holt,et al.  A reference architecture for Web servers , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[42]  Michael W. Godfrey,et al.  Secrets from the Monster: Extracting Mozilla’s Software Architecture , 2000 .

[43]  Stefano Ceri,et al.  Web Modeling Language (WebML): a modeling language for designing Web sites , 2000, Comput. Networks.

[44]  Shihong Huang,et al.  Evaluating the reverse engineering capabilities of Web tools for understanding site content and structure: a case study , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[45]  Rick Kazman,et al.  Playing Detective: Reconstructing Software Architecture from Available Evidence , 1999, Automated Software Engineering.