Abstract
The 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.
Similar content being viewed by others
References
Alnusair A, Zhao T (2011) Retrieving reusable software components using enhanced representation of domain knowledge. In: Recent trends in information reuse and integration. Springer, Wien
Ball T, Kim J, Porter A, Siy H (1997) If your version control system could talk. In: Proceedings of international workshop on process modelling and Empir Studies Softw Eng
Berners-Lee T, Fielding R, Masinter L (1998) RFC 2396: uniform resource identifiers (URI). IETF RFC. http://www.ietf.org/rfc/rfc2396.txt
Berners-Lee T, Hendler J, Lassila O (2001) The Semantic Web. Sci Am 284(5): 34–43
Bernstein A, Kaufmann E, Kaiser C, Kiefer C (2006) Ginseng: a guided input natural language search engine for querying ontologies. In: Jena User Conference
Bertoa M, Vallecillo A, Garcia F (2006) An ontology for software measurement. In: Ontologies for software engineering and software technology. Springer, Heidelberg
Bevan J, E James Whitehead J, Kim S, Godfrey MW (2005) Facilitating software evolution research with Kenyon. In: Proceedings of joint European software engineering conference and symposium on foundations of software engineering, pp 177–186
Chen YF, Gansner ER, Koutsofios E (1998) A C++ data model supporting reachability analysis and dead code detection. Trans Softw Eng 24(9): 682–694. doi:10.1109/32.713323
D’Ambros M, Gall HC, Lanza M, Pinzger M (2008) Analyzing software repositories to understand software evolution. In: Software evolution. Springer, Heidelberg
Dean M, Schreiber G (eds) (2004) OWL Web ontology language reference. W3C recommendation. http://www.w3.org/TR/owl-ref/
Devanbu P, Brachman R, Selfridge PG (1991) Lassie: a knowledge-based software information system. Commun ACM 34(5): 34–49. doi:10.1145/103167.103172
Dietrich J, Elgar C (2005) A formal description of design patterns using owl. In: Proceedings of Australian software engineering conference. doi:10.1109/ASWEC.2005.6
Durão FA, Vanderlei TA, Almeida ES, de L Meira SR (2008) Applying a semantic layer in a source code search tool. In: Proceedings of symposium on applied computing. doi:10.1145/1363686.1363952
Farrell J, Lausen H (2007) Semantic annotations for WSDL and XML schema. W3C recommendation. http://www.w3.org/TR/sawsdl/
Fielding RT (2000) Architectural styles and architectural styles and the design of network-based software architectures. PhD thesis, University of California, Irvine
Fischer M, Pinzger M, Gall H (2003) Populating a release history database from version control and bug tracking systems. In: Proceedings of international conference software maintenance, pp 23–32
Fluri B, Würsch M, Pinzger M, Gall H (2007) Change distilling: tree differencing for fine-grained source code change extraction. Trans Softw Eng 33(11): 725–743. doi:10.1109/TSE.2007.70731
Gall H, Hajek K, Jazayeri M (1998) Detection of logical coupling based on product release history. In: Proceedings of international conference software maintenance
Gall HC, Fluri B, Pinzger M (2009) Change analysis with Evolizer and ChangeDistiller. Software 26(1): 26–33
Ghezzi G, Gall H (2011) SOFAS: a lightweight architecture for software analysis as a service. In: Working conference software architecture, pp 93–102. doi:10.1109/WICSA.2011.21
Giger E, Pinzger M, Gall H (2010) Predicting the fix time of bugs. In: Proceedings of international workshop on recommendation system for software engineering. doi:10.1145/1808920.1808933
Gruber TR (1993) A translation approach to portable ontology specifications. Knowl Acquis 5(2): 199–220. doi:10.1006/knac.1993.1008
Gruninger M, Lee J (2002) Ontology applications and design. Commun ACM 45(2): 39–41
Hadley MJ (2009) Web application description language (wadl). W3C Member Submission. http://www.w3.org/Submission/wadl/
Hallett C, Scott D, Power R (2007) Composing questions through conceptual authoring. Comput Linguist 33: 105–133. doi:10.1162/coli.2007.33.1.105
Happel H, Korthaus A, Seedorf S, Tomczyk P (2006) KOntoR: an ontology-enabled approach to software reuse. In: Proceedings of international conference on software engineering and Knowledge engineering
Happel HJ, Seedorf S (2006) Applications of ontologies in software engineering. In: Proceedings of international workshop on semantic Web enabled software engineering
Hartig O, Kost M, Freytag JC (2008) Automatic component selection with semantic technologies. In: Proceedings of international workshop on semantic Web enabled software engineering
Hespos SJ, Spelke ES (2004) Conceptual precursors to language. Nature 430(6998): 453–456
Horrocks I, Patel-Schneider PF, Boley H, Tabet S, Grosof B, Dean M (2004) SWRL: a semantic web rule language combining OWL and RuleML. W3C Member Submission. http://www.w3.org/Submission/SWRL/
Hunt A, Thomas D (1999) The pragmatic programmer: from journeyman to master. Addison-Wesley, Boston
Hyland-Wood D, Carrington D, Kaplan S (2006) Toward a software maintenance methodology using semantic web techniques. In: Proceedings of international workshop on software evolution, pp 23–30. doi:10.1109/SOFTWARE-EVOLVABILITY.2006.16
Iqbal A, Ureche O, Hausenblas M, Tummarello G (2009) LD2SD: linked data driven software development. In: Proceedings of international conference on software engineering and knowledge engineering
Kagdi H, Collard ML, Maletic JI (2007) A survey and taxonomy of approaches for mining software repositories in the context of software evolution. J Softw Maint Evol 19: 77–131. doi:10.1002/smr.344
Keivanloo I, Roostapour L, Schugerl P, Rilling J (2010) Semantic Web-based source code search. In: Proceedings of international workshop on semantic Web enabled software engineering
Kiefer C, Bernstein A, Stocker M (2007a) The fundamentals of iSPARQL: a virtual triple approach for similarity-based semantic web tasks. In: Proceedings of international conference on semantic Web and Asian semantic Web conference
Kiefer C, Bernstein A, Tappolet J (2007b) Mining software repositories with iSPAROL and a software evolution ontology. In: Proceedings of international workshop on mining software repositories. doi:10.1109/MSR.2007.21
Kiefer C, Bernstein A, Locher A (2008) Adding data mining support to SPARQL via statistical relational learning methods. In: Proceedings of European semantic Web conference
Kim M, Sazawal V, Notkin D, Murphy G (2005) An empirical study of code clone genealogies. In: Proceedings of joint European software engineering conference and symposium on foundations of software engineering, doi:10.1145/1081706.1081737
Klyne G, Carroll JJ (eds) (2004) Resource description framework (RDF): concepts and abstract syntax. W3C Recommendation. http://www.w3.org/TR/2004/REC-rdf-schema-20040210/
Kupershmidt I, Su QJ, Grewal A, Sundaresh S, Halperin I, Flynn J, Shekar M, Wang H, Park J, Cui W, Wall GD, Wisotzkey R, Alag S, Akhtari S, Ronaghi M (2010) Ontology-based meta-analysis of global collections of high-throughput public data. PLoS ONE 5(9). doi:10.1371/journal.pone.0013066
Lanza M, Marinescu R, Ducasse S (2005) Object-oriented metrics in practice. Springer, Heidelberg
Lethbridge TC, Tichelaar S, Plödereder E (2004) The Dagstuhl middle metamodel: a schema for reverse engineering. Electron Notes Theor Comput Sci 94: 7–18
Müller HA, Klashinsky K (1988) Rigi-a system for programming-in-the-large. In: Proceedings of international conference on software engineering
Oberle D, Grimm S, Staab S (2009) An ontology for software. In: Handbook on ontologies in information systems, 2nd edn. Springer, Heidelberg. doi:10.1007/978-3-540-92673-3
Object Management Group (1998) XML metadata interchange (XMI). Technical Report OMG Document ad/98-10-05
Patel-Schneider PF, Hayes P, Horrocks I (eds) (2004) OWL Web ontology language semantics and abstract syntax. W3C Recommendation. http://www.w3.org/TR/owl-semantics/
Power R, Scott D, Evans R (1998) What you see is what you meant: direct knowledge editing with natural language feedback. In: Proceedings biennial European conference on artificial intelligence, pp 675–681
Prud’hommeaux E, Seaborne A (eds) (2008) SPARQL query language for RDF. W3C Recommendation. http://www.w3.org/TR/rdf-sparql-query/
Sillito J, Murphy GC, De Volder K (2006) Questions programmers ask during software evolution tasks. In: Proceedings of international symposium on foundations of software engineering, pp 23–34. doi:10.1145/1181775.1181779
Sirin E, Parsia B, Grau B, Kalyanpur A, Katz Y (2007) Pellet: a practical OWL-DL reasoner. J Web Semant 5(2): 51–53. doi:10.1016/j.websem.2007.03.004
Śliwerski J, Zimmermann T, Zeller A (2005) When do changes induce fixes? In: Proceedings of international workshop on mining software repositories, pp 1–5. doi:10.1145/1083142.1083147
Tappolet J (2008) Semantics-aware software project repositories. In: Proceedings of the ESWC’08 Ph.D. Symposium
Tichelaar S, Ducasse S, Demeyer S (2000) FAMIX and XMI. In: Proceedings of working conference on reverse engineering, p 296
Uschold M, Jasper R (1996) A framework for understanding and classifying ontology applications. In: Proceedings of international workshop on ontology and problem solving methods
Welty CA (1997) Augmenting abstract syntax trees for program understanding. In: Proceedings of international conference on automated software engineering. doi:10.1109/ASE.1997.632832
Winter A, Kullbach B, Riediger V (2002) An overview of the GXL graph exchange language. In: Diehl S (ed) Software visualization. Springer, Heidelberg, pp 324–336
Witte R, Zhang Y, Rilling J (2007) Empowering software maintainers with semantic web technologies. In: Proceedings of European semantic Web conference. doi:10.1007/978-3-540-72667-8_5
Würsch M, Ghezzi G, Reif G, Gall HC (2010a) Supporting developers with natural language queries. In: Proceedings of international conference on software engineering, pp 165–174. doi:10.1145/1806799.1806827
Würsch M, Reif G, Demeyer S, Gall HC (2010b) Fostering synergies: how semantic web technology could influence software repositories. In: Proceedings of international workshop on search-driven software development, pp 45–48. doi:10.1145/1809175.1809187
Yu L, Zhou J, Yi Y, Li P, Wang Q (2008) Ontology model-based static analysis on java programs. Comput Softw Appl. doi:10.1109/COMPSAC.2008.73
Author information
Authors and Affiliations
Corresponding author
Additional information
This work was supported by the Swiss National Science Foundation as part of the ProDoc “Enterprise Computing” (PDFMP2-122969) and the “Systems of Systems Analysis” (200020_132175) projects.
Rights and permissions
About this article
Cite this article
Würsch, M., Ghezzi, G., Hert, M. et al. SEON: a pyramid of ontologies for software evolution and its applications. Computing 94, 857–885 (2012). https://doi.org/10.1007/s00607-012-0204-1
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00607-012-0204-1