Hybrid aspects for weaving object-oriented functionality and rule-based knowledge

Software applications often consist of implicit knowledge for making decisions or giving advice in addition to object-oriented functionality. A rule-based system can be employed for representing and reasoning with this knowledge. Although several hybrid systems exist that combine object-oriented programming and rule-based reasoning, a survey we conducted reveals that both paradigms are not well integrated and programs are tightly coupled.We propose hybrid aspects for integrating object-oriented programming and rule-based reasoning. As expected, hybrid aspects specify join points where normal execution is interrupted and advice is executed. However, since two different languages are involved, we need join point models for both and advice that activates both. As such, we complement a simple join point model for object-oriented programming with a join point model for rule-based reasoning. Hybrid advice is independent of the interrupted language and supports sending messages as well as activating rules. It uses values of either language transparently.We present OReA, an implementation of hybrid aspects for weaving Smalltalk and a rule-based system. We discuss and illustrate two applications of hybrid aspects.

[1]  Kris Gybels,et al.  Arranging language features for more robust pattern-based crosscuts , 2003, AOSD '03.

[2]  M. Cibrán,et al.  Aspect-Oriented Programming for Connecting Business Rules , 2003 .

[3]  François Pachet,et al.  On the Embeddability of Production Rules in Object-Oriented Languages , 1995, J. Object Oriented Program..

[4]  Laurence Duchien,et al.  JAC: A Flexible Solution for Aspect-Oriented Programming in Java , 2001, Reflection.

[5]  Kim Mens,et al.  Declaratively codifying software architectures using virtual software classifications , 1999, Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275).

[6]  Kim Mens,et al.  Supporting software development through declaratively codified programming patterns , 2002, Expert Syst. Appl..

[7]  John B. Shoven,et al.  I , Edinburgh Medical and Surgical Journal.

[8]  David A. Klein,et al.  Adding rule-based techniques to procedural languages , 1988, IEA/AIE '88.

[9]  Roel Wuyts,et al.  A Logic Meta-Programming Approach to Support the Co-Evolution of Object-Oriented Design and Implementation , 2001 .

[10]  Tom Mens,et al.  A declarative evolution framework for object-oriented design patterns , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[11]  Harold Ossher,et al.  Using multidimensional separation of concerns to (re)shape evolving software , 2001, CACM.

[12]  Charles L. Forgy,et al.  Rete: a fast algorithm for the many pattern/many object pattern match problem , 1991 .

[13]  Nancy Martin,et al.  Programming Expert Systems in OPS5 - An Introduction to Rule-Based Programming(1) , 1985, Int. CMG Conference.

[14]  Ronald G. Ross,et al.  Principles of the business rule approach: Ronald G. Ross, Addison-Wesley Information Technology Series, February 2003, 256pp., price £30.99, ISBN 0-201-78893-4 , 2004, Int. J. Inf. Manag..

[15]  C. J. Date What Not How: The Business Rules Approach to Application Development , 2000 .

[16]  Shriram Krishnamurthi,et al.  Pointcuts and advice in higher-order languages , 2003, AOSD '03.

[17]  Kris Gybels,et al.  Seamless integration of rule-based knowledge and object-oriented functionality with linguistic symbiosis , 2004, SAC '04.

[18]  Wim Vanderperren,et al.  Linking business rules to object-oriented software using JAsCo , 2005, J. Comput. Methods Sci. Eng..

[19]  Vice President,et al.  An Introduction to Expert Systems , 1989 .

[20]  Wolfgang De Meuter,et al.  Using Reflective Logic Programming to Describe Domain Knowledge as an Aspect , 1999, GCSE.

[21]  Robert Hirschfeld,et al.  AspectS - Aspect-Oriented Programming with Squeak , 2002, NetObjectDays.

[22]  JAsCo for Linking Business Rules to Object-Oriented Software , 2003 .