Gastredner im April – Rediscovering Modularity (Chris Chedgey, structure101)

Am 16.April bekommen wir Besuch aus Irland – Chris Chedgey von structure101 wird für uns näher darauf eingehen, wie man komplexe Systeme analysiert und in einfachere Bestandteile aufteilen kann. Um bestehenden Code zu überprüfen und Refactoring umsetzen zu können, benötigt man Strategien, Erfahrung und Unterstützung – und genau das werden wir uns gemeinsam ansehen.

Chris war unter anderem an der Entwicklung der Software für die International Space Station beteiligt. Inzwischen ist er Mitgründer und Director von Structure101 ( und arbeitet dort an Tools, mit denen die Struktur von Anwendungen analysiert und verbessert werden kann.

Er wird seinen Vortrag bei uns auf Englisch halten und wir freuen uns, wenn ihr dazu am 16.4. um 19:00 im space vorbeikommt.


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 by examples.

Comments are closed.