[aosd-discuss] Fw: invasives aspects
Ramy Shahin
r.shahin at computer.org
Tue Jan 9 15:18:45 EST 2007
There is also a book written by Uwe Assman on invasive composition. That
book is not specific to aspect-orientation though:
http://www.amazon.com/Invasive-Software-Composition-Uwe-Assman/dp/3540443851
Ramy
Chitchyan, Ruzanna wrote:
>
> To provide some more "food for thought": there was a panel on AOP and
> modular reasoning at the ADI 2006 workshop at ECOOP. The summary of
> the panel will appear in the workshop report in the ECOOP workshop
> reader, but below is the relevant extract
>
> Thanks
>
> R.
>
>
>
>
>
> ****Extract (section 5) from the ADI'06 workshop report*****
>
> *5. Do aspectual dependencies and interactions prevent modular reasoning?*
>
> A panel of experts from the AOSD-Europe project discussed the question
> /Do aspectual dependencies and interactions prevent modular
> reasoning?/ Each of the four panellists presented a specific view on
> the issue, which are briefly outlined below.
>
> *5. 1. Panel Positions*
>
> */Adrian Colyer /*questioned how could an approach that gives better
> modularity not improve modular reasoning? This is a contradiction. He
> pointed out that any new modularity mechanism, by virtue of allowing
> new ways of modularity, will have to provide new ways of composition.
> So if the aspectual modules and compositions "break modular
> reasoning", then what kind of reasoning is broken? He argued that it
> is the "old" modularity that will be broken, but a new form of modular
> reasoning will arise from new modular representation and composition.
> Adrian drew a parallel of the AOSD acceptance with that of past
> paradigm shifts by recounting that before procedures the developers
> had needed to do global reasoning. With procedures they could do local
> reasoning, but still had global data. With objects they could also
> locally define data. Aspects are the next step in this ladder of
> evolution, allowing to locally define functionality and data used in
> multiple locations by objects or procedures.
>
> Adrian summarised the argument of AO opponents as "if we need to know
> about all aspects to reason about a module, how can we have modular
> reasoning"? He then explained that, in his view, such argument means
> that modular reasoning implies complete locality. However, modular
> reasoning is not "all or nothing", but a mechanism to support partial
> reasoning about partially localised code or modules in the same way
> as, for instance, procedures allow useful analysis about the procedure
> content, but they do need to refer to the instance variables. Thus,
> AOP supports better _partial modular reasoning_.
>
> */Awais/* */Rashid/* stated that aspects are about abstraction
> (abstracting away from the details of how that aspect might be
> scattered and tangled with other functionality), modularity (allowing
> to modularise the details of interest, hence facilitating modular
> reasoning), and composability [11]. He noted that in his view
> _composability_ is of a paramount importance as modules need to relate
> to each other in a systematic and coherent fashion. Aspects provide
> advancement in composition mechanisms, thus complementing the
> traditional modular reasoning with compositional reasoning, i.e., the
> ability to reason about global and emergent properties of the system
> using the modularised information. Awais underlined that in his view,
> the important contribution of AOP is the support for this
> compositional reasoning, which helps developers to more effectively
> reason about dependencies and interactions compared to traditional
> software engineering techniques. Hence, aspects do not prevent modular
> reasoning as this is supported via the abstraction and modularity
> support. Furthermore, the composability properties of aspect-oriented
> techniques enhance the compositional reasoning support available to
> developers.
>
> */Theo D'Hondt/* suggested that maybe such questions as the topic of
> this panel were rising because the AO community has approached the
> notion of aspects from the wrong perspective. Theo pointed out that
> historically Computer Science has developed by increasing the level of
> abstraction of the main elements used in development. However, this
> progression trend was broken in case of aspects. The break was in
> that historically each new theory had worked to show that the newly
> proposed abstraction (e.g., procedure, object) is the "rule" for the
> development in that suggested paradigm. However, in case of AO,
> aspects are treated as "an exception" to the existing abstractions.
> Thus, Theo asked if the AO community should try and view objects and
> hierarchical decomposition as a "specialisation" of aspects? He
> proposed that, aspects should be _more general abstractions_ than
> those of the previous theory. In conclusion, Theo suggested that
> aspects should be studies "on their own" as modules, along with their
> reasoning support. However, this will only be possible if aspects are
> viewed as more general, subsuming previous abstraction types, so the
> view on aspects should be revisited.
>
> */Mario Sudholt/* was sceptical that modularity and full obliviousness
> were possible with aspects. Mario explained that traditionally, when
> writing a system, one would start with modules and interfaces and when
> writing them he or she would have a good knowledge of the program
> structure and behaviour. However, with AOP, as it is today, the
> development is moving from this modular development, into the style of
> _evolutionary_ development. He concluded that he does not believe that
> the current state of art provides any proof that AO supports an
> adequate modularity. Current approaches to modular properties in the
> presence of aspects (e.g.,[1, 7]) are either too restrictive or not
> powerful/systematic enough to render a solution. He suggested that
> this point will remain to be seen in the future.
>
> *5.2 Discussion*
>
> The discussion turned to the question of what is the simplest mental
> image of aspect. It was suggested that in most cases aspect is
> understood as "interrupt routine plus interrupt processing". However,
> this is a very primitive view and the community should work to move
> away from this primitive image of aspect to more appropriate image for
> a fully fledged module. Indeed, an aspect has state and behaviour, as
> a class has state and methods. A class has called methods running over
> variables, and aspect has pointcuts, advice and state, with advice
> running when the pointcut is matched. So aspect is as much a module as
> a class.
>
> The workshop participants also agreed that one should not think that
> "an aspect belongs to a class". Aspects are for modular reasoning
> about the aspects themselves, not the class. The claim that aspects
> change the classes in an unintended way can be equally well stated
> about the classes changing each other as well. The claim that the
> class does not know which aspects will apply on it, is also valid
> about the call to procedures: one does not know which procedure will
> be called, particularly in cases of late binding.
>
> Adrian Colyer also argued that successive levels of modular reasoning
> are possible with AspectJ, looking at the aspect only; then at aspects
> with the type of applying advice, i.e., before, after or around; after
> this the details about the body of the advice can be included into the
> reasoning. Thus, different levels of detail for reasoning can be
> available at the different element consideration views.
>
> The discussants talked about global versus local design with aspects
> versus OO. It was argued that in OO the global design is hard but the
> local effects are very clear. On the other hand, with AO global design
> is clear and relatively easy, though its effects on local reasoning
> are more difficult to account for. Tool support can help in assisting
> local reasoning by completing the local details recovered from global
> compositions. However, no tool support can adequately recover the
> global details from local ones, supporting global reasoning. Thus, AO
> seems to progress along the right path.
>
> Additionally, the participants agreed that aspects bring into
> programming languages the notions of quantification over temporal and
> conditional references which are broadly used in natural language
> (e.g., notions about history of the programme execution, etc.). Thus
> aspects enrich the current programming languages.
>
> After a lively discussion, in summary, most workshop participants
> agreed that aspect interactions need to be addressed, but they do not,
> in principle, prevent modular reasoning.
>
>
>
> *********
>
>
>
>
>
>
>
>
>
> ------------------------------------------------------------------------
>
> *From:* discuss-bounces at aosd.net [mailto:discuss-bounces at aosd.net] *On
> Behalf Of *Ashley at Metamaxim
> *Sent:* 09 January 2007 16:55
> *To:* Gregor Kiczales; AOSD discuss
> *Subject:* Re: [aosd-discuss] Fw: invasives aspects
>
>
>
> Gregor
>
>
>
> > The various arguments that AOP does not support modular reasoning
> invariably rest on the notion that we ought to be
>
> > able to do modular reasoning without even simple machine support --
> to be able to print code out and reason about it
>
> > effectively from the printouts. Since no practicing developer tries
> to reason about code today without tool support, even
>
> > for OO programming, it seems an unrealistic constraint to place on AOP.
>
>
>
> The paper I cited does not suggest that reasoning must/should be
> possible without tool support. I can see that using a tool might make
> reasoning easier, but it is difficult to imagine that it can affect
> whether reasoning is theoretically possible.
>
>
>
> > IMHO all of these arguments against 'invasive' advice miss the key
> point: without AOP modularity constructs, true
>
> > crosscutting concerns cannot be reasoned about in a modular way. With
> AOP constructs they can.
>
>
>
> I did not understand this comment. Can you elucidate, please?
>
>
>
> Rgds
>
> Ashley
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> discuss mailing list - discuss at aosd.net
>
> To unsubscribe and change options, go to:
> http://aosd.net/mailman/listinfo/discuss_aosd.net
>
> Check out the AOSD.net Wiki: http://aosd.net/wiki
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://aosd.net/pipermail/discuss_aosd.net/attachments/20070109/51feee3c/attachment-0001.html
More information about the discuss
mailing list