Advertisement

Moldable Tools for Object-Oriented Development

  • Andrei Chiş
  • Tudor Gîrba
  • Juraj Kubelka
  • Oscar Nierstrasz
  • Stefan Reichhart
  • Aliaksei Syrel
Chapter

Abstract

Object-oriented programming aims to facilitate navigation between domain concepts and the code that addresses those domains by enabling developers to directly model those domain concepts in the code. To make informed decisions, developers then formulate detailed and domain-specific questions about their systems in terms of domain concepts and use tools to explore available information and answer those questions. Development tools however focus mainly on object-oriented idioms and do not expose or exploit domain concepts constructed on top of object-oriented programming idioms. Analysis tools are typically not tightly integrated with development tools. This has a negative effect on program comprehension, increasing the effort and the time for obtaining answers.

To improve program comprehension, we propose to better integrate domain concepts and program comprehension tools into the development environment through moldable tools. Moldable tools are development tools that are aware of the current development context and support inexpensive creation of domain-specific extensions. We elaborate on the idea of moldable tools and show how to apply moldable tools to support object-oriented programming. Through practical examples, we show how developers can embed domain concepts into their development tools.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Notes

Acknowledgements

We gratefully acknowledge the financial support of the Swiss National Science Foundation for the project “Agile Software Analysis” (SNSF project No. 200020-162352, Jan 1, 2016—Dec 30, 2018). We also thank Claudio Corrodi for his corrections and improvements to the final draft.

References

  1. 1.
    ANTLR – debugging ANTLR grammars using ANTLR Studio: http://www.placidsystems.com/articles/article-debugging/usingdebugger.htm. Accessed 3 June 2016
  2. 2.
    Araya, V.P., Bergel, A., Cassou, D., Ducasse, S., Laval, J.: Agile visualization with Roassal. In: Deep Into Pharo, pp. 209–239. Square Bracket Associates, Bern (2013)Google Scholar
  3. 3.
    Beck, K.: Simple Smalltalk testing: with patterns. www.xprogramming.com/testfram.htm
  4. 4.
    Bergel, A., Ducasse, S., Putney, C., Wuyts, R.: Creating sophisticated development tools with OmniBrowser. J. Comput. Lang. Syst. Struct. 34(2–3), 109–129 (2008)Google Scholar
  5. 5.
    Bouraqadi, N., Fabresse, L., Bergel, A., Cassou, D., Ducasse, S., Laval, J.: Sockets. In: Deep Into Pharo, p. 21. Square Bracket Associates, Bern (2013)Google Scholar
  6. 6.
    Bunge, P.: Scripting browsers with Glamour. Master’s thesis, University of Bern, April 2009Google Scholar
  7. 7.
    Chiş, A., Denker, M., Gîrba, T., Nierstrasz, O.: Practical domain-specific debuggers using the moldable debugger framework. Comput. Lang. Syst. Struct. 44(Part A), 89–113 (2015). Special issue on the 6th and 7th International Conference on Software Language Engineering (SLE 2013 and SLE 2014)Google Scholar
  8. 8.
    Chiş, A., Gîrba, T., Nierstrasz, O.: Towards moldable development tools. In: Proceedings of the 6th Workshop on Evaluation and Usability of Programming Languages and Tools, PLATEAU ’15, pp. 25–26. Association for Computing Machinery, New York (2015)Google Scholar
  9. 9.
    Chiş, A., Gîrba, T., Nierstrasz, O., Syrel, A.: The moldable inspector. In: Proceedings of the 2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, Onward! 2015, pp. 44–60. Association for Computing Machinery, New York (2015)Google Scholar
  10. 10.
    Chiş, A., Gîrba, T., Kubelka, J., Nierstrasz, O., Reichhart, S., Syrel, A.: Exemplifying moldable development. In: Proceedings of the 1st Edition of the Programming Experience Workshop (PX 2016), pp. 33–42 (2016)Google Scholar
  11. 11.
    De Volder, K.: JQuery: a generic code browser with a declarative configuration language. In: Proceedings of the 8th International Conference on Practical Aspects of Declarative Languages, PADL’06, pp. 88–102. Springer, Berlin/Heidelberg (2006)Google Scholar
  12. 12.
    Gîrba, T., Chiş, A.: Pervasive software visualizations. In: Proceedings of 3rd IEEE Working Conference on Software Visualization, VISSOFT’15, pp. 1–5. IEEE, Piscataway, NJ (2015)Google Scholar
  13. 13.
    Goldberg, A.: Smalltalk 80: the Interactive Programming Environment. Addison Wesley, Reading, MA (1984)MATHGoogle Scholar
  14. 14.
    Habermann, A.N., Notkin, D.: Gandalf: software development environments. IEEE Trans. Softw. Eng. 12(12), 1117–1127 (1986)CrossRefGoogle Scholar
  15. 15.
    Henriques, P.R., Pereira, M.J.V., Mernik, M., Lenic, M., Gray, J., Wu, H.: Automatic generation of language-based tools using the LISA system. IEE Proc. Softw. 152(2), 54–69 (2005)CrossRefGoogle Scholar
  16. 16.
    Joy, W.: An introduction to display editing with Vi. In: UNIX User’s Manual Supplementary Documents. USENIX Association, Berkeley (1980)Google Scholar
  17. 17.
    Kersten, M., Murphy, G.C.: Mylar: a degree-of-interest model for IDEs. In: AOSD ’05: Proceedings of the 4th International Conference on Aspect-Oriented Software Development, pp. 159–168. ACM Press, New York (2005)Google Scholar
  18. 18.
    Klint, P.: A meta-environment for generating programming environments. ACM Trans. Softw. Eng. Methodol. (TOSEM) 2(2), 176–201 (1993)CrossRefGoogle Scholar
  19. 19.
    Ko, A.J., Aung, H., Myers, B.A.: Eliciting design requirements for maintenance-oriented IDEs: a detailed study of corrective and perfective maintenance tasks. In: ICSE ’05: Proceedings of the 27th International Conference on Software Engineering, pp. 125–135 (2005)Google Scholar
  20. 20.
    Ko, A., Myers, B., Coblenz, M., Aung, H.: An exploratory study of how developers seek, relate, and collect relevant information during software maintenance tasks. IEEE Trans. Softw. Eng. 32(12), 971–987 (2006)CrossRefGoogle Scholar
  21. 21.
    Kubelka, J., Bergel, A., Chiş, A., Gîrba, T., Reichhart, S., Robbes, R., Syrel, A.: On understanding how developers use the Spotter search tool. In: Proceedings of 3rd IEEE Working Conference on Software Visualization – New Ideas and Emerging Results, VISSOFT-NIER’15, pp. 145–149. IEEE, Piscataway, NJ (2015)Google Scholar
  22. 22.
    Medina-Mora, R.I.: Syntax-directed editing: towards integrated programming environments. Ph.D. thesis, Carnegie Mellon University (1982). AAI8215892Google Scholar
  23. 23.
    Minelli, R., Mocci, A., Lanza, M.: I know what you did last summer: an investigation of how developers spend their time. In: Proceedings of the 2015 IEEE 23rd International Conference on Program Comprehension, ICPC ’15, pp. 25–35. IEEE Press, Piscataway, NJ (2015)Google Scholar
  24. 24.
    Minelli, R., Mocci, A., Robbes, R., Lanza, M.: Taming the IDE with fine-grained interaction data. In: Proceedings of ICPC 2016 (24th International Conference on Program Comprehension), pp. 1–10 (2016)CrossRefGoogle Scholar
  25. 25.
    Murphy, G.C., Kersten, M., Robillard, M.P., Čubranić, D.: The emergent structure of development tasks. In: Proceedings of the 19th European Conference on Object-Oriented Programming, ECOOP’05, pp. 33–48. Springer, Berlin/Heidelberg (2005)CrossRefGoogle Scholar
  26. 26.
    Nierstrasz, O.: The death of object-oriented programming. In: Stevens, P., Wasowski, A. (eds.) FASE 2016. Lecture Notes in Computer Science, vol. 9633, pp. 3–10. Springer, Berlin (2016)Google Scholar
  27. 27.
    Ousterhout, J.K.: Scripting: higher level programming for the 21st century. IEEE Comput. 31(3), 23–30 (1998)CrossRefGoogle Scholar
  28. 28.
    Pavletic, D., Voelter, M., Raza, S., Kolb, B., Kehrer, T.: Extensible debugger framework for extensible languages. In: de la Puente, J.A., Vardanega, T. (eds.) Reliable Software Technologies – Ada–Europe 2015. Lecture Notes in Computer Science, vol. 9111, pp. 33–49. Springer, Berlin (2015)CrossRefGoogle Scholar
  29. 29.
    Pawson, R.: Naked objects. Ph.D. thesis, Trinity College, Dublin (2004)Google Scholar
  30. 30.
    Renggli, L., Ducasse, S., Gîrba, T., Nierstrasz, O.: Practical dynamic grammars for dynamic languages. In: 4th Workshop on Dynamic Languages and Applications (DYLA 2010), Malaga, pp. 1–4, June 2010Google Scholar
  31. 31.
    Reps, T., Teitelbaum, T.: The synthesizer generator. SIGSOFT Softw. Eng. Notes 9(3), 42–48 (1984)CrossRefGoogle Scholar
  32. 32.
    Riel, A.: Object-Oriented Design Heuristics. Addison Wesley, Boston (1996)Google Scholar
  33. 33.
    Roehm, T., Tiarks, R., Koschke, R., Maalej, W.: How do professional developers comprehend software? In: Proceedings of the 2012 International Conference on Software Engineering, ICSE 2012, pp. 255–265. IEEE Press, Piscataway, NJ (2012)Google Scholar
  34. 34.
    Sillito, J., Murphy, G.C., De Volder, K.: Asking and answering questions during a programming change task. IEEE Trans. Softw. Eng. 34, 434–451 (2008)CrossRefGoogle Scholar
  35. 35.
    Smith, R.B., Maloney, J., Ungar, D.: The Self-4.0 user interface: manifesting a system-wide vision of concreteness, uniformity, and flexibility. SIGPLAN Not. 30(10), 47–60 (1995)CrossRefGoogle Scholar
  36. 36.
    Smith, E.K., Bird, C., Zimmermann, T.: Build it yourself! Homegrown tools in a large software company. In: Proceedings of the 37th International Conference on Software Engineering. IEEE – Institute of Electrical and Electronics Engineers, Piscataway, NJ (2015)Google Scholar
  37. 37.
    Stallman, R.M.: Emacs the extensible, customizable self-documenting display editor. ACM SIGOA Newslett. 2(1–2), 147–156 (1981)Google Scholar
  38. 38.
    Syrel, A., Chiş, A., Gîrba, T., Kubelka, J., Nierstrasz, O., Reichhart, S.: Spotter: towards a unified search interface in IDEs. In: Proceedings of the Companion Publication of the 2015 ACM SIGPLAN Conference on Systems, Programming, and Applications: Software for Humanity, SPLASH Companion 2015, pp. 54–55. Association for Computing Machinery, New York (2015)Google Scholar
  39. 39.
    Taeumel, M., Perscheid, M., Steinert, B., Lincke, J., Hirschfeld, R.: Interleaving of modification and use in data-driven tool development. In: Proceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, Onward! 2014, pp. 185–200. Association for Computing Machinery, New York (2014)Google Scholar
  40. 40.
    Ungar, D., Smith, R.B.: Self: the power of simplicity. In: Proceedings OOPSLA ’87, ACM SIGPLAN Notices, vol. 22, pp. 227–242 (1987)CrossRefGoogle Scholar
  41. 41.
    van den Brand, M., Cornelissen, B., Olivier, P., Vinju, J.: TIDE: a generic debugging framework — tool demonstration —. Electron. Notes Theor. Comput. Sci. 141(4), 161–165 (2005). Proceedings of the Fifth Workshop on Language Descriptions, Tools, and Applications (LDTA 2005) Language Descriptions, Tools, and Applications 2005Google Scholar
  42. 42.
    Verwaest, T., Bruni, C., Lungu, M., Nierstrasz, O.: Flexible object layouts: enabling lightweight language extensions by intercepting slot access. In: Proceedings of the 2011 ACM International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA ’11, pp. 959–972. Association for Computing Machinery, New York (2011)Google Scholar
  43. 43.
    Voelter, M.: Generic tools, specific languages. Ph.D. thesis, Delft University of Technology (2014)Google Scholar
  44. 44.
    Voelter, M., Ratiu, D., Schaetz, B., Kolb, B.: Mbeddr: an extensible C-based programming language and IDE for embedded systems. In: Proceedings of the 3rd Annual Conference on Systems, Programming, and Applications: Software for Humanity, SPLASH ’12, pp. 121–140. Association for Computing Machinery, New York (2012)Google Scholar
  45. 45.
    Whittle, J., Hutchinson, J., Rouncefield, M., Burden, H., Heldal, R.: Model-driven engineering languages and systems: 16th international conference, (MODELS 2013). In: Chapter Industrial Adoption of Model-Driven Engineering: Are the Tools Really the Problem?, pp. 1–17. Springer, Berlin/Heidelberg (2013)Google Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  • Andrei Chiş
    • 1
  • Tudor Gîrba
    • 2
  • Juraj Kubelka
    • 3
  • Oscar Nierstrasz
    • 1
  • Stefan Reichhart
    • 4
  • Aliaksei Syrel
    • 1
  1. 1.Software Composition GroupUniversity of BernBernSwitzerland
  2. 2.feenk gmbhWabernSwitzerland
  3. 3.PLEIAD LaboratoryUniversity of ChileSantiagoChile
  4. 4.University of BernBernSwitzerland

Personalised recommendations