Return to search

Modularising change management in dynamic language aspect-oriented programming frameworks to reduce fragility

Aspect-oriented programming (AOP) is a way of specifying crosscutting concerns (program features) as aspects - a modularisation of the concern and how it crosscuts the rest of a program. In most AOP facilities, there is an implicit assumption that the functional (non-crosscutting) concerns that these crosscutting concerns interact with (base) do not change. This assumption turns out to be incorrect in the case of script-based dynamic programming languages. This type of language experiences change throughout the execution of a program. Aspects specify in selectors which program points (join points) in the base they are bound to. When these join points experience change, there is a risk of an aspect under or over matching joinpoints - termed fragility. Aspects may need to be transformed, loaded, unloaded and otherwise dynamically adapt to changes in join point presence. The state-of-the-art provides various ways of addressing the problems of fragility, though these are neither integrated nor applicable in their current form to dynamic languages. To overcome these problems, this thesis proposes an integrated solution using two novel modularisations and three supporting features to address these via change management. Adaption plans are a structured trigger-based module containing internal modules representing choices with associated rules. These choices specify the acceptable triggers and the rules are a structured, typed, parameterised tree specifying a response. Delegation points modularise change management concerns that crosscut selectors. The supportive features are reflection support. metadata, and change notification. Reflection allows the state of a program to be reasoned about and changed at runtime, supporting change management decisions. Metadata is an established concept of reducing fragility by reducing dependency on the precise structure of a program. Change notification provides a unified mechanism for identifying change, something that reduces the complexity of change management in dynamic languages.

Identiferoai:union.ndltd.org:bl.uk/oai:ethos.bl.uk:656865
Date January 2012
CreatorsWaters, Robert William
PublisherLancaster University
Source SetsEthos UK
Detected LanguageEnglish
TypeElectronic Thesis or Dissertation

Page generated in 0.0014 seconds