ECE 1770 72-hour Take-Home Final Exam

Assigned: Friday 11th of April 2003 at 11:59 PM

Due: Tuesday 15th of April 2003 at 11:59 PM (electronically in PDF format and as hard-copy (may be delivered the following day))

Mark: 30 % of final mark.

Guidelines:

Question: "Towards an aspect oriented interface definition language"

An interface definition language (IDL) of one sort or another is used in most middleware platforms (e.g., OMG IDL in CORBA, MIDL in DCOM, and WSDL in Web Services etcetera).

IDLs serve to define the interface of a software component and to abstract from the implementation of the software component. Most IDLs can express module and interface names, application types, and operation signatures.

Aspect oriented programming aims at modularizing code cross-cutting concerns in software systems and has been successfully applied to refactor (decompose) large software systems.

The objective of this question is to explore the motivation, the implementation, and the use of an aspect oriented interface definition language.

Orient your discussion along the following lines and use one of the above listed IDLs as example interface definition language in your discussion:

a.) Present a convincing motivation for or against an "AspectIDL".

b.) Present a possible design of an AspectIDL . Show the IDL language features supporting aspects. For example, consider what aspects are in line with your motivation, how they are defined, and how weaving is performed. If you motivated against an AspectIDL, you should still be able to discuss this point. You may use your discussion here to substantiate your arguments under a.).

c.) Demonstrate the use of your AspectIDL on three different examples.

d.) Discuss the implementation of your AspectIDL design.

For example, you may want to discuss whether or not aspect weaving is done with an extended IDL-compiler or a new aspect weaver in concert with a conventional IDL-compiler. You may want to discuss how AspectIDL interferes with the language mappings implemented by an IDL-compiler.

Your discussion of the implementation should be sufficiently detailed enough to allow any computer scientist/engineer with some knowledge of aspects, middleware, and IDL to implement your design. You may safely assume that this person knows about scanning techniques, parsing techniques, and basic type analysis (e.g., knows how to use lex and yacc, for instance).