The BE-CSS Software Engineering Technologies (SET) section is responsible for providing support, guidance and consulting, both within the CSS group and towards the larger ATS software developer community, for the Java & Python programming languages, together with tools and technologies needed throughout the software engineering lifecycle.
SET is responsible for selecting and providing appropriate distributions for the core control system programming languages (Java & Python) over time, planning their adoption and phase out, in function of the ATS needs, the accelerator schedule and external constraints such as end-of-life dates. Similarly, SET coordinates the upgrade of common 3rd-party libraries to ensure that in-house software evolves in a coherent manner and remains up-to-date with mainstream industry standards.
To facilitate and support modern software development workflows, SET evaluates, selects, configures and maintains 3rd-party tools to cover all aspects of software development. These include, but are not limited to: build and deployment tools, binary repositories, code search facilities, quality assurance utilities, issue tracking and documentation platforms. In cases where industry-standard solutions are not sufficient, SET may provide in-house extensions or custom developments to cover the needs of the control system developer community.
A fundamental activity undertaken by SET is to provide support to ATS software teams (both inside and outside the CSS group), by understanding their various needs and providing consulting upon the use of available tools, workflows and best practices. In certain cases, this may translate to practical assistance to overcome configuration or development hurdles. Through this process, SET aims to streamline the practices followed by the various development teams, aligning to industry standards wherever possible, but without imposing a single global approach. In order to share news, knowledge and experience amongst the ATS software development community, SET organises regular user meetings for the programming languages that it supports.