Design patterns hold key to better software, says expert

The importance of design patterns in delivering complex software systems has been highlighted by IBM fellow Grady Booch in an interview with the British Computer Society.

The importance of design patterns in delivering complex software systems has been highlighted by IBM fellow Grady Booch in an interview with the British Computer Society.

"There is a gap between vision and execution we can dream up many things that have a software element to them, but to turn that into running systems is a challenge," he said. "Pure computer science can limit us, so can social, legal and moral things. But where most organisations stumble is at the cusp of design and organisation."

Booch said one of the greatest advances in software design in the past 10 years is the observation of design patterns - the ability to look at things at a higher level of abstraction that transcends the original programming language.

Booch is a founding member of the Hillside Group, which has begun to catalogue several thousand design patterns to improve the efficiency of developing complex software systems.

"To express patterns, we needed to catalogue in the physical networking domain and the abstract logical domain. What we lack is an ability to describe significant or architectural patterns," he said.

"In civil engineering there is a history of architects learning by studying the works of their masters - Frank Lloyd-Wright, Christopher Wren, Frank Gehry. There are books that catalogue the different genres of buildings and observe the common kinds of architectures. No such reference exists for software engineering."

Booch said another problem is that software is often written by many programmers working with other stakeholders, who can be geographically and temporally dispersed.

"We know that code is the ultimate truth, but not all the truth. There is entropy, a loss of information, from vision to construction, so even though I may stare at some code, I do not have access to the rationale or the patterns that sweep across the individual lines of code," he said.

"So we have information loss, therefore I have tried to define what we can do to improve the developer experience using a thing called collaborative developing environments. It is not a killer app, but a weaving together of 100 small things from social networking sites. We want to produce technology to help us deal with the geographical and temporal distribution."

Watch the video of Grady Booch's 2007 BCS Turing Lecture >>




 

CW+

Features

Enjoy the benefits of CW+ membership, learn more and join.

Read more on Antivirus, firewall and IDS products

Start the conversation

Send me notifications when other members comment.

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

Please create a username to comment.

-ADS BY GOOGLE

SearchCIO

SearchSecurity

SearchNetworking

SearchDataCenter

SearchDataManagement

Close