
The importance ofdesign
patternsin delivering complex software
systems has been highlighted by IBM fellow
Grady Boochin 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 >>