The Insight Toolkit Case Study Dr. Luis Ibanez, Kitware /

Slides:



Advertisements
Similar presentations
Building Open Science Communities
Advertisements

ITK-Overview Insight Software Consortium. What is ITK Image Processing Segmentation Registration No Graphical User Interface (GUI) No Visualization.
NA-MIC National Alliance for Medical Image Computing National Alliance for Medical Image Computing: NAMIC Ron Kikinis, M.D.
National Alliance for Medical Image Computing Testing with CTest and CDash Julien Jomier Kitware Inc.
Tool Setup Guide to CMPS 115 Spring 06 Guozheng Ge CS Dept. UCSC April 4, 2006.
ESCE 4960: Open Source Software Practice Lecture 1: Course Overview August 27, 2007 Prof. Roysam, RPI Prof. Moorthy Dr. Will Schroeder, Kitware Prof. Roysam,
MS Word Template Training General Template Use. 2 Our Contact Information APPLICATION SUPPORT CENTER: Consultation Location: The Hub, Room 224 (132 Temp.)
Software Process for Distributed Teams KITWARE, Inc.
Leading People, Leading Organizations Information Center Department Statistics Report October 2003 Deborah Keary, SPHR.
Getting Started with ITK in Python Language
Software Toolkits Building Communities Luis Ibáñez KITWARE, Inc.
Community Software Engineering Practices and Principles A Case Study of the Open Source Insight Toolkit (ITK) Terry Yoo (National Library of Medicine),
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
William Schroeder, Ph.D. §, Andy Cedilnik §, Sebastien Barré, Ph.D. §, William Lorensen ‡, James Miller, Ph.D. ‡, Daniel Blezek, Ph.D. ‡ § Kitware Inc.,
Open Source Software in Image Guided Surgery and New Age of Publishing Luis Ibáñez KITWARE, Inc.
Copyright © 2008 Siemens Corporate Research – All rights reserved1/12 eXtensible Imaging Platform (Xip) Sylvain Jaume – Sep 2008 Siemens Corporate Research.
Microsoft’s ALM Vision. Vision and benefits ALM today ALM outlook.
Developer Session #3 NCRR Advanced SCIRun/BioPSE Elements: GUIs, Core Libs, Contributions & Support.
Modularity Status Update Extension Module Webinar 25 th of February 2010.
SWGData and Software Access - 1 UCB, Nov 15/16, 2006 THEMIS SCIENCE WORKING TEAM MEETING Data and Software Access Ken Bromund GST Inc., at NASA/GSFC.
Linda Washington, M.S. U.S. DEPARTMENT OF HEALTH AND HUMAN SERVICES Centers for Disease Control and Prevention National Center for Health Statistics Marketing.
HUBzero® Platform for Scientific Collaboration Copyright © 2012 HUBzero Foundation, LLC Collaboration and Contribution Emily Kayser Hub Liaison, HUBzero®
Tools Report Engineering Node March 2007
T Iteration Demo LicenseChecker I2 Iteration
Tools Report Engineering Node August 2007
1 Creative Innovation – Customer Satisfaction – Continual Quality Improvement Accessing and Building Asterisk SCF.
Insight Toolkit Introduction Luis Ibáñez William Schroeder Insight Software Consortium.
Linux Governance Case Study Dr. Luis Ibanez, Kitware /
Class Infrastructure Dr. Luis Ibanez, Kitware
OpenOffice.org 2.0 Jim Crowley C3 - Crowley Computer Consulting
Patrick Desbrow, CIO & VP of Engineering October 29, 2014
Presented by Rob Carver
SharePoint Broken Link Manager
Source Control Systems
Jan 2016 Solar Lunar Data.
DataGrid Quality Assurance
Monthly Report For January 2017
Pipeline Execution Environment
LCG Software Quality Assurance
Software Documentation
Please Click the following link to view
OPEN SOURCE BY :.
AP® Implementation New AP Resources and Supports
SimpleITK Historical Overview: Standing on the Shoulders of Giants
How to Successfully Implement an Agile Project
Average Monthly Temperature and Rainfall

National Library of Medicine Segmentation and Registration Toolkit
The Insight Software Consortium InsightSoftwareConsortium

Design and Programming

ITK-Overview Insight Software Consortium.

Yearly Maintenance Process (for existing messages)
Sentinel-2 Status Update
How to Use PathologyOutlines.com to Help your Practice
Status for Endeavor 6: Improved Scientific Data Access Infrastructure
Enterprise Program Management Office
SharePoint Broken Link Manager
COUNTER Update February 2006.
About this Template Dear Colleague, This template is provided by Valooto to help you communicate the facts about your need for a CPQ (Configure Price Quote)
DISSEMINATION WORKING GROUP Luxembourg, November 2011 Using Statistics Explained to produce the Eurostat Yearbook Jukka PIIRTO.
Software for Neutron Imaging Analysis


Prepared by: Talal Abu-Ghazaleh Information Technology International

Street Manager High-level roadmap
WDF Custom Driver Design Pattern
Presentation transcript:

The Insight Toolkit Case Study Dr. Luis Ibanez, Kitware /

2 © 2007 Luis Ibanez ● This presentation is Copyrighted by Luis Ibanez ● This presentation is distributed under the Creative Commons Attribution License 3.0: ● You are free to Reuse ● You are free to Remix ● Provided that you give credit to the author

3 This presentation was created using Open Source Software Open Office copyright is jointly held by Sun Microsystems and Contributors. The software is distributed under the GNU Lesser General Public License Version 2.1.

ITK Sponsors The National Science Foundation The National Institute for Dental and Craniofacial Research The National Institute of Neurological Disorders and Stroke

ITK Developers

* indicates a subcontractor. ITK Developers

Public Investment $13 Million March 2000 First code check-in 2,040 # of nightly builds 1,289 tests run nightly 42 # of platforms ( software + hardware ) 1,647 # of C++ classes 2,314 # of files with code ( Insight / Code directory ) ITK by the Numbers

136K # of lines of code ( Insight / Code directory) 102K # of lines of test code ( Insight / Testing directory) 81.6% Code coverage (gcov) 27K # of lines of examples ( Insight / Examples directory) 114K # of lines of Applications (InsightApplications checkout) 328 weekly t-cons 82 unique developers ITK by the Numbers

1,380 # of users subscribed to the mailing-list 345 # of monthly s in users-list (Oct’06 - Sep’07 average) 836 # of pages in the Software Guide PDF document 15,040 # of Software Guide PDF downloads (sourceforge) 3,393 # of monthly hits to the URL of the ITK Software Guide 4,169 # of Insight Applications downloads ITK 3.4 (sourceforge) 8,659 # of source code downloads ITK 3.4 (sourceforge) ITK by the Numbers

10 Growth t

11 Ohlo Statistics** m

12 Design Decisions ● Data Pipeline ● Large Datasets ● N-D Images ● No Visualization (importance of “scoping”) ● No GUI (scoping) ● Image Segmentation ● Image Registration

13 Implementation Decisions ● C++ Templates ● Wrapping ( Tcl, Python, Java ) ● Multi-platform – Windows, Linux, Sun, SGI, Mac* ● Image Iterators ● Readers (many formats) ● 32 bits / 64 bits

14 Software Process ● CVS Repository ● Dashboard – (Nightly, Continuous, Experimental) – Code Coverage – Dynamic Analysis ● Doxygen Documentation

15 Release Early, Release Often ● Beta 1.0: 2002 Feb ● Beta 2.0: 2002 Jun ● ITK 1.0:2002 Oct ● ITK 1.2:2003 Mar ● ITK 1.4:2003 Sep ● ITK 1.6:2004 Jan ● ITK 1.8:2004 Aug ● ITK 1.8.1:2004 Sep ● ITK 2.0:2005 Feb ● ITK 2.0.1:2005 Mar ● ITK 2.2:2005 Aug ● ITK 2.4:2005 Nov ● ITK 2.6:2006 Mar ● ITK 2.8:2006 Jun ● ITK 3.0:2006 Nov ● ITK 3.0.1:2007 Jan

16 Release Early, Release Often ● ITK 3.2:2007 Mar ● ITK 3.4:2007 Sep ● ITK 3.6:2008 Apr** ● ITK 3.8:2008 Jul ● ITK 3.10:2008 Oct*

17 Project Spin-offs ● CMake (multi-platform support) ● CableSwig (wrapping C++ templates) ● GCC-XML (wrapping C++ templates)

18 Backward Compatibility ● Version (N) should work as version (N-1) ● Promise to users – Key to adoption and retention ● The meaning of Deprecation (discourage use) ● We don't know who our users are ● We don't know (for sure) how they use ITK ● Compatibility vs Progress – Agile methods: trial & error ● Providing backward bugs (e.g. Critical apps)

19 Coding Style ● Prepare for bloody violence ● The code should look like written by only ONE developer ● Must be checked automatically – KWStyle – CVS / SVN commit filters – Dashboard test (daily) ● Process must feed-back to developers ● Training / Learning process

20 Code Coverage ● If it is not tested: it is broken ● Start from day zero ● Error management challenge (many “if()s”) ● Exponentially harder (last %s) ● Should be tested automatically – gcov: line coverage – Bullseye: branching coverage

21 Dynamic Analysis ● Test from day Zero ● Valgrind ● Rational ● Most reports are Real errors ● Slower to run – In ITK it takes more than 24 hours – Rolling testing ¼ of the toolkit per day

22 Users Mailing List ● Main communication channel ● Important: Welcome beginners ● Appreciate feedback – Bug reports – Code contributions ● Cultivate helpers – Users who help other users ● Deal with demanding customers – Confused with customer support

23 Wiki ● Excellent tool – Middle way between & static HTML ● We adopted late ● Pressure from a user – “can do” type of user – Progress by public shame ● Requires maintenance (guidance)

24 Telephone Conference ● Coordination among developers ● Weekly ● When preparing releases ● Language barrier ● Cultural barrier ● Taking turns

25 Tutorials ● Online tutorials ● Conferences ● User-generated content ● Beginner vs Advanced ● Tutorials as a business model – Consulting – Training (e.g. Blender) – Popularity / Adoption / trade-offf

26 Documentation

27 Documentation ● Document as you go ● Doxygen – Comments along with the code ● Examples role ● Documentation maintenance – Many eyes... ● Code reviews

28 Manuals ● Documentation – Free / Sold ● Apply Open Source methods to manuals (e.g. Incorporate users corrections) ● Teach by example ● Maintaining (updates)

29 Copyright and License ● Defined before day 1 ● License – Clear – Stable ● One change in 8 years ● Proper advertisement ● Beware of contributions – Remove infringements immediately

30 Governance ● Meritocracy ● Those who write the code make decisions – (most of the time...) ● Reaching consensus ● Accepting contributions

31 End