Metodologia XP (eXtreme Programming) – Qualidade de software

Esta série de artigos sobre Metodologia XP de desenvolvimento é uma versão compacta do trabalho de conclusão de curso (TCC) onde o título original da monografia em que foi baseada esta série é:

O USO DA METODOLOGIA XP NO DESENVOLVIMENTO DE SOFTWARE E OS IMPACTOS NA GESTÃO DE RISCOS


Toda semana, sempre às segundas-feiras, postaremos uma parte ou capítulo da monografia, o que totalizará 10 semanas de postagens. No capitulo de hoje, abordaremos o tópico “Qualidade de software” onde tentaremos listar os principais atributos que deve ser levado em consideração para afirmar que um determinado projeto de software é de qualidade.

Sumário do artigo “Metodologia XP”:

Metodologia XP ( eXtreme Programming )

Qualidade de Software

Para Sommerville (2007), atingir um alto nível de qualidade deve ser atualmente o maior objetivo das organizações, pois o mercado não mais admite que se entregue um produto de baixa qualidade e aos poucos reparar os defeitos. Em relação ao fator qualidade, o software se tornou igual a qualquer outro produto comercializado como automóveis, televisores e computadores.

Segundo Geek (2008, apud NETO, 2008) a qualidade de software não é mais um diferencial de mercado, é um pré-requisito para toda empresa que queira lançar e manter seu produto no mercado, e para tanto, ela necessita que seus clientes percebam essa qualidade em seus softwares. Para este autor, a qualidade é um item essencial a se considerar em um software e existem boas razões para isto. A Tabela 1 mostra algumas dessas razões.

A ISO (International Organization Standardization) e a IEC (International Electrochnical Comission) se uniram para editar normas internacionais de qualidade de software, e assim definiram: “A totalidade de características de um produto de software que lhe confere a capacidade de satisfazer necessidades explícitas e implícitas”. Necessidades explícitas são os requisitos definidos para atender os objetivos, funções e desempenho esperado pelo software, já as necessidades implícitas são os requisitos que mesmo não sendo declarados na documentação, são fundamentais devido à gravidade das conseqüências, como por exemplo, a integridade dos dados (RODRIGUES et al, 2009).

Segundo Pressman (2006, p.351), na tentativa de identificar os atributos de qualidade de um software, a norma ISO 9126 de 1991 identifica seis atributos-chave de qualidade:

  • Funcionalidade – Capacidade do software de funcionar adequadamente e atender as necessidades especificadas;
  • Confiabilidade – Capacidade do software de funcionar por determinado período de tempo livre erros e falhas;
  • Usabilidade – Capacidade do software de ser compreendido e utilizado facilmente pelo usuário;
  • Eficiência – Capacidade do software de atingir seu melhor desempenho utilizando seus recursos da melhor forma;
  • Manutenibilidade – Capacidade do software de realizar modificações e reparos sem grandes dificuldades;
  • Portabilidade – Capacidade do software de ser transferido facilmente de um ambiente (plataforma) para outro.

Para Sommerville (2007), além dos atributos citados por Pressman, existem ainda outros atributos importantes a se considerar em um software de qualidade. Eles são:

  • Segurança – Capacidade do software de impedir o acesso de pessoas ou programas não autorizados;
  • Robustez – Capacidade do software de manter o processamento, mesmo com ações inesperadas;
  • Facilidade de compreensão – Capacidade do software de ser explicativo e memorizado facilmente;
  • Facilidade de adaptação – Capacidade do software de se adaptar a novas necessidades do usuário quando necessário.

Evidentemente que a importância de cada um desses atributos depende muito do projeto e do custo de cada atributo. Eles são essenciais para se obter um software de qualidade do ponto de vista da Engenharia de Software, mas do ponto de vista do usuário, um software de qualidade é fácil de usar, de simples manutenção e o mais importante, funciona corretamente (RODRIGUES et al, 2009).

De acordo com Leite (2001), de nada adianta concentrar as atenções somente no produto de software a ser construído. Tão importante como a qualidade do produto é a qualidade do processo utilizado na fabricação desse produto. Portanto, para lidar com qualidade de software é necessário que qualidade de produto e processos caminhem lado a lado.

Segundo Garcia (2009), processos de software são um conjunto de atividades, métodos, práticas e tecnologias que as pessoas utilizam para desenvolver e manter softwares e produtos relacionados. E as motivações que levam as empresas a buscar processos de qualidade são: aumento da qualidade, diminuição do retrabalho, maior produtividade, redução do tempo para atender o mercado, maior competitividade e maior precisão nas estimativas. Mesmo com todas essas motivações a respeito de processos, Astels et al (2002) chegaram à conclusão de que cerca de 60% dos projetos de desenvolvimento são executados sem um processo definido, pois as equipes de desenvolvimento ignoram muitas regras de processo devido a estrutura rígida que a maioria dos processos impõe.

Depois de analisar os requisitos para se ter um software de qualidade e concluir que a qualidade se estende até os processos de desenvolvimento, é importante buscar entender melhor esses processos, bem como avaliar os fatores que caracterizam um processo de software de qualidade.

Continue lendo essa série de artigos sobre em Metodologia XP ( eXtreme Programming ) – Modelos tradicionais

Observação: Todos as referências serão creditadas no último artigo da série.