Re: Entity and Identity

From: Walter Mitty <wamitty_at_verizon.net>
Date: Mon, 28 Sep 2009 11:17:37 GMT
Message-ID: <lX0wm.3668$tl3.49_at_nwrddc01.gnilink.net>


"Clifford Heath" <no.spam_at_please.net> wrote in message news:qH%vm.75818$nQ6.13277_at_newsfe07.iad...
> Walter Mitty wrote:
>> My initial motive in starting the thread was precisely to get some kind
>> of rational discussion going between people who find value in object
>> models and people who find value in relational models.
>
> I believe that it's possible to unite them, and I've set myself that task.
>

Good luck. I mean it. As I've said before, better minds than mine have set themselves that task, and failed.

> It does require a change to the programming language paradigm; my API
> has no new/delete, only assert/deny within a constellation of facts.
> Most of the rest of the O-O paraphernalia remains intact, and doesn't
> interfere with the relational and transactional nature of the system.
>

You'll forgive me if I don't leap to immediately learn your scheme. I'm learning some other things right now, and I choose not to bite off too many learning activities at once.

>> When we take on the task of building an information system that
>> represents some part of the universe (read "real world"), we accept as
>> given the division of that universe into identifiable component parts
>> (what I call "entities"). This division is inherent in the problem
>> statement for the information system we are to build.
>
> Right; that's why we call it "modeling", and why it's viewed as a
> design activity rather than a descriptive one (see Simsion's PhD
> thesis for an exploration of this position).
>

I don't think that modeling is always a design activity. Sometimes a model can be used to capture what's discovered during analysis rather than what's devised during design. In particular, I'll call your attention to Peter Coad's book "Object Oriented Analysis". For reasons having to do with my own quirks, I decided to learn a little bit about object modeling back in the nineties, even though I hadn't learned any object oriented programming. That led me to OOA.

There is a lot of object modeling in Coad's book, and it's all devoted to analysis, not design. Failure to distinguish analysis and design is endemic to our field of endeavor. It doesn't matter whther you're talking to OO enthusiasts, RM devotees, or bit twiddlers. There are a lot of people who cannot even conceptually distinguish analysis from design. Even someone like myself, who tries to keep the two separate, occasionally throws something into an analysis that is actually a feature of a proposed solution and not a feature of the problem as given.

>> If my practical experience is any guide, the community of stakeholders
>> often has a hazy idea about just what those entities are, and very
>> haphazard notions about how to identify them. Different parts of the
>> community will use different identifiers to identify the same entity,
>> and even the same identifier to identify different (although closely
>> related) entities.
>
> To my mind this is at the root of perhaps the preeminent problem in
> delivering information systems, namely the problem of specification.
> It's for that reason that the Constellation Query Language is plain
> text, so as not to exclude anyone (capable of understanding the domain)
> from participating. The text can be synchronised with diagrams, but
> no special training is required to read and critique a CQL model.
>
>> Sorting that confusion out is (part of) data analysis (in the case of
>> building a database), and it has to be done regardless of whether one
>> intends to take a O-O or an RM view of the data.
>
> Sadly it's often not done in O-O projects, and those projects suffer
> from the lack of it. I think *that* issue is the main reason for
> complaining about O-O... but really, the problem is in the training
> of the teams, and to an extent in the languages.
>

Again, I'll call attention to OOA. OO is not the only arena in which analysis is undervalued. I would have to say that I undervalued analysis for about 18 years after taking my first programming course. It was a real comeuppance for me to discover that there was an actual discipline there.

I'm more familiar with complaints about OO in this newsgroup than in any other discussion forums. You've already had something to say about the nature of complaining about things in here. I've often wondered why OO draws so much more fire than anything else among the CDT regulars. It could be that OO really is as bad as RM people say it is. But I think the root cause is elsewhere.

Among both OO enthusiasts and RM devotees, the following attitude is common: "Now that our paradigm has been discovered, everything else can be thrown away." This is an attitude that is characteristic among revolutionists, not evolutionists. In other fields of endeavor, revolutionists reserve their strongest vtiriol for other competing revolutionists, and not for late adopters.

I expect that, if your CQL begins to garner some success, both groups of revolutionists will turn on you. Received on Mon Sep 28 2009 - 13:17:37 CEST

Original text of this message