WhiteBox: Immediately see your code's behaviour laid out across time
WhiteBox: Immediately see your code's behaviour laid out across time
批准号:
10071952
负责人:
金额:
$6.37万
依托单位:
依托单位国家:
英国
项目类别:
Collaborative R&D
财政年份:
2023
资助国家:
英国
项目状态:
未结题
起止时间:
2023 至 --
中文摘要
** 问题背景 ** 软件错误令用户感到沮丧,对企业造成经济损失,有时甚至致命。它们的出现在很大程度上是因为软件是如此复杂。故障诊断是根据对故障症状的初步了解来查找故障原因的过程。现有的调试器主要显示症状出现后的单个瞬间。然后程序员重复运行代码,直到一些数据被修改或一行代码运行时停止,直到确定错误的来源(假设一切顺利)。这是费力的:难怪调试占了开发工作的一半(布里顿等人,2013年)。时间并没有被明确地表示出来,尽管它是回答“是什么系列的变化/事件导致了这一点?”的核心。".另一个工具Profilers可以在时间轴上可视化运行的函数,但不知道程序的数据。** ** WhiteBox模糊了传统工具之间的界限,并添加了新的组件,创建了一个大于其部分之和的整体。WhiteBox通过“即时”编译和链接C/C++代码来不断更新数据更改和控制流的时间轴可视化:运行新版本并“自动调试”它。通过提供随时间变化的鸟瞰和详细视图的即时反馈,WhiteBox为开发人员提供了他们正在处理的代码的重复上下文,驯服其复杂性并提高他们的理解。** Project** WhiteBox目前基于重复编辑和检查单个功能的模型。这在许多情况下都很有用,特别是在教育中,程序通常充当一致的处理管道:以一种对多次重复不敏感的方式将输入转换为输出。然而,在商业环境中,通常制作连续运行的程序,响应用户输入进行更新,即交互式应用程序。这需要一个新的交互模型,这个项目将解决这个问题。这不仅仅是对现有技术的UI重新设计(尽管这很有价值)。我们将仔细重构和扩展我们现有的专有架构,以应对新的需求;我们将调整自定义数据结构和算法,以有效地处理大量数据;我们将最终确定和改进全新交互方法的设计,使用户能够探索记录的信息。WhiteBox将数据时间线引入软件工具的世界。它必须是第一个使它们成为交互式软件的可行工作流程。
英文摘要
**Problem Context** Software errors are frustrating for users, financially damaging for businesses, and occasionally even fatal. They occur in large part because software is so complex. Debugging is the process of finding the cause of errors based on some initial knowledge of their symptoms. Existing debuggers primarily show single instants in time _after_ the symptoms have presented themselves. The programmer then repeatedly runs the code to progressively earlier points, stopping when some data is modified or a line of code run, until the source of error is positively identified (assuming all goes well). This is laborious: no wonder that debugging comprises half of development work (Britton et al., 2013). Time is not explicitly represented, despite being central to answering, "what series of changes/events caused this?". Another tool, profilers, visualizes running functions on a timeline but has no knowledge of the program's data.**Product Context** WhiteBox blurs the lines between conventional tools and adds new components, creating a whole greater than the sum of its parts. WhiteBox continually updates a timeline visualisation of data changes and control flow by "just-in-time" compiling and linking C/C++ code as it is edited: running the new version and "auto-debugging" it.By providing immediate feedback with both birds-eye and detailed views of changes across time, WhiteBox gives developers repeated context for the code they are working on, taming its complexity and improving their understanding.**Project** WhiteBox is currently based around a model of repeatedly editing and inspecting single functions. This is useful in many contexts, particularly in education, where programs often act as consistent processing pipelines: converting inputs to outputs in a manner not sensitive to being rerun many times. In business settings, however, it is common to make programs that run continuously, updating in response to user input, i.e. interactive applications. This requires a new interaction model, which this project will address.This is not just a UI redesign over existing technology (as valuable as that can be). We will carefully refactor and expand our existing proprietary architecture to handle the new requirements; we will tune custom data structures and algorithms to efficiently process the huge volume of data; and we will finalise and improve designs for entirely novel interaction methods to give users the power to explore the recorded information.WhiteBox introduced data timelines to the world of software tools. It must be the first to make them a viable workflow for interactive software.
期刊论文(0)
专著(0)
科研奖励(0)
会议论文
海外基金