Maintaining the particle accelerators is CERN research laboratory requires a huge informatics infrastructure developed and maintained by hundreds of physicists and engineers. The number of the controls systems itself exceeds the thousand, which needs a big effort to operate. Since the uninterrupted operation of the whole system is a priority task, the developers' primary task is to ensure the smooth upgrades.
The softwares – apart from the hardware-related components – are primarily developed in pure Java language. The softwares define an API (for e.g. data acquisition, reliable messaging, directory service, etc.), which could be used by other applications. At development time the most important identified task to maintain binary backward compatibility between de dependent component and the upgraded software through the newer versions.
My primary goal is to examine, which techniques and tools are available to analise the dependency relationships between the softwares. I will investigate what type of dependencies are present in the systems, what properties do they have and how can one query them easily.
I will design and implement a tool, which is capable of querying and visualizing the dependencies integrated into the development environment. In addition I will examine what other methods are available for defining and discovering the dependencies, which could be useful for the developers' work.