Abstract
The design and implementation of real-time embedded software requires
different kinds of expertise: knowledge of the problems to be solved, the
technologies available for implementing the software and the particular
software engineering methods used to bridge the gap between problems and their
software-based solutions.Most of this knowledge is at present not explicitly
recorded.Therefore, it cannot be reused.We present a framework for acquiring
software design knowledge and an interactive advisory system to reuse that
knowledge.Our focus is on a particular type of design expertise, called
navigation knowledge.Such knowledge is needed to guide the software design
process.We address the technical issues of which design goals to achieve, what
design operators to-apply next and how to perform design operations.We study
what kinds of knowledge are needed to navigate, how this knowledge is acquired
and what methods are effective for its reuse.We model navigation as the task
of controlling search in the space of alternative designs and implementations
for a given specification.We apply existing knowledge engineering and design
tracking techniques to build a problem space for software design and to
capture navigation knowledge for searching it.We present an organization for
the design knowledge, centered around a set of generic software construction
tasks.We use an object-oriented scheme to represent the software design space
and navigation knowledge.We also present an architecture of a knowledge-based
assistant system to reuse navigation knowledge.The architecture is
demonstrated by the use of its prototype implementation, Spade, in the design
of a real-life embedded system.
Original language | English |
---|---|
Qualification | Doctor Degree |
Awarding Institution |
|
Supervisors/Advisors |
|
Publisher | |
Print ISBNs | 951-38-3579-0 |
Publication status | Published - 1990 |
MoE publication type | G5 Doctoral dissertation (article) |
Keywords
- software engineering
- embedded computer systems
- software reusability
- knowledge based systems
- software navigation