Posted By: Zaba (I'd rather be skiing!) on 'Humor'
Title:     software engineering joke - viva OO
Date:      Tue Nov  7 15:09:09 2000

> Once upon a time, in a kingdom not far from here, a king summoned two
of
> his advisors 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, an 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 computer scientist, 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 80386 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 computer scientist beheaded, and they all lived
> happily ever after.

Zaba

P.S.: Put some excitment between your legs - ride a mountain bike!

Search the boards