Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Software Testing Techniques
Invariant inference for static checking:
Proceedings of the 10th ACM SIGSOFT symposium on Foundations of software engineering
InfraSec '02 Proceedings of the International Conference on Infrastructure Security
Houdini, an Annotation Assistant for ESC/Java
FME '01 Proceedings of the International Symposium of Formal Methods Europe on Formal Methods for Increasing Software Productivity
Labeling images with a computer game
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Managing risk in offshore systems development
Communications of the ACM
Feedback-Directed Random Test Generation
ICSE '07 Proceedings of the 29th international conference on Software Engineering
The Daikon system for dynamic detection of likely invariants
Science of Computer Programming
Practical pluggable types for java
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
Self-assembly for discreet, fault-tolerant, and scalable computation on internet-sized distributed networks
A market-based approach to software evolution
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
CrowdMine: towards crowdsourced human-assisted verification
Proceedings of the 49th Annual Design Automation Conference
Reducing the barriers to writing verified specifications
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Hi-index | 0.00 |
Reliance on skilled developers reduces the return on investment for important software engineering tasks such as establishing program correctness. This position paper introduces adaptive semi-automated (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 property risk, and worker error.