SlideShare a Scribd company logo
ACEEE Int. J. on Control System and Instrumentation, Vol. 03, No. 01, Feb 2012



  Aspect-Oriented Instrumentation for Capturing Task-
                 Based Event Traces
                                                           Yonglei Tao
                                         School of Computing and Information Systems
                                     Grand Valley State University, Allendale, MI 49401, USA
                                                     Email: taoy@gvsu.edu

Abstract - User interface events provide valuable information           extract the relevant context along with event traces remains
about user behavior with respect to an application’s user               an open question [1, 3]. In this paper, we describe an approach
interface and therefore are considered as an important source           to investigate the use of the aspect-oriented technique with
of data for usability evaluation. Since usability evaluation is         assistance of localized instrumentation for capturing task-
based on tasks that users perform, it is crucial to capture user        based event traces.
interface events with sufficient information for task
                                                                            The rest of this paper is organized as follows. Section 2
identification. However, how to make it possible is still an
open question. We describe an approach to investigate the use
                                                                        identifies some problems with the lack of contextual
of the aspect-oriented technique with assistance of localized           information for a meaningful interpretation of event traces.
instrumentation to capture task-based event traces. We also             Section 3 describes an approach that allows relevant
present a proof-of-concept tool to demonstrate its effectiveness        information to be taken from an application to facilitate task
and discuss its limitations.                                            identification. Section 4 shows the structure of a proof-of-
                                                                        concept tool that is built according to this approach and
Index Terms - Software Engineering, Tool Support, Aspect-               section 5 discusses its effectiveness and limitations. Finally
Oriented Programming                                                    section 6 concludes this paper.
                          I. INTRODUCTION                                               II. CONTEXTUAL INFORMATION
    User interface development is an exploratory and                        AspectJ is an aspect-oriented extension to the Java
evolutionary process, driven largely by early and ongoing               programming language [9]. It provides syntactic constructs
usability evaluation [11]. Changes in the user interface of a           to specify crosscutting concerns. In AsepctJ, an aspect is
window-based application inevitably affect other components             composed of pointcuts and advices. A pointcut declares a
in the application. Evolution of window-based applications              set of well-defined points, referred to as join points, such as
imposes a challenge on tool support for usability evaluation.           a call to a method in an application. An advice is a piece of
    User interface events occur in a window-based application           code that defines actions at the advised joint points, for
and its run-time environment when the user interacts with               example, gathering certain information about those joint
the application via its user interface. Since such events               points. Once an application is compiled with one or more
provide valuable information about user behavior with                   aspects, additional behavior is integrated into the target
respect to the user interface, they are considered as an                application.
important source of data for usability evaluation [1]. A range
of techniques are available for tracing user interface events.
Instrumentation requires that the developer write code in
specific locations in the target application to capture the
needed information during execution. Instrumentation code
tends to be distributed throughout the application and
therefore is especially inflexible with an evolving application
[4, 5]. Recent work focuses on Aspect-Oriented Programming
(AOP) [3-8]. AOP offers an effective way to modularize
crosscutting concerns in an application, allowing the
developer to gather information from an application in a non-
intrusive manner [9]. As used for event tracing, it is highly                     Figure 1: An Aspect for Tracing Action Event
adaptable, but does not always obtain as much information                   Figure 1 shows the definition of an aspect that is intended
as needed.                                                              to identify the source of an action event when the
     Usability evaluation is to find out to what extent a user          actionPerformed() method of an action listener is executing.
interface allows users to accomplish their tasks effectively            If the user clicks the “Deposit” button in the user interface,
and efficiently. In order to support usability evaluation, it is        for example, it will display a string of “JButton Deposit
crucial to possess the ability to identify tasks and task               Clicked”. Since its definition is application-independent, this
sequences from event traces [2]. In most cases, task                    aspect can be used to trace action events for any Java
identification requires contextual information, but how to              application.
© 2012 ACEEE                                                       32
DOI: 01.IJCSI.03.01. 41
ACEEE Int. J. on Control System and Instrumentation, Vol. 03, No. 01, Feb 2012


    Likewise, aspects can be defined for tracing other types
of events. Using these aspects makes it possible to collect
event traces that result from steps taken by users in
completing their tasks. Here, the question is whether or not
the collected data is sufficient for indentifying user tasks.
    We use a window-based application in Java, called
AccountManager, as an example for further discussion.
Briefly, this application allows the user, that is, a bank
customer, to manage each of his/her bank accounts in a
separate window. In the window for an account, it displays
the account balance as a text and as a bar graph, and also
includes a text field and two buttons, where the former allows
the user to enter an amount and the latter to withdraw and
deposit the input amount, respectively. In addition, this
application shows the total assets held in all of the customer’s
accounts as a pie chart.


                                                                                 Figure 3: Sample Event Trace from Two Windows

                                                                                               III. OUR APPROACH
                                                                              As discussed above, task identification requires additional
                                                                         information beyond what the event tracing aspects are able
        Figure 2: Sample Event Trace from One Window                     to capture in an application-independent manner. Some
    Given in Figure 2 is an event trace captured from the                researchers propose to align data obtained by other methods,
AccountManager application by using the above-mentioned                  such as a video recording, with the automatically collected
aspects. We have removed timestamps and irrelevant                       data through timestamps to gain the contextual information
information from the raw data. Note that the only application-           [5, 10].
specific element in the sample data is the word “Deposit”; it
is a string that is associated with a command button and
extractable from an action event. But such a string is not
available to some other screen components, such as text fields.
     According to the sample data in Figure 2, we know that
the user was trying to make a deposit in an account; however,
we do not know which account he/she intended for. It is
difficult, if not impossible, to give a meaningful interpretation
to the collected data. Such a problem becomes more obvious
when the user works with more than one window at the same
time.
    Figure 3 shows an event trace that originates from user
actions on two windows; here, events from two different
tasks are interleaved. In the AccountManager application, a
window is created for an account and different windows are
different instances of the same window class. In this case,
tracing the current window is not particularly helpful either.                      Figure 4: Added Code in the Focus Listener
Clearly, events as such do not carry enough information on
                                                                            Our approach is to allow the application developer to
their own to allow their meaning to be properly interpreted. If
                                                                         augment certain elements of the target application, making
we cannot relate individual events according to what they
                                                                         the needed information extractable by the event tracing
are intended for, we won’t be able to identify user tasks and
                                                                         aspects. Whereas the needed information varies from
task sequences correctly.
                                                                         application to application, the locations where code
    AspectJ also offers the ability to extract information (i.e.,
                                                                         modifications take place are common to all of them.
class names and memory addresses) about the executing and
                                                                         Consequently, application-specific modifications are localized
affected objects at the advised joint points. But, it still falls
                                                                         and can be done with limited effort and in a consistent manner.
short of what is needed for task identification.
                                                                            Figure 4 shows a listener class for the focus event. It
                                                                         defines the focusGained() method to describe actions to be
                                                                         taken when the user moves the focus to a screen component.
© 2012 ACEEE                                                        33
DOI: 01.IJCSI.03.01.41
ACEEE Int. J. on Control System and Instrumentation, Vol. 03, No. 01, Feb 2012


Unlike a typical listener, it contains extra lines of code (i.e.,        application [1]. We developed a proof-of-concept tool to trace
those with gray background) that enables the toString()                  user interface events on the basis of our approach. Many
method to return information about the active component                  existing tools take aim at low-level events, but our focus is
and the intended bank account.                                           on events at the application level with the intent to facilitate
                                                                         task identification. Low-level events are extremely voluminous
                                                                         and rich in detail, whereas application-level events are more
                                                                         amenable to task-based analysis.
                                                                             Java IDE’s (Integrated Development Environments)
                                                                         provide powerful support for user interface implementation.
                                                                         For example, NetBeans allows the developer to select an event
                                                                         that one wants to handle from an event list and then specify
                                                                         the actions in an automatically generated method stub [12].
                                                                         Use of an IDE imposes considerable uniformity on structural
                                                                         characteristics for the application under development; hence,
          Figure 5: An Aspect for Tracing Focus Events
                                                                         making it more attractive to focus on application-level events.
    Figure 5 shows an aspect that describes what information
to capture when the FocusGained() method is executing on a
FocusHandler object. Here, the report() method, inherited
from AbstractTraceAspect, is responsible for accumulating
the collected data; its parameter includes the “this” object,
implying a call to the toStirng() method for the FocusHandler
object. As such, this aspect can be used to detect the
component that has received the focus.




   Figure 6: Sample Event Trace Resulting from Our Approach
    Figure 6 shows an event trace obtained from the
AccountManager application according to this approach. As
we can see, inclusion of the account information makes it
possible to obtain a better understanding on user actions
and also to relate individual events on the basis of their                       Figure 7: Structure of the Proof-Of-Concept Tool
common task. In case of interleaved events due to multi-                     Figure 7 shows the basic structure of this tool. Aspect
tasking, it is still possible to distinguish event traces on the         AbstractTraceAspect and class DataSpoolerClass
basis of tasks.                                                          encapsulate common event-tracing behavior, such as
    In Java, every class inherits the toString() method from             attaching a timestamp to each event, accumulating the
the common ancestor class Object. If the FocusHandler class              collected data, and generating a report. Other aspects are
does not override its toString() method, the                             defined to capture different types of events. Among these
FocusEventTraceAspect would capture the information                      aspects,           ActionEventTraceAspect                  and
provided by the default implementation of toString(), that is,           KeyAndFocusTraceAspect are to trace events that are
the hashcode of the current FocusHandler object in the form              triggered by user actions, and ViewUpdateTraceAspect,
of class-name@memory-address; although a hashcode is                     DialogTraceAspect, and ExceptionTraceAspect to trace
unique for every object, it is insufficient to serve for task            events that are generated by the target application in response
identification.                                                          to user actions.
                                                                             As a matter of fact, the sample data shown in Figure 6 is
                IV. A PROOF-OF-CONCEPT TOOL                              captured from the AccountManager application by using this
   User interface events are generated at various levels as              tool. Due to limited space, we omit detailed information about
natural products of the normal operations of a window-based              this tool.

© 2012 ACEEE                                                        34
DOI: 01.IJCSI.03.01. 41
ACEEE Int. J. on Control System and Instrumentation, Vol. 03, No. 01, Feb 2012


                          V. DISCUSSION                                                             VI. SUMMARY
    A fundamental problem with collecting event traces                       Our approach uses aspects to modularize the event
without contextual information is that developers have no                tracing capability and instrumentation to make contextual
way to answer the “why” behind the “what” when analyzing                 information extractable. Using the event tracing aspects with
the collected data [10]. However, there are no guidelines that           assistance of localized instrumentation paves the way for
developers can use to specify the relevant context in their              capturing task-based event traces. However, this approach
applications [3]. In this paper, we restrict ourselves to what is        is not a complete one without a suitable solution for data
needed to identify tasks and task sequences.                             analysis. Further research is underway.
    As reported in the literature, it seems to be inevitable to
involve the relevant context in the usability evaluation                                             REFERENCE
process. Some proposals require in-depth knowledge about
                                                                         [1] D. M. Hilbert and D. F. Redmiles, “Extracting Usability
the target application in order to define join points in the             Information from User Interface Events,” ACM Computing
event tracing aspects [6-8] and others make use of application-          Surveys, Vol. 32, No. 4, pp. 384-421, Dec. 2000.
specific information when post-processing the collected data             [2] M. Ivory and M. Hearst, “The State of the Art in Automating
[3-5]. As we can see, the former asks the application developer          Usability Evaluation of User Interfaces,” ACM Computing Survey,
to modify portions of the tool one uses and the latter asks              Vol. 33, No. 4, pp. 470-516, Dec. 2001.
the tool developer to make adjustments to the tool according             [3] G. Hartman and L. Bass, “Logging Events Crossing Architectural
to the target application. In either case, they need to have             Boundaries,” Proceedings of the 10 th IFIP TC13 International
sufficient knowledge about the code that other people create             Conference on Human-Computer Interaction (INTERACT ‘05),
                                                                         Rome, Italy, pp. 823-834, 2005.
and they might not be familiar with. In contrast, our approach
                                                                         [4] Y. Tao, “Toward Computer-Aided Usability Evaluation for
only asks the application developer to modify portions of                Evolving Interactive Software.” Proceedings of the International
their own code. Moreover, usability evaluation is a joint effort         Workshop on Reflection, AOP and Meta-Data for Software
of the user and the application developer; it is in the                  Evolution, the 21 st European Conference on Object-Oriented
developer’s interest to obtain sufficient usability data and             Programming (ECOOP ‘07), Berlin, Germany, 2007.
find out problematic areas for improvement. Hence, the                   [5] S. Bateman et al., “Interactive Usability Instrumentation,”
provision for the developer ’s involvement is not                        Proceedings of the ACM SIGCHI Symposium on Engineering
inappropriate.                                                           Interactive Computing Systems (EICS ’09), Pittsburgh, USA, pp.
    A potential limitation of our approach is its inability to           45-54, 2009.
                                                                         [6] A. M. Tarja and G. S. Moldovan, “Automatic Usability
capture some events that the target application is not intended
                                                                         Evaluation Using AOP,” Proceedings of 2006 IEEE International
to respond but are still valuable for usability evaluation [3].          Conference on Automation, Quality and Testing, Robotics, Los
Consider a scenario that the user selected several menus by              Alamitos, pp. 84-89, 2006.
mouse clicks without taking any action. Such a scenario may              [7] J. Tarby et al., “Trace-Based Usability Evaluation Using Aspect-
indicate that the user had some difficulty with deciding what            Oriented Programming and Agent-Based Software Architecture,”
to do next. One possible solution is to trace selected low-              Human-Centered Software Engineering, Human-Computer
level events in addition to those at the application level.              Interaction Series, Vol. 3, Springer, pp. 257-276, 2009.
    One issue with our approach is how to deal with the                  [8] A. Shekh and S. Tyerman, “An Aspect-Oriented Framework
evaluation-oriented code added by the developer when the                 for Event Capture and Usability Evaluation,” Communications in
                                                                         Computer and Information Science: Evaluation of Novel Approaches
target application is ready to use. Since there is no simple
                                                                         to Software Engineering, Vol. 69, Springer, pp. 107-119, 2010.
way to release the added code from the target application,               [9] R. Miles, “AspectJ Cookbook,” O’Reilly Media, Inc., 2005.
tool support for adding and removing code is necessary. On               [10] J. H. Kim et al., “Tracking Real-Time User Experience (TRUE):
the other hand, if usability evaluation is an on-going activity,         A Comprehensive Instrumentation Solution for Complex Systems,”
even in the operational stage, it is important to make sure              Proceedings of the 27th International Conference on Human Factors
that the added code won’t interfere with the normal use of               in Computing Systems (CHI ’08), ACM, pp. 443-451, 2008.
the target application.                                                  [11] R. J. Torres, “Practitioner’s Handbook for User Interface Design
                                                                         and Development,” Prentice-Hall, 2002.
                                                                         [12] NetBeans IDE, http://netbeans.org/.




© 2012 ACEEE                                                        35
DOI: 01.IJCSI.03.01. 41

More Related Content

What's hot

Software engg. pressman_ch-8
Software engg. pressman_ch-8Software engg. pressman_ch-8
Software engg. pressman_ch-8
Dhairya Joshi
 
Visualizing Object-oriented Software for Understanding and Documentation
Visualizing Object-oriented Software for Understanding and Documentation Visualizing Object-oriented Software for Understanding and Documentation
Visualizing Object-oriented Software for Understanding and Documentation
Ra'Fat Al-Msie'deen
 
3. use cases
3. use cases3. use cases
3. use cases
APU
 
Fakebuster fake news detection system using logistic regression technique i...
Fakebuster   fake news detection system using logistic regression technique i...Fakebuster   fake news detection system using logistic regression technique i...
Fakebuster fake news detection system using logistic regression technique i...
Conference Papers
 
Hidden Object Detection for Computer Vision Based Test Automation System
Hidden Object Detection for Computer Vision Based Test Automation SystemHidden Object Detection for Computer Vision Based Test Automation System
Hidden Object Detection for Computer Vision Based Test Automation System
Syeful Islam
 

What's hot (20)

Business Intelligence
Business Intelligence Business Intelligence
Business Intelligence
 
combinepdf
combinepdfcombinepdf
combinepdf
 
Ooad quest and ans
Ooad quest and ansOoad quest and ans
Ooad quest and ans
 
DESIGN AN AR APPLICATION IN FINDING PREFERRED DINING PLACE WITH SOCIAL NETWOR...
DESIGN AN AR APPLICATION IN FINDING PREFERRED DINING PLACE WITH SOCIAL NETWOR...DESIGN AN AR APPLICATION IN FINDING PREFERRED DINING PLACE WITH SOCIAL NETWOR...
DESIGN AN AR APPLICATION IN FINDING PREFERRED DINING PLACE WITH SOCIAL NETWOR...
 
Designing the Process of Stores Management for Implementing ERP in Manufactur...
Designing the Process of Stores Management for Implementing ERP in Manufactur...Designing the Process of Stores Management for Implementing ERP in Manufactur...
Designing the Process of Stores Management for Implementing ERP in Manufactur...
 
Chapter 7 agent-oriented software engineering ch7-agent methodology-agent met...
Chapter 7 agent-oriented software engineering ch7-agent methodology-agent met...Chapter 7 agent-oriented software engineering ch7-agent methodology-agent met...
Chapter 7 agent-oriented software engineering ch7-agent methodology-agent met...
 
Software engg. pressman_ch-8
Software engg. pressman_ch-8Software engg. pressman_ch-8
Software engg. pressman_ch-8
 
Visualizing Object-oriented Software for Understanding and Documentation
Visualizing Object-oriented Software for Understanding and Documentation Visualizing Object-oriented Software for Understanding and Documentation
Visualizing Object-oriented Software for Understanding and Documentation
 
AN APPROACH TO IMPROVEMENT THE USABILITY IN SOFTWARE PRODUCTS
AN APPROACH TO IMPROVEMENT THE USABILITY IN SOFTWARE PRODUCTSAN APPROACH TO IMPROVEMENT THE USABILITY IN SOFTWARE PRODUCTS
AN APPROACH TO IMPROVEMENT THE USABILITY IN SOFTWARE PRODUCTS
 
Abstraction and Automation: A Software Design Approach for Developing Secure ...
Abstraction and Automation: A Software Design Approach for Developing Secure ...Abstraction and Automation: A Software Design Approach for Developing Secure ...
Abstraction and Automation: A Software Design Approach for Developing Secure ...
 
Robot_Eye_Report
Robot_Eye_ReportRobot_Eye_Report
Robot_Eye_Report
 
3. use cases
3. use cases3. use cases
3. use cases
 
Review and analysis of machine learning and soft computing approaches for use...
Review and analysis of machine learning and soft computing approaches for use...Review and analysis of machine learning and soft computing approaches for use...
Review and analysis of machine learning and soft computing approaches for use...
 
Chapter 8 agent-oriented software engineering ch8-prometheus research methodo...
Chapter 8 agent-oriented software engineering ch8-prometheus research methodo...Chapter 8 agent-oriented software engineering ch8-prometheus research methodo...
Chapter 8 agent-oriented software engineering ch8-prometheus research methodo...
 
Software Engineering Large Practical coursework
Software Engineering Large Practical courseworkSoftware Engineering Large Practical coursework
Software Engineering Large Practical coursework
 
IRJET- Scalable Content Aware Collaborative Filtering for Location Recommenda...
IRJET- Scalable Content Aware Collaborative Filtering for Location Recommenda...IRJET- Scalable Content Aware Collaborative Filtering for Location Recommenda...
IRJET- Scalable Content Aware Collaborative Filtering for Location Recommenda...
 
IRJET- Sentimental Prediction of Users Perspective through Live Streaming : T...
IRJET- Sentimental Prediction of Users Perspective through Live Streaming : T...IRJET- Sentimental Prediction of Users Perspective through Live Streaming : T...
IRJET- Sentimental Prediction of Users Perspective through Live Streaming : T...
 
Fakebuster fake news detection system using logistic regression technique i...
Fakebuster   fake news detection system using logistic regression technique i...Fakebuster   fake news detection system using logistic regression technique i...
Fakebuster fake news detection system using logistic regression technique i...
 
Hidden Object Detection for Computer Vision Based Test Automation System
Hidden Object Detection for Computer Vision Based Test Automation SystemHidden Object Detection for Computer Vision Based Test Automation System
Hidden Object Detection for Computer Vision Based Test Automation System
 
Slides chapter 8
Slides chapter 8Slides chapter 8
Slides chapter 8
 

Similar to Aspect-Oriented Instrumentation for Capturing Task- Based Event Traces

Oosd shopping (1)
Oosd shopping (1)Oosd shopping (1)
Oosd shopping (1)
shaj13
 
Application for Data Sync Between Different geo Locations
Application for Data Sync Between Different geo LocationsApplication for Data Sync Between Different geo Locations
Application for Data Sync Between Different geo Locations
Mike Taylor
 

Similar to Aspect-Oriented Instrumentation for Capturing Task- Based Event Traces (20)

Android Application For Decentralized Family Locator
Android Application For Decentralized Family LocatorAndroid Application For Decentralized Family Locator
Android Application For Decentralized Family Locator
 
Oosd shopping (1)
Oosd shopping (1)Oosd shopping (1)
Oosd shopping (1)
 
Developing Web-Based Project Management Application for Event Organizer ABC
Developing Web-Based Project Management Application for Event Organizer ABCDeveloping Web-Based Project Management Application for Event Organizer ABC
Developing Web-Based Project Management Application for Event Organizer ABC
 
REGULARIZED FUZZY NEURAL NETWORKS TO AID EFFORT FORECASTING IN THE CONSTRUCTI...
REGULARIZED FUZZY NEURAL NETWORKS TO AID EFFORT FORECASTING IN THE CONSTRUCTI...REGULARIZED FUZZY NEURAL NETWORKS TO AID EFFORT FORECASTING IN THE CONSTRUCTI...
REGULARIZED FUZZY NEURAL NETWORKS TO AID EFFORT FORECASTING IN THE CONSTRUCTI...
 
Application for Data Sync Between Different geo Locations
Application for Data Sync Between Different geo LocationsApplication for Data Sync Between Different geo Locations
Application for Data Sync Between Different geo Locations
 
PHASE II.pptx
PHASE II.pptxPHASE II.pptx
PHASE II.pptx
 
SE-Lecture-4.pptx
SE-Lecture-4.pptxSE-Lecture-4.pptx
SE-Lecture-4.pptx
 
Human Machine Learning and Analysis
Human Machine Learning and AnalysisHuman Machine Learning and Analysis
Human Machine Learning and Analysis
 
A SOFTWARE REQUIREMENT ENGINEERING TECHNIQUE USING OOADA-RE AND CSC FOR IOT B...
A SOFTWARE REQUIREMENT ENGINEERING TECHNIQUE USING OOADA-RE AND CSC FOR IOT B...A SOFTWARE REQUIREMENT ENGINEERING TECHNIQUE USING OOADA-RE AND CSC FOR IOT B...
A SOFTWARE REQUIREMENT ENGINEERING TECHNIQUE USING OOADA-RE AND CSC FOR IOT B...
 
Survey Surfer : A Web Based Data Gathering and Analysis Application
Survey Surfer : A Web Based Data Gathering and Analysis ApplicationSurvey Surfer : A Web Based Data Gathering and Analysis Application
Survey Surfer : A Web Based Data Gathering and Analysis Application
 
SURVEY SURFER: A WEB BASED DATA GATHERING AND ANALYSIS APPLICATION
SURVEY SURFER: A WEB BASED DATA GATHERING AND ANALYSIS APPLICATIONSURVEY SURFER: A WEB BASED DATA GATHERING AND ANALYSIS APPLICATION
SURVEY SURFER: A WEB BASED DATA GATHERING AND ANALYSIS APPLICATION
 
Survey Surfer : A Web Based Data Gathering and Analysis Application
Survey Surfer : A Web Based Data Gathering and Analysis ApplicationSurvey Surfer : A Web Based Data Gathering and Analysis Application
Survey Surfer : A Web Based Data Gathering and Analysis Application
 
Asset Management Web Application
Asset Management Web ApplicationAsset Management Web Application
Asset Management Web Application
 
I03402059063
I03402059063I03402059063
I03402059063
 
Lq3620002008
Lq3620002008Lq3620002008
Lq3620002008
 
CRIME EXPLORATION AND FORECAST
CRIME EXPLORATION AND FORECASTCRIME EXPLORATION AND FORECAST
CRIME EXPLORATION AND FORECAST
 
Ems
EmsEms
Ems
 
IRJET- Contest Information Desk Android Application
IRJET-  	  Contest Information Desk Android ApplicationIRJET-  	  Contest Information Desk Android Application
IRJET- Contest Information Desk Android Application
 
Mvc architecture driven design and agile implementation of a web based softwa...
Mvc architecture driven design and agile implementation of a web based softwa...Mvc architecture driven design and agile implementation of a web based softwa...
Mvc architecture driven design and agile implementation of a web based softwa...
 
IRJET- A Detailed Analysis on Windows Event Log Viewer for Faster Root Ca...
IRJET-  	  A Detailed Analysis on Windows Event Log Viewer for Faster Root Ca...IRJET-  	  A Detailed Analysis on Windows Event Log Viewer for Faster Root Ca...
IRJET- A Detailed Analysis on Windows Event Log Viewer for Faster Root Ca...
 

More from IDES Editor

Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...
Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...
Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...
IDES Editor
 
Line Losses in the 14-Bus Power System Network using UPFC
Line Losses in the 14-Bus Power System Network using UPFCLine Losses in the 14-Bus Power System Network using UPFC
Line Losses in the 14-Bus Power System Network using UPFC
IDES Editor
 
Cloud Security and Data Integrity with Client Accountability Framework
Cloud Security and Data Integrity with Client Accountability FrameworkCloud Security and Data Integrity with Client Accountability Framework
Cloud Security and Data Integrity with Client Accountability Framework
IDES Editor
 
Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...
Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...
Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...
IDES Editor
 

More from IDES Editor (20)

Power System State Estimation - A Review
Power System State Estimation - A ReviewPower System State Estimation - A Review
Power System State Estimation - A Review
 
Artificial Intelligence Technique based Reactive Power Planning Incorporating...
Artificial Intelligence Technique based Reactive Power Planning Incorporating...Artificial Intelligence Technique based Reactive Power Planning Incorporating...
Artificial Intelligence Technique based Reactive Power Planning Incorporating...
 
Design and Performance Analysis of Genetic based PID-PSS with SVC in a Multi-...
Design and Performance Analysis of Genetic based PID-PSS with SVC in a Multi-...Design and Performance Analysis of Genetic based PID-PSS with SVC in a Multi-...
Design and Performance Analysis of Genetic based PID-PSS with SVC in a Multi-...
 
Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...
Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...
Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...
 
Line Losses in the 14-Bus Power System Network using UPFC
Line Losses in the 14-Bus Power System Network using UPFCLine Losses in the 14-Bus Power System Network using UPFC
Line Losses in the 14-Bus Power System Network using UPFC
 
Study of Structural Behaviour of Gravity Dam with Various Features of Gallery...
Study of Structural Behaviour of Gravity Dam with Various Features of Gallery...Study of Structural Behaviour of Gravity Dam with Various Features of Gallery...
Study of Structural Behaviour of Gravity Dam with Various Features of Gallery...
 
Assessing Uncertainty of Pushover Analysis to Geometric Modeling
Assessing Uncertainty of Pushover Analysis to Geometric ModelingAssessing Uncertainty of Pushover Analysis to Geometric Modeling
Assessing Uncertainty of Pushover Analysis to Geometric Modeling
 
Secure Multi-Party Negotiation: An Analysis for Electronic Payments in Mobile...
Secure Multi-Party Negotiation: An Analysis for Electronic Payments in Mobile...Secure Multi-Party Negotiation: An Analysis for Electronic Payments in Mobile...
Secure Multi-Party Negotiation: An Analysis for Electronic Payments in Mobile...
 
Selfish Node Isolation & Incentivation using Progressive Thresholds
Selfish Node Isolation & Incentivation using Progressive ThresholdsSelfish Node Isolation & Incentivation using Progressive Thresholds
Selfish Node Isolation & Incentivation using Progressive Thresholds
 
Various OSI Layer Attacks and Countermeasure to Enhance the Performance of WS...
Various OSI Layer Attacks and Countermeasure to Enhance the Performance of WS...Various OSI Layer Attacks and Countermeasure to Enhance the Performance of WS...
Various OSI Layer Attacks and Countermeasure to Enhance the Performance of WS...
 
Responsive Parameter based an AntiWorm Approach to Prevent Wormhole Attack in...
Responsive Parameter based an AntiWorm Approach to Prevent Wormhole Attack in...Responsive Parameter based an AntiWorm Approach to Prevent Wormhole Attack in...
Responsive Parameter based an AntiWorm Approach to Prevent Wormhole Attack in...
 
Cloud Security and Data Integrity with Client Accountability Framework
Cloud Security and Data Integrity with Client Accountability FrameworkCloud Security and Data Integrity with Client Accountability Framework
Cloud Security and Data Integrity with Client Accountability Framework
 
Genetic Algorithm based Layered Detection and Defense of HTTP Botnet
Genetic Algorithm based Layered Detection and Defense of HTTP BotnetGenetic Algorithm based Layered Detection and Defense of HTTP Botnet
Genetic Algorithm based Layered Detection and Defense of HTTP Botnet
 
Enhancing Data Storage Security in Cloud Computing Through Steganography
Enhancing Data Storage Security in Cloud Computing Through SteganographyEnhancing Data Storage Security in Cloud Computing Through Steganography
Enhancing Data Storage Security in Cloud Computing Through Steganography
 
Low Energy Routing for WSN’s
Low Energy Routing for WSN’sLow Energy Routing for WSN’s
Low Energy Routing for WSN’s
 
Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...
Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...
Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...
 
Rotman Lens Performance Analysis
Rotman Lens Performance AnalysisRotman Lens Performance Analysis
Rotman Lens Performance Analysis
 
Band Clustering for the Lossless Compression of AVIRIS Hyperspectral Images
Band Clustering for the Lossless Compression of AVIRIS Hyperspectral ImagesBand Clustering for the Lossless Compression of AVIRIS Hyperspectral Images
Band Clustering for the Lossless Compression of AVIRIS Hyperspectral Images
 
Microelectronic Circuit Analogous to Hydrogen Bonding Network in Active Site ...
Microelectronic Circuit Analogous to Hydrogen Bonding Network in Active Site ...Microelectronic Circuit Analogous to Hydrogen Bonding Network in Active Site ...
Microelectronic Circuit Analogous to Hydrogen Bonding Network in Active Site ...
 
Texture Unit based Monocular Real-world Scene Classification using SOM and KN...
Texture Unit based Monocular Real-world Scene Classification using SOM and KN...Texture Unit based Monocular Real-world Scene Classification using SOM and KN...
Texture Unit based Monocular Real-world Scene Classification using SOM and KN...
 

Recently uploaded

Recently uploaded (20)

Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 

Aspect-Oriented Instrumentation for Capturing Task- Based Event Traces

  • 1. ACEEE Int. J. on Control System and Instrumentation, Vol. 03, No. 01, Feb 2012 Aspect-Oriented Instrumentation for Capturing Task- Based Event Traces Yonglei Tao School of Computing and Information Systems Grand Valley State University, Allendale, MI 49401, USA Email: taoy@gvsu.edu Abstract - User interface events provide valuable information extract the relevant context along with event traces remains about user behavior with respect to an application’s user an open question [1, 3]. In this paper, we describe an approach interface and therefore are considered as an important source to investigate the use of the aspect-oriented technique with of data for usability evaluation. Since usability evaluation is assistance of localized instrumentation for capturing task- based on tasks that users perform, it is crucial to capture user based event traces. interface events with sufficient information for task The rest of this paper is organized as follows. Section 2 identification. However, how to make it possible is still an open question. We describe an approach to investigate the use identifies some problems with the lack of contextual of the aspect-oriented technique with assistance of localized information for a meaningful interpretation of event traces. instrumentation to capture task-based event traces. We also Section 3 describes an approach that allows relevant present a proof-of-concept tool to demonstrate its effectiveness information to be taken from an application to facilitate task and discuss its limitations. identification. Section 4 shows the structure of a proof-of- concept tool that is built according to this approach and Index Terms - Software Engineering, Tool Support, Aspect- section 5 discusses its effectiveness and limitations. Finally Oriented Programming section 6 concludes this paper. I. INTRODUCTION II. CONTEXTUAL INFORMATION User interface development is an exploratory and AspectJ is an aspect-oriented extension to the Java evolutionary process, driven largely by early and ongoing programming language [9]. It provides syntactic constructs usability evaluation [11]. Changes in the user interface of a to specify crosscutting concerns. In AsepctJ, an aspect is window-based application inevitably affect other components composed of pointcuts and advices. A pointcut declares a in the application. Evolution of window-based applications set of well-defined points, referred to as join points, such as imposes a challenge on tool support for usability evaluation. a call to a method in an application. An advice is a piece of User interface events occur in a window-based application code that defines actions at the advised joint points, for and its run-time environment when the user interacts with example, gathering certain information about those joint the application via its user interface. Since such events points. Once an application is compiled with one or more provide valuable information about user behavior with aspects, additional behavior is integrated into the target respect to the user interface, they are considered as an application. important source of data for usability evaluation [1]. A range of techniques are available for tracing user interface events. Instrumentation requires that the developer write code in specific locations in the target application to capture the needed information during execution. Instrumentation code tends to be distributed throughout the application and therefore is especially inflexible with an evolving application [4, 5]. Recent work focuses on Aspect-Oriented Programming (AOP) [3-8]. AOP offers an effective way to modularize crosscutting concerns in an application, allowing the developer to gather information from an application in a non- intrusive manner [9]. As used for event tracing, it is highly Figure 1: An Aspect for Tracing Action Event adaptable, but does not always obtain as much information Figure 1 shows the definition of an aspect that is intended as needed. to identify the source of an action event when the Usability evaluation is to find out to what extent a user actionPerformed() method of an action listener is executing. interface allows users to accomplish their tasks effectively If the user clicks the “Deposit” button in the user interface, and efficiently. In order to support usability evaluation, it is for example, it will display a string of “JButton Deposit crucial to possess the ability to identify tasks and task Clicked”. Since its definition is application-independent, this sequences from event traces [2]. In most cases, task aspect can be used to trace action events for any Java identification requires contextual information, but how to application. © 2012 ACEEE 32 DOI: 01.IJCSI.03.01. 41
  • 2. ACEEE Int. J. on Control System and Instrumentation, Vol. 03, No. 01, Feb 2012 Likewise, aspects can be defined for tracing other types of events. Using these aspects makes it possible to collect event traces that result from steps taken by users in completing their tasks. Here, the question is whether or not the collected data is sufficient for indentifying user tasks. We use a window-based application in Java, called AccountManager, as an example for further discussion. Briefly, this application allows the user, that is, a bank customer, to manage each of his/her bank accounts in a separate window. In the window for an account, it displays the account balance as a text and as a bar graph, and also includes a text field and two buttons, where the former allows the user to enter an amount and the latter to withdraw and deposit the input amount, respectively. In addition, this application shows the total assets held in all of the customer’s accounts as a pie chart. Figure 3: Sample Event Trace from Two Windows III. OUR APPROACH As discussed above, task identification requires additional information beyond what the event tracing aspects are able Figure 2: Sample Event Trace from One Window to capture in an application-independent manner. Some Given in Figure 2 is an event trace captured from the researchers propose to align data obtained by other methods, AccountManager application by using the above-mentioned such as a video recording, with the automatically collected aspects. We have removed timestamps and irrelevant data through timestamps to gain the contextual information information from the raw data. Note that the only application- [5, 10]. specific element in the sample data is the word “Deposit”; it is a string that is associated with a command button and extractable from an action event. But such a string is not available to some other screen components, such as text fields. According to the sample data in Figure 2, we know that the user was trying to make a deposit in an account; however, we do not know which account he/she intended for. It is difficult, if not impossible, to give a meaningful interpretation to the collected data. Such a problem becomes more obvious when the user works with more than one window at the same time. Figure 3 shows an event trace that originates from user actions on two windows; here, events from two different tasks are interleaved. In the AccountManager application, a window is created for an account and different windows are different instances of the same window class. In this case, tracing the current window is not particularly helpful either. Figure 4: Added Code in the Focus Listener Clearly, events as such do not carry enough information on Our approach is to allow the application developer to their own to allow their meaning to be properly interpreted. If augment certain elements of the target application, making we cannot relate individual events according to what they the needed information extractable by the event tracing are intended for, we won’t be able to identify user tasks and aspects. Whereas the needed information varies from task sequences correctly. application to application, the locations where code AspectJ also offers the ability to extract information (i.e., modifications take place are common to all of them. class names and memory addresses) about the executing and Consequently, application-specific modifications are localized affected objects at the advised joint points. But, it still falls and can be done with limited effort and in a consistent manner. short of what is needed for task identification. Figure 4 shows a listener class for the focus event. It defines the focusGained() method to describe actions to be taken when the user moves the focus to a screen component. © 2012 ACEEE 33 DOI: 01.IJCSI.03.01.41
  • 3. ACEEE Int. J. on Control System and Instrumentation, Vol. 03, No. 01, Feb 2012 Unlike a typical listener, it contains extra lines of code (i.e., application [1]. We developed a proof-of-concept tool to trace those with gray background) that enables the toString() user interface events on the basis of our approach. Many method to return information about the active component existing tools take aim at low-level events, but our focus is and the intended bank account. on events at the application level with the intent to facilitate task identification. Low-level events are extremely voluminous and rich in detail, whereas application-level events are more amenable to task-based analysis. Java IDE’s (Integrated Development Environments) provide powerful support for user interface implementation. For example, NetBeans allows the developer to select an event that one wants to handle from an event list and then specify the actions in an automatically generated method stub [12]. Use of an IDE imposes considerable uniformity on structural characteristics for the application under development; hence, Figure 5: An Aspect for Tracing Focus Events making it more attractive to focus on application-level events. Figure 5 shows an aspect that describes what information to capture when the FocusGained() method is executing on a FocusHandler object. Here, the report() method, inherited from AbstractTraceAspect, is responsible for accumulating the collected data; its parameter includes the “this” object, implying a call to the toStirng() method for the FocusHandler object. As such, this aspect can be used to detect the component that has received the focus. Figure 6: Sample Event Trace Resulting from Our Approach Figure 6 shows an event trace obtained from the AccountManager application according to this approach. As we can see, inclusion of the account information makes it possible to obtain a better understanding on user actions and also to relate individual events on the basis of their Figure 7: Structure of the Proof-Of-Concept Tool common task. In case of interleaved events due to multi- Figure 7 shows the basic structure of this tool. Aspect tasking, it is still possible to distinguish event traces on the AbstractTraceAspect and class DataSpoolerClass basis of tasks. encapsulate common event-tracing behavior, such as In Java, every class inherits the toString() method from attaching a timestamp to each event, accumulating the the common ancestor class Object. If the FocusHandler class collected data, and generating a report. Other aspects are does not override its toString() method, the defined to capture different types of events. Among these FocusEventTraceAspect would capture the information aspects, ActionEventTraceAspect and provided by the default implementation of toString(), that is, KeyAndFocusTraceAspect are to trace events that are the hashcode of the current FocusHandler object in the form triggered by user actions, and ViewUpdateTraceAspect, of class-name@memory-address; although a hashcode is DialogTraceAspect, and ExceptionTraceAspect to trace unique for every object, it is insufficient to serve for task events that are generated by the target application in response identification. to user actions. As a matter of fact, the sample data shown in Figure 6 is IV. A PROOF-OF-CONCEPT TOOL captured from the AccountManager application by using this User interface events are generated at various levels as tool. Due to limited space, we omit detailed information about natural products of the normal operations of a window-based this tool. © 2012 ACEEE 34 DOI: 01.IJCSI.03.01. 41
  • 4. ACEEE Int. J. on Control System and Instrumentation, Vol. 03, No. 01, Feb 2012 V. DISCUSSION VI. SUMMARY A fundamental problem with collecting event traces Our approach uses aspects to modularize the event without contextual information is that developers have no tracing capability and instrumentation to make contextual way to answer the “why” behind the “what” when analyzing information extractable. Using the event tracing aspects with the collected data [10]. However, there are no guidelines that assistance of localized instrumentation paves the way for developers can use to specify the relevant context in their capturing task-based event traces. However, this approach applications [3]. In this paper, we restrict ourselves to what is is not a complete one without a suitable solution for data needed to identify tasks and task sequences. analysis. Further research is underway. As reported in the literature, it seems to be inevitable to involve the relevant context in the usability evaluation REFERENCE process. Some proposals require in-depth knowledge about [1] D. M. Hilbert and D. F. Redmiles, “Extracting Usability the target application in order to define join points in the Information from User Interface Events,” ACM Computing event tracing aspects [6-8] and others make use of application- Surveys, Vol. 32, No. 4, pp. 384-421, Dec. 2000. specific information when post-processing the collected data [2] M. Ivory and M. Hearst, “The State of the Art in Automating [3-5]. As we can see, the former asks the application developer Usability Evaluation of User Interfaces,” ACM Computing Survey, to modify portions of the tool one uses and the latter asks Vol. 33, No. 4, pp. 470-516, Dec. 2001. the tool developer to make adjustments to the tool according [3] G. Hartman and L. Bass, “Logging Events Crossing Architectural to the target application. In either case, they need to have Boundaries,” Proceedings of the 10 th IFIP TC13 International sufficient knowledge about the code that other people create Conference on Human-Computer Interaction (INTERACT ‘05), Rome, Italy, pp. 823-834, 2005. and they might not be familiar with. In contrast, our approach [4] Y. Tao, “Toward Computer-Aided Usability Evaluation for only asks the application developer to modify portions of Evolving Interactive Software.” Proceedings of the International their own code. Moreover, usability evaluation is a joint effort Workshop on Reflection, AOP and Meta-Data for Software of the user and the application developer; it is in the Evolution, the 21 st European Conference on Object-Oriented developer’s interest to obtain sufficient usability data and Programming (ECOOP ‘07), Berlin, Germany, 2007. find out problematic areas for improvement. Hence, the [5] S. Bateman et al., “Interactive Usability Instrumentation,” provision for the developer ’s involvement is not Proceedings of the ACM SIGCHI Symposium on Engineering inappropriate. Interactive Computing Systems (EICS ’09), Pittsburgh, USA, pp. A potential limitation of our approach is its inability to 45-54, 2009. [6] A. M. Tarja and G. S. Moldovan, “Automatic Usability capture some events that the target application is not intended Evaluation Using AOP,” Proceedings of 2006 IEEE International to respond but are still valuable for usability evaluation [3]. Conference on Automation, Quality and Testing, Robotics, Los Consider a scenario that the user selected several menus by Alamitos, pp. 84-89, 2006. mouse clicks without taking any action. Such a scenario may [7] J. Tarby et al., “Trace-Based Usability Evaluation Using Aspect- indicate that the user had some difficulty with deciding what Oriented Programming and Agent-Based Software Architecture,” to do next. One possible solution is to trace selected low- Human-Centered Software Engineering, Human-Computer level events in addition to those at the application level. Interaction Series, Vol. 3, Springer, pp. 257-276, 2009. One issue with our approach is how to deal with the [8] A. Shekh and S. Tyerman, “An Aspect-Oriented Framework evaluation-oriented code added by the developer when the for Event Capture and Usability Evaluation,” Communications in Computer and Information Science: Evaluation of Novel Approaches target application is ready to use. Since there is no simple to Software Engineering, Vol. 69, Springer, pp. 107-119, 2010. way to release the added code from the target application, [9] R. Miles, “AspectJ Cookbook,” O’Reilly Media, Inc., 2005. tool support for adding and removing code is necessary. On [10] J. H. Kim et al., “Tracking Real-Time User Experience (TRUE): the other hand, if usability evaluation is an on-going activity, A Comprehensive Instrumentation Solution for Complex Systems,” even in the operational stage, it is important to make sure Proceedings of the 27th International Conference on Human Factors that the added code won’t interfere with the normal use of in Computing Systems (CHI ’08), ACM, pp. 443-451, 2008. the target application. [11] R. J. Torres, “Practitioner’s Handbook for User Interface Design and Development,” Prentice-Hall, 2002. [12] NetBeans IDE, http://netbeans.org/. © 2012 ACEEE 35 DOI: 01.IJCSI.03.01. 41