Programming environment for software development

Software Group

Not surprisingly, efficient software is essential to all parts of observational astronomy, from the control of the telescope/observatory and instruments to the preparation and planning of observations to the extraction, analysis and storage of the data output. The UK ATC Software Engineering Group, consisting of about a dozen staff, has experience in all these areas and is well versed in working on multi-disciplinary or software only projects, in collaborative / distributed teams and in managing such projects. Because of their broad experience, our Software engineers tend to have also developed excellent systems analysis and trouble-shooting skills.

Recent and Current Key projects include:

ALMA (Atacama Large Millimeter Array):Software for Proposal and Observing Preparation. A key aim is to provide science-goal based interfaces for those inexperienced with aperture synthesis telescopes, but to also support experts in the area who develop new observing modes. Also a large contribution to the online pipeline reduction system.

VISTA and VISTA-IR Camera: Applying the ESO VLT software system to a new survey telescope and instrument.

SCUBA2:A challenging sub-millimetre bolometer array for the JCMT, providing software covering the whole observing lifecycle.

JWST MIRI: Instrument modeling producing simulated datasets for this exciting instrument;

Ultracam: A novel approach to detector acquisition making use of industry standards and creating a flexible acquisition system already re-used in a number of different instruments.

Gemini Phase 2 Instrument Studies: For both PRVS and WFMOS we have key roles on the Data Pipeline design.

Head of Group

Alan Bridger

Group Domain/Skills

  • developing the astronomer's interface to the system, tools that prepare proposals and observing descriptions, via an efficient, friendly, graphical interface that emphasises the science goals;
  • modeling instrument and system performance, and production of simulated data;
  • the observer's interface to the system, used to execute the observing descriptions, again, user friendly and designed for efficient observing;
  • the automatic co-ordination, at a high level, of other software sub-systems;
  • the control of instrument mechanisms, via motors, switches and electronic sub-systems;
  • software to perform rapid data acquisition from custom or standard input/output controllers;
  • complex processing of acquired data, often in an online pipeline, to present datasets free of instrumental effects;
  • the monitoring of the whole system, summarising status to the observers;
  • efficient handling of large data volumes

Deployment

  • Unix-based host computers (mostly Linux);
  • real-time operating systems, e.g. Windriver's VxWorks or a real-time Linux variant.
  • Portable user-interfaces, with Windows and MacOS X also supported.

Key Technical Skills

  • Objected-oriented analysis and design, tempered by appropriate use of structured techniques where sensible
  • Unified Modelling Language
  • Extensive concurrent software experience
  • C/C++ for control and data acquisition
  • Java for high level software and user interfaces
  • Tcl/Tk, perl and Python for scripting and user interfaces
  • "Software environments", or framework software to build the large complex systems needed for astronomical applications. Key frameworks in use are EPICS, Drama, ESO CCS, ALMA Common software, CORBA.
  • XML is used extensively for data exchange
  • Industry standard protocols such as HTTP for communications, as well as a number of bespoke protocols.
  • wide systems knowledge acquired through much experience working on multi-disciplinary projects. This skill is used throughout the project lifecycle and is of key importance in troubleshooting the integration and test phase.