Malleable Software

Ken Webb 2010-04-10T14:21:24Z

From the Xholon perspective, malleable software is software that can be modified, both at design-time and at run-time. There should be no arbitrary restrictions on just how it can be modified.

IBM Research

IBM researchers have investigated some areas that seem relevant. Some of their work directly uses the term malleable software. A team at IBM's Thomas J. Watson Research Center have worked on a number of projects that are loosely connected to this concept. These researchers include William Harrison, Harold Osscher, and Peri Tarr.

Their work is quite different from Xholon, but it is suggestive of directions that Xholon could go in, and the literature helps to define what malleable software is. So for now, after a quick read of some of the literature, all I can say is that we share the concept of malleable software. Their's is the main body of work I found when I googled for malleable software.

Software Engineering Tools and Environments: A Roadmap

Peri Tarr research page

Multi-dimensional separation of concerns

Concern Manipulation Environment

Subject-Oriented Programming

The following paper appeared in Communications of the ACM: Ossher, H. and Tarr, P. 2001. Using multidimensional separation of concerns to (re)shape evolving software. Commun. ACM 44, 10 (Oct. 2001), 43-50. DOI= http://doi.acm.org/10.1145/383845.383856 This paper suggests that "At present, software is like clay: it is soft and malleable early in its lifetime, but eventually it hardens and becomes brittle. At that point, it is possible to add new bumps to it, but its fundamental shape is set, and it can no longer adapt adequately to the constant evolutionary pressures of our ever-changing world. We believe a critical goal of software engineering is to produce software more like gold -- malleable and flexible for life. We call such software 'morphogenic', because it is able to adapt to new contexts by changing shape." (p.50).

They also use the term permanently malleable software.

return to main page