Introduction to the Track To start, we discuss some of the characteristics of software
projects for high energy physics, and some of the issues
that arise when people want to contribute to them. This
forms the framework for the Software Technologies Track. We
then continue with a brief introduction to software
engineering from the perspective of the individual
contributor, both as a formal process and how it actually
effects what you do.
Tools You Can Use
This lecture discusses several categories of tools &
techniques you can use to make yourself more productive and
effective. Continuous testing and documentation has proven
to be important in producing high quality work, but it's
often difficult to do; we discuss some available approaches.
Many problems require specific tools and techniques to solve
them effectively: We discuss the examples of performance
tuning and memory access problems.
Tools for Collaboration
HEP software is built by huge teams. How can this be done
effectively, while still giving people satisfying tasks to
perform?
This lecture discusses some of the technical approaches
used. Source control (e.g. CVS) is becoming common, so we
just skim over it's advantages and disadvantages to get to
the larger area of release control (e.g. CMT) and release
testing & distribution. We'll focus on why is this
considered a hard problem, and what are the current
techniques for dealing with it.
Software
Engineering Across the Project
Now that we've covered both individual and group work, we go
back to the software engineering topics of the first lecture
to see how these fit together. How does our individual work
effect the ability of the entire project to proceed? What
are tools and techniques that will improve both our
individual work, and out contributions to the whole?
We close with a summary of observations. |