Dicas para o desenvolvimento de um software funcional – Parte I

Leia também: Parte 2Parte 3Parte 4Parte 5Parte 6Parte 7Parte 8Parte 9Parte 10Parte 11

Embora 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 projeto, 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 do software, além de garantir uma personalidade única para o sistema.

Este é o primeiro de uma série de artigos sobre este assunto, onde o objetivo é transmitir um base sólida sobre alguns pontos importantes para o desenvolvimento de um sistema, envolvendo a implementação do código e o visual da aplicação.

dicas-desenvolvimento-sistemas-excelencia

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 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 componentes. Procure também organizar a ordem de tabulação dos campos, para que a digitação de dados se torne mais rápida através do TAB para avançar o cursor entre os campos.

A questão do visual das janelas deve ser discutida em fase de planejamento do projeto durante a análise e levantamento 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 uma prévia da tela desenhada em um documento. Este desenho é apresentado ao cliente para avaliação, e após a aprovação ela finalmente passa a ser desenvolvida.

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 iguais 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.

Backup

Sem dúvidas, este item é indispensável! Manter cópias do banco de dados garante uma maior confiabilidade no sistema quando for necessário recuperar informações. Porém, de nada adianta criar backups no próprio computador do cliente já que existe a possibilidade do disco rígido local ser danificado. Neste caso, o banco de dados e todos os seus backups serão perdidos, a 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.

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 em um diretório FTP 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 traz uma maior comodidade para o usuário. A aplicação fica ainda mais rica quando dispõe a opção de 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.

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 IconArchive. Utilize imagens sugestivas de acordo com a função e procure padronizá-las nas telas em comum. Por exemplo, utilize a mesma imagem para os botões de relatórios e a mesma imagem distinta para os botões de Salvar, Alterar e Excluir. Essa prática permite que o usuário “associe” a imagem à funcionalidade do botão, minimizando a complexidade do sistema.

Em breve postarei o segundo artigo sobre este tema! Um abraço!

Leia também: Parte 2, Parte 3, Parte 4Parte 5Parte 6Parte 7Parte 8Parte 9Parte 10Parte 11

André Celestino

Mais artigos deste autor »

Desenvolvedor de software há 7 anos e autor do blog AndreCelestino.com. Graduado em Sistemas de Informação e pós-graduado em Engenharia e Arquitetura de Software com ênfase em Desenvolvimento Ágil. Atualmente trabalha como Engenheiro de Software.


6 Comentários

Paulo Porto
1

Faltou só falar sobre os testes automatizados. Podemos inclusive dizer que seria o tópico mais importante e que tem tudo a ver com o título deste post. No mais, foi tudo bacana.
Até mais!

André Luis Celestino
2

Olá Paulo Porto!
Obrigado pelo comentário, você ressaltou um ponto importante!
Pretendo comentar sobre os TDD nos próximos artigos!

Leonardo
4

Excelente post, parabéns. Estou no termino do curso de Análise de Sistemas e ainda não tinha visto tal dicas.

Deixe seu comentário

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