Linking business rules to object-oriented software using JAsCo

Object-oriented software applications that support a particular business or domain consist of substantial core application functionality and business rules. Since business rules tend to evolve frequently, it is important to separate them from the core application. However, current approaches that support business rules at the implementation level only separate the business rules themselves and not the code that links them to the core application. We observe that this code crosscuts the core application. As a result, Aspect-Oriented Programming is required to separate and encapsulate the linking code. In addition to this, we identify several other requirements for obtaining highly flexible and configurable business rules. In previous work we conducted an experiment with AspectJ for separating the business rule links. Although this delivered satisfactory results for some of the requirements, many others were not fulfilled. This paper shows how JAsCo, an aspect-oriented implementation language combining the advantages of AspectJ's expressiveness with the plug-and-play characteristics of components, succeeds in fulfilling the remaining requirements.

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

[2]  Gerti Kappel,et al.  From Rules To Rule Patterns , 1996, CAiSE.

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

[4]  Benjamin N. Grosof,et al.  A declarative approach to business rules in contracts: courteous logic programs in XML , 2015, EC '99.

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

[6]  Kevin Rasmus,et al.  Extending business objects with business rules , 2000, Proceedings 33rd International Conference on Technology of Object-Oriented Languages and Systems TOOLS 33.

[7]  Thomas Ledoux,et al.  Aspect-Oriented Software Development , 2003 .

[8]  Mira Mezini,et al.  Programming with Aspectual Components , 1999 .

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

[10]  Gustavo Rossi,et al.  Designing personalized web applications , 2001, WWW '01.

[11]  Stanley M. Sutton,et al.  N degrees of separation: multi-dimensional separation of concerns , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[12]  Kim Mens,et al.  Supporting Software Development through Declaratively Codified Programming , 2001, SEKE.

[13]  Ali Arsanjani,et al.  Rule Object 2001: A Pattern Language for Adaptive and Scalable Business Rule Construction , 2001 .

[14]  Theo D'Hondt,et al.  Is Domain Knowledge an Aspect? , 1999, ECOOP Workshops.

[15]  Lodewijk Bergmans,et al.  Composing crosscutting concerns using composition filters , 2001, CACM.

[16]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[17]  Wim Vanderperren,et al.  JAsCo: an aspect-oriented approach tailored for component based software development , 2003, AOSD '03.

[18]  Gustavo Rossi,et al.  Seamless Personalization of E-commerce Applications , 2001, ER.

[19]  Paul R. Martin,et al.  R , 2009, Encyclopedia of Neuroscience.

[20]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

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

[22]  Maja D'Hondt,et al.  Hybrid aspects for weaving object-oriented functionality and rule-based knowledge , 2004, AOSD '04.

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

[24]  Guus Schreiber,et al.  Knowledge Engineering and Management: The CommonKADS Methodology , 1999 .

[25]  Karl J. Lieberherr,et al.  Aspect-oriented programming with adaptive methods , 2001, CACM.

[26]  James J. Alpigini,et al.  USING GRAMMAR-ORIENTED OBJECT DESIGN TO SEAMLESSLY MAP BUSINESS MODELS TO COMPONENT-BASED SOFTWARE ARCHITECTURES , 2001 .

[27]  S. Floyd,et al.  Adaptive Web , 1997 .