Subject: Automated Software Engineering 97 Panel on Categories for Software Engineering

From: categories <[email-masked]>
Date: Mon, 10 Nov 1997 17:09:26 -0400 (AST)

Date: Sun, 9 Nov 1997 12:52:12 -0800 (PST)
From: Joseph Goguen <[email-masked]>

Hi folks!  I had to prepare a report on this meeting for another purpose, and
thought that a slight rewrite of it might be interesting and encouraging for
this group.

--Joseph
***********************************************************************
Joseph Goguen, Dept. Computer Science & Engineering, University of
  California at San Diego, 9500 Gilman Drive, La Jolla CA 92093-0114 USA
  email: [email-masked]
  www:   http://www.cs.ucsd.edu/users/goguen/
  phone: (619) 534-4197 [my office]; -1246 [dept office]; -7029 [dept fax]; 
         (619) 822-0702 [secy: Lisa Bodecker]
  office: 3131 Applied Physics and Math Building
******************************************************************************

>From 3 to 5 November, I attended a meeting of ASE97 (Automated Software
Engineering) at Lake Tahoe Nevada; this is a major conference in the software
engineering community, attended this year by about 400 people.  The interest
in category theory at this meeting really amazed me; I dont think such a thing
could have happened even two years ago.  Two tutorials (out of 6) were
actually based on category theory, and both were sold out; 3 papers out of 32
heavily used category theory, and 3 more used tools or methods that involve
category theory.

The most surprising and hopeful event was a panel on the role of category
theory in software engineering on Tuesday morning (4 Nov), organized and
moderated by Mike Lowry (NASA), cochair of the conference program committee;
the panel was very well attended (maybe 200 people) and was very positive.
The panelists were Capt. Mark Gerken (USAF), myself (UCSD), Richard Jullig
(ArrowLogics, a small categorical startup), and Doug Smith (Kestrel); we also
tried to get Mike Healey (Boeing), but he didnt attend the conference.

Lowry introduced the panelists and the questions they were asked to address.
He then sketched the early history of category theory and some basic
definitions.

Gerken outlined a substantial research program, much of which involved
applying a large and successful system called SpecWare from Kestrel; several
applications involved generating code for complex scheduling algorithms from
their (algebraic) specifications.  Colimits are the main bit of category
theory in SpecWare, along the lines pioneered by my work on categorical
general system theory in the late 60s, and the languages Clear and OBJ that I
helped develop.  Gerken considers software architecture and reuse very
promising areas for future research.

Goguen described several past applications, noting how they used category
theory in different ways, e.g., for generality (in general systems theory and
institution-based specification languages), for deeper conceptual
understanding (axioms for categories of fuzzy sets), and to state results more
sharply (abstract data types as initial algebras, and minimal realizations as
adjoints).  He also described how initiality and colimits entered computer
science (the former via Lawvere's axiom of infinity).  Goguen suggested sheaf
theory and enriched categories as promising future areas, the first especially
for concurrency and the second for semiotics.

Jullig described some principles behind SpecWare and the new system that his
company is building, saying why colimit based systems were superior to more
traditional language mechanisms, like those found in Z, ML, etc.  He also
suggested fibrations and categorical logic as promising future topics.

Smith went deeper into principles of SpecWare, emphasizing the role of theory
morphisms, e.g., in supporting structured specifications, refinement and
parameterized specifications, all of which are useful for algorithm design and
code generation, among other things.  Smith also noted the role of the theory
of institutions for avoiding commitment to any particular logic, and described
several applications done with SpecWare; he was particularly happy with a
classification scheme for algorithms.

Members of the audience then initited a robust discussion of educational
issues, for example, how category theory could be learned by software
engineers, whether it is too hard or could be considered fun, what alternative
formalisms exist, what to read, etc.

Of course, as a participant I was at a disadvantage in taking notes, and there
are no doubt many inaccuracies of ascription and omission in the above, but I
still hope it may convey the flavor of the event.