Presentation is loading. Please wait.

Presentation is loading. Please wait.

Community Software Engineering Practices and Principles A Case Study of the Open Source Insight Toolkit (ITK) Terry Yoo (National Library of Medicine),

Similar presentations


Presentation on theme: "Community Software Engineering Practices and Principles A Case Study of the Open Source Insight Toolkit (ITK) Terry Yoo (National Library of Medicine),"— Presentation transcript:

1 Community Software Engineering Practices and Principles A Case Study of the Open Source Insight Toolkit (ITK) Terry Yoo (National Library of Medicine), Bill Lorensen (GE Research), Will Schroeder (Kitware Inc) Project Rhythms Insight has adopted Extreme Programming, a lightweight software development process that revolves around a build/test/improve cycle. The Insight Project runs at three different frequencies: Daily, the Dart dashboards report the status of the system. The files changed since the previous night are listed along with their differences. Status includes the results of the builds on over a dozen systems and over 650 test results for each platform. Additional reports on the code coverage of the tests and dynamic memory analysis are presented. Weekly, an open telephone conference allows developers to exchange experience and ask questions. This weekly conference starts with a review of the mailing list items for the week and then discusses the current software dashboard status. Any complex issues brought up during the week are discussed in detail. Quarterly, the group meets face-to-face and presents progress reports. Some meetings concentrate on educating the consortium members on details of the system.Other meetings center on design issues. itk’s Open Source Products The Insight Toolkit is a C++ library that supports n-dimensional image filtering, segmentation and registration. CMake is the Cross-Platform Make facility that manages the build process in a portable manner across Windows, Unix and the Mac OSX platforms. Dart, a distributed software dashboard facility that provides daily feedback on the software. Cable, a multi-language wrapper generator, provides alternative language interfaces to the C++ Toolkit (currently Python and Tcl). The Software Guide describes how to use the comprehensive toolkit. NLM’s Vision Create a dynamic, self-sustaining, public domain and extensible toolkit that will empower researchers throughout the world to develop new segmentation and registration algorithms and create new applications that leverage the NLM’s investment in the Visible Human Male and Female data sets. The Consortium Team Sixteen labs, institutions, and companies comprise the Insight Software Consortium. Among these groups, many play traditional software engineering roles such as producer, director, architect, programmers, quality control, bug-Czar, and system integrator. However, these groups each work independently, are geographically distributed across the country, and are have very different corporate structures; their common thread is the research and development contracts they share from the NIH, National Library of Medicine. Out of the expert raw materials available through the contractors and subcontractors, we have created a compact, cohesive software development team. A common vision unites these groups. A web- based distributed software engineering infrastructure focuses their talents, and a flexible management policy keeps the design process nimble and aggressive. $10 million over 4 years Leading edge algorithms Open Source Software The Dart Dashboard collects all build and test data for a software project. Each Dashboard is opened for a 24 hour period, accepting build and test results from around the world. Periodically, the dashboard presents new results. Throughout the day, selected machines monitor the source code repository for changes. A Continuous Build/Test process reports the results and notifies developers if they “break the build.” Each evening, all tests are run though a dynamic memory allocation/integrity check to uncover memory leaks and invalid memory accesses. Regression tests compare generated images with baseline test results to detect software changes that affect the algorithms. CVS Results posted on web (the dashboard) CVS maintains source code revisions DART compiles source code, runs tests Developers review results Developers check-in code www.itk.org


Download ppt "Community Software Engineering Practices and Principles A Case Study of the Open Source Insight Toolkit (ITK) Terry Yoo (National Library of Medicine),"

Similar presentations


Ads by Google