Resources
/
Case Study

Case Study: Business Rule Extraction

Legacy System: Reimbursement processing for the social security administration of a middle-eastern nation.

As-is State: 15-20 year old 5 MLOC Java application with JSP frontend and SQL database. Substantial technical debt had been occurred due to several iterations of enhancements with incompatible frameworks leveraged.

Target State: Rationalize the business processes implemented by the system with the current business practices and assure that implemented processes match current law. Adopt a middleware platform and improve maintainability.

Challenges

  • Business logic and low-level code tightly intermingled, making it difficult to appreciate the business processes realized by the system.
  • Large amounts of code had been duplicated and modified slightly, making it difficult to maintain the system.
  • Complex business rules involving long sequences of nested decisions and exceptions.

Outcomes

  • Separated business logic from low-level and technical code to allow for business rules to be free of implementation detail.
  • Extracted business rule tables for the complete business logic. Comparison of extracted rules to those produced by a manual top-down benchmarking effort showed that automatically extracted rules more reliably reflect the system than the manual process achieves.
  • Applied dictionary of business terminology to remove cryptic programming terminology and make the extracted rules easier understandable for review by business analysts.
  • In a demonstration project, extracted rules were converted to input for the DROOLS rules engine and demonstrated identical performance to the original Java system (client later decided to not migrate a to rules engine).