No two languages are ever sufficiently similar to be considered as representing the same social reality. The worlds in which different societies live are distinct worlds, not merely the same world with different labels attached.
The diversity of languages is not a diversity of signs and sounds but a diversity of views of the world.
Wilhelm von Humboldt
The first eight chapters of this book were devoted to the syntax and multiparadigm language features in C++. But syntax alone is not sufficient if we wish to create flexible and maintainable code. To this end, we introduce a design approach that subsumes and integrates a number of popular design methodologies to give us a defined process that we apply to the creation of small to complex libraries, frameworks and applications. We call it Unified Software Design (USD) for convenience and we shall apply it in a number of the remaining chapters of this book to applications such as Monte Carlo simulation, option pricing using PDE methods and to the creation of libraries and frameworks. Our goal is to have a standardised design approach to software development and this approach can also be applied by the reader when creating her own applications in computational finance.
The main goal of this chapter is to describe the underlying principles of USD and how it complements, subsumes and extends other design methodologies. Furthermore, ...