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 至 --
中文摘要
**问题背景** 软件错误会让用户感到沮丧,给企业带来经济损失,有时甚至致命。它们的发生很大程度上是因为软件非常复杂。调试是根据对错误症状的一些初步了解来查找错误原因的过程。现有的调试器主要在症状出现后及时显示单个时刻。然后,程序员重复运行代码到逐渐靠前的点,在修改某些数据或运行一行代码时停止,直到明确识别错误源(假设一切顺利)。这很费力:难怪调试占了开发工作的一半(Britton 等,2013)。尽管时间是回答“哪些系列的变化/事件导致了这一点?”的核心,但没有明确表示。另一种工具,探查器,可以在时间轴上可视化正在运行的函数,但不了解程序的数据。**产品上下文** WhiteBox 模糊了传统工具之间的界限,并添加了新组件,创建了一个大于各个部分之和的整体。 WhiteBox 通过在编辑时“即时”编译和链接 C/C 代码来不断更新数据变化和控制流的时间线可视化:运行新版本并“自动调试”它。通过提供随时间变化的鸟瞰图和详细视图的即时反馈,WhiteBox 为开发人员提供了他们正在处理的代码的重复上下文,控制了其复杂性并提高了他们的理解。**项目** 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)
会议论文
海外基金