A brief bio, and my resume (ps, pdf)
Performability -- the combination of performance and reliability -- is a critical aspect of high availability systems. Testing of performability requirements is typically very complex and costly in terms of time and resources. I am interested in model-driven testing frameworks for performability that combine various kinds of analysis, including stochastic analysis, model checking, and statistical analysis. In particular, I am interested in specifying and analyzing performability models to detect errors earlier in the software development cycle, using the models to drive automated testing, and validating and refining the models based on observed test and field data.
Today, it is becoming more and more commonplace for modern interactive services, such as those for personal banking or stock trading, to have more than one interface for accessing the same data. These interfaces include web, GUI, touch-tone telephony, and increasingly, automatic speech recognition with natural language understanding, adding further flexibility in interaction with the user. We have developed Sisl (several interfaces, single logic) an architecture and domain-specific language for structuring flexible services with these kinds of multiple user interfaces. Sisl service logics are based on a novel form of event-driven directed graphs, called reactive constraint graphs. These graphs can be specified through an XML mark-up language. Sisl is implemented as a library in Java, and automatically generates the variety of interfaces described above. Sisl also supports an extensive testing facility through integration with VeriSoft, a systematic state-space exploration tool.
More generally, I'm interested in the specification, model-checking, language design, semantics and other issues related to such systems. We have developed Triveni, a framework and API that integrates threads and events in concurrent object-oriented programming, using ideas from process algebra. The implementation of Triveni is available as a Java library. We used Triveni to implement the initial version of Sisl, an architecture and domain-specific language for structuring flexible multi-modal services (see above).
I'm particularly interested in specification and verification.
I'm interested in programming language design, semantics and type theory.