[comp.sw.components] Domain Engineering

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