HDTenEightyP/NetNews huggingface dataset:
From: C.D.Turner@newcastle.ac.uk (Chris Turner)
Newsgroups: comp.object
Subject: Testing - Tech Report
Summary: Release of Technical Report
Keywords: Testing, Object-oriented
Date: 21 Jan 93 11:38:44 GMT
Organization: University of Newcastle upon Tyne, UK, NE1 7RU
X-Newsreader: TIN [version 1.1 PL6]


Finally I have the technical report "The Testing of Object-Oriented
Programs" ready for release.

I have placed two copies on the host vega.durham.ac.uk
in the anonymous ftp directory /pub/papers

The files are toop.ps.Z and toopus.ps.Z

toop.ps.Z is a postscript file for an A4 printer, and
toopus.ps.Z is a postscript file for a letter (8.5x11 inches) printer.

If anyone requires a pure text version (without the diagrams), please
mail me and I will place one in the same directory.

Would it be possible for anyone who takes a copy to mail me,
just so that I can gauge how much interest there is out there.

Also, if anyone has any questions, or comments, please don't hesitate to
mail me. I would appreciate any feedback that people can provide.

Chris Turner

Department of Computer Science, University of Durham, DH1 3LE England
Tel. +44 91 374 3657 FAX +44 374 3741 E-Mail C.D.Turner@durham.ac.uk
Newsgroups: comp.object
From: gt4084c@prism.gatech.EDU (SRINIVASAN,K)
Newsgroups: comp.object
Subject: Re: relation betweem OOM and IDEFo and EXPRESS language
Date: 27 Jan 93 23:17:05 GMT
Organization: Georgia Institute of Technology

In article <1993Jan27.124431.16827@lut.ac.uk> A.H.Al_ashaab@lut.ac.uk (AH Al_ashaab) writes:
>Hi
>Can any body tell me what is the relation between activity modelling
>techniques like IDEF0 IDEF1X NIAM and the Object Oriented Methodologies (OOM)?
>and between EXPRESS information modelling language and OOM.

IDEF0 is a great tool for capturing the static aspects of the functions
going on in an enterprise.  However, it allows for only a partonomic
hierarchy.  In my opinion, both the ease of modeling and the representational
power of IDEF0 will improve a lot by having a IS-A hierarchy added.

IDEF1x model can be considered a good conceptual model for actual
implementation in a RDB.  If you want your information model to be
an OO model, I do not see any great advantage in doing IDEF1x modeling.

IDEF0 model is a great way of identifying the object classes that
need to populate your information model-- the inputs, controls,
outputs and mechanisms to the functions are objects or views
on objects (to be accurate, queues of them).  
In fact, the need for combining functional analysis and OOA in modeling
any complex system has been recognized by some researchers.

Ahem... Now comes my self-advertisement!  We here at Grorgia Tech have
done IDEF0/IDEF1x modeling for about 4 years now.  We are currently 
working on developing an integrated framework for doing function and
information modeling simultaneously.  The resulting function model, in
addition to capturing the static aspects of functions should have the
information to support dynamic simulation too.  The information model will
be an OOM.


  
-- 
SRINIVASAN,K
School of Textile Engineering   Georgia Tech.
uucp: ...!{allegra,amd,hplabs,seismo,ut-ngp}!gatech!prism!gt4084c
ARPA: gt4084c@prism.gatech.edu
Newsgroups: comp.object
From: rmartin@thor.Rational.COM (Bob Martin)
Subject: Re: Booch question: new class relationship?
Organization: Rational
Date: Fri, 29 Jan 1993 01:00:21 GMT

paul@melody.Rational.com (Paul Jasper) writes:

|In article <rmartin.727740331@thor>, rmartin@Rational.COM (Bob Martin) writes:

|> Containment by value represents the notion that the storage of the
|> contained class exists within the storage of the containing class.
|> The containing class has intrinsic knowledge of the contained class
|> (ie. knows where to find it).  The contained class is created and
|> destroyed with the containing class.  

|Yes, this is correct, but then you add:

|> The contained class cannot be polymorphic.

|Tut, tut, Bob!  You should know this ;^)

|"Has by value" doesn't necessarily imply physical containment.  The
|"intrinsic knowledge" may still be a pointer or even a database reference,
|but the semantics will still be that instances of the sub-class are 
|created and destroyed with the parent object.  

Ah! I think we are confusing containment by value with "Ownership".  A
class "owns" the object it contains if, upon its own death, it kills
the contained object.  This, however, IMHO is not containment by
value.  Containment by value is when the storage for the contained
is within the storage for the containing.  Certainly the
containing class then "Owns" the contained class, since the contained
object will die with the containing object.  But is also means that
the absolute type of the contained object is known, and so cannot be
polymorphic.

Containment by reference, on the other hand, can be polymorphic
becuase it implies that the contining objects simply contains a
pointer or a reference to the contained object.  It is containment in
that the containing object has intrinsic knowledge of the contained
object.  But it does not imply ownership since there is no guarantee
that the containing object will destroy the contained object when it
dies.

To my knowldege, there is no notation for ownership in the Booch
notation.

--
Robert Martin       | Design Consulting    | Training courses offered:
R. C. M. Consulting | rmartin@rational.com |  Object Oriented Analysis
2080 Cranbrook Rd.  | Tel: (708) 918-1004  |  Object Oriented Design
Green Oaks, Il 60048| Fax: (708) 918-1023  |  C++
Newsgroups: comp.object
From: ssvvss@mixcom.com (Palladio Software)
Subject: Call for Participation
Organization: Milwaukee Internet Xchange BBS, Milwaukee, WI U.S.A.
Distribution: usa
Date: Thu, 28 Jan 1993 21:24:36 GMT





WOOD '93
CALL FOR PARTICIPATION



The first annual Workshop on Object-Oriented Design will be held 
at the Snowbird Conference Center in Snowbird, Utah March 8- 
10, 1993.  This workshop will provide a forum for serious 
practitioners and investigators in the area of Object-Oriented 
Analysis and Design; convening for the purpose of sharing ideas 
and discussing challenges in this rapidly emerging field.


Topics will include, but are not limited to the following areas:  the 
Object Model, integration of object, functional and state models, 
notation, state machines, bridging the gap from analysis to design 
and process.


WOOD '93 is a not-for-profit workshop, intended to create an 
environment where ideas can be shared and reviewed.  Any profits 
from the workshop will be applied toward WOOD '94.  The 
registration fee covers materials, meeting rooms and light meals.


Snowbird Conference Center facilities are among the finest in the 
world, providing a relaxed, quiet atmosphere allowing for focused, 
productive sessions.  Snowbird also offers some of the most 
beautiful natural surroundings in the country.


For more information contact Palladio Software Corporation 
(official WOOD '93 sponsor) by calling:  (414) 789-5253 by
fax:  (414) 789-5191 or by E-mail:  wood93@palladio.com


I hope that you will join me and your fellow visionaries in 
advancing the state of software engineering without commercial 
hype or hidden agendas.



Jon Hopkins
Workshop Leader
WOOD '93

-- 
Palladio Software Corp.
414 789 5253
414 789 5191 fax
From: rrp@dam.brown.edu (Bob Petrocelli)
Newsgroups: comp.object
Subject: Info On CORBA
Date: 26 Jan 93 21:56:22 GMT
Article-I.D.: cat.1k4c26INN205
Distribution: usa
Organization: Brown University Center for Fluid Mechanics
NNTP-Posting-Host: 128.148.128.84
Originator: rrp@rufus

Hello ...

I'm trying to get some info on the emerging CORBA standard..
does anyone have any suggestions???

Bob Petrocelli
rrp@dam.brown.edu
Xref: sparky comp.object:5015 comp.software-eng:5420
From: grp@dmu.ac.uk (Graham Perkins)
Newsgroups: comp.object,comp.software-eng
Subject: clutter
Date: 22 Jan 93 14:01:59 GMT
Organization: De Montfort University, Leicester, UK.

Sorry to clutter newsgroup with my replies, they were meant to go
off to individuals only.  My mistake, mea culpa.
From: southbay@garnet.berkeley.edu ()
Newsgroups: comp.object
Subject: U.C. Berkeley Short Courses in OO Technology
Date: 21 Jan 1993 22:59:03 GMT
Organization: University of California, Berkeley
Distribution: world
NNTP-Posting-Host: garnet.berkeley.edu

U.C. Berkeley
Continuing Education in Engineering
Announces 2 Short Courses on:

Object Oriented Software Engineering (March 1-5, 1993)

This course is designed to provide both technical and managerial personnel with
an understanding of object-oriented concepts and technology, and how its
implementation will impact software development throughout its life cycle.  The
specific problems and solutions for large software systems are discussed.

Lecturer: Ed Berard

Object Oriented Database Systems (April 19-23, 1993)

This course provides a solid grounding in object-oriented database fundamentals,
familiarity with current commercial systems and advanced prototypes, and
exposure to the most important research and development trends in the area.

Lecturers: Stanley Zdonik, Ph.D., David Maier, Ph.D., Michael Carey, Ph.D.,
Gail Mitchell, Ph.D.

For more information (complete course descriptions, outlines, instructor bios,
etc.) contact:

Harvey Stern
U.C. Berkeley Extension/Southbay
800 El Camino Real Ste. 150
Menlo Park, CA 94025
Tel: (415) 323-8141
Fax: (415) 323-1438
Newsgroups: comp.object
From: mod@cs.man.ac.uk (Mike O'Docherty (Teaching Company Associate))
Newsgroups: comp.lang.eiffel
Subject: Re: creation
Date: 22 Jan 93 15:26:46 GMT

bertrand@eiffel.com (Bertrand Meyer) writes:

>From <mod.727464101@cs.man.ac.uk> by mod@cs.man.ac.uk
>(Mike O'Docherty (Teaching Company Associate)):

>> On page 128 of "Eiffel: The Language", it is stated (in the definition of
>> consistency) that postconditions need not be checked on return from a
>> creation procedure. I see no reason why they they should be let off the hook;>> is this a mistake?

>Actually the extract does not address what should be checked.
>It defines class consistency, which is a static
>(i.e. mathematical) concept.

Point taken. Ok, I'll have to plead ignorance on the *true* meaning of Section
9.1.2., but it still seems to me that condition 1 should be

        {pre } do  {post  ^  INV }
            p    p      p       C

>The discussion of run-time assertion monitoring on page 133
>does say what should be checked at run time, and makes no
>distinction between creation procedures and other routines.

My point is that it *should* make a distinction, because you *shouldn't* check
invariants on entry to creation procedures *when they are called from a
creation instruction*.

Maybe I can stop this going any further by summarising the run-time situation
with assertions switched on, as described by Raphael Manfredi in his message
(for the benefit of anyone else confused so far :-) )

1) Invariants are checked on entry to *every* routine *unless*
    a) That routine is a creation procedure *called from a creation
       instruction*.
    b) that routine call is local (ie. an object calls one of its own
       routines).
2) Invariants are checked on exit from *every* remote routine call (ie. an
   object's routine called by another object).
3) Preconditions are checked on entry to *every* routine.
4) Postconditions are checked on exit from *every* routine.

I can't speak for loop variants, loop invariants or check instructions because
I haven't used them (so shoot me :-) ).

Mike.

-------------------------------------------------------------------------
"Lou Reed was singing about scoring drugs. Tom Robinson was singing about
scoring sex. I don't know what she's singing about, Dolly Mixtures
probably." --- Nicky Campbell on Vanessa Paradis' cover of "Waiting for
the man"   => => => => => => => => => => => => => => =>  mod@cs.man.ac.uk
-------------------------------------------------------------------------
Xref: sparky comp.lang.eiffel:1450 comp.object:5016 comp.lang.c++:19793
From: bss_tom@vd.seqeb.gov.au
Newsgroups: comp.lang.eiffel,comp.object,comp.lang.c++
Subject: Business Domain Classes availability
Date: 20 Jan 93 09:03:40 +1000
Organization: South East Queensland Electricity Board

SUBJECT:Availability of domain class libraries:electricity net.
SENDER: Tom Davis, email: BSS_TOM@seqeb.gov.au
ORGANISATION: South East Queensland Electricity Board,
              Business Systems Div.Systems Support Dept.
              150 Charlotte St. BRISBANE Queensland AUSTRALIA.
              Telephone 061 7 223 4404, Facsimile 061 7 221 7556

PURPOSE: Request for Domain Classes relevant to the business domain
         of an Electricity Distribution Authority.
REPLY:   By email or POST to this news group, or mail, or phone.
DETAIL:  We are doing a strategic object-oriented analysis of our 
         systems, starting with the Electrical Network. This network
         distributes high voltage power and at various nodes, transforms
         that voltage down to lesser voltage until at 240 Volts power
         is distributed to domestic premises. We are not so much
         interested, at this stage, in implementation classes such
         as linked lists, lattices, arrays, b-trees etc. We are interested
         in classes such as Distribution_node that may be a Pole or a Pillar
         or a transformer etc. We are also interested in generic business
         classes such as Party, Agreement, Customer, Supplier, Contractor,
         etc.
QUALITY: SEQEB is committed to Total Quality Management, and expects of
         its suppliers to maintain a high demonstrated commitment to total 
         quality management.  Vendors are evaluated on the quality of their
         supply to SEQEB on an annual basis and the best are awarded a
         Quality Award by SEQEB. We are looking for quality software that
         is carefully, truthfully and succinctly documented in English.
         Some Class libraries were originally constructed for a specific
         purpose, and the classes may not be as generic as we hope they
         will be. Classes that express a particular Viewpoint should be
         documented as such.
LANGUAGE:Eiffel is preferred, or C++ (compatible with MSC/C++ v7) or Meta4
         (a high level commercial object-oriented language marketed by Deen
         Systems, McMahons Point, Sydney, Australia.)
DEVELOPERS: Other parties interested in Domain Classes for industrial
         strength object-oriented software are invited to either email me
         or post onto this news group.

Thanks, in advance.
Tom Davis
Newsgroups: comp.lang.eiffel
From: wil@cix.compulink.co.uk (William Stuart-smith)
Subject: Re: creation                            
Cc: wil@cix.compulink.co.uk
Reply-To: wil@cix.compulink.co.uk
Date: Sat, 23 Jan 1993 21:02:00 +0000

On creation procedure postconditions, I said

>It seems correct to me.

Sorry, I retract that. I don't fully understand the 'mathematical
correctness' argument. I haven't had a chance to use Eiffel properly yet.
Also, it is probably time I read OOSC...

This does not affect my question on system validity and '!!'.

Newsgroups: comp.lang.eiffel
From: anicolao@watcgl.uwaterloo.ca (Alex Nicolaou)
Subject: Sample Eiffel Objects and/or applications
Organization: Computer Graphics Laboratory, University of Waterloo, Ontario, Canada
Date: Sun, 24 Jan 1993 22:46:23 GMT


I'm looking for examples of correct Eiffel code for the purposes of testing
and Eiffel compiler; any code (which works) would be appreciated, as well
as pointers to sources of public domain eiffel libraries, if any exist.

Thanks!

alex
Newsgroups: comp.lang.eiffel
From: geoff@flash.bellcore.com (Geoffrey Clemm)
Subject: Re: creation
Organization: Bellcore
Date: 21 Jan 93 21:27:20

In article <1jkgekINNa4i@network.ucsd.edu> mbk@lyapunov.ucsd.edu (Matt Kennel) writes:
   ram@eiffel.com (Raphael Manfredi) writes:
   : I think there are some situations where a creation procedure may require a
   : postcondition, completing the assertions coming from the invariant. For
   : instance, assume you are creating an object representing a Finite State
   : Automaton (FSA). You may want to have two or three creation procedures
   : to make sure the FSA is put in one of its "begining" states. The postcondition
   : would express that the FSA is indeed in the correct state.

   I have a basic question here.

   How are postconditions useful?  It seems that they express little
   beyond the correct functioning of a class feature.

I thought Raphael was very clear in his answer.  If you have several creation
procedures, each of which initialize the FSA into a *specific* *distinct*
state, then you would like to have a post-condition stating the characteristics
of that state.  The post-conditions on each of the creation procedures could
significantly differ, to the extent that the distinct initial states differ.

Having an invariant that says you are in one of the legal states is worthless
if you need to be in a specific initial state.

Cheers,

Geoff
--
geoff@bellcore.com
From: chl@clw.cs.man.ac.uk (Charles Lindsey)
Newsgroups: comp.lang.eiffel
Subject: Re: creation
Date: 22 Jan 93 10:22:53 GMT

In <memo.879182@cix.compulink.co.uk> wil@cix.compulink.co.uk (William Stuart-smith) writes:

>It seems correct to me. A creation procedure sets up the invariant of its
>class: It returns nothing and affects only its class, therefore the only
>'postcondition' (in the sense of the entire condition which is implied by the
>precondition for correctness) that applies pertains to the state of the class
>as a whole and is therefore the invariant.

Not at all. One might want to specify that a stronger condition that
the invariant should hole when an object was first created.
Newsgroups: comp.lang.eiffel
From: wil@cix.compulink.co.uk (William Stuart-smith)
Subject: Re: creation                            
Cc: wil@cix.compulink.co.uk
Reply-To: wil@cix.compulink.co.uk
Date: Sat, 23 Jan 1993 01:10:00 +0000

bertrand@eiffel.com (Bertrand Meyer) writes
> I don't really understand the example. How does the system initialize [the
> reference associated with] x: by creation, or by assignment from y?

'x' is initialized by creation. A simple way to look at this is as two
fragments, both involving the same two types.

  A 'V' conforms to a 'U'; V has no 'cp'.

  [1]  x: U;  y: V;     !! x.cp;  x:=y

  [2]  x: U;  y: V;  ! U ! x.cp;  x:=y

As I interpret ETL (in particular p371, the parenthesis in para 6), the two
fragments are semantically identical. [1] is just a shorthand for [2]; since
we know that 'x' is a 'U', the second occurrence of 'U' in [2] is redundant,
and one fragment can be transformed into the other by textual substitution
with no change in semantics.

According to the description of system level validity, however, the two
fragments are different: [2] is valid and [1] is system-invalid.

This strikes me as inconsistent, or at least unreasonable. It seems to me
that "!!" is nothing more than semantic sugar. Why should its use affect
validity?


Newsgroups: comp.lang.eiffel
From: diamond@jit.dec.com (Norman Diamond)
Subject: Re: TITLE: "Eiffel: The Language" 2nd printing ERRATA
Reply-To: diamond@jit.dec.com (Norman Diamond)
Organization: Digital Equipment Corporation Japan , Tokyo
Date: Wed, 27 Jan 1993 06:23:40 GMT

In article <memo.884925@cix.compulink.co.uk> arh@cix.compulink.co.uk (Andrew Henson) writes:
>There is a partial errata I've picked up from the 2nd printing.
>There are a lot of improvements over the 1st printing,

Sigh.  Anyone have the errata for the first printing?

[Please kindly mail as well as post.  Digital's internal network has been
slower than usual, and I don't know if I'll ever see some postings.]
--
Norman Diamond                diamond@jit.dec.com
If this were the company's opinion, I wouldn't be allowed to post it.
Pardon me?  Or do I have to commit a crime first?
From: wilkins@cs.cofc.edu (Jimmy Wilkinson)
Newsgroups: comp.lang.eiffel
Subject: Is there a way to get the effect of Pascal's procedure parameters?
Date: 27 Jan 93 23:08:08 GMT
Organization: The College of Charleston
X-Xxmessage-Id: <A78C8071F5021105@jimmy.cs.cofc.edu>
X-Xxdate: Wed, 27 Jan 93 18:09:53 GMT
X-Useragent: Nuntius v1.1.1d17

I'd like to be able to do in Eiffel something similar to the following
(fragmentary) Pascal code:

program  demo(....);

type
       PersonRecord = ............
       PersAry = array[...] of PersRec;

var  pa : PersAry;

function DateLess(r1, r2 :PersonRecord) : boolean;
begin
  {Return TRUE is the date field in r1 is LESS than the one in r2;  else
FALSE}
end;

function ZipLess(r1, r2 :PersonRecord) : boolean;
begin
  {Return TRUE is the zip field in r1 is LESS than the one in r2;  else
FALSE}
end;

procedure Sort(var a : PersAry; function Precedes(r1, r2: PersonRecord) :
boolean);
begin
{sort array a according to order established by Precedes}
end;

begin     {main}
  {establish pa and its contents}
  Sort(pa, DateLess);
  {do something with the array sorted into ascending order by date}
  Sort(pa, ZipLess);
  {do something with the array sorted into ascending order by zip code}
end.

I can't find anything that will do this.  Does anyone in this group know
whether it can be done and, if so, how?  Any help will be most
appreciated.

-------------------------------------------------------------
Jimmy Wilkinson             Professor of Computer Science
wilkins@cs.cofc.edu        The College of Charleston
(803) 792-8160              Charleston      SC        29424
Newsgroups: comp.lang.eiffel
From: wil@cix.compulink.co.uk (William Stuart-smith)
Subject: Re: creation                            
Cc: wil@cix.compulink.co.uk
Reply-To: wil@cix.compulink.co.uk
Date: Mon, 25 Jan 1993 06:22:00 +0000

bertrand@eiffel.com (Bertrand Meyer) writes
> What is the role of y and of the assigments? If x is to be reassigned
> immediately after creation, the creation is useless.

I said it was a simple way; I didn't say it was a realistic way. :-)
The purpose of the assignments to y is simply to make [1] system-invalid.

If a 'V' conforms to a 'U' and 'V' has no 'cp', then
is
   [1]  x: U;  y: V;     !! x.cp;  x:=y
system-invalid?
Is
   [2]  x: U;  y: V;  ! U ! x.cp;  x:=y
valid?

Sorry if I have got the wrong end of the stick. When I asked
eiffel@rocksld.com (Rock Howard) about this, he couldn't explain it. He said
he thought there was a problem. That is why I brought up the subject here.
From: bertrand@eiffel.com (Bertrand Meyer)
Newsgroups: comp.lang.eiffel
Subject: Re: creation
Date: 25 Jan 93 18:02:17 GMT
Organization: Interactive Software Engineering, Santa Barbara CA

There is a misunderstanding somewhere. Let's pursue this offline.
-- 
-- Bertrand Meyer
ISE, Santa Barbara
bertrand@eiffel.com
From: bertrand@eiffel.com (Bertrand Meyer)
Newsgroups: comp.lang.eiffel
Subject: Re: creation
Date: 23 Jan 93 22:15:11 GMT
Organization: Interactive Software Engineering, Santa Barbara CA

I still don't understand the example in <memo.887754@cix.compulink.co.uk>
by wil@cix.compulink.co.uk (William Stuart-smith):


>   A 'V' conforms to a 'U'; V has no 'cp'.

>   [1]  x: U;  y: V;     !! x.cp;  x:=y
> 
>   [2]  x: U;  y: V;  ! U ! x.cp;  x:=y

What is the role of y and of the assigments? If x is to be reassigned
immediately after creation, the creation is useless. 
-- 
-- Bertrand Meyer
ISE, Santa Barbara
bertrand@eiffel.com