New Wave of Component Reuse with Spring Framework - AP Case Study
G.Kruk, J.P.Wozniak*, S.Deghaye, V.Baggiolini (CERN)
The myth of component reuse has always been a 'holy grail' of software engineering. The motivation varies from less time, effort and money expenditure to higher system quality and reliability which is especially important in the domain of high energy physics and accelerator controls. Identified as an issue by D. McIlroy in 1968, it has been generally addressed in many ways with various success rates. But only recently with the advent of fresh ideas like the Spring Framework with its powerful yet simple 'Inversion of Control ' paradigm the solution to the problem has started to be surprisingly uncomplicated. Gathered over years of experience this document explains best practices and lessons learned applied at CERN for the design of the operational software used to control the accelerator complex and focuses on features of the Spring Framework that render the component reuse achievable in practice. It also provides real life use cases of mission-critical control systems developed by the Application Section like LHC Software Architecture, Injector Control Architecture or Software Interlock System that have built their own success mostly upon a stack of reusable software components.