Please choose your delivery country and your customer group
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 softwarebased solutions. Most of this knowledge is at present not explicitly recorded. Therefore, it cannot be reused. The author presents a framework for acquiring software design knowledge and an interactive advisory system to reuse that knowledge. The focus is on a particular type of design expertise, called navigation knowledge. Such knowledge is needed to guide the software design process. The addresses the technical issues of which design goals to achieve, what design operators to apply next and how to perform design operations. He studies what kinds of knowledge are needed to navigate, how this knowledge is acquired and what methods are effective for its reuse. He models navigation as the task of controlling search in the space of alternative designs and implementations for a given specification. He applies existing knowledge engineering and design tracking techniques to build a problem space for software design and to capture navigation knowledge for searching it. He presents an organization for the design knowledge, centered around a set of generic software construction tasks. He use an object-oriented scheme to represents the software design space and navigation knowledge. He also presents 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.