13
GLAST CHEP 03 March 24-28 2003 T.Burnett 1/12 User-friendly tools for Managing User-friendly tools for Managing Software Development Projects Software Development Projects Toby Burnett University of Washington Marco Frailis University of Udine Alex Schelssinger SLAC

GLAST CHEP 03 March 24-28 2003 T.Burnett1/12 User-friendly tools for Managing Software Development Projects User-friendly tools for Managing Software Development

Embed Size (px)

Citation preview

Page 1: GLAST CHEP 03 March 24-28 2003 T.Burnett1/12 User-friendly tools for Managing Software Development Projects User-friendly tools for Managing Software Development

GLAST CHEP 03 March 24-28 2003

T.Burnett 1/12

User-friendly tools for Managing Software User-friendly tools for Managing Software Development Projects  Development Projects 

Toby BurnettUniversity of Washington

Marco FrailisUniversity of Udine

Alex SchelssingerSLAC

Page 2: GLAST CHEP 03 March 24-28 2003 T.Burnett1/12 User-friendly tools for Managing Software Development Projects User-friendly tools for Managing Software Development

GLAST CHEP 03 March 24-28 2003

T.Burnett 2/12

IntroductionIntroduction

• HEP software development components:– Package: group of related source files, usually to build

a single library and/or executable• Versioning via cvs tags

– “Release” system to manage and build executables from set of tagged packages

– Development scheme: “Test area mechanism for developing and testing new code against a release.

• Observations:

The release/management systems are command-line oriented, can be daunting to new developers

Hard to get overall view, especially when dealing with multiple pacakges

Page 3: GLAST CHEP 03 March 24-28 2003 T.Burnett1/12 User-friendly tools for Managing Software Development Projects User-friendly tools for Managing Software Development

GLAST CHEP 03 March 24-28 2003

T.Burnett 3/12

Solutions for CMT Solutions for CMT

(Similar approaches would apply to SRT)

• A GUI application – VCMT (windows and linux versions)

• Simplified command-line interface:– glastpack.pl

Page 4: GLAST CHEP 03 March 24-28 2003 T.Burnett1/12 User-friendly tools for Managing Software Development Projects User-friendly tools for Managing Software Development

GLAST CHEP 03 March 24-28 2003

T.Burnett 4/12

An OO analysis: The playersAn OO analysis: The players

• Objects: – Environment: CMT

env vars, etc.– CMT packages

• system (read-only, sticky tags)

• development (head versions)

• requirements files, sources

– binaries: libs, dlls, exes

• Tools:– CMT– CVS– development tools

• Windows: Visual Studio

• Linux: gmake, emacs, gdb/ddd

– Doxygen

Page 5: GLAST CHEP 03 March 24-28 2003 T.Burnett1/12 User-friendly tools for Managing Software Development Projects User-friendly tools for Managing Software Development

GLAST CHEP 03 March 24-28 2003

T.Burnett 5/12

The strategyThe strategy

• Present the user with a view of all the objects• Allow appropriate tools to be used according to development

scenarios:– set environment– checkout packages, singly or in groups– browse set of available packages– examine properties of each package,

relationships– modify and rebuild binaries– check in and/or tag new versions– run executables

Page 6: GLAST CHEP 03 March 24-28 2003 T.Burnett1/12 User-friendly tools for Managing Software Development Projects User-friendly tools for Managing Software Development

GLAST CHEP 03 March 24-28 2003

T.Burnett 6/12

We have objects: let’s define classesWe have objects: let’s define classes

What Class Name Vcmt(windows) implementation

CMT environment Cmt cmt.wsc COM object

A CMT package Package Jscript class Package

Package, its projects, and dependent projects

Workspace Jscript class Workspace

Individual binary target Project Jscript class Project

Page 7: GLAST CHEP 03 March 24-28 2003 T.Burnett1/12 User-friendly tools for Managing Software Development Projects User-friendly tools for Managing Software Development

GLAST CHEP 03 March 24-28 2003

T.Burnett 7/12

The object model diagramThe object model diagram

cmt

tagrootversionpath

Package

name : stringversionpathprojects

+used_packages

Project

name

0..*0..*

Workspace

nameprojectsdependent_projects

11

0..*0..*

Project

name

0..*0..*

Page 8: GLAST CHEP 03 March 24-28 2003 T.Burnett1/12 User-friendly tools for Managing Software Development Projects User-friendly tools for Managing Software Development

GLAST CHEP 03 March 24-28 2003

T.Burnett 8/12

A tour of the applicationA tour of the application

• Examine CMT settings

• Set CMT path

• Browse a package’s properties– requirements file– used packages– macros, sets, etc.

• Modify requirements file

• Check cvs status

• Start a console session in the package context

• Checkout a package

• Set up and build a package

• Run a package application

• Start Visual Studio

Page 9: GLAST CHEP 03 March 24-28 2003 T.Burnett1/12 User-friendly tools for Managing Software Development Projects User-friendly tools for Managing Software Development

GLAST CHEP 03 March 24-28 2003

T.Burnett 9/12

VCMT for WindowsVCMT for Windows

Page 10: GLAST CHEP 03 March 24-28 2003 T.Burnett1/12 User-friendly tools for Managing Software Development Projects User-friendly tools for Managing Software Development

GLAST CHEP 03 March 24-28 2003

T.Burnett 10/12

Structure of the Windows code: Jscript and HTMLStructure of the Windows code: Jscript and HTML

Windows Script Host vcmt.wsf

COM

cmt.wsc

main program:manage objects, GUIrun cvs, visual studio

vcmt.htm

Internet Explorer

gui descriptionCMT

interface

Page 11: GLAST CHEP 03 March 24-28 2003 T.Burnett1/12 User-friendly tools for Managing Software Development Projects User-friendly tools for Managing Software Development

GLAST CHEP 03 March 24-28 2003

T.Burnett 11/12

The Linux versionThe Linux version

• Implemented with the FOX toolkit

Page 12: GLAST CHEP 03 March 24-28 2003 T.Burnett1/12 User-friendly tools for Managing Software Development Projects User-friendly tools for Managing Software Development

GLAST CHEP 03 March 24-28 2003

T.Burnett 12/12

glastpack.plglastpack.pl

• usage: glastpack.pl create dirname• usage: glastpack.pl help command• usage: glastpack.pl build version• usage: glastpack.pl rco package version• usage: glastpack.pl run package exename <arguments>• usage: glastpack.pl add /path/to/area• usage: glastpack.pl rebuild package• usage: glastpack.pl remove /path/to/area• usage: glastpack.pl co package version• usage: glastpack.pl login• usage: glastpack.pl logout

Page 13: GLAST CHEP 03 March 24-28 2003 T.Burnett1/12 User-friendly tools for Managing Software Development Projects User-friendly tools for Managing Software Development

GLAST CHEP 03 March 24-28 2003

T.Burnett 13/12

Concluding remarksConcluding remarks

• Experience– In use by all GLAST developers: mature, few

problems• it can test for consistency when starting, avoid

installation problems• Package browsing• Buttons for all basic scenarios• override CMT behavior (checkout, broadcast)

• Sources:• VCMT/win: http://glast.stanford.edu/cgi-bin/cvsweb-SLAC/vcmt

• VCMT/linux: http://glast.stanford.edu/cgi-bin/cvsweb-SLAC/vcmt4linux • glastpack: http://glast.stanford.edu/cgi-bin/cvsweb-SLAC/glastpack