[comp.software-eng] Soft-Eng Digest V4 #19

MDAY@xx.lcs.mit.EDU ("Mark S. Day") (03/14/88)

Soft-Eng Digest             Sun, 13 Mar 88       Volume 4 : Issue  19 

Today's Topics:
                               Linkers
                       Programmer Productivity
            Response to "A Cynic's Guide, part 1" (4 msgs)
                      Shared Libraries (2 msgs)
               Rochester Connectionist Simulator update
           Call for Papers: Neural Info Processing Systems
                  HICSS-22 Rapid Prototyping Session
----------------------------------------------------------------------

Date: 5 Mar 88 01:41:22 GMT
From: quintus!ok@unix.sri.com  (Richard A. O'Keefe)
Subject: Linkers

>> We could profitably turn this into a survey of what the linker
>> requirements of various languages are:  could an ADA compiler easily
>> use the UNIX / VMS / MVS / PR1MOS linker?

> In a word, no.  A linker for Ada must check for matching of user-defined
> types in different modules.

In two words, not quite.  There are two things:  planning a link (which
involves working out where to find things and checking that the operation
requested makes sense) and *doing* the link.  Is there any reason why an
ADA compiler could not generate two files: a description file and an
object file, and an ADA linker could not use the information in the
description files to validate and plan the link, and then use the
UNIX / VMS / MVS / PR1MOS linker to *do* the link?  If an ADA program is
to include foreign code (ADA-FORTRAN is a particularly interesting case)
mustn't something like this be done?  Simula has similar link validation
requirements, but Simula compilers normally use the system-supplied linker.

I'm not claiming that this is the best way to do it.
I'm just trying to draw a distinction between finishing off a compilation
and linking.  Maybe there isn't any such distinction if you look hard
enough.  The Burroughs BINDER certainly managed to check interfaces as it
bound together COBOL, ALGOL, and FORTRAN.  Is the fact that the UNIX
linker doesn't check interfaces its greatest weakness?

------------------------------

Date: 8 Mar 88 16:51:20 GMT
From: rfs@cs.duke.edu  (Robert F. Smith)
Subject: Programmer Productivity

I am interested in learning about research or tests of programmer's
productivity.  My search at the library was fruitless.  If you have
pointers/bibliographies/ideas on this, please e-mail to me.

Thanks,


Robert F. Smith                 CSNET: rfs@duke        
Dept.of Computer Science        ARPA:  rfs@cs.duke.edu
Duke University                 UUCP: {ihnp4!decvax}!duke!rfs
Durham NC 27706                 Phone (919)684-5110 Ext. 254

------------------------------

Date: 7 Mar 88 00:04:44 GMT
From: defun.utah.edu!shebs@cs.utah.edu  (Stanley T. Shebs)
Subject: Response to "A Cynic's Guide, part 1"

In article <302@buckaroo.SW.MCC.COM> marks@buckaroo.SW.MCC.COM (Peter) writes:

>> The solution?  Software engineers have to stand up for what they know is
>> right, [...]
>
>It seems to me that the *solution* proposed here can be paraphrased as 
>"people have to will themselves to change." If hoping for a silver bullet
>is futile, how well does wishing for the magic potion called "will power"
>stand up to scrutiny?

Willpower is greatly aided by the changing of old institutions and the
establishment of new ones (people love to be ordered about by "the system",
whatever they might say).  An equivalent of Underwriter's Labs for legal
software has been mentioned recently, and it's already gained considerable
power.  A Ralph Nader type could do lots to get consumer protection outfits
set up.  I'm not real keen on forming another government agency to monitor
computing, but that may be what it takes.  Unfortunately, it will probably
happen *after* the first software-caused disaster killing >100 people...

>Or perhaps this is a call to the Lone Ranger himself
>to rid the world of evil-doers?

Heh-heh, there are a few computer companies where I'd like to don my Rambo
outfit and put a few HE rounds through certain people (they know who they
are).  Seriously, I do support licensing of software engineers along with
civil and maybe even criminal penalties for misdeeds.  Nothing like the
law to instill a little willpower, when you're trying to decide whether or
not to add that bit of type-checking code!

							stan shebs
							shebs@cs.utah.edu

------------------------------

Date: 9 Mar 88 03:23:44 GMT
From: tada@athena.mit.edu  (Michael Zehr)
Subject: Response to "A Cynic's Guide, part 1"

>			Hardware vs Software
> Why can hardware engineers do 
> their job so well and software engineers talk about the (huge) percentage 
> lifecycle cost in the maintenance phase?   
> [ lots of other stuff... ]

Well, I read an article recently that gave some facts that could
explain some of the discrepancy.  I don't remember the exact numbers,
so I'll paraphrase:

Over the last blah years, the demand for hardware has grown at a
[blah] annual rate.  Over the same period of time, the demand for
software has grown at a [5 times as much] annual rate.

In other words, the software people are under more pressure to get
their product out fast.  [yeah, i know -- all the hardware people
who've ever had a deadline are going to flame me...]

Another possible reason is that a lot more custom software is produced
than custom hardware.

just a few random thoughts ...


michael j zehr
"My opinions are my own ... as is my spelling."

------------------------------

Date: 9 Mar 88 04:05:36 GMT
From: karl@TUT.CIS.OHIO-STATE.EDU  (Karl Kleinpaste)
Subject: Response to "A Cynic's Guide, part 1"

tada@athena.mit.edu writes:
   In other words, the software people are under more pressure to get
   their product out fast.  [yeah, i know -- all the hardware people
   who've ever had a deadline are going to flame me...]

This is related to the abysmal management styles that seem to go with
software management.  "If it's not perfect, that's OK, we'll fix it in
release 2.  Just get us on the market *first*."  The investment to
repair faulty hardware already in the field is positively monstrous;
the investment to repair faulty software in the field is (perceived to
be) small.

Example: At a department where I used to work (I won't even tell you
which job, so those of you who might know where I've been the last 10
years can't even guess well), a certain large product was arranged to
be delivered by a certain date.  This offense was committed by a group
responsible for setting up contracts but who knew absolutely nothing
of software engineering; this was evidenced by the ridiculous time
schedule they imposed on the developer-grunt staff.

First result, the original schedule was simply impossible to meet.  It
was hopeless from the outset.  There was no way to succeed.  Talk
about lowered morale.  Common bitch session over lunch: "How are we
going to deliver by MM/DD/YY?"  "We aren't, of course."  Be still, my
wretching stomach.

Second, there was no way to expand the schedule.  The contract which
both corporate parties had signed required the supplied date, period.
Delay was dealt with in the form of charges against my company as
$N/day where N is very, very large.

Third, management within the department was (ahem) suboptimal, in that
the already-excessively-tight schedule was arbitrarily tightened even
more by the department manager for reasons I don't even care to guess.
The initial beta-test delivery date was backed up 2 months.  Schedule
compression was required, which not only caused the loss of 2 months
of work before that delivery, but also 2 more days of work during
which the schedule tightening was performed by the entire development
staff.  You know the scenario: OK, everybody, pull out those schedules
that show your work done by MM/DD/YY, and find a way to compress it to
MM-2/DD/YY.

Ick.

Would this be tolerated in a hardware development environment?  Not in
any with which I have been associated.  As an example, if my group is
working on the next generation of 680x0, and we screw up the design
such that race conditions in the CPU are created, and we don't catch
the flaw until after we've shipped a couple hundred thousand of them,
our collective butt would be in a sling for sure.  The cost to the
company to replace the defective units in the field would be
absolutely horrendous.  Jobs would be lost for certain.

In software, though, the view is that it can be fixed for the next
release.  It's "just software," just park a new tape on the drive and
load in new binaries.  See, your bug is gone now.  Oh, you found
another bug?  Gee, we're sorry, that'll be fixed in release 3...

Bad management is the curse of software development.  Think about the
rather neat, high-quality software that is produced by people who are
not concerned with schedules much; my experience has been that such
software is far more bug-free than anything written under pressure.
This is especially true of real software professionals who are working
on something for themselves in their spare time that happens to be
useful to a larger group, so they start distributing it.

You know, come to think of it, my story about compressed schedules
fits *2* of my previous jobs altogether too well...

Karl

------------------------------

Date: 4 Mar 88 21:03:36 GMT
From: uh2@psuvm.bitnet  (Lee Sailer)
Subject: Response to "A Cynic's Guide, part 1"

In article <2541@Shasta.STANFORD.EDU>, neff@Shasta.STANFORD.EDU (Randy Neff) says:
>
>Why the big difference?   Both hardware and software are working instantiations
>of behavior as described by requirements and specifications.  There is the
>obvious difference in the scale of the projects:  designing and implementing
>a RISC chip is a lot simpler than designing and implementing a compiler for
>it or (gasp) a new operating system for it.  Why can hardware engineers do
>their job so well and software engineers talk about the (huge) percentage
>lifecycle cost in the maintenance phase?
>

A cynical answer:  Since hardware engineers usually get to do their
work first, they do it in ways that make it easier for them and harder
for the software engineers who follow.

------------------------------

Date: 8 Mar 88 11:51:16 GMT
From: mcvax!botter!star!jos@uunet.uu.net  (Jos Warmer)
Subject: Shared Libraries

>How does this "smart linker" business tie into the "shared libraries"
>in Unix V.3.  As I understand it, (1) when I need a module, the whole
>library is loaded, but (2) when another program needs a module from
>the library, it shares the core image that is already in memory.
>
>So, for example, at any moment, there is only one copy of all the stdio
>(that's standard input-output in Unix-speak) stuff in memory at any given
>moment, and all programs that need it share.  (This also makes the
>executables smaller and saves disk space and load time.)
>
>                                     Just asking,       Lee

Shared libraries do have the advantage of making the
executables smaller.  There is however also a disadvantage
which we stumbled across last week.

We have a program installed under VMS at a client of us.
The program was tested and worked perfectly well for several months.
Then all of a sudden it started to produce erroneous output,
and we got an alarming telephone call.

What happened ?

The day things went wrong, they had a new version of the VMS
C compiler installed, including of course the (shared) libraries.
The errors in the unchanged working program emerged from an
error in the new libraries.

Moral:

    Replacing shared libraries with new versions could make
    lots of working programs crash.  Because those libraries are
    instantaneously used in almost ALL running programs, one
    error in such a library can be fatal for the complete system.

	Jos Warmer,
	VU Informatica Amsterdam
	jos@cs.vu.nl

------------------------------

Date: 9 Mar 88 01:11:57 GMT
From: wesommer@ATHENA.MIT.EDU  (William Sommerfeld)
Subject: Shared Libraries

A properly designed shared library system should deal gracefully with
version skew.

Ideally, the installation of a new library should be done such that
existing processes can continue to use the old version of the library,
while new processes which start up see the new version.

Also, there should be a facility to allow just one process to run with
a new version of a shared library, to test compatibility with the old
version, although this is less important in a single-user workstation
environment than in a timesharing environment.

All this implies that the interface to the routines is unchanged, and
that only the _implementation_ of the library is changed in the new
version; changing the interface of a library routine will be painful
unless you've had the foresight to include some sort of version
numbering system.

					- Bill

------------------------------

Date: Tue, 08 Mar 88 17:37:37 -0500
From: goddard@cs.rochester.edu
Subject: Rochester Connectionist Simulator update

The Rochester Connectionist Simulator is available from:

	Rose Peet
	Department of Computer Science
	University of Rochester
	Rochester, NY 14627.

	rose@cs.rochester.edu
	...!seismo!rochester!rose

There is a licence to sign, and a distribution fee.  Currently
distribution is via tape only, anonymous ftp may become available at
some indeterminate point in the future.  The package is written in C,
runs under UNIX, and has a graphics package which runs under Suntools.
It is currently in use at several dozen sites and is described in the
February issue of the CACM.  The simulation system is highly general
and flexible, placing no restrictions on network architecture, unit
activation functions and data, or learning algorithms. 

A new version, 4.1, will be releases shortly.  Version 4.1 includes
facilities to selectively delete links and sites, with garbage
collection; capability for integration with Kyoto Common Lisp and
Scheme, allowing the simulator to be controlled from those packages;
dynamic reloading of activation and other functions into a running
simulator, with access to global variables from the interface; and the
ability to associate a delay with each link.

An X-windows graphics package is under development.
A mailing list for simulator users will be started shortly.

For more information, licence, distribution details, contact Rose Peet
at the address above.

Nigel Goddard

------------------------------

Date: Wed, 9 Mar 88 10:26:14 EST
From: 21423js@faline.bellcore.com (Jawad Salehi)
Subject: Call for Papers: Neural Info Processing Systems

                 CALL FOR PAPERS


               I E E E Conference on
       Neural Information Processing Systems
           -- Natural and Synthetic --


  Monday, November 28 -- Thursday, December 1, 1988
                  Denver, Colorado

This will be the second meeting in a series.  The November
1987 meeting, at the same location, brought together neurobiologists,
cognitive psychologists, computer scientists, engineers and physicists.
Several days of focussed workshops at a nearby ski resort followed.
A similar mountain retreat is planned for this year.  At the NIPS
meeting, the topics we expect to cover include the following:


Neurobiological models of development, cellular information processing,
synaptic function, learning and memory.

Connectionist models of learning and cognitive processing; training
paradigms; analysis of applicability, generalization, and complexity.

Applications to signal processing, vision, speech, motor control,
knowledge engineering and adaptive systems.

Practical issues in the simulation of neural networks.

Advances in hardware technologies -- neurophysiological recording tools,
VLSI or optical implementations of neural networks.

Technical program:  Plenary, contributed, and poster sessions will be
held.  There will be no parallel sessions.  The full text of presented
papers will be published.

Contributed papers:
Original research contributions are solicited, and will be rigorously
refereed.  Authors should submit six copies of a 500-word (or less)
summary and one copy of a 50-100 word abstract clearly stating their
results to the program committee chairman, Scott Kirkpatrick,
IBM T. J. Watson Research Center, P.O. Box 704, Yorktown Heights, NY
10598.

Deadline for papers is May 14, 1988.

---------------------------------------------------------------------------

               I E E E Conference on
       Neural Information Processing Systems
           -- Natural and Synthetic --



Conference:  November 28 - December 1, 1988 (Mon-Thurs)
   Sheraton Denver Tech Center, Denver, Colorado

Workshops:  December 1 - December 4, 1988 (Thurs-Sun)
             Summit County, Colorado

Organizing committee:
  Terrence Sejnowski	General Chairman
  Scott Kirkpatrick	Program Chairman
  Clifford Lau		Treasurer
  Jawad Salehi		Publicity Chairman
  Kristina Johnson	Local Arrangements
  Howard Wachtel	Workshop Coordinator
  David Touretzky	Publications Chairman
  Edward C. Posner	IEEE Liason
  Larry Jackel		Physics Liason
  James Bower		Neurobiology Liason



(  )  Please send me registration material.

(  )  I intend to submit an abstract.

(  )  Please send me information about after-conference mountain retreat.

      I suggest the following workshop topics._________________________




Name __________________________________

Institution ___________________________

Address    ____________________________

           ____________________________

           ____________________________

------------------------------

Date: Sun, 6 Mar 88 20:09:36 CST
From: smu!leff@uunet.UU.NET (Laurence Leff)
Subject: HICSS-22 Rapid Prototyping Session

                  CALL FOR PAPERS AND REFEREES

    HAWAII INTERNATIONAL CONFERENCE ON SYSTEM SCIENCES - 22

                   Rapid Prototyping Session

            KAILUA-KONA, HAWAII - JANUARY 3-6, 1989

  The Software Track of HICSS-22 will contain a special set of
  papers focusing on  a broad selection of topics  in the area
  of Rapid Prototyping.  The  presentations will provide a fo-
  rum to discuss new advances  in theory and appli- cations in
  the use  of Rapid  Prototyping as a  means  for  early  exe-
  cution of software capabilities.  Prototyping can be used in
  different phases of software development for  different pur-
  poses. It can be used  to  refine  the requirements,   func-
  tional   evaluations,   performance evaluations,  as well as
  testing. Although there  is  a continuing  research  in try-
  ing to  develop  Very  High Level  Language  based  software
  design   environments, prototyping   activity  can  be  per-
  formed  with  varying degree    of   efficiency  and  effec-
  tiveness   in   any development  environment.

  Papers  are    invited   that may  be   theoretical, concep-
  tual, tutorial  or descriptive in nature.   Those papers se-
  lected  for  presentation  will appear  in   the  Conference
  Proceedings which  is published  by the Computer  Society of
  the IEEE.  HICSS-22 is sponsored by the University of Hawaii
  in cooperation with  the ACM, the Computer  Society, and the
  Pacific Research Institute for  Information Systems and Man-
  agement (PRIISM).  Submissions are solicited in:

     Prototyping experience with ART, KEE, PC+, etc.
     Prototyping  experience  with  C++,  Smalltalk, Flavors,
       objective-C, Ada, etc.
     Prototyping experience with CASE tools
     The role of Knowledge based systems in prototyping
     The role of simulation in Prototyping
     Prototyping experience in other environments/languages

  INSTRUCTIONS FOR SUBMITTING PAPERS
  Manuscripts should be 22-26 typewritten, double-spaced pages
  in length.   Do not send submissions  that are significantly
  shorter  or  longer than  this.  Papers must  not  have been
  previously  presented or published, nor  currently submitted
  for  journal  publication.   Each  manuscript  will  be  put
  through a  rigorous  refereeing  process.  Manuscripts paper
  should have a title page that  includes the title of the pa-
  per, full  name of  its author(s),  affiliation(s), complete
  physical  and electronic  address(es),  telephone  number(s)
  and a  300-word abstract of the paper.

  [ Note that the following are the correct deadlines.  Incorrect
   deadlines have been posted in some places. -- MSD ]

  DEADLINES
      A 300-word abstract is due by March 30, 1988
      Feedback to author concerning abstract by April 30, 1988
      Six copies of the manuscript are due by June 6, 1988
      Notification of accepted papers by September 1, 1988
      Accepted manuscripts, camera-ready, are due by October 3, 1988

  SEND SUBMISSIONS AND QUESTIONS TO EITHER
      Murat M. Tanik                            Raymond T. Yeh
      Southern Methodist University             ISSI International
      Computer Science and Engineering Dept.    9420 Research Blvd.
      Dallas  Texas, 75275                      Suite 2000
      (214) 692-2854                            Austin, Tx. 78759
      E-Mail UUNET:Tanik@SMU                    (512) 338-1895

------------------------------

End of Soft-Eng Digest
******************************
-------