The benefits associated with separation of concerns are well established. Aspect-Orientation is a methodology that aims at separating components and aspects from the early stages of the software life cycle, and using ...
详细信息
ISBN:
(纸本)9781932415490
The benefits associated with separation of concerns are well established. Aspect-Orientation is a methodology that aims at separating components and aspects from the early stages of the software life cycle, and using techniques to combining them together at the implementation phase. Componentbased programming systems have shown themselves to be a natural way of constructing extensible software. Well-defined interfaces, encapsulation, late binding and polymorphism promote extensibility, yet despite this synergy, components have not been widely employed at the systems level. This is primarily due to the failure of existing component technologies to provide the protection and performance required of systems software. In this paper we identify the requirements for a component system to support extensions, and describe an extensibility and adaptability in the design of system software. We discuss an aspect-oriented framework that can simplify system design by expressing it at a higher level of abstraction. Our work concentrates on how to achieve a higher separation of aspects, components, and layers from each other. Our goal is to achieve a better design model for system software in terms of extensibility, reuse and adaptability.
This paper describes the principles underlying an efficient implementation of a lazy functional language, compiling to code for ordinary computers. It is based on combinator-like graph reduction: the user defined func...
详细信息
This paper describes the principles underlying an efficient implementation of a lazy functional language, compiling to code for ordinary computers. It is based on combinator-like graph reduction: the user defined functions are used as rewrite rules in the graph. Each function is compiled into an instruction sequence for an abstract graph reduction machine, called the G-machine, the code reduces a function application graph to its value. The G-machine instructions are then translated into target code. Speed improvements by almost two orders of magnitude over previous lazy evaluators have been measured;we provide some performance figures.
A case study on the simulation of a local area network (LAN) that has been used at Vrije Universiteit Brissel (VUB) and the University of Bern to illustrate evolution of object-oriented programs, is reported. The stud...
详细信息
A case study on the simulation of a local area network (LAN) that has been used at Vrije Universiteit Brissel (VUB) and the University of Bern to illustrate evolution of object-oriented programs, is reported. The study is intended to illustrate modeling support for software evolution. The case consists of an initial version of the simulation program and a series of changes in the specification that require it to evolve. The evolution of the program corresponds to a series of four consecutive requirements at the level of the LAN, which must be incorporated into the simulation program.
In the advent of ambient intelligence, introducing ubiquitous mobile systems and services in general and mobile code in particular, network latency becomes a critical factor, especially in wireless, low-bandwidth envi...
详细信息
As concurrent software systems become larger, the interaction of their components is becoming more complex. This interaction may limit reuse, making it difficult to validate design and correctness and perhaps forcing ...
详细信息
ISBN:
(纸本)0769510809
As concurrent software systems become larger, the interaction of their components is becoming more complex. This interaction may limit reuse, making it difficult to validate design and correctness and perhaps forcing reengineering of these systems in order to meet future requirements. In order to reduce this complexity and to build stable and adaptable concurrent software systems, we present an approach that emphasizes the separation of interaction components from the functional components.
This paper presents linguistic primitives for publish/subscribe programming using events and objects. We integrate our primitives into a strongly typed object-oriented language through four mechnisms: (1) serializatio...
详细信息
ISBN:
(纸本)1581133359
This paper presents linguistic primitives for publish/subscribe programming using events and objects. We integrate our primitives into a strongly typed object-oriented language through four mechnisms: (1) serialization, (2) multiple subtyping, (3)closures, and (4) deferred code evaluation. We illustrate our primitives through Java, showing how we have overcome its respective lacks. A precompiler transforms statements based on our publish/subscribe primitives into calls to specifically generated typed adapters, which resemble the typed stubs and skeletons by the rmic precompiler for remote method invocations in Java
The purpose of my HCI research is to use the Design Patterns approach to establish a framework to support designing WIMP User Interfaces. In this paper I will introduce the WIMP+ User Interfaces and the idea to use th...
详细信息
ISBN:
(纸本)1581132484
The purpose of my HCI research is to use the Design Patterns approach to establish a framework to support designing WIMP User Interfaces. In this paper I will introduce the WIMP+ User Interfaces and the idea to use the Acquisition-Computation-Expression-Execution [6] (ACEE) Design Pattern to build the framework.
Separation of concerns is at the heart of software development, and although its benefits have been well established, the core problem remains how to achieve it. For complex software systems the solution is still deba...
Separation of concerns is at the heart of software development, and although its benefits have been well established, the core problem remains how to achieve it. For complex software systems the solution is still debatable and it is a major research area. Object Oriented programming (OOP) works well only if the problem at hand can be described with relatively simple interface among objects. Unfortunately, this is not the case when we move from sequential programming to concurrent and distributed programming. The September 1993 CACM issue was devoted to the problematic marriage between OOP and Concurrency [Cohen 93]. Since then, numerous workshops, articles and books have attempt to tackle the problem. The core complexity is that concurrent and distributed systems manifest over more than one dimension. Features such as scheduling, synchronization, fault tolerance, security, testing and verifications are all expressed in such a way that they tend to cut across different objects. Hence, simple object interfaces are violated and the traditional OOP benefits no longer hold. One of the current attempts to resolve this issue is the Aspect Oriented Software Architecture. To address this multi-dimensional structure of concurrent systems we distinguish between components and aspects. Aspects are defined as properties of a system that do not necessarily align with the system’s functional components but tend to cut across functional components, increasing their interdependencies, and thus affecting the quality of the software. Although not bound to OOP, Aspect-Oriented programming (AOP) is a paradigm proposal that retains the advantages of OOP and aims at achieving a better separation of concerns. In this paper we provide an assessment of AOP and we discuss the architecture of an aspect-oriented framework. The goals of our proposal is to achieve an improved separation of concerns in both design, and implementation, to provide adaptability, and to support the complex interaction
暂无评论