Fundamentals Of Object-Oriented Design In UML By Meilir Page-Jones

Posted September 22, 2008 at 10:04 AM

Tags: ColdFusion, Books

Last week, I finally finished reading the Fundamentals Of Object-Oriented Design In UML By Meilir Page-Jones. Clark Valberg suggested this book to me almost a year ago when I was struggling with my Exercise List sample app for object oriented programming in ColdFusion. He said it totally changed the way he thought about object oriented programming. You may have also heard Hal Helms recommend this book; in fact, I believe I even heard that he [Helms] re-reads this book like once a year.


 
 
 

 
Fundamentals Of Object-Oriented Design In UML by Meilir Page-Jones  
 
 
 

I don't want you to think that it's taken me a year to read it - it's been a very on-again, off-again relationship. The actual reading took me just a few weeks. To be honest, though, I didn't read all the chapters. The middle section is all about Universal Modeling Language (UML) diagrams, and frankly, that didn't interest me all that much. Right now, I'm fairly satisfied with boxes and lines and some text. Until what's in my head becomes more accurate, I am not sure it matters how accurately I draw it on paper.

The rest of the book is jam packed with great object oriented principles - far more than I could ever absorb in one or two readings. After finishing this book, I can see why a man as brilliant as Hal Helms would reread it a number of times; there's just so much content here.

I feel like my first read through of this book was just to familiarize me with the high level concepts and the vocabulary. There are many terms in this book that I have never heard before in the computer science world. For example:

Connascence - Between software elements A and B, the property by which there is at least one change to A that would necessitate a change to B in order to preserve overall correctness.

Contranascence - Between software elements A and B, a form of connascence in which there is some property of A that must be held different for the corresponding property of B.

Extrinsic - B is extrinsic of A if A can be defined with no notion of B.

None of these concepts are difficult to understand on their own; but, after learning so many new concepts in a row, it becomes hard to follow conversations about them. I think what I need to do is study the Glossary a bit, then go back through the book chapter by chapter. At the end of each chapter, I should probably write a little summary about what it meant, but in my own words. I had to do this in 4th grade English class... and it done worked out pretty good for me then. That in and of itself might make a kind of interesting blog series, not unlike Sammy Larbi's series on Chad Fowler's, "My Job Went to India."

While I cannot yet grasp all the value that this book has to offer, I can definitely see that it is and will be a book that I recommend to people. More to come....

Post Comment  |  Ask Ben  |  Other Searches  |  Print Page



Learning ColdFusion 9 - ColdFusion 9 tutorials, samples, examples, demos

Reader Comments

Sep 22, 2008 at 1:17 PM // reply »
109 Comments

It is indeed an amazing book. Like Hal, I reread it on a regular basis (along with The Pragmatic Programmer).


Sep 22, 2008 at 3:03 PM // reply »
7,572 Comments

@Brian,

Yeah, I'll definitely have to put that into regular rotation.


Oct 10, 2008 at 6:46 PM // reply »
5 Comments

One of my favorite in OO A/D is Craig Larman "Applying UML and Patterns". I have to check out this one to..


Post Comment  |  Ask Ben

Recent Blog Comments
Mar 20, 2010 at 12:07 PM
Drawing On The iPhone Canvas With jQuery And ColdFusion
Simply awesome. Saved my day. ... read »
Mar 20, 2010 at 9:00 AM
Building A Fixed-Position Bottom Menu Bar (ala FaceBook)
I would like to say thx for an easy way to create a bottom bar. I do have a ?. Is it possible to center the bar if i want to resize it to ex 85%. Regards Offenbach ... read »
Mar 19, 2010 at 7:26 PM
MySQL 3/4 - com.mysql.jdbc.Driver And allowMultiQueries=true
Thank you very much for this post. Adding allowMultiQueries="true" in context.xml didn't help until I added it to url as allowMultiQueries=true Good idea is to use prepared statements and it will he ... read »
Jim
Mar 19, 2010 at 4:49 PM
Nobody Puts Baby In The Corner!
Wow. This is like suddenly finding a support group for your secret shame. I'm not alone! I always liked this movie, even though it is extremely cheesy. I just wish Jennifer Grey hadn't gotten the ... read »
Mar 19, 2010 at 4:47 PM
Application.cfc OnRequest() Method Affects OnError() Arguments
@Jason and @Ben, I've been doing some CF9 refactoring on our systems and noticed an odd occurrence with onError as well. Found a way to work around my problem, but what I saw was... Background: Our ... read »
Jim
Mar 19, 2010 at 4:44 PM
Shoot 'Em Up Starring Clive Owen And Paul Giamatti
I actually enjoyed this movie quite a lot. It was different, certainly, but I think they were going for more of a Quentin Tarentino-"wow, that was weird"-vibe than an actual spoof. Once I realize ... read »
Mar 19, 2010 at 4:34 PM
An Intensive Exploration Of jQuery With Ben Nadel (Video Presentation)
Hey I guess the video is down. Is there anyway you can upload to youtube or vimeo or some other service? Greatly appreciated. ... read »
Mar 19, 2010 at 4:24 PM
ColdFusion CFPOP - My First Look
@Ben Thanks for the follow up! The root of the problem had to do with being able to trace bounced emails to specific records in a DB table. Let's say you run an email campaign and you get 1,000 bou ... read »