Slicer3:Slicer3 Requirements

From NAMIC Wiki
Revision as of 13:38, 18 December 2006 by Andy (talk | contribs) (Update from Wiki)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Home < Slicer3:Slicer3 Requirements


High level requirements discussed at the February 2006 meetings in Clifton Park

General Requirements

  • User interface will be single threaded
  • Cross session state
  • Tracing
  • Algorithms can be multi-threaded
  • Undo/Redo
  • Guaranteed performance
  • Exceptions vs events vs error messages
  • Events are more robust
  • MRML
    • Independent of vtk/itk
    • Is it a Slicer project or for a larger community
  • Handling of meta data
    • Mixture of vtk/itk + mrml
    • Mrml only

Requirements - Languages

  • Scripting language
    • Not in Slicer base
    • But should be wrappable
    • Modules can use whatever
      • C++ preferred
      • Tcl, python, shell scripts allowed
  • Programming language – C++
  • Data model – MRML
  • Module description language – JSON XML ??

Requirements - Toolkits

  • UI toolkit – kwwidgets
  • System toolkit – kwsys
    • May need enhancements
    • Sockets, pipes …
  • Logging
    •  ??
  • Imaging/Segmentation/Registration toolkit – itk2.x
  • Visualization toolkit – vtk5.x
  • Structured Image I/O – itk IO factory
    • Headerless – nrrd, meta
  • DICOM
    • gdcm
  • DICOM Query/Retrieve
    • dcmtk
  • Other dataset I/O – vtk
  • Containers - Standard template library
    • Level of exposure
  • Command line parser
    • Candidates
      • Tclap
      • meta
      • Kwsys
      • Cli

Requirements - Software Engineering

  • System build – CMake
  • System test – Dart 2/CTest
  • System packaging - CPack
  • Style
  • Kwstyle
    • Each toolkit will use its own style
    • Slicer
      • Vtk/itk
  • Documentation
    • Object Classes with doxygen style
    • Word/Powerpoint
    • Courseware
    • Powerpoint/html
  • Future Issuse
    • Process
    • Backward compatibility
    • Software Review process