Lectures at the Advanced Programming Concepts School, 2025

DESY, Hamburg, Germany, 2-6 June 2025 - School web site

Introduction to the Software Development Process

This brief introduction illustrates basic concepts of the software development process. It is propaedeutic to the following topics.

Lecture

Testing

This lecture introduces a few basic concepts of software testing, with special emphasis on unit testing.
Unit testing is a fundamental component of the refactoring process; it is applied in the hands-on exercise included in the APC school programme.

Lecture

Refactoring

Refactoring is a disciplined technique for restructuring an existing body of code, improving its internal structure without changing its external behaviour.
This lecture summarizes the basic concepts and techniques of refactoring.

Lecture

Exercise: refactoring and unit testing

The students are kindly asked to install the required software on their laptops BEFORE the scheduled Refactoring Exercise.

The hands-on exercise is based on the "Video Store Example", described in Chapter 1 of M. Fowler's Refactoring book, 1999 ed.

Overview
Online guidance for the exercise


References for further study


M.G. Pia, 2025