Qualidade de Software: muito além de dominar uma linguagem de programação

Sistemas fáceis de usar, que funcionam corretamente e com fácil manutenção, este é o sonho de qualquer desenvolvedor e também dos clientes.

No mundo atual, a qualidade se tornou uma  característica. Os usuários necessitam de programas e já sabem que, se os mesmos não forem de qualidade, não serão bem usufruídos. Usar a qualidade de forma que, ao mesmo tempo em que auxilie o trabalho do desenvolvedor e torne o produto mais atrativo e mais completo de recursos que facilitarão a utilização do usuário, já se tornou uma meta.

Imagem via Shutterstock

Imagem via Shutterstock

A qualidade de software está ligada a vários meios, e não existe uma maneira especifica de ser conquistada e implementada. É uma série de conceitos que devem ser implementados não só no produto, mas também na empresa e nos integrantes do projeto. Não existe apenas um meio de ser alcançada, mas sim, vários meios que devem ser analisados e seguidos de uma forma que, ao fim, resulta em um software relativamente bom e com as características de um produto de qualidade.

O que é a qualidade de um software?

Segundo a NBR ISO 9000:2005, “qualidade é o grau no qual um conjunto de características inerentes satisfaz aos requisitos“, ou seja, um software de qualidade é aquele que atende com facilidade aos requisitos solicitados pelo usuário. Portanto, podemos perceber que os requisitos do sistema, são de certa forma um dos passos mais importantes no desenvolvimento de um software.

Saber avaliar os requisitos e conseguir fazer o programa atender a todas as necessidades do cliente é fazer com que o software atenda a qualidade desejada, pois sabemos que a qualidade de um software é medida pela avaliação do grau de satisfação que o cliente tem em relação ao produto ou serviço.

Conceituar de uma forma única o termo qualidade de software é uma tarefa difícil, pois a qualidade de um produto está relacionada com vários outros elementos que iremos trabalhar.

A qualidade de um software não deve somente existir em um produto como também deve ser avaliada e reconhecida pelo cliente e, por causa disto, deve existir uma certificação com base em um padrão oficial. Para isso, existem alguns órgãos normalizadores conhecidos, como a ISO, ABNT e a IEEE. No Brasil, o órgão governamental responsável por esta tarefa é o INMETRO.

Criando um software de Qualidade

Agora que você já tem uma pequena definição do que é qualidade e conhece os órgãos que definem a qualidade, vamos em frente. Como criar um software de qualidade?

A maioria das pessoas responderia essa pergunta com: “ser bom programador, dominar uma linguagem de programação“, mas não, para se obter um software de qualidade só isso não é suficiente. É necessária muito mais. Inicialmente, é necessária a atividade de determinar os objetivos do produto que será criado e as restrições que serão associadas ao mesmo, ou seja, identificar e analisar os requisitos.

Os maiores problemas no desenvolvimento surgem nas primeiras etapas e justamente no levantamento e definição das atividades do sistema. Portanto, muito cuidado, se alguma coisa passar despercebida, haverá uma grande possibilidade em que se crie um software de baixa qualidade e muitas vezes com custo elevado.

Identificando os requisitos do sistema

Como uma das tarefas mais difíceis e importantes na criação de um projeto são os requisitos, saber analisa-los é um primeiro passo rumo à construção de um produto com qualidade. Os requisitos (objetivos ou restrições que o cliente define) são separados em requisitos funcionais e não funcionais. Os requisitos funcionais são aqueles que definem as funções que o cliente realmente precisa e deseja ter dentro do software, já os não-funcionais são as outras qualidades que o software deve possuir, por exemplo: desempenho, custo, usabilidade, etc.

Uma boa identificação de requisitos deve possuir uma linguagem clara, completa e correta para que se possa realmente entender o que ele irá implementar. Além disso, deve ser consciente, pois deve haver consciência do que realmente será útil e confiável ao usuário.

Com os requisitos corretos, conseguem-se os alicerces iniciais para um produto ou serviço de qualidade. Segundo José Carlos Marcoratti “Construir um sistema de software com base em requisitos inconsistentes e mal descriminados é como construir um edifício sem vigas”. Portanto, certificar-se de que os requisitos estão corretos e são realmente o que o cliente deseja é fundamental.

Modelos de qualidade de software

Atualmente existem vários modelos de qualidade de software que podem ser utilizados como base. Eles são divididos em algumas subclasses dependendo da forma de qualidade que atuam. Abaixo segue uma lista dos modelos nacionais e internacionais mais conhecidos e utilizados.

Qualidade de produtos:

  • ISO 9126 – Característica de qualidade de produtos de software;
  • NBR 13596 – Versão brasileira da ISO 9126;
  • ISO 9241 – Requisitos ergonômicos para o trabalho em escritório informatizado;
  • ISO 14598 – Plano para avaliação de produtos de software.

Qualidade de Processos e Organização

  • ISO 1107 – Norma para a qualidade do processo de desenvolvimento de software;
  • CMM – Modelo do Instituto de Engenharia de Software do Departamento de Defesa do EEUU (SEI) para avaliação de qualidade do processo de desenvolvimento de software. Essa norma é muito bem aceita no mercado;
  • SPICE ISSO 15504 – Projeto para avaliação de processos de desenvolvimento de software. Ainda não é uma norma oficial da ISO, mas o processo está em andamento;
  • ISO 9000 – Normas e modelos para a Gestão e Garantia da Qualidade.

Cada uma das normas acima citadas possuem metodologias e regras diferentes, que acompanham cada passo do projeto. Cabe a empresa aprofundar-se nos estudos para a aplicação das mesmas.

Conclusão

Em um mundo onde a grande maioria das empresas de softwares gasta boa parte do tempo procurando corrigir erros ao invés de criar novas soluções e novos códigos, o diferencial pode estar em não apenas criar um software melhor, com a melhor tecnologia ou com a funcionalidade X e Y, mas melhorar também o processo de criação do mesmo, visando uma entrega mais fiel, confiável e dentro de padrões e normas oficiais.


Orientador: Simone Santos – UNOESC – Campus Xanxerê/SC

Artigo Acadêmico completo disponível aqui.

Marina Benedetti Preto

Mais artigos deste autor »

Tecnóloga em analise e desenvolvimento de sistemas, tentado se dar bem no mundo virtual, já que no real..


2 Comentários

David Lima
1

Concordo totalmente! As etapas que não a de desenvolvimento são tão importantes quanto a própria, e sem dúvidas garantem uma qualidade final muito superior. Só não tinha essa coisa das normas em mente, achei interessante e vou me aprofundar nisso! 🙂

Bruno Farina
2

Ótimo artigo Marina!
Se ao menos equipes de programadores olhassem os pontos que não abordam apenas no desenvolvimento e dedicar mais pela qualidade do produto final, indo além de linguagens de programação e padrões de projeto, com certeza teríamos profissionais mais completos.

Deixe seu comentário

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