Draft Glossary

Spencer Rugaber (spencer@cc.gatech.edu)
6 Dec 1994 08:54:00 -0500

1. Architectural style: "defines a family of architectures constrained by
component/connector vocabulary, topology, semantic constraints. (Source:
Garland and Shaw tutorial)

2. Architecture: a system description, including system components and how
they interact.

3a. Cliche (as for as cliche recognition is concerned):

3b. Cliche (French): a pattern describing salient features of a concept that
supports recognition of that concept in some specified context by
application of some specified comparison algorithm.

3c. Cliche (as for as the Programmer's Apprentice is concerned): a collection
of related features or characteristics that provide a shared technical
vocabulary, including inter-feature relationships.

4. Concept hierarchy: a hierarchically organized collection of domain
concepts. The organizing relationship is "part-of".

5. Conceptual purpose token: a domain concept identifier

6. Delocalized plan: "pieces of code that are conceptually related [that] are
physically located in non-contiguous parts of a program." (Source:
Soloway, et al. CACM 11/88)

7. Design recovery: "a subject of reverse engineering in which domain
knowledge, external information, and deduction or fuzzy reasoning are
added to the observations of the subject system to identify meaningful
higher level abstractions beyond those obtained directly by examining the
system itself." (Source: Chikofsky and Cross)

8. Domain: a recognized problem area characterized by a vocabulary, typical
solution strategy (architecture), and literature.

9. Domain Specific Software Architecture: an architecture that denotes how
problems in a specific domain are typically solved.

10. Interleaving:

11. Model: a cognitive abstraction of a software system

12. Plan: "Knowledge structures that are schematic representation of
stereotypical behavior patterns. ... Correspondingly, plans in programs
are stereotypic action structures." (Source: Soloway, et al. CACM 11/88)

13. Program Comprehension: the process of acquiring knowledge about a computer
program. (Source: Rugaber, Encyclopedia article)

14. Reengineering: "the examination and alteration of a subject system to
reconstitute it in a new form and the subsequent implementation of the new
form." (Source: Chikofsky and Cross)

15. Representation: tangible (non-cognitive) abstraction of a software system.

16. Restructuring: the transformation of one representation form to another
at the same relative abstraction level, while preserving the subject
system's external behaviour (functionality and semantics)." (Source:
Chikofsky and Cross)

17. Reverse Engineering: "the process of analyzing a subject system to identify
the system's components and their interrelationships and create
representations of the system in another form or at a higher level of
abstraction." (Source: Chikofsky and Cross)

18. Role: a relatively self contained subarchitecture (in the sense that a
subsequence is related to a sequence).

19. Signature: The set of features (e.g., syntax, semantic, graphical) that
together signal the occurrence of a specific concept. (Source:
Biggerstaff, CACM)

Spencer Rugaber
College of Computing, Georgia Tech, Atlanta GA 30332-0280
Internet:	spencer@cc.gatech.edu
Phone:          (404) 894-8450
WWW:            http://www.cc.gatech.edu/fac/Spencer.Rugaber