Earlier quoted context omitted.
PLM I'm familiar with, though none of the ones I've seen seem to focus in any particular was on the requirements/specification end of the equation...
JAMA is a more recent one that's fairly modern feeling. I tried to get my company to get it but they didn't bit. (pricey)
Software Requirements Errors in Safety-Critical, Embedded Systems (1993) [pdf]
21–30 of 40 posts
Re: Software Requirements Errors in Safety-Critical, Embedded Systems (1993) [pdf]
#22Can anyone recommend any links/articles/books about the relationships between specification, implementation, testing, provability, TDD, BDD, etc.? I have been working on designing some software for improving the specifications process, and quickly realized that it's a very interconnected concept: the specification can be treated very formally, leading to things like BDD (behavior-driven development), but also to thin…
Design to specification can be handled using systems like DOORS or other requirements management software. There’s an interchange format (XML) that many of these support called ReqIF. If you look that up you’ll find an Eclipse based tool (RMF) that is free and let’s you see how linking between requirements and such can be done. I’ve not seen tracing attempted down to the code level though we did do tracing to the tes…
Re: Software Requirements Errors in Safety-Critical, Embedded Systems (1993) [pdf]
#23Earlier quoted context omitted.
Design to specification can be handled using systems like DOORS or other requirements management software. There’s an interchange format (XML) that many of these support called ReqIF. If you look that up you’ll find an Eclipse based tool (RMF) that is free and let’s you see how linking between requirements and such can be done. I’ve not seen tracing attempted down to the code level though we did do tracing to the tes…
Ah ha, this is exactly the kind of stuff that I knew must be out there, I but had to find it. Thank you, internet stranger!
Re: Software Requirements Errors in Safety-Critical, Embedded Systems (1993) [pdf]
#24Can't help but think we'd learn a lot if other industries were as mature in tracking these things as the safety critical ones.
Here you have people who are actually doing what you purport to be interested in (creating defect-free code) who have a great deal of experience and a great many insights from actually putting their code into avionics bays knowing that thousands of lives are depending upon it.
But they're not valley programmers. They skew older. Heck most of them don't even live in California. And they don't "get" what's so amazing about category theory as a programming paradigm so obviously they're morons. Plus they seem to be process-obsessed and that process ain't agile.
Maybe eventually the valley bros will rediscover most of what the Ada programmers already know.
Re: Software Requirements Errors in Safety-Critical, Embedded Systems (1993) [pdf]
#25Can't help but think we'd learn a lot if other industries were as mature in tracking these things as the safety critical ones.
I'm always surprised by how thoroughly uninterested the Haskell and Rust communities are in learning from the Ada/High Integrity Software community. Here you have people who are actually doing what you purport to be interested in (creating defect-free code) who have a great deal of experience and a great many insights from actually putting their code into avionics bays knowing that thousands of lives are depending up…
If you read the paper you would find that the VAST majority of issues were human communication or understanding of the problem. No programming language can fix that.
Rust was started with one overriding goal: make programming on Firefox manageable. And they identified a primary problem: uncontrolled sharing. And they killed it: Rust disallows sharing by default. Everything else in Rust stems from that. "category theory" or any other academic CS is used when it helps the primary mission--otherwise it gets deferred.
> Maybe eventually the valley bros will rediscover most of what the Ada programmers already know.
And yet Ada exists practically nowhere that requires timely deliverables. Funny that.
Much like Lisp, if Ada were such a force multiplier, there would be someone who would use it to make lots of money.
Re: Software Requirements Errors in Safety-Critical, Embedded Systems (1993) [pdf]
#26Earlier quoted context omitted.
I'm always surprised by how thoroughly uninterested the Haskell and Rust communities are in learning from the Ada/High Integrity Software community. Here you have people who are actually doing what you purport to be interested in (creating defect-free code) who have a great deal of experience and a great many insights from actually putting their code into avionics bays knowing that thousands of lives are depending up…
> I'm always surprised by how thoroughly uninterested the Haskell and Rust communities are in learning from the Ada/High Integrity Software community. If you read the paper you would find that the VAST majority of issues were human communication or understanding of the problem. No programming language can fix that. Rust was started with one overriding goal: make programming on Firefox manageable. And they identified…
It's true that High Integrity development is not compatible with deadline or budget driven projects.
But there is a lot to learn from the High Integrity community and I think it's a shame that people who claim to be interested in making software more reliable ignore a community with decades of experience doing just that.
Re: Software Requirements Errors in Safety-Critical, Embedded Systems (1993) [pdf]
#27Earlier quoted context omitted.
> I'm always surprised by how thoroughly uninterested the Haskell and Rust communities are in learning from the Ada/High Integrity Software community. If you read the paper you would find that the VAST majority of issues were human communication or understanding of the problem. No programming language can fix that. Rust was started with one overriding goal: make programming on Firefox manageable. And they identified…
A few years ago, AdaCore's Robert Dewar observed that nobody has ever been killed by a flaw in Avonics software. That's perhaps not a good elevator pitch for a hockey stick startup but it's a good testament to the capabilities and skills of the people in the High Integrity community. It's true that High Integrity development is not compatible with deadline or budget driven projects. But there is a lot to learn from t…
While that may be technically correct, I would consider the crash of Air France Flight 447 to be partially an avionics software failure.
Responding to an inconsistent airspeed measurement by disconnecting the autopilot and then dropping into a weird, modal operating state (alternate law) and throwing control over to the very surprised humans counts as a software failure in my book. Having a stall warning that tells you to do the wrong thing is a software failure in my book (the stall warning turned off when inputs were invalid, but then turned back on when the pilots actually made the correct maneuvers because the inputs weren't invalid anymore).
While ultimately the failure for that flight was human error, a smart reaction by the software at any point would have prevented that tragedy. The biggest "smart reaction" would have been to flag the invalid airspeed to humans but don't change anything.
Whoever thought that dropping a suddenly dynamic system into the hands of surprised humans was a useful action should be shot. In reality, nobody thought it. Each individual subsystem had their own failure procedures, and nobody ever tested what happened when they interacted.
Re: Software Requirements Errors in Safety-Critical, Embedded Systems (1993) [pdf]
#28Earlier quoted context omitted.
I'm always surprised by how thoroughly uninterested the Haskell and Rust communities are in learning from the Ada/High Integrity Software community. Here you have people who are actually doing what you purport to be interested in (creating defect-free code) who have a great deal of experience and a great many insights from actually putting their code into avionics bays knowing that thousands of lives are depending up…
> I'm always surprised by how thoroughly uninterested the Haskell and Rust communities are in learning from the Ada/High Integrity Software community. If you read the paper you would find that the VAST majority of issues were human communication or understanding of the problem. No programming language can fix that. Rust was started with one overriding goal: make programming on Firefox manageable. And they identified…
Yes, the people who prioritize "working" over "correct" make sloppy mistakes and avoid the languages that would make them be less sloppy.
> if Ada were such a force multiplier, there would be someone who would use it to make lots of money.
The embedded world sends its regards.
Re: Software Requirements Errors in Safety-Critical, Embedded Systems (1993) [pdf]
#29Strange how whatever Adrian Colyer covers in his The Morning Paper makes its way here. People perfer posting the original paper rather than his blogs posts.
“Please submit the original source. If a post reports on something found on another site, submit the latter.”
The main objective is to highlight and share interesting research, and if a post on ‘The Morning Paper’ achieves that and promotes informative discussions like the ones in this thread, then I’m happy.
On a good day, I like to think there’s enough in my posts that the commentary does qualify as an “original source.” On a bad day, the post may be a more straightforward summary of the paper content (though I’ve occasionally tried passing the text of a paper through an auto-summariser for fun, and let’s just say it doesn’t look like I’m going to be out of a job anytime soon!).
For example, the post that presumably inspired this HN thread (the timing certainly suggests that) is more a straightforward summary: https://blog.acolyer.org/2017/12/01/analyzing-software-requi.... The post from the day before on a related topic is interwoven with much more personal commentary: https://blog.acolyer.org/2017/11/30/the-role-of-software-in-....
Even in the ‘straightforward summary’ case, I will typically have spent a couple of hours or more reading the original paper, trying to distil the key points and putting them across succinctly. (It’s not for me to judge whether or not I succeed at that, but this is the aim!).
My hypothesis is that more people have time to read a long-ish slightly informal blog post than they do to scan a 12-20 page research paper. And it would be shame if when presented with only the link to the original paper pdf, they miss out on some of the key ideas within it because it feels like too much effort to read or scan the paper when presented like that. For one paper I’ll be covering next week for example (and this is an outlier), I spent about 5 hours in total on reading, trying to understand, getting the background and context clear, and then writing it up.
In those cases when the original HN link is to the full paper pdf rather than to my post, then I guess an easy way to give readers the benefit of both is simply a comment in the thread pointing to the ‘Morning Paper’ summary... The main thing though, as I said at the top, is that interesting and thought-provoking research reaches a bigger audience.
Re: Software Requirements Errors in Safety-Critical, Embedded Systems (1993) [pdf]
#30Earlier quoted context omitted.
I'm always surprised by how thoroughly uninterested the Haskell and Rust communities are in learning from the Ada/High Integrity Software community. Here you have people who are actually doing what you purport to be interested in (creating defect-free code) who have a great deal of experience and a great many insights from actually putting their code into avionics bays knowing that thousands of lives are depending up…
> I'm always surprised by how thoroughly uninterested the Haskell and Rust communities are in learning from the Ada/High Integrity Software community. If you read the paper you would find that the VAST majority of issues were human communication or understanding of the problem. No programming language can fix that. Rust was started with one overriding goal: make programming on Firefox manageable. And they identified…
The moment software companies start to actually pay heavy fines and are forced to do refunds for sloppy software like in other industries, the situation will change.