Title: A knowledge-based software design supervisor
Abstract: Difficulties experienced by software developers in the design and use of collections of collaborating objects have prompted investigation into a knowledge-based tool to guide such software development.
Difficulties in understanding the intent of collections of collaborating objects, and a lack of guidance in their design and use contribute to many of the difficulties of current object-oriented software development. For instance, software development using object-oriented frameworks and software components is difficult, as their intent is unclear, and tools do not monitor compliance with design decisions. Consequently, these decisions are often compromised during design refinement and implementation. To aggravate matters, system design is often neglected under delivery pressure—the system grows without a clear design. Too many systems, especially those produced using rapid application development tools, explode in complexity, becoming unstable and unmaintainable.
This thesis examines the premise that some of these problems encountered in developing and using collections of collaborating objects can be alleviated by a Software Design Supervisor: a knowledge-based software design assistant which models, reasons about, monitors, and allows visualization of evolving designs, in order to aid software development. Aided by a Software Design Supervisor, a software developer explores implications of design decisions, visualizing the system structure and behaviour. In addition, design decisions are checked in subsequent design refinement. For example, a system's design may be checked against its architectural constraints, the use of a framework checked against its intent, and composition of components checked against design patterns.
A design representation language, implementing a kind of object-oriented logic programming in Prolog, was developed to model and reason about software designs. Object-oriented designs, including their static structure, dynamic behaviour, and constraints such as design patterns, are represented in a declarative design information model. Using logical inference, the Software Design Supervisor reasons about this design information, for example testing design conformance and extracting design visualizations to present to the software developer.
A case study, applying the concepts of the thesis to component-based rapid application development, suggests that using a Software Design Supervisor in component-based software development eases the design and use of systems of collaborating components.
Publication Year: 1998
Publication Date: 1998-01-01
Language: en
Type: article
Access and Citation
AI Researcher Chatbot
Get quick answers to your questions about the article from our AI researcher chatbot