Working More Effectively with Legacy Code Using Domain Knowledge and Abstractions: A Case Study

Igor Osetinsky, Reuven Yagel

Abstract

We describe how using abstractions based on domain knowledge can improve the process of changing legacy code. The central claim of this paper is that ontologies are a desirable starting point, not only for development of new code, but also for effective refactoring of legacy code. We start from a standard refactoring method from the literature of working with legacy code, and show how it has been improved into knowledge-based refactoring. A use case illustrates the practical application in an industrial project setting.

References

  1. Beck, K.: Test Driven Development: By Example, Addison-Wesley (2002).
  2. Calero, C., Ruiz, F. and Piattini, M. (eds.): Ontologies in Software Engineering and Software Technology, Springer, Heidelberg, Germany, (2006).
  3. Dalkir, K. and Liebowitz , J.: Knowledge Management in Theory and Practice. The MIT Press, 2nd Ed. (2011).
  4. Evans E.: Domain-Driven Design: Tackling Complexity in the Heart of Software. Prentice Hall (2003).
  5. Exman, I., Llorens, J. and Fraga, A.: "Software Knowledge", pp. 9-12, in Exman, I., Llorens, J. and Fraga, A. (eds.): Proc. SKY Int. Workshop on Software Knowledge (2010).
  6. Feathers M.: Working Effectively with Legacy Code. Prentice Hall (2004)
  7. Fowler M., Refactoring: Improving the Design of Existing Code, Addison-Wesley Professional (2001).
  8. Freeman, S., and Pryce N.: Growing Object-Oriented Software, Guided by Tests, AddisonWesley (2009).
  9. Gamma, E., Helm R., Johnson R. and Vlissides J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley (1995).
  10. Glass, R. Software Conflict. Yourdon Press (1991).
  11. ITSMO - IT Service Management Ontology (2012). See web site (last accessed August 2012).
  12. Martin, R.: Agile Software Development, Principles, Patterns, and Practices, Pearson (2012).
  13. W3C, OWL-S: Semantic Markup for Web Services, http://www.w3.org/Submission/OWLS/ (2004).
  14. Yagel, R., Litovka, A. and Exman I.: KoDEgen: A Knowledge Driven Engineering Code Generating Tool, The 4th International Conference on Knowledge Discovery, Knowledge Engineering and Knowledge Management (IC3K) - SKY Workshop, Vilamoura, Portugal, 2013.
  15. Yang, H., Cui, Z. and O'Brien, P., “Extracting ontologies from legacy systems for understanding and re-engineering”, in Compsac'99 23rd Annual International Computer Software and Applications Conference, pp. 21-26, (1999). DOI = 10.1109/ CMPSAC.1999.812512.
Download


Paper Citation


in Harvard Style

Osetinsky I. and Yagel R. (2014). Working More Effectively with Legacy Code Using Domain Knowledge and Abstractions: A Case Study . In Proceedings of the 5th International Workshop on Software Knowledge - Volume 1: SKY, (IC3K 2014) ISBN 978-989-758-051-2, pages 63-70. DOI: 10.5220/0005168400630070


in Bibtex Style

@conference{sky14,
author={Igor Osetinsky and Reuven Yagel},
title={Working More Effectively with Legacy Code Using Domain Knowledge and Abstractions: A Case Study},
booktitle={Proceedings of the 5th International Workshop on Software Knowledge - Volume 1: SKY, (IC3K 2014)},
year={2014},
pages={63-70},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0005168400630070},
isbn={978-989-758-051-2},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 5th International Workshop on Software Knowledge - Volume 1: SKY, (IC3K 2014)
TI - Working More Effectively with Legacy Code Using Domain Knowledge and Abstractions: A Case Study
SN - 978-989-758-051-2
AU - Osetinsky I.
AU - Yagel R.
PY - 2014
SP - 63
EP - 70
DO - 10.5220/0005168400630070