MATLAB Cuts Development Time at Evare by More than 60%
- Design time cut by more than 60%
- Hands-on testing time reduced
- Award-winning product delivered
Customers today make high demands on their investment management software. Not only must it provide reliable daily evaluations and pricing; it must also adapt quickly to the fluctuations of a volatile market.
Evare, a software company based in Burlington, Massachusetts, develops products that simplify the way institutional investors account for investments, access market information, and transact business with financial service providers. Their flagship product, Evare Desktop, is a portfolio management system developed expressly to meet the increasingly sophisticated requirements of the portfolio management community.
To keep pace with the escalating demands of the marketplace, Evare upgraded the functionality of Desktop with MATLAB, reducing development and testing time by more than 60%.
Charles Bassignani, Evare senior vice president, set out to enhance the library of financial and analytical functions in Evare Desktop. The new library had to accommodate the increasing complexity of the fixed-income instruments and accounting constructs that the investment community requires.
Evare Desktop was originally written in C++. This meant that developing and testing more advanced functionality would be time consuming and therefore, expensive. If they were to overcome these time and funding obstacles, Evare needed a development approach that would not require extensive rewriting of C++ code.
When he undertook this task, Bassignani says, there was no question in his mind about which development tool to use: “I knew that MATLAB was the solution even before I started.” So confident was he in the capabilities of MATLAB that he took the bold step of replacing Desktop’s entire core library of financial and accounting functions.
MATLAB supported this step in several key ways. For example, Bassignani recalls, “I did not have to write core fixed-income analytical functions because they already existed in Financial Toolbox.”
Bassignani adds, “Writing code in MATLAB is much faster than in C++ because MATLAB is a higher-level language. This means that you don’t get bogged down with issues like data typing and memory management. You also benefit from having many more tools available. For example, nearest-neighbor interpolation is a function call in MATLAB. In C++, I would either need to write my own function or go find one that someone else wrote, which is time consuming.”
After developing and testing the algorithms, Bassignani built a test suite using known good market data, importing it into MATLAB with Database Toolbox.
Once he was satisfied with the MATLAB code base, he compiled (translated) all the code to C++ using the MATLAB Compiler and the C/C++ Math Library. He then wrote a class in C++ to act as the interface between the C++ analog of his MATLAB library and Evare’s C++ application. This interface was needed for mapping data types and handling array output. The entire application was compiled into a single DLL (linking against other DLLs) and handed over to the C++ development team for use in building the rest of Evare Desktop.
Having the test suite in MATLAB was important both during and after the development process. When bugs were identified, Bassignani could quickly go back to MATLAB, fix them there, run the test suite in MATLAB to make sure that the fix didn’t break anything, and then retranslate and compile the entire DLL again.
Following their successful experience with the Desktop, engineers at Evare are now using MathWorks tools to develop a new library of portfolio stress-testing tools. This application will consist of several graphical user interfaces, infrastructure for portfolio manipulation, and libraries of analytical tools. It will also be capable of running in standalone mode or from within Evare Desktop.
Design time cut by more than 60%. Using MATLAB as a development tool, Bassignani reduced development and quality-testing time from an estimated nine months to three months. Moreover, Evare has a product that can be quickly updated to accommodate future needs.
Hands-on testing time reduced. Bassignani reduced the amount of hands-on quality testing that would be required by using MATLAB to create numerical test routines that stressed the analytic library. As a result, he explains, “By the time the library was integrated into our application, it was no longer necessary to verify the numeric integrity of the library because this had already been accomplished through MATLAB based testing.”
Award-winning product delivered. Evare Desktop was named the Investment Accounting and Financial Transaction Tool-of-Choice by the Financial Services Center of the National Association of Counties. In addition, several states and large municipalities have adopted Evare Desktop as their standard fixed-income accounting and portfolio management system.