

The current granularity of changes Flota handles is at the method (advice) level, because we believe most regression tests focus on functionality at a method level instead of the inner details of method implementation. The anonymous pointcut is treated as a part of advice declaration, thus any changes to the anonymous pointcut body will result in the definition change of associated advice. Therefore, we assign names for each piece of advice manually according to their declaration sequences in the program. For this case, you can even define two identical advices in one aspect. Besides handling the technical issues like Local and Anonymous Class 3 and Initialize Block discussed in, a special case in Flota implementation is that the advice declaration is anonymous in AspectJ programs.

#Flotato download update#
And for the selected change that has prerequisites, Flota will first update the AST nodes of these dependent changes before updating the selected one. For some changes like AIC, Flota may replace AST nodes in more than one place. It first finds the AST node of method C.m() in the updated program version, then it replace the C.m() node in the original program with the updated one. For example, if Flota wants to apply an atomic change CM ( C.m() ) to the original program. When constructing the intermediate program versions, Flota replaces the corresponding AST node including its child nodes (or inserts new AST node) in old version with the edited AST node from the new AST version. Float uses the API exposed by the AJDT project to manipu- late the abstract syntax tree (AST) of AspectJ program. For example, a inter- type method needs to be deleted prior to the addition of a inter-type method in the same aspect with the same name, but different return type. However, certain orderings of dependencies handled by Flota are critical to the process of creating valid intermediate program versions. For dependencies defined in Rule 1 to 5, most of the orderings between changes is arbitrary. The semantic dependence rules defined in Section 3.2 are used by Flota to collect all the necessary prerequisites to form the Self-Contained change set. A Self-Contained atomic change set is the set which contains exactly all prerequisites of the selected changes together with their dependencies. first construct a Self-Contained atomic change set.
#Flotato download full#
Besides handling full Java language constructs as described in, Flota also handles most of the AspectJ language features. The main tasks that Flota performs are (1) to gather and order all prerequisites of the affecting changes and present them in a dependence tree format, (2) to create the Self- Contained atomic change set according to the programmer’s selection, and (3) to apply the Self-Contained change set to the original program to build a syntactically valid intermediate program version. It takes the atomic changes, affected tests and their affecting changes generated by Celadon as input. Like Celadon, Flota is also designed as an Eclipse plugin. Our fault locating tool Flota relies on Celadon for: (1) transform program changes into a set of atomic changes, (2) identifying the affected test cases, and (3) compute affecting changes for each affected test.
#Flotato download code#
It first decomposes the source code differences between two program versions into a set of atomic changes, and then automatically determine the affected program parts and affected tests. is a change impact analysis tool for AspectJ programs which is designed as an Eclipse plugin. Letterboxd is also available on the Chrome Web Store as a web app. You may not use our brand elements in any commercial endeavors without our express consent.įor use with Flotato or other single-site-browser apps: PNG If you need to use our logo (for example, to link to us or in editorial content), grab the appropriate file below, and please use it respectfully.
