-   Forums
     -   Articles and Whitepapers
     -   Downloads
     -   Courses and Events
     -   Course Registration
     -   Distance learning
     -   Books

     -   Course Brochure (PDF)

Domain Architecture
Models and Architectures for UML Applications

A unique catalog of domain architectures offering
design solutions for real-world systems
 

Domain architectures describes and documents a number of recurring patterns and models which emerge in real-life software projects. A domain architecture is an archetype of a system designed to show functionality, behaviour and structure traits. It provides a top down view of a system - which has major implications for system analysts, software developers and architects. It can enable developers to borrow or learn from design solutions that have worked in the same domain, and help to predict major system requirements.

This book describes how to accommodate system requirements by integrating them with one or more instances of a domain architecture. The artifacts of this process can then be mapped to the popular POSA and GOF design patterns.

Described and documented using UML models and meta-models, and concentrating on medium to large-scale systems, the domain architectures described in this book will help software professionals to build a stable architectural framework for high-quality systems.

The five domain architectures presented are:

  • Manufacturing (MAN)
  • Resource Allocation Tracking (RAT)
  • Management and Information Systems (MIS)
  • Process Control and Real-Time (PCS)
  • Interactive and Access Control Systems (ACS)

Domain Architectures is a catalog or repository of proven solutions, and is a handbook and a reference for software professionals using object-oriented technology and UML to solve real-life problems.


Domain Architectures - Models and Architecture for UML Applications
by Daniel J. Duffy
Wiley
ISBN: 0-470-84833-2



Financial Instrument Pricing using C++ 

One of the best languages for the development of financial engineering and instrument pricing applications is C++. It has several features that allow developers to write robust, flexible and extensible software systems. It is an ANSI/ISO standard, fully object-oriented and interfaces with many third-party applications. It has support for templates and generic programming, massive reusability using templates ('write once') and support for legacy C applications.

In this book we bring C++ to the next level by applying it to the design and implementation of classes, libraries and applications for option and derivative pricing models.



We employ modern software engineering techniques to produce industrial-strength applications:

  • Using the Standard Template Library (STL) in finance
  • Creating your own template classes and functions
  • Reusable data structures for vectors, matrices and tensors
  • Classes for numerical analysis (numerical linear algebra)
  • Solving the Black-Scholes equations, exact and approximate solutions
  • Implementing the Finite Difference Method in C++
  • Integration with the 'Gang of Four' Design Patterns
  • Interfacing with Excel (output and add-ins)
  • Financial engineering and XML
  • Cash flow and yield curves

Included with the book is a CD containing the source code in the Datasim Financial Toolkit that you can use directly. This will get you up to speed with your C++ applications by reusing existing classes and libraries.


'Unique... Let's all give a warm welcome to modern pricing tools'
Paul Wilmott, mathematician, author and fund manager

If you are owing this book, please visit the site of Egor Kraev, who did a great job in collecting and documenting issues, comments and corrections to the book.


Financial Instrument Pricing using C++
by Daniel J. Duffy
Wiley
ISBN: 0-470-85509-6

 

Introduction to C++ for financial engineers
An Object-oriented Approach

This book introduces the reader to the C++ programming language and how to use it to write applications in quantitative finance (QF) and related areas. No previous knowledge of C or C++ is required. - experience with VBA, Matlab or other programming language is sufficient. The book adopts an incremental approach; starting from basic principles then moving on to advanced complex techniques and then to real-life applications in financial engineering.







There are five major parts in the book:
  •   C++ fundamentals and object-oriented thinking in QF
  • Advanced object-oriented features such as inheritance and polymorphism
  • Template programming and the Standard Template Library (STL)
  • An introduction to GOF design patterns and their applications in QF Applications 

The kinds of applications include binomial and trinomial methods, Monte Carlo simulation, advanced trees, partial differential equations and finite difference methods.

This book contains a CD with all source code and many useful C++ classes that you can use in your own applications. Examples, test cases and applications are directly relevant to QF.

This book is the perfect companion to Daniel J. Duffy’s book Financial Instrument Pricing using C++
(Wiley 2004, 0470855096)

 

The object-oriented programming language C++ is the de facto standard for developing real-life applications for Quantitative Finance and Financial Engineering.
This language was designed by Dr. Bjarne Stroustup in the early 1990's and it has become one of the most popular and robust languages for many important areas such as medical systems, computer graphics, telecommunications and in application areas where performance, accuracy and interoperability issues play a key role. The general expectation is that its importance will grow in the coming years.

C++ has also become the de facto standard for quant development and analysis. Knowledge of C++ is mandatory for many openings and job positions in Quantitative Finance. This book is the first book to discuss many of the issues that you need to know in order to be able to design and implement real-world applications. We focus on a number of critical topics:

  • Learing the essential syntax of C++ ('getting the fundamentals right')
  • Designing and implementing generic data structures using STL
  • Numerous applications (lattices, finite difference, Monte Carlo, etc)
  • Libraries, design patterns (GOF, POSA) and reusable software frameworks
  • Introduction to COM and C++ to Excel interoperability

Each chapter deals with one major topic. Furthermore, each chapter builds only on the results of the chapters preceding it, so that we keep the amount of forward referencing to a minimum. We discuss all the syntax that is discussed in the IT books and we apply it to QF applications.

Last, but not least, each chapter concludes with exercises and projects to test what you learned in that chapter. The exercises are based on the tactic: 'get it working, then get it right, then get it optimised'. The exercises will also help you prepare for your job interviews.

Included with the book is a CD with full source code, including working code for lattice, fininte difference and Monte Carlo methods, for one-factor and two-factor pricing models as well as an easy-to-use C++ visualization package to help you examine the output from these numerical methods.


Introduction to C++ for financial engineers
by Daniel J. Duffy
Wiley
ISBN 0-470-01538-1


Finite difference methods in financial engineering
A Partial Differential Equation Approach

The world of quantitative finance (QF) is one of the fastest growing areas of research and its practical applications to derivatives pricing problem. Since the discovery of the famous Black-Scholes equation in the 1970's we have seen a surge in the number of models for a wide range of products such as plain and exotic options, interest rate derivatives, real options and many others. Gone are the days when it was possible to price these derivatives analytically. For most problems we must resort to some kind of approximate method.

In this book we employ partial differential equations (PDE) to describe a range of one-factor and multi-factor derivatives products such as plain European and American options, multi-asset options, Asian options, interest rate options and real options. PDE techniques allow us to create a framework for modeling complex and interesting derivatives products. Having defined the PDE problem we then approximate it using the Finite Difference Method (FDM). This method has been used for many application areas such as fluid dynamics, heat transfer, semiconductor simulation and astrophysics, to name just a few. In this book we apply the same techniques to pricing real-life derivative products. We use both traditional (or well-known) methods as well as a number of advanced schemes that are making their way into the QF literature:

  • Crank-Nicolson, exponentially fitted and higher-order schemes for one-factor and multi-factor options
  • Early exercise features and approximation using front-fixing, penalty and variational methods
  • Modelling stochastic volatility models using Splitting methods
  • Critique of ADI and Crank-Nicolson schemes; when they work and when they don't work
  • Modelling jumps using Partial Integro Differential Equations (PIDE)
  • Free and moving boundary value problems in QF

Included with the book is a CD containing information on how to set up FDM algorithms, how to map these algorithms to C++ as well as several working programs for one-factor and two-factor models. We also provide source code so that you can customize the applications to suit your own needs.

 

Finite Difference methods in Financial Enginering
by Daniel Duffy
Wiley

ISBN: 978-0-470-85882-0


About the author

I was born in Drogheda, Ireland in 1952. My degrees are B.A. Mod (1975) in pure mathematics, MSc (1977) in the Finite Element Method and a PhD (1980) that was concerned with the discovery and application of robust Finite Difference schemes for convection-diffusion partial differential equations and problems with boundary layers. Some years later I realized that the same schemes could be used to find accurate approximations to the Black Scholes PDE and thus resolving some of the problems associated with other well-known methods. I lived and studied in Pavia (Italy) and Nijmegen (the Netherlands) for several years.

In 1980 I entered industry and worked on various projects associated with numerical analysis, software development and engineering: heat transfer and radiation applications, fluid flow, Computer Aided Design, oil and gas. At the time many of the applications were developed in Fortran and C. Most of the systems were enterprise-wide.

Founded Datasim in 1987. This is a software developer and training company and it organized the first C++ training course in the Netherlands in 1989. In the succeeding years we developed one of the first C++ libraries for CAD. Worked on an early version of a Risk system for a Dutch bank in 1992. The system used C++ and design patterns. Datasim also developed several other technical software systems in this period. Since 1999 I have been concentrating on the application of numerical and computational methods to finance. In particular, finite difference and Monte Carlo methods are important as well as C++ and C#. We work with clients to design and implement their systems. The focus is on producing robust schemes that are subsequently implemented in a programming language.

Forthcoming books

  • Monte Carlo Object-Oriented Frameworks in C++; Building Customisable and High-Performance Applications

    Daniel  J. Duffy & Joerg Kienitz

  • C#

    Daniel J. Duffy & Andrea Germani