Dicas para o desenvolvimento de um software – Parte 1

Dicas para o desenvolvimento de um software - Parte 1Embora a internet esteja repleta de tutoriais e dicas sobre desenvolvimento, sempre surge a dúvida de como um sistema deve ser devidamente desenvolvido dentro de padrões. Na verdade, não há uma regra geral ou um processo único para o desenvolvimento de um sistema, mas existem boas práticas que, quando adotadas, podem trazer grandes vantagens em um software, tanto para o cliente quanto para o próprio desenvolvedor. Em muitas empresas de software, tais práticas são consideradas como uma metodologia de desenvolvimento, principalmente por facilitar a manutenção e atualização, além de garantir uma personalidade única para o sistema. Este é o primeiro de vários artigos sobre este assunto, onde o objetivo é transmitir um base sólida sobre alguns pontos importantes para o desenvolvimento de um software envolvendo a implementação do código e o visual da aplicação.


Facilidade de uso

Colocar vários botões e informações em excesso em uma janela pode comprometer a usabilidade da aplicação. Simplicidade e objetividade devem estar casados com a funcionalidade do sistema para proporcionar um maior “conforto” ao usuário. Procure simplificar o visual das janelas, adicionando somente os componentes necessários que o usuário de fato irá utilizar. Estruture a janela de forma que os campos fiquem em uma sequência objetiva, agrupados por assunto ou categoria. Em um cadastro de clientes, por exemplo, divida os campos por seções, como dados pessoais, dados profissionais, contato e informações adicionais. Assim a localização de informações fica bem mais fácil e evita que o usuário fique confuso em meio a tantos campos. Procure também organizar a ordem de tabulação, para que a digitação de dados se torne mais rápida através do TAB ou ENTER para avançar o cursor entre os campos.
A questão do padrão visual das janelas deve ser discutida na fase inicial do projeto durante a análise de requisitos. Para garantir que o visual fique conforme a expectativa do usuário, os projetistas utilizam uma técnica conhecida como Prototipação, que consiste em elaborar uma prévia da tela desenhando-a em um documento. Este desenho é apresentado ao cliente para avaliação, e após a aprovação finalmente o visual passa a ser desenvolvido.


Splash Screen

Durante o desenvolvimento de um software, é natural que haja a necessidade de executar uma série de instruções e validações durante a inicialização do sistema, como verificar o caminho do banco de dados, criar backups, carregar módulos e abrir tabelas. Essas instruções podem atrasar a inicialização e a exibição do sistema para o usuário. Consequentemente, o usuário pode pensar que o sistema não foi aberto e tentar abri-lo novamente, criando duas instâncias distintas do sistema na memória. Para evitar este problema, desenvolvedores criam telas de inicialização, também conhecidas como Splash Screen. Essa tela geralmente contém o nome do software e uma barra de progresso indicando o andamento da inicialização enquanto todas as instruções necessárias são executadas em segundo plano.

Splash Screen - NetBeans 7
Splash Screen – NetBeans 7

 

Backup
Sem dúvidas, este item é indispensável! Manter cópias do banco de dados garante maior confiabilidade no sistema quando for necessário recuperar informações. Porém, de nada adianta criar backups no próprio computador do cliente quando existir a possibilidade do disco rígido local ser danificado. Neste caso, o banco de dados e todos os seus backups serão perdidos, ao menos que exista uma cópia em outro computador. Portanto, procure disponibilizar no sistema a opção para criar backups em locais remotos, como discos externos ou em outro computador na rede local. Outra opção bastante segura é salvar o backup em um diretório virtual na internet, popularmente conhecido como “nuvem”. Mesmo que aconteça uma falha geral na rede e nos dispositivos móveis do cliente, o backup estará armazenado na internet e poderá ser recuperado através de um simples download.

Exemplo de tela para backup
Exemplo de tela para backup

 

Embora este recurso esteja disponível, é provável que o usuário esqueça de salvar backups do banco de dados periodicamente. A solução é criar caixas de diálogo para avisá-lo do backup ou realizar a cópia silenciosamente, sem a intervenção do usuário. Um bom exemplo disso é configurar o sistema para salvar o backup todas as vezes que o sistema for finalizado ao final do dia.


Visual da aplicação

Este item não é obrigatório, mas com certeza é um diferencial importante em uma aplicação. Um visual agradável, com letras nítidas e cores leves gera comodidade para o usuário. A aplicação fica ainda mais rica quando dispõe de opções para personalização do visual, como aplicação de cores e temas. Atualmente é comum encontrar componentes na web com a finalidade de aperfeiçoar o visual de uma aplicação. Por exemplo, a interface Ribbon, presente nas versões 2007 e 2010 do pacote Microsoft Office, é uma das opções para modernizar a tela principal do sistema. O Ribbon pode ser utilizado no Visual Studio com o componente Elegant UI ou no Delphi com o pacote TMS Component Pack.

Exemplo de menu com Interface Ribbon
Exemplo de menu com interface Ribbon

 

Procure também utilizar imagens bem definidas em menus e botões, de preferência no formato PNG. Na internet há dezenas de sites com pacotes de ícones e imagens para serem utilizadas em aplicações desktop e páginas web, como o Icon Archive. Utilize imagens sugestivas de acordo com a função e procure padronizá-las nas telas em comum. Por exemplo, atribua a mesma imagem para os botões de relatórios e a mesma imagem para os botões de Salvar, Alterar e Excluir, respectivamente. Essa prática permite que o usuário “associe” a imagem à funcionalidade do botão, minimizando a complexidade do sistema.

Bom, fico por aqui, pessoal!
Um abraço!


Confira também as outras partes dessa série de artigos:

Dicas para o desenvolvimento de um software – Parte 1
Dicas para o desenvolvimento de um software – Parte 2

Dicas para o desenvolvimento de um software – Parte 3
Dicas para o desenvolvimento de um software – Parte 4
Dicas para o desenvolvimento de um software – Parte 5
Dicas para o desenvolvimento de um software – Parte 6
Dicas para o desenvolvimento de um software – Parte 7
Dicas para o desenvolvimento de um software – Parte 8
Dicas para o desenvolvimento de um software – Parte 9
Dicas para o desenvolvimento de um software – Parte 10
Dicas para o desenvolvimento de um software – Parte 11


Compartilhe!
Share on FacebookTweet about this on TwitterShare on LinkedInShare on Google+Pin on PinterestEmail this to someone

11 comentários

  1. Tem sido de grande aproveito os seus tutoriais e exemplos neste site. Estou no início da programação e isso tem me ajudado muito. Grato, André.

  2. Oi andre, estou com problema no caso um projeto que estou desenvolvendo em lazarus ao abrir um DM estou conectando todos os componentes no banco que no meu caso é Oracle xe porem ao acessar o Dm para pesquisa esta enviando uma mensagem access violation. Se eu usar os componentes do proprio form nao da esse problema. Grande abraço.

    1. Olá, Washington! Não tenho experiência com Lazarus, mas já me deparei com um problema semelhante no Delphi. Este erro provavelmente pode estar ocorrendo pelo motivo de que, no momento que você acessa o DM, ele ainda não foi criado. Talvez a causa possa ser a ordem na qual os formulários estão sendo construídos. Por exemplo, se o formulário que utiliza o DM for criado ANTES que o próprio DM, este erro pode ocorrer. Para verificar essa ordem, acesse o menu Project > Options > Forms (se existir no Lazarus) e verifique a sequência em que os formulários se encontram na lista. Experimente posicionar o DM no topo da lista e fazer um teste.

      Abraço!

  3. Boa noite, André.

    Como comentei antes, estou refazendo meu software de 18 anos desde o inicio(BD e Programa), e vou seguir suas orientações, nesta sequencia de artigos, comentarei detalhes no decorrer.
    Só no inicio da leitura já tirei uma duvida, o que é, e pra que usar ‘Splash Screen’, Concordo que fazer backup só na mesma maquina pode não ser útil, ainda não uso a nuvem, mas cada vez que o aplicativo de gerenciamento é aberto em uma estação ele gera um backup nela, isso já foi útil varias vezes.
    Obrigado pela atenção.

    1. Opa, Gerson, fico contente que essa série de artigos lhe ajudarão em suas codificações!
      A respeito do backup, utilizar a própria estação para gravar backups é uma bom método. Porém, imagine que aconteça um problema com essa estação, como um dano grave no HD. Todos os backups seriam perdidos. A vantagem de utilizar a nuvem é justamente evitar este risco, pois, mesmo se houver uma falha em todos os computadores da empresa, os backups continuariam ilesos.

      Abraço!

  4. Ola, André.
    Os backups são feitos em varias estações, só não no próprio servidor e normalmente tenho uma por cada dia da semana. Dependendo do cliente são de 2 a 5 estações. Realmente gostaria de colocar na nuvem, mas como transferir bases que variam de 70MB até 1.4GB? Acho que só transferindo as alterações do dia, vendas e estoque, acho fácil, mas contas a pagar e receber, e outras, teria que acrescentar um campo de ultima modificação, colocar uma vez a base na nuvem e ir atualizando ela. Parece viável. Você esta certo, não é bom manter os backups só na empresa, já aconteceu de roubarem todos os micros de um cliente e por acaso os backups estavam hospedados na rede.
    Já pensei em oferecer esse serviço, com uma taxa adicional. Vou amadurecer essa ideia.
    Duvida: na nuvem, não tenho um servidor para atualizar só os dados, tenho?

    1. Olá, Gerson!
      Existem vários tipos de servidores que podem ser adquiridos na nuvem. No caso de banco de dados, pode-se utilizar um servidor web para armazenar um espelho do banco. Ao final de cada dia, como você disse, as alterações são transferidas para esse banco de dados remoto como uma forma de cópia de segurança.
      Porém, esse procedimento de identificar as alterações diárias pode ser um pouco complexo. Eu recomendo que todo o banco de dados seja copiado para a nuvem. Se o arquivo tem mais que 1GB, experimente compactá-lo antes de enviar. E mais uma dica: agende um horário (por exemplo, na madrugada) para fazer o envio. Dessa forma não impacta na utilização da aplicação.

      Abraço!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Preencha o campo abaixo * Time limit is exhausted. Please reload CAPTCHA.