Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re^2: Perl in space?

by jhourcle (Prior)
on Aug 26, 2010 at 14:03 UTC ( [id://857452]=note: print w/replies, xml ) Need Help??


in reply to Re: Perl in space?
in thread Perl in space?

NASA has this concept of "Tech Readiness Level", where you basically have to go through various levels of testing before use in flight. As I understand it, TRL applies to all technology (hardware, software, specific materials, etc.) There's then the "Software Safety Guidebook", which doesn't even mention Perl. (yet, they mention VisualBasic). ... but based on the criteria they use (strongly typed, compiled, etc), Perl is going to be a problem.

There are specific requirements for assessments of systems in the Software Assurance Standard, based on the classification of the systems:

  • Class A : Human Rated Software Systems
  • Class B : Non-Human Space Rated
  • Class C : Mission Support Software
  • Class D : Analysis and Distribution Software
  • Class E : Development Support Software:
  • Class F : General Purpose Computing Software (Multi-Center or Multi-Program/Project)
  • Class G : General Purpose Computing Software (Single Center or Project)
  • Class H : General Purpose Desktop Software

Class D and below are where you get descriptions qualified with :

A defect in Class D software may cause rework but has no direct impact on mission objectives or system safety

I know there's Class D software written in Perl. (I've written some of it.) It's likely that Perl will *never* be in use in Class A or B. I also know of some Class C software out there that's written in Perl (stuff to retrieve and merge various documents for mission planners, and some client/socket software to obtain a secondary science product from ground stations and process them), but I don't know how common it is, as I don't work in mission operations or science operations; I fall under science analysis.

...

Now, this sounding rocket ... I'm guessing it'd be either Class B or C (depending if it was being used for a primary or secondary mission objective), but as it's not a long-lived mission, doesn't need to be a high TRL; this could've just been considered a prototype.

Replies are listed 'Best First'.
Re^3: Perl in space?
by Dr. Zowie (Sexton) on Aug 26, 2010 at 15:48 UTC
    The software was a Class B application.

    We used about 200-500 lines of not particularly dense Perl (with "use strict" and "use warnings" of course) to handle command inputs (limited to bits set and cleared in a single command word -- this is, after all, a sounding rocket) and change instrument mode. Primary functionality was handled with code written in "C" to acquire data from the onboard cameras, control the mechanisms, and display telemetry over a realtime video feed. Individual functions were accessed from the UNIX command line interface.

    RAISE included three separate computers handling different aspects of the flight.

    The Perl daemons' role was to control instrument mode and process uplink commands, by monitoring running processes and launching new tasks as necessary. Pretty vanilla IPC and task management stuff, except that it was being used in a mission critical context (admittedly, in a sounding rocket rather than a deep space mission). This is important because it might be seen as advancing Perl to NASA's TRL 8 or 9 for certain applications.

Re^3: Perl in space?
by dHarry (Abbot) on Aug 26, 2010 at 15:14 UTC

    Thanks for your response, very interesting. Let's compare a little bit. (Taken from a PA document, a possible SW criticality categorization is... (our standards can be tailored in most cases).

    Category Definition --------------------------------------------------------------------- A Software that if not executed, or if not correctly executed, or whose anomalous behaviour can cause or contribute to a system failure resulting in: -> Catastrophic consequences --------------------------------------------------------------------- B Software that if not executed, or if not correctly executed, or whose anomalous behaviour can cause or contribute to a system failure resulting in: -> Critical consequences --------------------------------------------------------------------- C Software that if not executed, or if not correctly executed, or whose anomalous behaviour can cause or contribute to a system failure resulting in: -> Major consequences --------------------------------------------------------------------- D Software that if not executed, or if not correctly executed, or whose anomalous behaviour can cause or contribute to a system failure resulting in: -> Minor or Negligible consequences ---------------------------------------------------------------------

    I have written Perl for category D. I'm sure there is Perl category C around as well.

    Cheers

    Harry

      I really hate classification systems like that -- who's to decide what's major, minor, critical, etc?

      The NASA one's much more clear -- (A) : failure is likely to cause the loss of human life; (B) : failure is likely to cause the loss of a spacecraft or failure of the mission; (C) : failure is likely to cause the loss of a secondary mission objective; ... and everything after that's just an annoyance of some sort.

      Years ago, I wrote a trouble ticket system, and we had those sorts of terms, but I qualified then all ... it went from 'cosmetic issue' to 'the building is on fire', with steps in between for 'annoyance', 'can't get work done', 'multiple people can't get work done', 'the boss can't get work done', etc.

        I don't like the classification systemas too much myself but they do serve a purpose. E.g. in a selection process to make a decision or to justify an expensive code inspection etc. In defense of it I can say I provided a summary, of course everything is specified in detail;) For example "catastrophic" is described as:

        • Loss of life, life‐threatening or permanently disabling injury or occupational illness
        • Loss of an interfacing manned flight system
        • Severe detrimental environmental effects
        • Loss of launch site facilities
        • Loss of system
        So I think both standards are equally (un)clear;)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://857452]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others about the Monastery: (2)
As of 2024-04-19 18:44 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found