NCR Canada

ImageMark Transaction Manager

We provided two long-term contract developers to NCR, in Waterloo, for development work on their ImageMark Transaction Manager platform. ImageMark is a large-scale, multi-process set of applications that the banking industry uses to manage the millions of cheques that they scan each day. The workflow of ImageMark mimics the proof-of-deposit workflow that the banking industry had manually developed. The outcome of the proof-of-deposit workflow is balanced batches of cheques, organized for distribution to the bank of deposit for each item.

The development was in C/C++ and targeted the Informix database from IBM. Perl was used extensively for utility and conversion tools.

During the contract, we were responsible for developing a new C++ “autorole” framework which provided for the rapid development of autoroles (un-attended programs) within the workflow and for developing an image assessment layer (IAL) that could be used to analyze the quality of a cheque image. The test definitions and business rules that IAL used were defined in XML. Both of these sub-projects within
ImageMark won technical excellence awards within NCR at their annual R&D awards meeting.

Generated Solutions was also a large contributor to the NCR team’s effort to transform itself into an Agile development group. Contributions included educational presentations, documenting a roadmap and developing a sophisticated test framework that supported unit testing in C/C++, functional testing of libraries and applications and system testing of arbitrary parts of the ImageMark workflow. The test
manager was written in Perl and used XML files to define and describe test scenarios. The CPPUnit, CPPTest and CUnit (open-source) unit test frameworks could be used and the execution of their test runners managed by the Perl framework, so that all levels of testing could be automated. A robust library of extensions to AutoHotkey (an open-source GUI test tool) were developed to support sophisticated GUI testing, also managed by the Perl framework using XML description files.