Reliance on skilled developers reduces the return on investment for important software engineering tasks such as establishing program correctness. This position paper introduces adaptive semiautomated (ASA) tools as a means to enable less-skilled workers to perform aspects of software engineering tasks. In an ASA tool, a task is decomposed and the computationally difficult subtasks are performed by less-skilled workers using an adaptive user interface, reducing or eliminating the skilled developer's effort. We describe strategies for decomposing a software engineering task and propose design principles to maximize the cost effectiveness of ASA tools in the presence of imperfect decomposition. Though the approach can be applied to many different types of tasks, this paper focuses on and provides examples for the software correctness tasks of test generation, program verification, and program synthesis. Additionally, we address the auxiliary challenges of latency, intellectual prop...
Todd W. Schiller, Michael D. Ernst