Qualidade de Software

Recentemente estive analisando alguns projetos de softwares open source com o objetivo de colaborar no desenvolvimento. A grande maioria não possui rotinas de testes, comentários em código ou qualquer tipo de documentação útil aos novos desenvolvedores. Assim resolvi falar um pouco sobre qualidade de software do ponto de vista da construção.

Um software tem característica de qualidades internas e externas. As características externas são aquelas que os usuários tem conhecimento e se preocupam, por exemplo, se o software é fácil de usar. As características internas são mais preocupações dos programadores, por exemplo, se o software é fácil de modificar. Os usuários querem saber se o software é fácil de usar e não fácil de modificar. Querem saber se o software funciona corretamente e não se o código é legível.

São características de qualidade externas:

  • Adaptabilidade
    Capacidade de alterar o ambiente de maneira simples sem necessidade de modificação no software.
  • Confiabilidade
    Capacidade do software funcionar corretamente com o mínimo de falhas.
  • Eficiência
    Capacidade de funcionar corretamente e fornecer o desempenho adequado com o uso mínimo de recursos disponíveis.
  • Integridade
    Garante integridade dos dados acessados e restrição de acessos ao software.
  • Precisão
    Grau de precisão das informações geradas pelo software.
  • Robustez
    Capacidade do software continuar funcionando na presença de dados inválidos ou condições inesperadas.
  • Usabilidade
    Facilidade dos usuários aprenderem a utilizar o software.

São características de qualidade internas:

  • Capacidade de Teste
    Capacidade com que se pode fazer testes de unidades e de integração para verificar se o software satisfaz os requisitos.
  • Flexibilidade
    Facilidade de modificar o software para usos diferentes daquele para o qual foi projetado.
  • Inteligibilidade
    Facilidade de compreender a coerência de um software em um nível superior do que a legibilidade proporciona.
  • Legibilidade
    Facilidade de entender o código-fonte do software.
  • Manutenibilidade
    Facilidade para modificar um software ou corrigir problemas.
  • Portabilidade
    Capacidade de modificar o software para uso em ambientes diferentes daquele para o qual foi projetado.
  • Reusabilidade
    Facilidade de reutilizar partes do software em outros projetos.

Algumas dessas características têm diferentes variações de significados. As diferenças entre elas não são completamente claras e algumas vezes as características internas afetam as externas. Um software que não é flexível não pode ser aprimorado de acordo com as solicitações dos usuários, o que, por sua vez, afeta a característica externa de usabilidade.
A questão é que algumas características da qualidade de software são acentuadas para ajudar aos usuários enquanto outras tornam a vida do programador mais fácil. O que falta em muitos projetos de código aberto é uma atenção especial às características de qualidade internas.
Espero que esse cenário mude em breve.

You can leave a response, or trackback from your own site.

Leave a Reply

Powered by WordPress | Shop the Best Verizon Wireless Deals. | Thanks to Best CD Rates, Credit Cards and Credit card