or
Sign in to turn on 1-Click ordering.
More Buying Choices
Have one to sell? Sell yours here
Multiparadigm Design for C++
 
See larger image
 
Tell the Publisher!
I’d like to read this book on Kindle

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Multiparadigm Design for C++ [Paperback]

James O. Coplien
4.5 out of 5 stars  See all reviews (4 customer reviews)
Price: £28.99 & this item Delivered FREE in the UK with Super Saver Delivery. See details and conditions
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
Usually dispatched within 2 to 3 weeks.
Dispatched from and sold by Amazon.co.uk. Gift-wrap available.
Amazon.co.uk Trade-In Store
Did you know you can trade in your old books for an Amazon.co.uk Gift Card to spend on the things you want? Plus, get an extra £5 Gift Certificate when you trade in books worth £10 or more before June 30, 2012. Visit the Books Trade-In Store for more details.


Product details

  • Paperback: 304 pages
  • Publisher: Addison Wesley; 1 edition (13 Oct 1998)
  • Language English
  • ISBN-10: 0201824671
  • ISBN-13: 978-0201824674
  • Product Dimensions: 23.4 x 18.6 x 1.5 cm
  • Average Customer Review: 4.5 out of 5 stars  See all reviews (4 customer reviews)
  • Amazon Bestsellers Rank: 597,462 in Books (See Top 100 in Books)
  • See Complete Table of Contents

More About the Author

James O. Coplien
Discover books, learn about writers, and more.

Visit Amazon's James O. Coplien Page

Product Description

Product Description

Coplien offers insight into an analysis and design process that takes advantage of C++'s multiple paradigm capability, including classes, overloaded functions, templates, modules, procedural programming, and more. The book uses understandable notation and readable explanations to help all C++ programmers—not just system architects and designers—combine multiple paradigms in their application development for more effective, efficient, portable, robust, and reusable software. Multi-paradigm design digs deeper than any single technology or technique to address fundamental questions of software abstraction and design.

From the Back Cover

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 that supports the use of multiple paradigms within a single application.

This book presents a coherent framework for approaching multi-paradigm design, offering an advanced set of design practices that form the foundation for a formal multi-paradigm design method.

Multi-Paradigm Design for C++ offers insight into an analysis and design process that takes advantage of C++'s multiple paradigm capability. It uses understandable notation and readable explanations to help all C++ programmers--not just system architects and designers--combine multiple paradigms in their application development for more effective, efficient, portable, robust, and reusable software.

Readers will gain an understanding of domain engineering methods that support multi-paradigm design. This book reveals how to analyze the application domain, using principles of commonality and variation, to define subdomains according to the most appropriate paradigm for each. Multi-paradigm design digs deeper than any single technology or technique to address fundamental questions of software abstraction and design.

All of the concepts and techniques that form the groundwork for domain engineering are presented. These concepts include an in-depth look at commonality and variability analysis, how domain engineering interacts with commonly used design patterns, how to find abstractions in the application domain, and how the principles of domain engineering can be used as a basis for the abstraction techniques of the object paradigm. Most important, this book discusses how to apply analysis techniques that are the most appropriate paradigm to be implemented during the design phase.



0201824671B04062001

Tag this product

 (What's this?)
Think of a tag as a keyword or label you consider is strongly related to this product.
Tags will help all customers organise and find favourite items.
Your tags: Add your first tag
 

Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more

Customer Reviews

4 star
0
2 star
0
1 star
0
Most Helpful Customer Reviews
6 of 6 people found the following review helpful
By A Customer
Format:Paperback
This book is worth a read if you are heavily into C++, if only to remind yourself that, when using C++, "objects" are but one paradigm to use. The general theme of the book is that you need to be aware of all the tools the language supports, and not just "objects" or "patterns."
Comment | 
Was this review helpful to you?
1 of 1 people found the following review helpful
Disappointing 24 Feb 2007
Format:Paperback
Arguably ahead of its time, given the strong functional borrowings of ostensibly object oriented languages such as Ruby and Python, this book presents an approach to domain analysis and program design using C++, although it's applicable to several programming languages. Readers may also find echos of Eric Evans' Domain Driven Design, particularly in the idea of a domain dictionary to record a vocabulary for use in naming the parts of the finished model.

The main message is that OO is only one of several choices when building software in C++. The author presents the following alternatives: generics, classes without virtual functions, overloaded functions and using the preprocessor. Clearly, some of these suggestions are more niche than others. Some extended examples are provided, involving a text editor/buffer, a function differentiator and a finite state machine.

The other big idea is the concept of commonality and variability analysis. The process goes along the following lines:

1. Create a domain dictionary defining all terms used in the domain.

2. Analyse the domain using experience or intuition to group the domain into subdomains of commonality.

3. For each subdomain, analyse the variabilities with respect to their common core.

4. Decide which paradigm to use, depending upon whether the variability needs to be specified at run time, compile time, etc.

I worked hard to like this book, really I did. One of the biggest problems for me is that I just can't get along with James Coplien's writing style, which reads like a stuffy academic research paper. I find it extremely ponderous and obfuscated, whole sentences flow by without imparting any meaning.

Perhaps as a by-product of my difficulties with Coplien's style, I found it hard to extract much usable content from the book. The four points I outlined above all seem entirely reasonable to me, but reading this book hasn't given me any further insight into them. It's particularly frustrating that Coplien has little to say about how to go about finding commonalities in a domain, apart from appealing to notions of experience and intuition, which is unhelpful. At least he doesn't suggest underlining nouns. There is some mention of design patterns, so if you're looking for more examples in C++, you may get some value from that.

It seems that lots of people liked this book (including the authors of the excellent Design Patterns Explained, where I first heard of it), so maybe if you find Coplien's writing style a bit more readable, you should give it a go. Personally, I got fairly low returns from it.
Comment | 
Was this review helpful to you?
3 of 5 people found the following review helpful
By A Customer
Format:Paperback
This book explores the foundations of software design paradigms. It explaines an approach that enables designers and programmers to grasp the modern design paradigms in their naked form. Don't let the name of the book fool you: The book is not only for C++ programmers... many software designer and programmer will benefit from it.
Comment | 
Was this review helpful to you?

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 

Search Customer Discussions
Search all Amazon discussions
   


Listmania!

Create a Listmania! list

Look for similar items by category


Look for similar items by subject


Feedback


Amazon.co.uk Privacy Statement Amazon.co.uk Delivery Information Amazon.co.uk Returns & Exchanges