12-09-2013, 12:20 PM
A Knowledge-Based Software Information System
Knowledge-Based Software.pdf (Size: 158.24 KB / Downloads: 24)
Abstract
The difficulty of maintaining very large software
systems is becoming more widely acknowledged.
One of the primary problems is the need to ac-
cess information about a complex and evolving
system. We are exploring the contribution to be
made by applying explicit knowledge representa-
tion and reasoning to the management of infor-
mation about large systems. LaSSIE is a proto-
type tool (based on the ARGON system) that uses
a frame-based description language and classifica-
tion inferences to facilitate a programmer's discov-
ery of the structure of a complex system. It also
supports the retrieval of software for possible re-
use in a new development task. Among LaSSIE's
features are an integrated natural language front-
end (TELI) that allows users to express requests
in an informal and compact fashion. Although not
without some limitations, LaSSIE represents sig-
nificant progress over existing software retrieval
methods and strictly bottom-up cross-referencing
facilities.
Introduction
The problems that arise with large, complex software sys-
tems include those of producing the code, managing a multi-
person enterprise, testing the system, and assuring its in-
tegrity with respect to various specifications and other de-
sign documents. In many ways the most difficult problem
involves maintenance, which includes fixing explicit bugs
and, more importantly, upgrading the system to add new
features or adapting the system for slightly different pur-
poses. Some software systems, including those that control
the space shuttle, nuclear power plants, and communication
networks, have become so large and complex that no one
person, or even a small set of people, understand them. This
lack of a reliable knowledge source is exacerbated by people
moving within an organization or leaving it altogether.
The Problem in More Detail
The AT&T System 75TM [AT&T Technical Journal, 1985]
is a Private Branch Exchange (PBX) that can handle up
to 800 telephone lines. As a modern digital switch, it is
controlled by a large and complicated software system that
enables it to perform the basic switching functions as well as
implement a sizeable collection of somewhat customizable
features. This software is complex along several dimen-
sions. It contains about a million of lines of C code; it
comprises multiple versions, the latest of which is always in
a state of flux; and, most importantly, it is a manifestation
of a complex conceptual model of the architecture of the
switch and its functionality. For this reason, the code can be
understood only with reference to a framework that exists
apart from it—a framework that reflects the hardware and
software architecture, as well as the various resource and
real-time-response constraints that the system is designed to
satisfy.
The LaSSIE System
LaSSIE is an experimental knowledge-based IS running on
a Symbolics 3600, under ZetaLisp/Flavours. It consists of a
knowledge base (KB), a window interface (based on AR-
GON [Patel-Schneider et al., 1984]), a graphical brows-
ing tool (based on the ISI-GRAPHER [Robins, 1988]), and
a customized version of the TELI natural language inter-
face [Ballard and Stumberger, 1986]. The system is designed
to be used in a formulate-retrieve-reformulate cycle.
The Knowledge Base
As shown in Figure 1, the four principal object types of
concern in our domain are OBJECT, ACTION, DOER, and
STATE. The edges of the taxonomy have their common "1S-
A" meaning1. DOER represents those THINGS in the system
that are capable of performing actions. Nodes below DOER
and OBJECT represent the architectural component of the
system, i.e., its hardware and software components. Nodes
below ACTION represent the system's functional compo-
nent, i.e., the operations that are performed to or by the
system. The relationship between the two system compo-
nents is captured by various slot-filler relationships between
ACTIONS, OBJECTS and DOERS.
Adding a Natural Language Interface
To provide a natural language interface for LaSSIE, we cus-
tomized the TELI system, which maintains data structures
for each of several types of knowledge [Ballard and Stum-
berger, 1986, Ballard, 1988]. This information includes (1)
a taxonomy of the domain, which enables the parser to per-
form several types of disambiguation; (2) a lexicon, which
lists each word known to the system, along with information
about it; and (3) a list of compatibility tuples, which indi-
cate plausible associations among objects and thus reflect
the semantics of the domain at hand. For example, an agent
can perform an action on a resource, but actions cannot be
performed on agents, resources cannot perform actions, etc.
Summary
Our approach to the problem of maintaining and extend-
ing large software systems is to employ explicit knowledge
representation and reasoning technology. This has led us
to formulate complementary models of a software system
in terms of its function, architecture, features, and code. To
this end, we constructed a knowledge base that captures crit-
ical aspects of three of these four views of the System 75
switching system. We also customized and incorporated a
natural language component to be used either alone or in
conjunction with the ARGON interface.
As a result of these efforts, LaSSIE is the first information
system to incorporate multiple views of a large software
system embedded in an environment that lets a user query
the system and explore the knowledge base. Although much
remains to be done, LaSSIE can handle successfully many
classes of queries about a large software system.