wtwolfe@hubcap.clemson.edu (Bill Wolfe) (08/04/89)
An excellent article appeared in Proceedings of the Fifth International Workshop on Software Specification and Design (a.k.a. ACM SIGSoft Engineering Notes, V14, #3, May 1989) entitled "Domain Analysis - From Art Form to Engineering Discipline -", written by Guillermo Arango of the UC Irvine Advanced Software Engineering Project; here are some of the highlights: "Software is often expected to provide a formal description of the very same properties for which mankind has yet failed to evolve and accept a satisfactory linguistic system... We, the software makers, are contributing to the development of application domain theories by exposing, albeit in a painful and costly way, highly concentrated consequences of the inadequacies of available domain descriptions." -- W. Turski We need a theory of the process of domain analysis... an engineering approach -- controlled approximation to satisficing solutions - is at the core of our framework. [...] There exists a wide gap between the kinds and form of knowledge available about problem domains and the content and form of the items of information that can be reused in software construction. For instance, knowledge about a problem domain is often implicit and nonformal, while reuseable information must usually be represented explicitly and formally. We use the term _reuse infrastructure_ to refer to the information that must be made available to the software developer, together with the auxiliary information needed to locate and manipulate it... Domain analysis is an _essentially_ difficult problem... We argue against the possibility of practical procedures for capturing the 'true' ontology and semantics of arbitrary problem domains. If they existed we would have succeeded in formalizing the scientific method. The history of philosophy and science show how elusive is this goal... Instead, we strive for techniques for _practical_ domain analysis, based on the _systematic and incremental approximation_ to a definition of an ontology and semantics for a problem domain... The new formulation, distinct from "Which are the appropriate, reuseable abstractions in a problem domain?", is "How is a model of a domain incrementally constructed/evolved to achieve a specified level of performance with a given target reuser?" This, in contrast to the old question, is a thoroughly practical problem. By adopting this new viewpoint, we move towards operational definitions for practical domain analysis, and away from the view of domain analysis as an art... Practical domain analysis methods must be based on a view of reusers as learning systems. On such a foundation, a method for practical domain analysis is a method for the systematic evolution of a reuser's model of the domain, to attain and maintain a desired level of performance... A detailed analytical model of the domain engineering process is then given; the entire article can be found on pages 152-159 of SEN V14 #3. Bill Wolfe, wtwolfe@hubcap.clemson.edu