3 ms·
Just for context, these aren’t really “rules” as much as proposed practices. Note that official “rules” are in documents with names like “NPR” aka “NASA procedu
by bumby 2y ago
Just for context, these aren’t really “rules” as much as proposed practices. Note that official “rules” are in documents with names like “NPR” aka “NASA procedural requirements.”[1] So, while someone may use the document in the featured article to frame a discussion, a developer is not bound to comply (or alternatively waive) those “rules” and could conceivably just dismiss them.
[1] e.g. https://nodis3.gsfc.nasa.gov/displayDir.cfm?t=NPR&c=7150&s=2D https://nodis3.gsfc.nasa.gov/displayDir.cfm?t=NPR&c=7150&s=2...
- westurner 2y agoawesome-safety-critical lists a number of specs: https://awesome-safety-critical.readthedocs.io/en/latest/#software-safety-standards https://awesome-safety-critical.readthedocs.io/en/latest/#so...
- bumby 2y agoJust be aware that some of the NASA-specific ones fall into a similar category. NASA “guidebooks” and “handbooks” aren’t generally hard requirements.
- westurner 2y agoFrom "The state of Rust trying to catch up with Ada [video]" https://news.ycombinator.com/item?id=43007013 https://news.ycombinator.com/item?id=43007013 : >> The MISRA guidelines for Rust are expected to be released soon but at the earliest at Embedded World 2025. This guideline will not be a list of Do’s and Don’ts for Rust code but rather a comparison with the C guidelines and if/how they are applicable to Rust /? Misra rust guidelines: - This is a different MISRA C for Rust project: https://github.com/PolySync/misra-rust https://github.com/PolySync/misra-rust - "Bringing Rust to Safety-Critical Systems in Space" (2024) https://arxiv.org/abs/2405.18135v1 https://arxiv.org/abs/2405.18135v1 ... > minimum of two assertions per function. Which guidelines say "you must do runtime type and value checking" of every argument at the top of every function? The SEI CERT C Guidelines are far more comprehensive than the OT 10 rules TBH: "SEI CERT C Coding Standard" https://wiki.sei.cmu.edu/confluence/plugins/servlet/mobile?contentId=87152044#content/view/87152044 https://wiki.sei.cmu.edu/confluence/plugins/servlet/mobile?c... "CWE CATEGORY: SEI CERT C Coding Standard - Guidelines 08. Memory Management (MEM)" https://cwe.mitre.org/data/definitions/1162.html https://cwe.mitre.org/data/definitions/1162.html
- bumby 2y agoSorry, I’m not following your point. When I said “NASA-specific” I meant those in your link like “NASA Software Engineering and Assurance Handbook” and “NASA C Style Guide” (emphasis mine). Those are not hard requirements in spaceflight unless explicitly defined as such in specific projects. Similarly, NASA spaceflight software does not generally get certified to FAA requirements etc. The larger point being, a NASA developer does not have to follow those requirements simply by the nature of doing NASA work. In other words, they are recommendations but not specifications.
- westurner 2y agoAre there SAST or linting tools to check that the code is compliant with the [agency] recommendations? Also important and not that difficult, formal design, implementation, and formal verification; "Formal methods only solve half my problems" https://news.ycombinator.com/item?id=31617335 https://news.ycombinator.com/item?id=31617335 "Why Don't People Use Formal Methods?" https://news.ycombinator.com/item?id=18965964 https://news.ycombinator.com/item?id=18965964 Formal Methods in Python; FizzBee, Nagini, deal-solver: https://news.ycombinator.com/item?id=39904256#39958582 https://news.ycombinator.com/item?id=39904256#39958582
- bumby 2y agoI’m not aware of any tools for analysis geared to NASA requirements specifically, but static analysis is a requirement for some types of development.
- westurner 2y agoWhy isn't there tooling to support these recommendations; why is there no automated verification? SAST and DAST tools can be run on_push with git post-receive hooks or before commit with pre commit. (GitOps; CI; DevOpsSec with Sec shifted left in the development process is DevSecOps)
- 2y ago