Software Reuse Our work aims to automate some of the steps involved in writing specifications for a given implementation. This is achieved by reusing existing verified programs. For a given implementation, we aim to retrieve similar (analogous) verified code and then reapply the old specification to the new (similar) code. Of course, identifying similar source code is a huge part of our proposed solution.
Analogical Reasoning Compares two similar systems of information, identifying the detailed feature-by-feature similarities between them. Having identified the pre-existing similarities (and ensuring the similarity is sufficiently strong), we transfer the additional specification from the old solution to the new problem. Of course, we make appropriate adaptiations here too to make sure it all works.
In brief, we translate source code, via the Abstract Syntax Tree, into the Code Graph below. Then we perform graph mathcing between pairs of these code graphs. This allows us to transfer the old speicication to a new implementation.
The illustrative example playing (below) highlights the structural similarity between two analogous implementations of the same code.
Enter some C# source code into the box of the left and hit "Retrieve similar" (response times can be quite slow, so we do ask for your patience). If your code matches one of the implementations that contains a specification, you can to hit "Transfer specification" follow by the "Verify" button.
Thanks to Mihai and (free) Amazon Web Service we have a small demo for you to play with. This contains around 70 applications and 43,055 methods (around 600mb of data), a fraction of the 74,000,000 lines of C# code we use.
Felicia Halim, Fahrurrozi Rahman, Mihai Pitu, Daniella Grijincu, Rosemary Monahan & Diarmuid P. O'Donoghue. . Felicia, Fahrurrozi, Mihai, Daniela are all DESEM scholar students, Rosemary is a member of the Principles of Programming Research Group and Diarmuid is am a member of the Cognitive Science Research Group research group. Felicia Halim and Fahrurrozi Rahman have just joined the Aris project. Back to Diarmuid's page.Recent Student Prizes: Congratulation to Daniela on getting the Best Overall MSc Project at the DESEM Summer school and to Mihai in his Best Student award also at the 2013 summer school.
Copyright 2000 National University of Ireland, Maynooth.