Domain Architecture
Models and Architectures for UML Applications
A unique catalog of domain architectures offering
design solutions for realworld systems
Domain architectures describes and documents a number of recurring patterns and models which emerge in reallife 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 metamodels, and concentrating on medium to largescale systems, the domain architectures described in this book will help software professionals to build a stable architectural framework for highquality systems.
The five domain architectures presented are:
 Manufacturing (MAN)
 Resource Allocation Tracking (RAT)
 Management and Information Systems (MIS)
 Process Control and RealTime (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 objectoriented technology and UML to solve reallife problems.
Domain Architectures  Models and Architecture for UML Applications
by Daniel J. Duffy
Wiley
ISBN: 0470848332
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 objectoriented and interfaces with many thirdparty 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 industrialstrength 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 BlackScholes 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 addins)
 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 own 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: 0470855096
Introduction to C++ for financial engineers
An Objectoriented 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 reallife applications in financial engineering.
There are five major parts in the book:
 C++ fundamentals and objectoriented thinking in QF
 Advanced objectoriented 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 objectoriented programming language C++ is the de facto standard for developing reallife 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 realworld 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 onefactor and twofactor pricing models as well as an easytouse 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 0470015381
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 BlackScholes 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 onefactor and multifactor derivatives products such as plain European and American options, multiasset 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 reallife derivative products. We use both traditional (or wellknown) methods as well as a number of advanced schemes that are making their way into the QF literature:
 CrankNicolson, exponentially fitted and higherorder schemes for onefactor and multifactor options
 Early exercise features and approximation using frontfixing, penalty and variational methods
 Modelling stochastic volatility models using Splitting methods
 Critique of ADI and CrankNicolson 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 onefactor and twofactor 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: 9780470858820
Monte Carlo Frameworks
Building Customisable High Performance C++ Applications
This is one of the first books that describe all the steps that are needed in order to analyze, design and implement Monte Carlo applications. It discusses the financial theory as well as the mathematical and numerical background that is needed to write flexible and efficient C++ code using stateofthe art design and system patterns, objectoriented and generic programming models in combination with standard libraries and tools.
Includes a CD containing the source code for all examples. It is strongly advised that you experiment with the code by compiling it and extending it to suit your needs. Support is offered via a user forum on www.datasimfinancial.com where you can post queries and communicate with other purchasers of the book.
This book is for those professionals who design and develop models in computational finance. This book assumes that you have a working knowledge of C ++.
Download the flyer of the "Monte Carlo Frameworks" book
Monte Carlo frameworks
by Daniel Duffy
Wiley
ISBN: 9780470060698
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 convectiondiffusion 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 wellknown 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 enterprisewide.
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.
C# for Financial Markets
Daniel J. Duffy & Andrea Germani
C# is a modern objectoriented programming language
that runs under the Microsoft .NET Framework and it is suitable for the development of pricing and trading applications in quantitative finance. It has functionality to support the needs of quants and traders who develop
fixed income and computational finance applications. It is more accessible than C++ and has interfaces with other tools such as Excel, C++, F# and database systems.
C# for Financial Markets is a practiceoriented book that shows how to design and program
pricing models using the C# programming language. It is a stepbystep account of how to
develop software programs that can be used by traders in reallife situations. The reader will discover how to design and implement real finance applications including new methodologies that were developed after the crash of 2007. The approach is thorough and comprehensive and the authors use a combination of C# language features, design patterns, mathematics and finance to produce efficient and maintainable software.
Some key features in the book are:
 The C# language from A to Z (version 4.0).
 C# as a language that supports the objectoriented, generic and functional programming models.
 Implementing lattice models in C#.
 Two chapters on PDE models (including an indepth analysis of the Alternating Direction Explicit (ADE) finite difference method).
 Six major chapters on fixed income applications including the single curve and multi curve framework.
 How to create COM and Automation addins in Excel and link them to fixed income applications.
 A thorough introduction to C# multithreading and the TPL (Task Programming Language).
 A detailed overview of LINQ (Language Integrated Query), its applications to finance and LINQ–Excel interoperability.
 Multilanguage development in .NET, in particular creating mixed C#/C++ applications.
 Introduction to .NET assemblies.
Designed for quant developers, traders and MSc/MFE students, each chapter has numerous
exercises. After purchasing this book you can register at the dedicated companion website,
www.datasimfinancial.com, where all of the source code is provided, alongside forums for
readers to comment on the code and obtain new versions of the software.
About the authors
DANIEL J. DUFFY has been working with numerical methods in finance, industry and engineering since 1979. He has written four books on financial models and numerical methods
and C++ for computational finance and he has also developed a number of new schemes for this field. He is the founder of Datasim Education and has a PhD in Numerical Analysis from Trinity College, Dublin.
ANDREA GERMANI was born in Lodi, Italy in 1975, where he currently lives. After graduating
from Bocconi University in Milano, he obtained the Certificate in Quantitative Finance in London under the supervision of Paul Wilmott. Since then he has been working as a trader in some of the major Italian banks, where he gained a deep knowledge of financial markets. He also worked on valuation and pricing of equity and interestderivatives, with a focus on the practical use of models on the trading floor. His teaching experience includes finance training courses for university students and practitioners. He is the Head of Interest Rate Derivatives Trading and Treasury in a bank.
C# for Financial Markets
Daniel J. Duffy, Andrea Germani
ISBN: 9780470030080
