[Insight-developers] Modularization Use Cases

Luis Ibanez luis.ibanez at kitware.com
Tue Jan 25 01:01:45 EST 2011


Hi Bill,


Thanks offering these use case scenarios,
let me comment on them below.


------------------------------------------------------------------------
On Sun, Jan 23, 2011 at 2:14 PM, Bill Lorensen <bill.lorensen at gmail.com> wrote:
> Folks,
>
> I am still confused about modularization and its benefits.
>
> I would like to see some use cases and see how this effort will
> benefit them given that it will have a major impact on the
> organization of ITK in the future.
>
> I'll offer one use case.
>
> Use Case #1: An application to process 2D images
> This application will only read tiff and png images. All operations
> will be 2D. Filters required are smoothing and denoising as well as
> some simple arithmetic operations. Maybe NormalizeImageFilter,
> HiostogramEqualization, etc. No level sets, no registration, no
> medical, image formats.  Will probably need resampling.
>
> Benefit: How will modularization benefit this use case? I can see
> benefits of limited IO libraries. But outside of that, what benefits?
>
-------------------------------------------------------------------------------------------

In this case, the application can benefit from a simplified software
distribution and simplified software configuration.

The developers of this application can create a customized file
listing the modules needed from ITK to support this application.
They could then pre-package a custom ITK (with only the needed
modules) to be distributed along with the application's source code.

This one may not be the most compelling case for modularization,...

Unless that application needs to go through an FDA approval process,
in which case, it is advantageous to be able to focus on testing and
validating the pieces of ITK that are actually used in that application
or medical device. As you know better than most of us, it is quite
common for medical devices to have a small and focused set of
functionalities, and it is quite costly to validate an entire software
package, particularly when you know that only a minimal portion of
that package is being used in your application.


------------------------------------------------------------------------------------------------
> Also, what benefits for applications like Slicer and SNAP? For
> example, we heard recently that SNAP only uses one of the level set
> algorithms. Will SNAP benefit? I don't believe that modularization
> will be at that level.
>
----------------------------------------------------------------------------------------------

Even an application as ITK-centered as SNAP
will benefit  from a modularized ITK.


SNAP doesn't use:

Meshes, Registration, Label Maps, Paths, Bloxs, Resampling, Optimizers,
Polynomials, FFT, Statistics, Spatial Objects, Region Growing, Watersheds,
Voting filters, Markov Random Fields, Gibbs filters, Canny Edge detection,
FEM, Demons, Tensor Images, Vector Images, Bias Field Correction,
XML parsing, Neural Networks, PDE deformable registration, Voronoi
segmentation...   among others.




More information about the Insight-developers mailing list