Abstract :
Summary form only given, as follows. C++ is a programming language that supports multiple paradigms: classes, overloaded functions, templates, modules, procedural programming and more. Despite the language??s flexibility and richness, however, there has previously been little effort to create a design method to support multiple paradigms within a single application. This tutorial explores a coherent framework for multi-paradigm design, offering an advanced set of design practices that form the foundation for a formal multi-paradigm design method. Attendees will gain an understanding of domain engineering methods that support multi-paradigm design. The presentation reveals how to analyze the application domain using principles of commonality and variation to define subdomains according to the most appropriate paradigm for each. The course explores deep questions of design to address fundamental issues of software abstraction.