Adjunct Professor
Ph.D. in Computer Science, University of Washington (1997)
M.S. in Computer Science, University of of Washington (1992)
M.C.P. in City Planning, Massachusetts Institute of Technology (1979)
B.S. in Urban Studies, Massachusetts Institute of Technology (1979)
B.S. in Art and Design, Massachusetts Institute of Technology (1979)
Future software systems will be more customizable and personalized, while time-to-market will be shorter - much shorter. To attack these conflicting goals, I have focused on two research areas. One, Feature Oriented Programming, addresses reuse and configurability at compile time and low levels of abstraction. The other, Goal Oriented Design, addresses reuse and configurability at run time and high levels of abstraction.Future applications will have access to unprecedented capabilities. My research in Small Mobile Appliance Applications explores some of the opportunities and the issues they create.
Finally, smart and highly personalized applications cannot, and should not gain widespread acceptance, without the issues of security and privacy being resolved. In the past, I have investigated some of the issues, and the types of solutions that might apply.
Feature Oriented Programming encapsulates features in feature fragments, and groups of fragments. Features fragments are easily reused, and easily developed in a process of stepwise refinement. Fragments are composed at compile time to form the classes and hierarchies of a final application. It is most useful in product-line development, or any application where requirements change. The advantages of Feature Oriented Programming include easy reconfigurability and efficient executables. My particular contribution, beginning with my dissertation, is a design methodology and a simple method of implementation requiring only a good C++ compiler.
The next generation of components will be smart and autonomous (proactive), able to self-configure, self-heal, and ultimately self-organize. Smart components will join and leave adhoc networks and collaborations as users enter and leave various contexts. Two key qualities of these smart component aggregations are robustness and adaptability. Appropriate design methodologies for smart component systems treat goals as first-class entities - decomposing goals and assign the resulting subgoals to each component. Each component is free to vary its functional behavior to best satisfy its goals.
The next generation handheld devices will combine speech and video capabilities with various kinds of network connectivity. These new devices will allow applications to readily combine features from multiple disciplines, including computer vision, speech recognition, web services, and knowledge representation, and apply them in unconventional ways. My NLDB'01 paper gives a glimpse of what one such application might look like. I also have a pending patent application for speech recognition in these kinds of personalized applications.
In the past I have investigated and proposed projects to address privacy and security in home gateways and for personal data on mobile devices. I also have a pending patent application for trust on the internet that addresses some of the weaknesses in the current system of certificate verification.
Click here for a brief biography.