  The Pierre Auger Observatory is designed to unveil the nature and the origins
of the highest energy cosmic rays. The large and geographically dispersed
collaboration of physicists and the wide-ranging collection of simulation and
reconstruction tasks pose some special challenges for the offline analysis
software. We have designed and implemented a general purpose framework which
allows collaborators to contribute algorithms and sequencing instructions to
build up the variety of applications they require. The framework includes
machinery to manage these user codes, to organize the abundance of
user-contributed configuration files, to facilitate multi-format file handling,
and to provide access to event and time-dependent detector information which
can reside in various data sources. A number of utilities are also provided,
including a novel geometry package which allows manipulation of abstract
geometrical objects independent of coordinate system choice. The framework is
implemented in C++, and takes advantage of object oriented design and common
open source tools, while keeping the user side simple enough for C++ novices to
learn in a reasonable time. The distribution system incorporates unit and
acceptance testing in order to support rapid development of both the core
framework and contributed user code.
