Abstract :
Static inspection-the removal of obvious faults or inconsistencies prior to product testing-forms an indispensable part of all conventional engineering disciplines-except software engineering. This degree of care could apply to software as well. After careful rumination by an impressive number of qualified people who together comprise a standards committee, our programming languages might enter the world in a safe, well-defined and unambiguous manner, suitable for use by programmers who are necessarily less knowledgeable about the language. Then, any violation of this safe, complete and unambiguous language definition could be automatically detected before it caused any damage, and the responsible programmer informed. Unfortunately, this scenario could not be farther from reality. Explicitly recognized programming limitations are often abused because the language allows it, so much of the world´s software reaches its users full of inconsistencies: failures waiting to happen. When this is coupled with inaccuracies in capturing the specification, this situation leads to reduced software reliability and safety. As software becomes ever more pervasive, with thousands-sometimes millions-of lines of code controlling automobiles, televisions, fire alarms, medical scanners and aircraft, we can no longer tolerate this lack of quality
Keywords :
inspection; programming languages; safety; software quality; software reliability; failures; inaccuracies; inconsistencies; product testing; programming languages; programming limitations; safe, complete, unambiguous language definition; software engineering; software fault removal; software quality; software reliability; software safety; specification capture; standards; static inspection; Automobiles; Computer languages; Inspection; Programming profession; Software engineering; Software quality; Software reliability; Software safety; Software testing; Wheels;