HDTenEightyP/NetNews huggingface dataset:
From: weh@abasin.dr.att.com (William E. Hopkins)
Newsgroups: comp.object,comp.specification
Subject: Current OOA/OOD and formal methods
Keywords: A++, Z, VDM, formal methods, OOA/OOD
Date: 30 Jul 92 15:54:51 GMT
Reply-To: william.e.hopkins@att.com
Organization: AT&T Bell Laboratories


Having just read two papers on Annotated C++ (a.k.a., A++; thanks Rich!),
which describes a notational extension for specifying invariants,
constraints, pre- and post-conditions, etc., on C++ classes and functions,
I'd like to see some inter-mixing of the OOA/OOD (object-oriented analysis
and design) and formal methods ideas.

In particular, OOA methods seem to focus on specifying behavior via state
transition diagrams and DFDs, while the formal methods community (e.g., Z
and VDM) specify behavior via predicates (more or less).  On the formal
methods side, I am encouraged by the progress made in both formal
specification and formal verification/derivation, and its application in
a Cleanroom Approach setting.  A++ is a notation and tool set that helps
apply formal techniques to C++.

On the other hand, OOA/OOD methods (e.g., Shlaer/Mellor, Rumbaugh et al.)
have a nice intuitive ``feel'' to them, describing via graphical techniques
both structure and behavior.  Unfortunately, they don't provide a formal
enough specification to be able to go on to coding and formally derive the
code from it.  In addition, there seems to be a disconnect between behavior
specified by predicates and behavior specified by state transition diagram.

I've used techniques from both areas to accomplish some real ends (e.g.,
Gries' technique enabled me to derive a complex piece of code that
implemented a complex transformation specification and get it right, i.e.,
no bugs ever encountered).  Unfortunately, using OOA/OOD for
higher-level design does not feed into formal code derivation.

I like the property formal methods offer of unambiguously specifying
behavior via formal specification and the assurance of derving code
consistent with the specification.  For high-level design, though, manipulating
text just doesn't help construct an overall view of the system components
and behavior.

My question to the net: is there a common ground?  Can the formal methods
and graphical methods be brought together?  How do predicates compare to
state transition diagrams in describing and specifying behavior?

------------------------------------------------------------------------------
Bill Hopkins          AT&T Bell Laboratories       william.e.hopkins@att.com
Newsgroups: comp.object
From: girod@tele.nokia.fi (Marc Girod)
Subject: Re: Can functions be objects?
Reply-To: girod@tele.nokia.fi
Organization: kpd
Date: Thu, 30 Jul 1992 08:37:16 GMT

I may be coming in the middle of a discussion, not having read its
beginning, but...

I don't quite see the problem with functions being objects.

I would first remind some wisdom by Rumbaugh & al about modelling:

"... you must not search for absolute truth, but for adequacy for some
purpose. There is no single "correct" model of a situation, only
adequate and inadequate ones."

Well, when is it adequate to consider function objects?

I think that as soon as you do not want any more to model a function
as a durationless operation, you are entitled to consider making it an
object.

To try to go more general, as soon as you want to handle parameters
that do not relate with the function's abstract purpose, such as its
host process/thread, in a multi process environment, or the processor
it is running on, to allow it to be handled remotely in a multi
processor environment, or its priority, etc...
--
+-----------------------------------------------------------------------------+
| Marc Girod - Nokia Telecommunications         Phone:    +358-0-511 7703     |
| TL4E - P.O. Box 12                            Fax:      +358-0-511 7432     |
| SF-02611 Espoo 61 - Finland                   Internet: girod@tele.nokia.fi |
|    X.400: C=FI, A=Elisa, P=Nokia Telecom, UNIT=TRS, SUR=Girod, GIV=Marc     |
+-----------------------------------------------------------------------------+
Newsgroups: comp.object
From: sanjiv@projtech.com (Sanjiv Gossain)
Subject: Re: Can functions be objects?
Organization: Project Technology, Inc., Berkeley, CA
Date: Wed, 29 Jul 1992 18:01:39 GMT

In article <knight.712244466@cunews> knight@mrco.carleton.ca (Alan Knight) writes:
>In <2840@media03.UUCP> pkr@media03.UUCP (Peter Kriens) writes:
>
>>However, I get the uneasy feeling that I am missing
>>something because everybody else seems to find function objects
>>which I regard as bad. Even in the book of Rebecca Wirfs-Brock 
>>I am confronted with an Inquiry, a Deposit and a Withdrawal object
>>in the ATM. In a design I am reviewing I find a XX_Create, XX_Delete 
>>and a XX_Edit object.

[ various stuff deleted ]
>
>It seems to me that there is a considerable difference between "plays
>an active role in the problem domain" and "are tangible things". The
>different kinds of transactions certainly play an important role in
>the domain. They just aren't tangible. I think that trying to restrict
>objects to things that can be picked up and thrown is a bad idea. 

I would agree here, although I would suggest that bothe Roles and Tangible
Things are valid objects during analysis. Tangible things in the 
problem domain are just *one* kind of object that one can identify 
during analysis. The objects that Peter referred to (XX_Create, 
XX_Delete, ..) if they are separate objects, are certainly in my 
opinion "incorrect". 

One useful technique which is useful when trying 
to capture the semantics of the problem domain
is to think of the different categories of objects one can have:
tangible things, roles, incidents, interactions, and specifications.
Then try and look at your problem and see if you can identify objects
from each category in the problem domain. Each category can introduce 
objects during analysis. Thus using such a scheme objects such as 
Deposit, Withdrawal could be seen as objects (in the incident category).
However, XX_Create, XX_Delete would not.

	- Sanjiv

-- 
----------------
Sanjiv Gossain		sgossain@projtech.com
Project Technology	Training and Consulting using Shlaer-Mellor OOA/RD
Berkeley, CA		(510) 845 1484
Newsgroups: comp.object
From: ah739@cleveland.Freenet.Edu (Leslie J. Somos)
Subject: Re: OO Cobol (?!)
Reply-To: ah739@cleveland.Freenet.Edu (Leslie J. Somos)
Organization: Case Western Reserve University, Cleveland, OH (USA)
Date: Fri, 24 Jul 92 14:51:55 GMT


In a previous article, navon@cs.unc.edu (Jaime Navon) says:

>>   Hi,
>>    Does anybody know if any OO Cobol product has been released yet?
>>  Has it been reviewed somewhere in trade publications?
>>  I am also looking for suggestions/comments on how to influence
>>  COBOL programmers to embrace OO programming.
>
>
>
>As OO C is called C++, the OO Cobol should be called "add 1 to Cobol" :-)
>
>

Actually,  the ++ operator means to add to the variable, whatever is the
natural size for it.  That is, for a character variable, it adds 1.  For
pointers, which take up 4 bytes, it adds 4.  
Some people might say  "add _0_ to COBOL".
Others will substitute a different value for the natural size of 'COBOL'.

--
Leslie J. Somos     ah739@Cleveland.Freenet.Edu
Newsgroups: comp.object,comp.lang.eiffel
From: steinman@is.morgan.com (Jan Steinman)
Subject: Re: Class methods (was: Re: How to design a data structure library)
Organization: Morgan Stanley & Company
	<STEINMAN.92Jul28184519@hawk.is.morgan.com> <1295@pascal.sbi.com>
Date: Fri, 31 Jul 1992 14:38:06 GMT

   From: rhsu@pascal.sbi.com (Robert Hsu)
   Date: 30 Jul 92 16:19:21 GMT

   steinman@is.morgan.com (Jan Steinman) writes:
   > I think the hang-up on queries or commands is getting in the way here, 
   > as is the class-object distinction. Objects are created continuously 
   > and rapidly; many messages need to return newly created objects, and
                                        ^^^^^^
   > if you insist that only classes can return new objecs, you'll get in 
                                         ^^^^^^
   > trouble quick!

	   My understanding of Smalltalk is that, indeed, only classes
   can create new objects...
       ^^^^^^

I think we are in heated agreement here. My argument was with Richard
Bielak, who seems to insist that only Classes should *return* new
objects. Of course, Classes must be the One True Root Of All New
Objects, but isn't O-O all about information hiding and abstraction?
Which means that when

   > ... aMan and aWoman collaborate to create aChild -- they don't
   > ask either Manness or Womanness to do it for them!

there is, as Robert Hsu eloquently points out, something else that
happens, but our abstract perspective has no business with whatever
that "something else" was!  (Unless you live in Virginia, where aMan
and aWoman can be arrested for creating aChild outside of certain,
State approved postures.) Robert continues:

   ...A lot of interesting actions must be performed for this to
   happen, most of which occurring in the early stages; but most
   importantly, deep in the code somewhere, after the member access
   methods at the beginning, and before the delivery of the exit
   message at the end, there must be a call to the appropriate class
   object to create a new Man or Woman...

As others have pointed out, we are losing the distinction between
syntax and semantics. From the omniscient, abstract viewpoint, two
Sets get together and produce a new union Set. Who created the union
Set? Who cares! If we are to decend "deep into the code somewhere"
each time we wish to understand the semantics of some code, we have
lost a great deal of the object benefit.
--
: : Jan Steinman	   steinman@is.morgan.com		 Bytesmiths : :
: : 2002 Parkside Court				   West Linn, OR 97068-2767 : :
: : 503/657-7703					       212/956-8722 : :
From: eirich@immd4.informatik.uni-erlangen.de (Thomas Eirich)
Newsgroups: comp.object
Subject: Run time type checking - efficiency and implementation
Date: 27 Jul 92 15:08:43 GMT
Organization: CSD., University of Erlangen, Germany

The OO-languages could be classified by the point of time of their
type checking. The following table gives an overview:

Type checking      |  Languages
-------------------+---------------------------------
compile time only  |  C++, ...
-------------------+---------------------------------
compile & run time |  POOL, BETA, Eiffel, Trellis/Owl,
(hybrid)           |  Guide, ...
-------------------+---------------------------------
run time only      |  Smalltalk, CLOS, ...


Eiffel e.g. does the type checking of the reverse assignment
operator (?=) and the validating of the method selectors
at run-time. Invalid selectors result in errors like
"message not understood".

I'm interested in the following questions on hybrid type systems:
 a) How is the type information represented at run time?
 b) How efficient is the dispatching of methods and the validation
    of selectors at run time?

Can anyone give me hints to literature or email me details
of the implementation of run time type checking in hybrid
type systems (especially the languages mentioned above)?

--
 Thomas Eirich (eirich@informatik.uni-erlangen.de)
 Friedrich-Alexander University (FAU) Erlangen-Nuremberg, Germany
 Department of Computer Science IMMD IV
From: hayes%valkris@hac2arpa.hac.com (Brian Hayes 74-35 x65129)
Newsgroups: comp.object
Subject: OO Literature
Date: 20 Jul 92 21:41:27 GMT
Organization: Hughes Aircraft Company, EDSG
Originator: hayes@valkris

Subject: OO books.

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?;^)  If its
in the faq (is there a faq?..if so flame me) let me know.  If
not, I'll be glad to start the bibliography or the faq (hehe,
but I'm _no_ expert on OO).

I'm currently reading/analyzing Booch's book, "Object Oriented Design 
with Applications."
-- 
*** Brian Hayes hayes@hac2arpa.hac.com (310) 616-5129 ***
Xref: sparky comp.object:3049 comp.lang.eiffel:1010
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: 29 Jul 92 11:12:52 GMT
Organization: DB and ES Subdivision, TU Vienna

From article <1992Jul28.150114.25065@bony1.bony.com>, by richieb@bony1.bony.com (Richard Bielak):
> But in math, a "+" is an operation on _integers_ (i.e. a class method)

Well, no.  Not at all.  "Operation on integers" means it is a function
mapping pairs of integers to integers, i.e., it is applied to
instances, no more, no less.  It is not reasonable to require that any
message that returns an object different from the arguments (including
receiver) be a class message.  In my opinion, what this mechanism does
is mixing variable assignment and object generation together, which is
 dirty hack if I've ever seen one.  Note that if you want to use your
class-messages-with-target-variables inside expressions you'd have
either

(1) you would have to introduce dummy variables to be able to use this
kind of notation inside expressions (of course, unthinkable), or

(2) write, as one poster proposed, Set.union(a,b), effectively killing
polymorphism by explicitly including the class in a message send that
does very well without, or

(2) you'd have to introduce separate instance methods (like a union: b) 
to do the same thing your class methods do, OR have the instance
methods automatically generated whenever you define that kind of class
method.  Now that kind of conceptual mixup in programs is not
something I would like to have to maintain.

Entia non sunt multiplicanda praeter necessitatem.
		-Occam
-- 
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
Xref: sparky comp.object:2964 comp.lang.c++:11320
From: brad@SSD.CSD.HARRIS.COM (Brad Appleton)
Newsgroups: comp.object,comp.lang.c++
Subject: What are mix-ins?
Keywords: mix-ins, dynamic multiple inheritance
Date: 22 Jul 92 14:28:14 GMT
Followup-To: comp.object
Organization: Harris Computers Systems Division, Fort Lauderdale,FL

Sorry - but I couldn't find this one in the FAQ (perhaps it should be
there).  I have seen 'mix-in' mentioned several times lately and I'm
not really sure what they are. I've read Coplien's book and I
understood that they are an implementation technique for achieving
dynamic multiple inheritance, but I really didn't quite see "how to do
it" from Coplien's example (it seemed too simple).

Perhaps one or more of you C++ guru's out there would be willing to
compose an appropriate document for the "uninitiated". Im sure we
would appreciate it.  Barring that, how about a bunch of C++ wizards
sending me e-mail and I'll try to synthesize the responses into such a
document and post it (and see about getting it included in the FAQ).

advTHANXance
______________________ "And miles to go before I sleep." ______________________
 Brad Appleton           brad@ssd.csd.harris.com       Harris Computer Systems
                            uunet!travis!brad          Fort Lauderdale, FL USA
~~~~~~~~~~~~~~~~~~~~ Disclaimer: I said it, not my company! ~~~~~~~~~~~~~~~~~~~
Newsgroups: comp.object
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: Tue, 28 Jul 1992 13:55:21 GMT

In article <5631@vexpert.dbai.tuwien.ac.at> mst@vexpert.dbai.tuwien.ac.at (Markus Stumptner) writes:
>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.
>

[...]

But, addition (set union) can be viewed as a way of combining two
integers (sets) to form a _new_ one. The very fact that the result is
_new_ indicates some form of creation. 

What I think we're leading up to here is a distinction between two 
kinds of queries:
   1) Those that _clearly_ return some new object: union of two
     sets, concatenation of two lists, etc.

   2) Those that don't: top of a stack, length of a list, etc.


In order to qualify under (1) the result of the query must be 
heavily dependent on the parameters of the query. If the result 
only depends on the state of the object, then the design of the
class should allow the implementor the flexibility of precomputing
and storing the result of the query in anticipation of future access. 
For example the length of a list can be constantly maintained or
computed on demand and so falls under (2). (Meyer has a name for 
this kind of transparency which escapes me at the moment.) 

Regards,
-- 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,comp.lang.eiffel
From: richieb@bony1.bony.com (Richard Bielak)
Subject: Commands and Queries (was Re: Class methods)
Organization: multi-cellular
Date: Wed, 29 Jul 92 12:46:08 GMT

In article <STEINMAN.92Jul28184519@hawk.is.morgan.com> steinman@is.morgan.com (Jan Steinman) writes:

[...]

>I think the hang-up on queries or commands is getting in the way here,
>as is the class-object distinction. Objects are created continuously
>and rapidly; many messages need to return newly created objects, and
>if you insist that only classes can return new objecs, you'll get in
>trouble quick!
>

Isn't "new" a class method in SmallTalk? 


>If you must think in terms of categories of messages, how about adding
>a third: "collaboration". aMan and aWoman collaborate to create aChild
>-- they don't ask either Manness or Womanness to do it for them!
>Likewise, "3" and "4" can collaborate to create "7", "1", or anything
>else that is legal among consenting adults.
>

One of the reasons why commands and queries are attractive, is that
they extend nicely into the realm of concurrent objects. Since a query
does not change the state of the object, many queries can be active
within an object at the same time. On the other hand, only one command
can run within an object, as it changes its state.

This distinction also fits nicely with Eiffel's assertion mechanism.
The pre-, and post-conditions and the invariant remain valid in a
concurrent object.

In your example of aMan and aWoman, who gets the message to create a
child? I guess to be politically correct, the statement would be:
aChild = [aWoman mate: aMan] ( ;-) ).

Collaboration is a nice idea, but even in your example, it doesn't
tell me where to place the method. Or am I missing something?


...richie


P.S. Shouldn't we have aChild = [Child dad: aMan mom: aWoman] ?



-- 
* Richie Bielak   (212)-815-3072   | "Your brain is a liquid-cooled parallel  *
* Internet:       richieb@bony.com | super-computer". He pointed to his nose, *
* Bang {uupsi,uunet}!bony1!richieb | "This is the fan."                       *
*    - Strictly my opinions -      |                     - David Chudnovsky - *
From: tusveld@ictser.UUCP (Fred Tusveld)
Newsgroups: comp.object
Subject: Benefits of automation - MIT report?
Date: 27 Jul 92 12:00:26 GMT


Hello,

I was wondering if anyone in this newsgroup is aware of a MIT report that presents results of an investigation into the net benefits of investing in software.
In a Dutch magazine (Elsevier Weekblad, july 20th) there is an article that surveys corporate experiences of automation. It contains a reference to a recent MIT report, that claims "that every dollar invested in automation is better spent into any other category of investment."


Thanks in advance.



Fred Tusveld
ICT Automatisering Deventer BV - Aerospace Department
tel. +31 5700 33888
fax. +31 5700 21362
Keulenstraat 7
P.O. Box 701
7400 AS Deventer
The Netherlands
email :
tusveld@ict.nl
Newsgroups: comp.object
From: scollins@lookout.it.uswc.uswest.com (Steven Collins)
Subject: Wanted info. on OMG, ORB, CORBA
Organization: U S WEST Communications
Date: Wed, 29 Jul 1992 16:34:16 GMT


 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
-- 
||  Steve Collins          ||  INTERNET: scollins@uswest.com      ||
||  1475 Lawrence Ave #500 ||                                     ||
||  Denver, CO 80202       ||  US WEST Multimedia AE              ||
From: paul@svl.cdc.com (Paul Kohlmiller)
Newsgroups: comp.object
Subject: ObjectWorld Questions
Summary: Need help for an article I'm writing
Keywords: ObjectWorld
Date: 29 Jul 92 23:54:14 GMT
Distribution: usa

I was writing an article for an internal newsletter about the ObjectWorld
conference that was in S.F. last week. Could I get some help with a few
nits?
The commencement panel was interesting. I think the speaker from 
Microsoft is Mike Allchin. Is that the right spelling?
I missed the last name of the last substitute from Sun. It was
Steve ...?
Also, I wrote down John Gugliemi as the speaker from Taligent but I'm
not sure of that spelling either (anybody remember the former ND/
Washington Redskin qb with the same (or similar) last name.
(Note: I'm not really that old I just remember hearing the name from
my father.:-)
On the exhibit floor, did HP have a booth? Does Rational have a C++ offering
or do they just have some tools for OOD?
Also, it seems to me that there weren't any vendors of object class libraries
there like RogueWave or Dyad (although their products were visible at other
booths). I'm not counting TGS Systems or Serius of vendors of object class
libraries since they are primarily selling OOP tools. Did I miss some class
library vendors?
Thanks for you help.
Paul Kohlmiller
--
     // Paul H. Kohlmiller             //  "Cybers, Macs and Mips"    //
     // Control Data Systems, Inc.    // Internet: paul@svl.cdc.com  //
     // Acronym under construction.  // America Online: Paul CDC    //
     // All comments are strictly my own. I won't lie but my       //
     // perception of reality is at best a personal hunch.        //
From: vkessler@ncratl.AtlantaGA.NCR.COM (Vance Kessler)
Newsgroups: comp.object
Subject: OO Design Documentation
Date: 30 Jul 92 12:19:11 GMT
Organization: NCR Engineering and Manufacturing Atlanta -- Atlanta, GA

I am trying to develop a fairly generic way to document OO systems. Most
papers on documenting that I have seen, target reusable classes and not
a system based on classes and objects.

What I want is to be able to describe the classes and how they work together
to make a product. 

Please e-mail any references or advice to
vkessler@ncratl.atlantaga.ncr.com
From: brianm@ecst.csuchico.edu (Brian Meyerpeter)
Newsgroups: comp.object
Subject: Re: C++ success stories
Keywords: C++, Success, Industry
Date: 24 Jul 92 18:39:52 GMT
Distribution: na
Organization: California State University, Chico



Sorry I didnt mail this back to you but you asked for c++ success stories....

I was just at Object World and listen to Jobs argue with Microsoft etc...
Phillip Kahn also gave a presentation and stated that Borland has 
written/rewritten all of their products using either Object Pascal or C++.

I think he said that *most* of the stuff was done in Turbo C++.

Hope this helps and sorry if I'm not totally correct in my facts!

Brian Meyerpeter
OPTX International
Newsgroups: comp.object