O GLOBO - Informática Etc. - Carlos Alberto Teixeira
Artigo: 249 - Escrito em: 1996-05-29 - Publicado em: 1996-06-03


O engenheiro e o analista


A belíssima e inspiradora fábula que hoje apresentamos nos foi enviada pelo velho amigo Fred Rego <[email protected]>, nosso correspondente em Vancouver, Canadá. Era uma vez, num reino não muito distante daqui, um rei que convocou dois de seus conselheiros para um teste. Apresentou a ambos uma reluzente caixa de metal com duas aberturas compridas em cima, um botão de controle e uma pequena alavanca. "O que acham que é isso?" indagou o monarca.

Um dos conselheiros, engenheiro, antecipou-se e respondeu. "É uma torradeira, Majestade". E o soberano perguntou: "Como você projetaria um computador embutido para esta torradeira?" O engenheiro respeitosamente respondeu: "Usando um micro-controlador de 4 bits, eu escreveria um programa simples que leria o ajuste do botão de controle e quantizaria sua posição para um dentre 16 tons de cinza, desde o branco da neve até o negro do carvão. O programa usaria o nível de cinza como índice para uma tabela de 16 elementos contendo valores iniciais. Então ele ligaria os filamentos de aquecimento e inicializaria o temporizador usando o valor inicial obtido na tabela. Ao fim do intervalo, desligaria o calor e faria a torrada saltar do aparelho. Caso Vossa Majestade assim o queira, poderei apresentar um protótipo operacional na próxima semana."

O segundo conselheiro, analista de sistemas e cientista de computadores, imediatamente reconheceu o perigo do enfoque simplista dado à questão, e tomou a palavra: "Alteza, torradeiras não apenas torram pão produzindo torradas, são também usadas para aquecer waffles congelados. O que temos diante de nós é, na verdade, um cozinhador de alimentos para o café da manhã. À medida que seus súditos forem ficando mais sofisticados, exigirão maiores capacidades deste artefato. Precisarão de um cozinhador de desjejum que também possa cozinhar salsicha, fritar bacon e preparar ovos mexidos. Uma torradeira que apenas produza torradas mostrar-se-á completamente obsoleta em pouco tempo. Se não olharmos para o futuro, teremos que reprojetá-la do zero em poucos anos."

"Com isso em mente, podemos formular uma solução bem mais inteligente para o problema. Primeiro, criar uma classe de alimentos para café da manhã. Especializar esta classe em subclasses: cereais, porcos e ovos. Prosseguiremos na especialização, com grãos dividindo-se em torradas, bolinhos, panquecas e waffles; porco dividindo-se em salsichas, salames e bacon; e ovos dividindo-se em mexidos, cozidos, fritos e várias subclasses de omeletes. A omelete de queijo com presunto merece atenção especial porque deve herdar características do porco, do laticínio e do ovo. Logo, vemos que o problema não pode ser resolvido apenas com heranças múltiplas de classes. Em tempo de execução, o programa deve criar o objeto adequado e enviar uma mensagem e ele dizendo: "Cozinhe-se". A semântica desta mensagem depende, naturalmente, do tipo do objeto envolvido, com um significado diferente para torrada e outro para ovos mexidos."

"Revendo o processo até então, vemos que a fase de análise revelou que o requisito principal é cozinhar qualquer tipo de alimento para o desjejum. Na fase de projeto, descobrimos requisitos derivados. Especificamente, precisamos de uma linguagem orientada a objetos com herança múltipla. É claro que o usuário não quererá que os ovos esfriem durante a fritura do bacon, portanto precisaremos também de processamento concorrente."

"E não podemos nos esquecer da interface com o usuário. A alavanca que abaixa o alimento na torradeira carece de versatilidade e o botão de controle é confuso. Os usuários não comprarão o produto a menos que ele ofereça interface amigável e gráfica. Quando o cozinhador de alimentos for ligado, os usuários deveriam ver o desenho de uma bota de cowboy na tela. O usuário clica o mouse na imagem e aparece a mensagem: "Booting UNIX v. 8.3" (Ao tempo em que o produto entrar no mercado, a versão do UNIX deverá ser 8.3 ou maior.) O usuário pode acionar um menu e clicar nos alimentos que deseja cozinhar."

"Tendo tomado a prudente decisão de especificar o software antes da fase de projeto, só nos restaria definir a plataforma de hardware adequada à fase de implementação. Um chip Intel 80386, 8 megas de RAM, 30 megas de disco e um monitor VGA serão suficientes. Se optarmos por multitarefa, linguagem orientada a objetos e uma interface gráfica embutida, poderemos escrever o programa num piscar de olhos. Imagine a dificuldade que teríamos se tolamente adotássemos um projeto baseado na escolha do hardware em primeiro lugar -- estaríamos presos a um micro-controlador de 4 bits."

E o rei sabiamente mandou decapitar de imediato o analista de sistemas e todos viveram felizes para sempre.


Sujeito batuta taí, o Pedro Miller Rabinovitch da PUC-RIO. Ele teve a ótima idéia de criar um banco de trocas de CD-ROMs. Sabe aquele joguinho que você já está enjoado de usar e que está empoeirando no armário? Pois bem, que tal trocá-lo por outro? O banco de trocas é um serviço gratuito, bastando apontar seu browser para http://venus.rdc.puc-rio.br/pmr ou então mandar e-mail para [email protected].


Nosso correspondente em Minsk, Belarus, o Sr. Oleg Danilow <[email protected]>, também está atento aos riscos tecnológicos que nos cercam. Ele nos conta que a vitória contra um recente e violentíssimo incêndio ao sul da Cote d' Azur, na França, foi celebrada como maravilha da moderna tecnologia de combate a fogo. Dois hidro-aviões especiais foram convocados em questão de minutos, chegaram ao destino rapidamente, engoliram grande quantidade de água do Mediterrâneo e depois abriram seus tanques com precisão sobre o incêndio, debelando imediatamente as chamas na encosta. Tudo era alegria e o vinho corria solto nas comemorações, até que um cadáver foi encontrado no meio das cinzas. O legista concluiu que o cavalheiro aparentemente caiu de grande altura, sofrendo sérias lesões antes de morrer queimado. Notou também que a vítima usava calção de banho, máscara de mergulho, snorkel e nadadeiras.


[ Voltar ]