• No se han encontrado resultados

2. SEGUNDO MOMENTO: CONTEXTO TEÓRICO DE LA EXPERIENCIA

2.2. Delimitación del objeto

Contents

10.1. Summary 127

10.2. Future Work 128

We conclude this thesis by giving some summarizing remarks on HILA and

sketch some future work.

10.1. Summary

We have presented our approach to aspect-oriented modeling using the High- level Aspects (HILA), an aspect-oriented extension of UML state machines [57].

The most distinguishing feature of HILA’s modeling language is its high abstrac- tion level. That is, HILA aspects do have a dynamic semantics, whereas in other

prevalent approaches of aspect-oriented state machines the aspects are defined as syntactical modification of elements of of the base model. The semantics of HILA is given in a structural operational manner, and implemented in the weaving algo- rithms.

The high abstraction level considerably simplifies the complexity of the mod- els. With HILA, the modeler only needs to define whatis supposed to be done by an aspect instead of having to design in every detailhowto do it. We showed examples of how simple it is to model history-based features and synchronization of parallel systems in HILA, which is generally not an easy task using plain UML state machines or using static aspects.

The high degree of separation of concerns of HILA models enables the use of an interesting design method in which the alignment of use cases (including extensions) and design models (base machines and aspects) is very clear. This way we achieve a high traceability between requirements and design artefacts.

HILA is supported tool Hugo/HILA, which reads textual definition of the base machine and HILA aspects, and accomplishes weaving according to the algo- rithms described in this thesis. Model checking HILA aspects, also performed by Hugo/HILA, helps detect modeling mistakes at an early stage of the development process. Reusability of HILA aspects is greatly enhanced by defining templates to

model recurring situations. Our experiences made in modeling the CCCMS case study give rise to the assumption that the Pareto Principle is also valid here, i.e. when modeling a real system, about 80% of the necessary HILA aspects can be defined as instantiations of simple aspect templates.

Apart from the CCCMS case study, HILA has been applied to model adaptive systems [80].

10.2. Future Work

The results of this thesis can be extended in several directions.

It is not surprising that a high-level language like HILA does not exhibit an as high expressive power as low level, i.e. transformational aspect-oriented languages do. We plan to extend HILA to cover behaviors that are currently hard to model. For example, synchronization of parallel regions is currently implemented by wait- ing passively until firing the advised transition would no longer break any desired mutual exclusion. Language constructs indicating another implementation strat- egy, e.g. actively instructing the base machine to get out of the other,, problematic states may be also useful, see [81]. Another desirable language feature would be the synchronization between concurrent objects (see [35] for an example) or to al- low the modeler to distinguish between applying advice at the start of the transition execution, i.e., before the effect of the transition takes place, or at the end of the transition (after its effect). Similarly, more complex annotations thangotocan be defined for final states. However these extensions potentially complicate the weav- ing process and the semantics of aspects; since we have not yet found it necessary to use them in practical applications, we have refrained from adding them to the language.

We defined a structural operational semantics of HILA. It provides a basis to implement the weaving algorithms. Interesting are also other formal semantics, with which we could reason about HILA aspects more directly. In particular, we are currently developing an algebraic semantics of HILA using the framework Maude [15].

In the software development process, HILA is used in the phase of analysis and design. It follows pretty well aspect-oriented requirements engineering as- pects, such as AoURN [54], and may provide a starting point for aspect-oriented implementation using approaches like RAM [41]. Integrating HILA with other

aspect-oriented software development approaches is also part of our future work, see [3]. Note, however, that the HILA methodology of mapping main success scenarios to base machines and use case extensions to aspects does not require aspect-oriented requirements descriptions. Moreover, this mapping may be even valuable to derive an aspect-oriented design from conventional, object-oriented re- quirement artefacts. We therefore plan to extend the techniques described in [77] to generate base machines and aspects from use cases in the syntax of Restricted Use Case Modeling (RUCM, [78]) automatically.

The idea of high-level aspects is not only applicable to state machines. We also plan to define high-level aspects for activity diagrams and interaction diagrams of the UML.

APPENDIX A

Documento similar