CS 9622 - Fall 2017 : How safety requirements figure into software systems

It is worth considering whether or not it meets basic professional ethics standards to produce unsafe systems

The interrelation between safety and requirements engineering ( Overview of non-functional software requirements and requirements engineering ) 

As always with requirements, there is the question of how do you know if it is satisfied or not

Peter G Neumann https://en.wikipedia.org/wiki/Peter_G._Neumann has been collecting news items of failures of systems incorporating computers for a long time with his Risks Digest dating back to 1985 http://catless.ncl.ac.uk/Risks/ 

Nancy Leveson https://en.wikipedia.org/wiki/Nancy_Leveson is a researcher in safety noted for advocating a systems ( Thinking about systems ) approach for both safety and security ( Security as a non-functional software system requirement ) concerns.  

A different, but related, approach is to view the issue as a risk management problem

Fault-tree analysis is an older safety engineering approach

One can also get a better view of the safety issues in an existing system through accident reports

More generally, one can ask what is the role of human components in the overall safety of a system

People interested in software quality (perhaps the ultimate non-functional requirement) improvement generally focus on the software development process rather than the software end product.  Similarly, one can say that building software meeting a safety requirement requires a development software aimed at meeting such a requirement.

Some system examples

The notions of risk and safety are closely related.  One might equally ask if a technology is safe or if it is risky.  Current technologies that pose this concern are nanotechnology and artificial intelligence.  Past technologies would include bio-chemical weapons and nuclear technology.