Software is hard to change for a variety of reasons, including the presence of assumptions about the external system (the context) being deeply embedded within software fragments. This project investigated this problem from two perspectives: reduction of assumptions in particular fragments through the appropriate choice of structuring (essential structure); and, mitigating the presence of assumptions already present.

The idea of communication history was central to implicit context: the record of communications and data passed could be used to retrieve information without explicitly requiring intervening units to know anything about it.

Declarative event patterns were a realization of communication history, geared as an extension to aspect-oriented programming.

This project, though finished, gave rise to many of the current ideas of LSMR.

Publications

Declarative event patterns (via the URD tool)

  • Robert J. Walker and Kevin Viggers. Implementing protocols via declarative event patterns. In Proceedings of the 12th ACM SIGSOFT International Symposium on the Foundations of Software Engineering (SIGSOFT '04/FSE-12), pages 159–169, 2004. doi: 10.1145/1029894.1029918
  • Kevin Viggers and Robert J. Walker. An Implementation of Declarative Event Patterns. Technical report 2004-745-10, Department of Computer Science, University of Calgary, Calgary, Canada, December 2004. 34 pages. doi: 1880/46085
  • Robert J. Walker and Kevin Viggers. Communication History Patterns: Direct Implementation of Protocol Specifications. Technical report 2004-736-01, Department of Computer Science, University of Calgary, Calgary, Canada, February 2004. 13 pages. doi: 1880/46084

Implicit context (via the IConJ tool)

  • Robert J. Walker. IConJ 0.1: A Proof-of-Concept Tool for the Application of the Implicit Context Model to Java Software. Technical report 2004-757-22, Department of Computer Science, University of Calgary, August 2004. 50 pages. doi: 1880/46086
  • Robert J. Walker. Supporting inconsistent world views. In Proceedings of the Workshop on Software Engineering Principles of Languages for Aspect Technologies (SPLAT '03), 2nd International Conference on Aspect-Oriented Software Development, 2003. 5 pages.
  • Robert James Walker. Essential Software Structure through Implicit Context. Ph.D. thesis, Department of Computer Science, University of British Columbia, March 2003.
  • Robert J. Walker and Gail C. Murphy. Joinpoints as ordered events: Towards applying implicit context to aspect-orientation. In Proceedings for Advanced Separation of Concerns Workshop, 23rd International Conference on Software Engineering, pages 134–139, 2001.
  • Robert J. Walker and Gail C. Murphy. Using Implicit Context to Ease Software Evolution and Reuse. Technical report TR-99-13, Department of Computer Science, University of British Columbia, Vancouver, Canada, November 1999. 11 pages.
  • Robert J. Walker and Gail C. Murphy. Implicit context: Easing software evolution and reuse. In Proceedings of the ACM SIGSOFT Eighth International Symposium on the Foundations of Software Engineering (SIGSOFT 2000/FSE-8), pages 69–78, 2000. doi: 10.1145/355045.355054
  • Robert J. Walker. Contextual programming. In Proceedings of the 21st International Conference on Software Engineering (ICSE-21), pages 734–735, 1999. Doctoral symposium. doi: 10.1145/302405.303004
  • Robert J. Walker and Gail C. Murphy. Dynamic contextual reflection: A mechanism for software evolution and reuse. In Proceedings of the OOPSLA '99 Workshop on Reflection and Software Engineering (OORASE '99), ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 43–50, 1999.