Here is an interesting talk, registration is required.
The principles of modularity have been applied to engineering projects
since Gorak built the wheel, and Thag the barrow of the world’s first
wheelbarrow. Thag’s barrow didn’t care that the wheel was first hewn from
rock, and later upgraded to a lighter, wooden one, and Gorak’s wheel design
was reused for the world’s first chariot. This is how humans make sense of
complexity – we divide and conquer.
Analogous principles of modularity are taught in Software Engineering 101 –
information hiding, interfaces, clear responsibility, high internal
cohesion, low external coupling, etc., and we apply these routinely as we
develop, and continuously refactor the code encapsulated within classes.
However when the number of classes reaches some threshold, higher level
abstractions are needed in order to manage the complexity of the growing
codebase. This limit is usually overshot and the team is soon drowning in
an ocean of classes. At this point it is time to restructure the code-base
into a hierarchy of modules above the class level, or watch the team’s
frustration continue to rise, and productivity plummet.
This talk proposes a measurement framework for assessing the quality of a
modular structure, identifying regions of poor modularity, and for
assessing the impact of restructuring or refactoring actions. Based on this
framework, the talk introduces strategies for retro-fitting modularity to
an existing codebase, with minimum impact on the code logic itself.
This material is based on experience gained while helping many development
teams through the restructuring process. The concepts will be illustrated
Chris has a Masters in Software Engineering from Trinity College Dublin,
with over 25 years software engineering experience gained in Ireland,
Canada and the United States.
Chris joined the International Space Station Project in 1990 where he was a
member of the team that defined the software development processes and
tools for the program, and then technical lead on the Remote Manipulator
System control software. In 1994 he moved to the $1.5bn Iris program which
replaced the entire communications systems for the Canadian armed forces,
first on the process/toolsmithing side, and then the product development
side. In 2000 he founded Headway Software to address the lack of
large-scale modularity that he saw as pervasive in software industry.
He lives on the south coast of Ireland, where he likes to sail when it’s
windy, and walk the dog when it’s not.