[comp.software-eng] Software Engineering Digest v5n38

soft-eng@MITRE.ARPA (Alok Nigam) (10/23/88)

Soft-Eng Digest             Sat, 22 Oct 88       V: Issue  38

Today's Topics:
                        Application generators
        bar code systems for inventory and retail applications
              Cynic's Guide to SE #6: Forthcoming Revolt
                        Development on a micro
                    ever hear of FULCRUM? Help...
                   JSP/JSD/Jackson(not the singer)
               OOPs and JSP/JSD/Jackson(not the singer)
                         PDL Processor Wanted
                               PRICE SZ
                    Project Sizing and Estimating
----------------------------------------------------------------------

Date: 12 Oct 88 15:28:58 GMT
From: ssc-vax!shuksan!scott@beaver.cs.washington.edu  (Scott Moody)
Subject: Application generators

I have just recently heard about the term 'application generators'.
I would like to know if these can also be construed as 'Supercompilers'
as described in an article by Turchin in TOPLS (July 86) on
'The Concept of a Supercompiler'. Basically a program transformer.

I could see such a tool as just a higher abstraction for a programmer
to use, in much the same way a high level programming language is
a higher abstraction to the low level machine level. Why not provide
a tool (language,set of tools) that will allow programming of an application.

In my case, we have a set of graphic prototyping tools that are very useful to
develope specific applications (something like visual programming).
Unfortunately the tools are so generic that the end result is a great
MODEL of the applications, but the execution performance isn't as good
as a taylored end product. Why not provide a application generator
or metasystem transformer, that will take the prototype and generate
a streamlined end product. This way changes can be made to the generic
high level prototype, without having to diddle in the low level
end produce. (Have we heard this before?)

Does this even come close to your concept of an application generator?

Could you post any references that are explicitly on the application
generators.

(Actually after posting this I found an article in July 1988 issue of
Computer on application generators, and am now editing the batched
news message:
  Do feel that the application generators you want are actual formal
  definitions of the end system? Or do you think that a running
  prototype would also fit?  )

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

Date: 15 Oct 88 14:21:45 GMT
From: mds@bu-cs.bu.edu  (Michael Siegel)
Subject: bar code systems for inventory and retail applications

Does anyone have any information on software systems that combine
bar code recognition with inventory and retail operations. I
would be interested in software by name and/or articles in journals
or magazines describing these types of systems.

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

Date: Fri, 14 Oct 88 18:08:08 PDT
From: PAAAAAR%CALSTATE.BITNET@CUNYVM.CUNY.EDU
Subject: Cynic's Guide to SE #6: Forthcoming Revolt

Please have pity on your proffessors!
They may have just been told that they have to replace
an aging mini with Alseimer's and a complete hardware labe
witha $2000 (Two Thousand dollars) budget....
It just takes a small miscalculation by the state that supports
or at least attempts to control a university system and
suddenly there is ZERO cash....

But you don't want to hear any more bitterness...

Recently I started a C programming class and as is my habit
invited each student to use there own machine if they so wished
and took responsibillity for it - while providing on a mini
running BSD as a central fallback system and communications tool...

The class split 40:40:20 into IBM PC:Macintosh:None (with one
Atari!). I'm not sure what this means but it is clear that
there are a lot of undergraduates with their own software development
system these days...say about 80% of all students...

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

Date: Fri, 14 Oct 88 23:09:02 PDT
From: Mike (I'll think of something yet) Meyer <mwm@violet.Berkeley.EDU>
Subject: Development on a micro

>> Also, it is quite easy for one person to develop a project that won't fit
>> within the memory constraints of a PC (which could be solved by a large
>> virtual address space).

True. On the other hand, it's a lot cheaper to stuff a micro with
memory than to buy a mini or mainframe and stuff it with disk.
Especially if you can't control the maximum virtual a process can get
on the development system, as those tend to default to small numbers
(2-8 meg).

>> My current project is 20k lines and 200+
>> source files and I think that without the simple facility of a core dump to
>> save the state of the program when a fatal runtime error occurs, I would be
>> still focusing on debugging instead of on future enhancements.

My current project is comparable in size - 25K in 30 or so files.

If I were restricted to post-mortems for debugging, the project
wouldn't be nearing completion. Much nicer to have the debugger halt
the program on a fatal error, and hand you the offending code in a
window.

>> Also, the
>> project is big enough that each module has its own directory.  I don't
>> have much respect for PC make facilities especially since a PC has limited
>> concurrent execution powers to allow for the nested makes needed for
>> the nested directory structure.

My project is split across multiple directories. I didn't go with
nested makes, mostly because things are organized for supporting four
different different hardware/software combinations.  The objects,
executables & Makefile for each are in their own directory, and the
makefile does what is correct for that particular hardware/software
combination.

I could have done makes that dropped into each directory and did a
make. After all that should only double the number of process needed
to compile each file.  But that would have been a nightmare to
coordinate with needing different commands for each combination I was
working with.

After pointing out the value of using a micro networked to a
mainframe, I suppose I ought to explain why I'm working on a micro.
It's because I'm in the last phases of putting a user interaface for
that micro into the program. I'm working on a frozen version of the
machine indepent part of the project, and others are developing the
next version of that. The code I'm working on _has_ to run on the
target machine (or I have to develop a simulator for the windowing
system it's running). That leaves local development, or
cross-compiling and downloading. The choice was mine, and I prefer
local development.

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

Date: Fri, 14 Oct 88 19:30:08 PDT
From: palmer%hbvb.span@VLSI.JPL.NASA.GOV (Gary Palmer)
Subject: ever hear of FULCRUM? Help...

Hello everyone, I need some help.
  This may not be the correct BB but I'm doing a massive
cross-posting...

  I am looking for some (any) information on a
system/package/who-knows-what that does automated mapping.  What I
have heard is that one called FULCRUM exists but I have been unable to
gather any other information.  That's all I know, any other help would
be greatly appreciated...  Any leads about other automated mapping
(from you cartographers out there) products would also be appreciated.

If there are any requests to do so, I will post my findings.

  Please respond to me directly as I do not subscribe to these BB's
that I am posting to.

Many Thanks,
Gary Palmer
Science Applications International Corp.
(213) 781-8644
SPAN:     hbva::palmer
INTERNET: palmer%hbva.span@vlsi.jpl.nasa.gov

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

Date: Fri, 14 Oct 88 18:58:57 PDT
From: PAAAAAR%CALSTATE.BITNET@CUNYVM.CUNY.EDU
Subject: JSP/JSD/Jackson(not the singer)

There have been some questions about  Michael Jackson, the founder of
MJSL, on this digest recently.

I was trained by the UK Civil Service and MJSL in JSP and the early
forms of JSD - this was in 1979 thru 1982.  In what follows I am
expressing my own conclusions and not those of either these
organisations (who'd probably want me to shut up anyway...).

Someone asked for an address - as of 1987 the full address was
Michael Jackson Systems Limited
22 Little Portland Street
LONDON
W1N 5AF
UK

(the W1N 5AF is the Brit zipcode and identifies the address to within a "block")

In the USA (at that time) a company was licensed by MJSL to sell training,
products and susch - but I don't have the address (HELP!)
Bailey and Benson, Decision Systems Inc.

I have a list of licensees in MJSL's brochure (1987).

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

Jonathan Mitchener<jmitchener@axion.bt.co.uk> in Vol 5 Iss34
Asked about
>                a) Jackson Structured Design                    YES/NO
This may be difficult to answer:-)
since there is
        JSP - Jackson Structured Programming
and
        JSD - Jackson Systems Development
(at least from 1982 thru 1987).
A note on names - Jackson uses English VERY precisely.  If I recall correctly
he once claimed that the SP in JSP was forced on him by his Scandinavian
customers...and JSD is about System Development because it decomposes
the Software Life Cycle in an unusual way, moving from a description
of the problem to the exact code for the solution without either stepwise
which brings the tasks of analysis, design and programming under
a single person's job (I think).

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

In Vol 5 Issue  37 ( 7 Oct 88 16:54:26 GMT )
ai.etl.army.mil!mike@ames.arpa  (Mike McDonnell)
Asked about
> ?Relationship of OOP and JSD?
This message may get too long for our mailer so there's more to follow...
Watch this space...

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

Date: Fri, 14 Oct 88 20:03:19 PDT
From: PAAAAAR%CALSTATE.BITNET@CUNYVM.CUNY.EDU
Subject: OOPs and JSP/JSD/Jackson(not the singer)

In Vol 5 Issue  37 ( 7 Oct 88 16:54:26 GMT )
ai.etl.army.mil!mike@ames.arpa  (Mike McDonnell)
Asked about
> ?Relationship of OOP and JSD?

>We here at ETL are embarking on a medium-sized software development
>project.  We want to use "structured techniques", but we need help.  I
>like JSP and JSD because of Jackson's "entities", which seem to be
>something like the "objects" in C++, Flavor systems, and the Common Lisp
>Object System (CLOS).
They are.

>It seems to me that what Jackson was after was a sort of object-oriented
>programming [OOP] method that he developed using the tools of his day
>(early 70's I think).
Yes - he got the basis of JSP while at Hoskins in and before the seventies,
worked with a consultancy/publishing/training company that is now defunct
published "The Principles of Programming" in 1975
and formed MJSL.

>His idea of modeling objects rather than
>procedures is attractive, but the implementation seems complicated.
Absolutely
 - when done in a sequential language like COBOL, FORTRAN
PL/1, BASIC, or (yech) Assembler concurrency in any form is either
a pain(eg BASIC) or hopelessly innefficient(eg PL/1).
C seems (as always) to have almost exactly the right primitive features
('return', static storage, branchess into and out of structures)
without the right syntactic sugar to make them less rude to those
who have been programmed to avoid 'g*t*s'.

JSP and JSD appear cleaner in languages and systems that allow
concurrency/tasking/pipes/rendezvouses(sp?)/parallelism/objects/messages.

>Would it be possible to do a more simple and natural implementation of
>Jackson's ideas using a more modern programming language?
Certainly - as long as you can
        (1) Backtrack out of a sequence that turns out to be a dead end
&       (2) Set up a set of communicating sequential processes simply.
The ICON Language has the right stuff (generators,backtracking etc).

>Also, the
>languages available to me (C, C++, Common Lisp and CLOS) don't have
>coroutine linkages.  I'm not sure how to simulate them.
I have some simple examples I use in various courses and
I can share a 20 line 'm4' macro package for C that hides all the
g*t*s and labels used in "inversion"

>  I also don't
>understand what he means by "inverting a program", but it seems
>unnatural.
Yes - "inversion" does seem unnatural. The name is misleading
and seems to be from Warnier's idea of turning a tree upside down.

The key point is to not understand everything but to hand compile
the individual entries and exits to and from the 'semi-co-routine'

It is no more or less than a way of faking co-routines
in languages that don't have them. The code is ugly (all g*t*s) if
you have to read it. But so is any "structure" when it is compiled.
"Restartable subroutines"/ "Semi-co-routines"/"inversion" is
just a hand compiled very efficient structure for cooperating
sequential processes.  It is not a coincidence that Hoare developed CSP
after several long sessions with Jackson, in my humble opinion.

>I need to know more before I can commit to a design method.  Are my
>conclusions about the relationship between JSD and OOP justified?
Yes - there may even be a report on doing this in a recent IEEE Tutorial.

>If there is a separate discipline of program and system design that has
>evolved to the maturity of JSP and JSD and is based on modern concepts
>of OOP, what is it?
In the early 80s the following might have developed a mature method for OOPS
        Warnier and Orr (who did not evolve in that direction)
        a relative (Cohen I think), who was sued...
        Keith Robinson and/or John Hall in the UK( who I've lost track of)
       but had worked with the UK Civil Service on integrating the
       Jackson Entities/Event approach with Bachman's and Codd's
       techniques for determining entities.
More recently there is Grady Booch's work which focusses on the User's
Vocabulary to determine the Objects but relies on ADA
but this has not developed the same rigorous/religious flavor of JSD.

JSD via Hoare's CSP has also influenced on Pamela Zave's PAISLEY(sp?)
and some other Formal Methods...

I will admit that JSP/JSD underlies 80% of my research and 100% of my
programming...

However - JSD is probably the most mature technique for the detailed
analysis of dynamics and the design of strictured objects.
On the other hand - I have seen designs go wrong when the designers
have not done a conceptual data base design as well as JSD.

May the Source be with you...

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

Date: 12 Oct 88 16:00:19 GMT
From: martin@umn-cs.arpa  (Johnny Martin)
Subject: PDL Processor Wanted

Xinotech Research of Minneapolis sells a language independent structure
editor which supports multiple views of program/documentation/pseudo-code.
It is called the "Composer", and it supports a variety of programming and
a few specification languages (Ada, Cobol, Pascal, Modula-2, MSG, etc.)

The composer is loaded with nifty editing features, automatic indentation,
summary views, customized indentation schemes, full syntax checking, and
provides some fancy conversions (like Pascal --> Ada).  The composer also
runs on IBM-PC (and compatibles), Sun's, Apollo's, VAXes (VMS and Unix),
and some other machines which I can't remember.

If you're interrested, their address is,

        Xinotech Research, Inc.
        Technology Center, Suite 213
        1313 Fifth Street SE
        Minneapolis, MN  55414
        (612) 379 - 3844

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

Date: 13 Oct 88 11:30:00 CST
From: "HSDP1::LONGRA" <longra%hsdp1.decnet@bafb-ddnvax.arpa>
Subject: PRICE SZ

Where can I find info on using the PRICE SZ model?
May send directly to:

LONGRA@BAFB-DDNVAX.ARPA

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

Date: Thu, 13 Oct 88 14:01:23 CDT
From: marco@ncsc.ARPA (Barbarisi)
Subject: Project Sizing and Estimating

>...interest in effort estimating and project sizing techniqes.
(comments about estimate accuracy in early phases of software development
 and allusions to the difficulties of dealing with managers who
 think software is something you get in the linen department...)
>Some of the methods I've read about, but not used are:

>        COCOMO          Barry Boehm
>A model that shows the trade-offs between
>schedule/effort/quality/complexity would really be nice.

According to Boehm, the detailed COCOMO offers estimates are
within 20 percent of actual cost 80 perecent of the time.
My personal experience has found this to be an accurate claim.  COCOMO allows
the user to study trade-offs between schedule, effort, quality, complexity,
and et cetera.  We use a version developed at Wang Institue, called WICOMO.
Since the Institute has been captured by Boston University, you might want
to check with BU before Wang.  It runs on Unix and MS-DOS, and is written in
Pascal, should you wish to modify it.

In my experience, an *HONEST* COCOMO estimate is a good a your guess of how
many lines of code will be delivered.  In every case where I've been told
that COCOMO (and other estimating tools) is useless and inaccurate, I've
found that the user whittled down the number of lines of code until the
estimate fit the available budget.  This usually occurs under management
pressure.  This problem is exacerabated by dishonest adjustment of parameters
for schedule, complexity, etc.; with the goal of making the estimate
fit what management wants to hear.

Also, people around here are notorious for underestimating the number of
lines of code a project requires.

The basic rule of thumb is to provide a range of estimates from optimistic
to pessimistic.  Create your assumptions carefully and be prepared to justify
them to management.  Break the software down into as much detail as possible
and size the software carefully (better to use what
appears to be an overestimate).
If the big-wigs aren't happy with a range of estimates,
give them the pessimistic version and don't back down!

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

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