SEAgle

Effortless Software Evolution Analysis

The analysis of software evolution by means of mining public repositories has been established as one of the dominant approaches for empirical studies in software engineering. However, even the investigation of the simplest research question demands a mazy process involving installation and configuration of tools, climbing their learning curve and tedious collection of desired information. Acknowledging the need for effortless querying of remote repositories we introduce a Web-based one-click approach’ to perform software evolution analysis of Git projects.

The architecture of SEAgle is outlined in image bellow In the left hand side components offering core services are shown, such as the API taking care of communication with VCS and the API responsible for metrics. For the latter two components the architecture is highly extendible in the sense that a clear separation between abstraction and implementation has been adopted. The Software Evolution Analysis Engine, running in Java EE, exploits services provided by individual components and stores the calculated results in a MySql database. Moreover, the engine provides Web Services (SOAP/REST), which are accessed by the presentation tier in order to trigger the analyses and retrieve the results which are then displayed in the form of charts and tables.
Architecture and Employeed Technologies.

In order to minimize human intervention versions are automatically determined based on tags explicitly contained within the git repository. This is in alignment with common practices in software development where tags delineate different software releases. In case a project name is entered, it will be looked for in the already analyzed projects for which results are available. If the user types in a git URI, it is also being checked whether the corresponding repository has been analyzed. If not, the user request triggers the analysis.

T. Chaikalis, E.Ligu, G. Melas and A. Chatzigeorgiou, “SEAgle: Effortless Software Evolution Analysis”, 30th International Conference on Software Maintenance and Evolution (ICSME’2014), Tool Demonstration Track, Victoria, British Columbia, Canada, Sept. 28 – Oct. 3, 2014