Executable UML: A Foundation for Model Driven Architecture

  Author:    Stephen J. Mellor, Marc J. Balcer, Stephen Mellor, Marc Balcer
  ISBN:    0201748045
  Sales Rank:    680469
  Published:    2002-05-15
  Publisher:    Addison-Wesley Professional
  # Pages:    416
  Binding:    Paperback
  Avg. Rating:    5.0 based on 7 reviews
  Used Offers:    14 from $14.87
  Amazon Price:    $35.99
  (Data above last updated:  2008-11-16 21:48:52 EST)
  
  
Sort customer reviews by:
  
Show All Reviews on Page      Hide All Reviews on Page
   
  
Executable UML: A Foundation for Model Driven Architecture
  

Using Executable UML (xUML), developers can build UML models that can not only be unambiguously interpreted by human readers, but can be tested and validated through actual execution, and ultimately translated directly and completely to target code. This technology offers immense potential for accelerating development projects, enhancing reliability, and reducing cost. In this book, two of the field's leading experts introduce every facet of xUML. The authors introduce Executable UML's goals, premises, and features; then drill down to explain its key elements. Along the way, readers will discover exactly how to use xUML to create software systems that can be tested even before they are coded, enabling far greater reliability at significantly lower expense. For all developers, analysts, and project managers seeking to improve software reliability, time-to-market, and value. This book will be especially valuable to real-time programmers, and to thousands of programmers who have used Shlaer-Mellor methodologies.

                  Reader Reviews 1 - 15 of 15                 
  
  
Review
Date
Review
Rating(5 High)
Review
Helpful
to:
Customer Review Reviewer
Info
Permanent
Link
Reader Reviews Below Sorted by Newest First
12-01-07 1 (NA)
(Hide Review...)  Not very instructive on the specifics of creating a good model
Reviewer Permalink
This book does a good job of giving the reader an idea of the potential of modeling, but it reads like the US tax code. After a while it is numbing. There must be a better way to teach these concepts to humans.
(Review Data Last Updated: 2008-10-23 16:19:50 EST)
11-30-07 1 (NA)
(Hide Review...)  Not very instructive on the specifics of creating a good model
Reviewer Permalink
This book does a good job of giving the reader an idea of the potential of modeling, but it reads like the US tax code. After a while it is numbing. There must be a better way to teach these concepts to humans.
(Review Data Last Updated: 2008-10-28 10:40:38 EST)
08-21-03 5 10\10
(Hide Review...)  Comprehensive and well-written
Reviewer Permalink
Having worked for an organization that has implemented a model-driven architecture technology approach to create highly robust software applications I can attest to the practical value of translatable models and the information and techniques in this book.

I have always been a fan of the rigor and completeness of the Shlaer-Mellor methodology and this book distils this rigor into a profile of UML that hopefully will inspire a wider audience to look at the reality of creating executable and translatable models.

I found the book extremely well written and very complete in its treatment of every aspect of the subject from basic UML ideas through to model compilers. Unlike many technical texts I found absolutely no fluff in this book - each sentence and section has been carefully worded to be clear, consistent and unambiguous - a breath of fresh air for a pedant like myself.

I have used this book (along with Leon Starr's "Executable UML: How to Build Class Models") as a reference for my course development work on executable UML and found it invaluable. The table of contents and index are complete and well put together - something that I feel is crucial in any reference text.

I highly recommend this book for anyone using UML for software development who wants to explore this new technology of building executable and translatable models - and have it explained clearly and comprehensively.

(Review Data Last Updated: 2007-12-15 11:03:54 EST)
08-20-03 5 10\10
(Hide Review...)  Comprehensive and well-written
Reviewer Permalink
Having worked for an organization that has implemented a model-driven architecture technology approach to create highly robust software applications I can attest to the practical value of translatable models and the information and techniques in this book.

I have always been a fan of the rigor and completeness of the Shlaer-Mellor methodology and this book distils this rigor into a profile of UML that hopefully will inspire a wider audience to look at the reality of creating executable and translatable models.

I found the book extremely well written and very complete in its treatment of every aspect of the subject from basic UML ideas through to model compilers. Unlike many technical texts I found absolutely no fluff in this book - each sentence and section has been carefully worded to be clear, consistent and unambiguous - a breath of fresh air for a pedant like myself.

I have used this book (along with Leon Starr's "Executable UML: How to Build Class Models") as a reference for my course development work on executable UML and found it invaluable. The table of contents and index are complete and well put together - something that I feel is crucial in any reference text.

I highly recommend this book for anyone using UML for software development who wants to explore this new technology of building executable and translatable models - and have it explained clearly and comprehensively.

(Review Data Last Updated: 2007-04-11 12:43:51 EST)
08-13-03 5 6\15
(Hide Review...)  Author correction
Reviewer Permalink
The review from "A reader" is erroneous. There is no review from "Leon Brooks," so it is unlikely there is any business relationship with a non-existent person.

I imagine "A reader" meant Leon *Starr* who runs an entirely separate business from those run by either of the authors. Sure, we talk and refer business each other's way, but that is to be expected. Please delete "A reader"'s review.

(If you know Leon, you'd know he says what he really thinks, even if--especially?--it's bad!)

(Review Data Last Updated: 2007-12-15 11:03:54 EST)
08-12-03 5 5\14
(Hide Review...)  Author correction
Reviewer Permalink
The review from "A reader" is erroneous. There is no review from "Leon Brooks," so it is unlikely there is any business relationship with a non-existent person.

I imagine "A reader" meant Leon *Starr* who runs an entirely separate business from those run by either of the authors. Sure, we talk and refer business each other's way, but that is to be expected. Please delete "A reader"'s review.

(If you know Leon, you'd know he says what he really thinks, even if--especially?--it's bad!)

(Review Data Last Updated: 2006-06-25 10:26:21 EST)
12-01-02 5 12\12
(Hide Review...)  Good ideas bear up well over time.
Reviewer Permalink
Two events at the Object-Oriented Systems, Languages, and Applications Conference of 1996 were memorable for me. The first was the opening address given by one of the more insightful architects/designers of the 20th century, Christopher Alexander. And the second was a debate between Stephen Mellor (one of the authors of this book) and Grady Booch on the topic "Translation: Myth or Reality?". Six years later, with the addition of Action Semantacs to UML, the Model Driven Architecture initiative of the Object Management Group, and the publication of this book, it appears that Mr. Mellor is as persistent in his position that executable (and hence translatable) models are indeed a reality, as Mr. Alexander was that the resonance between the structure of a solution and the corresponding problem is a measure of the solution's quality. Good ideas bear up well over time.

Mr. Mellor, and this book, are not for the faint hearted. It is his position that building software systems should be more about engineering a solution than artfully handcrafting one, and that to do this, one needs a disciplined process and a rigorous and precise engineering tool: Executable UML. If you agree with this tenet, and accept its implied challenge--or just want to know where they will lead you--this is a book for you.

In this book, Mellor and Balcer present a very lean and agile profile of UML and define the underlying execution semantics that enable it to be used as a valuable engineering tool for analyzing, designing, and implementing your systems. They also prescribe an engineering process to follow when modeling a software system, and thoughtfully walk the reader through this process and the various UML models with numerous examples and real-world experiences. If you use UML to model software, and aspire to engineer that software in the process, this book will give you a lot to think about and add significantly to your engineering tool chest.

(Review Data Last Updated: 2007-12-15 11:03:54 EST)
11-30-02 5 11\11
(Hide Review...)  Good ideas bear up well over time.
Reviewer Permalink
Two events at the Object-Oriented Systems, Languages, and Applications Conference of 1996 were memorable for me. The first was the opening address given by one of the more insightful architects/designers of the 20th century, Christopher Alexander. And the second was a debate between Stephen Mellor (one of the authors of this book) and Grady Booch on the topic "Translation: Myth or Reality?". Six years later, with the addition of Action Semantacs to UML, the Model Driven Architecture initiative of the Object Management Group, and the publication of this book, it appears that Mr. Mellor is as persistent in his position that executable (and hence translatable) models are indeed a reality, as Mr. Alexander was that the resonance between the structure of a solution and the corresponding problem is a measure of the solution's quality. Good ideas bear up well over time.

Mr. Mellor, and this book, are not for the faint hearted. It is his position that building software systems should be more about engineering a solution than artfully handcrafting one, and that to do this, one needs a disciplined process and a rigorous and precise engineering tool: Executable UML. If you agree with this tenet, and accept its implied challenge--or just want to know where they will lead you--this is a book for you.

In this book, Mellor and Balcer present a very lean and agile profile of UML and define the underlying execution semantics that enable it to be used as a valuable engineering tool for analyzing, designing, and implementing your systems. They also prescribe an engineering process to follow when modeling a software system, and thoughtfully walk the reader through this process and the various UML models with numerous examples and real-world experiences. If you use UML to model software, and aspire to engineer that software in the process, this book will give you a lot to think about and add significantly to your engineering tool chest.

(Review Data Last Updated: 2006-06-25 10:26:21 EST)
07-30-02 3 13\16
(Hide Review...)  New Notation, Old Failures
Reviewer Permalink
The book recasts Shlaer-Mellor OOA into UML notation while preserving all advantages and failures of the first.
The authors failed to realized that in contemporary, commoditized software market the winner is not the product that has the greater number of functional requirements implemented (they will all do), but the one that has better addressed non-functional requirements and software engineering "-ilities". Both non-functional requirements and "-ilities" originate design forces that can only be addressed by the model compiler. Not surprisingly, the authors delegate the OOA of model compilation domain to another, yet to be written tome.
The authors' analogies to high-level language compilation are, at best, incomplete. One must always remember that after decades of research a new compiler must still be built for every advanced "metal". Contemporary distributed object-oriented systems present a continuously changing landscape of such "metal".
Executable UML will be useful to System Engineers interested in "animating" functional requirements and analysis-level concurrencies. However, no incremental way of building OOA models has been suggested. It seems that the authors subscribe to "just do it" approach. The view-of-participated-objects (invented by Ivar Jacobson and popularized by Mike Ackroyd) could be a better alternative.
Software engineers may find some of the terminology confusing. A subsystem, for example, is not defined as a center of execution, but as a subdomain.
Overall, the book presents little added value to already skilled in Shlaer-Mellor OOA. For the newcommer to the world of translational methodology, the book raises a false hope for the out-of-the-box model compilation -- the claims of exponential growth in model compiler availability have already been made in the past.
(Review Data Last Updated: 2007-07-10 08:55:02 EST)
07-29-02 3 11\14
(Hide Review...)  New Notation, Old Failures
Reviewer Permalink
The book recasts Shlaer-Mellor OOA into UML notation while preserving all advantages and failures of the first.
The authors failed to realized that in contemporary, commoditized software market the winner is not the product that has the greater number of functional requirements implemented (they will all do), but the one that has better addressed non-functional requirements and software engineering "-ilities". Both non-functional requirements and "-ilities" originate design forces that can only be addressed by the model compiler. Not surprisingly, the authors delegate the OOA of model compilation domain to another, yet to be written tome.
The authors' analogies to high-level language compilation are, at best, incomplete. One must always remember that after decades of research a new compiler must still be built for every advanced "metal". Contemporary distributed object-oriented systems present a continuously changing landscape of such "metal".
Executable UML will be useful to System Engineers interested in "animating" functional requirements and analysis-level concurrencies. However, no incremental way of building OOA models has been suggested. It seems that the authors subscribe to "just do it" approach. The view-of-participated-objects (invented by Ivar Jacobson and popularized by Mike Ackroyd) could be a better alternative.
Software engineers may find some of the terminology confusing. A subsystem, for example, is not defined as a center of execution, but as a subdomain.
Overall, the book presents little added value to already skilled in Shlaer-Mellor OOA. For the newcommer to the world of translational methodology, the book raises a false hope for the out-of-the-box model compilation -- the claims of exponential growth in model compiler availability have already been made in the past.
(Review Data Last Updated: 2006-06-25 10:26:21 EST)
07-22-02 5 6\6
(Hide Review...)  A UML profile for serious system development
Reviewer Permalink
If you have ever diligently tried to implement a software system using a graphical modeling technique such as UML, I suspect your first attempts,like mine, were less than satisfying. It probably went something like this. Starting with some shiny new UML tool you start drawing diagrams. After a while, things seem "squishy". It's hard to know exactly where to stop modeling. Some things have a clear correspondence to the implementation that you know you have to get to, but many, many other issues crop up that you decide you have to defer to the details of the implementation. At some point in time you convince yourself that you understand the problem very well and then just start coding the implementation. It can be a bit like the Twilight Zone. In the end you wonder just what all those diagrams, which are probably out of date with respect to the implementation, were for.

Fortunately, Mellor and Balcer have given us some real help here. This book is a comprehensive presentation of how to give UML executable semantics. I feel that the emphasis on execution semantics is key. When you write code, you are able to execute it in your head and verify that you think it's correct. You may still make mistakes and introduce bugs, but the process
is concrete. The same definiteness needs to be there when you are modeling. If the model is to be truly a more abstract representative of the system you are designing then you must be able the "execute" the model and predict how the system will behave in its ultimate implementation. And, of course, if the model is that definite then it should be possible to derive automatically the implementation from the model. All of this and much more is discussed in detail in this book. If you struggle, like I do, to deal with your systems problems at a higher
level of abstraction, this is a book you need to read.

(Review Data Last Updated: 2007-12-15 11:03:54 EST)
07-21-02 5 5\5
(Hide Review...)  A UML profile for serious system development
Reviewer Permalink
If you have ever diligently tried to implement a software system using a graphical modeling technique such as UML, I suspect your first attempts,like mine, were less than satisfying. It probably went something like this. Starting with some shiny new UML tool you start drawing diagrams. After a while, things seem "squishy". It's hard to know exactly where to stop modeling. Some things have a clear correspondence to the implementation that you know you have to get to, but many, many other issues crop up that you decide you have to defer to the details of the implementation. At some point in time you convince yourself that you understand the problem very well and then just start coding the implementation. It can be a bit like the Twilight Zone. In the end you wonder just what all those diagrams, which are probably out of date with respect to the implementation, were for.

Fortunately, Mellor and Balcer have given us some real help here. This book is a comprehensive presentation of how to give UML executable semantics. I feel that the emphasis on execution semantics is key. When you write code, you are able to execute it in your head and verify that you think it's correct. You may still make mistakes and introduce bugs, but the process
is concrete. The same definiteness needs to be there when you are modeling. If the model is to be truly a more abstract representative of the system you are designing then you must be able the "execute" the model and predict how the system will behave in its ultimate implementation. And, of course, if the model is that definite then it should be possible to derive automatically the implementation from the model. All of this and much more is discussed in detail in this book. If you struggle, like I do, to deal with your systems problems at a higher
level of abstraction, this is a book you need to read.

(Review Data Last Updated: 2006-06-25 10:26:21 EST)
07-04-02 5 29\31
(Hide Review...)  An must read for serious software developers!
Reviewer Permalink
Before clarifying who I think will benefit from this book, I must contradict the review that claims this book is just for Bridgepoint users. I have been building executable models since 1984 using a variety of tools, on numerous real-time/embedded projects. I used Illogix on a recent project for example. In the olden days we used AutoCAD to enter the models and AutoLISP to extract the model content and generate partial code. Regardless of toolset, my colleagues and I have successfully implemented the critical concepts described in Steve and Marc's book. Experienced engineers know that you start with an engineering process and THEN figure out what tools you need to get the job done. Not the other way around (as today's most popular tool vendors would have you believe!)

NOTE: If you meet the criteria I've listed under "Who should buy this book", Chapter 14: Control Strategies alone is worth the price of this book, no matter what object oriented methodology or tool set you use.

In addition to the handful of tools that fully support the engineering approach defined in Steve and Marc's book, there are many tools out there that partially support this approach. Combinations of mainstream tools and increasingly available Opensource utilities can also help you get the job done. Okay, enough about the tools, let's focus on what is really important.

You should NOT buy this book if:
-------------------------------------
All you do is slap quick and dirty scripts and utilities together.

You really love coding in C++ or Java and can't imagine why you would ever want to do anything differently.

Your only interest in UML is to display your C++ in pretty rectangles with happy stickmen.

The development time required to build a complete product in your organization is on the order of 1-3 months max.

You SHOULD buy this book if:
--------------------------------
You have attempted to use UML on a real project and been seriously disillusioned.

You want to focus effort at a higher level of abstraction than that afforded by implementation dependent languages like C, C++ or Java.

You develop large real-time distributed or embedded applications with complex requirements.

You know that there must be some way to disentangle the fundamental application rules from the implementation, yet each time your company creates a new product version or a spinoff, the application has to be re-specified and re-coded to a large extent.

You routinely tackle extreme complexity, but don't want to end up with obnoxiously complex statecharts (See my note on Chapter 14 at the end of this review).

Some things that make this book DIFFERENT
---------------------------------------------------------
There are over a hundred UML books that you can buy on Amazon. But even those books that try to address real-time systems fail miserably to address many PRACTICAL issues critical to building complex real-time systems.

Steve and Marc define a complete development language. This language uses the UML notation, but is a LOT more than just notation. In addition to the UML notation, they:
Define an explicit model of synchronization (how time works when you don't know what processor, operating system or even hardware partitioning into which your software is ultimately packaged).

Provide complete executable semantics for an implementation independent interpretation of how models execute on any arbitrary implementation.

Explain a process whereby the specification can be fully separated from the implementation and various layers of middle ware can be separated from both of these layers.

Raise the level of abstraction (way above C++ and Java) for solving complicated application problems while at the same time providing a language that can be (and has been) translated into non-object oriented (VHDL, C or Assembler) as well as object-oriented language implementations.

In particular, Chapter 14: Control Strategies (Domain Dynamics) is one of my favorite chapters. I haven't seen anything like this in ANY other UML book. This chapter, if you have the experience and patience to work through the example and really understand what is going on (I predict most people will just skim through and completely miss the point) will change the way you think about organizing class collaborations (communicating state machines). It shows you an excellent process for decreasing the complexity of your collaborations. This is just one of the many concepts presented in this book that transcends your model editor/development tools.
----------
Everything in this book is practical. There isn't a thing in here that I and my colleagues haven't applied to solve real problems on a real project. This stuff works! Read this book and the world of software development as you know it will change forever. Welcome to the next level.

(Review Data Last Updated: 2007-12-15 11:03:54 EST)
07-03-02 5 26\28
(Hide Review...)  An must read for serious software developers!
Reviewer Permalink
Before clarifying who I think will benefit from this book, I must contradict the review that claims this book is just for Bridgepoint users. I have been building executable models since 1984 using a variety of tools, on numerous real-time/embedded projects. I used Illogix on a recent project for example. In the olden days we used AutoCAD to enter the models and AutoLISP to extract the model content and generate partial code. Regardless of toolset, my colleagues and I have successfully implemented the critical concepts described in Steve and Marc's book. Experienced engineers know that you start with an engineering process and THEN figure out what tools you need to get the job done. Not the other way around (as today's most popular tool vendors would have you believe!)

NOTE: If you meet the criteria I've listed under "Who should buy this book", Chapter 14: Control Strategies alone is worth the price of this book, no matter what object oriented methodology or tool set you use.

In addition to the handful of tools that fully support the engineering approach defined in Steve and Marc's book, there are many tools out there that partially support this approach. Combinations of mainstream tools and increasingly available Opensource utilities can also help you get the job done. Okay, enough about the tools, let's focus on what is really important.

You should NOT buy this book if:
-------------------------------------
All you do is slap quick and dirty scripts and utilities together.

You really love coding in C++ or Java and can't imagine why you would ever want to do anything differently.

Your only interest in UML is to display your C++ in pretty rectangles with happy stickmen.

The development time required to build a complete product in your organization is on the order of 1-3 months max.

You SHOULD buy this book if:
--------------------------------
You have attempted to use UML on a real project and been seriously disillusioned.

You want to focus effort at a higher level of abstraction than that afforded by implementation dependent languages like C, C++ or Java.

You develop large real-time distributed or embedded applications with complex requirements.

You know that there must be some way to disentangle the fundamental application rules from the implementation, yet each time your company creates a new product version or a spinoff, the application has to be re-specified and re-coded to a large extent.

You routinely tackle extreme complexity, but don't want to end up with obnoxiously complex statecharts (See my note on Chapter 14 at the end of this review).

Some things that make this book DIFFERENT
---------------------------------------------------------
There are over a hundred UML books that you can buy on Amazon. But even those books that try to address real-time systems fail miserably to address many PRACTICAL issues critical to building complex real-time systems.

Steve and Marc define a complete development language. This language uses the UML notation, but is a LOT more than just notation. In addition to the UML notation, they:
Define an explicit model of synchronization (how time works when you don't know what processor, operating system or even hardware partitioning into which your software is ultimately packaged).

Provide complete executable semantics for an implementation independent interpretation of how models execute on any arbitrary implementation.

Explain a process whereby the specification can be fully separated from the implementation and various layers of middle ware can be separated from both of these layers.

Raise the level of abstraction (way above C++ and Java) for solving complicated application problems while at the same time providing a language that can be (and has been) translated into non-object oriented (VHDL, C or Assembler) as well as object-oriented language implementations.

In particular, Chapter 14: Control Strategies (Domain Dynamics) is one of my favorite chapters. I haven't seen anything like this in ANY other UML book. This chapter, if you have the experience and patience to work through the example and really understand what is going on (I predict most people will just skim through and completely miss the point) will change the way you think about organizing class collaborations (communicating state machines). It shows you an excellent process for decreasing the complexity of your collaborations. This is just one of the many concepts presented in this book that transcends your model editor/development tools.
----------
Everything in this book is practical. There isn't a thing in here that I and my colleagues haven't applied to solve real problems on a real project. This stuff works! Read this book and the world of software development as you know it will change forever. Welcome to the next level.

(Review Data Last Updated: 2006-06-25 10:26:21 EST)
05-22-02 5 28\31
(Hide Review...)  For BridgePoint Suite users or evaluators!
Reviewer Permalink
This book heavily uses the BridgePoint tool suite from Project Technology as its basis. Knowing that up front is important because the content is specific to that set of tools. You can get eval copies of the tool suite from the vendor, and should be able to get them from the book's supporting web site, which was not fully operational at the time of this review.

The backbone of the book is model driven architecture, which is a strong and practical way to approach design and development. In a nutshell, the BridgePoint tool suite, which consists of modeling and translation tools, allows you to 'draw' the design, using UML, to produce domain partitions, state charts, class diagrams and action specifications. The tool checks your design for consistency and correctness, then the translation tool turns your design into executable code. This is code generation on steroids.

Because this book uses a specific product it is most useful to BridgePoint tool users or those who are evaluating this tool set. If you are not in either audience you will probably be disappointed with the book. If you are in either audience, this book is excellent and justifies the 5 stars I am awarding it.

(Review Data Last Updated: 2006-06-25 10:26:21 EST)
  
                  Reader Reviews 1 - 15 of 15                 
  
  
  
  
  
  

Because the data used to generate this site come from outside sources, VeryWellSaid.com cannot guarantee the completeness or accuracy of the data.
Search VeryWellSaid™
Google
Web VeryWellSaid™
New subjects are added every week.
View Subjects Below by:
* Top Selling
 (click category name, left)
* Top-Rated Top Sellers
 (click 'Top Rated', right)
In the news...  
Dubai\UAE Top Rated
Influenza\Bird Flu Top Rated
Iraq Top Rated
Supreme Court Top Rated
All Books Top Rated
Arts Top Rated
Photography Top Rated
Digital Photography Top Rated
Digital Cameras Top Rated
Biography Top Rated
Business Top Rated
Management Top Rated
Marketing Top Rated
Sales Top Rated
Stocks Top Rated
Bonds Top Rated
Real Estate Top Rated
Trading Top Rated
Commodities Trading Top Rated
Time Management Top Rated
Starting A Business Top Rated
Children's Top Rated
Comics Top Rated
Computers Top Rated
PC Top Rated
Mac Top Rated
Programming Top Rated
Design Patterns Top Rated
.Net Top Rated
C# Top Rated
Vb.Net Top Rated
Asp.Net Top Rated
Java Top Rated
Python Top Rated
PHP Top Rated
Perl Top Rated
Javascript Top Rated
Ajax Top Rated
CSS Top Rated
Open Source Top Rated
SQL Top Rated
Databases Top Rated
Oracle Top Rated
MySql Top Rated
Sql Server Top Rated
IIS Top Rated
Apache Top Rated
Linux Top Rated
Windows Server Top Rated
Project Management Top Rated
HTML Top Rated
UML Top Rated
IT Certifications Top Rated
Cisco Certifications Top Rated
MCSE Top Rated
MCSD Top Rated
Cooking Top Rated
Italian Cooking Top Rated
Vegetarian Cooking Top Rated
Wine Top Rated
Engineering Top Rated
Entertainment Top Rated
Health Top Rated
Nutrition Top Rated
Dieting Top Rated
Sex Top Rated
History Top Rated
Military History Top Rated
British History Top Rated
Middle East History Top Rated
Land Battles Top Rated
Naval Warfare Top Rated
Air Warfare Top Rated
9/11 Top Rated
Terrorism Top Rated
Home Top Rated
Mortgage\Home Equity Loan Top Rated
Cars Top Rated
Car Buying Top Rated
Sports Cars Top Rated
Cat Top Rated
Humor Top Rated
Horror Top Rated
Law Top Rated
IP Law Top Rated
Legal History Top Rated
Fiction Top Rated
Oprah's Book Club Top Rated
Medicine Top Rated
Cancer Top Rated
Stroke Top Rated
Heart Disease Top Rated
Fertility Top Rated
Diabetes Top Rated
Pharmacology Top Rated
Back Problems Top Rated
Menopause Top Rated
Thyroid Top Rated
Pain Top Rated
Organic Chemistry Top Rated
Immune System Top Rated
Mystery Top Rated
Nonfiction Top Rated
Outdoors Top Rated
Running Top Rated
Radio Control Models Top Rated
Guns Top Rated
Parenting Top Rated
Divorce Top Rated
Professional Top Rated
Reference Top Rated
Religion Top Rated
Romance Top Rated
Science Top Rated
Physics Top Rated
Chemistry Top Rated
Astronomy Top Rated
Psychology Top Rated
Science Fiction Top Rated
Sports Top Rated
Teens Top Rated
Travel Top Rated
USA Top Rated
Europe Top Rated
France Top Rated
Italy Top Rated
England Top Rated
China Top Rated
All Books Arts Biography Click Here For An A-Z Index Of All 213 Best-Seller Subjects Business Children's Comics
Computers Cooking Engineering Entertainment Health History Home Horror Humor Law Fiction Medicine Mystery
Nonfiction Outdoors Parenting Professional Reference Religion Romance Science Sci-Fi Sports Teens Travel
In Association with Amazon.com

Cache miss
(not cached)