NASA's Jet Propulsion Laboratory has embarked on the Mission Data System (MDS) project to produce a reusable, integrated flight and ground software architecture. This architecture will then be adapted by future JPL planetary projects to form the basis of their flight and ground software. The architecture is based on identifying the states of the system under consideration. States include aspects of the system that must be controlled to accomplish mission objectives, as well as aspects that are uncontrollable but must be known. The architecture identifies methods to measure, estimate, model, and control some of these states. Some states are controlled by goals, and the natural hierarchy of the system is employed by recursively elaborating goals until primitive control actions are reached. Fault tolerance emerges naturally from this architecture. Failures are detected as discrepancies between state estimates and model-based predictions of state. Fault responses are handled either by re-elaboration of goals, or by failures of goals invoking re-elaboration at higher levels. Failure modes are modelled as possible behaviors of the system, with corresponding state estimation processes. Architectural patterns are defined for concepts such as states, goals, and measurements. Aspects of state are captured in a state-analysis database. Unified Modelling Language (UML) is used to capture mission requirements as Use Cases and Scenarios. Application of the state-based concepts to specific states is also captured in UML, achieving architectural consistency by adapting base classes for all architectural patterns. Within the Guidance, Navigation and Control domain of MDS, work has focussed in three areas: (1.) Re-engineering and re-implementation of legacy Navigation systems within an object-oriented structure that is reusable from mission to mission and common between flight and ground systems; (2.) Identification of states and mission activities which are common across multiple missions; (3.) Exploitation of commonality between Attitude Control and Navigation functions, which have historically been separated in previous JPL missions. These areas will be demonstrated on a simulated reference spacecraft and mission and then adapted by customer missions. Early deliveries will have levels of autonomy similar to existing JPL spacecraft, in order to demonstrate the applicability of the state-based concepts. This architecture should greatly simplify the implementation of existing levels of autonomy and should support significantly increased autonomy in future deliveries. Studies are ongoing to determine the mission requirements for highly integrated attitude and trajectory control functions, leading eventually to "6-degrees-of-freedom" control. These functions will eventually be implemented within the MDS architecture. The first customer mission is Europa Orbiter, to be followed by Pluto/Kuiper and Solar Probe. Discussions are also ongoing to adapt MDS for the Space Interferometry Mission and for control of the Deep Space Network. First prototype demonstration of a simple detumble capability was demonstrated in November 1999. As of December, 1999, work was being done on the next increment, controlling attitude to bring the Sun into the Sun-sensor field-of-view. Subsequent deliveries will include increasing capability leading to a delivery to the Europa Orbiter project in Nov. 2001.