• No results found

4.5 Tool Comparison

4.5.1 Feature Based Comparison

In the feature based as shown in Table 4.2 TrAM is compared with other trace analysis tools in terms of supported features and techniques. The criteria some of which are adapted from [28] and then extended for the tool comparison are as follows:

a. Trace Modelling b. Trace Filtration c. Trace Exploration d. Trace Modularization e. Categorization f. Granularity

g. System Interface View h. Trace Quantification

i. Trace to Source Code Mapping Trace Modelling

Trace modelling is an important feature that is necessary to represent the traces in a meaningful and un- derstandable manner by managing their excessive volume and size. Several ways are used to represent the traces such as a tree or a graph.

Trace Filtration

This feature is a complement of trace modelling and allows reduction or compression of the traces. The main intent of filtering is to remove some components of the traces in order to abstract out its content. In data collection, techniques are applied during the collection of traces both at the system or the component level. In the system level technique, a maintenance engineer is unaware of the methods used to develop a certain functionality. On the other hand, component level collection requires the engineer to know in advance about

the components they wish to instrument and analyse. Pattern matching technique involves the reduction of execution traces by grouping the similar patterns using a number of matching criteria such as setting a parameter or setting the depth at which traces should be compared. In sampling only a portion of the traces are selected for analysis using sampling parameters which pose threat when one setting may not work for another different sample. Architecture level filtering allows trace reduction by showing interaction among components at the architectural level instead of the objects and classes. However, the main drawback is that the technique is solely dependent on the presence of the system’s architecture.

Trace Exploration

Once the traces are structured in the main panel using trace modelling techniques they must be made usable to the users using exploration techniques so that they can navigate through the traces. Trace exploration at the basic level offers the engineers to scan through the structure using clicks, search, browse, and animate the components of the desired interests.

Trace Modularization

Besides the immense volume of traces, another problem which the developers encounter while analysing them is interpreting the textual representations containing a series of method calls. Modularization of the traces can far ease the process of understanding them especially when one wants to know which system use the segments of traces belong to. Moreover, further modularization based on events can also add enhanced meaningful information to locate which user interface activity the traces belong to.

Categorization

Categorization allows the maintenance engineers to study the content of the traces by clustering the method calls generated during the execution based on groups and active clones. This feature lets the engineers to get a more focused view of the components of the traces.

Granularity

Granularity signifies the levels at which systems can be viewed for analysis. Object and class level granularities can assist engineers to view a system’s implementation. Object level provides the scope for visualizing the interaction of method calls among the objects while class level on the other hand is a high-level representation of the classes implementing a particular feature.

User Interface View

Execution traces can be visualised using interaction diagrams such as graphs or trees. However, a live capture of the interface image on which an engineer is working can enhance the comprehension of a system’s implementation further. Screenshots corresponding an event can let the users grasp the system design easily.

Table 4.2: A Comparison of Trace Analysis Tools Based on Features (taken from [28]) and then extended

Trace Analysis Feature

Type Features Shim

ba[92] ISVis[37, 38] Ov ation[63] Jinsigh t[62] Program explorer[48] A VID[94, 28] Scene[44] Collab oration Bro wser[70] SEA T[30] T rAM Extra vis[15] Salah et al.[85] Trace Modelling Tree Structure X X X X X X X Graph X X X X X X Trace Filtering Data Collection X X X

Architecture Level Filtering X

Sampling X X

Pattern Matching X X X X X Trace Exploration Basic X X X X X X X X X X Trace Modularization

Segmentation by system use X X Segmentation by events X

Categorization Group X

Active Clone X

Granularity Object X X X X X

Class X X X X X X X X

System Interface View Snapshots X

Trace Behaviour Analysis Metrics X X X X Trace to Source code Mapping Source Code Viewer X X X X

Trace Quantification

One of the ways towards understanding the behaviour of components of a system is through studying the traces which can be achieved using a set of metrics. Metrics calculated on the execution traces, can allow engineers to analyse various properties such as CPU time, execution, and so on of the components that implemented a specific feature.

Trace to Source Code Mapping

The source code view helps the users to visualize the original code of the system in conjunction to the image and the invoked methods. The mapping allows the users to compare the method calls in the traces with their actual implementation in the source code. This way they can analyse which methods have been called and which ones did not. The users can also get an overview of the various branching such as if-else or case statements within the method block.

Related documents