Tuesday, September 28, 2004
MOF metalevels numbered upside down
For anyone who's read anything about MOF or MDA, the terms meta-level M0 - M3 will mean something. However that something will depend on what scenario you're discussing, and in most cases it will get very confused once you try and relate whatever you're talking about to the MOF metamodel, which is nominally at meta-level M3.
The example that usually gets (ab)used to explain these things is that the MOF meta-model is at M3. then the UML metamodel, which uses MOF as it's meta-language, is at M2. Then software designs written in UML have Classes in them, which are at M1, and then there are Objects that instances of the UML Classes, and these are at M0.
Sounds simple right? Then let's think about the Instance Diagram (or Interaction Diagram) in UML which expresses the relationships between the Objects. Now the Objects in the Instance Diagram are at M0, and so the Instance Diagram metamodels should be at M1, and the MOF, which is the langauge in which this metamodel is expressed should be M2.... but we already established that the MOF metamodel is always M3.
Why the inconsistency? Well the stock answer is that "It's all relative"... so for each example you have to start at M3 (the MOF metamodel) and count down... This is all very confusing, especially since the M-levels have summary names attached: "M3 = metametamodel, M2 = metamodel, M1 = model, m0 = instances. This is the real problem with this numbering scheme.
Proposal
We take a new leter - K - and start numbering the other way up: K0 is the MOF metamodel, and then every other model or artifact that has an "instance of" relationship to the MOF metamodel gets another number. Then the K-number is always relative to the MOF metamodel, and not some attempt to make an absolute characterisation of "how meta is it?".
Monday, September 27, 2004
Friday, September 24, 2004
When did Grady Booch become such an airhead?
I can't remember where I got the reference to Grady Booch's MDA manifesto... but having had a look, it's so full of boosterism and nonsense, one wonders what planet Booch is living on.
Some specifics. Booch says:
-
I’d like to clear up any fear, uncertainty and doubt surrounding
MDA and present seven important reasons why organizations should consider its
adoption:
- MDA practitioners don’t need to be highly skilled UML modelers.
- ...
- ...
- Business stakeholders will be able to use a Platform-Independent Model (PIM) because it transcends implementation dependencies and is easy to understand.
- ...
- MDA-based applications allow more sophisticated automated testing.
- MDA users won’t become locked into a single vendor.
Firstly: What exactly do "MDA practitioners" do if the don't need to be highly skilled UML modellers? Maybe the hidden meaning is that they need to be highly skilled EDOC modellers, beacuse using UML to model large apps is like using chips and wire and breadboards to build computers.
Then, even though the MDA practitioners only have low/moderate UML skills, the Business stakeholders are gonna be able to understand the PIM (in UML one presumes?) because it's platform independence makes it "easy to understand". Really?
He goes on to elaborate about how Use-case centric design, or RM-ODP viewpoints will help. Well I can see that... and then...
-
In an MDA development project, this separation of concerns becomes even clearer.
Each stakeholder views the application from a unique point of view (business,
architecture, development, infrastructure) and contributes to the project from
a specific area of expertise using an easy-to-learn subset of UML to visualize
a specific domain and ensure that its requirements are clearly stated and well
met.
On to "patterns are good". Yeah, yeah.
Then some hype about available tools:
- ... If your domain doesn’t have the specialized tools already available for some industries (for example, telecommunications network management and fighter-jet avionics are documented on the OMG’s Web pages), you can use general tools for your business apps. Or, if your company uses its own patterns for competitive advantage, this won’t even be an issue.
Then automated testing.
- ... UML 1.5 includes Object Constraint Language with its pre-conditions and post-conditions as well as behavior diagrams optimized for testing. Still, support will improve in UML 2.0, which has features designed for automated testing built in from the start.
Then we get into real fantasy land:
- Interoperability and portability. The platform independence of the first stages of MDA development makes it easier to interoperate with, or even move to, different middleware. Given that the middleware space is crowded with Enterprise JavaBeans, CORBA, Web Services, SOAP, C#, .NET and others, this represents a huge savings in time and cost.
- ...
- A consistent metamodel. A company’s software archive is based on a consistent metamodel, built in UML. This allows its applications to be brought into tools as needed for integration, examination (for duplicate or inconsistent functionality, for example), or other business or technical needs. And that’s just scratching the surface of what a domain-specific metamodel can enable over the long term.
The Heavy-Duty Strength of MDA
MDA offers organizations at least three other distinct advantages:
As for (3): We're gonna bring in applications (not designs for applications) to "tools [unspecified] as needed... for integration, examination... or other business or technical needs". Great! I'm glad that using UML has so many side benefits. I can't wait to see domain-specific metamodels bringing about world peace over the long term.
Pah!
Thursday, September 23, 2004
Don't bother with Tom White
Who's "Tom White", you ask? It's a new Australian film, starring Colin Friels as the eponymous charachter. Tom escapes his draftman's job at a develpment company making soulless suburban housing estates (he works on "Clearwater Springs" estate - built on a garbage tip). He's obviously "cracked" in some way, and embarks on a life as a homeless person.
I found the main character believable enough, but the way the story is told is disjointed, and we're exposed to a bunch of unrelated people that he meets on the streets. Very little is made of his former life, even though we keep getting flashes of what his wife and kids are up to. There seems to be great potential for exporing the relationship to ever-expanding suburbia - but it's never explored. (For me the best thing about the whole film is the drawing his wife finds of the "Clearwater Springs birdfeeder".)
The cimematography and editing are competent, but uninspired. But, despite my well-known capacity for "European pacing", I got bored (and it's only 106 min). I found the cyclic experience devices to be contrived, and the "resolution" to be unsatisfactory. If the goal of the film is to give one empathy with the lifestyle of the homeless (alienation, grabbing human interaction incedentally and discontinuously, boredom, disconnection from society) then the goal was achieved.... but I think a worthier goal would be to give the viewer an appreciation of this state of existence, not a common experience with those in it.
Tuesday, September 21, 2004
Can you tell the gender of a person from their Arabic name?
I'm replying to a prospective student visitor to DSTC, which in the first person is uncomplicated by the gender of the student.... however, when discussing her/him with colleagues, their gender is useful to know so that we can use a single pronoun.
I suspected that an "El" at the begining of the name might give away their gender, so I went looking for confirmation...
After a few google searches failed I found the following fascinating and detailed explanation. http://en.wikipedia.org/wiki/Arabic_name Now I know that the "El" (could also be "Al" in a different transliteration) means "of", and in particular in this context it prefixes the family name... Also, it explains "bin", or "ben", as in Osama bin Laden... which is "son of". But there's much more... take a look.