Prodirect Manipulation: Bidirectional Programming for the Masses

Prodirect Manipulation: Bidirectional Programming for the Masses
复制标题

Prodirect 操纵:面向大众的双向编程

DOI:
--
复制
发表时间:
2015
期刊:
2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C)
影响因子:
--
通讯作者:
Ravi Chugh
Ravi Chugh
中科院分区:
--
文献类型:
--
作者:
Ravi Chugh

文献摘要

被引文献

相似文献

如今的软件接口通常处于两个极端。一方面是可编程系统,它允许专家用户(即程序员)编写描述复杂抽象的软件工件,但程序与其最终输出断开连接。另一端是特定领域的图形用户界面(GUI),它允许最终用户(即非程序员)轻松创建各种内容,但当未内置所需功能时,就会出现难以逾越的障碍。编程式操作和直接操作都具有独特的优势,但用户通常必须选择其中一种或使用某种特殊的系统组合。简而言之,我们的目标就是弥合这一鸿沟。我们设想新颖的软件系统将编程和直接操作紧密结合在一起(我们将其称为直接操作的组合),用于各种用例。这将需要广泛的软件工程学科的进步,从程序分析和程序综合技术到用户界面设计和评估。在这个扩展摘要中,我们提出了两种通用策略——实时程序综合和通用程序的特定领域综合——这可能会被证明对于克服技术挑战是卓有成效的。我们还讨论了对于评估直接操纵系统的可用性和实用性非常重要的指标。
Software interfaces today generally fall at either end of a spectrum. On one end are programmable systems, which allow expert users (i.e. programmers) to write software artifacts that describe complex abstractions, but programs are disconnected from their eventual output. On the other end are domain-specific graphical user interfaces (GUIs), which allow end users (i.e. non-programmers) to easily create varied content but present insurmountable walls when a desired feature is not built-in. Both programmatic and direct manipulation have distinct strengths, but users must typically choose one over the other or use some ad-hoc combination of systems. Our goal, put simply, is to bridge this divide. We envision novel software systems that tightly couple programmatic and direct manipulation --- a combination we dub prodirect manipulation --- for a variety of use cases. This will require advances in a broad range of software engineering disciplines, from program analysis and program synthesis technology to user interface design and evaluation. In this extended abstract, we propose two general strategies --- real-time program synthesis and domain-specific synthesis of general-purpose programs --- that may prove fruitful for overcoming the technical challenges. We also discuss metrics that will be important in evaluating the usability and utility of prodirect manipulation systems.