A Test-Driven Approach for Developing Software Languages

Omar Badreddin, Andrew Forward, Timothy C. Lethbridge

Abstract

Test-Driven Development (TDD) is the practice of attempting to use the software you intend to write, before you write it. The premise is straightforward, but the specifics of applying it in different domains can be complex. In this paper, we provide aTDD approach for language development. The essence is to apply TDD at each of four levels of language processing, hence we call our approach Multi-Level TDD, or MLTDD. MLTDD can be applied to programming languages, preprocessors, domain specific languages, and transformation engines. MLTDD was used to build Umple, a model-oriented programming language available for Java, Ruby, and PHP. We present two case studies where this approach was implemented to develop two other domain specific languages.

References

  1. Badreddin, O. "Umple: A Model-Oriented Programming Language," in Proceedings of the 32nd ACM/IEEE International Conference on Software EngineeringVolume 2, 2010. pp. 337-338.
  2. Beck, K. Test Driven Development: By Example. Boston, MA, USA: Addison-Wesley Longman Publishing Co., Inc, 2002.
  3. Forward, A. and Lethbridge, T. C. "A Taxonomy of Software Types to Facilitate Search and EvidenceBased Software Engineering," in CASCON 7808: Proceedings of the 2008 Conference of the Center for Advanced Studies on Collaborative Research, 2008. pp. 179-191.
  4. Forward, A, 2012. Appstats. Accessed 2013. https://rubygems.org/gems/appstats.
  5. Gronback, R. C. "Eclipse Modeling Project: A DomainSpeci c Language (DSL)Toolkit". 2009. AddisonWesley Longman.
  6. Gupta, A. and Jalote, P. "An Experimental Evaluation of the Effectiveness and Efficiency of the Test Driven Development". 2007. Empirical Software Engineering and Measurement, 2007.ESEM 2007.First International Symposium on, pp. 285-294.
  7. Lethbridge, T. C., Forward, A. and Badreddin, O. " Umple Language Online.", accessed 2013, http:// try.umple.org.
  8. Lethbridge, T. C., Forward, A. and Badreddin, O. "Umple Google Code Project". 2012. Available: code.umple.org.
  9. Lethbridge, T. C., Forward, A. and Badreddin, O. "Umplification: Refactoring to Incrementally Add Abstraction to a Program," in Working Conference on Reverse Engineering, 2010. pp. 220-224.
  10. Maximilien, E. M. and Williams, L. "Assessing TestDriven Development at IBM," in Software Engineering, 2003. Proceedings. 25th International Conference on, 2003. pp. 564-569.
  11. Steel, J and Lawley, M. "Model-Based Test Driven Development of the Tefkat Model-Transformation Engine". 2004. 15th International Symposium on Software Reliability Engineering, pp. 151-160.
Download


Paper Citation


in Harvard Style

Badreddin O., Forward A. and Lethbridge T. (2014). A Test-Driven Approach for Developing Software Languages . In Proceedings of the 2nd International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD, ISBN 978-989-758-007-9, pages 225-234. DOI: 10.5220/0004699502250234


in Bibtex Style

@conference{modelsward14,
author={Omar Badreddin and Andrew Forward and Timothy C. Lethbridge},
title={A Test-Driven Approach for Developing Software Languages},
booktitle={Proceedings of the 2nd International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,},
year={2014},
pages={225-234},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0004699502250234},
isbn={978-989-758-007-9},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 2nd International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,
TI - A Test-Driven Approach for Developing Software Languages
SN - 978-989-758-007-9
AU - Badreddin O.
AU - Forward A.
AU - Lethbridge T.
PY - 2014
SP - 225
EP - 234
DO - 10.5220/0004699502250234