Present and Ulterior Software Engineering pp 77-101 | Cite as
Moldable Tools for Object-Oriented Development
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.
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.ANTLR – debugging ANTLR grammars using ANTLR Studio: http://www.placidsystems.com/articles/article-debugging/usingdebugger.htm. Accessed 3 June 2016
- 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.Beck, K.: Simple Smalltalk testing: with patterns. www.xprogramming.com/testfram.htm
- 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.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.Bunge, P.: Scripting browsers with Glamour. Master’s thesis, University of Bern, April 2009Google Scholar
- 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.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.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.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.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.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.Goldberg, A.: Smalltalk 80: the Interactive Programming Environment. Addison Wesley, Reading, MA (1984)MATHGoogle Scholar
- 14.Habermann, A.N., Notkin, D.: Gandalf: software development environments. IEEE Trans. Softw. Eng. 12(12), 1117–1127 (1986)CrossRefGoogle Scholar
- 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.Joy, W.: An introduction to display editing with Vi. In: UNIX User’s Manual Supplementary Documents. USENIX Association, Berkeley (1980)Google Scholar
- 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.Klint, P.: A meta-environment for generating programming environments. ACM Trans. Softw. Eng. Methodol. (TOSEM) 2(2), 176–201 (1993)CrossRefGoogle Scholar
- 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.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.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.Medina-Mora, R.I.: Syntax-directed editing: towards integrated programming environments. Ph.D. thesis, Carnegie Mellon University (1982). AAI8215892Google Scholar
- 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.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.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.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.Ousterhout, J.K.: Scripting: higher level programming for the 21st century. IEEE Comput. 31(3), 23–30 (1998)CrossRefGoogle Scholar
- 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.Pawson, R.: Naked objects. Ph.D. thesis, Trinity College, Dublin (2004)Google Scholar
- 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.Reps, T., Teitelbaum, T.: The synthesizer generator. SIGSOFT Softw. Eng. Notes 9(3), 42–48 (1984)CrossRefGoogle Scholar
- 32.Riel, A.: Object-Oriented Design Heuristics. Addison Wesley, Boston (1996)Google Scholar
- 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.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.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.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.Stallman, R.M.: Emacs the extensible, customizable self-documenting display editor. ACM SIGOA Newslett. 2(1–2), 147–156 (1981)Google Scholar
- 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.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.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.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.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.Voelter, M.: Generic tools, specific languages. Ph.D. thesis, Delft University of Technology (2014)Google Scholar
- 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.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