![]() |
|||
![]()
|
![]() |
![]() |
![]() |
5.3. PROFESSOR MARVELProfessor Marvel is a programming assistant that provides insights about the system under development (Kaiser, Feler, and Popovich, 1988). Marvel also automates some of the purely routine activities of software development, such as recompiling after source code changes and recording errors found by the compiler. Marvel uses rules that are slightly more complicated than conventional IF-THEN rules. A Marvel rule has three components: a precondition, an activity, and a postcondition. The precondition must be true before the activity can be performed, and performing the activity ensures that the postcondition is true. For example, a rule for compiling the module M has: precondition not-compiled (M); activity compile (M); and postcondition compiled (M) [inverted wedge] errors (M). (The actual rule used in Marvel is more complex than this, but has the same structure.) Marvel uses both forward and backward chaining. For example, if the programmer tries to execute a program P, and Marvel does not have compiled (P) asserted, it will apply the rule above to compile P. Obtrusive automation can be annoying to users. Marvel uses hints (rules without postconditions) to avoid unnecessary tasks, such as recompiling while the programmer is still browsing (and perhaps considering changing) the source code. Marvel also has programmer-selectable strategies, which are collections of rules and hints. For example, a programmer can choose between "minor revision" and "major revision" strategies. 5.4. THE SPECIFICATION-TRANSFORMATION EXPERT SYSTEMThe Specification-Transformation Expert System (STES) translates requirements specifications into design specifications (Tsai and Ridge, 1988). STES, which is based on structured design methodology (Yourdon and Constantine, 1979), transforms dataflow diagrams into structure charts. The transformation is a natural application of expert system techniques because it requires both algorithmic and heuristic tasks. For example, the classification of the components of a dataflow diagram can be performed more or less mechanically, but heuristics are required to obtain a design that has desirable coupling and cohesion characteristics. STES is implemented in OPS5. Other software development environments that use expert system techniques include MicroScope and ADS. MicroScope is a system for program modification and, as such, uses rules that are based on the practice of software maintenance experts (Ambras and O'Day, 1988). ADS, or Automatic Design Synthesizer, uses a three-level decision process to select a suitable algorithm for an optimization problem (Rogers and Barthelemy, 1986). 6. CONCLUSIONThe principles developed within the discipline of software engineering can be applied to many kinds of system, including expert systems. The goal of any engineering discipline is to provide technologies for ensuring that products meet the requirements of their users, are robust and reliable, and that they are delivered on time and within cost estimates. Expert system developers can use software engineering techniques to achieve this goal. ACKNOWLEDGMENTSMany of the ideas in this chapter began life in discussions with Aïda Batarekh, Alun Preece, Rajjan Shinghal, Ching Suen, and Neli Zlatareva of the expert systems group at the Centre for Pattern Analysis and Machine Intelligence (CENPARMI) at Concordia University.
|
![]() |
|
Use of this site is subject certain Terms & Conditions. Copyright (c) 1996-1999 EarthWeb, Inc.. All rights reserved. Reproduction in whole or in part in any form or medium without express written permission of EarthWeb is prohibited. Please read our privacy policy for details. |