http://www.ieee-pses.org/symposium http://www.emc2004.org/ --------------------------------------------------
Ed As you have changed the Subject string, I am allowed to have another "final word"... Your questions are good and fundamental to the field of hardware and software co-verification and validation. And I do not have generic answers that could be considered correct. But, I have a few (half-cooked) ideas... "Traceability" is relatively (hah!) easy; control the release and use of software systems using CVS. But "proving confidence" through V&V has grown a whole industry, and provided fodder for many a PhD thesis. In any case, it is important to treat s/w as a "natural language" expression of mathematical equations. That is, have a firm grasp of a finite mathematical model of the data acquisition / data analysis system before any application is loaded, or a single line of code is written. Do not attempt to prove correct functionality of the whole platform. Limit formal proofs to singular processes; and provide a formal test plan for each individual process to the auditor. And you are correct that you will eventually have to "just accept that the pencil is whatever it is" (I like that analogy, can I quote?). The granularity of formal proofs and associated tests will be based on the requirements of the end-user and the applicable standards (which may be ambiguous). Modern software development emphasizes using the highest level of abstraction available (mostly for development productivity). But higher levels of abstractions increase (geometrically) the number of paths that code can follow. So if the complexity (and non-determinacy) of a GUI is removed, and the execution environment is limited to a CLI (aka "shell"), the requirements for formal proof are significantly reduced. Finally, ignore the academics and their games with stochastic methods. As for formal definitions, I am NOT a V&V expert, so I am going to take the coward's way out... and humbly suggest the following refs: FDA Guidance Document 2 FDA Guidance Document 4 IEC 60880 (extreme, but it's for nukes) IEC 12207 (overall look at the mess w/the misnomer "s/w development") IEEE 1012 IEEE 1059 (does not enlighten one of V & V, but has formal process definitions) http://www.fda.gov/cdrh/comp/guidance/938.pdf http://www.a2la.org/guidance/adequate_for_use.pdf ftp://ftp.fasor.com/pub/iso25/validation/ MISRA C SPARK Ada LCLint/Splint luck to all who dare to verify and validate software, Brian -----Original Message----- From: Price, Ed [ mailto:[email protected]] Sent: Tuesday, August 17, 2004 4:12 PM To: [email protected] Subject: RE: Which Operating System - Now Traceability From: Brian O'Connell [ mailto:[email protected]] Sent: Tuesday, August 17, 2004 1:00 PM To: [email protected]; [email protected] Subject: RE: Which Operating System - 2000 vs XP to use? Good People I got wayyyyy too much OS theory in school (was a CS major). SNIP My final word on this subject (honest...). If your lab is accredited to IEC 17025, and the auditor requires software verification, validation, and traceability for instrument control and/or numerics; then you must have access to, or knowledge of, system internals. The most simple solution, for people whose job/hobby is not systems administration, is to control the instruments using command-line Linux (or DOS if you do not need USB or other modern I/O) on a dedicated box, and export the data to an appropriate machine loaded with your number cruncher/graphing apps, typically an XP box. Stand-alone numerics is easilly tested using "black-box" and associated regression tests. Important note: the (US) FDA will always require full validaton. luck, Brian Brian: Could you please explain (in beginner's terms) what are the concerns regarding "validation" of the software used in a data acquisition system or an OS. About a decade ago, I had gotten just a hint of exposure to software control at General Dynamics. At that time, my area of GD typically used HP "desktop controllers" like the HP-9836, running HP Unix or Pascal or Basic. We used data acquisition applications that were either self-authored or purchased >from HP. GD's QA people had required that all software be registered with them, and that working copies be periodically audited for changes by performance of a digital checksum on the file. The HP software was proprietary, and we couldn't see anything about how the internals worked. The QA control was only concerned with "creeping code shift"; that is, undocumented changes made on the working copy of the code. As far as I know, they never tried investigate any deeper. I validated the operation of the HP data acquisition code by using the technique, now described in MIL-STD-461E, of injecting known signal levels into the probe end of the coax cable and seeing if the acquisition system would output the correct frequency and amplitude data. (I did the same for the self-authored code, but this was very redundant, since that code had been very rigorously verified as module by module went together.) Regardless, with a few hours time, I could feel very certain that the code was yielding correct results. But your comments about "validation" give me a chill suspicion that I was blissfully ignorant of something important, something I still don't see in hindsight! Do current auditing standards require far more samples to justify confidence? How many samples would you need? So what is involved with proving confidence in an OS? I know that HP simply stated that their (acquisition) code was proprietary, and that we would just have to trust them that everything was as it should be. And nobody ever thought to question their OS. But what would you have to do to validate an OS? Are you saying that confidence requires knowing that an OS yields the same result for 10^9 square-root operations? Or is 10^15 needed? Does every algorithm need to be examined and proved? Why would using a CLI be any more trustworthy than using a GUI? Using these standards, could we even prove confidence in a hand-held calculator? What about the firmware in a printer? How confident are we that it will always print "47 dBuV" every time we send that data to it? How far does traceability need to go? Do you need to document the origin and chemical composition of the graphite in a pencil, or do you just accept that the pencil is whatever it is, so long as it makes marks you can read? As you can see, I'm groping at the concepts and definitions. Regards, Ed ------------------------------------------- This message is from the IEEE Product Safety Engineering Society emc-pstc discussion list. IEEE PSES Main Website: http://www.ieee-pses.org/ To post a message send your e-mail to [email protected] Instructions for use of the list server: http://listserv.ieee.org/listserv/request/user-guide.html List rules: http://www.ieee-pses.org/listrules.html For help, send mail to the list administrators: Ron Pickard: [email protected] Dave Heald: [email protected] For policy questions, send mail to: Richard Nute: [email protected] Jim Bacher: [email protected] All emc-pstc postings are archived and searchable on the web at: http://www.ieeecommunities.org/emc-pstc

