Learn More
Aspects are behaviours that are tangled and scatteredacross a system. In requirements documentation, aspectsmanifest themselves as descriptions of behaviours that areintertwined, and woven throughout. Some aspects may beobvious, as specifications of typical crosscutting behaviour.Others may be more subtle, making them hard to identify. Ineither case, it is(More)
Requirements such as distribution or tracing have an impact on multiple classes in a system. They are <i>cross-cutting</i> requirements, or <i>aspects</i>. Their support is, by necessity, scattered across those multiple classes. A look at an individual class may also show support for cross-cutting requirements tangled up with the core responsibilities of(More)
In practice, object-oriented design models have been less useful throughout the lifetime of software systems than they should be. Design models are often large and monolithic, and the structure of the designs is generally quite different from that of requirements. As a result, developers tend to discard the design, especially as the system evolves, since it(More)
—Current adaptation approaches mainly work in isolation and cannot be easily integrated to tackle complex adaptation scenarios. The few existing cross-layer adaptation techniques are somewhat inflexible because the adaptation process is predefined and static. In this paper we propose a methodology for the dynamic and flexible adaptation of multi-layer(More)
New and planned mobile Internet devices, such as Apple's iPhone and Motorola's Droid, have powerful processors and a variety of sensors that can be leveraged to build cyber-physical applications that collect sensor data from the real world and communicate it back to Internet services for processing and aggregation. This paper presents a sampling of key R&D(More)
Advances in pervasive technology have made it possible to consider large-scale application types that potentially span heterogeneous organizations, technologies, and device types. This class of application will have a multilayer architecture, where each layer is likely to use languages and technologies appropriate to its own concerns. An example application(More)