QuantLib was the first open-source library for quantitative finance, and remains the most popular with downloads measured by the thousands for each release.
Started as a simple library, it has quickly evolved into a framework: its core classes have built-in functionality that enables them to work together, and into which a user can inject new specific behavior.
This makes QuantLib more useful, but also more daunting to approach as a new user must learn how the pieces are supposed to fit together: just grabbing and starting to use a few classes might go against the grain of the library, so to speak, and create problems later on.
In this workshop, I will first give a bird-eye look at the architecture by describing the design and rationale of its core classes (for instance, those modeling the generic concepts of financial instruments and term structures). I will show both examples of their idiomatic usage and relevant parts of their implementation, so as to be useful to both those who just want to use the library as it is and to those who want to extend it with their own instruments and models. I will also try to warn about the shortcomings of the current implementation and a few pitfalls to avoid.
In the second part of the workshop, I will describe more specific classes (such as, for example, those providing functionality for cash-flow analysis or Monte-Carlo simulations) that can be added on top of the core classes to create more financial instruments. Again, I'll give information for users and developers alike.
One day is a short time, of course, given the sheer size of the library. However, I do hope to show you the lay of the land so that you can find your own way around it. During the presentations, I'll also point out particular C++ idioms, patterns and techniques used throughout the library, so that you'll be able to recognize them when looking at code that I won't cover directly.