The aspect-oriented programming (AOP) approach is supposed to enhance a system's features such as modularity, readability and simplicity. Owing to a better modularisation of crosscutting concerns, the developed sy...
详细信息
The aspect-oriented programming (AOP) approach is supposed to enhance a system's features such as modularity, readability and simplicity. Owing to a better modularisation of crosscutting concerns, the developed system implementation would be less complex, and more readable. Thus, software development efficiency would increase, so the system would be created faster than its object-orientedprogramming (OOP) equivalent. An empirical study of a web-based system development is carried out to examine AOP against OOP approach with regard to software development efficiency and design quality. The study reveals that the AOP approach appears to be a fullfledged alternative to the pure OOP approach. Nevertheless, the impact of AOP on software development efficiency and design quality was not confirmed. In particular, it appeared that design quality metrics were not significantly associated with using AOP, instead of OOP. It is possible that the benefits of AOP will exceed the results obtained in the present study for experiments with larger number of subjects.
aspect-oriented programming (AOP) has produced interesting language designs, but also ad hoc semantics that needs clarification. We contribute to this clarification with a calculus that models essential AOP, both simp...
详细信息
aspect-oriented programming (AOP) has produced interesting language designs, but also ad hoc semantics that needs clarification. We contribute to this clarification with a calculus that models essential AOP, both simpler and more general than existing formalizations. In AOP, advice may intercept method invocations, and proceed executes the suspended call. Proceed is an ad hoc mechanism, only usable inside advice bodies. Many pointcut mechanisms, for example, wildcards, also lack regularity. We model proceed using first-class closures, and shift complexity from pointcuts to ordinary object-oriented code. Two well-known pointcut categories, call and execution, are commonly considered similar. We formally expose their differences, and resolve the associated soundness problem. Our calculus includes type ranges, an intuitive and concise alternative to explicit type variables that allows advice to be polymorphic over intercepted methods. We use calculus parameters to cover type safety for a wide design space of other features. Type soundness is verified in Coq.
A graphical user interface (GUI, UI) is an important part of an application, with which users interact directly. It should be implemented in the best way with respect to understandability. If a user does not understan...
详细信息
A graphical user interface (GUI, UI) is an important part of an application, with which users interact directly. It should be implemented in the best way with respect to understandability. If a user does not understand the terms in the UI, he or she cannot work with it;then the whole system is worthless. In order to serve well the UI should contain domain-specific terms and describe domain-specific processes. It is the primary source for domain analysis right after domain users and experts. Our general goal is to propose a method for an automatic domain analysis of user interfaces. First, however, the basic principles and stereotypes must be defined that are used when creating user interfaces and rules must be derived for creating an information extracting algorithm. In this paper these stereotypes are listed and analyzed and a set of rules for extracting domain information is created. A taxonomy of UIs and a taxonomy of components based on their domain-specific information is also proposed. Our DEAL method for extracting this information is outlined and a prototype of DEAL is presented. Also our goals for the future are listed: expanding the prototype for different components and different types of UIs.
Extensible programming languages and their compilers are experimental systems that use highly modular specifications of languages and language extensions in order to allow a variety of language features to be easily i...
详细信息
Extensible programming languages and their compilers are experimental systems that use highly modular specifications of languages and language extensions in order to allow a variety of language features to be easily imported, by the programmer, into his or her programming environment. Our framework for extensible languages is based on higher-order attribute grammars extended with a mechanism called "forwarding" that mimics a simple rewriting process. Forwarding is designed such that no additional attribute definitions need to be written when combining a "host" language with language extensions (specified as attribute grammars), thus allowing for the modular composition of language features. This means that programmers can remain unaware of the underlying attribute grammars when building customized languages by importing language extensions. This paper shows how aspects and the aspect weaving process from aspect-oriented programming can be specified as a modular language extension and imported into an extensible host language. This paper also illustrates how an extensible compiler framework exposes its underlying semantic analyses and how this can provide a convenient arena in which researchers can explore new aspect-oriented language features. (c) 2007 Elsevier B.V. All rights reserved.
作者:
Peng wangXiaochun Zhaopeng wang
changchun university of science and technology Changchun City 130022 China xiaochun zhao
changchun university of science and technology Changchun City 130022 China
aspect-oriented programming (AOP) can well solve the cross-cutting concerns. Because of the different features of aspect, AOP requires new techniques for testing. First, this paper proposes a model to test aspect-orie...
详细信息
aspect-oriented programming (AOP) can well solve the cross-cutting concerns. Because of the different features of aspect, AOP requires new techniques for testing. First, this paper proposes a model to test aspect-oriented software. In order to support the testing model of the first three steps, we propose the algorithm of selecting aspect relevant test cases. Then, we develop a new tool to implement the theoretical of automating select test case. Finally, a case of the Bank Account System is studied to illustrate our testing approach.
This paper presents the methodology for performance analysis of real-time embedded systems specified on system level. We developed aspect-oriented extensions to the SystemC environment, that enable to include profilin...
详细信息
This paper presents the methodology for performance analysis of real-time embedded systems specified on system level. We developed aspect-oriented extensions to the SystemC environment, that enable to include profiling code, as well as code modeling execution time, into the system specification. First, the specification woven with profile aspects is simulated in target environment and information about execution times is saved in a file. Next, the same specification is woven with simulation aspects, that use the information gained in previous step to simulate execution times. In this way accurate timed model of the system is obtained automatically.
This paper presents component-based and aspect-oriented methodology and tool for designing and developing Real-Time Embedded Control Systems (RTECS). This methodology defines a component model for describing modular a...
详细信息
ISBN:
(纸本)9783981080186
This paper presents component-based and aspect-oriented methodology and tool for designing and developing Real-Time Embedded Control Systems (RTECS). This methodology defines a component model for describing modular and reusable software to cope with the increasing complexity of embedded systems. It proposes an aspect-oriented approach to address explicitly the extra-functional concerns of RTECS, to describe separately transversal real time and security constraints, and to support model properties analysis. The benefits of this methodology are shown via an example of Legway control software, a version of the Segway vehicle built with Lego Mindstorms NXT.
The increasing complexity of embedded system applications is leading to a convergence between hardware and software development. In this paper we aim to close the gap between hardware and software implementation by pr...
详细信息
ISBN:
(纸本)9781467312615
The increasing complexity of embedded system applications is leading to a convergence between hardware and software development. In this paper we aim to close the gap between hardware and software implementation by proposing guidelines for handling both domains in a unified fashion. We leverage on aspect-oriented programming (AOP) concepts to provide unified C++ descriptions that can be both compiled to software or synthesized to dedicated hardware using high-level synthesis tools. Our results show that our strategy leads to reusable components at the cost of a small overhead when compared to software-only and hardware-only C++ implementations.
暂无评论