Empowering Software Maintainers with Semantic Web Technologies

  • René Witte
  • Yonggang Zhang
  • Jürgen Rilling
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4519)


Software maintainers routinely have to deal with a multitude of artifacts, like source code or documents, which often end up disconnected, due to their different representations and the size and complexity of legacy systems. One of the main challenges in software maintenance is to establish and maintain the semantic connections among all the different artifacts. In this paper, we show how Semantic Web technologies can deliver a unified representation to explore, query and reason about a multitude of software artifacts. A novel feature is the automatic integration of two important types of software maintenance artifacts, source code and documents, by populating their corresponding sub-ontologies through code analysis and text mining. We demonstrate how the resulting “Software Semantic Web” can support typical maintenance tasks through ontology queries and Description Logic reasoning, such as security analysis, architectural evolution, and traceability recovery between code and documents.


Software Maintenance Ontology Population Text Mining 


  1. 1.
    Antoniol, G., Canfora, G., Casazza, G., De Lucia, A.: Information Retrieval Models for Recovering Traceability Links between Code and Documentation. In: Proc. of IEEE International Conference on Software Maintenance, San Jose, CA (2000)Google Scholar
  2. 2.
    Brooks, R.: Towards a Theory of the Comprehension of Computer Programs. International Journal of Man-Machine Studies, 543–54 (1963)Google Scholar
  3. 3.
    Cunningham, H., Maynard, D., Bontcheva, K., Tablan, V.: GATE: A Framework and Graphical Development Environment for Robust NLP Tools and Applications. In: Proc. of the 40th Anniversary Meeting of the ACL, Philadelphia (July 2002)Google Scholar
  4. 4.
    Devanbu, P., Brachman, R.J., Selfridge, P.G., Ballard, B.W.: LaSSIE - a Knowledge-based Software Information System. Comm. of the ACM 34(5), 36–49 (1991)CrossRefGoogle Scholar
  5. 5.
    Haarslev, V., Möller, R.: RACER System Description. In: Proc. of International Joint Conference on Automated Reasoning, Siena, Italy (2002)Google Scholar
  6. 6.
    Johnson-Laird, P.N.: Mental Models: Towards a Cognitive Science of Language, Inference and Consciousness. Harvard University, Cambridge (1983)Google Scholar
  7. 7.
    Mayhauser, A.V., Vans, A.M.: Program Comprehension during Software Maintenance and Evolution. IEEE Computer 28(8), 44–55 (1995)Google Scholar
  8. 8.
    IEEE Standard for Software Maintenance, IEEE 1219-1998Google Scholar
  9. 9.
    Jin, D., Cordy, J.: Ontology-Based Software Analysis and Reengineering Tool Integration: The OASIS Service-Sharing Methodology. In: Proc. of the 21st IEEE International Conference on Software Maintenance, Budapest, Hungary (2005)Google Scholar
  10. 10.
    Happel, H.-J., Seedorf, S.: Applications of Ontologies in Software Engineering. In: Proc. of International Workshop on Semantic Web Enabled Software Engineering (2006)Google Scholar
  11. 11.
    Lethbridge, T.C., Nicholas, A.: Architecture of a Source Code Exploration Tool: A Software Engineering Case Study.Department of Computer Science, University of Ottawa, Technical Report, TR-97-07 (1997)Google Scholar
  12. 12.
    Lindvall, M., Sandahl, K.: How well do experienced software developers predict software change? Journal of Systems and Software 43(1), 19–27 (1998)CrossRefGoogle Scholar
  13. 13.
    Meng, W., Rilling, J., Zhang, Y., Witte, R., Charland, P.: An Ontological Software Comprehension Process Model. In: Proc. of the 3rd International Workshop on Metamodels, Schemas, Grammars, and Ontologies for Reverse Engineering, Italy (2006)Google Scholar
  14. 14.
    Riva, C.: Reverse Architecting: An Industrial Experience Report. In: Proc. of the 7th IEEE Working Conference on Reverse Engineering, Australia (2000)Google Scholar
  15. 15.
    Seacord, R., Plakosh, D., Lewis, G.: Modernizing Legacy Systems: Software Technologies, Engineering Processes, and Business Practices. Addison-Wesley, Reading (2003)Google Scholar
  16. 16.
    Sommerville, I.: Software Engineering, 6th edn. Addison-Wesley, Reading (2003)Google Scholar
  17. 17.
    Storey, M.A., Sim, S.E., Wong, K.: A Collaborative Demonstration of Reverse Engineering tools. ACM SIGAPP Applied Computing Review 10(1), 18–25 (2002)CrossRefGoogle Scholar
  18. 18.
    Welty, C.: Augmenting Abstract Syntax Trees for Program Understanding. In: Proc. of International Conference on Automated Software Engineering (1997)Google Scholar
  19. 19.
    Witte, R., Kappler, T., Baker, C.: Ontology Design for Biomedical Text Mining. In: Semantic Web: Revolutionizing Knowledge Discovery in the Life Sciences, Springer, Heidelberg (2006)Google Scholar
  20. 20.
    Zhang, Y., Witte, R., Rilling, J., Haarslev, V.: An Ontology-based Approach for Traceability Recovery. In: Proc. of International Workshop on Metamodels, Schemas, Grammars, and Ontologies for Reverse Engineering, Genoa, Italy (2006)Google Scholar
  21. 21.
    Ankolekar, A., Sycara, K., Herbsleb, J., Kraut, R., Welty, C.: Supporting Online Problem-solving Communities With the Semantic Web. In: Proc. of the 15th International Conference on World Wide Web (2006)Google Scholar
  22. 22.
    Happel, H.-J., Korthaus, A., Seedorf, S., Tomczyk, P.: KontoR: An Ontology-enabled Approach to Software Reuse. In: Proc. of the 18th International Conference on Software Engineering and Knowledge Engineering (2006)Google Scholar

Copyright information

© Springer Berlin Heidelberg 2007

Authors and Affiliations

  • René Witte
    • 1
  • Yonggang Zhang
    • 2
  • Jürgen Rilling
    • 2
  1. 1.Institute for Progam Structures and, Data Organisation (IPD), Faculty of Informatics, University of KarlsruheGermany
  2. 2.Department of Computer Science, and Software Engineering, Concordia University, MontrealCanada

Personalised recommendations