Texas Tech University
Computer Science
CS Home
My research aims to find effective methods for developing intelligent systems. By "intelligence" we mean the ability to act appropriately toward specific goals, using limited computational resources, with incomplete and uncertain information. Intelligent systems rely on "knowledge" and how it is used to guide search for plausible or more efficient solutions. Research is driven by applications. Tackling real-world problems helps identify new problems which often lead to new or improved techniques for solving them. Here are some areas that I have worked on.

See selected publications (by chronological listing, or by subject areas) and research projects.

Automated Assessment of Risks associated with Software
Risk assessment is concerned with three basic questions: what can go wrong?, what is its likelihood?, and what are its consequences? Current techniques that specifically address risks associated with software are lacking. Software and hardware/physical faults/failures are very different in nature and behaviors. Although many risk assessment techniques have been successfully applied in various safety-related systems, they often omit detailed software properties or exclude application perspectives of an entire system. Furthermore, most existing tools rely on manual hazard analysis. The goal of this research is to identify foundations for systematic modeling and principle techniques for developing a risk assessment tool that assists users in effectively and efficiently identifying hazards and risks associated with software and their impacts on its entire system and environment. Results will be applied to embedded systems in safety-related systems.

Intelligent Data Understanding
The ability to extract useful information from data is an important asset. Efficiency and accuracy are central for research and development of analysis tools. In practice, however, it is not uncommon that even a sophisticated, highly accurate tool may be unused if its resulting model is hard to interpret. One remedy is to build systems that identify interesting findings and summarize results for users. While this is useful, it can limit users' ability to directly gain insight from the resulting models. Our research starts from a comprehensible model and asks how well it can be used for extracting information from data sets. (See more details in research projects.)

Blackboard Systems and Architectures
The blackboard architecture supports a paradigm of problem-solving based on independent cooperating experts solving the problem opportunistically using globally accessible data. Blackboard systems are more flexible than traditional rule-based architectures. BB1, designed by Barbara Hayes-Roth at Stanford University, implements a blackboard control architecture which separates domain problems fromthe control problem, i.e., which of the potential actions should be performed at each point in the problem-solving process. Our work focuses on efficiency. We introduced a low-level language for blackboard systems along with efficient blackboard activation and agenda maintenance mechanisms (using activation demons) that produced a significant speedup in agenda maintenance and execution in BB1-like systems.

Model-Based Reasoning and Knowledge Representation
Knowledge representation is a fundamental challenge in building intelligent systems. The issue becomes even more compelling when dealing with large and complex physical systems. Reasoning about such systems quantitatively can be computationally expensive or even infeasible. Model-based reasoning offers a way to reason about physical systems qualitatively based on known theories about the systems. Our work introduced a representation scheme that abstract generic knowledge about certain classes of physical systems (such as flow systems) that can be applied in many domains. The scheme promotes knowledge sharing and reuse of generic knowledge for multiple tasks, including diagnosis, prediction and generation of causal explanations.

Knowledge-Based Software Engineering
Software development requires the knowledge and expertise of software developers. In general, our goal is to enhance software development (in both quality and efficiency) by exploiting such knowledge using various AI techniques. Examples include (1) an approach that aims to increase autonomy in the software synthesis process by employing advanced control mechanisms and knowledge about software design (2) a user requirements elicitation tool based on a representation language that facilitates communication, collaboration and identification of ambiguity, and (3) understanding quality of software through its evolution using machine learning techniques.

Mailing address: Department of Computer Science, P.O. Box 43104, Lubbock, TX 79409-3104. Tel: (806)742-3527.