|
Viewpoint
Developing a computer product is like farming: You have to follow the law of the harvest. There is a season for tilling and preparing the soil. There is a season for planting and cultivation. There is a season for harvesting. If any one of these steps isn't carried out right, you are assured of an unsuccessful harvest. From the dawn of the industrial revolution until a decade or so ago we were making mechanical and then electromechanical products. The development and function of those products follow exact empirical and physical rules and laws. Electrical circuits always obey Kirchoff's law. Gases always obey Boyle's law. Digital technology changed the way the world was run. The technology moved from information processing and computation in the domain of mainframes and PCs to the control of products like cars, planes, consumer devices, and medical equipment. In short, most things that run our lives are controlled by an embedded computer. The key element of computer control is the software. To create the software, a programmer opens a new file in the editor, similar to starting with a blank sheet of paper. He then types a series of commands that embody what needs to be done. Absolutely no rules or laws constrain what can be created. Every act of programming is a flirtation with the infinite states that can occur. This explosion of functionality--the move from finite to infinite states--creates too many possible failure points in a product. What can an organization do to minimize the possible errors? If we go back to the analogy of the successful farmer, we find that farming includes a well-thought-out process, a tried-and-true method, and tools. The tools can be archaic and the farmer can still get a decent harvest, because a true process and method have been used. If the farmer upgrades the tools, he'll increase his efficiency and the result will be an even bigger harvest. One way for the developer of a computer product to be successful is to follow the law of the harvest and make sure that there is a well-thought-out process underlying the development effort. A well-thought-out process should ensure that every stage is verified before the next is begun. This procedure of building a little and immediately checking the work, called "concurrent verification," can be applied to any phase of product development. A design can and should be verified concurrently. ASIC development, board development, software development, operating system ports, graphical user interfaces, all can and should be verified concurrently. Components of the final products should be verified concurrently. Integration of those components should be verified concurrently. Then the final product should be verified. All this sounds tedious and it is--to a manual tester. Moreover, manual testing is difficult to repeat. Results are often impossible to reproduce. Since computers interact with the external world in microseconds to milliseconds, the only way to keep up with a computer is by using another computer. We can call it "computer in the loop" to differentiate it from "hardware in the loop" or "human being in the loop" verification. Updated processes and tools are necessary to ensure that complex computer products have fail-proof functionality and can still be developed within the critical time-to-market windows and budgets. Anything less means that the harvest for product vendors will be less than bountiful. * Moses Joseph is the president and CEO of B-Tree Systems Inc. (Minnetonka, Minn.).
To voice an opinion on this or any Integrated System Design article, please e-mail your message to miker@isdmag.com. integrated system design September 1997[ Articles from Integrated System Design Magazine ] [ ICs and uPs ] [ Custom ICs and Programmable Logic ] [ Vendor Guide ] [ Design and Development Tools ] [ Home ] For more information about isdmag.com e-mail cam@isdmag.com For advertising information e-mail amstjohn@mfi.com Comments on our editorial are welcome Copyright © 1997 Integrated System Design Magazine |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Home | About | Editorial Calendar | Feedback | Subscriptions | Newsletter | Media Kit | Contact | Reprints| RSS|
Digital| Mobile |
| Network Websites |
|
International |
|
Network Features |
|
|
|
All materials on this site Copyright © 2009 TechInsights, a Division of United Business Media LLC All rights reserved. Privacy Statement | Terms of Service | About |