What are the contributions of NASA in the advancement of software engineering? What are the relevant standards that they have to comply with? I'm interested in avionics basically, but I don't find any current information about NASA's contributions in software engineering... can any one help me to do so?
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.
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.
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.