1. Meta-Level Runtime Feature Awareness
for Java [short]
Andrzej Olszak, Martin Rytter, Bo Nørregaard Jørgensen
{ao, mlrj, bnj}@mmmi.sdu.dk
2. Motivating metaphor
Awareness of
Animals Humans own behavior
a.k.a.
Self-targeted
dynamic
analysis
3. Is your software a frog?
Feature location
Mapping features to code
Traceability links used by programmers
Program
Runtime
User Source code
events
Specifications
Programmer
of features
4. Is your software a frog?
Feature location
Mapping features to code
Traceability links used by programmers
Program
Runtime
User Source code
events
Runtime feature awareness:
Specifications The ability of a program to
Programmer
of features recognize and act upon executions
of its own features
5. JAwareness
Feature location + exposure of results to traced
program
Feature entry points are starting points of features
6. Feature-aware error reporting
Reproducing errors from error messages is hard
Print errors with names of features that caused them
Writing custom logger of System.err handler
7. Feature-aware program usage statistics
Understand how end-users use the program
Prioritize development efforts, improve usability
Listener + annotations – no probe methods needed
8. Feature-aware program adaptation
Adjust to user’s actions as they occur at runtime
Intelligent ‘tip of the day’, dynamically adaptable UI’s
9. Summary
Usage of reverse engineering information at runtime
by program themselves
Making programs recognize and act upon executions of
their own features
Proof-of-conceptimplementations at:
http://www.featureous.org/jawareness/