Agile Development of Rule Systems

Agile Development of Rule Systems

Joachim Baumeister (University of Wuerzburg, Germany), Dietmar Seipel (University of Wuerzburg, Germany) and Frank Puppe (University of Wuerzburg, Germany)
DOI: 10.4018/978-1-60566-402-6.ch011
OnDemand PDF Download:
No Current Special Offers


The engineering of rule-based systems was a relevant issue in the past decades and has become more attractive recently due to the emergence of intelligent applications on the web. For example, web application servers including rule engines and the rule-based description of (semantic) web services. This development allows for a natural formalization of business logic but also poses new challenges with respect to the acquisition and evolution of rule-based knowledge. Although, a lot of research has been done in the past, the practical engineering and life cycle of larger rule-based systems still remains to be a difficult and complex task. State-of-the-art tools for rule development provide extensive support for the engineering, the analysis and debugging of such systems, but a simple and easily adoptable methodology is missing. In the best case, such a methodology should be well understood even with little training and should provide techniques to ensure quality, evolutionary health, and cost control of a rule base project. We present an agile methodology for the development and evolution of rule-based systems. Intuitive concepts like the system metaphor, the planning game, and the implementation cycle make its adoption to arbitrary projects very easy. With the promotion of continuous techniques such as automated testing and refactoring we cope with evolutionary aspects of knowledge bases.
Chapter Preview

The Agile Process Model

In general, an agile process model tries to reduce the usual ballast of heavy-weight processes by proposing only a basic set of phases for the overall development process. The process model introduced here describes the cyclic execution of elementary phases that are described in more detail in the following.

Key Terms in this Chapter

System Metaphor: Very first step of the agile methodology: a system metaphor as the essence of the planned system is defined, and the developers and users are trying to find a common understanding of the vocabulary used during the development.

Planning Game: First step of each development cycle: New features (stories) are collected on story cards and then sorted according to two distinct assessments: Users are assessing the importance of the particular stories and developers estimate the costs/risks of the corresponding implementation. The result of the planning game is an ordered list of stories to be implemented. The order can change during the planning game in the next cycle.

Refactoring: Describes the structured procedure of modifying a part of the knowledge base without changing the intended semantics of the knowledge. Typically, a refactoring improves the design of the knowledge base but not its accuracy. Refactoring is always accompanied by automated testing methods. Refactoring is originally known from software engineering research and is well-established in standard programming tools, today.

Continuous Integration: Agility proposes short development cycles concluded by the integration of the new feature in an always running system. Since the integration is frequently performed at the end of every development cycle we call it continuous integration. With continuous integration we have a running system after every cycle, thus enabling early feedback by end-users and a timely detection of possible implementation errors.

Agility: The ability to change the previously planned features during the development phase in a flexible way. Changes do not imply costly moves in the development process but are embraced by the engineers. Key features to obtain agility are short development cycles, continuous integration, and the methods refactoring and testing.

Automated Testing: Besides refactoring automated testing is one of the key methods of the agile process model. A testing method can be called automated if the expected result is known in advance and thus the entire test can be run in an automatic manner with no user interaction. For example empirical testing (running already solved test cases) is used as an automated test method. Since, automated testing requires no user interaction at all, it is inexpensive and therefore can be performed multiple times during a single development step.

Methodology (aka Process Model): Although debatable we use the term methodology synonymous with process model. Here, we understand a systematic collection of methods and procedures defining the process of building a knowledge system. It includes a detailed description of the procedure and methods used within the procedure.

Complete Chapter List

Search this Book: