O Visual Basic no Desenvolvimento de Aplicações Médicas

Goytá Fernandes Villela Jr.


Núcleo de Informática Biomédica da Universidade Estadual de Campinas
Email:goyta@turing.unicamp.br.

Revista Informédica, 1(1): 5-11, 1993.


A evolução dos sistemas operacionais e ambientes gráficos para microcomputadores, como o Microsoft Windows, tem levado a uma crescente demanda pelo desenvolvimento de programas aplicativos na área médica que explorem suas características. No desenvolvimento de aplicações para esses ambientes, existem várias possibilidades quanto à linguagem de programação, tais como Pascal, C ou C++. Entretanto, o MS Windows é muito peculiar, e o fato de ser gráfico constitui apenas sua característica mais óbvia, mas talvez não a mais significativa em termos de engenharia de software. Mais importante é o fato de ser multitarefa, ou seja, poder executar mais de uma aplicação ao mesmo tempo, e a sua filosofia de processamento orientado a eventos, que constitui um desvio radical em relação ao processamento linear tradicional. As linguagens de programação tradicionais foram concebidas e implementadas numa época em que não se cogitava de ambientes gráficos. Sua estrutura é voltada para o processamento seqüencial de instruções, e não prevê o conceito de eventos. Como conseqüência, mesmo com a existência de numerosas bibliotecas de rotinas e classes de objetos específicas para a programação em Windows, o desenvolvimento de aplicações para este ambiente através dessa abordagem é extremamente difícil e trabalhoso, e só se justifica em casos especiais. Reconhecendo esta dificuldade, a própria Microsoft desenvolveu e colocou no mercado duas ferramentas de software especificamente voltadas para o desenvolvimento de aplicações para o ambiente Windows: são o Visual Basic e o Visual C++. Ambas incorporam recursos para a programação dirigida por eventos, oferecem ferramentas especiais para a programação visual característica do Windows, e desta forma integram-se de forma natural e transparente a este ambiente. Além disto, são suficientemente poderosas, enquanto linguagens, para contemplar a imensa maioria das situações possíveis de programação, e, em caso de necessidade, ainda permitem o uso acessório de rotinas em linguagens tradicionais, através do recurso de integração a bibliotecas denominadas Dynamic Link Libraries ("Bibliotecas de Ligação Dinâmica"), ou DLLs, que podem ser escritas naquelas linguagens.

O Visual Basic (VB) segue uma abordagem sob muitos aspectos inovadora. Como seu nome indica, deriva da conhecida linguagem BASIC (sigla de Beginners' All-purpose Symbolic Instruction Code, ou "código de instruções simbólicas para todas as finalidades, para principiantes"). O VB caracteriza-se principalmente por ser inteiramente voltado para a filosofia dirigida por eventos. Todo e qualquer código escrito em VB é associado a um evento - por exemplo, o "clicar" do mouse sobre um botão, a ativação de uma opção de menu, o pressionar de uma tecla, o decurso de um intervalo de tempo controlado por um temporizador, o próprio início de execução do programa. Por conseguinte, esse código só será executado ao ocorrer o evento correspondente. É fácil constatar que esta abordagem encaixa-se como uma luva ao modo de operação do Windows, e que a programação fica muito facilitada, e sua produtividade beneficiada ao livrar o programador de difíceis funções de controle, dispensando-o de ter que tentar simular a filosofia dirigida por eventos daquele ambiente através da lógica de programação seqüencial tradicional.

O VB oferece recursos para construir janelas contendo todos os elementos da interface visual padrão do Windows: botões, caixas de diálogo, menus, marcadores de opção, listas de itens para seleção, etc. Além disto, conta com as chamadas VB Extensions, módulos adicionais que permitem acrescentar novas funções, que podem ser desenvolvidas por terceiros, àquelas consideradas padrão e distribuídas com o sistema. Atualmente no release 3.0, com uma versão Standard e outra mais poderosa, denominada Professional, o VB oferece muitos e poderosos recursos, incluindo acesso a bancos de dados (com vários formatos suportados, inclusive na filosofia cliente/servidor, tão em voga atualmente), funções de comunicação e suporte a recursos avançados do Windows, como a interface de documentos múltiplos (MDI - Multiple Document Interface) e a ligação e incorporação de objetos (OLE - Object Linking and Embedding). Vide o Glossário para maiores explicações sobre estes recursos.

Finalmente, o sucesso do VB pode ser medido por dois fatos. Em primeiro lugar, versões adaptadas da linguagem estão sendo colocadas pela Microsoft como ferramentas de desenvolvimento de aplicações específicas para determinados softwares daquela empresa, como por exemplo a planilha Excel 5.0, o que denota um compromisso por parte da empresa em continuar investindo, dando suporte e ampliando o alcance da linguagem, enfatizando seu uso como ferramenta preferencial para o desenvolvimento de aplicações para o ambiente Windows.

Em segundo lugar, mesmo carregando o estigma de ser derivado da linguagem BASIC – que sempre foi vista com desprezo pela maioria dos profissionais e estudiosos de Informática, que tendem a considerá-la, talvez um tanto preconceituosamente, uma ferramenta de amadores, inadequada ao desenvolvimento de aplicações sérias –, a versatilidade e alta produtividade do VB legitimaram-no como a linguagem mais aceita e mais amplamente utilizada atualmente para a programação de aplicações para o ambiente Windows, inclusive em grandes corporações, que naturalmente precisam de ferramentas "sérias" e produtivas para atender a suas crescentes necessidades de descentralização e redução de porte de recursos computacionais (uma tendência conhecida pelo nome de downsizing).


Visão Geral do Microsoft VB

O VB contém um ambiente completo para o desenvolvimento de aplicativos Windows, que inclui ferramentas para o desenho de janelas e elementos visuais, dentro dos padrões do ambiente gráfico, bem como para a codificação, depuração, teste, execução e distribuição de programas. O aspecto geral do ambiente de desenvolvimento do VB, e de seus elementos componentes, pode ser examinado na Figura 1.

O VB trabalha parcialmente com o conceito de orientação a objetos, que vem encontrando crescente aceitação em Informática. Dizemos "parcialmente" porque, embora todos os componentes visuais de uma aplicação sejam tratados como objetos, a técnica de programação propriamente dita não segue esse paradigma. O programador não pode definir seu código de programa em termos de classes e métodos rigidamente encapsulados, como é preconizado na teoria de programação orientada a objetos. Entretanto, atributos e métodos, características essenciais de objetos, são utilizados na definição e manipulação dos elementos visuais do sistema. Na versão Professional, em aplicações que utilizam o acesso a bancos de dados (o que não é o nosso caso), este acesso é feito também através da manipulação de objetos, associados aos bancos de dados em questão.

A principal desvantagem do VB é o fato de não gerar código de máquina verdadeiro, mas sim um "pseudocódigo", que é interpretado em tempo de e-xecução. Esta é uma característica herdada de várias versões da linguagem BASIC, que em sua versão original era totalmente interpretada. Isto faz com que o código executável gerado não seja dos mais velozes e eficientes para algumas situações de processamento muito intensivo. Todavia, num ambiente altamente interativo como o Windows, em que o tempo de res-posta por parte do usuário é geralmente muito superior a qualquer demora do sistema, este problema dificilmente chega a ser crítico, e naquelas situações onde a rapidez for importante e o processamento muito intensivo, pode ser contornado através da já mencionada capacidade de integração com rotinas escritas em outras linguagens, através de DLLs. O "pseudocódigo" do VB também não impede a distribuição de aplicações autônomas, ou seja, o usuário não necessita possuir uma cópia do VB para poder e-xecutar sua aplicação; veremos adiante como isto é possível.


O conceito de projeto no VB

A cada aplicação desenvolvida em VB corresponde um projeto. Na nomenclatura do VB, um projeto é uma coleção de arquivos que armazenam todas as características e elementos componentes da aplicação, bem como o código de programação propriamente dito. A estrutura de um projeto é mostrada esquematicamente na Figura 2. Um projeto é definido em um arquivo de projeto, cujo nome tem a extensão padrão .MAK; é este arquivo que é chamado e aberto inicialmente pelo VB quando se deseja trabalhar em uma aplicação específica. Sua estrutura é bastante simples: nada mais que um arquivo de texto comum, no padrão ASCII sem formatação, que pode ser editado pelo programador, se necessário, através de um editor de textos qualquer (embora o arquivo seja automaticamente gerado e atualizado pelo VB à medida que se vai trabalhando em um novo projeto), e contém simplesmente uma lista de todos os arquivos componentes da aplicação em questão. Tais arquivos podem ser de três tipos: formulários (forms) , módulos e controles opcionais (correspondentes às VB Extensions, que já mencionamos anteriormente). Explicaremos a seguir o que são estes arquivos.


Os formulários

Os formulários (forms) correspondem às janelas que a aplicação a ser desenvolvida conterá. A cada formulário corresponde um arquivo de formulário (form file) , cujo nome tem a extensão padrão .FRM. Entretanto, os arquivos de formulários não contêm apenas a especificação visual dos elementos do projeto, ou seja, qual será o aspecto visual da janela em questão. Cada objeto tem seus atributos essenciais (por exemplo, sua cor de fundo, suas dimensões e coordenadas de localização na janela, seu título ou legenda, nome interno pelo qual deve ser referenciado na programação, se deve ser transparente ou opaco, se deve estar visível e/ou ativo ou não, etc.) definidos na forma de parâmetros, através de uma janela especial contida no ambiente de desenvolvimento do VB, denominada janela de propriedades (properties window). A especificação destes parâmetros está também contida no arquivo de formulário, e representa o estado inicial de cada objeto, quando o formulário é carregado e exibido; com poucas exceções, os atributos de cada objeto podem ser alterados em tempo de execução pelo programa aplicativo.

Finalmente, um formulário também contém código de programa. Veremos a seguir como isto se dá.


Objetos de um formulário: controles

Os objetos que um formulário contém são a ele atribuídos, em tempo de projeto, através de uma barra de ferramentas com botões gráficos (Figura 1). Cada um destes botões corresponde a um tipo de controle, que pode ser, por exemplo, uma caixa de texto, um botão, uma imagem, uma lista de dados, um temporizador, etc. Um controle, na terminologia do VB, corresponde a um objeto inserido no formulário pelo programador, em tempo de projeto. Isto é feito simplesmente acionando-se com o mouse o botão da barra de ferramentas correspondente ao tipo de controle desejado, e em seguida utilizando-se o mouse para delimitar e incluir o controle no formulário que o conterá.


Figura 1

- Visão do aspecto do ambiente de projeto do Visual Basic. Usamos aqui um projeto hipotético. Os números assinalados re-ferem-se a: 1 - barra de menu; 2 - barra de ferramentas; 3 - barra de controles; assinalamos com uma linha grossa aqueles controles obtidos através de Visual Basic Extensions (VBX); 4 - um formulário, contendo um controle (no caso, um botão de comando); 5 - janela de programa, contendo o código para o evento Click do botão Command1, visível na janela do formulário; 6 - janela de propriedades, no caso mostrando os atributos do botão Command1; e 7 - janela de projeto, com os arquivos componentes do projeto em questão.

Observe-se que os conceitos de controle e objeto, no VB, não se sobrepõem, porque embora todo controle seja um objeto, a recíproca não é verdadeira: o próprio formulário, como um todo, é um objeto, com propriedades, eventos e métodos próprios; além disto, na manipulação de bancos de dados pela versão Professional é possível criar objetos associados aos bancos de dados que se deseja acessar, e existentes e referenciados somente no código-fonte da aplicação.

Cada tipo de controle tem seus atributos ou propriedades peculiares, cujo estado inicial pode ser especificado através da janela de propriedades (Properties window) do ambiente de desenvolvimento do VB (Figura 1); além disto, cada tipo de controle também tem determinados tipos de eventos associados. Por exemplo, um botão ou um item de menu tem, dentre outros, o evento Click, que ocorre quando o usuário, tendo posicionado o cursor do mouse sobre o botão ou item de menu na tela, pressiona o botão físico de comando desse dispositivo; uma caixa de digitação de texto tem os eventos Change, que ocorre quando o texto contido neste objeto é alterado, KeyPress, que ocorre quando o usuário pressiona uma tecla qualquer, e outros; um temporizador, por sua vez, tem o evento Timer, que ocorre quando decorre um intervalo de tempo especificado como uma das propriedades deste objeto. A cada evento de cada objeto definido corres-ponde uma sub-rotina de programa, que o programador deve codificar, especificando assim os procedimentos a serem executados toda vez que ocorrer aquele evento específico. Desta maneira, a cada controle está associado também código-fonte, evidentemente também contido no formulário.


Módulos e seqüência de execução no VB

A abordagem orientada a eventos faz com que uma aplicação VB não tenha um programa principal propriamente dito, mas apenas sub-rotinas e funções, em princípio desconexas, e geralmente associadas, como vimos, a objetos e eventos específicos. Sempre existirá, naturalmente, a necessidade de codificar algumas sub-rotinas e funções inespecíficas a objetos e seus eventos, ou seja, código de programa na forma tradicional, não orientada a eventos. Seja para efetuar procedimentos de inicialização do programa, seja para e-xecutar tarefas comuns a vários eventos, ou para qualquer outra finalidade, sempre haverá algum código "tradicional". O programador em VB pode, então, criar sub-rotinas e funções genéricas, que podem ser armazenadas de duas maneiras. O código genérico pode estar associado a um formulário, e desta forma armazenado no arquivo de formulário, juntamente com o código associado aos objetos e seus eventos; neste caso, outras sub-rotinas e funções somente terão acesso ao código em questão se pertencerem ao mesmo formulário. Mas o programador pode também desejar que todo o sistema, e não apenas as sub-rotinas e funções de um único formulário, tenham acesso ao código em questão. Neste caso, este deverá ser colocado em um arquivo especial denominado módulo.

Módulos são arquivos que contêm unicamente código-fonte, dissociado de objetos e eventos, e compartilhado por toda a aplicação. Seus nomes têm a extensão-padrão .BAS (outra característica "herdada" da linguagem BASIC tradicional). Um módulo, assim como um formulário, pode conter várias sub-rotinas e funções; o programador pode colocar todo o seu código não dependente de eventos em um único módulo, ou distribuí-lo entre vários arquivos, conforme preferir. As sub-rotinas e funções contidas dentro de um módulo são acionadas quando invocadas por outras partes da aplicação. Entretanto, embora essas sub-rotinas e funções não estejam associadas diretamente a objetos e seus eventos, podem manipular livremente propriedades e métodos de objetos específicos.

Na maioria das vezes, existe a necessidade de se executarem procedimentos de inicialização do programa. Por esta razão, a execução de um programa em VB geralmente começa com uma sub-rotina com o nome padrão de Main( ), contida em um módulo, e que determina o curso seguinte de ação, geralmente a exibição de um formulário. Há também a opção de começar a execução do programa pelo carregamento de um formulário; neste caso, os procedimentos inicialmente executados correspondem aos do evento Load daquele formulário. O programador especifica o ponto de início de execução através de uma janela de opções de projeto, ativada por um item do menu de desenvolvimento do VB. A partir do momento em que for carregado o primeiro formulário, a execução da aplicação será governada somente pelos eventos que forem ocorrendo, sendo outras sub-rotinas e funções acionadas somente quando solicitadas por algum evento.


Controles adicionais: as VBX

As VB Extensions, mais conhecidas pela sigla VBX, são arquivos que podem ser acrescentados a um projeto em VB, permitindo acrescentar recursos adicionais, não disponíveis como padrão neste ambiente de desenvolvimento. São uma implementação de um conceito relativamente novo em engenharia de software, conhecido pela denominação de componentware; este conceito consiste em modularizar em alto grau as aplicações, permitindo que cada usuário agregue novos componentes funcionais à configuração básica de seu programa (no caso, o VB), personalizando-o conforme suas necessidades específicas. Estes componentes podem ser oferecidos pelo mesmo fornecedor do programa básico, ou desenvolvidos e fornecidos por terceiros, segundo especificações da companhia que desenvolveu o programa original (no caso, a Microsoft).

Uma vez agregada a um projeto, uma VB Extension (que é um arquivo cujo nome, como seria de se esperar, tem a extensão .VBX) fará com que um ou mais novos botões apareçam na barra de ferramentas do ambiente de desenvolvimento do VB. Ativando um destes botões, o programador poderá criar novos controles nos formulários de seu projeto. Como acontece com os controles disponíveis como padrão no VB, cada controle assim criado tem suas propriedades, eventos e métodos característicos.

O próprio VB já é distribuído com algumas VBX disponíveis, que permitem implementar recursos como controles tridimensionais, caixas de diálogo padrão, comunicação de dados, ferramentas para a confecção de gráficos, etc. A este conjunto o programador pode acrescentar outras VBX. A abordagem das VBX vem se revelando muito bem sucedida, com centenas de implementações existentes no mercado, muitas delas de domínio público, e destinadas a fins tão diversos quanto a implementação de menus padronizados, efeitos tridimensionais e de animação, funções especiais de multimídia, acesso a bancos de dados diversos, conversão automática e visualização de arquivos em formatos especiais e até mesmo o processamento de redes neurais artificiais. Na verdade, o sucesso das VBX tornou seu próprio nome obsoleto, uma vez que este padrão não é mais exclusivo do VB: várias outras plataformas de desenvolvimento para o ambiente Windows (como o Visual C++, já mencionado, e o novo dBase 5.0 for Windows da Borland International) já oferecem suporte à sua utilização.


A distribuição de programas em VB

Como já foi mencionado anteriormente, o VB não gera código de máquina verdadeiro, mas um pseudocódigo, que é interpretado em tempo de e-xecução. Portanto, o interpretador do VB é necessário para a execução. Entretanto, é possível distribuir aplicações desenvolvidas em VB sem que o usuário tenha uma cópia instalada do VB em seu microcomputador, o que naturalmente amplia em muito o alcance e utilidade do VB como ferramenta para o desenvolvimento de programas aplicativos. Isto é conseguido com o artifício de distribuir uma DLL especial juntamente com o aplicativo. Na versão 3.0 do VB, esta DLL tem o nome de VBRUN300.DLL; sua livre cópia e distribuição é autorizada pela Microsoft, sem qualquer tipo de ônus ou royalties. O VB permite gerar um arquivo de programa que contém a aplicação, supostamente "e-xecutável" e reconhecido como tal pelo Windows e pelo sistema operacional, mas que se limita a acionar as rotinas contidas na DLL de execução, que interpretam então o pseudocódigo e executam-no.

Além da DLL de execução, na distribuição de um programa desenvolvido em VB devem ser fornecidas ao usuário também as VBX eventualmente utilizadas. Alguns fornecedores de VBX distribuem-nas em duas versões, sendo uma utilizada para o desenvolvimento, com direitos de cópia e distribuição restritos, e outra utilizada para execução, de livre cópia e distribuição. Pode ser necessário, em casos especiais (por exemplo, o uso de rotinas escritas em outras linguagens, como Pascal, C ou C++, ou ainda no caso de acesso a bancos de dados), fornecer ainda outras DLLs ao usuário, além da de execução.


Bibliografia

Scott, F.D. - Visual Basic 2 for Windows. Rio de Janeiro: Editora LTC, 1993. Mansfield, R e Petroutsos, E. - Visual Basic Power Toolkit. Chapel Hill, USA: Ventana Press, 1995.
Voltar à HomePage Voltar ao Índice de Artigos Enviar email p/o Editor
Copyright (c) 1995 Renato M.E. Sabbatini