Deep Space 1 (DS1) is the first deep-space mission of NASA's New Millennium technology validation program. The DS1 flight software will validate five autonomy technologies: 1) Planner/Scheduler, which receives ground or on-board requests for spacecraft activities and schedules them to resolve any resource conflicts or timing constraints; 2) Smart Executive, which expands planned activities into lower-level commands, deduces required hardware configurations or other actions, and provides detection and avoidance of constraint violations; 3) Mode Identification and Reconfiguration engine, which incorporates models of hardware and software behavior, detects discrepancies due to hardware or software failures, and requests recovery actions via the Smart Executive. 4) Autonomous Navigation, which determines the spacecraft trajectory from,images of asteroids against the celestial sphere, and autonomously adjusts the trajectory to reach the target asteroid or comet. 5) Beacon Monitoring, which uses radio carrier modification and telemetry summarization to simplify ground monitoring of spacecraft health. Integration of these technologies into the spacecraft flight software architecture has presented a number of system engineering challenges, Some of these technologies were developed in a research-oriented, non-realtime, artificial intelligence organizational culture while spacecraft software is typically developed in a strong real-time, algorithmically-oriented culture. The Navigation technology has been developed in a ground-based environment. Integration of these different cultures and mutual education of the software team has been achieved. An early rapid prototype of an existing spacecraft design proved very valuable in educating the team members and in working out the development process. One way or another, these technologies represent the behaviors of spacecraft hardware and software, and their interaction with the outside world. Each technologies, as well software typically used in embedded systems, is suitable for modeling different aspects of these behaviors. Selection and coordination of the various aspects of these models represented in each of the software areas has required development of new system engineering techniques. The DS1 software development is being performed on a very tight schedule for spacecraft development (2.5 years from inception to launch.) In order to get an early start in the absence of a well-defined spacecraft design and mission requirements, a scenario-driven spiral development methodology was chosen, with frequent incremental software integrations. This process has also served to coordinate the efforts of the disparate teams involved and to provide frequent checks of the design. The methodology has required the development of processes and products significantly different from the waterfall lifecycle more typical in spacecraft software development. The different software languages and platforms used in implementing the various parts of the flight software have required the development of tools to ensure consistency of messages between software components. These tools are now being extended to the ground command system to ensure consistency and to provide early integration of the ground and flight software systems.