ITK/Release 4/Modularization: Difference between revisions
No edit summary |
|||
Line 19: | Line 19: | ||
http://www.itk.org/Wiki/images/1/16/ITKv4-Modularization-2010-12-03.odp | 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 | http://www.itk.org/Wiki/images/7/75/ITKv4-Modularization-2010-12-03.pdf | ||
== Main Goals == | == Main Goals == | ||
Line 35: | Line 36: | ||
6) Facilitate the use of Add-ons with ITK without having to include them in the toolkit. | 6) Facilitate the use of Add-ons with ITK without having to include them in the toolkit. | ||
Line 47: | Line 49: | ||
[[ITK_Release_4/Modularization/Modulizer|Run Modulziation Scripts]] | [[ITK_Release_4/Modularization/Modulizer|Run Modulziation Scripts]] | ||
=== Build modularized ITK === | === Build modularized ITK === | ||
Line 59: | Line 62: | ||
The nightly dashboard for the modularized ITK can be found at: | The nightly dashboard for the modularized ITK can be found at: | ||
[http://www.cdash.org/CDash/index.php?project=ITKModular&display=project] | [http://www.cdash.org/CDash/index.php?project=ITKModular&display=project] | ||
=== FAQs === | === FAQs === | ||
Line 64: | Line 68: | ||
What '''users''' need to know about using modularized ITK? | What '''users''' need to know about using modularized ITK? | ||
== Development history== | == Development history== |
Revision as of 15:22, 7 February 2011
Why Modularization?
Modularization is a common design answer to the problem of managing complexity and growth.
From the Linux Kernel: http://www.ibm.com/developerworks/linux/library/l-lkm/index.html?ca=dgr-lnxw07LinuxLKM&S_TACT=105AGX59&S_CMP=GR
to KDE: https://wiki.archlinux.org/index.php/KDE_Packages#Terminology
to Boost: http://ryppl.github.com/index.html
to Qt: http://labs.qt.nokia.com/2010/10/26/qt-is-going-modular/ http://labs.qt.nokia.com/2011/01/21/status-of-qt-modularization/
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
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 without having to include them in the toolkit.
Latest Progress
Access modularized ITK
We have put up a in-progress modularized ITK (produced at Feb 1st ) in the public git repository:
http://itk.org/tmp/modularITK.git
It is a good start point to investigate the new directory structures and the new CMake packaging mechanism in modularized ITK.
We also encourage you to run the modularization scripts yourself to get a latest version of the modularized ITK:
Build modularized ITK
cd <path to bin>/bin/modularITK ccmake <HeadOfModuarITKTree> make
Users could choose to build certain groups of modules by turning the ITKGroup_<xxx> ON.
The grouping of modules are listed in: <HeadOfModuarITKTree>/CMake/ITKGroups.cmake.
The nightly dashboard for the modularized ITK can be found at: [1]
FAQs
What itk-developers need to know about contributing to modularized ITK?
What users need to know about using modularized ITK?
Development history
Initial Goals Steps and tools
Prototype [Iowa Meeting, Nov, 2010] Prototype
TCon 2010-12-03
Progress [Boston Meeting Feb 3, 2011] PPTX