Change-Enabled Software Systems
- 6 Citations
- 528 Downloads
Abstract
Few real software systems are built completely from scratch nowadays. Instead, systems are built iteratively and incrementally, while integrating and interacting with components from many other systems. Adaptation, reconfiguration and evolution are normal, ongoing processes throughout the lifecycle of a software system. Nevertheless the platforms, tools and environments we use to develop software are still largely based on an outmoded model that presupposes that software systems are closed and will not significantly evolve after deployment. We claim that in order to enable effective and graceful evolution of modern software systems, we must make these systems more amenable to change by (i) providing explicit, first-class models of software artifacts, change, and history at the level of the platform, (ii) continuously analysing static and dynamic evolution to track emergent properties, and (iii) closing the gap between the domain model and the developers’ view of the evolving system. We outline our vision of dynamic, evolving software systems and identify the research challenges to realizing this vision.
Keywords
Source Code Virtual Machine IEEE Computer Society Emergent Property Transactional MemoryPreview
Unable to display preview. Download preview PDF.
References
- 1.Arévalo, G., Buchli, F., Nierstrasz, O.: Detecting implicit collaboration patterns. In: Proceedings of WCRE 2004 (11th Working Conference on Reverse Engineering), pp. 122–131. IEEE Computer Society Press, Los Alamitos (2004)Google Scholar
- 2.Balint, M., Gîrba, T., Marinescu, R.: How developers copy. In: Proceedings of International Conference on Program Comprehension (ICPC 2006), pp. 56–65 (2006)Google Scholar
- 3.Bennis, W., Biederman, P.W.: Organizing Genius — The Secrets of Creative Collaboration. Perseus Books (1997)Google Scholar
- 4.Bobrow, D.G., Goldstein, I.P.: Representing design alternatives. In: Proceedings of the Conference on Artificial Intelligence and the Simulation of Behavior (July 1980)Google Scholar
- 5.Carse, J.P.: Finite and Infinite Games — A Vision of Life as Play and Possibility. Ballantine Books (1987)Google Scholar
- 6.Conway, M.E.: How do committees invent? Datamation 14(4), 28–31 (1968)Google Scholar
- 7.Costanza, P., Hirschfeld, R.: Language constructs for context-oriented programming: An overview of ContextL. In: Proceedings of the Dynamic Languages Symposium DLS 2005, co-organized with OOPSLA 2005, pp. 1–10. ACM, New York (2005)Google Scholar
- 8.Denker, M., Ducasse, S., Lienhard, A., Marschall, P.: Sub-method reflection. Journal of Object Technology, Special Issue. Proceedings of TOOLS Europe 2007 6(9), 231–251 (2007)Google Scholar
- 9.Denker, M., Gîrba, T., Lienhard, A., Nierstrasz, O., Renggli, L., Zumkehr, P.: Encapsulating and exploiting change with Changeboxes. In: Proceedings of the 2007 International Conference on Dynamic Languages (ICDL 2007), pp. 25–49. ACM Digital Library (2007)Google Scholar
- 10.Denker, M., Greevy, O., Nierstrasz, O.: Supporting feature analysis with runtime annotations. In: Proceedings of the 3rd International Workshop on Program Comprehension through Dynamic Analysis (PCODA 2007), pp. 29–33. Technische Universiteit Delft (2007)Google Scholar
- 11.Denker, M., Suen, M., Ducasse, S.: The meta in meta-object architectures. In: Proceedings of TOOLS EUROPE 2008. LNBIP, vol. 11, pp. 218–237. Springer, Heidelberg (2008)Google Scholar
- 12.Dig, D., Manzoor, K., Johnson, R., Nguyen, T.: Refactoring-aware configuration management for object-oriented programs. In: International Conference on Software Engineering (ICSE 2007), pp. 427–436 (2007)Google Scholar
- 13.Ducasse, S.: Evaluating message passing control techniques in Smalltalk. Journal of Object-Oriented Programming (JOOP) 12(6), 39–44 (1999)Google Scholar
- 14.Ducasse, S., Lanza, M.: The class blueprint: Visually supporting the understanding of classes. Transactions on Software Engineering (TSE) 31(1), 75–90 (2005)CrossRefGoogle Scholar
- 15.Ferber, J.: Computational reflection in class-based object-oriented languages. In: Proceedings OOPSLA 1989, ACM SIGPLAN Notices, vol. 24, pp. 317–326 (October 1989)Google Scholar
- 16.Fowler, M., Beck, K., Brant, J., Opdyke, W., Roberts, D.: Refactoring: Improving the Design of Existing Code. Addison Wesley, Reading (1999)Google Scholar
- 17.Gîrba, T., Ducasse, S.: Modeling history to analyze software evolution. Journal of Software Maintenance: Research and Practice (JSME) 18, 207–236 (2006)CrossRefGoogle Scholar
- 18.Gîrba, T., Ducasse, S., Kuhn, A., Marinescu, R., Raţiu, D.: Using concept analysis to detect co-change patterns. In: Proceedings of International Workshop on Principles of Software Evolution (IWPSE 2007), pp. 83–89. ACM Press, New York (2007)Google Scholar
- 19.Gîrba, T., Ducasse, S., Lanza, M.: Yesterday’s Weather: Guiding early reverse engineering efforts by summarizing the evolution of changes. In: Proceedings of 20th IEEE International Conference on Software Maintenance (ICSM 2004), pp. 40–49. IEEE Computer Society, Los Alamitos (2004)CrossRefGoogle Scholar
- 20.Gîrba, T., Kuhn, A., Seeberger, M., Ducasse, S.: How developers drive software evolution. In: Proceedings of International Workshop on Principles of Software Evolution (IWPSE 2005), pp. 113–122. IEEE Computer Society Press, Los Alamitos (2005)CrossRefGoogle Scholar
- 21.Gîrba, T., Lanza, M., Ducasse, S.: Characterizing the evolution of class hierarchies. In: Proceedings of 9th European Conference on Software Maintenance and Reengineering (CSMR 2005), pp. 2–11. IEEE Computer Society, Los Alamitos (2005)Google Scholar
- 22.Goldstein, I.P., Bobrow, D.G.: Descriptions for a programming environment. In: Proceedings of the First Annual Conference of the National Association for Artificial Intelligence (August 1980)Google Scholar
- 23.Goldstein, I.P., Bobrow, D.G.: Extending object-oriented programming in Smalltalk. In: Proceedings of the Lisp Conference, pp. 75–81 (August 1980)Google Scholar
- 24.Goldstein, I.P., Bobrow, D.G.: A layered approach to software design. Technical Report CSL-80-5, Xerox PARC (December 1980)Google Scholar
- 25.Greevy, O., Gîrba, T., Ducasse, S.: How developers develop features. In: Proceedings of 11th European Conference on Software Maintenance and Reengineering (CSMR 2007), pp. 256–274. IEEE Computer Society, Los Alamitos (2007)Google Scholar
- 26.Hamou-Lhadj, A., Lethbridge, T.: A survey of trace exploration tools and techniques. In: Proceedings IBM Centers for Advanced Studies Conferences (CASON 2004), Indianapolis IN, pp. 42–55. IBM Press (2004)Google Scholar
- 27.Hirschfeld, R., Costanza, P., Nierstrasz, O.: Context-oriented programming. Journal of Object Technology 7(3) (March 2008)Google Scholar
- 28.Hofer, C., Denker, M., Ducasse, S.: Design and implementation of a backward-in-time debugger. In: Proceedings of NODE 2006. Lecture Notes in Informatics, vol. P-88, pp. 17–32. Gesellschaft für Informatik, GI (September 2006)Google Scholar
- 29.Holzner, S.: Eclipse. O’Reilly, Sebastopol (2004)zbMATHGoogle Scholar
- 30.Kersten, M., Murphy, G.C.: Mylar: a degree-of-interest model for ides. In: AOSD 2005: Proceedings of the 4th international conference on Aspect-oriented software development, pp. 159–168. ACM Press, New York (2005)Google Scholar
- 31.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 2005: Proceedings of the 27th international conference on Software engineering, pp. 125–135 (2005)Google Scholar
- 32.Lanza, M., Ducasse, S.: Polymetric views—a lightweight visual approach to reverse engineering. Transactions on Software Engineering (TSE) 29(9), 782–795 (2003)CrossRefGoogle Scholar
- 33.Lanza, M., Marinescu, R.: Object-Oriented Metrics in Practice. Springer, Heidelberg (2006)zbMATHGoogle Scholar
- 34.Lewis, B., Ducassé, M.: Using events to debug Java programs backwards in time. In: OOPSLA Companion 2003, pp. 96–97 (2003)Google Scholar
- 35.Liblit, B., Naik, M., Zheng, A.X., Aiken, A., Jordan, M.I.: Scalable statistical bug isolation. In: Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation (PLDI 2005), pp. 15–26. ACM, New York (2005)CrossRefGoogle Scholar
- 36.Lienhard, A., Ducasse, S., Arévalo, G.: Identifying traits with formal concept analysis. In: Proceedings of 20th Conference on Automated Software Engineering (ASE 2005), pp. 66–75. IEEE Computer Society, Los Alamitos (2005)Google Scholar
- 37.Lienhard, A., Ducasse, S., Gîrba, T.: Taking an object-centric view on dynamic information with object flow analysis. Journal of Computer Languages, Systems and Structures (to appear, 2008)Google Scholar
- 38.Lienhard, A., Gîrba, T., Greevy, O., Nierstrasz, O.: Test blueprints – exposing side effects in execution traces to support writing unit tests. In: 12th European Conference on Software Maintenance and Reengineering (CSMR 2008), pp. 83–92. IEEE Computer Society, Los Alamitos (2008)CrossRefGoogle Scholar
- 39.Lienhard, A., Gîrba, T., Nierstrasz, O.: Practical object-oriented back-in-time debugging. In: 22nd European Conference on Object-Oriented Programming (ECOOP 2008). LNCS, vol. 5142, pp. 592–615. Springer, Heidelberg (2008)CrossRefGoogle Scholar
- 40.Lienhard, A., Greevy, O., Nierstrasz, O.: Tracking objects to detect feature dependencies. In: Proceedings International Conference on Program Comprehension (ICPC 2007), Washington, DC, USA, pp. 59–68. IEEE Computer Society, Los Alamitos (2007)CrossRefGoogle Scholar
- 41.Maes, P.: Computational Reflection. PhD thesis, Laboratory for Artificial Intelligence, Vrije Universiteit Brussel, Brussels Belgium (January 1987)Google Scholar
- 42.Nierstrasz, O.: Software evolution as the key to productivity. In: Wirsing, M., Knapp, A., Balsamo, S. (eds.) RISSEF 2002. LNCS, vol. 2941, pp. 274–282. Springer, Heidelberg (2004)CrossRefGoogle Scholar
- 43.Nierstrasz, O., Bergel, A., Denker, M., Ducasse, S., Gaelli, M., Wuyts, R.: On the revival of dynamic languages. In: Gschwind, T., Aßmann, U. (eds.) SC 2005. LNCS, vol. 3628, pp. 1–13. Springer, Heidelberg (2005)CrossRefGoogle Scholar
- 44.Nierstrasz, O., Kobel, M., Gîrba, T., Lanza, M., Bunke, H.: Example-driven reconstruction of software models. In: Proceedings of Conference on Software Maintenance and Reengineering (CSMR 2007), pp. 275–286. IEEE Computer Society Press, Los Alamitos (2007)CrossRefGoogle Scholar
- 45.Parnas, D.L.: On the criteria to be used in decomposing systems into modules. C. ACM 15(12), 1053–1058 (1972)CrossRefGoogle Scholar
- 46.Pothier, G., Tanter, É., Piquer, J.: Scalable omniscient debugging. In: Proceedings of the 22nd Annual SCM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 2007). ACM, New York (to appear, 2007)Google Scholar
- 47.Renggli, L., Nierstrasz, O.: Transactional memory for Smalltalk. In: Proceedings of the 2007 International Conference on Dynamic Languages (ICDL 2007), pp. 207–221. ACM Digital Library (2007)Google Scholar
- 48.Robbes, R., Lanza, M.: Characterizing and understanding development sessions. In: Proceedings of ICPC 2007 (15th International Conference on Program Comprehension) (page to be published, 2007)Google Scholar
- 49.Roberts, D., Brant, J., Johnson, R.E.: A refactoring tool for Smalltalk. Theory and Practice of Object Systems (TAPOS) 3(4), 253–263 (1997)CrossRefGoogle Scholar
- 50.Robillard, M.P., Murphy, G.C.: Feat: A tool for locating, describing, and analyzing concerns in source code. In: Proceedings of 25th International Conference on Software Engineering, pp. 822–823 (May 2003)Google Scholar
- 51.Röthlisberger, D., Denker, M., Tanter, É.: Unanticipated partial behavioral reflection: Adapting applications at runtime. Journal of Computer Languages, Systems and Structures 34(2-3), 46–65 (2008)CrossRefGoogle Scholar
- 52.Röthlisberger, D., Greevy, O., Nierstrasz, O.: Feature driven browsing. In: Proceedings of the 2007 International Conference on Dynamic Languages (ICDL 2007), pp. 79–100. ACM Digital Library (2007)Google Scholar
- 53.Röthlisberger, D., Greevy, O., Nierstrasz, O.: Exploiting runtime information in the ide. In: Proceedings of the 16th International Conference on Program Comprehension (ICPC 2008), pp. 63–72. IEEE Computer Society, Los Alamitos (2008)CrossRefGoogle Scholar
- 54.Singer, J., Elves, R., Storey, M.-A.: Navtracks: Supporting navigation in software maintenance. In: International Conference on Software Maintenance (ICSM 2005), pp. 325–335 (September 2005)Google Scholar
- 55.Smith, B.C.: Reflection and semantics in a procedural language. Technical Report TR-272, MIT, Cambridge, MA (1982)Google Scholar
- 56.Smith, R.B., Ungar, D.: A simple and unifying approach to subjective objects. TAPOS special issue on Subjectivity in Object-Oriented Systems 2(3), 161–178 (1996)Google Scholar
- 57.Steele, G.: Growing a language. Higher-Order and Symbolic Computation 12(3), 221–236 (1999)CrossRefGoogle Scholar
- 58.Tanter, É., Noyé, J., Caromel, D., Cointe, P.: Partial behavioral reflection: Spatial and temporal selection of reification. In: Proceedings of OOPSLA 2003, ACM SIGPLAN Notices, pp. 27–46 (November 2003)Google Scholar
- 59.Wirsing, M., Hölzl, M. (eds.): Report of the Beyond the Horizon thematic group 6 on Software Intensive Systems (2006)Google Scholar