Abstract
KDE – Knowledge Driven Engineering – is a generalization of MDE – Model Driven Engineering – to a higher level of abstraction than the standard UML software models, aiming to be closer to the system designer concepts. But in order to reach an effective technology applicable in industry, one needs to implement it in a tool using Runnable Knowledge, i.e. which can be run and tested. This work describes KODEGEN – a KDE tool for testing while generating code – whose input consists of system ontologies, ontology states and scenario files. Incidental concepts not part of the ontologies are replaced by mock objects. The implementation uses a modified Gherkin syntax. The tool is demonstrated in practice by generating the actual code for a few case-studies.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Adzic, G.: Test Driven .NET Development with FitNesse. Neuri, London (2008)
Adzic, G.: Bridging the Communication Gap: Specification by Example and Agile Acceptance Testing. Neuri, London (2009)
Adzic, G.: Specification by Example – How Successful Teams Deliver the Right Software. Manning, New York (2011)
Beck, K.: Test Driven Development: By Example. Addison-Wesley, Boston (2002)
Boehm, B.W.: Software engineering economics. IEEE Trans. Softw. Eng. 10, 4–21 (1984)
Brown, A.W.: Model driven architecture: principles and practice. Softw. Syst. Model 3, 314–327 (2004). doi:10.1007/s10270-004-0061-2
Calero, C., Ruiz, F., Piattini, M. (eds.): Ontologies in Software Engineering and Software Technology. Springer, Heidelberg (2006)
Chelimsky, D., Astels, D., Dennis, Z., Hellesoy, A., Helmkamp, B., North, D.: The RSpec Book: Behaviour Driven Development with RSpec, Cucumber, and Friends. Pragmatic Programmer, New York (2010)
Exman, I., Llorens, J., Fraga, A.: Software knowledge. In: Exman, I., Llorens, J., Fraga, A. (eds.) Proceedings of SKY 2011, 2nd International Workshop on Software Knowledge (2010)
Exman, I., Yagel, R.: ROM: a runnable ontology model testing tool. In: Fred, A., Dietz, J.L.G., Liu, K., Filipe, J. (eds.) Knowledge Discovery, Knowledge Engineering and Knowledge Management, pp. 271–283. Springer, Heidelberg (2012)
Freeman, S., Pryce, N.: Growing Object-Oriented Software, Guided by Tests. Addison-Wesley, Boston (2009)
KODEGEN – the tool (2013). https://github.com/AntonLitovka/KODEGEN
Moq – the simplest mocking library for .NET and Silverlight (2012). http://code.google.com/p/moq/
North, D.: Introducing Behaviour Driven Development. Better Software Magazine (2006). http://dannorth.net/introducing-bdd/
NUnit (2012). http://www.nunit.org
Pan, J.Z., Staab, S., Assmann, U., Ebert, J., Zhao, Y. (eds.): Ontology-Driven Software Development. Springer, Heidelberg (2013)
Parreiras, F.S.: Semantic Web and Model-Driven Engineering. John Wiley and IEEE Press, Hoboken (2012)
RSpec mocks library (2013). https://github.com/rspec/rspec-mocks
Smart, J.F.: BDD in Action Behavior-Driven Development for the Whole Software Lifecycle. Manning, New York (2014)
SpecFlow – Pragmatic BDD for .NET (2010). http://specflow.org
Wynne, M., Hellesoy, A.: The Cucumber Book: Behaviour Driven Development for Testers and Developers. Pragmatic Programmer, New York (2012)
Yagel, R.: Can executable specifications close the gap between software requirements and implementation? In: Exman, I., Llorens, J., Fraga, A. (eds.) Proceedings of SKY 2011 International Workshop on Software Engineering, pp. 87–91. SciTePress, France, (2011)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Exman, I., Litovka, A., Yagel, R. (2015). KODEGEN: A Code Generation and Testing Tool Using Runnable Knowledge. In: Fred, A., Dietz, J., Liu, K., Filipe, J. (eds) Knowledge Discovery, Knowledge Engineering and Knowledge Management. IC3K 2013. Communications in Computer and Information Science, vol 454. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-46549-3_17
Download citation
DOI: https://doi.org/10.1007/978-3-662-46549-3_17
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-662-46548-6
Online ISBN: 978-3-662-46549-3
eBook Packages: Computer ScienceComputer Science (R0)