software toolkits building communities luis ibáñez kitware, inc

Post on 20-Jan-2016

228 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Software Toolkits

BuildingCommunities

Luis IbáñezKITWARE, 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 OnlyRead / 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.libSource1.cxx

Source2.cxx

Source3.cxx

Source4.cxx

Source5.cxx

Source6.cxx

Source7.cxxExecutable1.exe

LibraryM.lib

LibraryK.lib

LibraryH.lib

LibraryM.lib

CMake

Generating Project Files

VC++ 6.0Project.dsw

CMakeLists.txt

CMakeLists.txt

CMakeLists.txt

CMakeLists.txt

CMake

VC++ 7.0Project.sln

UnixMakefiles

BorlandMakefiles

NMakeMakefiles

CMake

Functionalities

CMakeLists.txtFindOpenGL.cmake

FindITK.cmake

FindVTK.cmake

FindJPEG.cmake

TRY_COMPILE

TRY_RUN

COPY

Test Versions

Dart-Tests

Static / SharedUse / NotUse

Options

Dart

Every line of code is presumed brokenuntil proven correct

If it is not being compiled and testedchances are that is broken

Dart

DartServer

Platform XMac OS

Platform XMac OS

Platform XMac OS

Platform WWin XP, VC7

Platform WWin XP, VC7

Platform WWin XP, VC7

Platform ZLinux, GCC 3.3

Platform ZLinux, GCC 3.3

Platform ZLinux, GCC 3.3

Platform ZLinux, GCC 3.3

Platform YLinux, ICC

Platform YLinux, ICC

Platform YLinux, ICC

Platform YLinux, ICC

Platform MSun, GCC

Platform MSun, GCC

Platform MSun, GCC

Dart

DartWeb Page

CVSAware

NavigateDates Doxygen

RegressionTesting

Compare testsAcross platforms

CodeCoverage

PurifyValgrind

Dart - Dashboard

Dart - Dashboard

Dart - Dashboard

Bug Tracking

Bug Tracker

CVS Commentsreference Bug-ID

Feature Request

Documentation

Incorrect Code

Performance Issues

Categories

User 1

User 2

User 3

Developer A

Developer B

Developer C

Bug Tracking

Bug Tracking

Project Management

Who is doing whatAvoid duplication of effortInform users about future

developments Track progress of sub-projectsBut: requires some discipline

Project Management

Making Releases

Freezing Coverage 80%

BugTracker

Clearance

TestsPassing

Packaging.tar.gz

.zipCDs

Time

Doxygen

Generating Documentation from Code

Doxygen

HTMLLaTeX

PostScript

WindowsHelp

PDF

RTF

ClassA.h

ClassB.h

ClassC.h

ClassD.h

ClassE.h

Doxygen

Generating Documentation from Code

Doxygen

UMLClass

Diagrams

UMLCollaboration

Diagrams List ofClasses

ArticlePages

List ofMethods

ConceptualGrouping

/** This is documentation */class A{/** Convergence criterion */void SetTolerance( float );};

Images

Equations

Communications

WeeklyTCons

Users MailingList

InstantMessaging

DevelopersMeetings

Tutorials atConferences

BOF atConferences

TeleConferenceNetMeeting

FTPfor Data

Developers Users

Dev. MailingList

Users Mailing ListTreat 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 rightDon’t say it works until you test it.Collect Frequently Asked Questions (FAQ)

Meta Documents

White PapersJournal PapersDiagramsSlides PresentationsBooks

Teaching by Example

Start from ScratchThen simple examples

showing only one featureProgress toward functional

examplesProvide examples that can be

used as toolsRegression testing examples

Are we there yet ?

top related