Proposals:Refactoring Statistics Framework 2007

From KitwarePublic
Jump to navigationJump to search

ITK: Statistical Framework Refactoring

Summary

Motivation

Recently it has been found that certain characteristics of the Statistical Framework API could be improved in order to provide a more consistent inteface.

In particular, issues have been pointed out regarding the following topics

  • Iterators
  • Samples versus Subsamples
  • Statistical calculator integrated into the pipeline


Tasks

The proposed refactoring will include the following specific tasks

  • Review all iterators used in the Statistics framework and add tests for their functionalities until bringing their code coverage to 100%
  • Restructure the implementation of the Subsample class, to make sure that
    • It can be used in any place where a sample can be used.
    • Sub-sampling can be nested without breaking the consistency of the statistical operation.

Schedule

The refactoring tasks will be initiated on March 23rd and will be completed before April 15th 2007

Specific Program

Tasks

Build a Class Manifesto

There are 72 header files in the Statistics directory.

They are categorized in the following page

Class Manifesto

Adapt to Pipeline

The collection of objects in the current statistics framework is relatively independent from the data pipeline used in most of the toolkit.

In this task we target to reorganize the existing classes into data objects and process objects following the pipeline architecture.

Review Iterators

Iterators Review


Miscellaneous Issues

Miscellaneous Issues

Brad's Comments

Action Items

List of Action Items

Prototype Code

The prototype code of the refactoring is available in the NAMICSandbox. You can download it by using the following svn command

 svn checkout http://svn.na-mic.org/NAMICSandBox/trunk/ITKStatisticsPipelineRefactoring ITKStatisticsPipelineRefactoring

The old location (deprecated) of the repository was:

 svn checkout http://www.na-mic.org/svn/NAMICSandBox/trunk/ITKStatisticsPipelineRefactoring

The New World

New Statistics Framework

Migration Users Guide

Migration Users Guide

Classifiers

Transition Plan

Transition Plan