Qualidade de Software

Atingir um alto nível de qualidade de produto ou serviço é uma exigência inerente ao mercado. Quando se trata de qualidade de software não se foge a regra e não é aceitável entregar produtos com baixa qualidade e descobrir as deficiências e problemas após entregar o produto ao cliente.

1.1 A Importância da Qualidade de Software

Quando se trata de software, o conceito de qualidade é algo complexo e adotar a mesma definição de qualidade que se aplica a produtos manufaturados não pode ser aplicada sem inconsistência. Para Sommerville (2008) a noção de que o produto desenvolvido deve cumprir com sua especificação quando aplicada ao desenvolvimento de software torna-se ineficaz:

  • A especificação deve considerar as características desejadas pelo cliente e a organização de desenvolvimento pode ter requisitos não incluídos na especificação.
  • Certas características de qualidade não podem ser especificadas sem se tornar ambíguas.
  • É muito difícil descrever uma especificação completa de software. Nesse sentido, mesmo que um produto atenda sua especificação os usuários podem não considerá-lo de alta qualidade.

Evidentemente deve haver um esforço para melhorar as especificações, mas devemos aceitar que elas serão imperfeitas. Devem-se reconhecer os problemas com as especificações impostas e adotar técnicas para melhorar sua qualidade dentro das restrições impostas. Atributos de software como facilidade de manutenção, portabilidade ou eficiência podem ser fundamentais, mas que não são especificados explicitamente, entretanto podem afetar a qualidade percebida do sistema (SOMMERVILLE, 2008). Para Bezerra (2006) algumas das formas de se medir a qualidade de um sistema de software é através de seu desempenho, sua confiabilidade e da utilidade do mesmo.

Nesse sentido cabe aos gerentes de projeto garantir que o nível de qualidade seja atingido. Definir procedimentos e padrões, e garantir que eles sejam seguidos, já são um bom começo, mas não é o suficiente. Gerentes de qualidade reconhecem que existem aspectos intangíveis de qualidade que não se encaixam em padrões. Alémdisso, é importante criar uma “cultura da qualidade” na qual todos se comprometam a atingir um alto nível de qualidade (SOMMERVILLE, 2008).

Para Sommerville (2008) o gerenciamento de qualidade de software pode ser dividido em ter atividades principais:

  • Garantia de qualidade que consiste em estabelecer procedimentos e padrões que conduzam ao desenvolvimento de software de alta qualidade.
  • Planejamento de qualidade selecionar os procedimentos e padrões adequados e adaptá-los a um projeto de software específico o que vai de encontro com recomendações do PMBOK (2008).
  • Controle de qualidade definir e aprovar processos que garantam que os procedimentos e padrões de qualidade sejam seguidos.

O gerenciamento de qualidade fornece uma verificação independente sobre o processo de desenvolvimento de software. Ele deve ser separado do gerenciamento de projeto, para que a qualidade não seja comprometida pelas responsabilidades de gerenciamento relacionadas a prazos e orçamentos. A equipe de qualidade não deve ficar associada à um grupo específico de desenvolvimento, mas sim assumir um compromisso pela qualidade na organização. Os procedimento de garantia de qualidade devem ser documentados em um manual que define o processo de qualidade (SOMMERVILLE, 2008).

1.2 Garantia e Padrões de Qualidade

As atividades de garantia de qualidade definem uma estrutura para atingir a qualidade de software. O que envolve definir ou selecionar os padrões a serem aplicados no desenvolvimento de um produto de software. Sommerville (2008) estabelece dois tipos de padrões que podem ser estabelecidos como parte do processo de garantia de qualidade:

  • Padrões de produto se aplicam ao produto de softwareem desenvolvimento. Podem incluir padrões de documentos, padrões de documentação e padrões de codificação. Aplicam-se as saídas do processo de software.
  • Padrões de processo definem os processos a serem seguidos durante o desenvolvimento do software. Podem incluir definições de especificação, processos de projeto e validação e uma descrição dos documentos a serem gerados no curso de desenvolvimento. Além disso asseguram que os padrões de produto sejam seguidos.

Sommerville (2008) enumera uma série de motivos pelos quais os padrões de software são importantes:

  • Envolvem as práticas mais adequadas. Adquire-se mais conhecimento através de erros e acertos o que evita que os erros se repitam no futuro. Registram a sabedoria que tem valor para a organização.
  • Fornecem uma infraestrutura em torno da qual o processo de garantia de qualidade pode ser implementado.
  • Reduzem o esforço de aprendizados quando um novato entra na equipe e garante que todos adotem as mesmas praticas.

Desenvolver padrões de projeto de Engenharia de Software é difícil e demorado. Equipes de garantia de qualidade que estejam desenvolvendo seus padrões de projeto de Engenharia de Software deverão se basear em padrões nacionais, internacionais e organizacionais. Com base nesses padrões a equipe de garantia de qualidade deve elaborar um manual de padrões, adaptado às necessidades apropriadas a sua organização.

Entretanto, não raramente engenheiros de software julgam esses padrões não são necessariamente apropriados a um projetoem particular. Segundo Sommerville(2008) para evitar esses problemas engenheiros de qualidade que estabelecem os padrões precisam seguir as seguintes etapas:

  • Envolver os engenheiros de software no desenvolvimento de padrões e fazer com que compreendam e se comprometam com eles.
  • Revisar e modificar regularmente os padrões para que eles reflitam as constantes evoluções tecnológicas.
  • Fornecer ferramentas de software que apoiem a adoção dos padrões.

Nesse sentido criar padrões de documentação é uma boa solução e facilita a comunicação entre membros da equipe de desenvolvimento e os clientes.

1.3 Qualidade de Produto e Qualidade de Processo

A qualidade do processo de desenvolvimento afeta diretamente a qualidade dos produtos fornecidos. Isto se deve ao fato de a qualidade de produto estar diretamente relacionada ao processo de produção. É difícil medir atributos de software sem utilizá-lo por um longo período. Os processos por sua vez são relativamente simples de monitorar e padronizar. A melhoria de qualidade focaliza então a identificação de produtos de boa qualidade e nos processos utilizados no seu desenvolvimento. Entretanto, devido a complexidade entre produtos de software e os processos de software, uma mudança no processo não necessariamente conduz a melhoria da qualidade.

O software não é um produto manufaturado, mas projetado. Seu desenvolvimento é um processo criativo e não mecânico tornando-o significativamente influenciado por habilidades, experiências individuais e fatores externos que afetam diretamente na sua qualidade (SOMMERVILLE, 2008).

Treinamentos relacionados com essa postagem







Referências:

BEZERRA, Eduardo. Princípios de Análise e Projeto de Sistemas com UML: Um guia prático para modelagem de sistemas orientados a objetos através da Linguagem de Modelagem Unificada. Rio de Janeiro: Elsevier e Campus, 2006.

SOMMERVILLE, Ian. Engenharia de Software : 8 ed. Rio de Janeiro: Prentice-Hall, 2008.

PMBOK. Um guia do conhecimento em gerenciamento de projetos (Guia PMBOK). 4 ed. Pennsylvania: Project Management Institute, Inc., 2008.

Leandro Costa

Sou desenvolvedor de software a desde 2008, além de programar gosto de esportes de aventura como rapel, tirolesa, trilhas de bike, apreciador de cervejas, baladas, motos e do bom e velho Rock’n Roll também gosto de história, ficção científica e de tecnologia. Atualmente sou consultor de Agile Software Delivery na Erudio Training e instrutor na Udemy.

Deixe um comentário

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