Menu:

Latest news:

January 2008:
Vrije Universiteit Brussel is hosting the International Conference on Aspect-Oriented Software Development.

January 2007:
AspectLab is organizing AOSD training days for industry.

October 6th, 2005:
Redesigned AspectLab website put online.

Partners:







Funding:



Related:

- AOSD Portal
- AOSD Europe

About AspectLab

The strategic basic research project AspectLab addresses the development of complex, distributed software systems using Aspect-Oriented Software Development methods, languages and techniques. It proposes a collaboration between the current AOSD actors in Flanders so as to strengthen generic research in this field and demonstrate the power and advantages of AOSD to Flemish software industry for a range of non-trivial and representative applications.

Project Partners

Research in AspectLab is carried out by five research groups in three Flemish universities: SSEL and PROG (Vrije Universiteit Brussel), DistriNet and SOM (Katholieke Universiteit Leuven) and OSE (Universiteit Gent). Together these research groups have all of the required expertise and capacity to undertake the proposed venture. All partners have a proven track record in both fundamental and applied research; moreover, both the Vrije Universiteit Brussel and the Katholieke Universiteit Leuven are core partners in AOSD Europe.

The project consortium consists of the following participants:

Project Description

The advent of the modern information age has led to the daily routine of working with computers and employing a wide range of software systems to access and share information. In order to service the increasing needs of the information society, software is becoming large, complex and distributed. As the complexity of software increases, the separation of concerns principle - which enables the encapsulation of technical or business functionalities - becomes essential because it enables developers to focus on one concern at a time. Consequently, companies have adopted a range of separation of concerns techniques including components, patterns, architecture styles and middleware approaches to manage software complexity and improve quality attributes. These attributes include evolvability, cost-efficiency, composability, reliability, fault-tolerance, reusability, scalability, dependability, adaptability, robustness and so on. Tangling key business domain logic with implementation strategy severely constrains a number of these attributes. The same is true for broadly scoped non-functional properties, such as distribution, mobility, security and real-time constraints, that cut across various parts of a system.

Aspect-Oriented Software Development (AOSD) addresses crosscutting concerns by providing means for their systematic identification, modularization, representation and composition throughout the software life cycle. Its potential benefits include improved ability to reason about the problem domain and corresponding solution; reduction in application code size, development costs and maintenance time; improved code reuse; and architectural and design level reuse. The increasing popularity of AOSD and its industrial application is reflected by the involvement of ma jor corporations such as Siemens, IBM, Xerox and Boeing and its inclusion by MIT in its list of top ten most promising technologies. The European Commission is about to finance a Network of Excellence (NoE) on Aspect Oriented Software Development (AOSD). Although several research groups in Flanders took up research in AOSD and play an important role in the NoE, AOSD is not widely known, accepted or applied in mainstream software development efforts in Flemish companies and organizations. The goal of the collaboration proposed here is to strengthen the generic research on AOSD in Flanders and to demonstrate the power and advantages of AOSD for a range of complex applications that are representative for a large part of the software industry in Flanders. We feel that there are three main reasons why the intrinsic powerful concept of AOSD is not gaining a stronger foothold faster.

Today, only a specific section of the design space of aspect languages is actually explored and many interesting and possibly essential concepts in AOP are left to be discovered and exploited. Typically a large scale complex application is not a monolithic program. There is a need to address issues such dynamic AOSD for Component-Based Software Development and the ability to cope with different languages and paradigms.

Like the natural progression of several other software development techniques (e.g. OO), the initial focus of AOSD has been at the programming level. The focus of AOSD is now expanding to earlier stages of software development. There is a need to review the full life cycle process to address AOSD properly in an industrial context.

The typical examples used over and over again in research reports are not appealing and sufficiently convincing for the software developer who is involved with large scale, complex software applications. There is a need to have a range of good demonstrators that show more evolved applications of AOSD in realistic applications.

We will address these issues by collaborating on eight research tracks organized in three virtual labs.

Language Engineering and Deployment Lab

The Language Engineering and Deployment lab groups the research efforts related to AOP languages and technologies. A first track focusses on multiparadigm AOP, i.e. approaches that accommodate functional concerns expressed in different programming language paradigms and non-functional concerns expressed in dedicated concern-specific languages. A second track is on the integration of aspect-oriented concerns in component models. A third track investigates advanced middleware support for aspects in distributed environments.

AspectJ played (and still plays) a fundamental role in the creation of AOSD as a research domain. One could actually argue that it shaped the aspect metaphor. The result is that current research in AOP is largely inspired by AspectJ: most artifacts that are built either use, extend or generate the AspectJ model and are to a large extent a reflection of its view on aspects. Consequently only a specific section of the design space of aspect languages is actually explored and many interesting and possibly essential concepts in AOP are left to be discovered and exploited. In this track we plan contributions on 3 complementary issues which play in important role in the pilots: Multi ParAOP, Dynamic AOSD for the Component World, and Middleware for Distributed Aspects.

Multi Paradigm AOP The use and combination of separate languages dedicated to the natural expression of different types of concerns, originally present in the separation of concern idea, is not reflected in this AspectJ research line. In business support applications, business logic for example is best expressed in a declarative rule language where the operational aspects are typically implemented in an ob ject-oriented programming language. An AOP approach is a perfect candidate for bringing these two, both functional, concerns together but requires research on advanced join point models that allow precise, intentional and evolvable expression of the locations where these two concerns expressed in two really different programming paradigms can interact. Likewise non-functional concerns as diverse as distribution, security, transaction management and quality of service demand for dedicated aspect languages and join point models that can cope with multiple domain specific languages.

Concrete objectives for this subtrack are:

Dynamic AOSD for the Component World As we target in this proposal complex distributed applications we have to research the interaction between AOSD and Component-Based Software Development. Advanced aspect instantiation and weaving models must be investigated together with strong mechanisms for aspect composition to allow for building complex applications by adding together many different concerns in a flexible way. To retain all the advantages of CBSD, aspects in a component world should exhibit the same characteristics as the components themselves: loosely coupled, ready for reuse, composable, dynamically deployable, etc.

Concrete objectives for this subtrack are:

Middleware for Distributed Aspects We will study middleware that supports the development and deployment of distributed aspects.

Concrete objectives for this subtrack are:

Aspect-Oriented Software Engineering Lab

The Aspect-Oriented Software Engineering lab groups the research efforts that consider aspects throughout all stages of the software development process. A first track is on notations for both functional and non-functional concerns in requirements, design and implementation. A second track focusses on automatic mapping and transformations of models for the different development stages. A third track investigates support for evolution in aspect-oriented applications.

Full Life Cycle support for Aspects We will study and enhance software development processes by enabling an aspect-oriented approach throughout all stages of software development.

Concrete Objectives for this subtrack are:

Automatic Mapping and Transformation We seek to apply the basic principles of model-driven development to the concepts supporting AOSD, as they will be worked out in this pro ject at the level of requirements, design and implementation.

Concrete Objectives for this subtrack are:

Evolution Within computer science, the research sub ject of software evolution is concerned with the identification and application of techniques and methods to improve the evolvability of software. This is generally thought to constitute a critical issue within software engineering: large software systems, however systematic and professional their design, typically degrade into legacy systems. With the advent of AOSD, software developers are offered a new means to create more easily evolvable software. This raises new research questions which we will address in this track. We will take a look at how we can evolve legacy systems using AOP and how we can provide support for evolution of AOP software.

Concrete Objectives for this subtrack are:

Applications Lab

In the Applications lab different types of applications are studied and demonstrators are developed for a number of pilots. A first focus is on business support applications that intertwine different functional concerns: the business logic that dictates what decisions to make and the operational aspects on how the application interacts with either other application components or with its users. A second focus is on distributed applications where the distribution in itself is a non-functional concern that crosscuts the application’s functionality and where other non-functional concerns such as security or quality of service (reliability, timing constraints) add to the complexity.

Business Support Systems The intention is to have access to a number of relevant real-world cases that can serve as a platform for quantitative and qualitative evaluations of various aspect-related methods and techniques.

Concrete objectives for this subtrack are:

Non-functional Requirements in Distributed Applications We aim to deliver evidence, a proof-of-concept and to describe experience on the effectiveness of AOSD as the next generation software technology that will determine the shape of system software for non-functional requirements in distributed applications.

Concrete objectives for this subtrack are:

Publications

The publications list hasn't been updated yet, our apologies for the inconvenience.