[SystemSafety] Logic
Philip Koopman
Phil.Koopman at HushMail.com
Sun Feb 16 18:18:56 CET 2014
I'm all for software that actually works going into products via
whatever approaches are effective (mathematics, peer reviews, etc. --
they can all play an important role). While I haven't spent a lot of
time trying to get formal methods adopted, I have spent a lot of time
trying to get organizations to do peer reviews/inspections as a baby
step toward crawling out of the muck of chaotic software development
practices.
What I've found is that they often just can't bring themselves to put
emphasis on an activity that is not directly contributing to the
specify=>implement=>test path. (Sometimes they even skip "specify" so
they can get right down to the business of writing buggy code, but
that's another story.) I can speculate that the higher level managers
assign value to creating code and testing activities. They assign
essentially no value to defect prevention. These higher level managers
seldom have training in software engineering (or even computer
science/engineering).
From what I've seen our students act the same way. It is all about
getting the code written, "tested," and slipped past the grading
gatekeeper, however messy that process is. Essentially no thought or
value is placed on avoiding defects in the first place. This approach
appears to have been trained into them in intro programming courses.
I run a senior/MS course that pushes students through a project that is
difficult to survive unless you practice bug prevention. Most of them
get the message and are running effective peer reviews by the end of the
course. I fancy that by the time they've completed the course and
learned the lessons, they'd be ready to adopt more formal practices (but
not before -- they are skeptical even of peer reviews for several
weeks). I touch briefly on formal methods, but the math is more than I
can squeeze into my course on top of everything else I need to cover.
Perhaps if this sort of experience happened early in their education
instead of at the end it would help motivate them to learn and practice
the right mathematical skills, and they'd be eager to take a course on
that topic.
But to effect change, IMHO first we have to convince our
non-software-engineering/non-safety critical colleagues that this is
something worth doing. I've never had much success doing that. Part of
it is probably that as researchers we mostly specialize in throw-away
non-critical code. It's tough to convince someone that teaching a topic
is important if they've never found it important themselves.
(BTW, I think that the argument that thesis code quality isn't a big
deal isn't as compelling as some think. Maybe the student won't die if
the code has a bug. But the student's experimental results might well be
wrong due to bugs! I've seldom seen anyone take that issue seriously.)
-- Phil
On 2/16/2014 11:58 AM, John Knight wrote:
> Peter,
>
>> obviously I agree with much of what you say. But I am discussing with people who believe that we
>> constitute an exception to much of it.
>
> I think we are talking about different things. Research projects need
> software rapid prototypes to support investigation in areas such as AI
> and robotics. These are "throw-away" prototypes that should never
> make it into production and usually don't.
>
> I am talking about software products that are part of engineered
> computer systems which will subject others (possibly the general
> public) to risk. Higher education has a responsibility to prepare
> professional engineers to perform that engineering. That education
> needs to make it clear that:
>
> * Engineers are responsible for what they do.
> * Engineering is a profession not some amateur activity.
> * Mathematics is an essential component of professional computer
> engineering.
>
> In response to the comment from Les Chambers:
>
> "We must find a way to bring formal methods out of the lab and into
> general use."
>
> I generally agree. But I note that we have industrial strength
> systems such as SPARK Ada, industrial scope use of such systems such
> as the NATS iFACTS system, and substantial evidence from Peter Amey
> and his colleagues that applying such technology is cheaper and better
> than the informal alternatives.
>
> -- John
>
>
>
> _______________________________________________
> The System Safety Mailing List
> systemsafety at TechFak.Uni-Bielefeld.DE
--
Phil Koopman -- koopman at cmu.edu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.techfak.uni-bielefeld.de/mailman/private/systemsafety/attachments/20140216/9f70ddb6/attachment-0001.html>
More information about the systemsafety
mailing list