the proceedings contain 7 papers. the special focus in this conference is on Runtime Verification, Analysis and aspect-orientedsoftwaredevelopment. the topics include: Run-time assertion checking of data- and protoc...
ISBN:
(纸本)9783642550980
the proceedings contain 7 papers. the special focus in this conference is on Runtime Verification, Analysis and aspect-orientedsoftwaredevelopment. the topics include: Run-time assertion checking of data- and protocol-oriented properties of java programs;modularizing domain-specific crosscutting RV concerns;supporting methods, events, and advices by a single language construct;modularity and dynamic adaptation of flexibly secure systems;model-driven adaptive delegation in access control management;a typed monadic embedding of pointcuts and advice;modular specification and checking of structural dependencies and towards reactive programming for object-oriented applications.
To simplify the constructs that programmers have to learn for using paradigms, we extend methods to a new language construct, a method slot, to support boththe event-handler paradigm and the aspect paradigm. A method...
详细信息
ISBN:
(纸本)9783642550997;9783642550980
To simplify the constructs that programmers have to learn for using paradigms, we extend methods to a new language construct, a method slot, to support boththe event-handler paradigm and the aspect paradigm. A method slot is an object's property that can keep more than one function closure and be called like a method. We also propose a Java-based language, DominoJ, which replaces methods in Java with method slots, and explains the behavior of method slots and the operators. then we evaluate the coverage of expressive ability of method slots by comparing DominoJ with other languages in detail. the feasibility of method slots is shown as well by implementing a prototype compiler and running a preliminary microbenchmark for it.
Checking a software's structural dependencies is a line of research on methods and tools for analyzing, modeling, and checking the conformance of source code w.r.t. specifications of its intended static structure....
详细信息
ISBN:
(纸本)9783642550997;9783642550980
Checking a software's structural dependencies is a line of research on methods and tools for analyzing, modeling, and checking the conformance of source code w.r.t. specifications of its intended static structure. Existing approaches have focused on the correctness of the specification, the impact of the approaches on software quality and the expressiveness of the modeling languages. However, large specifications become unmaintainable in the event of evolution without the means to modularize such specifications. We present Vespucci, a novel approach and tool that partitions a specification of the expected and allowed dependencies into a set of cohesive slices. this facilitates modular reasoning and helps individual maintenance of each slice. Our approach is suited for modeling high-level as well as detailed low-level decisions related to the static structure and combines both in a single modeling formalism. To evaluate our approach, we conducted an extensive study spanning 9 years of the evolution of the architecture of the object-relational mapping framework Hibernate.
Runtime verification (RV) facilitates detecting the failures of software during its execution. Due to the complexity of RV techniques, there is an increasing interest in achieving abstractness, modularity, and compose...
详细信息
ISBN:
(纸本)9783642550997;9783642550980
Runtime verification (RV) facilitates detecting the failures of software during its execution. Due to the complexity of RV techniques, there is an increasing interest in achieving abstractness, modularity, and compose-ability in their implementations by means of dedicated linguistic mechanisms. this paper defines a design space to evaluate the existing domain-specific languages for implementing RV techniques, and identifies the shortcomings of a representative set of these languages with respect to the design space. this paper advocates the need for a language composition framework, which offers the necessary mechanisms to achieve abstractness, modularity, and compose-ability in the implementation of domain-specific crosscutting concerns such as the concerns of RV techniques. We explain event modules as novel linguistic abstractions for modular implementation of domain-specific crosscutting concerns. this paper discusses the implementation of event modules in the EventReactor language, and illustrates the suitability of event modules to implement RV techniques by means of two complementary examples.
aspect-oriented programming (AOP) aims to enhance modularity and reusability in software systems by offering an abstraction mechanism to deal with crosscutting concerns. However, in most general-purpose aspect languag...
详细信息
ISBN:
(纸本)9783642550980
aspect-oriented programming (AOP) aims to enhance modularity and reusability in software systems by offering an abstraction mechanism to deal with crosscutting concerns. However, in most general-purpose aspect languages aspects have almost unrestricted power, eventually conflicting withthese goals. In this work we present Effective aspects: a novel approach to embed the pointcut/ advice model of AOP in a statically typed functional programming language like Haskell. Our work extends EffectiveAdvice, by Oliveira, Schrijvers, and Cook;which lacks quantification, and explores how to exploit the monadic setting in the full pointcut/advice model. Type soundness is guaranteed by exploiting the underlying type system, in particular phantom types and a new anti-unification type class. aspects are first-class, can be deployed dynamically, and the pointcut language is extensible, therefore combining the flexibility of dynamically typed aspect languages withthe guarantees of a static type system. Monads enables us to directly reason about computational effects both in aspects and base programs using traditional monadic techniques. Using this we extend Aldrich’s notion of Open Modules with effects, and also with protected pointcut interfaces to external advising. these restrictions are enforced statically using the type system. Also, we adapt the techniques of EffectiveAdvice to reason about and enforce control flow properties. Moreover, we show how to control effect interference using the parametricity-based approach of EffectiveAdvice. However, this approach falls short when dealing with interference between multiple aspects. We propose a different approach using monad views, a recently developed technique for handling the monad stack. Finally, we exploit the properties of our monadic weaver to enable the modular construction of new semantics for aspect scoping and weaving. these semantics also benefit fully from the monadic reasoning mechanisms present in the language. thi
Run-time assertion checking is one of the useful techniques for detecting faults, and can be applied during any program execution context, including debugging, testing, and production. In general, however, it is limit...
详细信息
ISBN:
(纸本)9783642550997;9783642550980
Run-time assertion checking is one of the useful techniques for detecting faults, and can be applied during any program execution context, including debugging, testing, and production. In general, however, it is limited to checking state-based properties. We introduce SAGA, a general framework that provides a smooth integration of the specification and the run-time checking of both data- and protocol-oriented properties of Java classes and interfaces. We evaluate SAGA, which combines several state-of-the art tools, by conducting an industrial case study from an eCommerce software company Fredhopper.
Reactive applications are difficult to implement. Traditional solutions based on event systems and the Observer pattern have a number of inconveniences, but programmers bear them in return for the benefits of OO desig...
详细信息
ISBN:
(纸本)9783642550997;9783642550980
Reactive applications are difficult to implement. Traditional solutions based on event systems and the Observer pattern have a number of inconveniences, but programmers bear them in return for the benefits of OO design. On the other hand, reactive approaches based on automatic updates of dependencies - like functional reactive programming and dataflow languages - provide undoubted advantages but do not fit well with mutable objects. In this paper, we provide a research roadmap to overcome the limitations of the current approaches and to support reactive applications in the OO setting. To establish a solid background for our investigation, we propose a conceptual framework to model the design space of reactive applications and we study the flaws of the existing solutions. then we highlight how reactive languages have the potential to address those issues and we formulate our research plan.
暂无评论