SEON: a pyramid of ontologies for software evolution and its applications

AbstractThe Semantic Web provides a standardized, well-established framework to define and work with ontologies. It is especially apt for machine processing. However, researchers in the field of software evolution have not really taken advantage of that so far. In this paper, we address the potential of representing software evolution knowledge with ontologies and Semantic Web technology, such as Linked Data and automated reasoning. We present Seon, a pyramid of ontologies for software evolution, which describes stakeholders, their activities, artifacts they create, and the relations among all of them. We show the use of evolution-specific ontologies for establishing a shared taxonomy of software analysis services, for defining extensible meta-models, for explicitly describing relationships among artifacts, and for linking data such as code structures, issues (change requests), bugs, and basically any changes made to a system over time. For validation, we discuss three different approaches, which are backed by Seon and enable semantically enriched software evolution analysis. These techniques have been fully implemented as tools and cover software analysis with web services, a natural language query interface for developers, and large-scale software visualization.

[1]  Michael Hausenblas,et al.  LD2SD: Linked Data Driven Software Development , 2009, SEKE.

[2]  Harald C. Gall,et al.  Detection of logical coupling based on product release history , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[3]  Harald C. Gall,et al.  Predicting the fix time of bugs , 2010, RSSE '10.

[4]  Gerald Reif,et al.  Supporting developers with natural language queries , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[5]  Olaf Hartig,et al.  Automatic Component Selection with Semantic Technologies , 2008 .

[6]  Huajun Chen,et al.  The Semantic Web , 2011, Lecture Notes in Computer Science.

[7]  Gerald Reif,et al.  Fostering synergies: how semantic web technology could influence software repositories , 2010, SUITE '10.

[8]  Roy Fielding,et al.  Architectural Styles and the Design of Network-based Software Architectures"; Doctoral dissertation , 2000 .

[9]  E. Prud hommeaux,et al.  SPARQL query language for RDF , 2011 .

[10]  M. Ronaghi,et al.  Ontology-Based Meta-Analysis of Global Collections of High-Throughput Public Data , 2010, PloS one.

[11]  Jonas Tappolet,et al.  Semantics-aware Software Project Repositories , 2008 .

[12]  Richard Power,et al.  What You See Is What You Meant: direct knowledge editing with natural language feedback , 1998, ECAI.

[13]  Yarden Katz,et al.  Pellet: A practical OWL-DL reasoner , 2007, J. Web Semant..

[14]  Marc J. Hadley,et al.  Web application description language (WADL) , 2006 .

[15]  Richard Power,et al.  Composing Questions through Conceptual Authoring , 2007, CL.

[16]  Michael W. Godfrey,et al.  Facilitating software evolution research with kenyon , 2005, ESEC/FSE-13.

[17]  Michele Lanza,et al.  3 Analysing Software Repositories to Understand Software Evolution , 2008 .

[18]  Steffen Staab,et al.  An Ontology for Software , 2009, Handbook on Ontologies.

[19]  Harald C. Gall,et al.  Analysing Software Repositories to Understand Software Evolution , 2008, Software Evolution.

[20]  J. Farrell,et al.  Semantic Annotations for WSDL and XML Schema , 2007 .

[21]  Iman Keivanloo,et al.  SE-CodeSearch: A scalable Semantic Web-based source code search infrastructure , 2010, 2010 IEEE International Conference on Software Maintenance.

[22]  Abraham Bernstein,et al.  GINO - A Guided Input Natural Language Ontology Editor , 2006, SEMWEB.

[23]  Axel Korthaus,et al.  KOntoR: An Ontology-enabled Approach to Software Reuse , 2006, SEKE.

[24]  Gail C. Murphy,et al.  Questions programmers ask during software evolution tasks , 2006, SIGSOFT '06/FSE-14.

[25]  Stefan Seedorf,et al.  Applications of Ontologies in Software Engineering , 2006 .

[26]  Jeremy J. Carroll,et al.  Resource description framework (rdf) concepts and abstract syntax , 2003 .

[27]  Hausi A. Müller,et al.  Rigi: a system for programming-in-the-large , 1988, Proceedings. [1989] 11th International Conference on Software Engineering.

[28]  H. Lan,et al.  SWRL : A semantic Web rule language combining OWL and ruleML , 2004 .

[29]  Andreas Winter,et al.  An Overview of the GXL Graph Exchange Language , 2001, Software Visualization.

[30]  Thomas R. Gruber,et al.  A translation approach to portable ontology specifications , 1993, Knowl. Acquis..

[31]  Premkumar T. Devanbu,et al.  LaSSIE: a knowledge-based software information system , 1990, [1990] Proceedings. 12th International Conference on Software Engineering.

[32]  Steffen Staab,et al.  Handbook on Ontologies in Information Systems , 2003 .

[33]  Antonio Vallecillo,et al.  An Ontology for Software Measurement , 2006, Ontologies for Software Engineering and Software Technology.

[34]  David Thomas,et al.  The Pragmatic Programmer: From Journeyman to Master , 1999 .

[35]  Abraham Bernstein,et al.  The Fundamentals of iSPARQL: A Virtual Triple Approach for Similarity-Based Semantic Web Tasks , 2007, ISWC/ASWC.

[36]  A. Bernstein,et al.  Ginseng : A Guided Input Natural Language Search Engine for Querying Ontologies , 2006 .

[37]  Tian Zhao,et al.  Retrieving Reusable Software Components Using Enhanced Representation of Domain Knowledge , 2012 .

[38]  Harvey Siy,et al.  If your ver-sion control system could talk , 1997 .

[39]  Miryung Kim,et al.  An empirical study of code clone genealogies , 2005, ESEC/FSE-13.

[40]  Frederico Araújo Durão,et al.  Applying a semantic layer in a source code search tool , 2008, SAC '08.

[41]  Harald C. Gall,et al.  Change Distilling:Tree Differencing for Fine-Grained Source Code Change Extraction , 2007, IEEE Transactions on Software Engineering.

[42]  Harald C. Gall,et al.  SOFAS: A Lightweight Architecture for Software Analysis as a Service , 2011, 2011 Ninth Working IEEE/IFIP Conference on Software Architecture.

[43]  Aviel D. Rubin,et al.  Security considerations for remote electronic voting , 2002, CACM.

[44]  L. Stein,et al.  OWL Web Ontology Language - Reference , 2004 .

[45]  Christopher A. Welty,et al.  Augmenting abstract syntax trees for program understanding , 1997, Proceedings 12th IEEE International Conference Automated Software Engineering.

[46]  Abraham Bernstein,et al.  Querying the Semantic Web with Ginseng: A Guided Input Natural Language Search Engine , 2009 .

[47]  Timothy Lethbridge,et al.  The Dagstuhl Middle Metamodel: A Schema For Reverse Engineering , 2004, ateM.

[48]  Andreas Zeller,et al.  When do changes induce fixes? , 2005, ACM SIGSOFT Softw. Eng. Notes.

[49]  Stéphane Ducasse,et al.  Object-Oriented Metrics in Practice , 2005 .

[50]  Ian Horrocks,et al.  OWL Web Ontology Language Reference-W3C Recommen-dation , 2004 .

[51]  Jens Dietrich,et al.  A formal description of design patterns using OWL , 2005, 2005 Australian Software Engineering Conference.

[52]  Emden R. Gansner,et al.  A C++ data model supporting reachability analysis and dead code detection , 1997, ESEC '97/FSE-5.

[53]  Jonathan I. Maletic,et al.  Journal of Software Maintenance and Evolution: Research and Practice Survey a Survey and Taxonomy of Approaches for Mining Software Repositories in the Context of Software Evolution , 2022 .

[54]  Roy T. Fielding,et al.  Uniform Resource Identifiers (URI): Generic Syntax , 1998, RFC.

[55]  Michael Gruninger,et al.  ONTOLOGY Applications and Design , 2002 .

[56]  Susan J. Hespos,et al.  Conceptual precursors to language , 2004, Nature.

[57]  Juergen Rilling,et al.  Semantic Web-based Source Code Search , 2010 .

[58]  Abraham Bernstein,et al.  Mining Software Repositories with iSPAROL and a Software Evolution Ontology , 2007, Fourth International Workshop on Mining Software Repositories (MSR'07:ICSE Workshops 2007).

[59]  Mike Uschold,et al.  A Framework for Understanding and Classifying Ontology Applications , 1999 .

[60]  Harald C. Gall,et al.  Change Analysis with Evolizer and ChangeDistiller , 2009, IEEE Software.

[61]  G Stix,et al.  The mice that warred. , 2001, Scientific American.

[62]  Yonggang Zhang,et al.  Empowering Software Maintainers with Semantic Web Technologies , 2007, ESWC.

[63]  Jun Zhou,et al.  Ontology Model-Based Static Analysis on Java Programs , 2008, 2008 32nd Annual IEEE International Computer Software and Applications Conference.

[64]  D. Hyland-Wood,et al.  Toward a Software Maintenance Methodology using Semantic Web Techniques , 2006, 2006 Second International IEEE Workshop on Software Evolvability (SE'06).

[65]  Harald C. Gall,et al.  Populating a Release History Database from version control and bug tracking systems , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[66]  Stéphane Ducasse,et al.  FAMIX and XMI , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[67]  Abraham Bernstein,et al.  Adding Data Mining Support to SPARQL Via Statistical Relational Learning Methods , 2008, ESWC.