Back to Top


  • Systems Engineering & Engineering
    Systems Engineering & Engineering

This two-day course provides an overview of NASA’s software requirements, software development processes, improvement methods, and metrics. Course attendees will gain an understanding of what is expected of individuals involved in software development and/or acquisition at NASA. Additionally, attendees will come to understand why NASA uses established practices, procedures, and standards in software engineering projects. Finally, course participants will acquire the fundamental knowledge needed for follow-on courses designed to demonstrate how to respond to software engineering challenges.

This course is designed for managers, systems engineers, IT personnel, and others needing an understanding of software engineering as it is practiced within NASA. This course will be particularly useful for anyone who needs an introduction to the software engineering discipline: new hires, interns, project managers, system engineers, and those in the early stages of their software development careers. This course will also be useful for any personnel developing software in any domain and for personnel responsible for integrating software into a system or systems.

APPEL Library Resource

NASA Galaxie Library NASA Galaxie Library
All supplemental resources are NASA accessible only unless otherwise noted.

Upon completion of this course, participants will be able to:

  • Explain software's role in and importance to NASA programs.
  • Properly interpret and apply NASA software engineering policies, requirements, templates, tools, checklists, and guidelines.
  • Recognize and respond to early warning signs from software measurement data analysis and use results for effective decision making.
  • Formulate pertinent software measurements and reporting for senior management.
  • Explain the relationship between software development lifecycle phases and the project development lifecycle.
  • Identify the requirements for and the best practices of each phase in the software development lifecycle.
  • Describe methods to build good software products.
  • Describe the importance of software engineering support activities such as software configuration management, software assurance, software independent Verification and Validation, software cost estimations, software risks, and software acquisition.