Software Processes in BaBar Gabriele Cosmo CERN - IT/ASD [email protected] 3 rd LHC Computing...

25
Software Processes in BaBar Gabriele Cosmo CERN - IT/ASD [email protected] 3 rd LHC Computing Workshop Marseille, September 28 th - October 1 st , 1999

Transcript of Software Processes in BaBar Gabriele Cosmo CERN - IT/ASD [email protected] 3 rd LHC Computing...

Software Processes in BaBar

Gabriele CosmoCERN - IT/ASD

[email protected]

3rd LHC Computing Workshop

Marseille, September 28th- October 1st, 1999

September 29th, 1999 Software Processes in BaBar - G.Cosmo

2

LHC Computing Workshop - Marseille (France)

Outline

The BaBar environmentTraining and courses Tools for Software developmentDocumentation and HyperNewsThe Release mechanismThe User EnvironmentConclusions

September 29th, 1999 Software Processes in BaBar - G.Cosmo

3

LHC Computing Workshop - Marseille (France)

The BaBar environment

More than 70 collaborating institutes distributed environment and computing

resourcesCurrently supported architectures/OS: UNIX

SUN, OSF, (in a near future also Linux)Programming Languages:

C++, C, Fortran wide spectrum of expertise

need for proper training to OO Programming

September 29th, 1999 Software Processes in BaBar - G.Cosmo

4

LHC Computing Workshop - Marseille (France)

Training and courses

OO Methodology: Object Mentor Course Principles of UML and OOD Advanced OOAD and Design Patterns See also: www.oma.com/Brochure/training.html

Course on C++ programming languageCourses on specific BaBar software

applicationsOrganized regularly according to BaBar

collaboration meetings schedule

September 29th, 1999 Software Processes in BaBar - G.Cosmo

5

LHC Computing Workshop - Marseille (France)

Tools for Software Development

CASE tools: Rational-Rose identified a team of experts for helping in

designingSoftware QA tools: Code WizardRun-time checkers

Insure++ , Great Circle, PurifySpecial builds regularly performed over

“stable” or “production” releasesresults automatically posted to the package

coordinatorsummary published on Web

September 29th, 1999 Software Processes in BaBar - G.Cosmo

6

LHC Computing Workshop - Marseille (France)

WWW and HyperNewsDistributed environment

WWW plays a fundamental rule !Software standards, requirements & policesMeetings, minutes, slides, tutorials, ...Calendars, release schedule, computing resources info

HyperNews: discussion forum organized by topic uses BFMAIL users are free to subscribe or unsubscribe possibility to add new topics the Release mechanism is integrated a special topic: authoritative software recipes

September 29th, 1999 Software Processes in BaBar - G.Cosmo

7

LHC Computing Workshop - Marseille (France)

Documentation

FAQ: to focus on the most common problems

Workbook: collects docs for users & developers

LIGHT: code browsing & navigation Code documentation

LaTeX, FrameMaker, HTML Cross Reference

KDOC, Javadoc

September 29th, 1999 Software Processes in BaBar - G.Cosmo

8

LHC Computing Workshop - Marseille (France)

Production QA

Dedicated QA team & QA tools (sim & reco) at every new release: reference data from old

release are compared and the new reference set is updated

A set of references is needed for each different run type which the QA Production Tools use in their comparison testshistograms & data

automated mechanism in production main results published on web

September 29th, 1999 Software Processes in BaBar - G.Cosmo

9

LHC Computing Workshop - Marseille (France)

SRT - Software Release Tools

Originally developed in BaBar by Bob Jacobsen, first release in November

1994Based upon CVS: the Version Control

System the actual code repository

Uses GNU MakeIt’s a Package !

set of GNUmake scripts (Tools)

September 29th, 1999 Software Processes in BaBar - G.Cosmo

10

LHC Computing Workshop - Marseille (France)

SRT: What is all about ?

Set of tools (GNU make scripts) useful to: define the release environment build software releases on different

architectures and compilers in a homogeneous manner

define common rules used in the GNUmakefilesDB setup, schemas, libraries, binaries, docs, tests

provide utilities to control and make easier the release process in a distributed environmentimportrel, importver, updrel, rmrel, auditrel, statusrel,

listtag, ...

September 29th, 1999 Software Processes in BaBar - G.Cosmo

11

LHC Computing Workshop - Marseille (France)

Packages

Package: a logical collection of classes/functions

providing a set of services and performing a well defined task (Booch Category)

Maintained as a separate CVS module Contains: code, docs, a GNUmakefile, scripts… A package coordinator (or more) is responsible

for:the package development and testingtagging and announcing the package for the release

September 29th, 1999 Software Processes in BaBar - G.Cosmo

12

LHC Computing Workshop - Marseille (France)

Versioning and Tagging

CVS is used for versioningFixed tag format, i.e. V01-25-08[-02]Tags are also used as names of subdirectoriesA tag can survive to more than one release

until a new tag is announcedRequest for creation of a new package must

take place some time before the scheduled release, specifying: tag, coordinator, README file

September 29th, 1999 Software Processes in BaBar - G.Cosmo

13

LHC Computing Workshop - Marseille (France)

The BaBar Software Directory tree

Access to CVS modules can be controlled via AFS ACLs if required. Package coordinators are notified automatically when new code is checked in.

September 29th, 1999 Software Processes in BaBar - G.Cosmo

14

LHC Computing Workshop - Marseille (France)

A Release in BaBarA snapshot of a consistent set of package versions

(online, offline, utilities, scripts, makefiles, …) a general rule: never use the CVS HEAD !

It includes libraries and binaries for each BaBar supported platform more than 300 libraries and 80 executables

Built every two weeks. Indexed by a release number i.e. - release 8.2.7

Test Release - a successful buildCurrent or Production Release - a stable tested

releaseNewest Release - the last available release

September 29th, 1999 Software Processes in BaBar - G.Cosmo

15

LHC Computing Workshop - Marseille (France)

Release: the Working Model - 1

Package coordinators release their package by testing, committing, tagging and announcing their code for a release and/or nightly build Automated system based on Web, HyperNews and BFMAIL

Nightly builds start automatically each night on all supported platforms, collecting all announced tags. problems are automatically posted to the PC the day after

Every two weeks, at the scheduled day & time, all tags are collected and the release process starts Problems are automatically posted to the PC the day after A summary of the build is posted together with notes by

the Release Coordinator

September 29th, 1999 Software Processes in BaBar - G.Cosmo

16

LHC Computing Workshop - Marseille (France)

Release: the Working Model - 2

Automated testing based on specific tests provided by the package

coordinators can be run automatically at release stage output compared to supplied reference

Error from all release stages are automatically posted to package coordinators problems not fixed are “gently” reminded every 7 days

by the BaBar Problem Tracking System

Outside release builds, bug reporting and tracking is controlled through Remedy ARWeb based on ORACLE

September 29th, 1999 Software Processes in BaBar - G.Cosmo

17

LHC Computing Workshop - Marseille (France)

The User Environment - 1

SRT requires few environment variables and entries in $PATH and $MANPATH variables

Automatically set via centralized HEPiX scripts

Test Release - the user copy of the original release structure for a specific version newrel, addpkg bin, lib, tmp, shlib, shtmp, doc, test,

GNUmakefile

September 29th, 1999 Software Processes in BaBar - G.Cosmo

18

LHC Computing Workshop - Marseille (France)

The User Environment -2

Only packages added in the Test Release are built

The final executable is linked against libraries of Test Release and the correspondent SRT release

The user can add any version of a package example: addpkg L3Trigger V00-03-11

SRT’s rules can be extended for a given package custom rules/targets in the package GNUmakefile keep the SRT’s standard GNUmakefile body

September 29th, 1999 Software Processes in BaBar - G.Cosmo

19

LHC Computing Workshop - Marseille (France)

Tools: Workdir

It’s a (simple) package Includes a “special” GNUmakefile integrated in

the SRT environmentAllows to the user to run applications from

every area (even outside the user Test Release)

Ability to choose in a flexible way the release (or Test Release) to which refer to

Creates automatically links to major scripts

September 29th, 1999 Software Processes in BaBar - G.Cosmo

20

LHC Computing Workshop - Marseille (France)

Tools: PackageList It’s a package !Contains information pertaining to every

package which is part of the BaBar software release system example: PACKAGELIST += L1Sim ifneq ($(LINK_L1Sim),) override LOADLIBES += -lL1Sim -include L1Sim/link_L1Sim.mk endif

Requires a file link_$PACKAGE.mk in each package specifying its dependencies over other packages creation can be automated

Objective: define a standard link orderRelies on good consciousness of the developer

September 29th, 1999 Software Processes in BaBar - G.Cosmo

21

LHC Computing Workshop - Marseille (France)

The BaBar Application Framework - 1

It’s a package ! developed by D.Quarrie

Implements a Modular approach a module is a fragment of executable code which has well-

defined interfaces and perform a well-defined service modules are totally independent each other, have their own

configuration and data-taking run specific information each module provides an interface to the Framework which

includes a unique name and functions to be called at the beginning/end of the job, data-taking run, event modifier

September 29th, 1999 Software Processes in BaBar - G.Cosmo

22

LHC Computing Workshop - Marseille (France)

The BaBar Application Framework - 2

Modules are associated into Sequences a sequence of modules is a list of one or more modules

executed in the order they appear the order of execution and the messaging of input run-

time parameters for each module are controlled by Tcl scripts

the event is the central data-structure and is designed to be an “object dictionary”

other concepts: path, output stream, processor

Automatic regression-testing of a single framework package integrated in the system

September 29th, 1999 Software Processes in BaBar - G.Cosmo

23

LHC Computing Workshop - Marseille (France)

Conclusions -1

OO Methodology (UML) Training and tutorials for developers

CASE tools for analysis and design of software units

QA tools integrated in the software environment available for daily software development

Use of WWW and BFMAIL documentation & communication

(user/developer) automated release mechanism

September 29th, 1999 Software Processes in BaBar - G.Cosmo

24

LHC Computing Workshop - Marseille (France)

Conclusions - 2

SRT+CVS+HyperNews a working combination of products for Software

Processes in a distributed environment of a modern HEP experiment

SRT: originally developed in BaBar, now adopted and constantly customized by more and more experiments world-wide: FNAL, ATLAS, CMS, CDF, D0, BTeV requires an effort and a certain degree of responsibility

by the user (Package Coordinator) to achieve the best use offers a flexible and efficient user environment can be easily extended with new tools

September 29th, 1999 Software Processes in BaBar - G.Cosmo

25

LHC Computing Workshop - Marseille (France)Sometimes, no matter how hard you work, you

can’t meet management’s objectives