My goal is to make software easier to develop and maintain by enabling
architects, developers, and maintainers to better understand and
modularize the concerns (e.g., requirements, features) of a program.
When concerns are poorly modularized, programs become more complex,
resulting in increased maintenance effort and defects. The inability
to effectively modularize a concern is called the crosscutting
concern problem—so named because the implementation of the
concern is scattered across (crosscuts) the program structure. My
research interest is to better understand—and try to solve—the
crosscutting concern problem, thereby making programs easier to develop
and maintain.