HDTenEightyP/NetNews huggingface dataset:
From: lucy@lehre23.informatik.Uni-Bremen.DE (Holger Burde)
Newsgroups: comp.object
Subject: Re: "has-a" relation in C++ ? How ?
Date: 22 Jul 92 14:20:46 GMT
Organization: Universitaet Bremen


In article <1992Jul20.212525.5081@dsg.tandem.com> narayan@aravali.everest.tandem.com (Pankaj Narayan) writes:
>Books typically go over the "is-a" relationship in much detail, saying how
>C++ has this great inheritance mechanism to support this sort of a relationship.
>
>However, when it comes to the "has-a" relationship, they don't really talk about
>or give implementation examples of how that is done in C++.  The Coad/Yourdon
>OOD book talks a little about it, and says that it can be done in a couple of ways,
>but does not give any substantial example.
>
>>	Thats because you already know how to do it.

>>	struct X { 

>>		Y y;

	};

>>X 'has-a' Y, namely, y.


what if you are facing a multilevel aggregat object ?

       
                   Car
                 -has-a-
      ....  doors  wheels engine .....
             
    .....                            ....

           lots of subcomponet levels of each subcomponent
            

i don't see how to represent this with a struct.   


CAx applications often deal with such objects. so far read objects have
a set (or array) of pointers to subcomponet level object.

try 'Object Oriented Databases with Applications to CASE, Networks, and
VLSI CAD' (R. Gupta,E. Horowitz) p.h. 1991).  
From: antles@hpspkla.spk.hp.com (Tom L. Antles)
Date: Tue, 28 Jul 1992 21:10:25 GMT
Subject: Re: Final tally on usage of OO Methodologies
Organization: Hewlett Packard Company, Spokane, Wa.
Newsgroups: comp.object

In comp.object, skalyan@mars.cs.clemson.edu (R. Kalyan Sundhar) writes:

    Hi,

    Here is the final tally on the usage of OO methodologies.

    	Shlaer	       15 	
    	Rumbaugh       14	
    	Coad	       11	
    	Booch		6
    	WirfsBrock	2
    	SOOM		1
    	Texel		1

    	------------------
    	Total	       50
    	------------------

    In case you have [or know of someone who has] not responded
    to this survey, please contact me by email.

    Thanks for your time.
    Kalyan



Sorry for my ignorance and lack of history of this project but who was in 
volved in the tally and what exactly is meant by usage? 
Newsgroups: comp.object
From: rdurham@chesapeake.ads.com (Rod Durham)
Subject: Comments on Martin/Odell OOA & OOD methodology?
Organization: Advanced Decision Systems division of Booz, Allen & Hamilton
Date: Wed, 29 Jul 1992 19:50:29 GMT

Hi,
	I am new to this net.  I`ve seen plenty of discussion of the
Schlaer, Rumbaugh, Coad, and Booch methodologies, but does any one
have any comments on Martin and Odell`s methodology as published this
year in "Object-Oriented Analysis and Design".  I am particularly
interested in how it compares to Booch, and Rumbaugh for developing
medium to large scale projects.  Thanks in advance.

-rod
-- 
--------------------------------------------------------------------------
Rod Durham			
Advanced Decision Systems, 			Internet:  rdurham@ads.com
A Division of Booz,Allen & Hamilton, Inc
Newsgroups: comp.object,comp.lang.eiffel
From: jcm@hgc.edu (James McKim)
Subject: Re: Class methods (was: Re: How to design a data structure library)
Organization: The Hartford Graduate Center
Date: Wed, 29 Jul 1992 14:03:57 GMT

In article <1992Jul28.201820.27793@bony1.bony.com> richieb@bony1.bony.com (Richard Bielak) writes:
>In article <graham.712283419@galois> graham@maths.su.oz.au (Graham Matthews) writes:
>
>[...]
>
>>
>>Are you really serious about this notation Richie? This means that
>>I would have to write integer addition as
>>
>>	!!c.+(6,7);
>>
>>After all it creates a new integer!
>>
>
>It's not the notation that I'm arguing for. 
>
>!!c.+(6,7) is certainly awful syntax. But, (as Jim McKim suggested in
>private e-mail) couldn't the compiler do the translation from c := 6 +
>7; to the above monstrocity.

Well, before I get flamed too badly for the above suggestion, let me
say that I haven't fully thought it out. I think the compiler would
have to be smart enough _not_ to make the above translation in the case of 
simple integer arithmetic.

>
>My point is that certain methods, "+" for example, should be class
>(i.e. creation) methods.

Yes, it's really the design of the _class_ that originally sparked
this discussion, not the syntax used. It does seem that designing
the standard set operations, string operations, etc as creation
routines is an idea worth pursuing.

>
>However, once you get away from numbers, with their historical
>notation, things make more sense. How about a "concat" method on
>strings. We'd have:
>
>           !!s.concat("foo", junk);

People will argue that this could be written as either
        s := "foo" + junk         a la Turbo Pascal or
        s := "foo" concat junk  
  
If we can get the compiler to translate the latter two into the
former, we can have our simple syntax and our clean design, too.
But again, I don't know how smart the compiler would have to be
in order to accomplish this.

>
>
>
>...richie
>
>-- 

-- Jim
-- 

*------------------------------------------------------------------------------*
Jim McKim  (203)-548-2458     In exactly 3.2 seconds it will be a few 
Internet:  jcm@hgc.edu   minutes to 5:00.
Newsgroups: comp.object
From: rdurham@chesapeake.ads.com (Rod Durham)
Subject: OMG
Organization: Advanced Decision Systems division of Booz, Allen & Hamilton
Date: Wed, 29 Jul 1992 19:53:12 GMT

Anyone know how I can get in contact with OMG?  An Email address or
phone number would be great.

-rod

-- 
--------------------------------------------------------------------------
Rod Durham			
Advanced Decision Systems, 			Internet:  rdurham@ads.com
A Division of Booz,Allen & Hamilton, Inc
From: moss@cs.umass.edu (Eliot Moss)
Newsgroups: comp.object
Subject: Re: A question of notation
Date: 22 Jul 92 14:35:37 GMT
Reply-To: moss@cs.umass.edu
Organization: Dept of Comp and Info Sci, Univ of Mass (Amherst)
In-reply-to: graham@maths.su.oz.au's message of 22 Jul 92 03:02:30 GMT

The difference between O.M (arg1 ... argN) and M (O, arg1 ... argN) is clearly
only a question of syntax, since one can readily change one abstract syntax
tree into the other. I suppose there might be occasions where one form would
require parentheses around O and the other would not, but that's a question fo
concrete syntax, and again not semantics.

An additional remark I would make is that there is no "standard" about this at
all. Trellis does it the M (O ...) way (kind of following CLU syntax),
Modula-3 does it the O.M way, and Smalltalk does it O M with arguments, if
any, mixed in with the method name. Syntax can be relevant to readability,
writablity, and software engineering concerns deriving from them, but there
are no semantic power or expressiveness reasons to prefer one of these forms
over another.
--

		J. Eliot B. Moss, Associate Professor
		Department of Computer Science
		Lederle Graduate Research Center
		University of Massachusetts
		Amherst, MA  01003
		(413) 545-4206, 545-1249 (fax); Moss@cs.umass.edu
Xref: sparky comp.object:2972 comp.lang.c++:11339
From: rmartin@thor.Rational.COM (Bob Martin)
Newsgroups: comp.object,comp.lang.c++
Subject: Re: Multiple Inheritance: `mix-in' classes and derived types
Date: 22 Jul 92 19:00:56 GMT
Followup-To: comp.object

oscar@csis.dit.csiro.au (Oscar Bosman) writes:


|I have a design based upon some abstract classes (A, B, C, D, ... in the
|diagram below) which I would like to mix and match to make my concrete
|classes (L, M, N in the diagram).  So far this a standard 'mix-in'
|design.

|        A B  C  D E ...
|        |\  /|   /|
|        | \/ |  / |
|        | /\ | /  |
|        |/  \|/   |
|        L    M    N ...

|The problem occurs when I wish declare a function which operates on
|all classes derived from both `A' and `C'.  Ideally I'd like to say
|something like (in modified C++ syntax):

|     foo(A & C my_obj) { ... }

|where `&' indicates a kind of intersection of types.  I can see two
|ways to do fudge this, neither of which I like.

Since A and C have no common base, what basis would foo have to deal
with my_obj?  How would it know which one it was? 

I think you are looking for a form of multiple dispatch, where the
function called depends upon the type of the argument.  But C++ does
not have dynamic multiple dispatch.

You could do it statically, by declaring two functions foo(A) and
foo(B)...



--
+---Robert C. Martin---+-RRR---CCC-M-----M-| R.C.M. Consulting         |
| rmartin@rational.com |-R--R-C----M-M-M-M-| C++/C/Unix Engineering    |
|     (Uncle Bob.)     |-RRR--C----M--M--M-| OOA/OOD/OOP Training      |
+----------------------+-R--R--CCC-M-----M-| Product Design & Devel.   |
Newsgroups: comp.object
From: graham@maths.su.oz.au (Graham Matthews)
Subject: A question of notation
Organization: Sydney University Computing Service, Sydney, NSW, Australia
Date: Wed, 22 Jul 1992 03:02:30 GMT

We are considering adding some OO type extensions to a
mathematical programming language developed locally. These
extensions are fairly straigtforward - my questions does
not concern them. Rather I have a question about notation.

In a "standard" OO language to invoke method M in object
O one writes something like,

	a = O.M( .. )

Now for historical reasons this kind of notation would not
fit well with our existing language. The following alternative
has been proposed

	a = M( O, ... )

WITH the definition that the class of the first argument is
where the search for method M will begin.

Personally I do not like this syntax. But what I was
wondering is the following: is this only a question of
syntax or is there some intrinsic weakness in the second
approach that I cannot see? As far as I can see the two
approaches are semantically equivalent. Am I overlooking
something?

graham
--
Graham Matthews                 And it's true we are immune
Pure Math, Uni.Sydney, Oz       When fact is fiction and T.V. is reality
graham@maths.su.oz.au
Newsgroups: comp.object,comp.lang.eiffel
From: geoff@flash.bellcore.com (Geoffrey Clemm)
Subject: Re: Class methods (was: Re: How to design a data structure library)
Organization: Bellcore
Date: 27 Jul 92 10:06:01

In article <5618@vexpert.dbai.tuwien.ac.at> mst@vexpert.dbai.tuwien.ac.at (Markus Stumptner) writes:
> With explicit binary operators (as in C++ or Smalltalk),
> you would write (if "+" expresses union)

> c := a + b

> That way, "+" is a message declared for sets, and used on sets.  If
> you want a named message, you would write

> c := a.union(b)

> (Still looks odd, but lacks that redundant third parameter)

> > In Smalltalk lingo, "union" should be a "class method".  The essence of
> > a class method is that it can be invoked when the object of the given
> > class does not exist yet.

> Yes, but you already have two sets, a, and b, either of which you can
> send the message to.  Nobody decrees that the receiver of a message
> has to be changed by it, therefore returning c is a valid way to do
> it.

I believe you missed the central point of Richie's article, namely that
Eiffel 3.0 has a clean way of handling this situation, to quote:

In article <1992Jul23.123609.11699@bony1.bony.com> richieb@bony1.bony.com (Richard Bielak) writes:

> Given this, the above call to "union" would be written like this
> (using Eiffel 3 syntax):

>     !!c.union (a,b);

> Which I think is better. 

With which I completely agree.  This avoids the unpleasant assymetry
of c:=a.union(b).

Cheers,

Geoff

--
geoff@bellcore.com
Xref: sparky comp.object:3023 comp.lang.eiffel:990
From: mst@vexpert.dbai.tuwien.ac.at (Markus Stumptner)
Newsgroups: comp.object,comp.lang.eiffel
Subject: Re: Class methods (was: Re: How to design a data structure library)
Date: 27 Jul 92 18:03:49 GMT
Organization: DB and ES Subdivision, TU Vienna

From article <GEOFF.92Jul27100601@wodehouse.flash.bellcore.com>, by geoff@flash.bellcore.com (Geoffrey Clemm):
> I believe you missed the central point of Richie's article, namely that
> Eiffel 3.0 has a clean way of handling this situation, to quote:

>>     !!c.union (a,b);

> With which I completely agree.  This avoids the unpleasant assymetry
> of c:=a.union(b).

I did get the point, I just don't like it.  I grant that the asymmetry
is avoided, but this is outwiehged by the fact that using the class
method is, in my opinion, a completely weird way of handling an
ordinary binary operator.  Sets are a bad example for that construct,
since they, as mathematical entities together with their appropriate
operators, should correspond fairly closely to, say, integers or
floats in this manner.  As an example, addition (which closely
corresponds to set union) is not a class message, and making it one
does not improve the clarity of the code.

-- 
Markus Stumptner                                mst@vexpert.dbai.tuwien.ac.at
University of Technology Vienna                 vexpert!mst@relay.eu.net
Paniglg. 16, A-1040 Vienna, Austria             ...mcsun!vexpert!mst
Newsgroups: comp.object,comp.lang.eiffel
From: sebra@idt.unit.no (Svein Erik Bratsberg)
Newsgroups: comp.object
Subject: Re: Is GC needed?
Date: 27 Jul 92 07:41:59 GMT
Reply-To: sebra@idt.unit.no (Svein Erik Bratsberg)
Organization: Div. of CS & Telematics, Norwegian Institute of Technology

In article <AXEL.92Jul24154632@avalanche.cs.tu-berlin.de>, axel@cs.tu-berlin.de (Axel Mahler) writes:
|> Have there been any attempts to employ multi-processor shared-memory
|> computer architectures for solving the GC problem ? Why not have a 
|> dedicated GC processor that frees the application from worrying about
|> memory management ? I've not given the idea a great deal of thought, so
|> it might actually be stupid or unfeasible. Comments ?
|> 
|> Axel.

Here's an old reference:

Guy L. Steele Jr., "Multiprocessing Compactifying Garbage Collection",
Communications of the ACM, 18(9), Sept. 1975, Pages 495--508.
1975 ACM Student Award, Paper: First Place.


Svein Erik Bratsberg,
Division of Computer Systems and Telematics,
The Norwegian Institute of Technology, N-7034 Trondheim, Norway.
E-mail: sebra@idt.unit.no (internet)
From: anderson@bigun.enet.dec.com (Keith J. Anderson)
Newsgroups: comp.object
Subject: Re: Wanted info. on OMG, ORB, CORBA
Date: 30 Jul 92 18:09:01 GMT
Organization: Digital Equipment Corporation (Australia)

> Is there news of any company shipping an ORB( Object Request Broker)
>as defined by the OMG group.  I've heard HyperDesk(sp) is shipping
>one but I don't have their address.  Any info. would be appreciated.

Steve,

I doubt if anyone is yet shipping anything that implements everything in 
the CORBA spec (maybe Hyperdesk does?). Anyway, as yet there is no test 
for compliance, compatibility. Digital is shipping a set of products called ACA 
Services, and V2.1 is announced and shipping now. V2.1 provides clients and
servers for Open VMS, RISC/ULTRIX, and SunOS; and a client for MS Windows 3.
Digital submitted ACA Services to OMG for the CORBA spec, and so I'm told that
the dynamic binding part of CORBA grew from that. Later versions of ACA
Services will provide the static binding, and an CORBA API. ACA Services has
been in use within Digital for a few years now, its pretty amazing what you can
do. We use it for live-linking documents, tables, sheets, graphics,
applications, integrating CASE tools with CDD/Repository, integrating process
control data collection systems with analysis tools (see the range of DEC
@aGlance products, that you use, say from Windows 3, to define links to process  
applications). We're pretty excited by it!

Thanks for asking :-)
-------------------------------------------------------------------------------
EM: anderson@bigun.enet.dec.com		Keith J. Anderson
or  anderson%bigun.enet@decwrl.dec.com	CASE and Information Management  
Phone: (+61 6) 2754800			Digital Equipment Corp (Aust) P/L
FAX  : (+61 6) 2473654			7 Barry Drive, Turner ACT 2601 AUSTRALIA
X.400: c=au;a=otc;p=digital;o=digital;ou=sno;s=anderson;g=keith
***** My words are not those of my employer *****
Newsgroups: comp.object
From: steven@monu6.cc.monash.edu.au (Steve Stergakis)
Subject: interesting question...
Organization: Monash University, Caulfield Campus
Date: Wed, 22 Jul 1992 09:25:22 GMT

i have an interesting question...

i am aware that many OOA have borrowed much from structured analysis
and information engineering (excluding CRC and its variants) 

question? when should OOA be used over these more traditional approaches

is the only criteria the implementaion being used?  i am 
writing a paper in this area and hope to here the opinions
netters out there concerning this matter...

thanks in advance
steven
Newsgroups: comp.object
From: haim@dancer.uucp (24103-kilov)
Subject: Re: A question of notation
Reply-To: haim@dancer.UUCP ()
Organization: Bellcore, Livingston, NJ
Date: Fri, 24 Jul 92 17:02:19 GMT

In article <1992Jul23.182929.7473@dec254.uucp> hall@dec254.uucp (Phil Hall) writes:
>
>I might add some comments about these concerns.  While the difference between
>O.M (...) and M (O ...) is really only syntactic, in practicality, the
>two notations often have very different interpretations.
>
>The O.M (...) notation obviously distinguishes the object O.  This form 
>clearly implies that the method M must belong to the class or subclass of 
>O.  This is quite different from just passing O as an argument, which
>does not suggest M associates with any class at all (at least not in
>a class definition).
>
>This distinction seems to be pretty significant in a persons perception 
>of what object-oriented-ness is.  It is for me. 
>
>> 
>>		J. Eliot B. Moss, Associate Professor
>
>Phil
>-------------
>Philip W. Hall                    Internet:  hallpwcd@ucunix.san.uc.edu
>Cincinnati Milacron, Dept. 82G               
>Advanced Systems Division
>4701 Marburg Avenue, Cincinnati, Ohio  45209    


Exactly!!!

The Object Data Management Reference Model (an ANSI OODBTG document)
specifically stresses that there exists a "classical" object model, with
operations that do have distinguished recipients, and a "generalized"
object model with operations that do not have distinguished recipients.
In information modeling, operations often (almost always) do not have
distinguished recipients, i.e., are jointly owned by several associated
objects (see our recent publication "The Framework: a disciplined approach
to analysis" and other publications from this source).

Hope this helps.

-Haim Kilov
haim@bcr.cc.bellcore.com         or
haim@dancer.cc.bellcore.com
Newsgroups: comp.object
From: mat@mole-end
Subject: Re: SHlaer-Mellor OOA Model, Problem with definition of Object
Summary: On swamps
Organization: :
Date: Wed, 22 Jul 1992 18:23:20 GMT

In article <1992Jul20.033757.6207@m.cs.uiuc.edu>, johnson@m.cs.uiuc.edu (Ralph Johnson) writes:

> It is probably more correct to say that an objects is an entity in a 
> computer that is supposed to represent some real-world entity (using
> my terminology of object being instance, of course).  You are certainly
> right that software is a philosophical swamp.  And I like real swamps,
> too!

Swamps tend to be poor on structure, but rich in nutrients and teeming
with life.  Philosophy tends to thrive in them.
-- 
 (This man's opinions are his own.)
 From mole-end				Mark Terribile

 uunet!mole-end!mat, Somewhere in Matawan, NJ
From: gt4084c@prism.gatech.EDU (SRINIVASAN,K)
Newsgroups: comp.object
Subject: Re: Thoughts on the Progression from SA/SD Models to OO Models
Date: 28 Jul 92 15:22:25 GMT
Organization: Georgia Institute of Technology

In article <1992Jul25.190829.5508@uunet.uu.net!mole-end> mat@uunet.uu.net!mole-end writes:

Deleted an excellent description of SA/SD and OOA/OOD

>The hierarchical nature of most operations, combined with the need to
>tie relationships with temporalities to their operations, suggests that
>some combination of Warnier-Orr diagrams with Object-Communication
>Diagrams might do the job.

Did you consider IDEF0 as a possible process (or function or activity) model?
Hierarchical nature of operations is well captured by the model.  The "Inputs,
Controls, Outputs and Mechanisms" characterization impose the temporal
constraints qualitatively.  The  state changes can be represented as procedures
attached to represent the dynamics of each function.  The quantitative temporal
relations can also be represented in these procedures.
  
>-- 
> (This man's opinions are his own.)
> From mole-end				Mark Terribile
>
> uunet!mole-end!mat, Somewhere in Matawan, NJ


-- 
SRINIVASAN,K
School of Textile Engineering   Georgia Tech.
uucp: ...!{allegra,amd,hplabs,seismo,ut-ngp}!gatech!prism!gt4084c
ARPA: gt4084c@prism.gatech.edu
Xref: sparky comp.object:3034 comp.lang.eiffel:996
From: support@heeg.de (Support)
Newsgroups: comp.object,comp.lang.eiffel
Subject: Re: Class methods (was: Re: How to design a data structure library)
Date: 28 Jul 92 12:17:06 GMT
Organization: Georg Heeg Objektorientierte Systeme, Dortmund, FRG

In article <1992Jul23.123609.11699@bony1.bony.com> richieb@bony1.bony.com (Richard Bielak) writes:
>In article <1992Jul22.142916.22115@merlin.hgc.edu> jcm@hgc.edu (James McKim) writes:
>
>[...]
>
>The interesting question is which class should the routine "union" be
>in?  If a, b, and c are of type SET and "union" is a feature of SET,
>then we have:
>
>      c := a.union(a,b);
>
>Which looks a little odd :-).
>
>In Smalltalk lingo, "union" should be a "class method". The essence of
>a class method is that it can be invoked when the object of the given
>class does not exist yet.

Is it? I always thought the essence of a class method is that you can sent it
to a class object... Thus, class methods are nothing special since classes
are nothing special. Just that you don't have them at all in C++ :-)

"union" would be a normal instance method, like

	c := a union: b.

or better:

	c := a mergeWith: c

or even better:

	c := a + b.

BTW, in standard Smalltalk there is no "union", "intersection", or "difference".
You'd have to implement it as follows:

	c := a addAll: b				"union"
	c := a select: [:each | b includes: each]	"intersection"
	c := a removeAll: b.				"difference"

Ciao, Hasko

-- 
+-------------------------------------------------------+
| Hasko Heinecke @ Georg Heeg Objektorientierte Systeme |
| I _never_ mean what I say - and nobody else does...   |
+-------------------------------------------------------+
Newsgroups: comp.object
From: leavens@cs.iastate.edu (Gary Leavens)
Subject: Re: OO Literature
Organization: Iowa State University, Ames IA
Date: Tue, 21 Jul 1992 14:18:17 GMT

In <22486@hacgate.SCG.HAC.COM> hayes%valkris@hac2arpa.hac.com (Brian Hayes 74-35 x65129) writes:

>I'm looking for a list of recommended and not-recommeded 
>OO books and, possibly, articles.  An annotated bibliography
>would be great (am I asking for too much or what?;^)

I published a slightly annotated bibliography in the following.

@Article{Leavens91b,
  Key = 	"Leavens",
  Author = 	"Gary T. Leavens",
  Title = 	"Introduction to the Literature on Object-Oriented Design, Programming, and Languages",
  Journal = 	"OOPS Messenger",
  Year = 	1991,
  Volume = 	2,
  Number = 	4,
  Month = 	Oct,
  Annote = 	"Hundreds of references."
}

The OOPS messenger is published by the ACM, and I think comes free to all
who get SIGPLAN Notices.  In any case, it should be in most University
libraries.

	Gary
--
	229 Atanasoff Hall, Department of Computer Science
	Iowa State University, Ames, Iowa 50011-1040, USA
	phone: (515) 294-1580  fax: (515) 294-0258