tag 标签: inspection

相关博文
  • 热度 17
    2014-12-18 20:38
    1411 次阅读|
    0 个评论
    One of the most powerful tools to enhance the quality of firmware is the code inspection. They also speed development. A lot of data supports the latter statement; for example, in A Survey of Software Inspection Technologies by Oliver Laitenberger, the author shows that Jet Propulsion Laboratory’s inspections are ten to 34 times cheaper than testing. A wealth of other studies confirm this.   Worse, test doesn’t work. V. Basili and R. Selby, in Comparing the Effectiveness of Software Testing Strategies , showed that test is unlikely to reveal more than half of the defects in a body of code. Glass and others have confirmed these results. (There are exceptions; disciplined code coverage will improve the numbers).   In my travels this Autumn I’ve had a chance to visit several companies that do disciplined inspections, which is laudable, and unfortunately uncommon. Interestingly, the companies I’ve recently visited do the inspection before final commit to the version control system. That is, the developers write and test the code, fix the bugs they find, and then inspect it. That’s a mistake. Inspections should take place after cleaning up errors found by automated tools, like the compiler, lint, and static analysis. No test should be done pre-inspection. It’s completely understandable that developers wish to test first. Who wants their mistakes pointed out in a meeting of their colleagues? Sneak in a couple of hours of test to get rid of the smack-your-forehead-obvious mistakes. But inspections are cheaper – much cheaper – than test, so test first is akin to burning stacks of hundred-dollar bills. It’s simply bad business. A central observation of the quality movement is that you can’t test quality into a product. That’s also true in software; a focus on fixing bugs will not lead to quality code. Quality must be designed in from the beginning. When inspections are done pre-test, the code automatically improves. If I’m writing code that no one will look at it’s quite different from that which will go through an inspection. And that’s part of the goal of the process: encourage the developers to write correct code from the outset. Have them work harder during the coding process, rather than devoting eons of time to fixing all of the bugs – or, at least, all of the ones they can find. In The Economics of Software Quality , By Capers Jones and Olivier Bonsignour, the authors report that out of 121 known ways to improve software quality, the fifth most effective is pretest inspections. To repeat: a focus on fixing bugs will not lead to quality code. We need to break the cycle of writing a lot of code fast and then getting into the tar pit of endless test. Think first. Code carefully. Examine the results. Make it as perfect as possible. Feed it through the tools and fix any errors detected. Inspect it and fix those defects. Finally, test.
  • 热度 22
    2014-6-11 17:59
    1482 次阅读|
    0 个评论
    Albert Einstein once said , "Everything should be as simple as possible, but not simpler." I would never claim to have his level of insight -- or such an awesome head of hair -- but as an engineer, I wholeheartedly agree with this statement.   It definitely applies when it comes to computer-controlled vision systems for parts inspection. When designing a system, it can be tempting to try and include every inspection that could possibly be done. If, for instance, the machine is already being designed to check whether a bearing is missing a roller or ball, why not also inspect for the roundness of the bearing's housing or even check for surface defects? These extra steps should be simple, because the camera's already there, right?   Wrong. You rarely get anything extra for free. Engineers who work on vision systems know what I am talking about. But sometimes other people erroneously believe that just putting a camera on it constitutes an effective inspection setup.   When adding tasks for a vision system, a major challenge is lighting and camera position. Just because the light is properly set up for one inspection doesn't mean it will be correct for anything else. The result is inevitably some sort of compromise, which is never ideal. Of course, one could add a robot or other device to position all the parts for inspection, but it would add significant complexity and cost.   Another drawback of piggbacking features on to a vision system is that troubleshooting becomes harder with each additional inspection. It's incredibly frustrating to tweak a machine to pass one inspection, only to find that it often causes a malfunction elsewhere in the program.   On my first job, the inspection machinery that I oversaw was set up primarily to check for a missing pin or roller in a bearing. But it was also set up to check several other things that technically were not required or even necessary.   I was eventually able to program all these machines to look only for a missing pin -- with no loss in parts quality, interestly enough.   Later, an outside contractor was called in to update the machinery. He offered to expand its inspection capabilities. I wanted that code to remain as simple as possible. Some of these machines used a PlayStation-like controller for adjustment, so I seriously didn't want to have to do more than was absolutely necessary.   As for making things as simple as possible, but not simpler, an inspection camera shouldn't physically be more adjustable than necessary. To that end, I wish vision companies would start making holes for dowel pins standard on all their products. This feature would simplify the setup, allowing one to determine the precise camera position within a thousandth of an inch or so.   Jeremy Cook is a manufacturing engineer with 10 years of experience and has a BSME from Clemson University.
  • 热度 22
    2014-6-11 17:56
    1490 次阅读|
    0 个评论
    Albert Einstein has been quoted as saying , "Everything should be as simple as possible, but not simpler." I would never claim to have his level of insight -- or such an awesome head of hair -- but as an engineer, I wholeheartedly agree with this statement.   It definitely applies when it comes to computer-controlled vision systems for parts inspection. When designing a system, it can be tempting to try and include every inspection that could possibly be done. If, for instance, the machine is already being designed to check whether a bearing is missing a roller or ball, why not also inspect for the roundness of the bearing's housing or even check for surface defects? These extra steps should be simple, because the camera's already there, right?   Wrong. You rarely get anything extra for free. Engineers who work on vision systems know what I am talking about. But sometimes other people erroneously believe that just putting a camera on it constitutes an effective inspection setup.   When adding tasks for a vision system, a major challenge is lighting and camera position. Just because the light is properly set up for one inspection doesn't mean it will be correct for anything else. The result is inevitably some sort of compromise, which is never ideal. Of course, one could add a robot or other device to position all the parts for inspection, but it would add significant complexity and cost.   Another drawback of piggbacking features on to a vision system is that troubleshooting becomes harder with each additional inspection. It's incredibly frustrating to tweak a machine to pass one inspection, only to find that it often causes a malfunction elsewhere in the program.   On my first job, the inspection machinery that I oversaw was set up primarily to check for a missing pin or roller in a bearing. But it was also set up to check several other things that technically were not required or even necessary.   I was eventually able to program all these machines to look only for a missing pin -- with no loss in parts quality, interestly enough.   Later, an outside contractor was called in to update the machinery. He offered to expand its inspection capabilities. I wanted that code to remain as simple as possible. Some of these machines used a PlayStation-like controller for adjustment, so I seriously didn't want to have to do more than was absolutely necessary.   As for making things as simple as possible, but not simpler, an inspection camera shouldn't physically be more adjustable than necessary. To that end, I wish vision companies would start making holes for dowel pins standard on all their products. This feature would simplify the setup, allowing one to determine the precise camera position within a thousandth of an inch or so.   Jeremy Cook is a manufacturing engineer with 10 years of experience and has a BSME from Clemson University.