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
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.
Building Object Applications That Work is divided into
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 well discuss several diagramming techniques that we didnt cover in the first book. Well 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. Well propose a four level architecture that actually has five and maybe even six levels, but whos counting? We then get into OO patterns in chapter 4. Youve heard a lot about them, youve seen the huge tomes, now its 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, well look at several patterns that are being used in live applications today.
In chapter 5 well delve into distributed OO architectures -- Because the client/server (C/S) architecture is currently the dominant approach to systems development, I figured wed better show you how to design for C/S. Well 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. Well 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.
Were 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 youll really like it.
Chapter 9 covers user interface design not only because its important, but because Im 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 isnt necessarily OO. Well 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 youll 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, were 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 Ill assume youre trying to store your objects into a relational DB. Unfortunately, this is easier said than done. Were 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 theyre all about and where theyre 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 weve made a huge investment in them that wed prefer not to lose.
Part 4 -- Object-Oriented Testing
Until now, OO testing hasnt been well covered by the mainstream OO methodologies, and thats a problem that we want to address. Users really like it when their application works, so its not a bad idea to test your application before you release it. The bad news is that traditional testing techniques dont 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.
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.
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 wont 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.
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.
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
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.
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.