INTRODUÇÃO
A ISO 9000 surgiu há dez anos, fazendo um desafio às empresas que não
pretendiam ficar fora do mundo globalizado. A implementação desse conjunto
de normas de gestão, padronizadas pela International Organization for
Standardization, a ISO, com sede em Genebra, tornou-se cada vez mais
necessária para atender a exigências internacionais de qualidade. Reflexos
disso são sentidos diretamente nos produtos e serviços, na competitividade
e na produtividade. Para obter um certificado IS0 9000, exige-se um
grande número de formulários, planilhas e documentos, muitas vezes resultando
no engessamento da empresa e na desmotivação de pessoal. "Toda essa burocracia acabou fazendo com que as empresas se perdessem
um pouco em meio a tantos documentos a preencher" |
ISO 9000
A ISO tem como objetivo fixar normas técnicas essenciais de âmbito internacional . Aproximadamente 113 países já adotaram a ISO como norma essencial e, dados recentes, nos mostram que cerca de 95% da produção industrial de todo o planeta são oriundas de países que adotam as normas ISO série 9000 como normas oficiais. No mundo inteiro, já são mais de 120.000 certificados emitidos pela ISO, sendo que o Brasil já conta com 1.300 certificados e possivelmente outros tantos em vias de emissão. Como a ISO define regras iguais para todos, as empresas competem igualmente. Apesar do grande número de normas da família ISO 9000, somente três delas estabelecem os requisitos mínimos obrigatórios de um Sistema de Qualidade. Estas normas são as chamadas Normas Contratuais: ISO 9001, 9002 e 9003, sendo que as empresas são certificadas em uma delas de acordo com a sua atividade comercial. Alguns estudiosos se referem a ISO 9000 como um passo obrigatório em busca da QUALIDADE TOTAL. Outros já dizem que são atividades distintas, sem elo entre elas. Porém, todos são unânimes em afirmar que a ISO 9000 é uma importante ferramenta. |
A certificação pode ser de primeira
parte quando a própria empresa atesta que seu sistema de Qualidade atende aos
requisitos de uma norma. Pode ser de segunda parte quando o atestado é
fornecido pelo contratante da empresa que para tal realiza auditorias no
sistema de Qualidade da empresa. É o caso da certificação de sistemas de
Qualidade realizada pela Petrobrás e Telebrás junto com seus fornecedores.
A certificação pode ser também de
terceira parte quando um órgão independente, denominado OCC Organismo de
Certificação Credenciado, reconhecido pelo INMETRO (Instituto de Normalização,
Metrologia e Qualidade Industrial), realiza auditorias no sistema de gestão da
qualidade da empresa e comprova sua conformidade aos requisitos de uma dada
norma da série ISO 9000. No Brasil existem várias entidades certificadoras de
terceira parte operando no mercado, a maioria delas de origem estrangeira. Tais
entidades já concederam um total de 1.650 certificados de conformidade a
empresas brasileiras.
O sistema da Qualidade da empresa é certificado apenas de acordo com
as normas ISO 9001, ISO 9002 ou ISO 9003. A empresa é certificada de acordo com
a norma ISO 9001 quando tem um sistema da qualidade que abrange a concepção e o
desenvolvimento do produto, a fabricação e montagem desse produto e a
assistência técnica pós-entrega. Quando o sistema da Qualidade da empresa
abrange apenas a fabricação e montagem do produto e a assistência técnica
pós-entrega, ela é certificada de acordo com a norma ISO 9002. Já a
certificação ISO 9003 destina-se a empresas que focam seu sistema da qualidade
apenas nas inspeções e ensaios finais do produto. A norma ISO 9003 é uma norma
que tende a desaparecer pois não tem o caráter preventivo essencial para a
gestão da Qualidade.
No caso das empresas construtoras, a norma aplicável é a ISO 9002,
devendo a empresa definir qual é o escopo da sua certificação, ou seja, os
produtos e processos para os quais a empresa tem implantado seu sistema da Qualidade
e deseja ser certificada por uma OCC. Nesse sentido o escopo de certificação
pode ser uma tipologia de obra: obras habitacionais da CDHU ou ter um escopo
mais amplo: construção de edifícios, por exemplo.
A norma ISO 9000 não se presta à certificação de sistemas da
Qualidade, mas sim ao estabelecimento de diretrizes de uso das demais normas da
série. Também a norma ISO 9004 não se destina à certificação mas sim ao
estabelecimento de orientações para que as empresas implantem seus sistemas de
gestão da Qualidade.
Existem diversas definições para Qualidade. Algumas pessoas que
tentaram uma definição simples chegaram a frases como:
• ” Qualidade é estar em conformidade com os requisitos dos clientes
“
• “ Qualidade é antecipar e satisfazer os desejos dos clientes “
• “ Qualidade é escrever tudo o que se deve fazer e fazer tudo o que
foi escrito “
Segunda a atual norma brasileira sobre o assunto (NBR ISO 8402),
qualidade é:
“A totalidade das características de uma entidade que lhe confere a
capacidade de satisfazer às necessidades explícitas e implícitas”
Esta definição formal exige alguns complementos, principalmente para
definir o que são as entidades, as necessidades explícitas e as necessidades
implícitas. A entidade é o produto do qual estamos falando, que pode ser um bem
ou um serviço. As necessidades explícitas são as próprias condições e objetivos
propostos pelo produtor. As necessidades implícitas incluem as diferenças entre
os usuários, a evolução no tempo, as implicações éticas, as questões de
segurança e outras visões subjetivas.
Por exemplo, a qualidade de um prato de comida (a entidade, o
produto) está relacionada com a satisfação de necessidades (requisitos) tais
como: sabor, aparência, temperatura, rapidez no serviço, preço, higiene, valor
nutricional, etc... Para avaliar a qualidade de um produto, você deve fazer uma
lista destas necessidades e analisar cada uma destas necessidades.
Qualidade é um tema muito discutido e estudado. Na área de software,
há uma urgente necessidade de uma maior preocupação sobre o tema.
•Qualidade
•Certificação de Qualidade
•Qualidade de Produto x Qualidade de Processo
•Qualidade de Software
•Engenharia de Software
•Qualidade de Produtos de Software - ISO 9126
•Métricas de Software
•Guias para a Avaliação da Qualidade - ISO 14598
•Qualidade de Pacotes de Software - ISO 12119
•Qualidade de Processos
•A Série ISO 9000
•CMM - Capability Maturity Model
•PSP - Personal Software Process
•Processos do Ciclo de Vida do Software - ISO 12207
•SPICE - Software Process
Improvement and Capability dEtermination - ISO 15504
Um aspecto interessante da qualidade é que não basta que ela exista.
Ela deve ser reconhecida pelo cliente. Por causa disso, é necessário que exista
algum tipo de certificação oficial, emitida com base em um padrão. Alguns
certificados mais comuns:
•O selo do SIF de inspeção da carne
•O selo da ABIC nos pacotes de café
•O certificado da Secretaria de Saúde para restaurantes (classe
"A" são os melhores)
•A classificação em estrelas dos hotéis (hotéis com cinco estrelas
são ótimos)
•Os certificados de qualidade da série ISO-9000
Existem muitas propagandas de empresas falando de sua certificação
ISO-9000. Isto nada mais é do que um padrão de qualidade (reconhecido
mundialmente) pelo qual esta empresa foi avaliada e julgada. Para que seja
possível realizar uma avaliação e um julgamento, é necessário haver um padrão
ou norma. Existem alguns organismos normalizadores reconhecidos mundialmente:
•ISO - International Organization for Standardization
•IEEE - Instituto de Engenharia Elétrica e Eletrônica
•ABNT - Associação Brasileira de Normas Técnicas
A norma ISO-9000, por exemplo, foi criada pela ISO para permitir que
todas as empresas do mundo possam avaliar e julgar sua qualidade. Existindo um
padrão único mundial, uma empresa do Brasil, mesmo não tendo nenhum contato com
uma outra empresa na Europa, pode garantir a ela a qualidade de seu trabalho.
A Certificação em uma norma ou padrão é a emissão de um documento
oficial indicando a conformidade com esta determinada norma ou padrão. É claro
que, antes da emissão do certificado, é preciso realizar todo um processo de
avaliação e julgamento de acordo com uma determinada norma. Embora uma empresa
possa auto-avaliar-se ou ser avaliada por seus próprios clientes, o termo
Certificação costuma ser aplicado apenas quando efetuado por uma empresa
independente e idônea, normalmente especializada neste tipo de trabalho. No
Brasil, o INMETRO é o órgão do governo responsável pelo credenciamento destas
instituições que realizam a certificação de sistemas de qualidade.
Uma das evoluções mais importantes no estudo da qualidade está em
notar que a qualidade do produto é algo bom, mas que qualidade do processo de
produção é ainda mais importante.
Esta descoberta aconteceu durante a própria evolução dos conceitos de
qualidade, ao longo dos anos. Observe na tabela abaixo como aconteceu esta
evolução:
|
Inspeção pós-produção |
Avalia o produto final, depois de pronto |
|
1900 Controle estatístico da produção |
Avalia os subprodutos das etapas de produção |
|
1940 Procedimento de produção |
Avalia todo o procedimento de produção |
|
1950 Educação das pessoas |
Avalia as pessoas envolvidas no processo |
|
1960 Otimização dos processos |
Avalia e otimiza cada processo |
|
1970 Projeto robusto |
Avalia o projeto de produção |
|
1980 Engenharia simultânea |
Avalia a própria concepção do produto1990 |
Hoje em dia, podemos consultar normas e padrões tanto para produtos
quanto para processos. Obviamente, os certificados mais valiosos são aqueles
que certificam o processo de produção de um produto e não aqueles que
simplesmente certificam o produto. Entretanto, é comum encontrar empresas que
perseguem os dois tipos de padrão de qualidade.
Podemos aplicar as normas de qualidade também aos software mesmo que
muitas pessoas achem que criar programas é uma arte e não tem como encaixá-los
em alguma norma.
• Produtos de software são complexos, até mais do que o hardware onde
executam
• Software não têm produção em série. Seu custo está no projeto e
desenvolvimento
• Software não se desgasta e nem de modifica com o uso
• O Software é invisível. Sua representação em grafos e diagramas não
é precisa.
• A Engenharia de Software ainda não está madura, é uma tecnologia em
evolução
• Não há um acordo entre os profissionais da área sobre o que é
Qualidade de Software
O problema não está no Software em si, mas na forma como as pessoas
tem desenvolvido software até os dias de hoje.
Atualmente, muitas instituições se preocupam em criar normas para
permitir a correta avaliação de qualidade tanto de produtos de software quanto
de processos de desenvolvimento de software. Apenas para ter uma uma visão
geral, observe o quadro abaixo com as principais normais nacionais e
internacionais nesta área:
|
Norma Comentário ISO 9126 |
Características da qualidade de produtos de software |
|
NBR 13596 |
Versão brasileira da ISO 9126 |
|
ISO 14598 |
Guias para a avaliação de produtos de software,
baseados na utilização prática da norma ISO 9126 |
|
ISO 12119 |
Características de qualidade de pacotes de software
(software de prateleira, vendido com um produto embalado) IEEE P1061 Standard
for Software Quality Metrics Methodology (produto de software) |
|
ISO 12207 |
Software Life Cycle Process. Norma para a qualidade do
processo de desenvolvimento de software. |
|
NBR ISO 9001 |
Sistemas de qualidade - Modelo para garantia de
qualidade em Projeto, Desenvolvimento, Instalação e Assistência Técnica
(processo)NBR ISO 9000-3Gestão de qualidade e garantia de qualidade.
Aplicação da norma ISO 9000 para o processo de desenvolvimento de software. |
|
NBR ISO 10011 |
Auditoria de Sistemas de Qualidade (processo) CMM
Capability Maturity Model. Modelo da SEI (Instituto de Engenharia de Software
do Departamento de Defesa dos EEUU) para avaliação da qualidade do processo
de desenvolvimento de software. Não é uma norma ISO, mas é muito bem aceita
no mercado. |
|
SPICE ISO 15504 |
Projeto da ISO/IEC para
avaliação de processo de desenvolvimento de software. Ainda não é uma norma
oficial ISO, mas o processo está em andamento. |
A disciplina que vai nos ajuda a entender o processo de
desenvolvimento de software é a Engenharia de Software. É através dela que
poderemos chegar à qualidade. Existe, entretanto, um grande problema a ser
resolvido: tecnicamente, ela não existe.
O problema é que, para que uma disciplina seja considerada realmente
uma Engenharia, é necessário atender a alguns requisitos básicos que a
Engenharia de Software, pelos menos até agora, não atende. Veja a definição de
Engenharia:
"A Engenharia deve criar soluções com uma relação
custo-benefício adequada para problemas práticos, pela aplicação de
conhecimentos científicos, para construir coisas a serviço da humanidade."
Dentro destes conceitos, a Engenharia de Software falha
principalmente no que diz respeito à adequação do custo-benefício e à
aplicação, em toda a sua extensão, de conhecimentos científicos. Atualmente,
estes requisitos são atendidos apenas em parte.
É necessário definir, portanto, o que é exatamente a Engenharia de
Software. Veja algumas tentativas de definição:
"...é a disciplina que integra métodos, ferramentas e
procedimentos para o desenvolvimento de software para computadores."
"...é uma coleção de processos de gerenciamento, ferramental de
software e atividades de projeto para o desenvolvimento de software. "
"...é um termo usado para
referir-se a modelos de ciclo de vida, metodologias de rotina, técnicas de
estimativa de custo, estruturas de documentação, ferramentas de gerenciamento
de configuração, técnicas de garantia de qualidade e outras técnicas de
padronização da atividade de produção de software."
Quando se pensa em qualidade de um "produto físico", é
fácil imaginar padrões de comparação, provavelmente ligado às dimensões do
produto ou alguma outra característica física. Quando se trata de software,
como podemos definir exatamente o que é a qualidade? Parece difícil...
Felizmente, para nós, a ISO (Organização Internacional de Padrões) já
pensou bastante sobre o assunto. O suficiente para publicar uma norma que
representa a atual padronização mundial para a qualidade de produtos de
software. Esta norma chama-se ISO/IEC 9126 e foi publicada em 1991. Ela é uma
das mais antigas da área de qualidade de software e já possui sua tradução para
o Brasil, publicada em agosto de 1996 como NBR 13596.
Mas, afinal de contas, o que está escrito nesta norma ISO/IEC 9126 ou
na NBR 13596? Bem, estas normas listam o conjunto de características que devem
ser verificadas em um software para que ele seja considerado um "software
de qualidade". São seis grandes grupos de características, cada um dividido
em algumas subcaracterísticas.
Os nomes dados pelo ISO/IEC para as características e
subcaracterísticas são um pouco complexos. Entretanto, uma pessoa que trabalha
com software não terá dificuldade em entendê-las. Observe na tabela abaixo a
lista completa:
|
Característica |
Subcaracterística |
Pergunta chave para a subcaracterística |
|
Funcionalidade |
Adequação |
Propõe-se
a fazer o que é apropriado? |
|
Acurácia |
Faz
o que foi proposto de forma correta? |
|
|
Interoperbilidade |
Interage
com os sistemas especificados? |
|
|
Conformidade |
Está
de acordo com as normas, leis, etc.? |
|
|
Segurança
de acesso |
Evita
acesso não autorizado aos dados? |
|
|
Confiabilidade |
Maturidade |
Com
que freqüência apresenta falhas? |
|
Tolerância
a falhas |
Ocorrendo
falhas, como ele reage? |
|
|
Recuperabilidade |
É
capaz de recuperar dados em caso de falha? |
|
|
Usabilidade |
Intelegibilidade |
É
fácil entender o conceito e a aplicação? |
|
Apreensibilidade |
É
fácil aprender a usar? |
|
|
Operacionalidade |
É
fácil de operar e controlar? |
|
|
Eficiência |
Tempo |
Qual
é o tempo de resposta, a velocidade de execução? |
|
Recursos |
Quanto
recurso usa? Durante quanto tempo? |
|
|
Manutenibilidade |
Analisabilidade |
É
fácil de encontrar uma falha, quando ocorre? |
|
Modificabilidade |
É
fácil modificar e adaptar? |
|
|
Estabilidade |
Há
grande risco quando se faz alterações? |
|
|
Testabilidade |
É
fácil testar quando se faz alterações? |
|
|
Portabilidade |
Adaptabilidade |
É
fácil adaptar a outros ambientes? |
|
Capac.
para ser instalado |
É
fácil instalar em outros ambientes? |
|
|
Conformidade |
Está
de acordo com padrões de portabilidade? |
|
|
Capac.
para substituir |
É
fácil usar para substituir outro? |
Embora a atual norma ISO 9126/NBR 13596 enumere as características e
subcaracterísticas um software, ela ainda não define como dar uma nota a um
software em cada um destes itens. Se você não está familiarizado com o processo
de avaliação de software, pode ter dificuldades em tentar utilizar a norma. Se
você pretende avaliar um software segundo esta norma, deve tentar atribuir
valores (como se fossem notas ou conceitos) a cada uma das subcaracterísticas.
Algumas características podem ser realmente medidas, como o tempo de
execução de um programa, número de linhas de código, número de erros
encontrados em uma sessão de teste ou o tempo médio entre falhas. Nestes casos,
é possível utilizar uma técnica, uma ferramenta ou um software para realizar
medições. Em outros casos, a característica é tão subjetiva que não existe
nenhuma forma óbvia de medí-la.
Ficam, portanto, as questões: como dar uma nota, em valor numérico, a
uma característica inteiramente subjetiva? O que representa, por exemplo, uma
"nota 10" em termos de "Segurança de Acesso"? Quando se
pode dizer que a "Intelegibilidade" de um software pode ser
considerada "satisfatória"? Criou-se, então, uma área de estudo à
parte dentro da Qualidade de Software conhecida como Métricas de Software. O
que se pretende fazer é definir, de forma precisa, como medir numericamente uma
determinada característica.
Para avaliar uma determinada subcaracterística subjetiva de forma
simplificada, por exemplo, você pode criar uma série de perguntas do tipo
"sim ou não". Crie as perguntas de forma tal que as respostas
"sim" sejam aquelas que indicam uma melhor nota para a
característica. Depois de prontas as perguntas, basta avaliar o software,
respondendo a cada pergunta. Se você conseguir listar 10 perguntas e o software
obtiver uma resposta "sim" em 8 delas, terá obtido um valor de 80%
nesta característica.
Obviamente, a técnica acima não é muito eficiente. Para melhorá-la,
entretanto, você pode garantir um número mínimo perguntas para cada
característica. Além disso, algumas perguntas mais importantes podem ter pesos
maiores. É possível, ainda, criar perguntas do tipo ABCDE, onde cada resposta
indicaria um escore diferenciado. Alguns estudiosos sugerem formas diferentes
de medir uma característica, baseada em conceitos do tipo "não
satisfaz", "satisfaz parcialmente", "satisfaz
totalmente" e "excede os padrões". Estes conceitos, emboram
parecem muito subjetivos, não deixam de ser uma forma eficiente de medir uma
característica.
Em todos os casos, um fato fica claro: nada ajuda mais a avaliar
características de um software do que um avaliador experiente, que já realizou
esta tarefa diversas vezes e em diversas empresas diferentes. Afinal, medir é
comparar com padrões e um avaliador experiente terá maior sensibilidade do que
um profissional que acaba de ler uma norma pela primeira vez.
Atualmente, a norma ISO/IEC 9126 está sendo revisada. A revisão, que
deverá estar pronta nos próximos anos, não deverá modificar nenhuma das
características básicas da 9126. A maior modificação será a inclusão de dois
documentos adicionais para descrever métricas externas (relativas ao uso do
produto) e métricas internas (relativas à arquitetura do produto). Veja algumas
das modificações previstas para esta revisão:
• Algumas novas subcaracterísticas. Conformidade fará parte de todas
as características. Atratividade será uma subcaracterística de usabilidade.
Capacidade de coexistir será uma subcaracterística de portabilidade.
• A norma será dividida em três partes. A primeira (9126-1) incluirá
definições e características. As duas seguintes descreverão métricas externas
(9126-2) e internas (9126-3).
• A versão brasileira da revisão
desta norma deverá ser chamada de NBR 9126-1, 9126-2 e 9126-3, segundo a
numeração original da ISO/IEC.
Todos notaram a necessidade de mais detalhes sobre como avaliar a
qualidade de um software. As características e subcaracterísticas da norma
ISO/IEC 9126 apenas começaram o trabalho. Faltava definir, em detalhes, como atribuir
um conceito para cada item. Afinal, sem uma padronização, que valor teria uma
avaliação?
A ISO, consciente deste problema, está finalizando o trabalho em um
conjunto de Guias para a Avaliação da Qualidade segundo a norma ISO/IEC 9126.
Estes guias descrevem, detalhadamente, todos os passos para que se avalie um
software. Embora o trabalho nesta norma ainda não esteja totalmente pronta, já
existem informações detalhadas sobre o que será esta norma, quando for
oficialmente publicada.
Esta nova norma trará muitos recursos interessantes aos avaliadores,
já que trata o processo de avaliação em grande detalhe. Ela leva em conta a
existência de três grupos interessados em avaliar um software, o que define os
três tipos básicos de certificação:
|
Certificação |
Quem realiza |
Finalidade |
|
1a. parte |
Empresas que desenvolvem software |
Melhorar a qualidade de seu próprio produto |
|
2a. parte |
Empresas que adquirem software |
Determinar a qualidade do produto que irão adquirir |
|
3a. parte |
Empresas que fazem certificação |
Emitir documento oficial sobre a qualidade de um
software |
Esta norma se constituirá, na verdade, de seis documentos distintos,
relacionados entre si. Veja:
Norma/Nome/Finalidade
14598-1 Visão Geral Ensina a utilizar as outras normas do grupo;
14598-2 Planejamento e Gerenciamento Sobre como fazer uma avaliação,
de forma geral;
14598-3 Guia para Desenvolvedores Como avaliar sob o ponto do vista
de quem desenvolve ;
14598-4 Guia para Aquisição Como avaliar sob o ponto de vista de quem
vai adquirir ;
14598-5 Guia para Avaliação Como avaliar sob o ponto de vista de quem
certifica;
14598-6 Módulos de Avaliação Detalhes sobre como avaliar cada
característica;
Em resumo, esta nova norma complementará a ISO/IEC 9126 e permitirá
uma avaliação padronizada das características de qualidade de um software. É
importante notar que, ao contrário da 9126, a 14598 vai a detalhes mínimos,
incluindo modelos para relatórios de avaliação, técnicas para medição das
características, documentos necessários para avaliação e fases da avaliação.
Como um exemplo, observe um modelo de relatório de avaliação, segundo um anexo
da norma 14598-5:
Seção Itens
1 – Prefácio Identificação do avaliador
Identificação do relatório de avaliação
Identificação do contratante e fornecedor
2 – Requisitos Descrição geral do domínio de aplicação do produto
Descrição geral dos objetivos do produto
Lista dos requisitos de qualidade, incluindo - Informações do produto
a serem avaliadas - Referências às características de qualidade - Níveis de
avaliação
3 – Especificação Abrangência da avaliação.
Referência cruzada entre os requisitos de avaliação e os componentes
do produto
Especificação das medições e dos pontos de verificação
Mapeamento entre a especificação das medições com os requisitos de
avaliação
4
- Métodos e componentes nos quais
o método será aplicado
5 - Resultados da avaliação propriamente ditos
Resultados intermediários e decisões de interpretação
Referência às ferramentas utilizadas
As normas 14598-1, 14598-4 e 14598-5 já foram publicadas. As demais
estão em processo de finalização. Está sendo feito pela ABNT um trabalho de
tradução desta norma (tanto dos itens já publicados quanto das versões
preliminares dos itens restantes). Com isso, esta norma terá sua versão
brasileira pouco tempo depois do final de sua publicação pela ISO.
Esta norma foi
publicada em 1994 e trata da avaliação de pacotes de software, também
conhecidos como "software de prateleira". Além de estabelecer os
requisitos de qualidade para este tipo de software, ela também destaca a
necessidade de instruções para teste deste pacote, considerando estes
requisitos. A norma divide-se em itens, da seguinte forma:
Item Descrição
1.
Escopo
2.
Definições
3.
Requisitos de qualidade
3.1.
Descrição do Produto Descreve o
produto, de forma a ajudar o comprador em potencial, servindo como base para
testes. Cada declaração deve ser correta e testável. Deve incluir declarações
sobre funcionalidade, confiabilidade, usabilidade, eficiência, Manutenibilidade
e portabilidade.
3.2.
Documentação do usuário Deve ser completa, correta,
consistente, fácil de entender e capaz de dar uma visão geral do produto.