SOA Talk

Aug 11 2011   6:26PM GMT

Loose coupling per “201 Principles of Software Development”

Jack Vaughan Jack Vaughan Profile: Jack Vaughan

Principle 73 in Alan Davis’ 201 Principles of Software Development discusses the need for loose coupling of software components. This is a ”known unknown” that bears repeating. Services composition remains a bit of a black art, and the key to successful application integration.

No matter the profession, the size of the cubicle or the number of stops you make, you may find a reference book you tend to take along the way. For hardware engineers it may be something like Donalds Fink’s and Donald Christiansen’s Electronics Engineers’ Handbook. For many project managers it is Fredrick Brooks’ The Mythical Man Month. In my case, I have carried 201 Principles of Software Development along through more than a couple of career incarnations.

In this 1995 book, Alan Davis compiles good bits from many Structured Design and Analysis era software development books – yes, Fredrick Brooks’ writing is well represented – to form a useful set of succinct software development principles.

In last week’s Advisor, my colleague James Denman wrote about Decoupled Service Contracts and services modularity. Since then, somewhat randomly, I came across Principle 73 – ”Use coupling and cohesion” – in 201 Principles of Software Development and by chance it was on the topic of coupling and cohesion.  This write-up pre-dates ”service-oriented architecture” – but it still vividly relevant. Sizing software services for integration remains a challenge.

Davis writes that coupling and cohesion were defined in the 1970’s by Larry Constantine and Ed Yourdon in Structured Design. At the time, coupling and cohesion were seen as the best measures of software system maintainability and adaptability. Coupling was the measure of how interrelated two software components were. Cohesion described how related one component’s functions were to another’s.

Constantine and Yourdon prescribed high cohesion and low coupling as the best objectives. Note that they didn’t use the term ”loose coupling” but that was the goal they were pursuing. They write:

”High coupling implies that, when we change a component, changes to other components are likely.”

Davis notes that from the time of “Structured Design” onward, most books on software design described these measures. ”Learn them. Use them to guide your design decisions,” he advises.

Like the general adages of publisher Poor Richard (Benjamin Franklin), fabulist Aesop or baseball pitcher Satchel Paige, many of the design principles of 201 Principles of Software Development are so obvious that they need to be regularly repeated. Software is hard. A set of principles helps you cope.

Do you have any software integration or development principles that have stood you in good stead? Send them to SearchSOA.com Editors. Provide a phone and email address as well, and your name will be entered in a drawing to win a book from the SearchSOA.com software book library.

 Comment on this Post

 
There was an error processing your information. Please try again later.
Thanks. We'll let you know when a new response is added.
Send me notifications when other members comment.

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Forgot Password

No problem! Submit your e-mail address below. We'll send you an e-mail containing your password.

Your password has been sent to: