Modularization is a common design answer to the problem of managing complexity and growth.
to Boost: http://ryppl.github.com/index.html
Details on the goals of modularization were presented here: http://www.itk.org/Wiki/ITK_Release_4/Modularization/Tcon-2010-12-03 In particular in: http://www.itk.org/Wiki/images/1/16/ITKv4-Modularization-2010-12-03.odp http://www.itk.org/Wiki/images/7/75/ITKv4-Modularization-2010-12-03.pdf
Main Goals of Modularization
1) Find / label / remove the trash in ITK.
2) Organize the ~2,330 files into conceptual cohesive groups.
3) Test and label each group according to measures of quality control : Code coverage, correctness, style, dynamic testing, documentation...
4) Raise the quality bar for critical components. For example, the itkObject must have 100% code coverage, while we could live with the Blox classes having 30%.
5) Maintain that level of quality as more code is added to the toolkit.
6) Facilitate the use of add-ons with ITK (External and Remote Modules) without having to include them in the toolkit.
Module Dependency Visualization
Information for ITK Users
Information for ITK Developers
A Collection of Use Cases
Initial plan Steps and tools
Prototype [Iowa Meeting, Nov, 2010] Prototype
Progress report in TCon 2010-12-03
Major progress report [Boston Meeting Feb 3, 2011] PPTX
Transition Transition Plan