External Libraries
The common software provides and integrates also external class libraries
to solve common development problems. Some of these libraries are described
in this section, but libraries are added upon request from the subsystems.
A list of libraries has to be compiled and standard off-the-shelf libraries
should be used whenever possible, eventually with a small wrap around to make
them uniform with the rest of the system.
Libraries and application frameworks developed by other teams (Control System,
Correlator, Data Flow, Archiving…) and recognized as of general use will have
to be integrated in the Common Software kernel. Input is required in these areas.
Packaging all these libraries, even if off-the-shelf, in the ACS distribution
ensures that all sites involved in the project have the same version of the
packages and that they are built and installed with the same options.
Depending on the specific licensing agreements for developments external to
ALMA, such libraries will be publicly available with each ACS installation package
or only for specific ALMA internal packages where the library is actually used
according to the agreed license.
Some libraries provided with ACS
- FITS package is made available for the handling of standard file formats
(FITS files) [RD01 - 7.2.1 FITS].
- Mathematical libraries (Fats, Fitting) [RD01
- 5.3.2 Mathematics], units conversion and handling (based on the AIPS++
unit management classes)
- Plotting tools [RD45 - EVLA Engineering
Software Requirements, 4 Plotting][RD46
- EVLA Array Operations Software Requirments, 3.5 Plotting].
An advanced java class library for plotting and charts [RD47
- JFreeChart] is integrated in ACS as described in the User Interface
Libraries and Tools section.
A Python library for plotting is also included to allow plotting from scripting
language [RD48 - Matplotlib]. These
are the building block for the implementation of a generic plotting tool a
required in [RD45][RD46].
We plan to use already available tools built on top of these libraries, with
minimal customization.
- Analysis tools [RD45 - EVLA Engineering
Software Requirements, 5 Analysis]
Python numerical and mathematical libraries are integrated in ACS (see [RD48
- Matplotlib] and the family of related packages). AIPS++ is also available
in ACS distributions and interoperable with ACS. These are all the building
block needed to write analysis tools easily accessible to engineers and operators.
We consider Python the best of the supported languages to provide such features,
since users can develop easily own applications build on top of a basic framework.
- Documentation tools [RD45 - EVLA
Engineering Software Requirements, 5 Documentation and Help][RD46
- EVLA Array Operations Software Requirments, 1.4 Online Help]. See also
GUI section for online and context sensitive help/documentation from applications.
ACS integrates tools to automatically produce architecture, design and code
documentation in the various languages. The documentation is web-based and
follows the standards defined by Software Engineering.
Java user interfaces will rely on standard Java documentation tools.
ACS Logging System, Error System and Alarm System include features specifically
designed to provide online documentation (see respective sections).