Você está na página 1de 31

Qualidade de Software

Jos Barreto Jnior O que qualidade? Existem diversas definies. Algumas pessoas que tentaram uma definio 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

Segundo a atual norma brasileira sobre o assunto (NBR ISO 8402), qualidade : A totalidade das caractersticas de uma entidade que lhe confere a capacidade de satisfazer s necessidades explcitas e implcitas Nota-se que esta definio formal exige alguns complementos, principalmente para definir o que so as entidades, as necessidades explcitas e as necessidades implcitas. A entidade o produto do qual estamos falando, que pode ser um bem ou um servio. As necessidades explcitas so as prprias condies e objetivos propostos pelo produtor. As necessidades implcitas incluem as diferenas entre os usurios, a evoluo no tempo, as implicaes ticas, as questes de segurana e outras vises subjetivas. Por exemplo, a qualidade de um prato de comida (a entidade, o produto) est relacionada com a satisfao de necessidades (requisitos) tais como: sabor, aparncia, temperatura, rapidez no servio, preo, higiene, valor nutricional, etc... Para avaliar a qualidade de um produto, voc deve fazer uma lista destas necessidades e analisar cada uma destas necessidades.

Certificao de Qualidade
Um aspecto interessante da qualidade que no basta que ela exista. Ela deve ser reconhecida pelo cliente. Por causa disso, necessrio que exista algum tipo de certificao oficial, emitida com base em um padro. Voc provavelmente j conhece alguns certificados mais comuns:

O selo do SIF de inspeo da carne O selo da ABIC nos pacotes de caf O certificado da Secretaria de Sade para restaurantes (classe "A" so os melhores) A classificao em estrelas dos hotis (hotis com cinco estrelas so timos) Os certificados de qualidade da srie ISO-9000

Voc j deve ter ouvido muitas propagandas de empresas falando de sua certificao ISO9000. Isto nada mais do que um padro de qualidade (reconhecido mundialmente) pelo qual esta empresa foi avaliada e julgada. Para que seja possvel realizar uma avaliao e um julgamento, necessrio haver um padro ou norma. Existem alguns organismos normalizadores reconhecidos mundialmente:

ISO - International Organization for Standardization IEEE - Instituto de Engenharia Eltrica e Eletrnica ABNT - Associao Brasileira de Normas Tcnicas

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 padro nico mundial, uma empresa do Brasil, mesmo no tendo nenhum contato com uma outra empresa na Europa, pode garantir a ela a qualidade de seu trabalho. A Certificao em uma norma ou padro a emisso de um documento oficial indicando a conformidade com esta determinada norma ou padro. claro que, antes da emisso do certificado, preciso realizar todo um processo de avaliao e julgamento de acordo com uma determinada norma. Embora uma empresa possa auto-avaliar-se ou ser avaliada por seus prprios clientes, o termo Certificao costuma ser aplicado apenas quando efetuado por uma empresa independente e idnea, normalmente especializada neste tipo de trabalho. No Brasil, o INMETRO o rgo do governo responsvel pelo credenciamento destas instituies que realizam a certificao de sistemas de qualidade.

Qualidade do Produto x Qualidade do Processo


Uma das evolues mais importantes no estudo da qualidade est em notar que a qualidade do produto algo bom, mas que qualidade do processo de produo ainda mais importante. No caso do prato de comida, por exemplo, voc pode dizer mais sobre a qualidade observando como o prato foi preparado do que analisando o produto final. Afinal, voc no consegue ter certeza da higiene ou o valor nutricional apenas comendo o prato. Esta descoberta aconteceu durante a prpria evoluo dos conceitos de qualidade, ao longo dos anos. Observe na tabela abaixo como aconteceu esta evoluo: Inspeo ps-produo Controle estatstico da produo Procedimento de produo Educao das pessoas Otimizao dos processos Projeto robusto Engenharia simultnea Avalia o produto final, depois de pronto Avalia os subprodutos das etapas de produo Avalia todo o procedimento de produo Avalia as pessoas envolvidas no processo Avalia e otimiza cada processo Avalia o projeto de produo Avalia a prpria concepo do produto 1900 1940 1950 1960 1970 1980 1990

Hoje em dia, voc pode consultar normas e padres tanto para produtos quanto para processos. Obviamente, os certificados mais valiosos so aqueles que certificam o processo de produo de um produto e no aqueles que simplesmente certificam o produto. Entretanto, comum encontrar empresas que perseguem os dois tipos de padro de qualidade.

Qualidade de Software
Agora que voc j sabe o que qualidade e como ela pode ser avaliada, vamos tentar aplicar estes conceitos aos produtos de software e ao processo de desenvolvimento de software. Inicialmente, vamos encontrar um grande problema: muitas pessoas acham que criar programas uma arte que no pode seguir regras, normas ou padres. Isto acontece principalmente porque:

Produtos de software so complexos, at mais do que o hardware onde executam Software no tm produo em srie. Seu custo est no projeto e desenvolvimento Software no se desgasta e nem de modifica com o uso O Software invisvel. Sua representao em grafos e diagramas no precisa. A Engenharia de Software ainda no est madura, uma tecnologia em evoluo No h um acordo entre os profissionais da rea sobre o que Qualidade de Software

Apesar de tudo isso, voc precisa entender que o problema no est no Software em si, mas na forma como as pessoas tem desenvolvido software at os dias de hoje. Voc provavelmente j ouviu dizer que "Se os engenheiros construssem prdios como os analistas constroem software, um nico pica-pau destruiria a humanidade". Exageros parte, voc precisa se conscientizar que ns precisamos aplicar na indstria de software os conceitos de qualidade, urgentemente. Atualmente, muitas instituies se preocupam em criar normas para permitir a correta avaliao de qualidade tanto de produtos de software quanto de processos de desenvolvimento de software. Apenas para ter uma uma viso geral, observe o quadro abaixo com as principais normais nacionais e internacionais nesta rea: Norma ISO 9126 NBR 13596 ISO 14598 ISO 12119 IEEE P1061 ISO 12207 Comentrio Caractersticas da qualidade de produtos de software. Verso brasileira da ISO 9126 Guias para a avaliao de produtos de software, baseados na utilizao prtica da norma ISO 9126 Caractersticas de qualidade de pacotes de software (software de prateleira, vendido com um produto embalado) Standard for Software Quality Metrics Methodology (produto de software) Software Life Cycle Process. Norma para a qualidade do processo de

desenvolvimento de software. Sistemas de qualidade - Modelo para garantia de qualidade em Projeto, NBR ISO 9001 Desenvolvimento, Instalao e Assistncia Tcnica (processo) Gesto de qualidade e garantia de qualidade. Aplicao da norma ISO NBR ISO 9000-3 9000 para o processo de desenvolvimento de software. NBR ISO 10011 Auditoria de Sistemas de Qualidade (processo) Capability Maturity Model. Modelo da SEI (Instituto de Engenharia de Software do Departamento de Defesa dos EEUU) para avaliao da CMM qualidade do processo de desenvolvimento de software. No uma norma ISO, mas muito bem aceita no mercado. Projeto da ISO/IEC para avaliao de processo de desenvolvimento de SPICE software. Ainda no uma norma oficial ISO, mas o processo est em ISO 15504 andamento. No final desta pgina, voc encontra alguns links relacionados a Qualidade e Qualidade de Software.

Engenharia de Software
Como voc j viu, a disciplina que vai nos ajudar a entender o processo de desenvolvimento de software a Engenharia de Software. atravs dela que poderemos chegar qualidade. Existe, entretanto, um grande problema a ser resolvido: tecnicamente, ela no existe. O problema que, para que uma disciplina seja considerada realmente uma Engenharia, necessrio atender a alguns requisitos bsicos que a Engenharia de Software, pelos menos at agora, no atende. Veja a definio de Engenharia: "A Engenharia deve criar solues com uma relao custo-benefcio adequada para problemas prticos, pela aplicao de conhecimentos cientficos, para construir coisas a servio da humanidade." Dentro destes conceitos, a Engenharia de Software falha principalmente no que diz respeito adequao do custo-benefcio e aplicao, em toda a sua extenso, de conhecimentos cientficos. Atualmente, estes requisitos so atendidos apenas em parte. necessrio definir, portanto, o que exatamente a Engenharia de Software. Veja algumas tentativas de definio: "... a disciplina que integra mtodos, ferramentas e procedimentos para o desenvolvimento de software para computadores." "... uma coleo 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, tcnicas de estimativa de custo, estruturas de documentao, ferramentas de gerenciamento de configurao, tcnicas de garantia de qualidade e outras tcnicas de padronizao da atividade de produo de software." No final desta pgina voc encontrar alguns links relacionados a Engenharia de Software.

Qualidade de Produtos de Software - ISO 9126


Quando se pensa em qualidade de um "produto fsico", fcil imaginar padres de comparao, provavelmente ligado s dimenses do produto ou alguma outra caracterstica fsica. Quando se trata de software, como podemos definir exatamente o que a qualidade? Parece difcil... Felizmente, para ns, a ISO (Organizao Internacional de Padres) j pensou bastante sobre o assunto. O suficiente para publicar uma norma que representa a atual padronizao 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 traduo 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 caractersticas que devem ser verificadas em um software para que ele seja considerado um "software de qualidade". So seis grandes grupos de caractersticas, cada um dividido em algumas subcaractersticas. Os nomes dados pelo ISO/IEC para as caractersticas e subcaractersticas so um pouco complexos (para dizer a verdade, acho at que os prprios termos "caractersticas" e "subcaractersticas" so mais complexos que o necessrio). Entretanto, uma pessoa que trabalha com software no ter dificuldade em entend-las. Observe na tabela abaixo a lista completa:

Subcaracterstica Adequao Acurcia Funcionalidade (satisfaz as Interoperbilidade necessidades?) Conformidade Segurana de acesso Maturidade Confiabilidade ( imune a falhas?) Tolerncia a falhas Recuperabilidade Intelegibilidade Usabilidade

Caracterstica

Pergunta chave para a subcaracterstica Prope-se a fazer o que apropriado? Faz o que foi proposto de forma correta? Interage com os sistemas especificados? Est de acordo com as normas, leis, etc.? Evita acesso no autorizado aos dados? Com que freqncia apresenta falhas? Ocorrendo falhas, como ele reage? capaz de recuperar dados em caso de falha? fcil entender o conceito e a aplicao?

( fcil de usar?) Eficincia ( rpido e "enxuto"?)

Apreensibilidade Operacionalidade Tempo

Recursos Analisabilidade Manutenibilidade Modificabilidade ( fcil de Estabilidade modificar?) Testabilidade Adaptabilidade Capac. para ser Portabilidade fcil instalar em outros ambientes? instalado ( facil de usar em outro ambiente?) Conformidade Est de acordo com padres de portabilidade? Capac. para substituir fcil usar para substituir outro?

fcil aprender a usar? fcil de operar e controlar? Qual o tempo de resposta, a velocidade de execuo? Quanto recurso usa? Durante quanto tempo? fcil de encontrar uma falha, quando ocorre? fcil modificar e adaptar? H grande risco quando se faz alteraes? fcil testar quando se faz alteraes? fcil adaptar a outros ambientes?

Esta norma no muito extensa (contm apenas 10 pginas). Entretanto, ela define minunciosamente (em uma linguagem bem detalhista, estilo contrato) o que se pretende avaliar em cada caracterstica e subcaracterstica. Se voc desejar ter o texto integral da norma NBR 13596, pode pedir uma cpia ABNT. Voc ter de pagar por ela, mas o valor pequeno (menos de R$20). O site da ABNT na Internet oferece funes de pesquisa e oramento para compra de normas. Para maiores informaes, contacte diretamente a ABNT: ABNT - Associao Brasileira de Normas Tcnicas Av. Treze de Maio, 13 - 28 andar CEP 20003-900 Caixa Postal 1680 Fone: (021) 210-3122 - Fax: (021) 532-2143

Mtricas de Software
Embora a atual norma ISO 9126/NBR 13596 enumere as caractersticas e subcaractersticas um software, ela ainda no define como dar uma nota a um software em cada um destes itens. Se voc no est familiarizado com o processo de avaliao 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 subcaractersticas. Algumas caractersticas podem ser realmente medidas, como o tempo de execuo de um programa, nmero de linhas de cdigo, nmero de erros encontrados em uma sesso de teste ou o tempo mdio entre falhas. Nestes casos, possvel utilizar uma tcnica, uma ferramenta ou um software para realizar medies. Em outros casos, a caracterstica to subjetiva que no existe nenhuma forma bvia de med-la.

Ficam, portanto, as questes: como dar uma nota, em valor numrico, a uma caracterstica inteiramente subjetiva? O que representa, por exemplo, uma "nota 10" em termos de "Segurana de Acesso"? Quando se pode dizer que a "Intelegibilidade" de um software pode ser considerada "satisfatria"? Criou-se, ento, uma rea de estudo parte dentro da Qualidade de Software conhecida como Mtricas de Software. O que se pretende fazer definir, de forma precisa, como medir numericamente uma determinada caracterstica. Para avaliar uma determinada subcaracterstica subjetiva de forma simplificada, por exemplo, voc pode criar uma srie de perguntas do tipo "sim ou no". Crie as perguntas de forma tal que as respostas "sim" sejam aquelas que indicam uma melhor nota para a caracterstica. 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 caracterstica. Obviamente, a tcnica acima no muito eficiente. Para melhor-la, entretanto, voc pode garantir um nmero mnimo perguntas para cada caracterstica. Alm disso, algumas perguntas mais importantes podem ter pesos maiores. possvel, ainda, criar perguntas do tipo ABCDE, onde cada resposta indicaria um escore diferenciado. Alguns estudiosos sugerem formas diferentes de medir uma caracterstica, baseada em conceitos do tipo "no satisfaz", "satisfaz parcialmente", "satisfaz totalmente" e "excede os padres". Estes conceitos, emboram parecem muito subjetivos, no deixam de ser uma forma eficiente de medir uma caracterstica. Em todos os casos, um fato fica claro: nada ajuda mais a avaliar caractersticas de um software do que um avaliador experiente, que j realizou esta tarefa diversas vezes e em diversas empresas diferentes. Afinal, medir comparar com padres 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 reviso, que dever estar pronta nos prximos anos, no dever modificar nenhuma das caractersticas bsicas da 9126. A maior modificao ser a incluso de dois documentos adicionais para descrever mtricas externas (relativas ao uso do produto) e mtricas internas (relativas arquitetura do produto). Veja algumas das modificaes previstas para esta reviso:

Algumas novas subcaractersticas. Conformidade far parte de todas as caractersticas. Atratividade ser uma subcaracterstica de usabilidade. Capacidade de coexistir ser uma subcaracterstica de portabilidade. A norma ser dividida em trs partes. A primeira (9126-1) incluir definies e caractersticas. As duas seguintes descrevero mtricas externas (9126-2) e internas (9126-3). A verso brasileira da reviso desta norma dever ser chamada de NBR 9126-1, 9126-2 e 9126-3, segundo a numerao original da ISO/IEC.

Guias para a Avaliao da Qualidade - ISO 14598


Todos notaram a necessidade de mais detalhes sobre como avaliar a qualidade de um software. As caractersticas e subcaractersticas da norma ISO/IEC 9126 apenas comearam o trabalho. Faltava definir, em detalhes, como atribuir um conceito para cada item. Afinal, sem uma padronizao, que valor teria uma avaliao? A ISO, consciente deste problema, est finalizando o trabalho em um conjunto de Guias para a Avaliao 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 no esteja totalmente pronta, j existem informaes 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 avaliao em grande detalhe. Ela leva em conta a existncia de trs grupos interessados em avaliar um software, o que define os trs tipos bsicos de certificao: Certificao Quem realiza Empresas que desenvolvem de 1a. parte software de 2a. parte de 3a. parte Finalidade Melhorar a qualidade de seu prprio produto Determinar a qualidade do produto que Empresas que adquirem software iro adquirir Emitir documento oficial sobre a Empresas que fazem certificao qualidade de um software

Esta norma se constituir, na verdade, de seis documentos distintos, relacionados entre si. Veja: Norma 14598-1 14598-2 14598-3 14598-4 14598-5 14598-6 Nome Viso Geral Planejamento e Gerenciamento Guia para Desenvolvedores Guia para Aquisio Guia para Avaliao Mdulos de Avaliao Finalidade Ensina a utilizar as outras normas do grupo Sobre como fazer uma avaliao, de forma geral Como avaliar sob o ponto do vista de quem desenvolve Como avaliar sob o ponto de vista de quem vai adquirir Como avaliar sob o ponto de vista de quem certifica Detalhes sobre como avaliar cada caracterstica

Em resumo, esta nova norma complementar a ISO/IEC 9126 e permitir uma avaliao padronizada das caractersticas de qualidade de um software. importante notar que, ao contrrio da 9126, a 14598 vai a detalhes mnimos, incluindo modelos para relatrios de avaliao, tcnicas para medio das caractersticas, documentos necessrios para avaliao e fases da avaliao. Como um exemplo, observe um modelo de relatrio de avaliao, segundo um anexo da norma 14598-5: Seo 1 - Prefcio Itens Identificao do avaliador Identificao do relatrio de avaliao Identificao do contratante e fornecedor 2 - Requisitos Descrio geral do domnio de aplicao do produto Descrio geral dos objetivos do produto Lista dos requisitos de qualidade, incluindo - Informaes do produto a serem avaliadas - Referncias s caractersticas de qualidade - Nveis de avaliao 3 - Especificao Abrangncia da avaliao Referncia cruzada entre os requisitos de avaliao e os componentes do produto Especificao das medies e dos pontos de verificao Mapeamento entre a especificao das medies com os requisitos de avaliao 4 - Mtodos Mtodos e componentes nos quais o mtodo ser aplicado 5 - Resultado Resultados da avaliao propriamente ditos Resultados intermedirios e decises de interpretao Referncia s ferramentas utilizadas As normas 14598-1, 14598-4 e 14598-5 j foram publicadas. As demais esto em processo de finalizao. Est sendo feito pela ABNT um trabalho de traduo desta norma (tanto dos itens j publicados quanto das verses preliminares dos itens restantes). Com isso, esta norma ter sua verso brasileira pouco tempo depois do final de sua publicao pela ISO.

Qualidade de Pacotes de Software - ISO 12119


Esta norma foi publicada em 1994 e trata da avaliao de pacotes de software, tambm conhecidos como "software de prateleira". Alm de estabelecer os requisitos de qualidade para este tipo de software, ela tambm destaca a necessidade de instrues para teste deste pacote, considerando estes requisitos. A norma divide-se em itens, da seguinte forma: Item 1. Escopo 2. Definies Descrio

3. Requisitos de qualidade 3.1. Descrio do Produto

3.2. Documentao do usurio 3.3. Programas e dados

Descreve o produto, de forma a ajudar o comprador em potencial, servindo como base para testes. Cada declarao deve ser correta e testvel. Deve incluir declaraes sobre funcionalidade, confiabilidade, usabilidade, eficincia, manutenibilidade e portabilidade. Deve ser completa, correta, consistente, fcil de entender e capaz de dar uma viso geral do produto. Descreve em detalhes cada uma das funes do software, incluindo declaraes sobre funcionalidade, confiabilidade, usabilidade, eficincia, manutenibilidade e portabilidade. Lista de itens necessrios ao teste, incluindo documentos includos no pacote, componentes do sistema e material de treinamento. Instrues detalhadas sobre os procedimentos de teste, inclusive instalao e execuo de cada uma das funes descritas. Informaes sobre como os testes foram realizados, de tal forma a permitir uma reproduo destes testes. Deve incluir parmetros utilizados, resultados associados, falhas ocorridas e at a identidade do pessoal envolvido. Relatrio inlcuindo: identificao do produto, hardware e software utilizado, documentos utilizados, resultados dos testes, lista de no conformidade com os requisitos, lista de no conformidade com as recomendaes, datas, etc.

4. Instrues para teste 4.1. Pr-requisitos de teste

4.2. Atividades de teste

4.3. Registro de teste

4.4. Relatrio de teste

Um dos grandes mritos desta norma est na profundidade com que so descritas cada uma das caractersticas e subcaractersticas mencionadas na norma 9126. A norma inclui detalhes que devem estar presentes no produto, tais como:

Documentao do usurio de fcil compreenso Um sumrio e um ndice remissivo na documentao do usurio Presena de um Manual de instalao com instrues detalhadas Possibilidade de verificar se uma instalao foi bem sucedida Especificao de valores limites para todos os dados de entrada, que devero ser testados Operao normal mesmo quando os dados informados esto fora dos limites especificados Consistncia de vocabulrio entre as mensagens e a documentao Funo de auxlio (help) com recursos de hipertexto Mensagens de erro com informaes necessrias para a soluo da situao de erro Diferenciao dos tipos de mensagem: confirmao, consulta, advertncia e erro Clareza nos formatos das telas de entrada e relatrios

Capacidade de reverter funes de efeito drstico Alertas claros para as conseqncias de uma determinada confirmao Identificao dos arquivos utilizados pelo programa Identificao da funo do programa que est sendo executada no momento Capacidade de interromper um processamento demorado

Outras caractersticas importante so a nfase nos testes e os modelos de relatrios includos. Tudo isso facilita grandemente o trabalho do avaliador. Uma verso traduzida desta norma ser publicada em breve ABNT.

Qualidade do Processo de Software


Os estudos sobre qualidade mais recentes so na sua maioria voltados para o melhoramento do processo de desenvolvimento de software. No que a qualidade do produto no seja importante, ela . Mas o fato que, ao garantir a qualidade do processo, j se est dando um grande passo para garantir tambm a qualidade do produto. O estudo da Qualidade do Processo de Software uma rea ligada diretamente Engenharia de Software. O estudo de um ajuda a entender e aprimorar o outro. Em ambas as disciplinas, estuda-se modelos do processo de desenvolvimento de software. Estes modelos so uma tentativa de explicar em detalhes como se desenvolve um software, quais so as etapas envolvidas. necessrio compreender cada pequena tarefa envolvida no desenvolvimento. Entre os estudos nesta rea de maior importncia, podemos citar:

ISO 9000-3 - Normas para aplicao da srie ISO 9000 em processos de software ISO 12207 - Processos do Ciclo de Vida do Software CMM - Capability Maturity Model PSP - Personal Software Process ISO 15504 - SPICE - Software Process Improvement and Capability dEtermination Modelo Trillium Metodologia Bootstrap Engenharia de Software Cleanroom

Dentre os trabalhos na rea de Qualidade de Processo de Software, o nico que realmente norma oficial o ISO 9000-3, que faz parte da srie ISO 9000. Os demais modelos so normas no-oficiais criados por empresas e institutos ou ento so normas em estgio de desenvolvimento. Muitos dos modelos esto disponveis na Internet, em texto integral. No final desta pgina voc encontrar alguns links sobre Modelos de Qualidade de Processo de Software. A seguir sero analisados em maior detalhes alguns destes modelos.

A Srie ISO 9000


Esta srie um conjunto de normas da ISO que define padres para garantia e gerenciamento da qualidade. Veja algumas destas normas abaixo:

Norma ISO 9001 ISO 9002 ISO 9003 ISO 9000-1 ISO 9000-3

Trata de Modelo para garantia da qualidade em projeto, desenvolvimento, produo, instalao e assistncia tcnica. Modelo para garantia da qualidade em produo e instalao Modelo para garantia da qualidade em inspeo e ensaios finais Diretrizes para escolher entre as normas ISO 9001, 9002 e 9003 Orientao para a aplicao da ISO 9001 em Software

Entre as normas 9001, 9002 e 9003, a primeira a que mais se adequa ao desenvolvimento e manuteno de software. Como toda norma deste grupo, ela usada para garantir que um fornecedor atende aos requisitos especificados nos diversos estados do desenvolvimento. Estes estgios incluem projeto, desenvolvimento, produo, instalao e suporte. A norma ISO 9000-3 (no confundir com a ISO 9003) traz os roteiros para aplicar a ISO 9001 especificamente na rea de desenvolvimento, fornecimento e manuteno de software. Todas as orientaes giram em torno de uma "situao contratual", onde uma outra empresa contrata a empresa em questo para desenvolver um produto de software. Veja na tabela abaixo os processos definidos na ISO 9000-3: Grupo Estrutura do Sistema de Qualidade Atividade Responsabilidade do fornecedor Responsabilidade do comprador Anlise crtica conjunta Anlise crtica do contrato Especificao dos requisitos do comprador Planejamento do desenvolvimento Projeto e implementao Testes e validao Aceitao Cpia, entrega e instalao Manuteno Gerenciamento de configurao Controle de documentos Registros da qualidade Medio Regras, convenes Aquisio Produto de software includo Treinamento

Atividades do Ciclo de Vida

Atividades de Apio

O processo de certificao de uma empresa de software segundo as normas ISO 9001 / 9000-3 segue um conjunto de passos bem definidos:

1. A empresa estabelece o seu sistema de qualidade 2. A empresa faz uma solicitao formal a um rgo certificador, incluindo detalhes do negcio da empresa, escopo da certificao solicitada e cpia do manual de qualidade 3. O rgo certificador faz uma visita empresa, colhe mais dados e explica o processo de certificao 4. O rgo certificador verifica se a documentao do sistema de qualidade est de acordo com a norma ISO 5. O rgo certificador envia uma equipe empresa com fins de auditoria. Nesta visita, ser verificado se todos na empresa cumprem o que est documentado no manual de qualidade. 6. O rgo certificador emite o certificado de qualidade 7. O rgo certificador realiza visitas peridicas empresa para assegurar que o sistema continua sendo efetivo Se voc desejar ter o texto integral das normas da srie ISO 9000, pode pedir uma cpia ABNT. Voc ter de pagar por ela, mas o valor pequeno (tanto a ISO 9001 quanto a ISO 9000-3 custam menos de R$25, cada). O site da ABNT na Internet oferece funes de pesquisa e oramento para compra de normas.

ISO 12207 - Processos do Ciclo de Vida do Software


Este padro formaliza a arquitetura do ciclo de vida do software, que um assunto bsico em Engenharia de Software e tambm em qualquer estudo sobre Qualidade do Processo de Software. Esta norma possui mais de 60 pginas e detalha os diversos processos envolvidos no ciclo de vida do software. Estes processos esto divididos em trs classes: Processos Fundamentais, Processos de Apoio e Processos Organizacionais. Veja a lista completa dos processos na tabela abaixo: Processos Fundamentais Aquisio Incio e execuo do desenvolvimento, operao ou manuteno do software durante o seu ciclo de vida. Atividades de quem um software. Inclui: definio da necessidade de adquirir um software (produto ou servio), pedido de proposta, seleo de fornecedor, gerncia da aquisio e aceitao do software. Atividades do fornecedor de software. Inclui preparar uma proposta, assinatura de contrato, determinao recursos necessrios, planos de projeto e entrega do software. Atividades do desenvolvedor de software. Inclui: anlise de requisitos, projeto, codificao, integrao, testes, instalao e aceitao do software. Atividades do operador do software. Inclui: operao do software e suporte operacional aos usurios. Atividades de quem faz a manuteno do software.

Fornecimento

Desenvolvimento

Operao Manuteno

Processos de Apoio Auxiliam um outro processo. Documentao Registro de informaes produzidas por um processo ou atividade. Inclui planejamento, projeto, desenvolvimento, produo, edio, distribuio e manuteno dos documentos necessrios a gerentes, engenheiros e usurios do software. Gerncia de Identificao e controle dos itens do software. Inclui: controle de Configurao armazenamento, liberaes, manipulao, distribuio e modificao de cada um dos itens que compem o software. Garantia da Garante que os processos e produtos de software estejam em Qualidade conformidade com os requisitos e os planos estabelecidos. Verificao Determina se os produtos de software de uma atividade atendem completamente aos requisitos ou condies impostas a eles. Validao Determina se os requisitos e o produto final (sistema ou software) atendem ao uso especfico proposto. Reviso Conjunta Define as atividades para avaliar a situao e produtos de uma atividade de um projeto, se apropriado. Auditoria Determina adequao aos requisitos, planos e contrato, quando apropriado. Resoluo de Anlisar e resoluo dos problemas de qualquer natureza ou fonte, Problemas descobertos durante a execuo do desenvolvimento, operao, manuteno ou outros processos. . Implementam uma estrutura constituda de processos de ciclo de Processos vida e pessoal associados, melhorando continuamente a estrutura e Organizacionais os processos. Gerncia Gerenciamento de processos. Infra-estrutura Fornecimento de recursos para outros processos. Inclui: hardware, software, ferramentas, tcnicas, padres de desenvolvimento, operao ou manuteno. Melhoria Atividades para estabeler, avaliar, medir, controlar e melhorar um processo de ciclo de vida de software. Treinamento Atividades para prover e manter pessoal treinado. A norma detalha cada um dos processos acima. Ela define ainda como eles podem ser usados de diferentes maneiras por diferentes organizaes (ou parte destas), representando diversos pontos de vista para esta utilizao. Cada uma destas vises representa a forma como uma organizao emprega estes processos, agrupando-os de acordo com suas necessidades e objetivos. As Vises tm o objetivo de organizar melhor a estrutura de uma empresa, para definir suas gerncias e atividades alocadas s suas equipes. Existem cinco vises diferentes: contrato, gerenciamento, operao, engenharia e apoio. Veja na figura abaixo como estas vises se relacionam aos processos.

A ISO/IEC 12207 a primeira norma internacional que descreve em detalhes os processos, atividades e tarefas que envolvem o fornecimento, desenvolvimento, operao e manuteno de produtos de software. A principal finalidade desta norma servir de referncia para os demais padres que venham a surgir. Lanada em agosto de 1995, ela citada em quase todos os trabalhos relacionados Engenharia de Software desde ento, inclusive aqueles relativos qualidade. A futura norma ISO 15504 (SPICE), por exemplo, organiza seu trabalho segundo o que est descrito na 12207. A verso brasileira da norma foi encaminhada para votao na ABNT em junho de 1997 e a expectativa da comisso encarregada da traduo que ela se transforme em norma brasileira ainda em 1997.

CMM - Capability Maturity Model


Este "Modelo de Maturidade da Capacidade" uma iniciativa do SEI (Software Engineering Institute) para avaliar e melhorar a capacitao de empresas que produzem software. O projeto CMM foi apoiado pelo Departamento de Defesa do Governo dos Estados Unidos, que um grande consumidor de software e precisava de um modelo formal que permitisse selecionar os seus fornecedores de software de forma adequada. Embora no seja uma norma emitida por uma instituio internacional (como a ISO ou o IEEE), esta norma tem tido uma grande aceitao mundial, at mesmo fora do mercado americano. O modelo, publicado em 1992, no extenso e pode ser obtido na prpria Internet com facilidade. O CMM tambm chamado de SW-CMM (Software CMM). Maturidade O CMM um modelo para medio da maturidade de uma organizao no que diz respeito ao processo de desenvolvimento de software. A definio do que "Maturidade" pode ser melhor compreendida atravs da anlise do quadro abaixo: Organizaes maduras Papis e responsabilidades bem definidos Existe base histrica possvel julgar a qualidade do produto Organizaes imaturas Processo improvisado No existe base histrica No h maneira objetiva de julgar a qualidade do produto A qualidade dos produtos e processos Qualidade e funcionalidade do produto monitorada sacrificadas O processo pode ser atualizado No h rigor no processo a ser seguido Existe comunicao entre o gerente e seu grupo Resoluo de crises imediatas Nveis O CMM classifica as organizaes em cinco nveis distintos, cada um com suas caractersticas prprias. No nvel 1, o das organizaes mais imaturas, no h nenhuma metodologia implementada e tudo ocorre de forma desorganizada. No nvel 5, o das organizaes mais maduras, cada detalhe do processo de desenvolvimento est definido, quantificado e acompanhado e a organizao consegue at absorver mudanas no processo sem projudicar o desenvolvimento. Veja a tabela abaixo: Nvel CMM 1) Inicial Descrio O processo de desenvolvimento desorganizado e at catico. Poucos processos so definidos e o sucesso depende de esforos individuais e hericos. Os processos bsicos de gerenciamento de projeto esto estabelecidos e permitem acompanhar custo, cronograma e funcionalidade. possvel

2) Repetvel

3) Definido

4) Gerenciado

5) Otimizado

repetir o sucesso de um processo utilizado anteriormente em outros projetos similares. Tanto as atividades de gerenciamento quanto de engenharia do processo de desenvolvimento de software esto documentadas, padronizadas e integradas em um padro de desenvolvimento da organizao. Todos os projetos utilizam uma verso aprovada e adaptada do processo padro de desenvolvimento de software da organizao. So coletadas medidas detalhadas da qualidade do produto e processo de desenvolvimento de software. Tanto o produto quanto o processo de desenvolvimento de software so entendidos e controlados quantitativamente. O melhoramento contnuo do processo conseguido atravs de um "feedback" quantitativo dos processos e pelo uso pioneiro de idais e tecnologias inovadoras.

Uma empresa no nvel 1 no d garantia de prazo, custo ou funcionalidade. No nvel 2, a empresa j consegue produzir bons softwares, no prazo e a um custo previsvel. O nvel 3 garante um excelente nvel de qualidade, tanto no produto quanto no processo de desenvolvimento como um todo. No h, no mundo, muitas empresas que tenham chegado aos nveis 4 e 5... reas-chave de processo (Key Process Areas ou KPAs) Exceto no nvel 1, todos os nveis so detalhados em reas-chave de processo. Estas reas so exatamente aquilo no que a organizao deve focar para melhorar o seu processo de desenvolvimento de software. Para que uma empresa possa se quailificar em um determinado nvel de maturidade CMM, deve estar realizando os processos relacionados s reas-chave daquele determinado nvel. Todas as reas-chave esto citadas na tabela abaixo: Nvel CMM Foco 1) Inicial Pessoas competentes e heris 2) Repetvel Processos de gerenciamento de projetos reas-chave de processo

Gerenciamento de requisitos Planejamento do projeto Viso geral e acompanhamento do projeto Gerenciamento de subcontratados Garantia da qualidade do software Gerenciamento de configurao Foco do processo organizacional Definio do processo organizacional Programa de treinamento

3) Definido

Processos de engenharia e apoio

Gerenciamento de software integrado Engenharia de produto de software Coordenao intergrupos Reviso conjunta Gerenciamento quantitativo dos processos Gerenciamento da qualidade de software Preveno de defeitos Gerenciamento de mudanas tecnolgicas Gerenciamento de mudanas no processo

4) Gerenciado

Qualidade do produto e do processo

5) Otimizado Melhoramento contnuo do processo

Objetivos das reas-chave de processo O modelo CMM define um conjunto de dois a quatro objetivos para cada rea-chave. Estes objetivos definem aquilo que deve ser alcanado no caso dos processos desta rea-chave serem realmente realizados. Veja na tabela abaixo a lista destes objetivos. Nvel CMM reas-chave de processo 1) Inicial 2) Repetvel Gerenciamento de requisitos Objetivos
Os requisitos do sistema definidos para o software so controlados de forma a estabelecer um perfil mnimo a ser utilizado pela engenharia de software e pela administrao Os planos, produtos e atividades do software so sempre consistentes com os requisitos de sistema definidos para o software Estimativas relativas ao software so documentadas para uso no planejamento e acompanhamento do projeto do software. As atividades de projeto de software e compromissos assumidos so planejados e documentados. Grupos e pessoas afetadas concordam com seus compromissos relacionados ao projeto do software.

Planejamento do projeto

Viso geral e acompanhamento do projeto

Resultados reais so acompanhados de acordo do com o planejamento do software Quando os resultados apresentam um significativo desvio do planejamento do software, so tomadas aes corretivas que so acompanhadas at o final do projeto Mudanas nos compromissos assumidos so feitas em comum acordo com os grupos e indivduos afetados O contratante seleciona subcontratos qualificados O contratante e os subcontratatos esto de acordo no que diz respeito aos compromissos assumidos um com o outro. O contratante e os subcontatados mantm uma comunicao constante O contratante acompanha os resultados reais do subcontratado de acordo com os compromissos assumidos As atividades de garantia de qualidade de software so planejadas A conformidade dos produtos de software e atividades com os padres, procedimentos e requisitos verificada objetivamente. Os grupos e indivduos afetados so informados das atividades de garantia de qualidade de software e de seus resultados. Questes realacionadas no conformidade que no so resolvidas dentro do projeto de software so encaminhadas gerncia geral so planejadas. Os produtos de trabalho de software so identificados, controlados e esto disponveis. Mudanas nos produtos de trabalho identificados so controladas. Os grupos e pessoas afetadas so informados da situao atual e projetada dos produtos de trabalho de software. melhoramento do processo de software em toda a organizao Os pontos fortes e fracos do processo de desenvolvimento de software utilizado so identificados, de acordo com um padro de processo. So planejadas atividades de desenvolvimento e melhoramento do processo, a nvel de organizao.

Gerenciamento de subcontratados

Garantia da qualidade do software

Gerenciamento de configurao As atividades de gerenciamento de configurao

3) Definido

Foco do processo organizacional So coordenadas atividades de desenvolvimento e

Definio do processo organizacional

O processo padro de desenvolvimento de software da organizao desenvolvido e mantido. A informao relacionada ao uso do processo padro de desenvolvimento de software coletada, revisada e disponibilizada.

Programa de treinamento

As atividades de treinamento so planejadas fornecido treinamento para o desenvolvimento de habilidades e conhecimentos necessrios para realizar o gerenciamento do software e as funces tcnicas. As pessoas no grupo de engenharia de software e outros grupos relacionados a software recebem o treinamento necessrio para realizar as suas funes O processo de software definido para o projeto uma verso adaptada do processo padro de desenvolvimento de software da organizao O projeto planejado e gerenciado de acordo com o processo de desenvolvimento de software definido para o projeto As atividades de engenharia de software so definidas, intregradas e consistentemente realizadas para produzir o software. Os produtos de trabalho do software so mantidos consistentes entre si. Todos os grupos de traabalho afetados concordam com os requisitos dos cliente. Todos os grupos de trabalho afetados concordam com os acordos entre os grupos de engenharia Os grupos de engenharia identificam, acompanham e resolvem todas as questes intergrupos. Atividades de reviso conjunta so planejadas Defeitos nos produtos de trabalho so identificados e removidos.

Gerenciamento de software integrado

Engenharia de produto de software

Coordenao intergrupos

Reviso conjunta 4) Gerenciado

Gerenciamento quantitativo dos As atividades de gerenciamento quantitativo dos processos so planejadas processos

A performance do processo de desenvolvimento de software definido para o projeto controlada quantitativamente A capacidade do processo desenvolvimento de software padro da organizao conhecida em termos quantitativos.

Gerenciamento da qualidade de As atividades de gerenciamento da qualidade de software do projeto so planejadas. software

Objetivos mensurveis da qualidade do produto de software e suas prioridades so definidos. O progresso real em direo realizao dos objetivos de qualidade para os produtos de software quantificado e gerenciado. As atividades de prevenco de defeitos so planejadas As causas comuns de defeitos so procuradas e identificadas As causas comuns de defeitos so priorizadas e sistematicamente eliminadas.

5) Otimizado Preveno de defeitos

Gerenciamento de mudanas tecnolgicas

A incorporao de mudanas tecnolgicas planejada Novas tecnologias so avaliadas para determinar seu efeito na qualidade e na produtividade Novas tecnologias adequadas so incorporadas na prtica normal de toda a organizao.

Gerenciamento de mudanas no O melhoramento contnuo do processo planejado Toda a organizao participa das atividades de processo

melhoramento do processo de software O padro de processo de software da organizao e os processos de software de cada projeto definido so melhorados continuamente.

Caractersticas comuns e prticas-base As caractersticas comuns so itens a serem observados para que se possa verificar a implementao e institucionalizao de cada rea-chave de processo. Elas podem indicar se a rea-chave de processo eficiente, repetvel e duradoura. So cinco as caractersticas comuns no modelo CMM e cada uma possui suas prticas-base a serem realizadas. Caracterstica Comum Compromisso de realizar Descrio Prticas-base relacionadas a Estabelecimento de polticas e apadrinhamento de um gerente experiente.

Atitutides a serem tomadas pela organizao para garantir que o processo se estabelea e seja duradouro. Capacidade de realizar Pre-requisitos que devem existir no projeto ou na organizao para implementar o processo de forma competente. Atividades realizadas Papis e os procedimentos necessrios para implementar uma rea-chave de processo.

Medies e anlise

Implementao com Verficao

Alocao de recursos, definio da estrutura organizacional e de treinamento. Estabelecimento de planos e procedimentos, realizao do trabalho, acompanhamento do trabalho e tomada de aoes corretivas, se necessrio. Necessidade de medir o processo e Realizao de medies analisar as medies. para determinar o estado e a efetividade das atividades realizadas. Passos para garantir que as atividades Reviso, auditoria e so realizadas de acordo com o garantia de qualidade. processo estabelecido.

As prticas-chave descrevem as atividades que contribuem para atingir os objetivos de cada rea-chave do processo. Em geral so descritas com frases simples, seguidas de descries

detalhadas (chamadas de subprticas) que podem at incluir exemplos. As prticas-base devem descrever "o que" deve ser feito e no "como" os objetivos devem ser atingidos. O modelo CMM inclui um extenso documento em separado, chamado "Prticas-base para o CMM", que lista todas as prticas-chave e subprticas para cada uma das reas-chave de processo. Estrutura Em resumo, o CMM definido em funo de um conjunto de

Nveis de maturidade reas-chave de processo Caractersticas comuns Prticas-base

Veja no grfico abaixo como estes elementos se interligam na estrutura do CMM:

CMM v2

At este ponto tnhamos falado da o CMM verso 1.1, que a verso atual. Entretanto, o modelo CMM est sendo revisado. Foi publicado em 20/ago/97 uma segunda verso preliminar (draft B) do novo CMM v2. O SEI (Software Engineering Institute) promete a verso definitiva do novo modelo ainda para 1997. Esta verso promete corrigir e atualizar o modelo atual, alm de compatibiliz-lo com padres (ou propostas de padres) que surgiram aps o lanamento do CMM 1.1, como ISO 9000-3, ISO 12207 e ISO 15504.

PSP - Personal Software Process


O Modelo CMM muito interessante, mas aplica-se mais a grandes empresas de software. O pessoal do Software Engineering Institute (SEI) acabou percebendo que havia a necessidade de definir um modelo mais simples, voltado para pequenas empresas ou at para um nico indivduo. Foi da que surgiu o PSP, que significa "Processo Pessoal de Sofware". Assim como o CMM, no modelo PSP, existem diversos nveis com caractersticas prprias. O modelo PSP possui os seguintes nveis: Nvel Nome PSP0 Medio Pessoal PSP0.1 Atividades Registro de tempo Registro de defeitos Padro de tipos de defeitos Padro de codificao Medida de tamanho Proposta de melhoramento do processo Estimativa de tamanho Relatrio de testes Planejamento de tarefas Cronogramas Revises de cdigo Revises de projeto Padres de Projeto Desenvolvimento cclico

PSP1 Planejamento Pessoal PSP1.1

PSP2 Qualidade Pessoal PSP2.1 PSP3 Processo Cclico Pessoal

No nvel de Medio Pessoal, voc aprende a registrar o tempo gasto em cada etapa do ciclo do desenvolvimento, registrando ainda os defeitos encontrados. Isto conseguido atravs do uso de formulrios adequados. O nvel PSP0.1 inclui o uso de um padro de codificao, de medidas padronizadas e do formulrio de proposta de melhoramento do processo. No nvel de Planejamento Pessoal, voc aprende a planejar. A idia geral obter a capacidade de estimar quanto tempo levar para realizar uma tarefa beseado nas medies feitas em tarefas semelhantes anteriormente. Neste nvel aprende-se a assumir compromissos que podem realmente ser cumpridos. O nvel PSP1.1 inclui o planejamento de tarefas e a elaborao de cronogramas.

No nvel de Qualidade Pessoal voc aprende a lidar com seus erros. Deve-se ter uma idia precisa de quantos erros so cometidos (em mdia) em cada fase do ciclo de desenvolvimento. O modelo PSP mostra que a forma mais adequada para tratar erros evit-los desde a sua origem. Voc deve utilizar os dados sobre defeitos j coletados para criar uma lista de verificao (checklist) a ser utilizada em suas revises de projeto e de cdigo. O nvel PSP2.1 inclui a criao de padres de projeto, bem como mtodos de anlise e preveno de defeitos. O nvel de Processo Cclico Pessoal a ltima etapa do PSP. Neste nvel, o PSP sai do desenvolvimento de pequenos programas para tratar do desenvolvimento de projetos maiores, embora ainda em nvel pessoal. A idia dividir os grandes projetos em pequenos projetos que possam ser tratados no PSP2. Neste caso, o desenvolvimento acontece em passos incrementais. O treinamento do PSP realizado atravs de 10 exerccios de desenvolvimento de programas. Alm servirem como exemplos de desenvolvimento, os exerccios propostos pelo treinamento do PSP so pequenos utilitrios que ajudam voc a aplicar o PSP, pois permitem medir o nmero de linhas e objetos nos seus programas, calcular desvio padro, prever intervalos etc. Uma descrio completa deste modelo e do treinamento proposto pode ser encontrada no livro "Introduction to the Personal Software Process", publicado em 1996 por Watts Humphery, o pai do PSP.

SPICE - Software Process Improvement and Capability dEtermination ISO 15504


Introduo O SPICE uma norma em elaborao conjunta pela ISO e pelo IEC. Ela constitui-se de uma padro para a avaliao do processo de software, visando determinar a capacitao de uma organizao. A norma visa ainda orientar a organizao para uma melhoria contnua do processo. Ela cobre todos os aspectos da Qualidade do Processo de Software e est sendo elaborada num esforo conjunto de cinco centros tcnicos espalhados pelo mundo (EUA, Canad/Amrica Latina, Europa, Pacfico Norte e Pacfico Sul). Um grupo de estudos da ABNT est participando do processo de desenvolvimento, alm de trabalhar na traduo das verses preliminares da norma para o portugus. Tenho a honra de participar como membro colaborador da comisso SPICE da ABNT. O SPICE inclui um modelo de referncia, que serve de base para o processo de avaliao. Este modelo um conjunto padronizado de processos fundamentais, que orientam para uma boa engenharia de software. Este modelo dividido em cinco grandes categorias de processo: Cliente-Fornecedor, Engenharia, Suporte, Gerncia e Organizao. Cada uma destas categorias detalhada em processos mais especficos. Tudo isso descrito em detalhes pela norma.

Alm dos processos, o SPICE define tambm os 6 nveis de capacitao de cada processo, que pode ser incompleto, executado, gerenciado, estabelecido, previsvel e otimizado. O resultado de uma avaliao, portanto, um perfil da instituio em forma de matriz, onde temos os processos nas linhas e os nveis nas colunas. Categorias e Processos Uma das contribuies do modelo SPICE definir em seu modelo de referncia todos os processos envolvidos no desenvolvimento de software, agrupados em categorias. Observe no quadro abaixo a estrutura completa das categorias, dos processos de cada categoria: Processo Descrio CUS - Cliente-Fornecedor Processos que impactam diretamente os produtos e servios de software na fornecedor para o cliente. CUS.1 Adquirir Software CUS.2 Gerenciar necessidades do Cliente CUS.3 Fornecer Software CUS.4 Operar Software CUS.5 Prover Servio ao Cliente ENG - Engenharia Processos que especificam, implementam ou mantm um sistema ou produto de software e sua documentao ENG.1 Desenvolver requisitos e o projeto do sistema ENG.2 Desenvolver requisitos de software ENG.3 Desenvolver o projeto do software ENG.4 Implementar o projeto do software ENG.5 Integrar e testar o software ENG.6 Integrar e testar o sistema ENG.7 Manter o sistema e o software SUP - Suporte Processos que podem ser empregados por qualquer um dos outros processos SUP.1 Desenvolver a documentao SUP.2 Desempenhar a gerncia de configurao SUP.3 Executar a garantia da qualidade SUP.4 Executar a verificao dos produtos de trabalho Executar a validao dos produtos de SUP.5 trabalho

SUP.6 Executar revises conjuntas SUP.7 Executar auditorias SUP.8 Executar resoluo de problemas MAN - Gerncia Processos que contm prticas de natureza genrica que podem ser usadas por quem gerencia projetos ou processos dentro de um ciclo de vida de software MAN.1 Gerenciar o projeto MAN.2 Gerenciar a qualidade MAN.3 Gerenciar riscos MAN.4 Gerenciar subcontratantes ORG - Organizao Processos que estabelecem os objetivos de negcios da organizao ORG.1 Construir o negcio ORG.2 Definir o processo ORG.3 Melhorar o processo ORG.4 Prover recursos de treinamento ORG.5 Prover infra-estrutura organizacional A norma define detalhes de cada um dos processos mencionados acima. Para cada um deles existe uma definio mais detalhada, uma lista dos resultados da sua implementao bem sucedida e uma descrio detalhada de cada uma das prticas bsicas. Nveis de Capacitao O SPICE, entretanto, no se limita a listar categorias e processos. Seu principal objetivo, na realidade, avaliar a capacitao da organizao em cada processo e permitir a sua melhoria. O modelo de referncia do SPICE inclui seis nveis de capacitao. Cada um dos processos mencionados acima deve ser classificado nestes nveis. Os nveis so descritos a seguir: Nvel Nome 0 Incompleto Descrio H uma falha geral em realizar o objetivo do processo. No existem produtos de trabalho nem sadas do processo facilmente identificveis. 1 Realizado O objetivo do processo em geral atingido, embora no necessariamente de forma planejada e controlada. H um consenso na organizao de que as aes devem ser realizadas e quando so necessrias. Existem produtos de trabalho para o processo e eles so utilizados para atestar o atendimento dos objetivos. 2 Gerenciado O processo produz os produtos de trabalho com qualidade aceitvel e dentro do prazo. Isto feito de forma planejada e controlada. Os produtos de trabalho esto de acordo com padres e requisitos.

3 Estabelecido O processo realizado e gerenciado usando um processo definido, baseado em princpios de Engenharia de Software. As pessoas que implementam o processo usam processos aprovados, que so verses adaptadas do processo padro documentado. 4 Predizvel O processo realizado de forma consistente, dentro dos limites de controle, para atingir os objetivos. Medidas da realizao do processo so coletadas e analisadas. Isto leva a um entendimento quantitativo da capacitao do processo a uma habilidade de predizer a realizao. 5 Otimizado A realizao do processo otimizada para atender s necessidade atuais e futuras do negcio. O processo atinge seus objetivos de negcio e conseguie ser repetido. So estabelecidos objetivos quantitativos de eficcia e eficincia para o processo, segundo os objetivos da organizao. A monitorao consitante do processo segundo estes objetivos conseguida obtendo feedback quantitativo e o melhoramento conseguido pela anlise dos resultados. A otimizao do processo envolve o uso piloto de idias e tecnologias inovadoras, alm da mudana de processos ineficientes para atingir os objetivos definidos. Os 9 manuais do SPICE Esta norma se constituir de um conjunto de 9 manuais, totalizando quase 400 pginas, conforme o detalhamento a seguir, baseado na atual verso preliminar (draft). Parte Pginas Descrio 1 16 Guia de Introduo e Conceitos 2 38 Modelo de referncia para processos e capacidade de processos 3 7 Realizando uma avaliao 4 36 Guia para realizao de uma avaliao 5 145 Um modelo de avaliao e guia de indicadores 6 31 Guia para qualificao de avaliadores 7 47 Guia para uso no melhoramento de processos 8 25 Guia para uso na determinao da capacidade do processo de fornecedor 9 9 Vocabulrio Recentemente, os trabalhos do SPICE evoluram bastante. Os otimistas acreditam que a norma sair dentro de mais um ou dois anos. Tecnicamente, o trabalho pode alongar-se at o ano de 2001...

Sites sobre Qualidade de Software


Pginas Nacionais sobre Qualidade de Software

INSOFT - Qualidade de Software CTI-TAQS - Tecnologia para Avaliao de Qualidade de Software CITS - Centro Internacional de Tecnologia de Software CNPQ - Tecnologia para Avaliao de Qualidade de Software SGQ - Empresa de Consultoria em Qualidade ErgoList - Qualidade ergonmica da interface com o usurio ABNT - Associao Brasileira de Normas Tcnicas ABNT - Subcomit de Software ABNT - Comisso de Estudos SPICE MCT - Qualidade no Setor de Software Brasileiro SSQP/SW do PBQP - Subcomit Setorial da Qualidade e Produtividade em Software do Programa Brasileiro de Qualidade e Produtividade

Qualidade, Qualidade de Software


Quality Resources Online Griffith University, Australian Software Quality Institute Deming Electronic Network Quality Function Deployment US Air Force Software Tech Support Center The Software Quality Page Software Process Newsletter Software Productivity Centre R.S. Pressman The Dilbert Perspective Quality Week - Congresso sobre Qualidade CITS - Conferncia Internacional de Tecnologia de Software

Organizaes Relacionadas Qualidade de Software


IEEE Home Page IEEE Standards IEEE Computer Society ISO Online American Society for Quality Control Association for Computing Machinery Australian Software Quality Research Inst European Software Institute Inst for the Cert of Computing Prof Software Engineering Institute National Research Center of Canada Software Assurance Tech Center

Software Inspections and Review Org Software Quality Institute

Engenharia de Software

Software Engineering Online Service IEEE Technical Council on Software Engineering Software Engineering FAQ IIT Software Engineering Software Engineering Process Maturity Resources Software Productivity Consortium WWW Virtual Library - Software Engineering Tero Ahtee's software engineering reference list Software Productivity Research - Articles, Books, and White Papers Software Engineering Home Page Software Engineering Main Page Software Engineering Internet Resource List Software Engineering Williamson's Software Engineering Pages SPI WWW Sources Software Reengineering Web Home Page

Mtricas de Software

Software Metrics - Forum US Army Software Metrics System Object Oriented Software Metrics Software Metrics & Static Analysis Software Research Laboratory

Teste de Software

Software Testing Article Archives Software Testing - Usenet Test Automation Guidance Testing Techniques Newsletter Technical Review Archive

Qualidade do Processo de Software


SEI - Software Engineering Institute Defense Info Systems's Software Process Improvement Program Expert System Program and System Development Group Software Development: People, Process, Technology European Software Institute (ESI) Software Technology Support Center

Software Design & Engineering: Process Management Issues Useful Internet Sites related to Software Process Improvement Software Productivity Center's Process Improvement Resources Managing Software Development Project Management Software FAQ Software Proccess, Quality and ISO 9000

Modelo CMM

SEI - CMM - Capability Maturity Model SEI - CMM 1.1 - Texto completo para download SEI - CMM v2 - A nova verso do CMM SEI - P-CMM - People Capability Maturity Model Capability Maturity Model CMM Level 2 Focus Group CMM Questions Rochester Software Quality Association Integrated Product Development - CMM Software Engineering - CMM Software Factory Information Database ITG Software Process Improvement (SPI)

Modelo SPICE

SPICE - European Software Institute SPICE - Texto da verso 1.00 draft para download SPICE - Australian Software Quality Research Institute SPICE - Articulo de Arnoldo Daz Olavarrieta

Outros Modelos

PSP - Personal Software Process The Trillium Model The Bootstrap Methodology Cleanroom Software Engineering Cleanroom Software Engineering Tutorial

Artigos sobre Qualidade em Revistas On-Line


The Quality Factor (Byte Internacional, Abril/97). Viso geral sobre ISO-9000-3 e CMM How Software Doesn't Work (Byte Internacional, Dezembro/95) Reportagem de Capa sobre Qualidade. Qualidade de Software (Developers Magazine, Junho/97) Reportagem de Capa sobre Qualidade de SW

Congressos de Engenharia e Qualidade de Software


CITS - Congresso Internacional de Tecnologia de Software SBES - Simpsio Brasileiro de Engenharia de Software Metrics' 97 Automated Software Engineering - ASE'97 IASTED International Conference Software Engineering Simposio Latinoamericano de Calidad y Productividad en Desarrollo de Software 10h Software Engineering Process Group Conference: SEPG 98 QWE97 - Quality Week Europe Software Development Seminars Systems Testing & Quality Assurance Techniques ASM Applications of Software Measurement IEEE International High Level Design Validation and Test Workshop STAR International Conference on Software Testing Analysis & Review