A Case Study in Evidence-Based DSL Evolution

  • Jeroen van den Bos
  • Tijs van der Storm
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7949)

Abstract

Domain-specific languages (dsls) can significantly increase productivity and quality in software construction. However, even dsl programs need to evolve to accomodate changing requirements and circumstances. How can we know if the design of a dsl supports the relevant evolution scenarios on its programs? We present an experimental approach to evaluate the evolutionary capabilities of a dsl and apply it on a dsl for digital forensics, called DERRIC. Our results indicate that the majority of required changes to DERRIC programs are easily expressed. However, some scenarios suggest that the dsl design can be improved to prevent future maintenance problems. Our experimental approach can be considered first steps towards evidence-based dsl evolution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Aronson, L., van den Bos, J.: Towards an Engineering Approach to File Carver Construction. In: 2011 IEEE 35th Annual Computer Software and Applications Conference Workshops (COMPSACW), pp. 368–373. IEEE (2011)Google Scholar
  2. 2.
    van den Bos, J., van der Storm, T.: Bringing Domain-Specific Languages to Digital Forensics. In: 33rd International Conference on Software Engineering (ICSE 2011), pp. 671–680. ACM (2011)Google Scholar
  3. 3.
    van den Bos, J., van der Storm, T.: Domain-Specific Optimization in Digital Forensics. In: Hu, Z., de Lara, J. (eds.) ICMT 2012. LNCS, vol. 7307, pp. 121–136. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  4. 4.
    van Deursen, A., Klint, P.: Little Languages: Little Maintenance? Journal of Software Maintenance 10(2), 75–92 (1998)CrossRefGoogle Scholar
  5. 5.
    van Deursen, A., Klint, P., Visser, J.: Domain-Specific Languages: An Annotated Bibliography. SIGPLAN Notices 35(6), 26–36 (2000)CrossRefGoogle Scholar
  6. 6.
    Favre, J.M., Gasevic, D., Lämmel, R., Pek, E.: Empirical Language Analysis in Software Linguistics. In: Malloy, B., Staab, S., van den Brand, M. (eds.) SLE 2010. LNCS, vol. 6563, pp. 316–326. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  7. 7.
    Fowler, M., Beck, K., Brant, J., Opdyke, W., Roberts, D.: Refactoring. Addison-Wesley (1999)Google Scholar
  8. 8.
    Hermans, F., Pinzger, M., van Deursen, A.: Domain-Specific Languages in Practice: A User Study on the Success Factors. In: Schürr, A., Selic, B. (eds.) MODELS 2009. LNCS, vol. 5795, pp. 423–437. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  9. 9.
    Hills, M., Klint, P., van der Storm, T., Vinju, J.J.: A Case of Visitor versus Interpreter Pattern. In: Bishop, J., Vallecillo, A. (eds.) TOOLS 2011. LNCS, vol. 6705, pp. 228–243. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  10. 10.
    ISO/IEC 14764: Software Engineering–Software Life Cycle Processes–Maintenance (2006)Google Scholar
  11. 11.
    Klint, P., van der Storm, T., Vinju, J.: Rascal: A Domain Specific Language for Source Code Analysis and Manipulation. In: Ninth IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2009), pp. 168–177. IEEE (2009)Google Scholar
  12. 12.
    Klint, P., van der Storm, T., Vinju, J.J.: On the Impact of DSL Tools on the Maintainability of Language Implementations. In: 10th Workshop on Language Descriptions, Tools and Applications (LDTA 2010). ACM (2010)Google Scholar
  13. 13.
    Lämmel, R., Pek, E.: Vivisection of a Non-Executable, Domain-Specific Language – Understanding (the Usage of) the P3P Language. In: IEEE 18th International Conference on Program Comprehension (ICPC 2010), pp. 104–113. IEEE (2010)Google Scholar
  14. 14.
    Lussenburg, V., van der Storm, T., Vinju, J.J., Warmer, J.: Mod4J: A Qualitative Case Study of Model-Driven Software Development. In: Petriu, D.C., Rouquette, N., Haugen, Ø. (eds.) MODELS 2010, Part II. LNCS, vol. 6395, pp. 346–360. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  15. 15.
    Markstrum, S.: Staking Claims: A History of Programming Language Design Claims and Evidence: A Positional Work in Progress. In: 2nd ACM SIGPLAN Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU 2010), p. 7:1–7:5. ACM (2010)Google Scholar
  16. 16.
    Mens, T., Eden, A.H.: On the Evolution Complexity of Design Patterns. Electronic Notes in Theoretical Computer Science 127(3), 147–163 (2005)CrossRefGoogle Scholar
  17. 17.
    Mernik, M., Heering, J., Sloane, A.M.: When and How to Develop Domain-Specific Languages. ACM Computing Surveys 37(4), 316–344 (2005)CrossRefGoogle Scholar
  18. 18.
    Morandat, F., Hill, B., Osvald, L., Vitek, J.: Evaluating the Design of the R Language - Objects and Functions for Data Analysis. In: Noble, J. (ed.) ECOOP 2012. LNCS, vol. 7313, pp. 104–131. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  19. 19.
    Oehlert, P.: Violating Assumptions with Fuzzing. IEEE Security and Privacy 3(2), 58–62 (2005)CrossRefGoogle Scholar
  20. 20.
    Xing, Z., Stroulia, E.: UMLDiff: An Algorithm for Object-Oriented Design Differencing. In: 20th IEEE/ACM International Conference on Automated Software Engineering (ASE 2005), pp. 54–65. ACM (2005)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Jeroen van den Bos
    • 1
    • 2
  • Tijs van der Storm
    • 1
  1. 1.Centrum Wiskunde & InformaticaAmsterdamThe Netherlands
  2. 2.Netherlands Forensic InstituteDen HaagThe Netherlands

Personalised recommendations