Esse artigo faz parte da revista Clube Delphi edição 41. Clique aqui para ler todos os artigos desta edição

 

Atenção: por essa edição ser muito antiga não há arquivo PDF para download. Os artigos dessa edição estão disponíveis somente através do formato HTML. 

 

Software para as massas

Desenvolvendo um utilitário de uso geral

A maioria dos desenvolvedores Delphi está acostumada a criar um tipo bastante específico de sistema: aplicações corporativas, como folha de pagamentos ou sistemas de controle de estoque. A maior parte desses softwares utiliza bancos de dados e tem um público bastante delimitado, restrito a alguns tipos de empresas, (ou a uma única empresa, no caso dos sistemas por encomenda), e visam principalmente o mercado nacional.

Por outro lado, os “utilitários de uso geral” são bastante diferentes, tanto nas suas características quanto no público alvo. Não são limitados a um público específico: tanto empresas como usuários comuns podem ser usuários; e raramente utilizam bancos de dados, geralmente usam soluções simples de armazenamento, que não necessitam de licenciamento e não apresentam grande dificuldade na instalação. O desenvolvimento de um utilitário de uso geral é muito diferente do desenvolvimento de um aplicativo empresarial, e suas dificuldades são também muito diferentes.

No meu caso, tive a oportunidade de desenvolver alguns utilitários para a revista americana PC Magazine. Neste artigo, descrevo os passos do desenvolvimento, mostrando algumas dificuldades encontradas e lições aprendidas. Na segunda parte do artigo, mostro soluções técnicas para alguns problemas específicos, encontrados no desenvolvimento do utilitário WMatch (www.pcmag.com/article2/0,4149,485522,00.asp).

O utilitário

O WMatch faz uma comparação entre dois diretórios, e mostra seus arquivos lado a lado, comparando aqueles que têm o mesmo nome, quanto à idade, tamanho ou conteúdo. A Figura 1 mostra o utilitário em ação.

Figura 1. Comparação de arquivos com o utilitário WMatch

Projeto e escopo

Ao contrário de aplicativos para empresas, nos quais a idéia vem de uma necessidade específica, muitas vezes o aplicativo de uso geral não é sugerido pela necessidade do cliente; ele é criado a partir de uma idéia ou, parafraseando Glauber Rocha, "Uma idéia na cabeça e um computador na mão".

No caso de se escrever um utilitário para uma revista, as especificações são discutidas com o editor responsável. Neste passo, é determinado o que o programa irá fazer – e o que não fará, ou seja, é definido o escopo do utilitário.

Não adianta fazer um “canivete suíço” pois, além disso aumentar o custo do aplicativo, estende ou inviabiliza o prazo de desenvolvimento. Quando você está desenvolvendo um shareware, existe uma certa flexibilidade, mas ao desenvolver para uma revista, o prazo deve ser cumprido à risca, devido a obrigações editoriais.

Além disso, aumentar muito o número de funções da ferramenta pode, por incrível que pareça, diminuir sua funcionalidade e sua utilidade: a maior parte dos usuários não precisa de todas os recursos, e um número excessivo de funcionalidades pode reduzir a facilidade de uso da ferramenta.

Interface gráfica

Após a fase de projeto do aplicativo, passa-se à fase de criação da interface gráfica. Deve-se tomar muito cuidado nessa etapa, pois não importa o quão mirabolantes sejam as soluções adotadas, ou se você usou técnicas de programação ultramodernas. Para o usuário o que interessa é a aparência, funcionalidade e facilidade de uso.

Quando falamos em aparência, não estamos falando de luzes que piscam ou janelas tridimensionais. A interface gráfica deve passar por uma série de checagens: o programa deve cumprir o que se propôs a fazer;  o utilitário deve ser fácil de operar, devendo-se evitar fatos como uma funcionalidade importante escondida atrás de várias caixas de diálogo, ou opções de menu ou rótulos de informações que confundem o usuário; a entrada de dados deve ser simples e não trazer dificuldade ao usuário; a interface deve ser intuitiva, sem que haja muita distração: cores, fontes e sons devem ser usados com parcimônia.

Uma grande diferença entre um aplicativo de uso comercial e um de uso geral é o número e o tipo dos usuários: enquanto um aplicativo comercial bem sucedido atinge centenas, às vezes milhares de cópias, um utilitário de uso geral distribuído pela web pode atingir números chegando à casa do milhão de cópias. Os usuários também têm grande variação: um sistema de contabilidade será sempre operado por contadores ou auxiliares de contabilidade. Um sistema de uso geral poderá ser operado por qualquer pessoa, desde o desenvolvedor experiente, até por quem começou a usar computadores recentemente. Ele deve atender a ambos de maneira eficiente: um aplicativo desse tipo não pode ser feito visando este ou aquele tipo de usuário; deve estar preparado para todos.

Veja algumas caixas de diálogo do WMatch na Figura 2.

 

Figura 2. As poucas telas do WMatch exigiram uma atenção a detalhes maior e uma preocupação especial com a clareza e a facilidade de uso

Desenvolvimento e testes

Definidas as funcionalidades e a interface, passa-se ao desenvolvimento do programa. Aqui é implementada a funcionalidade determinada na fase anterior e feitos os primeiros testes. Quando o utilitário é dado como pronto, quando tudo que ele se propunha a fazer foi implementado de maneira adequada, sem que ocorram erros aparentes (ou, se houver erros, que eles sejam conhecidos e não afetem a funcionalidade), o programa entra na fase que considero a mais importante: o beta-teste. ...

Quer ler esse conteúdo completo? Tenha acesso completo