comp.lang.ada
 help / color / mirror / Atom feed
* Re: Not intended for use in medical devices
@ 1997-05-03  0:00 Robert C. Leif, Ph.D.
  1997-05-03  0:00 ` Robert Dewar
  0 siblings, 1 reply; 13+ messages in thread
From: Robert C. Leif, Ph.D. @ 1997-05-03  0:00 UTC (permalink / raw)



To: Kaz Kylheku et al.
From: Bob Leif, Ph.D.
Ada_Med

I have very strong reservations about reviewing object code.  Although
configuration management tools could be configured to prevent changes in
the object code, I believe that there would be a very strong temptation for
some of the programmers to hand optimize the object code.  This would
result in having to maintain the object code, which would be very
expensive.  I must emphasize that the skill level of most of the readers of
Comp.Lang.Ada is much higher than that of most medical device programmers.
 The obvious proof of this statement is that most medical device software
is programmed in C or C++.  What other newsgroups do you propose posting
medical software discussions?
----------------------------------------------------------------------------
------
Kaz Kylheku wrote
Date:    Tue, 29 Apr 1997 19:34:10 GMT
From:    Kaz Kylheku <kaz@VISION.CREST.NT.COM>
Subject: Re: Not intended for use in medical,

In article <dewar.862270256@merv>, Robert Dewar <dewar@merv.cs.nyu.edu> wrote:
>John said
>
><<If it were me designing life support systems for medical use I'd:
>Make use of Appendix H (Safety and Security) in Ada95.
>Review the object code.
>And then test the hell out of it like my life depended on it.>>
>
>This sounds like depending on testing too much, and on formal methods
>too little -- there is a balance sure, but the above seems unbalanced.

Reviewing the object code is (or can be) a formal method. Maybe the
use of the word ``hell'' shifts the perception of balance. :)

It's a pity that this discussion was confined to comp.lang.ada, because I
missed a lot of it, even though I sparked it with quote from the Intel
document.

Reviewing object code is important. I do it all the time, no matter what
langauge I'm using. Compiler bugs do exist; I have discovered a few in
GNU C. (just read gnu.gcc.bug over some time and you will see).
SNIP
----------------------------------------------------------------------------
---------------------




^ permalink raw reply	[flat|nested] 13+ messages in thread
* Re: Not intended for use in medical devices
@ 1997-05-04  0:00 Robert C. Leif, Ph.D.
  1997-05-05  0:00 ` Kaz Kylheku
  1997-05-06  0:00 ` Michael F Brenner
  0 siblings, 2 replies; 13+ messages in thread
From: Robert C. Leif, Ph.D. @ 1997-05-04  0:00 UTC (permalink / raw)




To: Prof. Robert Dewar
From: Bob Leif, Ph.D.

There are 3 levels of criticality in medical devices.  I have spent my time
on level 2 devices which were used primarily for clinical laboratory
diagnosis.  The quality of the object code was often checked as a means of
selecting a compiler.  However, I have not observed every line of object
code being scrutinized.  I do believe that a compiler code generation error
could cause a problem.  However, the probability is low, providing one puts
some care into the choice of the compiler and makes sure that it has been
tested. Of course, the easiest way to do this is to acquire a compiler that
has both been previously tested and is used by a highly skilled, vocal group.

On the other side, you mentioned optimizations. This is where I worry.
However, for purposes of performance, optimization is often needed.  I
would suggest that, where possible, Ada compiler manufacturers include the
facility to produce modified Ada source code showing what the compiler did.
 For instance, if an item is removed from a loop or a loop is unrolled,
this can be described in Ada syntax.  If the compiler eliminates uncalled
code, it could show this by annotating the listing including showing a
strike-through or similar marking.  I strongly believe that the software
should be described to humans in a manor easiest for us to understand.

For those interested in this field, I most strongly suggest that you read
Nancy Leveson's book Safeware System Safety and Computers, Addison Wesley,
1995 ISBN 0-201-11972-2. Most of you will agree with her comments on
languages, bottom of page 412 to top page 413.  Prof. Leveson emphasizes
that most mishaps are the result of systems errors. The discussion of the
Arriane rocket on Comp.Lang.Ada was a very good example of this.

One item that has been missing from Comp.Lang.Ada is any information on
device drivers for PC boards, such as analog to digital convertors. I might
add from experience, a systems engineer should consider hardware solutions
for items that are not weight nor power limited nor produced in huge
quantities.  Often, the use of hardware such as direct memory access,
fifos, and timers can greatly simplify a system.
----------------------------------------------------------------------------
-------------------------------
Date:    Sat, 3 May 1997 22:52:08 -0400
From:    Robert Dewar <dewar@MERV.CS.NYU.EDU>
Subject: Re: Not intended for use in medical devices

Robert Leif says

<<I have very strong reservations about reviewing object code.  Although
configuration management tools could be configured to prevent changes in
the object code, I believe that there would be a very strong temptation for
some of the programmers to hand optimize the object code.>>


How can you possibly avoid reviewing object code for safety critical
programs? Certainly I am unaware of any acceptable methodology that
can be used today that avoids reviewing object code. I agree that we
need to develop such techn9ologies, but we are not there yet.

I think the concern about optimizing object code is misplaced. The typical
procedures followed for reviewing object code do not begin to allow for
this kind of optimization, and I have never seen that be a problem. Indeed
usually for safety critical code, a common demand is that the compiler
NOT do any optimization (of course that is not a very well defined
requirement)
----------------------------------------------------------------------------
----------------------------------




^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~1997-05-14  0:00 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1997-05-03  0:00 Not intended for use in medical devices Robert C. Leif, Ph.D.
1997-05-03  0:00 ` Robert Dewar
  -- strict thread matches above, loose matches on Subject: below --
1997-05-04  0:00 Robert C. Leif, Ph.D.
1997-05-05  0:00 ` Kaz Kylheku
1997-05-06  0:00   ` Robert Dewar
1997-05-06  0:00     ` Kaz Kylheku
1997-05-12  0:00     ` Ken Garlington
1997-05-06  0:00 ` Michael F Brenner
1997-05-06  0:00   ` Kaz Kylheku
1997-05-07  0:00   ` Robert Dewar
1997-05-08  0:00     ` Matthew Heaney
1997-05-10  0:00       ` Robert Dewar
1997-05-14  0:00         ` Richard Kenner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox