Introduction

Developed
by engineers from the Ecole Polytechnique Fédérale de Lausanne, TariffEye is
written in JAVA 1.4. Some parts of the software use BSH,
which is a java-like syntax scripting language. The software has been tested
with SUN jvm on Windows, MacOSX and Linux x86. Variables and relevant comments
are in English language.

Some third party
software and libraries are used, they will be named on parts they are involved
and a full list is provided at the end of this document.

Development tools

SimpleData used Eclipse with no special plugins, Eclipse
is not required to compile, or edit TariffEye's code.All the compiling and software packaging is handled by Ant, which is not mandatory to compile the software but the
build.xml must then be used as a reference to understand the building process.

We use Install4j to make installable packages for the different
platforms.

Debugging and Logging

Testing

Main application design and Features

TariffEye, is a
standalone application, but with an asynchronous communications system between
the user-interface and the data-engine. This is a very important fact, having
an autonomous data engine, makes possible to use of Tariff files in other
applications, such as real-time fees calculations, or with a web interface.

The data-engine

The data-engine is an
API that can handle tariffs construction and manipulation as well as portfolio
management and fees calculations.

DataModel

The data model defines
the way tariffs are designed

High level of abstraction in tariff
composition

The example shows the
graphical representation of the WorkSheets.

Those elements define
the logical and operational toolbox of TariffEye.

Writing a logical
structure such as a Case, Bounds or Sequencer requires less than 300 lines of code. An
operational structure such as the most complex Rate by Slice on Asset is written in 250 lines. That code defines, the
way elements operated but also the way data is stocked, the calculus and the
serialization of these items.

The design of the datamodel makes it very easy to create and to add new
elements.

Multi-dimensional structure

To classify tariffs, a
normal tree structures cannot suffice as it is impossible to define one single
classification for all banks and all tariffs.

Those dimensions are
tuneable to be sure any kind of classification can be represented with
TariffEye.

Tariff matching and element pairing

The multidimensional
classification of tariffs makes it possible to find comparable elements between
portfolios, with a high level of accuracy. Elements between assets and
transactions may be paired, to make ventilation of a portfolio automatic for
tariff analysis.

The multidimensional
trees system of Tariff-Eye is designed for data importation from a portfolio or
another software.

Threaded fee calculation system

The fee calculation
system is a process apart, seeking for changes on the tariff. Tariff
calculation involves a lot of recursivity and conditional steps, the calculator
highly optimise the fee calculation to prevent redundancy and unnecessary
calculus. At this time on an average PC, fee calculation after a complete
portfolio modification takes less than one second.

Elements serialization

The serialization is
the way tariffs are saved on files and distributed.

Robust and evolutive

Tariffs and portfolio
have exactly the same structure; a Tariff in an empty portfolio. This means
that a file containing a portfolio also contains all the tariff information
associated. So sharing portfolios is very easy as all the needed data is in a
single file.

Technically files
containing tariff are "XML armored objects", the files contains serialized Java
objects and their XML representation. Java objects loads very quickly, but they
are very dependents to version of the datamodel, this is why an XML equivalent
is used if TariffEye failed loading a tariff file made with an older version of
TariffEye.

XML representation is
achieved with the java beans XML serializer, which makes it very easy to
control versioning of datamodel"s elements. This has been verified during all
the development process where the datamodel evolved a lot.

Security and sharing

TariffEye was designed
from start to be very safe, as handled data was very confidential. So all the
files are encrypted using asymmetric cryptographic keys. The level of
encryption can be adjusted to any company requirements and the files structures
is designed to accept a non limited number of layers of encryption, signature
and compression.

Today TariffEye comes
with RSA and DES encoders, and a keyring management system.

User Interface

The GUI of TariffEye
is developed with SUNs swing API. Its identical if used on a Windows or a
UNIX computer
on Mac the aqua look and feel is used.

Naturally the UI is
made to manipulate tariffs and portfolio, but it also handles data loading and
reports generation.

Attractive design

Very intuitive and user friendly

A lot of attention and
energy has been spent in TariffEye ergonomics to be sure anyone will feel
comfortable manipulating complex tariffs.

Most of the elements
in TariffEye will show a text information when the mouse pass over them.

TariffEye was designed
for several ways of thinking and different user types. Newcomers and occasional
users will easily find the command for the action they want to perform, as
there are no hidden functions, or deep menus. But a daily user will also notice
that most of the elements on TariffEye are clickable to speed up the
navigation, and that many actions are directly accessible with a right-click.
Popups and validation steps have been avoided to their maximum, to be the less
intrusive possible.

Assistants for
portfolio filling and transaction generation are embedded, so there is no need
to launch a side window to complete those tasks.

Navigation between
complex elements is made simple and intuitive, as most elements will respond to
mouse clicks.

The feeling should be
very close to navigation on a web site, without the need to validate every
action.

Easy fees and discounts visualisation

Fees are always
visible to the user; they can be explored with a single tree. The user will
visualize the total fee as well as single transaction effects on the same
window.

Discount and
un-discounted fees will be shown aside the fees column.Real time
information visualisation

As specified in the Datamodel – calculation system
part, fee calculation is achieved in real time, so the user can see the effect
of the slightest portfolio or tariff manipulation. Even discounts have an
immediate effect on fees. Moving sliders, will change in real time the
relatives" numeric values and graphical chart.

Recursive error and warning indications

Errors and warnings
are not intrusive; they appear recursively on the navigation tree. On the
following example, an error is made the TVA tariff; this is shown with the
little "invalid" icons on the trees. This way a use will find easily where his
attention is required.

Reports generation

Reports are made with JasperReports; they will provide a complete paper
version of a Tariff or a Portfolio simulation. Report templates can be
customized easily by the customer with the set of tools provides with Jasper
Reports.

Help system

Embedded Web-server

One powerful feature
of TariffEye is its embedded web server and web browser. SimpleData developed a
very light web server with a JSP interpreter. So, it is lighting fast to
develop an extra tutorial, or links to external web services.

Webcontrol

The embedded web
server has a special API for JSPs, this API provides a full control of
TariffEye, from web pages. This is very interesting to meet quickly specific
customers" requirements.

The former use of this
tool was to provide update alerts and news about TariffEye.

Updates and Tariff manager

A simple tool for
online or offline tariff updates.

Language and translations

TariffEye uses
SimpleDatas unique translation system. When in development stage, a
"learning-mode" is turned on. While the software is tested it automatically
fills text files on a per Java class basis, those files can be directly
translated and corrected, plus it highlights the new entries that need
reviewing. Most of the work for developers is automated.

Licensing and copyright enforcement
system

The software needs to
be activated online; a computer signature is used to generate the serial code.
The licensing system is made to allow or deny access to specific features, and
if needed it provides a limit in time.Cracking the software is made very difficult by crypting and hiding
sensitive code in an interpreted script.

As specified, user
data is protected by asymmetric key systems and cannot be compromised even if
SimpleData licensing system was.

Third-part tools and library

Here is a list of the
third part tools and library used for the development that may require
attention because of their licenses. Some open source library and software used
require to be distributed with a copy of their license and their source code.
This does not affect the way TariffEye source code is distributed.