Introspector: A general-purpose tool for visualizing and comparing runtime object structures on the Java platform

IF 2.4 4区 计算机科学 Q2 COMPUTER SCIENCE, SOFTWARE ENGINEERING
Francisco Ortin , Oscar Rodriguez-Prieto , Miguel Garcia
{"title":"Introspector: A general-purpose tool for visualizing and comparing runtime object structures on the Java platform","authors":"Francisco Ortin ,&nbsp;Oscar Rodriguez-Prieto ,&nbsp;Miguel Garcia","doi":"10.1016/j.softx.2025.102250","DOIUrl":null,"url":null,"abstract":"<div><div>Understanding the runtime behavior of complex software systems requires dynamic analysis beyond traditional static inspection techniques. Modern applications rely on intricate hierarchies of interconnected objects, making runtime structure analysis crucial for debugging and software comprehension. Traditional approaches such as debuggers, logging, and memory profilers often require significant manual effort to visualize and compare complex object data structures. To address these limitations, we implemented Introspector, a general-purpose tool that provides interactive visualization of any runtime object data structure for applications written in any language compiled to the Java platform. Unlike existing tools, Introspector does not require source code access, supports real-time visualization, and enables automated structural comparisons of object graphs at different execution points. Additionally, it allows for report generation in both text and HTML formats. Introspector is designed to be lightweight, integrating seamlessly into any Java application via its JAR file, not requiring entering debug mode with the corresponding runtime performance overhead of other JDPA-based approaches. Introspector has been successfully applied in multiple domains, including software development, education, and scientific research. It has enabled developers to compare evolving data structures during program execution, educators to visually demonstrate complex programming concepts, and researchers to inspect object data structures such as deep neural networks and biological data structures.</div></div>","PeriodicalId":21905,"journal":{"name":"SoftwareX","volume":"31 ","pages":"Article 102250"},"PeriodicalIF":2.4000,"publicationDate":"2025-07-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"SoftwareX","FirstCategoryId":"94","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S2352711025002171","RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q2","JCRName":"COMPUTER SCIENCE, SOFTWARE ENGINEERING","Score":null,"Total":0}
引用次数: 0

Abstract

Understanding the runtime behavior of complex software systems requires dynamic analysis beyond traditional static inspection techniques. Modern applications rely on intricate hierarchies of interconnected objects, making runtime structure analysis crucial for debugging and software comprehension. Traditional approaches such as debuggers, logging, and memory profilers often require significant manual effort to visualize and compare complex object data structures. To address these limitations, we implemented Introspector, a general-purpose tool that provides interactive visualization of any runtime object data structure for applications written in any language compiled to the Java platform. Unlike existing tools, Introspector does not require source code access, supports real-time visualization, and enables automated structural comparisons of object graphs at different execution points. Additionally, it allows for report generation in both text and HTML formats. Introspector is designed to be lightweight, integrating seamlessly into any Java application via its JAR file, not requiring entering debug mode with the corresponding runtime performance overhead of other JDPA-based approaches. Introspector has been successfully applied in multiple domains, including software development, education, and scientific research. It has enabled developers to compare evolving data structures during program execution, educators to visually demonstrate complex programming concepts, and researchers to inspect object data structures such as deep neural networks and biological data structures.
Introspector:用于在Java平台上可视化和比较运行时对象结构的通用工具
理解复杂软件系统的运行时行为需要超越传统静态检查技术的动态分析。现代应用程序依赖于相互连接的对象的复杂层次结构,这使得运行时结构分析对于调试和软件理解至关重要。调试器、日志记录和内存分析器等传统方法通常需要大量的手工工作来可视化和比较复杂的对象数据结构。为了解决这些限制,我们实现了Introspector,这是一种通用工具,可以为编译到Java平台的任何语言编写的应用程序提供任何运行时对象数据结构的交互式可视化。与现有工具不同,Introspector不需要访问源代码,支持实时可视化,并支持在不同执行点对对象图进行自动结构比较。此外,它允许以文本和HTML格式生成报告。Introspector被设计为轻量级的,可以通过JAR文件无缝地集成到任何Java应用程序中,不需要像其他基于jpa的方法那样进入具有相应运行时性能开销的调试模式。Introspector已经成功地应用于多个领域,包括软件开发、教育和科学研究。它使开发人员能够在程序执行过程中比较不断发展的数据结构,教育工作者能够直观地演示复杂的编程概念,研究人员能够检查对象数据结构,如深度神经网络和生物数据结构。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
SoftwareX
SoftwareX COMPUTER SCIENCE, SOFTWARE ENGINEERING-
CiteScore
5.50
自引率
2.90%
发文量
184
审稿时长
9 weeks
期刊介绍: SoftwareX aims to acknowledge the impact of software on today''s research practice, and on new scientific discoveries in almost all research domains. SoftwareX also aims to stress the importance of the software developers who are, in part, responsible for this impact. To this end, SoftwareX aims to support publication of research software in such a way that: The software is given a stamp of scientific relevance, and provided with a peer-reviewed recognition of scientific impact; The software developers are given the credits they deserve; The software is citable, allowing traditional metrics of scientific excellence to apply; The academic career paths of software developers are supported rather than hindered; The software is publicly available for inspection, validation, and re-use. Above all, SoftwareX aims to inform researchers about software applications, tools and libraries with a (proven) potential to impact the process of scientific discovery in various domains. The journal is multidisciplinary and accepts submissions from within and across subject domains such as those represented within the broad thematic areas below: Mathematical and Physical Sciences; Environmental Sciences; Medical and Biological Sciences; Humanities, Arts and Social Sciences. Originating from these broad thematic areas, the journal also welcomes submissions of software that works in cross cutting thematic areas, such as citizen science, cybersecurity, digital economy, energy, global resource stewardship, health and wellbeing, etcetera. SoftwareX specifically aims to accept submissions representing domain-independent software that may impact more than one research domain.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信