My research area is software engineering in general. Software engineering is concerned with the disciplined application of engineering principles to the design, development, and deployment of software systems. It is a broad area of inquiry that includes issues related to people, process, and technology.

My specific interests include reverse engineering & program comprehension, software system redocumentation, information (software) visualization, health informatics, computer-human interaction, and Web systems evolution. In the past couple of years, I have broadened my research to health informatics (particularly on capturing and managing nursing knowledge and practices), and computer applications in clinical and therapeutic fields (particularly on computer-based interactive system for children with Asperger’s syndrome).

My recent research focuses on Brain Computer Interaction (BCI) for self-adaptive systems. This research work has been reflected in my publications, sponsored research projects, and students’ supervision.

Human-in-the-loop in Co-adapative Systems

A co-adaptive system a symbiosis of the human and the electric members of the partnership, such closely coupled human-machine cooperation involves a shared-goal where both partners benefit from optimized interaction, autonomously or cooperatively. The objectives of this project are to determine when and in which manner the human should be included in the systems. Particularly, we focus on using neural input through Brain Computer Interaction (BCI) and behavioral input through eye-tracking and facial expression to determine humans mental states.

Computer-based Interaction System for Children with Asperger's Syndrome

Children with Asperger’s Syndrome (AS) have problems in communication despite normal and/or high intelligence. They have difficulties in understanding facial expressions, incongruent talk and figurative language. This research is to develop a computer-based training system (guidance for home-based therapy) that combines verbal communication with facial expression that will improve the alterations that can lead to miscommunication. The novelty of this idea is that the system provides real-time responses to AS children’s learning progress and engages their training participation. The proposed system also includes the development of different training modules for different social scenarios. That means the children having interaction with the system can learn to give proper responses to different stimuli.

Healthcare Informatics: Modeling Nursing Knowledge and Practices

Providing people with a complete healthcare solution and promoting their wellbeing requires the dedication of multi-tier services from health workers, nurses, medical doctors, and specialists. A patient’s emotional, mental, and physical health should be treated in a holistic manner. Friends, families, and the environment are all integral parts of the caring process, and caring is the essence of nursing. Nursing documentation provides the basis for nurses to communicate their practice, and captures information that includes more than just physical and medical vital signs and responses. The focus of this research is to leverage computer science technology and software engineering methods to develop and integrate nursing language into current medical practice and electronic health records, and further advance the body of nursing knowledge in practical concepts of transitional, enhanced, and trans-disciplinary care. The goal is to empower nursing care to support health prevention and promotion.

Mobile Computing and Web Services

The increasing processing power and capabilities of mobile phones enable them to become the next generation of computing platform. Mobile devices provide ubiquitous, inexpensive, and powerful computing resources that people can use wherever they are. This research focuses on migrating existing software applications to mobile devices, and utilizing the increasing availability of Web services and grid computer environment.

Reverse Engineering for Program Understanding, Redocumentation

Reverse engineering is an emerging branch of software engineering that directly supports the essence of program understanding: identifying artifacts, discovering relationships, and generating abstractions. It can help a software engineer extract high-level information (such as system architecture) from low-level artifacts (such as source code) in an automated manner.

Software Maintenance & Evolution

Legacy systems represent significant assets containing valuable components that can be reused as the system evolves over time to meet changing requirements and new business challenges. This research focuses on the methodologies and technologies of mining these assets in a cost-effective manner to meet new business requirements.

Software Process Improvement by Mining Software Repository Data

Software process describes the life of a software product, from its conception to its implementation, delivery, use and maintenance. Software process improvement is concerned with understanding, modeling and changing the software process to improve product quality.

Web Systems Evolution

The research on Web Systems Evolution (WSE) focuses on work related to the disciplined evolution of large-scale Web-based systems, and to make Web application systems to be accessible to diverse users, irrespective to their national language, physical abilities, or computing platform.