Designing and Programming Malleable Software

Designing and Programming Malleable Software
复制标题

可塑性软件的设计和编程

DOI:
--
复制
发表时间:
2019
期刊:
影响因子:
--
通讯作者:
Philip Tchernavskij
Philip Tchernavskij
中科院分区:
--
文献类型:
--
作者:
Philip Tchernavskij

文献摘要

被引文献

相似文献

用户对软件功能和界面的需求是多样的,不断变化的,这促使用户尽可能容易地修改软件,或者根据他们的开发需求代表他们修改软件。然而,在我看来,目前的方法并没有充分解决这个问题:软件工程促进灵活的代码,但在实践中,这并不能帮助最终用户在他们的软件中实现变化。最终用户和实时编程系统帮助用户通过访问和修改底层源代码来定制他们的界面。我采取了不同的方法,寻求最大限度地增加通过常规交互可以进行的修改,例如直接操作界面元素。我称这种方法为可塑性软件。为了了解当代的需求和修改软件的障碍,我研究它是如何生产,维护,采用,并与生物多样性数据工作的社区网络中拨款。我发现,软件生产的模式,即生产软件的技术和经济关系,偏向于集中的,一刀切的系统。这使我提出了一个长期的,跨学科的研究计划,在改革软件开发的工具,创造多元化的基础设施。这些工具应该帮助多个社区进行协作,而不必强迫它们围绕相同的接口或数据表示进行整合。可延展软件就是这样一种基础设施,在这种基础设施中,交互式系统是在使用现场组装的接口、设备和程序的动态星座。我的技术贡献是重建了用于创建交互行为的编程机制。我概括现有的控制结构的相互作用的纠缠,并开发一个高阶控制结构,纠缠,产生纠缠时,特定的先决条件,称为同现,得到满足。缠结导致交互随着系统组件的进出而动态组装。我在Tangler中开发了这些机制,Tangler是一个用于构建可延展交互式软件的原型环境。我通过一组基准案例演示了Tangler如何支持延展性,这些案例说明了用户如何通过自己或程序员的帮助修改系统。这篇论文是一个早期的一步,编程和设计的可塑性软件,可以跟上人类的多样性。
User needs for software features and interfaces are diverse and changing, motivating the goal of making it as easy as possible for users themselves to change software, or to have it changed on their behalf in response to their developing needs. However, in my opinion, current approaches do not address this issue adequately: software engineering promotes flexible code, but in practice this does not help end-users effect change in their software. End-user and live programming systems help users customize their interfaces by accessing and modifying the underlying source code. I take a different approach, seeking to maximize the kinds of modifications that can take place through regular interactions, e.g. direct manipulation of interface elements. I call this approach malleable software. To understand contemporary needs for and barriers to modifying software, I study how it is produced, maintained, adopted, and appropriated in a network of communities working with biodiversity data. I find that the mode of software production, i.e. the technologies and economic relations that produce software, is biased towards centralized, one-size-fits-all systems. This leads me to propose a long-term, interdisciplinary research program in reforming the tools of software development to create infrastructures for plurality. These tools should help multiple communities collaborate without forcing them to consolidate around identical interfaces or data representations. Malleable software is one such infrastructure, in which interactive systems are dynamic constellations of interfaces, devices, and programs assembled at the site of use. My technological contribution is a reconstruction of the programming mechanisms used to create interactive behavior. I generalize existing control structures for interaction as entanglements, and develop a higher-order control structure, entanglers, which produces entanglements when particular pre-conditions, called co-occurrences, are met. Entanglers cause interactions to be assembled dynamically as system components come and go. I develop these mechanisms in Tangler, a prototype environment for building malleable interactive software. I demonstrate how Tangler supports malleability through a set of benchmark cases illustrating how users can modify systems by themselves or with programmer assistance. This thesis is an early step towards a paradigm for programming and designing malleable software that can keep up with human diversity.