Opening up trace-based mechanisms -- application to context-aware Ssstems

Doctor en Ciencias, Mención Computación === In 1972, David Lorge Parnas argued that modular programming is extremely valuable for the development of large pieces of code. This is so because a module can be written with little knowledge of the code of other modules and replaced without the need to re...

Full description

Bibliographic Details
Main Author: Leger Morales, Paul Saint
Other Authors: Tanter, Éric
Language:en
Published: Universidad de Chile 2012
Subjects:
Online Access:http://www.repositorio.uchile.cl/handle/2250/111916
id ndltd-UCHILE-oai-repositorio.uchile.cl-2250-111916
record_format oai_dc
spelling ndltd-UCHILE-oai-repositorio.uchile.cl-2250-1119162017-02-06T05:14:04Z Opening up trace-based mechanisms -- application to context-aware Ssstems Leger Morales, Paul Saint Tanter, Éric Facultad de Ciencias Físicas y Matemáticas Departamento de Ciencias de la Computación Baloian Tataryan, Nelson Fabry, Johan Robbes, Romain Bodden, Eric Software computacional - Desarrollo Aplicaciones web Aspect-oriented programming Doctor en Ciencias, Mención Computación In 1972, David Lorge Parnas argued that modular programming is extremely valuable for the development of large pieces of code. This is so because a module can be written with little knowledge of the code of other modules and replaced without the need to rewrite the remaining other modules. However, paradigms based on general procedures like object-oriented programming do not fully support modular programming due to crosscutting concerns of a system. Fortunately, the aspect-oriented paradigm provides a set of abstractions and mechanisms that allow developers to modularize these concerns; therefore, improving modular programming. Aspects are widely-known abstractions to modularize crosscutting concerns. An aspect intercepts a single execution point, named join point, to execute a piece of code, named advice, that implements a crosscutting concern. However, some crosscutting concerns cannot be modularized through the interception of a single join point, e.g. error detections. Trace-based mechanisms support the definitions of stateful aspects that intercept join point traces. A stateful aspect is defined by a join point trace pattern and an advice that is executed when this pattern is matched. Various trace-based mechanisms have been proposed. These mechanisms do not share the exact semantics, which suggests there is no silver-bullet trace-based mechanism for all purposes. In addition, existing mechanisms do not allow developers to expressively define patterns and semantics of their stateful aspects. Therefore, developers end up "coding around" these mechanisms or creating specialized ones to modularize a particular crosscutting concern. In this thesis work, we propose a model of an expressive and open trace-based mechanism, named OTM. This model allows developers to flexibly define patterns and adapt them at runtime. In addition, as OTM follows the open implementation guidelines, this model allows developers to customize the semantics of how stateful aspects match and advise join point traces. Finally, this dissertation presents a concrete and practical implementation of OTM for JavaScript and a typed functional description in Typed Racket. We use the JavaScript implementation of our model to develop a number of systems that adapt their behavior when they detect certain contexts, know as context-aware systems. A context is detected by analyzing the history of events of a context-aware system. In this kind of systems, patterns represent the contexts that must be detected and advices represent the system adaptations. The development of these systems showed that our practical version improves modularity support to build (Web) applications, and that will eventually make it possible to empirically validate the benefits brought by an expressive and open trace-based mechanism. 2012-12-26T14:03:57Z 2012-12-26T14:03:57Z 2012 Tesis http://www.repositorio.uchile.cl/handle/2250/111916 en Universidad de Chile
collection NDLTD
language en
sources NDLTD
topic Software computacional - Desarrollo
Aplicaciones web
Aspect-oriented programming
spellingShingle Software computacional - Desarrollo
Aplicaciones web
Aspect-oriented programming
Leger Morales, Paul Saint
Opening up trace-based mechanisms -- application to context-aware Ssstems
description Doctor en Ciencias, Mención Computación === In 1972, David Lorge Parnas argued that modular programming is extremely valuable for the development of large pieces of code. This is so because a module can be written with little knowledge of the code of other modules and replaced without the need to rewrite the remaining other modules. However, paradigms based on general procedures like object-oriented programming do not fully support modular programming due to crosscutting concerns of a system. Fortunately, the aspect-oriented paradigm provides a set of abstractions and mechanisms that allow developers to modularize these concerns; therefore, improving modular programming. Aspects are widely-known abstractions to modularize crosscutting concerns. An aspect intercepts a single execution point, named join point, to execute a piece of code, named advice, that implements a crosscutting concern. However, some crosscutting concerns cannot be modularized through the interception of a single join point, e.g. error detections. Trace-based mechanisms support the definitions of stateful aspects that intercept join point traces. A stateful aspect is defined by a join point trace pattern and an advice that is executed when this pattern is matched. Various trace-based mechanisms have been proposed. These mechanisms do not share the exact semantics, which suggests there is no silver-bullet trace-based mechanism for all purposes. In addition, existing mechanisms do not allow developers to expressively define patterns and semantics of their stateful aspects. Therefore, developers end up "coding around" these mechanisms or creating specialized ones to modularize a particular crosscutting concern. In this thesis work, we propose a model of an expressive and open trace-based mechanism, named OTM. This model allows developers to flexibly define patterns and adapt them at runtime. In addition, as OTM follows the open implementation guidelines, this model allows developers to customize the semantics of how stateful aspects match and advise join point traces. Finally, this dissertation presents a concrete and practical implementation of OTM for JavaScript and a typed functional description in Typed Racket. We use the JavaScript implementation of our model to develop a number of systems that adapt their behavior when they detect certain contexts, know as context-aware systems. A context is detected by analyzing the history of events of a context-aware system. In this kind of systems, patterns represent the contexts that must be detected and advices represent the system adaptations. The development of these systems showed that our practical version improves modularity support to build (Web) applications, and that will eventually make it possible to empirically validate the benefits brought by an expressive and open trace-based mechanism.
author2 Tanter, Éric
author_facet Tanter, Éric
Leger Morales, Paul Saint
author Leger Morales, Paul Saint
author_sort Leger Morales, Paul Saint
title Opening up trace-based mechanisms -- application to context-aware Ssstems
title_short Opening up trace-based mechanisms -- application to context-aware Ssstems
title_full Opening up trace-based mechanisms -- application to context-aware Ssstems
title_fullStr Opening up trace-based mechanisms -- application to context-aware Ssstems
title_full_unstemmed Opening up trace-based mechanisms -- application to context-aware Ssstems
title_sort opening up trace-based mechanisms -- application to context-aware ssstems
publisher Universidad de Chile
publishDate 2012
url http://www.repositorio.uchile.cl/handle/2250/111916
work_keys_str_mv AT legermoralespaulsaint openinguptracebasedmechanismsapplicationtocontextawaressstems
_version_ 1718411343324774400