Getting Started | Documentation | Glish | Learn More | Programming | Contact Us |
Version 1.9 Build 1556 |
|
AIPS++ (Astronomical Information Processing System) is a project that is being developed by seven radio astronomical observatories to provide a new generation software package for the reduction and analysis of astronomical data. General information on the goals of the project, and reasons for its creation are described in [#!croes:aips!#].
AIPS++ is following in the footstep of its very successful (and still active) predecessor, AIPS (Astronomical Image Processing System, also known as Classic AIPS). AIPS is described in [#!bg:AIPS!#].
A persistent, and correct, criticism of the AIPS++ project is that it has inadequately expressed its design in written form. This document, along with companion documents which are also under preparation, is intended to address this criticism. To be useful to the project in a continuing fashion, these documents need to be maintained -- they must not merely be a snapshot. It thus behooves both AIPS++ management and readers of this document to be vigilant in noting when this document, or its evolutionary successors, needs updating.
The goal of this document, then, is to summarize the design of the major subsystems of AIPS++ software. Where more detailed companion documents exist, the discussion in this document might be brief. In particular, the discussion of interferometric and single dish calibration and imaging is very abbreviated here.
The presented designs generally omit the many necessary complications of real implementations. Also not included are descriptions of important utility classes which are used in the system such as strings and associative arrays (also known as ``maps'' or ``dictionaries''). Also not generally described are mid-level classes used to implement the design, such as classes for operations like gridding. Generally, the class reference documentation should be consulted for this information.
This document is presently one person's view of the work of many people. This document should evolve into a more collaborative document with time. Until then, perhaps the uniform view of a single individual will help make up for lapses in perspective.
The opinions and ideas of readers of this document are actively solicited, and should be sent either directly to the author or to an appropriate email reflector.
This document is informally written in English text, rather than using a more formal methodology. The diagrams are composed with the notation described in [#!rumbaugh:oo!#]. While it would be useful to read that book, it might suffice to note that classes are in boxes, and that inheritance relationships have triangles between the base and derived classes with the point of the triangle pointing to the base class. Other connections denote ``uses'' or ``has'' relationships. Very important member functions or instance variables might be shown in the class box, however the figures are mostly intended to convey inter-class relationships.
The reader who wants to trace the evolution of ideas in presented in this paper should consult [#!hg:design!#].