Mastersthesis,

ContextR & ContextWiki

.
Hasso-Plattner-Institut, Potsdam, (April 2008)

Abstract

The World Wide Web has become an increasingly import business area for the software industry. When developing modern web applications established companies compete with young start-ups about the user’s attention. Short development cycles and the ability to quickly implement new features have become prerequisites to success. More complex requirements enforce the need for better application models, in order to implement simple and concise software systems. Mastering cross-cutting concerns forms the basis to build maintainable applications. In modern web applications these concerns are often features which depend on the current context of the user. Output might differ when the site is accessed with a mobile device or certain features are only available in special payment plans. Therefore the activation of these should be coupled to the request context. Context-oriented programming (COP) techniques explicitly address these needs. In COP context-dependent features are grouped inside of layers extending the regular object-oriented model. At runtime it is possible to dynamically activate layers in a dynamic extent such that context-dependent behavior is isolated in that part of the system. Therefore it is not only possible to group otherwise scattered definitions of a cross-cutting concern, but to avoid the repetitive analysis of the current context by centralizing layer activation. ContextR implements a COP library in Ruby. ContextWiki is using COP and ContextR to implement a collaboration wiki matching many criteria of modern web applications. During the design of ContextWiki core concerns located in the basic object-oriented application model were separated from context-dependent features implemented in layers extending the basic model. In that way it was possible to preserve a simple and concise software system. ContextWiki and ContextR successfully integrate context-dependent behavior into an object-oriented model.

Tags

Users

  • @gron

Comments and Reviews