Object-oriented patterns: lessons from expert systems

Tim Menzies
1997 Software, Practice & Experience  
Three benefits are typically claimed for object-oriented (OO) patterns: (i) reusing parts of the conceptual models of old implementations; (ii) guiding the current development based using successful previous developments; and (iii) communicating existing systems to newcomers. We will argue that a similar idea can be found in the expert systems literature dating from the early-1980s. The goal of ¢ ¡ or knowledge-level modelling (e.g. KADS) is to identify abstract patterns of inference that
more » ... in many expert systems. Such abstract patterns of inference and program structure, it is argued, are productivity tools for the creation of software applications; i.e. £ ¡ argues for a similar reuse benefit as OO patterns. Recently, however, an alternative view has emerged. While such abstract patterns are good for communications and guidance, the reuse benefits may never be realised. Patterns may be best viewed as tools for structuring an argument, rather than recording a conclusion. KEY WORDS OO patterns expert systems knowledge-level modelling ¤ The re-use benefit: A designer can bootstrap themselves into better systems using proven old systems. Example reuse patterns can be found in 1-4 . Note that analysts may not use the patterns verbatim. Reuse patterns are like the logical design which may require some configuration/ alteration for the physical implementation of any particular system. Nevertheless, the essence of the physical implementation will be the reuse pattern. ¤ The guidance benefit: Not all patterns are reusable libraries of OO classes. Guidance patterns serve to direct the analyst's focus onto a set of issues that previous analysts have found insightful. Example guidance patterns are CHECKS 5 and Caterpillar's Fate 6 . ¤ The communication benefit: Patterns are a succinct tool for explaining existing systems. When we tutor OO, we find patterns to be a useful final initiation ritual for a novice OO developer. When they "get" patterns, we know that they are capable of comparing and contrasting a wide range of OO systems. Despite the current level of enthusiasm for OO reuse patterns, we find it necessary to sound a note of caution. A similar idea, called ¥ § ¦ or knowledge-level modelling can be found in the expert systems literature dating from the early-1980s 7, 8 . This paper tries to bridge the gap between abstract conceptual models proposed for OO and abstract conceptual models proposed for expert systems. In all, we will say more about expert systems than OO. In particular, after over a decade of experience with ¥ § ¦ , we
doi:10.1002/(sici)1097-024x(199712)27:12<1457::aid-spe140>3.0.co;2-9 fatcat:7id4loajejg3lludlii7dvr3si