2
$\begingroup$

What are the contribution of NASA in the advancement of software engineering? What are the relevant standards that they have to comply? I'm intersted in avionics basically but i dont found any current information about the NASA contributions in software engineering... can any one help me to do so??

$\endgroup$
4
$\begingroup$

NASA was (and still is) a leading organization in the field of software engineering, even before the term "software engineering" existed. The kinds of software programs developed for NASA range from one-off scripts / spreadsheets meant to yield a rough approximation to a specific engineering question to programs / scripts / spreadsheets that contain sensitive but unclassified information (e.g., Social Security numbers) to flight software for vehicles that will carry humans into space.

NASA recognizes that the level of rigor and the level of data protection varies widely across the software developed for it. Some software such as a spreadsheet intended to yield a rough estimate of the delta V needed to get to Mars needs very little rigor or protection. The intent is a rough approximation, and there is no sensitive but unclassified data to protect. On the flip side, the flight software that controls a vehicle that carries humans into space and that captures astronaut health data needs both extreme rigor and extreme data protection.

To this end, NASA has several guidelines and requirements regarding how a person or organization must craft software. Software of the highest criticality needs to follow the rather onerous rules for class A software as levied in NASA Procedural Requirements 7150.2. Strictly speaking, all software written for NASA has to follow the rules levied in that document. Not so strictly speaking, notes written in crayon on a bar napkin whilst at a late Friday afternoon get-together at an offsite location (e.g. a non-NASA facility that serves intoxicating beverages) might well suffice regarding the previously mentioned rough spreadsheet.

$\endgroup$
0
$\begingroup$

Margaret Hamilton, the woman who coined the term software engineering, did so while being Director of the Software Engineering Division of the MIT Instrumentation Laboratory, which developed on-board flight software for the Apollo space program.

$\endgroup$
  • $\begingroup$ How could she have coined the term while being Director of the term? $\endgroup$ – JCRM Apr 28 at 18:28
  • $\begingroup$ @JCRM I'm speculating, but it's not unusual for someone tasked with creating a new department to have a hand in choosing the department's name. $\endgroup$ – Wayne Conrad Apr 28 at 20:30
  • $\begingroup$ @JCRM Read the linked article. :-) $\endgroup$ – Martin Schröder Apr 28 at 20:42
  • $\begingroup$ I've read it. Nothing to suggest she coined the term while being the Director -- only that she coined the term while working at MIT, and that she [amongst other roles] was Director of Software Engineering at MIT. Also There is a [dubious] tag on her coming up with the term. $\endgroup$ – JCRM Apr 28 at 21:42
0
$\begingroup$

Your question is very broad, since software is so important to everything NASA does. But I will try to answer to the best of my abilities.

NASA has a rich history of advancing the state of software engineering. In fact, as Martin Schroder noted, Margaret Hamilton, a legendary Apollo program flight software engineer, coined the term "software engineer". NASA has paved the way in writing efficient, reliable, and well-tested code. Take a look at this paper, "Design, Development, Integration: SpaceShuttle PrimaryFlightSoftware System". In it, a rigorous testing and development process is detailed for the space shuttle flight software. Throughout the years software engineers at NASA have developed increasingly reliable techniques for flight software development and IV&V testing. Here is a great paper providing an overview of the MER flight software.

I think above all, NASA's greatest contributions to the field of software engineering has been the amount of quality open-source software they have released. By simply going through code.nasa.gov, you get everything from the Trick simulation environment, to the astrobee software which is flying on the ISS right now. Here is the astrobee software publication. A personal favorite of mine is the release of the Core Flight System (CFS) that aims to create a common framework for spacecraft flight software. With it they created a community of flight software engineers to help advance the state-of-the-art in flight software.

$\endgroup$
  • 1
    $\begingroup$ thanks this seems to be very helpful for me. $\endgroup$ – zupash malik Apr 30 at 14:13
  • $\begingroup$ Happy to help. Feel free to ask me more questions. $\endgroup$ – esduran Apr 30 at 14:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.