Section 26.5. RELATED WORK


26.5. RELATED WORK

There are several promising lines of research on the topic of aspects, frameworks, and UML. For example, we can find approaches that extend UML with stereotypes matching particular aspects, such as synchronization [12], so that the weaver can automatically compose them with functional components. In these cases, many details about specific aspect behavior are somehow not explicitly designed in UML. Other examples propose more general approaches [1, 5], such as so-called composition patterns, trying to support abstract aspect designs.

Theme/UML [5] introduces a UML-based approach to designing reusable aspects based on early research on subject-oriented programming. A design is broken up into "themes," each of which encapsulates a collection of classes, defining a particular viewpoint of a domain and/or providing a coherent set of functionality. The classes in themes may not be complete, containing only the details relevant for the theme's viewpoint and not for the whole system. Then there is a process of theme composition that integrates the classes in separate themes, reconciling differences in views and combining functionality. There are many ways to specify theme composition. The authors just present a basic set of rules, but other mechanisms can be specified according to particular needs. Composition Patterns refer to common patterns of such composition relationships that emerge when the same or similar themes are used in different contexts. This provides an important level of abstraction when specifying composition relationships, thereby improving comprehensibility and reusability. Moreover, changes are localized, which avoids tangling, and traceability is preserved. An experimental environment supporting the approach is under development. An important aspect of these design models, quite similarly to Smartweaver, is that they set developers free to decide which technology is more suitable to map designs into implementations.

Recently, Elrad, Aldawud, and Bader have presented a UML profile for generating aspect-oriented code that preserves the modularity of crosscutting concerns [9]. This is a natural generalization of the AMF approach. They specify some requirements to accomplish this goal [1]. First, the profile will enable specifying, visualizing, and documenting the artifacts of software systems based on aspect orientation. Second, the profile will be supported by UML, allowing seamless integration of existing CASE tools. Third, the profile will take into account the modular representation of crosscutting concerns. Finally, the profile will not impose any behavioral implementation for AOSD but will provide a complete set of model elements that enable representing the semantics of the system based on aspect orientation. The methodology is based on using statecharts for specifying the mechanics of weaving.

Fontoura, et. al., describe UML-F profile, a tool that explicitly models framework variation points in UML diagrams by expressing the allowed structure and behavior of variation points [11]. UML-F consists of several extensions to standard UML. Here, framework variation points are modeled in terms of tagged values, applicable to both methods and classes. For instance, developers can express that the implementation of a given method may vary depending on the framework instantiation, or they can indicate that a class interface may be extended during the framework instantiation by adding new functionality. UML-F deals basically with three kinds of variation points: variable methods, extensible classes, and extensible interfaces. In addition, OCL specifications are used to describe pattern behavior that should be followed by the variation point instances. The authors suggest a prototypical environment based on Prolog, which supports assistance for both framework development and instantiation. As UML-F focused on the representation of frameworks at design level, several different techniques can be used to effectively implement these designs (e.g., design patterns, meta-programming, and aspect-oriented programming). This approach could be an interesting complement for Smartweaver.

Overall, the main difference between the analyzed approaches and Smartweaver concerns the way generic aspect models and particular aspect programming techniques are finally combined. The former approaches preserve the independence of particular implementation models because they mostly address the problem of providing appropriate rules (syntax and semantics) to express composition of generic designs. On the other hand, Smartweaver is more focused on agent-based assistance for the weaving process. We believe that this kind of assistance represents an interesting advantage in terms of automation levels over more passive design environments.



Aspect-Oriented Software Development
Aspect-Oriented Software Development with Use Cases
ISBN: 0321268881
EAN: 2147483647
Year: 2003
Pages: 307

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net