in ArticlesResearch

The Core Flight System (cFS) is a platform and project independent reusable software framework and set of reusable software applications. There are three key aspects to the cFS architecture: a dynamic run-time environment, layered software, and a component based design. It is the combination of these key aspects that makes it suitable for reuse on any number of NASA flight projects and/or embedded software systems at a significant cost savings.

The cFS flight software framework takes advantage of a rich heritage of successful Goddard Space Flight Center flight software efforts and addresses the challenges of rapidly increasing software development costs and schedules due to the constant changes and advancements in hardware. Flight software size and complexity is expected to grow dramatically in coming years and the cFS provides a means to manage the growth and partition complexity. To support reuse and project independence, the architecture contains a configurable set of requirements and code. The configurable parameters allow the cFS to be tailored for each environment including desk-top and closed loop simulation environments. The ability to run and test software applications on a developer’s desktop and then deploy that same software without changes to the embedded system is now possible using the cFS. Science and mission software can be developed and functionally tested very early in the project and well before any project hardware is even available. The architecture contains a tool suite which includes a reusable test suite. In addition, the architecture contains reusable artifacts including requirements, design documentation, test procedures and results, development standards, and user guides. The cFS architecture simplifies the flight software development process by providing the underlying infrastructure and hosting a runtime environment for development of project/mission specific applications. The cFS architecture also simplifies the flight software maintenance process by providing the ability to change software components during development or in flight without having to restart or reboot the system. The cFS architecture has been proven to:

  • Reduce time to deploy high quality flight software
  • Reduce project schedule and cost uncertainty
  • Facilitate formalized software reuse
  • Enable collaboration across organizations
  • Simplify flight software sustaining engineering
  • Provide a platform for advanced concepts and prototyping
  • Provide common standards and tools across Goddard’s missions and NASA wide