Date: Mon, 10 Nov 1997 17:10:09 -0400 (AST) Subject: Automated Software Engineering 97 Panel on Categories for Software Engineering Date: Sun, 9 Nov 1997 12:52:12 -0800 (PST) From: Joseph Goguen 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: goguen@cs.ucsd.edu 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.