Browsing and searching software architectures

Software architecture visualization tools tend to support browsing, that is, exploration by following concepts. If architectural diagrams are to be used during daily software maintenance tasks, these tools also need to support specific fact-finding through searching. Searching is essential to program comprehension and hypothesis testing. Furthermore, searching allows users to reverse the abstractions in architectural diagrams and access facts in the underlying program code. We consider the problem of searching and browsing software architectures using perspectives from information retrieval and program comprehension. After analyzing our own user studies and results from the literature, we propose a solution: the Searchable Bookshelf, an architecture visualization tool that supports both navigation styles. We also present a prototype of our tool which is an extension of an existing architecture visualization tool.

[1]  Charles L. A. Clarke,et al.  An Algebra for Structured Text Search and a Framework for its Implementation , 1995, Comput. J..

[2]  Ben Shneiderman,et al.  Designing the User Interface: Strategies for Effective Human-Computer Interaction , 1998 .

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

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

[5]  Atul Prakash,et al.  A Framework for Source Code Search Using Program Patterns , 1994, IEEE Trans. Software Eng..

[6]  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).

[7]  Melissa P. Chase,et al.  Manipulating Recovered Software Architecture Views , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[8]  N. Pennington Stimulus structures and mental representations in expert comprehension of computer programs , 1987, Cognitive Psychology.

[9]  A. von Mayrhauser,et al.  From code understanding needs to reverse engineering tool capabilities , 1993, Proceedings of 6th International Workshop on Computer-Aided Software Engineering.

[10]  Anneliese Amschler Andrews,et al.  Program Comprehension During Software Maintenance and Evolution , 1995, Computer.

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

[12]  Linore Cleveland,et al.  A Program Understanding Support Environment , 1989, IBM Syst. J..

[13]  Elliot Soloway,et al.  Mental models and software maintenance , 1986, J. Syst. Softw..

[14]  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).

[15]  Rick Kazman,et al.  View extraction and view fusion in architectural understanding , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).

[16]  Richard C. Holt,et al.  Design maintenance: unexpected architectural interactions (experience report) , 1995, Proceedings of International Conference on Software Maintenance.

[17]  C. V. Ramamoorthy,et al.  The C Information Abstraction System , 1990, IEEE Trans. Software Eng..

[18]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[19]  Nicholas J. Belkin,et al.  Cases, scripts, and information-seeking strategies: On the design of interactive information retrieval systems , 1995 .

[20]  Gary Marchionini,et al.  Information Seeking in Electronic Environments , 1995 .

[21]  David Notkin,et al.  Lightweight lexical source model extraction , 1996, TSEM.

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

[23]  John Domingue,et al.  Software visualization : programming as a multimedia experience , 1998 .

[24]  Norman Wilde,et al.  The Extensible Dependency Analysis Tool Set: a Knowledge Base for Understanding Industrial Software , 1994, Int. J. Softw. Eng. Knowl. Eng..

[25]  Ben Shneiderman,et al.  Empirical Studies of Programmers: First Workshop , 1987 .

[26]  J. E. Sammet,et al.  Software psychology: human factors in computer and information systems , 1983, SGCH.

[27]  Ruven E. Brooks,et al.  Towards a Theory of the Comprehension of Computer Programs , 1983, Int. J. Man Mach. Stud..

[28]  Charles L. A. Clarke,et al.  Schema-Independent Retrieval from Heterogeneous Structured Text , 1994 .

[29]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[30]  Susan Elliott Sim,et al.  The ramp-up problem in software projects: a case study of how software immigrants naturalize , 1998, Proceedings of the 20th International Conference on Software Engineering.

[31]  David Harel,et al.  On visual formalisms , 1988, CACM.

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

[33]  Stanley Letovsky,et al.  Cognitive processes in program comprehension , 1986, J. Syst. Softw..

[34]  Suzanne W. Dietrich,et al.  A conceptual design for a code analysis knowledge base , 1992, J. Softw. Maintenance Res. Pract..