sexta-feira, 15 de fevereiro de 2008

Modelos, Normas e Padrões de Qualidade de Software

O que é Qualidade? Quando pode-se afirmar que determinado produto/serviço tem qualidade? Como se medir a qualidade? E em relação ao software? Como saber se um software tem ou não qualidade? Para responder estas questões, citaremos a definição da ISO (International Standards Organization), por meio da Norma Técnica ISO 9000:2000, que estabelece os fundamentos e vocabulário de um sistema de gestão da qualidade, e define qualidade como: “o grau no qual um conjunto de características inerentes satisfaz a requisitos”. Característica seria a “propriedade diferenciada”, enquanto que requisito é definido como “necessidade ou expectativa que é expressa, geralmente, de forma implícita ou obrigatória”.
O conceito de qualidade é um tanto complexo de se expressar, visto que, normalmente, a percepção de qualidade varia de acordo com as diferentes características, como ambiente, cultura, valores, etc. Em outras palavras, todas as definições, de uma forma ou de outra, fala de “satisfação da necessidade” ou “atendimento a requisitos”. Desta forma, as empresas, principalmente no setor industrial, já há algum tempo utilizam Modelos, Padrões e Normas de Qualidade definidos por organizações, associações e instituições, como ISO, IEEE (Institute of Electrical and Eletronic Engineering), INMETRO e ABNT. Em relação ao software, nas últimas duas décadas, com o surgimento e incorporação da Engenharia de Software tanto na academia quanto na produção, novos Modelos, Padrões e Normas de Qualidade específicos para a área de software foram paralelamente surgindo, como CMM/CMMI, ISO 12207, ISO 15504, ISO 9126 e MPS-BR, entre outros.
Assim como nos processos da Engenharia tradicional, o objetivo da Engenharia de Software é a melhoria da qualidade do seu produto com propostas de melhores práticas, técnicas, métodos de desenvolvimento de software. Então, as visões de avaliação da Qualidade de Software podem ser divididas em: Qualidade do Processo e Qualidade do Produto de Software.
Um dos grandes problemas históricos da área de software é o seguinte: o não cumprimento de prazos e de custos. Estudos mostraram que quando o processo de desenvolvimento não é bem definido, gerenciado, padronizado, normalmente resulta em um produto de baixa qualidade, seja por que demorou mais ou custou mais que o planejado, ou não atendeu aos requisitos anteriormente definidos, ou pior ainda, nem foi planejado. Diferentemente de um processo de produção industrializado, como a fabricação de um carro, por exemplo, o processo de desenvolvimento de software tem características que aumenta consideravelmente a sua complexidade (por enquanto, não é possível colocar robôs na linha de montagem), principalmente, para o desenvolvimento de software sob encomenda, como é o caso do TJ-RO, em que as soluções são propostas a partir das necessidades específicas do cliente/usuário.
Alguns modelos, padrões e normas para se avaliar a qualidade de um processo de desenvolvimento de software são os seguintes:
· ISO 12207 – padrão de termos, atividades e tarefas para o ciclo de desenvolvimento de software. Dividida em três grupos de processos: Fundamentais, de Apoio e Organizacionais.
· CMMI (Capability and Maturity Model Integration) – modelo proposto pelo Software Engineering Institute da Universidade de Carnegie Mellow, que certifica o nível de maturidade e de capacidade de processo de software em uma organização. É o sucessor do CMM e se constitui no padrão mundial de certificação de qualidade de software.
· ISO 15504 – também conhecida como SPICE (Software Process Improvement Capability ) é uma norma para avaliação da qualidade do processo, semelhante e compatível com o CMMI, que possui níveis de capacidade. É o padrão mais aceito na Europa.
· MR-MPS – modelo de referência do projeto MPS-BR (Melhoria do Processo de Software Brasileiro), proposto pela SOFTEX (Associação Brasileira para a Excelência do Software), que visa à certificação de qualidade do processo em níveis de maturidade, compatíveis com o CMMI, mas com foco na pequena e média empresa.
Quanto à visão de Qualidade do Produto, que é considerada como o resultado de um processo de desenvolvimento com qualidade, possui suas próprias normas, entre elas:
· ISO 12119 – norma específica para pacotes de software (também conhecidos como “software de prateleira”), que estabelece como os requisitos de qualidade devem ser representados e fornece instruções de como testar o produto de software em relação aos requisitos.
· ISO 25505 – nova versão da norma referente a pacotes de software, substituindo e atualizando a norma 12119.
· ISO 9126 – define um modelo de qualidade como referência na avaliação de qualidade do produto. Está subdividida em duas partes: um modelo para características externas e internas; e um modelo para qualidade em uso.
· ISO 14598 – define termos técnicos e fornece os conceitos e funcionamento do processo de avaliação de qualquer produto de software. Pode ser utilizada em complementação à norma ISO 9126.
Como questionamento final, fica a pergunta: como o Tribunal de Justiça de Rondônia pode tirar vantagens e implantar um processo de melhoria da qualidade de seu software? Fica aberto o debate e o espaço para um outro artigo que estou produzindo, aprofundando a visão da qualidade do processo de software.


Milcíades Alves de Almeida
MSc em Informática
Analista de Sistemas – COINF Ji-Paraná

Nenhum comentário: