Software Engineering & Systems Engineering

Empirical Software Engineering

In his ICSE 2015 Keynote, Grady Booch said, "Software is the invisible writing that whispers the stories of possibility to our hardware." Software developers are "story makers and story tellers."
Software engineering is essentially a human activity. Empirical Software Engineering could help us better understand this activity. One of my research interests is to apply Empirical Software Engineering to Systems Engineering to help systems engineers develop high-quality software artifacts in the process of product implementation. For example, in my SANER 20 paper, I empircally evaluated the users' perception of bad smells in the systems models (built with LabVIEW).

Model-Based Systems Engineering

Systems engineering is a multi-disciplinary approach to design, realize, manage and operate a system, which consists of hardware, software, process and personnel. Engineers and scientists from dfferent domains often create domain-specifc software artifacts - systems models to describe phenomena in the process of system development. Systems models are frequently tied to external instrumentation and devices that coordinate experimentation and observation.
My research focuses on the methodologies and tools that support systems modeling to equipt it with the capabilities that are found in software engineering environments and practice.

CS Education Research

I am also interested in the CS Education for K-12. During my Ph.D., I had the opportunity to help to promote CS Education for K-12 in Alabama, particulay to underrepresented groups. I was part of the team members in CS 10K: The Tuskegee Partnership to Establish Computer Science Education in the Alabama Black Belt (NSF #1639971) and Pathways for Alabama Computer Science (Department of Education - Education Innovation and Research).