Building Object Applications That Work

Your Step-By-Step Handbook for Developing Robust Systems Using Object Technology

Cambridge University Press/SIGS Books, 1997   ISBN#: 0521-64826-2

Scott W. Ambler + Associates
    Home  |  Articles  |  Books  |  IT Surveys  |  Podcasts  |  Contact Us  |  Announcements  |  Site Map
Order now!  



Building Object Applications starts exactly where The Object Primer 1st Edition left off -- At OO design. Like The Object Primer it is written in everyday language that you can understand, covering leading-edge topics that are pertinent to real-world developers. While OO is often used to develop complex systems, OO itself does not need to be complicated. Like The Object Primer this book is written from the point of view of a developer, somebody who has lived through the difficulty of learning this exciting new approach to creating applications.


The Strengths of Building Object Applications That Work



A Closer Look at Building Object Applications That Work

Building Object Applications That Work is divided into five parts:

Part 1 -- Introduction
Building Object Applications starts where The Object Primer left off -- At OO design. Well, actually it starts with a review of, and a few improvements to, The Object Primer. To keep things simple I purposely left out a few things in the first volume, specifically class methods and class attributes. These two concepts are just too darn confusing for OO beginners, so I skipped them until this book. Besides, I wanted to make sure there was enough new stuff in the first chapter to make it worth your while to read it. I also transition from the Ambler Notation presented in The Object Primer to the Unified Modeling Language (UML), which is quickly becoming the industry standard.

Part 2 -- Object-Oriented Analysis, Design, and Architecture
In the second chapter we’ll discuss several diagramming techniques that we didn’t cover in the first book. We’ll also learn some really good tips and techniques to make your diagrams look better, as well as how to convert back and forth between the class modeling notations of the leading OO methodologies. One of the main benefits of this chapter is that you get a really solid understanding of how OO analysis and OO design techniques fit together.

Chapter 3 introduces us to an OO class type architecture. We’ll propose a four level architecture that actually has five and maybe even six levels, but who’s counting? We then get into OO patterns in chapter 4. You’ve heard a lot about them, you’ve seen the huge tomes, now it’s time to actually find out about what this stuff is really all about. Because the proof is always in the pudding, but never in the jelly for some reason, we’ll look at several patterns that are being used in live applications today.

In chapter 5 we’ll delve into distributed OO architectures -- Because the client/server (C/S) architecture is currently the dominant approach to systems development, I figured we’d better show you how to design for C/S. We’ll discuss the seven steps for creating an OOC/S design. C/S can be very complex, and experience has shown that OO is the surest way to guarantee success in a C/S environment. We’ll also discuss how OOCS leads to distributed objects, an architecture that is quickly catching on and that is most likely in your future.

Part 3 -- Object-Oriented Construction
Chapter 6 covers object-oriented metrics that you can use to both estimate the size of a project and to evaluate how well you are doing. The important thing about metrics for developers are the design and coding implications that they make. Understanding the basis for metrics will help you to improve your development skills.

We’re going to spend a fair bit of time talking about OO languages and OO construction issues in chapters 6 and 7, so all you programmers out there might want to skip immediately to that chapter. Although there are a fair number of OO programming languages, we concentrate on Smalltalk, C++, Java, and ObjectCOBOL in chapter 6. In chapter 6 we also discuss many of the issues surrounding electronic commerce, so you should find it interesting. We cover a lot of programming tips as well as code documentation tips in chapter 8, so I think that you’ll really like it.

Chapter 9 covers user interface design not only because it’s important, but because I’m really getting tired of using programs with interfaces that are hard to use. I begin by arguing that just because you use a GUI it isn’t necessarily OO. We’ll see designs for both a standard GUI interface for the bank and an OOUI (OO user interface) for it and when you see the difference you’ll be astounded. You'll also learn a lot about prototyping and screen design in this chapter.

As saving objects is a reasonably common thing to do, we’re going to cover this topic in detail in chapter 10. Relational technology are the reality out there, not object databases, so for most of the chapter I’ll assume you’re trying to store your objects into a relational DB. Unfortunately, this is easier said than done. We’re going to discuss issues like OO normalization, converting objects to relational records, inheritance issues, and design issues when using a relational DB to store objects. The chapter ends with a discussion of both object/relational and object databases, what they’re all about and where they’re going. Bottom line is that object databases are an important topic that must be covered.

Chapter 11 discusses wrapping, which is a technique for getting a few more miles out of your legacy applications. If the legacy applications were horses we would have shot them long ago, but unfortunately we’ve made a huge investment in them that we’d prefer not to lose.

Part 4 -- Object-Oriented Testing
Until now, OO testing hasn’t been well covered by the mainstream OO methodologies, and that’s a problem that we want to address. Users really like it when their application works, so it’s not a bad idea to test your application before you release it. The bad news is that traditional testing techniques don’t always work for OO applications. The good news is that chapter 12 describes the full lifecycle object-oriented testing (FLOOT) approach which presents a multitude of effective OO testing techniques.

Part 5 – Conclusion
This section is basically a quick wrap-up of the material covered in the book as well as some of my thoughts regarding how to successfully overcome the object-oriented learning curve.

Visual Glossary
One of the strengths of Building Object Applications That Work is that it comes with a fairly robust glossary that includes both pictures and text descriptions of them. Not only are you given the definition of a term, you often also are shown the modeling notation for that term as well.

Who Should Read Building Object Applications That Work?

For the most part this book is geared towards designers, programmers, and testers. Analysts will find this material useful for filling out their knowledge of OO, but probably won’t find it directly applicable to their daily jobs. Project managers of OO development teams should definitely read this book to gain a better understanding of what their people are doing.

What Will You Learn In Building Object Applications That Work?

By reading Building Object Applications you will gain a thorough understanding of how the entire object-oriented development process works. Furthermore you will gain a detailed understanding of all phases of OO development in a coherent and consistent manner.

How to Obtain Building Object Applications That Work

Amazon US:

    Order now!

Amazon UK:

    Order now!


1. William Sheridan's online review.
2. Gary Evan's online review.
3. Jacques Surveyor's review in the May 1998 issue of Software Development Magazine:

"The title seems loquacious, but Scott Ambler's book delivers exactly what it promises -- a robust look into building object applications. This is no small feat given the wide range of object-oriented development. Ambler's willingness to depart from a UML-only viewpoint and to advocate practical techniques like CRC modeling or data modeling provides a bridge from classic CASE methods to object-oriented design. It also has the strong feel of practical object-oriented application building experience. Its common thrust is an elaboration of theory into usable practices for developing robust object-oriented systems."

4. Terrence Thomas has this to say about the book:
"Every now and then in life you stumble across a piece of gold which helps in the never ending quest for knowledge. Your book is one such piece of gold. As a recent graduate of Youngstown State with a BS in computer science, I found myself searching for a deeper understanding of the potential for object oriented technology. Your book is one of the most informative clearly written books on the subject that I have come across."

I'm really interested in finding out about reviews posted online, or supporting anyone writing a review for a journal or magazine.


Let Us Help

We actively work with clients around the world to improve their information technology (IT) practices, typically in the role of mentor/coach, team lead, or trainer.  A full description of what we do, and how to contact us, can be found at Scott W. Ambler + Associates