Research
Software that is unintuitive and difficult to use don't get used, no matter how reliable it is.
This is true for not only novice and non-technical users, but also for tech-savvy programmers.
My research interest lies in building tools that are intuitive and efficient to use, while not compromising on their safety, performance, and reliability.
Publications
Temporal Code Completion and Navigation
Yun Young Lee, Sam Harwell, Sarfraz Khurshid, Darko Marinov
35th International Conference on Software Engineering - New Ideas and Emerging Results (ICSE NIER), 2013
Intuitive and Efficient Program Transformation: Drag-and-Drop Refactoring
Yun Young Lee, Nicholas Chen, Ralph Johnson
35th International Conference on Software Engineering (ICSE), 2013
Download source or the Eclipse Feature Patch | Project Webpage
Toward Dietary Assessment via Mobile Phone Video Cameras (paper)
Nicholas Chen, Yun Young Lee, Maurice Rabb, Bruce Schatz
American Medical Informatics Association Annual Symposium (AMIA), 2010
Feasibility of Long-term Monitoring of Everyday Health Through Smartphones
Nicholas Chen, Maurice Rabb, Yun Young Lee, Bruce Schatz, UIUC Technical Report, 2010
Personalized Implicit Health Monitors
Nicholas Chen, Yun Young Lee, Maurice Rabb, Bruce Schatz, UIUC Technical Report, 2010
Reducing the Costs of Bounded-Exhaustive Testing (paper)
Vilas Jagannath, Yun Young Lee, Brett Daniel, Darko Marinov
12th International Conference on Fundamental Approaches to Software Engineering (FASE), pages 171-185, 2009
Current Projects
Add Temporal Dimension to IDEs
History is a second-class object in modern IDEs. As such, many version control system tools for IDEs require programmers to switch context between programming and searching through commit history or manually switching versions. What if an IDEs have a temporal dimension that allows seamless integration of code from many different versions?
Drag-and-Drop Refactoring
Recent research shows that refactoring tools in intergrated development environments are underused and misused.
Many programmers find the tool invocation and configuration tedious and confusing.
Can refactoring tools be more intuitive and efficient? DNDRefactoring, a tool that allows
programmers to refactor their code by moving program elements around, eliminates the invocation difficulties and streamlines
the configuration processes. DNDRefactoring depends on programmers' understanding of their code structure and allows them to
perceive their code as a malleable entity. Programmers can simply select the program element they want to refactor (source)
and drag-and-drop it to its new location (target), and DNDRefactoring will infer the correct refactoring. Empirical evaluation
through surveys and controlled user studies demonstrates that
DNDRefactoring is intuitive, more efficient, and less error-prone
compared to traditional methods available in IDEs today. Our
results bolster the need for researchers and tool developers to
rethink the design of future refactoring tools.
Past Projects
Safe Medical Device Interaction Rules
The advent of computerized medical devices has resulted in better accuracy and increased safety for
patients and clinicians, yet medical accidents are still not uncommon. With the computerized medical
devices and their technical complexity, any given clinical environment is a composition of complex
computer systems. This introduces new form of risks, not only with the usage of a single device but
with the interactions of multiple devices, which increase exponentially with respect to the number
of devices. Even the most advanced medical devices fail to serve their purpose if their users cannot
ectively use them, or if their complexity deters the users.
Safe Medical Device Interaction Rule Language is an English-like configuration language for defining device interactions rules,
which makes it easier for non-programmers like clinicians and surgeons to configure a complex medical
system. The user-defined rules are then automatically and formally proven for its safety, by means
of a state machine and the reachability of safe states within it. The automatic checker ensures that
there is no error-by-omissions and conflicts between the rules.
Personal Health Instrumentation
This project began as a class project in the CS course "Healthcare Infrastructure" taught by Prof. Bruce Schatz and Dr. Richard Berlin.
This project was awarded $10,000 as a finalist for the CIMIT Prize for Primary Healthcare in 2010.
Current primary healthcare suffers from the single feature, single point-in-time syndrome. Typically, our vital signs
are measured only when we visit a primary care facility. Even when measured, they represent only a snapshot
of our general health at that moment alone — failing to capture the continuous spectrum in our lives, i.e. our everyday
health. Our general health is affected by our daily lifestyle choices. Without such measurements, primary
care physicians/professionals are limited in their ability to make informed and reliable recommendations
toward improving our health. For effective primary care to happen, we must involve both people and their
primary care physicians. We propose the following three-part solution:
1. Monitor: Use minimally-intrusive health monitors to continuously monitor important aspects of one’s lifestyle,
both quantitatively and qualitatively, to build a lifechart of individual’s health;
2. Measure: Use data analysis and visualization tools to examine a lifechart for early detection of health
issues based on deviations from normal and expected ranges;
3. Manage: Enable PCPs and patients to continuously monitor and measure changes in health outcomes
from any prescribed behavior modifications or treatments.