Log in

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

  • Published:
Computing Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Subscribe and save

Springer+ Basic
EUR 32.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or Ebook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. 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

  2. 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

  3. Berners-Lee T, Fielding R, Masinter L (1998) RFC 2396: uniform resource identifiers (URI). IETF RFC. http://www.ietf.org/rfc/rfc2396.txt

  4. Berners-Lee T, Hendler J, Lassila O (2001) The Semantic Web. Sci Am 284(5): 34–43

    Article  Google Scholar 

  5. Bernstein A, Kaufmann E, Kaiser C, Kiefer C (2006) Ginseng: a guided input natural language search engine for querying ontologies. In: Jena User Conference

  6. Bertoa M, Vallecillo A, Garcia F (2006) An ontology for software measurement. In: Ontologies for software engineering and software technology. Springer, Heidelberg

  7. 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

  8. 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

    Article  Google Scholar 

  9. D’Ambros M, Gall HC, Lanza M, Pinzger M (2008) Analyzing software repositories to understand software evolution. In: Software evolution. Springer, Heidelberg

  10. Dean M, Schreiber G (eds) (2004) OWL Web ontology language reference. W3C recommendation. http://www.w3.org/TR/owl-ref/

  11. 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

    Article  Google Scholar 

  12. 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

  13. 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

  14. Farrell J, Lausen H (2007) Semantic annotations for WSDL and XML schema. W3C recommendation. http://www.w3.org/TR/sawsdl/

  15. Fielding RT (2000) Architectural styles and architectural styles and the design of network-based software architectures. PhD thesis, University of California, Irvine

  16. 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

  17. 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

    Article  Google Scholar 

  18. Gall H, Hajek K, Jazayeri M (1998) Detection of logical coupling based on product release history. In: Proceedings of international conference software maintenance

  19. Gall HC, Fluri B, Pinzger M (2009) Change analysis with Evolizer and ChangeDistiller. Software 26(1): 26–33

    Article  Google Scholar 

  20. 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

  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

  22. Gruber TR (1993) A translation approach to portable ontology specifications. Knowl Acquis 5(2): 199–220. doi:10.1006/knac.1993.1008

    Article  Google Scholar 

  23. Gruninger M, Lee J (2002) Ontology applications and design. Commun ACM 45(2): 39–41

    Article  Google Scholar 

  24. Hadley MJ (2009) Web application description language (wadl). W3C Member Submission. http://www.w3.org/Submission/wadl/

  25. 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

    Article  Google Scholar 

  26. 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

  27. Happel HJ, Seedorf S (2006) Applications of ontologies in software engineering. In: Proceedings of international workshop on semantic Web enabled software engineering

  28. Hartig O, Kost M, Freytag JC (2008) Automatic component selection with semantic technologies. In: Proceedings of international workshop on semantic Web enabled software engineering

  29. Hespos SJ, Spelke ES (2004) Conceptual precursors to language. Nature 430(6998): 453–456

    Article  Google Scholar 

  30. 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/

  31. Hunt A, Thomas D (1999) The pragmatic programmer: from journeyman to master. Addison-Wesley, Boston

  32. 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

  33. 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

  34. 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

    Article  Google Scholar 

  35. 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

  36. 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

  37. 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

  38. 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

  39. 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

  40. 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/

  41. 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

  42. Lanza M, Marinescu R, Ducasse S (2005) Object-oriented metrics in practice. Springer, Heidelberg

    Google Scholar 

  43. 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

    Article  Google Scholar 

  44. Müller HA, Klashinsky K (1988) Rigi-a system for programming-in-the-large. In: Proceedings of international conference on software engineering

  45. 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

  46. Object Management Group (1998) XML metadata interchange (XMI). Technical Report OMG Document ad/98-10-05

  47. 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/

  48. 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

  49. Prud’hommeaux E, Seaborne A (eds) (2008) SPARQL query language for RDF. W3C Recommendation. http://www.w3.org/TR/rdf-sparql-query/

  50. 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

  51. 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

    Article  Google Scholar 

  52. Ś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

  53. Tappolet J (2008) Semantics-aware software project repositories. In: Proceedings of the ESWC’08 Ph.D. Symposium

  54. Tichelaar S, Ducasse S, Demeyer S (2000) FAMIX and XMI. In: Proceedings of working conference on reverse engineering, p 296

  55. Uschold M, Jasper R (1996) A framework for understanding and classifying ontology applications. In: Proceedings of international workshop on ontology and problem solving methods

  56. 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

  57. 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

  58. 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

  59. 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

  60. 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

  61. 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

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Michael Würsch.

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

Reprints 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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00607-012-0204-1

Keywords

Mathematics Subject Classification

Navigation