Meta-Level Runtime Feature Awareness
                          for Java [short]
            Andrzej Olszak, Martin Rytter, Bo Nørregaard Jørgensen
                                       {ao, mlrj, bnj}@mmmi.sdu.dk
Motivating metaphor

                               Awareness of
Animals               Humans   own behavior
                                   a.k.a.
                               Self-targeted
                                 dynamic
                                 analysis
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
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
JAwareness
 Feature location + exposure of results to traced
  program
 Feature entry points are starting points of features
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
Feature-aware program usage statistics
 Understand   how end-users use the program
 Prioritize development efforts, improve usability
 Listener + annotations – no probe methods needed
Feature-aware program adaptation
 Adjust  to user’s actions as they occur at runtime
 Intelligent ‘tip of the day’, dynamically adaptable UI’s
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/

Meta level runtime feature awareness for java

  • 1.
    Meta-Level Runtime FeatureAwareness 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 softwarea 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 softwarea 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 usagestatistics  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 ofreverse 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/