My major interest is in the modular design and rapid prototyping of dependable computing structures. Three research projects support this interest: Mobile/Wearable/Context Aware Computers and Virtual Coaches, Concurrent Design, and Reliable Systems.
Mobile/Wearable/Context Aware Computers and Virtual Coaches. The information processing industry is undergoing a paradigm shift. In the 1990's wearable computers allow mobile users to remotely access information and collaborate with exerts. We have built over two dozen mobile and wearable computer systems in such diverse areas as heavy vehicle maintenance, aircraft manufacturing, plant operations, language translation, and medical monitoring. Systems involve hardware architecture, software architecture, wireless communications, interaction between energy consumption and functionality, ergonomic design, and human computer interaction. By adding low cost sensors and machine learning algorithms, small platforms such as smart phones and smart watches can be made context-aware and respond proactively to situations based upon learned user preferences. Using sensor data and machine learning, user intention, situation, and emotional state can be inferred and context appropriate real-time feedback provided to engage, encourage, and improve quality of life in such diverse activities as rehabilitation exercises, completing complex tasks, and learning something for the first time.
Concurrent Design. The goal is to support the generation of designs from high level systems specifications into completely assembled electronics, mechanical, user interaction, and software systems and reduce design time by 1 to 2 orders of magnitude. The Concurrent Design methodology has been used in all generations of mobile systems described above. Groups of up to 30 designers representing up to five disciplines design and fabricate multiple copies in less than four months, and develop tools to support the concurrent design process. For all levels of design there are common issues that must be addressed including design data bases, design information representation, human-computer interfaces, simulation/validation/ verification, automatic synthesis, test generation, and design selection criteria.
Reliable Systems. For over three decades, computer system design and evaluation has been based upon performance benchmarks. Comparable benchmarks do not exist for evaluating the quality and robustness of computer hardware/software systems. This project is developing a family of portable benchmarks for a variety of operating systems and programming language environments. The benchmarks are based upon over a decade of experimentation with fault injection including the next generation air traffic control system. Another goal of the project is to develop technology to enable the construction of reliable systems from commercial-off-the-shelf (COTS) hardware and software. Studies indicate that the majority of system downtime is due to human errors in either design or operation. This project also explores the design of software systems and interfaces to reduce human errors. Research is in cooperation with Roy Maxion and Phil Koopman.