Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Software Toolkits Building Communities Luis Ibáñez KITWARE, Inc."— Presentation transcript:

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

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

3 No Users = No Toolkit

4 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

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

6 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

7 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

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

9 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

10 CMake Generating Project Files VC++ 6.0 Project.dsw CMakeLists.txt CMake VC++ 7.0 Project.sln Unix Makefiles Borland Makefiles NMake Makefiles

11 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

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

13 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

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

15 Dart - Dashboard

16

17

18 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

19 Bug Tracking

20

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

22 Project Management

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

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

25 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

26 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

27 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)

28 Meta Documents White Papers Journal Papers Diagrams Slides Presentations Books

29 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

30 Are we there yet ?


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

Similar presentations


Ads by Google