terça-feira, maio 13, 2008

O que é qualidade de software?

A qualidade de software depende principalmente do correto emprego de boas metodologias pelos desenvolvedores de software, está ligada a um processo de melhoria contínua.

Um dos fatores que exerce influência negativa sobre a qualidade de um projeto é a complexidade que está associada ao tamanho das especificações, em razão das interações entre diversos componentes dos sistema.

As dificuldades no processo de software começam durante as etapas iniciais de um projeto: delimitar o escopo de um sistema está longe de ser uma tarefa trivial. A volatilidade dos requisitos é uma das maiores causas de insucesso de projeto de software. Muitas vezes, mesmo que a estrutura do software tenha sido toda desenhada, é muito complicado prever como será programa acabado.

A qualidade é um conceito muito subjetivo, o que para uns pode ser bom, para outros não. Por isso, estabelecer critérios (requisitos) que sirvam de base é uma forma de garantir a qualidade de um determinado produto/processo. É preciso saber como cada pessoa envolvida no projeto influi sobre os requisitos para conhecer com precisão o objetivo que se pretende alcançar.

Então é possível dizer que a qualidade de software é o conjunto de características mensuráveis que possibilitam a um produto atender as necessidades do cliente, de forma confiável, acessível, segura, no tempo certo e com o menor custo:
  • Qualidade de Processo – refere-se às “atividades, métodos, práticas e transformações que profissionais de informática utilizam para desenvolver e manter software e os produtos associados” (CMMI)
  • Qualidade de Projeto – refere-se ao correto emprego da metodologia definida e dos recursos disponibilizados na produção de software, objetivando: Eficiência, Eficácia, Controle de Custos, Cumprimento de Prazos, Satisfação de clientes e usuários
  • Qualidade de Produto – seu controle visa garantir a conformidade com as especificações de projeto
Algumas recomendações nas atividades relacionadas a qualidade de software:
  • Requisitos de qualidade de software - orçamento para realização, usuários envolvidos, ferramentas e métodos necessários, aspéctos relacionados a segurança de funcionamento e as consequencias que as falhas podem causar.
  • Detecção a não-conformidade dos requisitos - teste de software, revisões, inspeções, auditorias e ferramentas automatizadas de verificação.
  • Técnicas para gerenciamento de qualidade - orientada a pessoas, como é o caso de revisões e auditorias; estáticas, que não envolvem execução do produto; dinâmicas, que são efetuadas durante a execução do software; e as técnicas analíticas, que fazem uso de métodos formais.
  • Medição de qualidade - conjunto de dados obtidos por medidas é um recurso de extrema ajuda para auxiliar a tomada de decisões gerenciais.
Características que determinam o grau de qualidade de um produto final de software:
  • Facilidade de instalação
  • Facilidade de utilização
  • Previsibilidade de comportamento
  • Padronização das interfaces e do código fonte
  • Cobertura das necessidades funcionais que se pretende atender (escopo)
  • Exatidão de resultados
  • Tratamento apropriado de casos normais e exceções
  • Facilidade de manutenção