Software Toolkits Building Communities Luis Ibáñez KITWARE, Inc.

Slides:



Advertisements
Similar presentations
ITK-Overview Insight Software Consortium. What is ITK Image Processing Segmentation Registration No Graphical User Interface (GUI) No Visualization.
Advertisements

Python - an Open Source Project Guido van Rossum CNRI
Project Management Summary Castor Development Team Castor Readiness Review – June 2006 German Cancio, Giuseppe Lo Presti, Sebastien Ponce CERN / IT.
National Alliance for Medical Image Computing Testing with CTest and CDash Julien Jomier Kitware Inc.
Lecture 3 Getting Started with ITK!. Goals for this lecture Learn how to use Cmake Build ITK Example programs that use ITK.
Roadmap to Continuous Integration Testing and Benefits Gowri Selka, Walgreens Natalie Koltun, Walgreens May 20th, 2014 ©2013 Walgreen Co. All rights reserved.
Collaborative tools in NICE Alex Lossent - CERN IT/IS Hepix Fall 2005.
ESCE 4960: Open Source Software Practice Lecture 1: Course Overview August 27, 2007 Prof. Roysam, RPI Prof. Moorthy Dr. Will Schroeder, Kitware Prof. Roysam,
Platforms, installation, configuration; accessing example collections Course material prepared by Greenstone Digital Library Project University of Waikato,
ITK Lecture 12: Open Source & Cross Platform Software Development Methods in Image Analysis CMU Robotics Institute U. Pitt Bioengineering 2630 Spring.
Perforce (Version Control Software). Perforce is an enterprise version management system in which users connect to a shared file repository. Perforce.
NA-MIC, 2008 June Workshop, IHK Akademie Westerham Engineering Methodology Sebastien BARRE, Ph.D. - Kitware, Inc.
Doxygen: Source Code Documentation Generator John Tully.
Software Process, CMake, Dashboards, CPack Bill Hoffman Kitware, Inc.
Software Process for Distributed Teams KITWARE, Inc.
SPI Software Process & Infrastructure GRIDPP Collaboration Meeting - 3 June 2004 Jakub MOSCICKI
Open Source Workshop1 IBM Software Group Working with Apache Tuscany A Hands-On Workshop Luciano Resende Haleh.
SPI Software Process & Infrastructure EGEE France - 11 June 2004 Yannick Patois
Do not delete this graphic elements in here: All Rights Reserved © Alcatel-Lucent 2008 ACOS Forge.
Article: Source Code Review Systems Author: Jason Remillard Presenter: Joe Borosky Class: Principles and Applications of Software Design Date: 11/2/2005.
Software Tools and Processes Training and Discussion October 16, :00-4:30 p.m. Jim Willenbring.
Garching, 08 July 2005 NRI (Night Reporting Infrastructure) for VLT Common Software Integration S. Feyrin, M. Zamparelli European Southern Observatory.
CVS vs SVN Presented by: Anusha Kolla. Concurrent Version Systems(CVS)  System that lets groups of people work simultaneously on groups of files.  Version.
Slide 1/8Jack IDE Tutorial, Index This program is part of the software suite that accompanies the book The Elements of Computing.
Software Quality Assurance in Neuroinformatics H Jeremy Bockholt NITRC Grantee Meeting.
Web Indexing and Searching By Florin Zidaru. Outline Web Indexing and Searching Overview Swish-e: overview and features Swish-e: set-up Swish-e: demo.
Caravan Business Server a viable alternative development platform niti telecom consultancy april 2002.
QGIS (v2.2) Intro to QGIS What is QGIS? A free, open-source desktop geographic information system Runs on Linux, Mac OSX, Unix, and Windows Licensed.
Configuration Management Geant4 Review 19 June 2001 Gunter Folger.
1 SEG4912 University of Ottawa by Jason Kealey Software Engineering Capstone Project Tools and Technologies.
Community Software Engineering Practices and Principles A Case Study of the Open Source Insight Toolkit (ITK) Terry Yoo (National Library of Medicine),
Short Status Report: Documentation Geant4 Workshop at Noorwijk 4 October, 2010 Dennis Wright (for Katsuya Amako)
L. Mancera IT/API LCG SPI project: Code documentation1 Code Documentation Luis Mancera LCG Software Process & Infrastructure (CERN, 10/23/02)
NA-MIC National Alliance for Medical Image Computing NA-MIC Core 2 Update: Kitware Will Schroeder Kitware NA-MIC Core 2 PI NA-MIC Core.
Introduction to Version Control SE-2030 Dr. Rob Hasker 1 Based on material at and slides written.
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering Software Process Stephen R. Aylward Kitware, Inc.
CMake refactoring P. Hristov 19/03/2014. History I  Recursive makefiles (F.Carminati):  Problems in dependencies  Slow  "Recursive Makefiles.
William Schroeder, Ph.D. §, Andy Cedilnik §, Sebastien Barré, Ph.D. §, William Lorensen ‡, James Miller, Ph.D. ‡, Daniel Blezek, Ph.D. ‡ § Kitware Inc.,
A Short Course on Geant4 Simulation Toolkit How to learn more?
Open Source Software in Image Guided Surgery and New Age of Publishing Luis Ibáñez KITWARE, Inc.
May 2, 2013 An introduction to DSpace. Module 1 – An Introduction By the end of this module, you will … Understand what DSpace is, and what it can be.
CASE Tools Union Palenshus. In the early days… ► Software engineering tools consisted solely of translators, compilers, assemblers, linkers, loaders,
Technical Overview The Fastest Way to Create Architecture!
Feedback from the POOL Project User Feedback from the POOL Project Dirk Düllmann, LCG-POOL LCG Application Area Internal Review October 2003.
DevelopersCommitters Users I’m getting the following exception…. Anybody have any clue why??? +1, I like that idea… Source & Binary Code Repository Bug.
Software Engineering Overview DTI International Technology Service-Global Watch Mission “Mission to CERN in Distributed IT Applications” June 2004.
Getting Started with Trilinos October 14, :30-10:30 a.m. Jim Willenbring.
Code.soundsoftware.ac.uk: A software repository for sustainable collaborative research Mark Plumbley, Chris Cannam, Luis Figueira Centre for Digital Music.
A. Aimar - EP/SFT LCG - Software Process & Infrastructure1 SPI Software Process & Infrastructure for LCG Project Overview LCG Application Area Internal.
W. Pokorski - EP/SFT Simulation Project1 Generator Services Subproject Witek Pokorski
NA-MIC, 2008 June Workshop, IHK Akademie Westerham Engineering Methodology Sebastien BARRE - Kitware, Inc.
2/11/2007 NSL/SCS Development Jimmy Bonaiuto 2/26/2007.
Geant4 is a toolkit to simulate the passage of particles through matter, and is widely used in HEP, in medical physics and for space applications. Ongoing.
Transition to SVN server: follow up P.Hristov 24/01/2008.
A. Aimar - EP/SFT LCG - Software Process & Infrastructure1 SPI Infrastructure for LCG Software Projects GRIDPP 7 th Collaboration Meeting 30 June – 2 July.
F Ankara 1/63. How it was in the beginning 2/63.
ITP 109 Week 2 Trina Gregory Introduction to Java.
SPI Software Process & Infrastructure Project Plan 2004 H1 LCG-PEB Meeting - 06 April 2004 Alberto AIMAR
Geant4 Training 2003 A Short Course on Geant4 Simulation Toolkit How to learn more? The full set of lecture notes of this Geant4.
Comments on SPI. General remarks Essentially all goals set out in the RTAG report have been achieved. However, the roles defined (Section 9) have not.
OpenPegasus Documentation Discussion What should we change, what should we keep? KS OpenPegasus Developers Conference 27 September 2012.
CMake: Experience in ALICE P. Hristov 19/06/12. History I Recursive makefiles (F.Carminati): – Problems in dependencies – Slow "Recursive Makefiles.
The Insight Toolkit Case Study Dr. Luis Ibanez, Kitware /
A Short Course on Geant4 Simulation Toolkit How to learn more?
Introduction of Week 3 Assignment Discussion
Presented by: Anusha Kolla
Cmake Primer.
A Collaborative Environment
Presentation transcript:

Software Toolkits Building Communities Luis Ibáñez KITWARE, Inc.

If a tree falls in a forest… and nobody is around to hear it, does it make a sound?

No Users = No Toolkit

How to sustain a Toolkit Developers Mailing List CVS Repository CMake Configuration Dart Dashboard Bug Tracking Moderator Gatekeeper Guru Bad Guy Czar Doxygen Documentation Volunteer

How to sustain a Toolkit Writing Tests Writing Applications Tutorials License XTreme Outsider Prophet Lawyer

CVS Repository User 1 User 2 User 3 User 4 User 5 Developer X Developer W Developer Z Developer Y Developer M Read Only Read / Write

CVS Who ? When ? What ? Why ? For every change in the code, CVS provides an answer to Also: Compare with old versions, and Restore old versions

CVS First step: Provide CVS literacy, Tutorials, Set up a fake repository for practice

CMake Build configuration LibraryA.lib Source1.cxx Source2.cxx Source3.cxx Source4.cxx Source5.cxx Source6.cxx Source7.cxx Executable1.exe LibraryM.lib LibraryK.lib LibraryH.lib LibraryM.lib

CMake Generating Project Files VC Project.dsw CMakeLists.txt CMake VC Project.sln Unix Makefiles Borland Makefiles NMake Makefiles

CMake Functionalities CMakeLists.txt FindOpenGL.cmake FindITK.cmake FindVTK.cmake FindJPEG.cmake TRY_COMPILE TRY_RUN COPY Test Versions Dart-Tests Static / Shared Use / NotUse Options

Dart Every line of code is presumed broken until proven correct If it is not being compiled and tested chances are that is broken

Dart Dart Server Platform X Mac OS Platform W Win XP, VC7 Platform Z Linux, GCC 3.3 Platform Y Linux, ICC Platform M Sun, GCC

Dart Dart Web Page CVS Aware Navigate Dates Doxygen Regression Testing Compare tests Across platforms Code Coverage Purify Valgrind

Dart - Dashboard

Bug Tracking Bug Tracker CVS Comments reference Bug-ID Feature Request Documentation Incorrect Code Performance Issues Categories User 1 User 2 User 3 Developer A Developer B Developer C

Bug Tracking

Project Management Who is doing what Avoid duplication of effort Inform users about future developments Track progress of sub-projects But: requires some discipline

Project Management

Making Releases FreezingCoverage 80% Bug Tracker Clearance Tests Passing Packaging.tar.gz.zip CDs Time

Doxygen Generating Documentation from Code Doxygen HTML LaTeX PostScript Windows Help PDF RTF ClassA.h ClassB.h ClassC.h ClassD.h ClassE.h

Doxygen Generating Documentation from Code Doxygen UML Class Diagrams UML Collaboration Diagrams List of Classes Article Pages List of Methods Conceptual Grouping /** This is documentation */ class A { /** Convergence criterion */ void SetTolerance( float ); }; Images Equations

Communications Weekly TCons Users Mailing List Instant Messaging Developers Meetings Tutorials at Conferences BOF at Conferences Tele Conference NetMeeting FTP for Data Developers Users Dev. Mailing List

Users Mailing List Treat the first users very well. Use: maybe, perhaps, it seems, it looks like, you may want to. Train users to report: platform, compiler, version. Assume first that the user is right Don’t say it works until you test it. Collect Frequently Asked Questions (FAQ)

Meta Documents White Papers Journal Papers Diagrams Slides Presentations Books

Teaching by Example Start from Scratch Then simple examples showing only one feature Progress toward functional examples Provide examples that can be used as tools Regression testing examples

Are we there yet ?