Blunder Dome Sighting  
privacy 
 
 
 

Hangout for experimental confirmation and demonstration of software, computing, and networking. The exercises don't always work out. The professor is a bumbler and the laboratory assistant is a skanky dufus.



Click for Blog Feed
Blog Feed

Recent Items
 
Conquering the Business-Application Life Cycle
 
FLINT for bug-free, secure, and reliable software....
 
TRUST 2: Proliferation of COTS in Critical Infrast...
 
TRUST: Team for Research in Ubiquitous Secure Tech...
 
Bring us Your Metadata, Your Tired, Your Poor, You...
 
Building Blue Relationships and Partnerships
 
Secure Overlays on Insecure Internets: It Could Ha...
 
All Your BIOS Are Still Mine
 
CyLab's Angle on Sustainable Computing and Trustwo...
 
C# Moves Head in Statistical Leapfrog

This page is powered by Blogger. Isn't yours?
  

Locations of visitors to this site
visits to Orcmid's Lair pages

The nfoCentrale Blog Conclave
 
Millennia Antica: The Kiln Sitter's Diary
 
nfoWorks: Pursuing Harmony
 
Numbering Peano
 
Orcmid's Lair
 
Orcmid's Live Hideout
 
Prof. von Clueless in the Blunder Dome
 
Spanner Wingnut's Muddleware Lab (experimental)

nfoCentrale Associated Sites
 
DMA: The Document Management Alliance
 
DMware: Document Management Interoperability Exchange
 
Millennia Antica Pottery
 
The Miser Project
 
nfoCentrale: the Anchor Site
 
nfoWare: Information Processing Technology
 
nfoWorks: Tools for Document Interoperability
 
NuovoDoc: Design for Document System Interoperability
 
ODMA Interoperability Exchange
 
Orcmid's Lair
 
TROST: Open-System Trustworthiness

2005-04-24

 

How Do We Safely Orient for Aspects?

Slashdot | Aspect-Oriented Programming Considered Harmful.  My first exposure to AOP was in the way that Kiczalis talked about having implementations be exposed in an appropriate way beneath or on the side of abstract interfaces.  I thought of this as an interesting idea for optionally, conditionally, and dynamically optimizing an integration of components without torpedoing the abstraction.  My mental picture was always anchored to the prospects of a nice fit with something like the IUnknown::QueryInterface provision of COM components, and I often find applications that take that form in crafting interface-based component frameworks. Later, I read that AOP is about cross cutting, a much more difficult notion.  The idea is appealing, and I think of it as useful in terms of multiple patterns and architectural perspectives across a single system.  The trick, if I understand it, is in maintenance of aspects such that they are each dealt with in their own locality and as separated concerns, yet the implementation must have accommodation of each aspect distributed among its objects such that the aspect is realized and the objects integrate properly. That's my basis for wondering what this cautionary analysis is all about. The notion of aspects is very compelling, but maintaining a coherent integration of objects that honors multiple aspects seems difficult and also not something done light-weightly. I'm not concerned so much about this to pay $50 per page for the Forrester report, and I can't confirm nor deny the relationship to the "fragile pointcut problem" in the work of Maximilian Stoerzer and Christian Koppen.  The analogy with the harmfulness of "Go To" (and the need for a kind of "come from," arguably even more harmful) is interesting though.  The advantage of the structured-programming model was that it was possible to inspect a local part of a program and see all of the control relationships and only the control relationships that had any bearing on that structural element.  (We still had to cope with assignment-statement considered harmful, but great progress was made just the same.)  My initial, simplistic understanding of AOP doesn't change that.  The cross-cutting idea does, in that looking at a locality doesn't necessarily present all of the interactions and dependencies, and those can be changed without any indication in the piece of program you are looking at.  Somehow, divide-and-rule must be preserved in a way to avoid difficult, brittle situations. It would appear that is indeed the challenge and the current AspectJ point-cut approach leaves much to be desired. You can look at the fragile pointcut as an exception that can return control, and in the general aspect-oriented case, the rule for throwing the exception might not even be visible in the code under examination.  This challenge has me rethinking exceptions that can return control, too.  In regard to trustworthiness of code, I now realize that I must be leary of languages that don't require accounting for exceptions with something like strong typing and explicit declaration, too. I think the cross-cutting notion of aspects is of great importance in software engineering and in the pattern and design level. I am not so sure that we have figured out how to carry it down to the maintained form of the code in a non-brittle way.  At this point I must plead ignorance and remain alert for more contributions on the topic.

 
Construction Structure (Hard Hat Area) You are navigating Orcmid's Lair.

template created 2004-06-17-20:01 -0700 (pdt) by orcmid
$$Author: Orcmid $
$$Date: 10-04-30 22:33 $
$$Revision: 21 $