🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.eiffel
Article #1225

Re: OOA [was:Re: Beware of "C" Hackers -- A rebuttal to Bertrand Meyer]

#1225
From: dbshapco
Date: Tue, 16 Apr 1996 01:19
87 lines
5757 bytes
In article <bksDpv1r1.qI@netcom.com>, bks@netcom.com says...
>
>[...]
>However, well defined taxonomies are not easy to come by.  The
>problem is that the taxonomy of the woman on the warehouse floor
>is *not* the same as the taxonomy of the guy in accounts
>receivable which differs yet again from the salesman, ad 
>nauseum throughout the customer's organization.  Each person
>chops up the flow of work in a different way.
>
>    --bks

Good point.  An endemic problem in software development is the inability to 
freeze software requirements, partially because the requirements are being 
driven by several different sources with competing goals and agendas and 
divergent ideas about what the end software product should be.  Requirements 
become overloaded.  In OO, sometimes it is just a philosophical difference on 
how to decompose the problem domain and sometimes people who must share 
information and bridge work flows really do have completely different 
perspectives that justify different taxonomies.

Usually it is because we aren't really talking about a single problem domain 
that can be solved by a single piece of software (with elegance, at least, 
and without shoehorning some unwilling users into the tool's paradigm, rather 
than supporting their work flow).  A few different software packages that 
break out each community's areas of concerns with well defined interfaces 
between them helps here, laced together with DCE or CORBA or an OO/RDBMS 
server (or whatever).  (The ODP concept of different perspectives on a single 
system: even though inventory control, A/R and sales all need to know about 
Acme Co.'s grapple grommets, they have *justifiably* different perspectives 
and that product fits differently into their scheme of things.)

Usually this isn't as much added effort as it sounds, because such division 
vastly simplifies analysis and looks like a win-win solution to the 
independent user communities (each gets it own goals and agendas attended to 
without detracting from others), a good chunk of code is common (especially 
DBs, GUIs, and other such conventional stuff), and except for naming 
collisions, it is fairly easy for different taxonomies to co-exist in the 
software if they must (usually each taxonomy ends up in separate software).  
(However, some techniques for object distribution make it difficult to in 
effect say 'these objects are really different ways of looking at the same 
object'.)

Another really tough part is getting people to agree where the problem domain 
segments cleanly into smaller problem domains (promotes turf wars) and then 
defining interfaces without dictating what lies behind the interfaces (by Use 
Cases, perhaps, with each community being a 'block'; unfortunately, some 
practioners try to magic up interfaces a priori without a first cut at the 
problem domain analysis).  Linkages between taxonomies are difficult to 
manage; taxonomies should be related only by information flow across well 
defined interfaces.

Using our cooked example, sales maintains an independent idea of what grapple 
grommets are and how they fit into a sales taxonomy.  When 500 of the 
beasties are sold, warehousing must know to take 500 out of inventory control 
and ship them to the receiver, and notify A/R for billing, again using an 
independent idea of what grapple grommets are in a warehousing/inventory 
taxonomy.  A/R then looks up things grapple grommets for cost, applicable 
discounts, shipping rates in the accounting taxonomy.  My mind boggles 
imaging trying to define a grand unified grapple grommet overloaded with all 
the attributes and operation each of these domains needs.  (And obviously, 
you need concensus at some level; each accountant cannot have her own private 
taxonomy.)

But still, it presents unique challenges differing from monolithic 
taxonomies.  (Which makes me think of, somewhat off topic, one of the more 
common recent damaging trends in software development: deciding on a 
distributed architecture a priori -- because somebody has just discovered 
CORBA or Java in a magazine article, usually -- and arbitrarily dividing up a 
perfectly monolithic architecture and taxonomy into a distributed one.  These 
are usually the same development teams that spend seven weeks defining 
interfaces between systems without even a fundamental analysis of the problem 
domain.  Whereas problems that beg for distributed architectures motivated by 
the nature of the problem domain are still being packed into a single 
software package while the end users fight over the paradigm to be adopted by 
the software.)

Even starting a spec with 'we require an application which' insidiously 
pollutes the analysis with implementation details, because it is not yet 
known that a *single* application best addresses the requirements, and the 
analyst begins with the premature assumption that a *single* taxonomy is 
required.

-- 
Brad Shapcott, Technical Consultant
Lockheed-Martin's Advanced Concepts Center
Ottawa, Canada (613) 592-8744 x227
Technical Details
Message-ID: <4kusje$eua@news.nstn.ca>
Path: arc1-ca.pugleaf.net!news.nstn.ca!news
References: <1995Jul3.034108.4193@rcmcon.com> <4kma54$11m@news4.digex.net> <goochb.334.0015B418@rwi.com> <4kr166$1ep@news.nstn.ca> <bksDpv1r1.qI@netcom.com>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!news.nstn.ca!news
From: dbshapco@fox.nstn.ca (dbshapco)
Newsgroups: comp.lang.eiffel,comp.lang.c,comp.lang.c++,comp.object,comp.software-eng
Subject: Re: OOA [was:Re: Beware of "C" Hackers -- A rebuttal to Bertrand Meyer]
Date: 16 Apr 1996 01:19:42 GMT
Organization: iSTAR Navigator User
Message-ID: <4kusje$eua@news.nstn.ca>
References: <1995Jul3.034108.4193@rcmcon.com> <4kma54$11m@news4.digex.net> <goochb.334.0015B418@rwi.com> <4kr166$1ep@news.nstn.ca> <bksDpv1r1.qI@netcom.com>
Reply-To: dbshapco@fox.nstn.ca
NNTP-Posting-Host: ts5-06.ott.istar.ca
Mime-Version: 1.0
X-Newsreader: WinVN 0.93.14