Re: can you have interception w/o aop?
"Cristina Videira Lopes" <[email protected]>
| Newsgroups | gmane.comp.programming.aspect.general |
|---|---|
| Message-ID | <[email protected]> |
> -----Original Message----- > To briefly quote from the paper: > > "We say that a design or a part of a design is modular > if its elements > do not depend on each other (although they may depend > on external > design rules that serve to decouple them)." Maybe I'm interpreting this out of context, but this is the strictest definition of modularization that I have ever seen... Under this definition, my laptop doesn't seem to be a modular system. For example, the main body depends on both the power cord and the battery to function properly. There is no design rule that decouples the power cord and the battery from the main body -- the computer industry seems to make a point in creating an endless variety of power cords and batteries that are specific to every laptop model out there. You may say, of course, that there are different design rules decoupling the power cord and the battery for every laptop model. Well, yes, but this seems to trivialize the concept of design rule. Applying this to software, it would mean that you go from a non-modular to a modular design simply by proliferating interfaces, with the sole purpose of "decoupling" every pair of interacting components. While we can do that, those interfaces / design rules / decoupling are an illusion, they serve no real purpose, because some implementation dependencies are an inherent part of the problem formulation. There are many purposes for modularization, not just the ADT-ing purpose, which is what this definition seems to imply. In the case of my laptop, it's very convenient to dettach the power cord and the battery from the main body when I travel, even if they only work for my laptop and no other laptop in the world. The battery-as-module is particularly convenient, as its performance degrades over time; it's good to be able to replace it with another one of exactly the same type, rather than having to buy a new laptop when the battery dies. In the computer industry, non-ADT-ing modularizations work to the financial advantage of market leaders... "Buy a complete modular system where some modules may break; you can get a replacement from us only, at $50!" Standardizing the technology of power cords and batteries -- technically simple -- would disrupt the market. Establishing design rules in a modular design has effects which you may or may not want. But that doesn't mean that a system isn't modular until all of its components depend only on design rules. I would claim that the whole art of modular design is in deciding what is *and what isn't* a design rule. The proliferation of trivial design rules can have a negative effect on the value of the design. -Crista PS. ADT = Abstract Data Type, roughly, an interface that can have many implementations. __________________________________________________ AOSD Discuss mailing list - [email protected] To unsubscribe go to http://aosd.net Check out the AOSD.net Wiki: http://aosd.net/wiki