Developing and evolving software requires developers to continuously make decisions about how to steer the design and implementation of their applications. To make informed decisions developers commonly formulate detailed and domain-specific questions about their software systems and use tools to explore available information and answer those questions. Development tools however focus on generic programming tasks while program comprehension and analysis tools typically are not tightly integrated with their development tools and environments. This has a negative effect on program comprehension as it increases the effort and the time needed to obtain an answer.
To improve program comprehension we propose that developers build software using development tools tailored to specific application domains, as this can directly answer domain-specific questions. We introduce moldable development as an approach for developing software in which developers evolve development tools together with their applications. In this paper we sketch the idea of moldable development and give examples to illustrate how it can be applied in practice. Through these examples we show that given a low cost for extending development tools, developers can create relevant and useful customizations to help them evolve their own applications.
Mon 18 JulDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
16:00 - 17:30 | Session 4PX at Belli Chair(s): Richard P. Gabriel Dream Songs, Inc. & IBM Research, Robert Hirschfeld HPI, Hidehiko Masuhara Tokyo Institute of Technology | ||
16:00 45mTalk | Exemplifying Moldable Development. PX Andrei Chiş University of Bern, Switzerland, Tudor Gîrba CompuGroup Medical Schweiz AG, Juraj Kubelka University of Chile, Oscar Nierstrasz University of Bern, Switzerland, Stefan Reichhart , Aliaksei Syrel University of Bern DOI Pre-print | ||
16:45 45mTalk | Evolving User Interfaces From Within Self-sustaining Programming Environments: Exploring the Project Concept of Squeak/Smalltalk to Bootstrap UIs. PX |