10 research outputs found

    Browser-based Analysis of Web Framework Applications

    Full text link
    Although web applications evolved to mature solutions providing sophisticated user experience, they also became complex for the same reason. Complexity primarily affects the server-side generation of dynamic pages as they are aggregated from multiple sources and as there are lots of possible processing paths depending on parameters. Browser-based tests are an adequate instrument to detect errors within generated web pages considering the server-side process and path complexity a black box. However, these tests do not detect the cause of an error which has to be located manually instead. This paper proposes to generate metadata on the paths and parts involved during server-side processing to facilitate backtracking origins of detected errors at development time. While there are several possible points of interest to observe for backtracking, this paper focuses user interface components of web frameworks.Comment: In Proceedings TAV-WEB 2010, arXiv:1009.330

    AOSD Ontology 1.0 - Public Ontology of Aspect-Orientation

    Get PDF
    This report presents a Common Foundation for Aspect-Oriented Software Development. A Common Foundation is required to enable effective communication and to enable integration of activities within the Network of Excellence. This Common Foundation is realized by developing an ontology, i.e. the shared meaning of terms and concepts in the domain of AOSD. In the first part of this report, we describe the definitions of an initial set of common AOSD terms. There is general agreement on these definitions. In the second part, we describe the Common Foundation task in detail

    Un interpréteur extensible pour le prototypage des langages d'aspects

    Get PDF
    The value of using different (possibly domain-specific) aspect languages to deal with a variety of crosscutting concerns in the development of complex software systems is well recognized. One should be able to use several of these languages together in a single program. However, on the one hand, developing a new Domain-Specific Aspect Language (DSAL) in order to capture all common programming patterns of the domain takes a lot of time, and on the other hand, the designer of a new language should manage the interactions with the other languages when they are used together. In this thesis, we introduce support for rapid prototyping and composing aspect languages based on interpreters. We start from a base interpreter of a subset of Java and we analyze and present a solution for its modular extension to support AOP based on a common semantics aspect base defined once and for all. The extension, called the aspect interpreter, implements a common aspect mechanism and leaves holes to be defined when developing concrete languages. The power of this approach is that the aspect languages are directly implemented from their operational semantics. This is illustrated by implementing a lightweight version of AspectJ. To apply the same approach and the same architecture to full Java without changing its interpreter (JVM), we reuse AspectJ to perform a first step of static weaving, which we complement by a second step of dynamic weaving, implemented through a thin interpretation layer. This can be seen as an interesting example of reconciling interpreters and compilers. We validate our approach by describing prototypes for AspectJ, EAOP, COOL and a couple of other DSALs and demonstrating the openness of our AspectJ implementation with two extensions, one dealing with dynamic scheduling of aspects and another with alternative pointcut semantics. Different aspect languages implemented with our framework can be easily composed. Moreover, we provide support for customizing this composition.L'intérêt de l'utilisation de différents langages d'aspects pour faire face à une variété de préoccupations transverses dans le développement de systèmes logiciels complexes est reconnu. Il faudrait être capable d'utiliser plusieurs de ces langages dans un seul logiciel donné. Cependant, d'une part la phase de développement d'un nouveau langage dédié capturant tous les patrons de programmation du domaine prend beaucoup de temps et, d'autre part, le concepteur doit gérer les interactions avec les autres langages quand ils sont utilisés simultanément. Dans cette thèse, nous introduisons un support pour le prototypage rapide et la composition des langages d'aspects, basé sur des interpréteurs. Nous partons d'un interpréteur d'un sous-ensemble de Java en étudiant et en définissant son extension modulaire afin de supporter la programmation par aspects en se basant sur une sémantique d'aspects partagée. Dans l'interpréteur d'aspects, nous avons implémenté des mécanismes communs aux langages d'aspects en laissant des trous à définir pour implémenter des langages d'aspects concrets. La puissance de cette approche est de permettre d'implémenter directement les langages à partir de leur sémantique. L'approche est validée par l'implémentation d'une version légère d'AspectJ. Pour appliquer la même approche et la même architecture à Java sans modifier son interpréteur (JVM), nous réutilisons AspectJ pour effectuer une première étape de tissage statique, qui est complétée par une deuxième étape de tissage dynamique, implémentée par une mince couche d'interprétation. C'est un exemple montrant l'intérêt qu'il peut y avoir à concilier interprétation et compilation. Des prototypes pour AspectJ, EAOP, COOL et des langages dédiés simples, valident notre approche. Nous montrons le caractère ouvert de notre implémentation d'AspectJ en décrivant deux extensions: la première permet l'ordonnancement dynamique des aspects, la deuxième propose des sémantiques alternatives pour les points de coupe. Les langages d'aspects implémentés avec notre approche peuvent être facilement composés. En outre, cette composition peut être personnalisée

    An Aspect-Oriented Approach to Securing Distributed Systems

    Get PDF
    International audienceThe increasing size and complexity of distributed systems create a need to raise the level of abstraction for their development. This need becomes critical for pervasive computing where non-functional properties, such as security, must be guaranteed. Architecture description languages (ADLs) propose a promising approach to coping with the size and complexity of pervasive computing systems. A system is defined by a high-level description that may be used to produce a programming framework. However, non-functional properties are not specifically addressed by existing ADL works. To address this issue aspect-oriented programming is a well-proven technique to properly modularize non-functional concerns that can be dealt with by weaving dedicated code into a program. In this paper, we present DiaAspect, an aspect-oriented language for our ADL, DiaSpec. Like most ADLs, DiaSpec exposes features enabling an accurate coordination of aspects. We demonstrate the expressiveness of DiaAspect with two examples of security policies in pervasive computing. We also show how, combining the knowledge of the architecture description with aspect code, improves aspect weaving in the implementation code

    Aspektiohjelmointi ja hauraat liitoskohtamääritykset

    Get PDF
    Läpileikkaava näkökulma on tietokoneohjelman toteutukseen liittyvä vaatimus, jota ei voida toteuttaa käytetyllä ohjelmointikielellä omaan ohjelmayksikköön, vaan sen toteutus hajaantuu useisiin ohjelmayksiköihin. Aspektiohjelmointi on uusi ohjelmointiparadigma, jolla läpileikkaava näkökulma voidaan toteuttaa omaan ohjelmayksikköön, aspektiin. Aspekti kapseloi näkökulman toteutuksen neuvon ja liitoskohtamäärityksen avulla. Neuvo sisältää näkökulman toteuttavan ohjelmakoodin ja liitoskohtamääritys valitsee ne ohjelman liitoskohdat, joihin ohjelmakoodi liitetään. Nykyisillä aspektikielillä voidaan valita liitoskohtia pääasiassa niiden syntaktisten ominaisuuksien, kuten nimen ja sijainnin, perusteella. Syntaksiin sidoksissa olevat liitoskohtamääritykset ovat hauraita, sillä ohjelmaan tehdyt muutokset voivat rikkoa syntaksista riippuvia liitoskohtamäärityksiä, vaikka itse liitoskohtamäärityksiin ei tehtäisi muutoksia. Tätä ongelmaa kutsutaan hauraan liitoskohtamäärityksen ongelmaksi. Ongelma on merkittävä, koska hauraat liitoskohtamääritykset vaikeuttavat ohjelman kehitettävyyttä ja ylläpidettävyyttä. Tässä tutkielmassa perehdytään hauraan liitoskohtamäärityksen ongelmaan ja siihen esitettyihin ratkaisuihin. Tutkielmassa näytetään, että ongelmaan ei ole tällä hetkellä kunnollista ratkaisua

    Join Point Selectors: An Extension Mechanism for Aspect-Oriented Languages and Frameworks

    No full text
    Uma das questões mais importantes nas linguagens e arcabouços orientados a aspectos atuais é a expressividade da linguagem ou mecanismo de definição de pointcuts. A expressividade de uma linguagem de pointcuts impacta diretamente a qualidade dos pointcuts, uma propriedade que pode ser decisiva para a eficácia das implementações de aspectos. Neste trabalho, propomos os seletores de pontos de junção como um mecanismo de extensão simples para enriquecer linguagens de pointcut atuais com elementos que fazem o papel de \"novos pointcuts primitivos\". Os seletores de pontos de junção permitem a criação de pointcuts com maior valor semântico. Apesar de existirem mecanismos similares em algumas abordagens existentes, o conceito subjacente não foi claramente definido ou completamente explorado. Apresentamos também uma arquitetura simples para a adição de seletores de pontos de junção a um arcabouço orientado a aspectos existente, e mostramos exemplos do uso de seletores para melhorar a qualidade de pointcuts e facilitar o desenvolvimento de aspectos.One of the main issues in modern aspect-oriented programming languages and frameworks is the expressiveness of the pointcut language or mechanism. The expressiveness of pointcut languages directly impacts pointcut quality, a property that can be decisive for the effectiveness of aspect implementations. In this work we propose join point selectors as a simple extension mechanism for enriching current pointcut languages with constructs that play the role of \"new primitive pointcuts\". Join point selectors allow the creation of pointcuts with greater semantic value. Although similar mechanisms can be found in some existing approaches, the underlying concept has not yet been clearly defined nor fully explored. We also present a simple architecture for adding join point selectors to an existing aspect-oriented framework, and show examples of usage of join point selectors to enhance the quality of pointcuts and make aspect development easier
    corecore