Society is increasingly dependent on the robustness, reliability, and evolvability of software systems. Better support for software development and maintenance are essential. The goal of our research is to build interactive systems that enable developers to work at a more conceptual level and to reduce their dependence on typing and text. That will help developers to be more productive and to create better software; at the same time, it will reduce the incidence of repetitive strain injuries, and provide tools for people with motor disabilities.
We are using two approaches to providing high-level interaction. We will enable the user to manipulate software at a conceptual level by creating powerful language-based generative, navigation, and transformation capabilities. We will create multi-modal voice and gesture-based interaction to access and use those capabilities.
Our prototype system is built on our Harmonia language-based framework, an integrated set of language-based tools and services that provides an annotated structural representation of programs, together with an embedded history of changes and support for incomplete or incorrect versions during the development process. It is designed to provide language-aware support for the myriad of formally specified system architecture, specification, design, programming, scripting, and command languages used by developers. The technology can be used to create multi-lingual and language-portable development environments or to create new tools for existing environments.