CSC2003 Programme Track Description



ST: Software Technologies

Patricia P.MacBride, Pere Mato

Description This track presents modern techniques for software design and modern tools and technologies for understanding and improving existing software. The emphasis will be placed on the large software projects and large executables that are common in HEP. The track will consist of lectures, exercises and discussions. The first discussion session will occur after several hours of exercises have been completed. The last discussion session will be held at the end of the track.

The first 2 lectures cover a series of tools and techniques which will be exemplified during the initial series of exercises. This will be followed later in the week by 3 lectures on software engineering, design, methodology and testing. The second series of three lectures will address issues when working with large software systems, including methods for analyzing their structure and improving it. The final 3 lectures will focus on a number of technologies that are relevant and commonly used for building interactive and distributed applications.

In the exercise sessions, the students will have a chance to use the tools that are described in the lectures. They will work with CVS and configuration management tools. They will be asked to use the test and debugging tools on some simple examples. By showing how these tools can locate known problems, students will learn how to use them on new problems. Students will then be given a functional program and a brief description of what it does. The goal is to extend the program to handle a larger problem domain. It is expected that the example programs and exercises will be primarily in C++. In the final exercise sessions, the students will practice the new technologies introduced with examples. For these exercises the Python language will be used.


Lectures Tools and Techniques B.Jacobsen 2
  ST-TT-L_1 Tools
  ST-TT-L_2 Techniques
System Analysis P.Tonella 3
  ST_AS_L_1 Object oriented programming with Java and C++
  ST_AS_L_2 Re-factoring
  ST_AS_L_3  C++ code analysis and verification of coding conventions
Software Engineering B.Jacobsen 3
  ST_SE_L_1 Introduction to Software Engineering
  ST_SE_L_2 Software Design
  ST_SE_L_3 Long-term Issues of Software Building
Technologies for Interactive & distributed computing Andreas Pfeiffer 3
  ST_IC_L_1 Python scripting language
  ST_IC_L_2  XML and related technologies (XSLT, ...)
  ST_IC_L_2 Distributed computing technologies and protocols (SOAP, XMLRPC, Web services, ...)




Tools and Techniques B.Jacobsen 4
System Analysis P.Tonella 2
Technologies for interactive & distributed computing Andreas Pfeiffer 2




Total hours   19

 Italics: Optional lectures 

Last edited: 26-May-03 .