SI
SI
discoversearch

We've detected that you're using an ad content blocking browser plug-in or feature. Ads provide a critical source of revenue to the continued operation of Silicon Investor.  We ask that you disable ad blocking while on Silicon Investor in the best interests of our community.  If you are not using an ad blocker but are still receiving this message, make sure your browser's tracking protection is set to the 'standard' level.
Technology Stocks : Wind River going up, up, up!

 Public ReplyPrvt ReplyMark as Last ReadFilePrevious 10Next 10PreviousNext  
To: Mitchell Jones who wrote (863)4/18/1997 8:02:00 PM
From: Jim Privat   of 10309
 
[Warning: Joke follows...no WIND content]

The following is a bit too long, and is a few years old, but is kind of funny
and is actually almost relevant given the recent Windows CE debate. :-)

Sorry, couldn't resist!

Jim

********

Once upon a time, in a kingdom not far from here, a king
summoned two of his engineers for a test. He showed them both a
shiny metal box with two slots in the top, a control knob, and a
lever. "What do you think this is?"

One advisor, a component engineer, answered first.

"It is a toaster," he said.

The king asked, "How would you design an embedded computer for it?"

The engineer replied, "Using a four-bit microcontroller, I would
write a simple program that reads the darkness knob and
quantizes its position to one of 16 shades of darkness, from
snow white to coal black. The program would use that darkness
level as the index to a 16-element table of initial timer
values. Then it would turn on the heating elements and start the
timer with the initial value selected from the table. At the end
of the time delay, it would turn off the heat and pop up the
toast. Come back next week, and I'll show you a working prototype."

The second advisor, a software engineer, immediately recognized
the danger of such short-sighted thinking.

He said, "Toasters don't just turn bread into toast, they are
also used to warm frozen waffles. What you see before you is
really a breakfast food cooker. As the subjects of your kingdom
become more sophisticated, they will demand more capabilities.
They will need a breakfast food cooker that can also cook
sausage, fry bacon, and make scrambled eggs. A toaster that only
makes toast will soon be obsolete. If we don't look to the
future, we will have to completely redesign the toaster in just
a few years."

"With this in mind, we can formulate a more intelligent solution
to the problem. First, create a class of breakfast foods.
Specialize this class into subclasses: grains, pork, and
poultry. The specialization process should be repeated with
grains divided into toast, muffins, pancakes, and waffles; pork
divided into sausage, links, and bacon; and poultry divided into
scrambled eggs, hard-boiled eggs, poached eggs, fried eggs, and
various omelet classes."

"The ham and cheese omelet class is worth special attention
because it must inherit characteristics from the pork, dairy,
and poultry classes. Thus, we see that the problem cannot be
properly solved without multiple inheritance. At run time, the
program must create the proper object and send a message to the
object that says, 'Cook yourself.' The semantics of this message
depend, of course, on the kind of object, so they have a
different meaning to a piece of toast than to scrambled eggs."

"Reviewing the process so far, we see that the analysis phase has
revealed that the primary requirement is to cook any kind of
breakfast food. In the design phase, we have discovered some
derived requirements. Specifically, we need an object-oriented
language with multiple inheritance. Of course, users don't want
the eggs to get cold while the bacon is frying, so concurrent
processing is required, too."

"We must not forget the user interface. The lever that lowers the
food lacks versatility, and the darkness knob is confusing. Users
won't buy the product unless it has a user-friendly, graphical
interface. When the breakfast cooker is plugged in, users should
see a cowboy boot on the screen. Users click on it, and the
message 'Booting UNIX v. 8.3' appears on the screen. (UNIX 8.3
should be out by the time the product gets to the market.) Users
can pull down a menu and click on the foods they want to cook."

"Having made the wise decision of specifying the software first
in the design phase, all that remains is to pick an adequate
hardware platform for the implementation phase. An Intel 80486
with 8MB of memory, a 30MB hard disk, and a VGA monitor should be
sufficient. If you select a multitasking, object oriented
language that supports multiple inheritance and has a built-in
GUI, writing the program will be a snap. (Imagine the difficulty
we would have had if we had foolishly allowed a hardware-first
design strategy to lock us into a four-bit microcontroller!)."

The king wisely had the software engineer beheaded, and they
all lived happily ever after.
Report TOU ViolationShare This Post
 Public ReplyPrvt ReplyMark as Last ReadFilePrevious 10Next 10PreviousNext