[comp.software-eng] Software Engineering Digest v5n46

soft-eng@MITRE.ARPA (Alok Nigam) (12/06/88)

          Software Engineering Digest     Monday,  5 Dec 1988
                          Volume 5 : Issue 46

                            Today's Topics:

                    Software Uniformity Legislation
                              CASE Inquiry
                          Software Maintenance
                Software Quality (was: Re: rtm and uucp)
                       Intelligent Tools Program
              Re: Software Quality (was: Re: rtm and uucp)
                         The Mythical Man Month
                      AI maths reasoning research

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

Date:    Mon, 28 Nov 88 16:06 GMT
From: Colin M Thomson <mcvax!gm.rl.ac.uk!CMTA@uunet.UU.NET>
Subject: Software Uniformity Legislation

Conleth O'Connell sent a note to the soft-eng list about US uniformity
legislation for software.

I guess there's a risk lurking in there. Either we get legislation
appropriate to life-critical software, and all the commercial games outfits
go bust, or we end up with nuclear reactors and flight control systems
required to meet mickey-mouse standards.
Maybe the legislators will try to classify software, and set up rules
appropriate to different sorts of products; if they do, will they get it
right?

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

Date: Thu, 1 Dec 88 16:07:27 CST
From: Jerry Brookshire <brookshir@skvax2.csc.ti.com>
Subject: CASE Inquiry

I am looking for evidence or speculation about the probable improvements
gained from the use of integrated Computer Aided Software Engineering (CASE)
systems (also known as SEE - Software Engineering Environments, or SDS -
Software Development Systems).  I am interested mainly in improvements in
productivity, but would also like to hear about other improvements, such
as quality, reusability, etc.  I am familiar with some of the software
productivity literature, but do not find much about this CASE/SEE acpect.
Might this be because there has been no experience with such systems yet?

I will be happy to summarize whatever I get back to the list.

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

Date: Wed, 30 Nov 88 16:44:57 GMT
From: Gordon Howell <mcvax!hci.hw.ac.uk!gordon@uunet.UU.NET>
Subject: Software Maintenance

Dick Botting at CalState says....
>         ** SOON, ALL SOFTWARE ENGINEERING WILL BE MAINTENANCE **

Well, Dick,  I knew I could count on you for the controversial viewpoint...

Interestingly enough, I have just today polished off a grant proposal and
managed to convince my colleagues that *after* the 18-month implementation
period, a further 18-month maintenance period (with an RA hired full time
for this job) was not only not unreasonable but essential.

I think your conclusion could be statistically justified to some arbitrarily
small epsilon if you measure:
a.  The total universal person-hours committed to original software
implementation, and
b.  The total universal person-hours committed to software maintenance*

*defining "software maintenance" as any activity which involves software
modification, explanation, upgrading [and how many hour did it take *you* to
upgrade to VMS v4 (have you done v5?)], etc...  (please add to this list)

I suspect that the ratio a/b is already near-zero, and diminishing.  [anyone
hear of anyone actually attempting a proof like this?]

Is this the software variation of the Malthus Catastrophe?

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

Date: 29 Nov 88 23:48:09 GMT
From: tektronix!percival!qiclab!sopwith!snoopy@bloom-beacon.mit.edu  (Snoopy T. Beagle)
Organization: The Daisy Hill Puppy Farm
Subject: Software Quality (was: Re: rtm and uucp)

> The popular software distribution from a certain
> university in southern California is a good example of interesting ideas
> often marred by first-cut [i.e. poorly thought out, messy, sometimes
> incomplete] designs and implementations.

> This is not to say that any random commercial organization, like, say,
> one whose name has three initials and an "&" in it, will *necessarily*
> do better.  But those people can, in theory, afford to spend some money
> on quality assurance.  Universities generally can't.

Does this mean I should "rm -rf cnews" rather than trying to get it to
build?  :-)  Can I trust software from a certain university in eastern
Canada? :-)

These days, a vender is likely to be pushing both hardware and software
out the door as soon as possible so that they can rake in the bucks for
whizzy new feature foobar before their competitor beats them to it.  They
may very well argue that they can't spend any more time/money on quality.

If you want better quality, you need to get customers to demand it.
Customers with large budgets.

It isn't who you work for, it is your state-of-mind that counts.  Tools like
code inspections can help, but they may not buy you much if you're just going
through the motions.

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

Date: 30 Nov 88 03:57:56 GMT
From: munnari!murtoa.cs.mu.oz.au!ditmela!latcs1!kreed@uunet.uu.net  (Karl Reed)
Organization: Comp Sci, La Trobe Uni, Australia
Subject: Intelligent Tools Program


        THE AMDAHL AUSTRALIAN INTELLIGENT TOOLS PROGRAM
        ----------------------------------------------

                        at

        La Trobe University Department of Computer Science
        Bundoora, Victora, Australia


        is offering an appointment as Senior Tutor-Lecturer,
and a number of Research Scholarships for Graduate Students.

        The project is aimed at producing a set of softwwre tools
using "intelligent" systems which will improve the productivity of
the front-end of the software design process, and to experriment with
new approachs in modular programming and system design.

        Salary for the Senior Tutor-Lecturer is in the range A$26,010 to
A$40,100 (approx, subject to award variations), and the Research Scholarships
will be A$10,000 p.a. for appointees eligble for direct entry into an MSc
or PhD program. Support would also be provided for Honours or MSc Prelim
candidates. The project has an adequate budget for overseas visitors
and for travel.

        The Program is funded by Amdahl Australia under the Victorian Offset
Program, is being supported by La Trobe University, and involves
one of Australia's largest software companies as an industrial partner.

        The Program is aimed at raising the productivity of the software
industry, will run for atleast four years, and have a total of eight
staff and research students by the end of 1989.

        This is a unique opportunity to become involved in a major
research program with clear industrial links and results.

Enquiries should be directed to Mr. Karl Reed at the project director
kreed@latcs1.oz, or to Prof. Dillon at tharam@latcs1.oz

phone messages may be left on the recorded message machine on +61-(0)3-660-2343
or with the Dept. of Computer Science at La Trobe on +61-(0)3-479 2598

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

Date: 1 Dec 88 21:36:51 GMT
From: attcan!utzoo!henry@uunet.uu.net  (Henry Spencer)
Organization: U of Toronto Zoology
Subject: Re: Software Quality (was: Re: rtm and uucp)

>| This is not to say that any random commercial organization, like, say,
>| one whose name has three initials and an "&" in it, will *necessarily*
>| do better.  But those people can, in theory, afford to spend some money
>| on quality assurance.  Universities generally can't.
>
>Does this mean I should "rm -rf cnews" rather than trying to get it to
>build?  :-)  Can I trust software from a certain university in eastern
>Canada? :-)

You pays your money and you takes your chances! :-)

Some people can write good software without a QA group standing over them
with a club.  Some can't.  If there *is* a club-equipped QA-group, the odds
of getting consistently good software are better.  If there isn't, as in
universities, much depends on who wrote the stuff, and on whether they got
out on the right side of bed that morning.  (Even I, normally the absolute
pinnacle of programming perfection, have been known to produce code with
occasional trivial, unimportant flaws on a bad day.  :-) :-) :-) :-))

>These days, a vender is likely to be pushing both hardware and software
>out the door as soon as possible so that they can rake in the bucks for
>whizzy new feature foobar before their competitor beats them to it.  They
>may very well argue that they can't spend any more time/money on quality.

Yes, unfortunately, some QA departments come with a leash rather than a
club as standard equipment...

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

Date: 2 Dec 88 02:47:29 GMT
From: fluke!mce@beaver.cs.washington.edu  (Brian McElhinney)
Organization: SRS Recursive Software, Castrovalva, WA
Subject: The Mythical Man Month

>       1) OS 360 was written in assembly language. Even today there are not a
>       whole lot of programs equivalent in either size or complexity.
>          Remember, we're talking somewhere around 1965-1968. Read
>          "The Mythical Man Month" by ?? Brooks. The issue isn't complexity,
>          it's lines of code.

You read a different "Mythical Man Month" than I.  The issue was the
complexity of:

        * Understanding what they were supposed to be producing.
        * Understanding how they should go about designing it.
        * Understanding how they go about implementing that design.
          One *part* of the solution to the implentation is HOLs.

There are presently many, many, systems with more complexity that OS 360 --
they are just organized in a manner that reduces the complexity of individual
parts to something that is more understandable.  OS theory, compiler theory,
software engineering practices were all in their infancies when Brooks managed
the OS 360 project.

See Brooks' more recent paper "No More Silver Bullets" (IEEE Computer in 1987).

>          The only reason HOLs are considered an advantage is because most
>          programmers are really coders

Assembly language is inherently more complex, leading to less real work done,
and more time wasted on complexities that are not a part of the real problem
(the real problem is getting the job done, correctly, not organizing register
usage for every line of code you write, etc.).  Thus HOLs are an advantage
because they help reduce complexity.  The lines-of-code stat is a side effect
(and should be taken with a grain of salt, as should any software metric).

>          Automate coding from design specs and you lose all advantage of
>          HOLs.

There is a great deal of difference between specifications and a design that
implements them.  Because of this, automated coding for specifications is, in
Brooks' words, a "silver bullet"; a potential part of any real gain in
productivity, but not a general answer in and of itself.  Since it is only a
partial solution, the need for HOLs remains (and indeed, given the difficulty
of creating such a program, it would likely be a lot more efficient *in
development time* to have the automated code generator emit HOL).

>       2) One of the major savings in using assembly language IS due to
>          "tricks of the chip". I remember doing assembly programming on a CDC
>          6600 (1975). Two techniques in particular were used to speed up
>          programs; First, we coded inner loops to keep the entire intruction
>          stream in the instruction cache - no memory access (for
>          instructions) - major gain; second, we interleaved instructions to
>          take advantage of mutually independant asynchronous functional units
>          - the units only synchronized to access common registers - depending
>          upon the task, this could gain little to a lot.

But this is 1988.  You are simple describing what people are doing with with
modern compilers (MIPS is a good example).  And what others are doing inside
the CPU (the 80960 transparently does the interleave you describe; SPARC
*requires* the compiler to do be doing it).

>       3) The other major saving in using assembly language is "optimization".
>          Yes, having to include support code and other general library
>          routines from the compiler cuts down on code efficiency, but the
>          major problem is that most commercial compilers generate horrible
>          code. Hand coding in assembly makes up for the stupidity of
>          compilers. Of course, good compilers can be written but I suspect
>          that the R&D effort involved would push the potential selling price
>          out of the reach of most buyers. However, take a look at the IBM
>          FORTRAN H (optimizing) compiler or the original PASCAL compiler
>          written specifically for the CDC 6600.

By this same logic, we should all be riding horses.  Yes, poor compilers have
been written.  But just as cars improved, so will compilers.  The need for
extensive R&D decreases as the knowledge base increases, so you can expect
compilers to get better.  Look at the GNU C compiler.  It's a very good
compiler, yet it is free.  Also FORTRAN H and the original PASCAL are very
different from "modern" HOLs, which solve very different, much more difficult
problems.

>       4) It's still a truism that appropriate algorithms buy you far more
>          than hand optimization. However, once you have a working program you
>          can substantially improve it's speed by analyzing the bottlenecks
>          and recoding the critical procedures (or loops) in assembly
>          language.

As I said, assemble language is useful in its place.  This, and a very few
others, are the useful places.  Assembly language will never disappear, but it
has already faded away considerably, and will continue to do so.

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

Date: 2 Dec 88 00:16:48 GMT
From: mcvax!ukc!etive!aiva!smaill@uunet.uu.net  (Alan Smaill)
Organization: Dept. of AI, Univ. of Edinburgh, UK
Subject: AI maths reasoning research


        Department of Artificial Intelligence
             University of Edinburgh

               RESEARCH ASSOCIATE
            (Mathematical Reasoning)



Applications are invited for an SERC supported post, tenable, as soon
as possible, on a mutually agreed date. Appointment will be to
September 30 1989, initially, but with a strong possibility of renewal to at
least September 30 1991.  The research is to develop E\em proof plansL, a
technique for guiding the search for a proof in automatic theorem
proving.  The main application is to the automatic synthesis,
verification and transformation of logic programs using constructive
logic.  The project is led by Professor Alan Bundy and Dr Alan Smaill.

Candidates should possess a PhD or have equivalent research or industrial
experience.  Knowledge of logic is essential and knowledge of
artificial intelligence, formal methods in software engineering or
logic programming would be an advantage.  Salary is on the AR1A scale in
the range 9,865 - 15,105 pounds p.a., according to age and experience.

Applicants should send a CV and the names of two referees to:

  Prof. Alan Bundy.
  Department of Artificial Intelligence,
  University of Edinburgh,
  80 South Bridge,
  Edinburgh,
  EH1 1HN,
  SCOTLAND.

as soon as possible.  The closing date for applications is 16th
January 1989.  Further details may be obtained from Prof. Bundy (at
the above address or email to bundy@uk.ac.edinburgh or
bundy@rutgers.edu) quoting reference number 5613.

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

End of Software Engineering Digest
**********************************