We have developed a model for classifying LISP functions according to the kind of computations they perform. These computations are conceptually abstracted into a signature which is used as a classification index. The conceptual description, that is the signature enriched with implementation details, constitutes a key to understand a function. First it gives a global insight of the function computations by associating it with a class of functions performing globally the same kind of computations. Secondly it is a precise description of the particulars of the function with respect to the prototype of its class. We will show that such a conceptual description is helpful not only for program understanding, but also for program specifying and reusing.
We have developed several tools to show how program classification may help software engineering tasks. PRISME extracts the conceptual description of a function; SignEdit synthesizes functions from conceptual descriptions which are taken as specifications of programs; ACL is a language in which conceptual descriptions are basic primitives, thus directly executable specifications. Finally, PRISME and SignEdit together provide function reusability.
In this paper, we introduce our classification model, we discuss its utility for software engineering tasks and present the perspectives of scalability of our model.
Pour obtenir ce papier, envoyer un mail à email@example.com .