qualidade em software
TRANSCRIPT
-
8/9/2019 Qualidade Em Software
1/31
Qualidade de SoftwareJos Barreto Jnior
O que qualidade? Existem diversas definies. Algumas pessoas que tentaram umadefinio 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 satisfazersnecessidades explcitas e implcitas
Nota-se que esta definio formal exige alguns complementos, principalmente para definiro 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 necessidadesexplcitas so as prprias condies e objetivos propostos pelo produtor. As necessidadesimplcitas incluem as diferenas entre os usurios, a evoluo no tempo, as implicaesticas, 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 umproduto, voc deve fazer uma lista destas necessidades e analisar cada uma destasnecessidades.
Certificao de Qualidade
Um aspecto interessante da qualidade que no basta que ela exista. Ela deve serreconhecida pelo cliente. Por causa disso, necessrio que exista algum tipo decertificao oficial, emitida com base em um padro. Voc provavelmente j conhecealguns 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
-
8/9/2019 Qualidade Em Software
2/31
Voc j deve ter ouvido muitas propagandas de empresas falando de sua certificao ISO-9000. Isto nada mais do que um padro de qualidade (reconhecido mundialmente) peloqual esta empresa foi avaliada e julgada. Para que seja possvel realizar uma avaliao eum julgamento, necessrio haver um padro ou norma. Existem alguns organismosnormalizadores 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 empresasdo 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 naEuropa, 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 docertificado, preciso realizar todo um processo de avaliao e julgamento de acordo comuma determinada norma. Embora uma empresa possa auto-avaliar-se ou ser avaliada porseus prprios clientes, o termo Certificao costuma ser aplicado apenas quando efetuadopor uma empresa independente e idnea, normalmente especializada neste tipo de trabalho.No Brasil, o INMETRO o rgo do governo responsvel pelo credenciamento destasinstituies 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 maisimportante. No caso do prato de comida, por exemplo, voc pode dizer mais sobre aqualidade 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 oprato.
Esta descoberta aconteceu durante a prpria evoluo dos conceitos de qualidade, ao longodos anos. Observe na tabela abaixo como aconteceu esta evoluo:
Inspeo ps-produo Avalia o produto final, depois de pronto 1900
Controle estatstico da produo Avalia os subprodutos das etapas de produo 1940
Procedimento de produo Avalia todo o procedimento de produo 1950Educao das pessoas Avalia as pessoas envolvidas no processo 1960
Otimizao dos processos Avalia e otimiza cada processo 1970
Projeto robusto Avalia o projeto de produo 1980
Engenharia simultnea Avalia a prpria concepo do produto 1990
-
8/9/2019 Qualidade Em Software
3/31
Hoje em dia, voc pode consultar normas e padres tanto para produtos quanto paraprocessos. Obviamente, os certificados mais valiosos so aqueles que certificam o processode produo de um produto e no aqueles que simplesmente certificam o produto.Entretanto, comum encontrar empresas que perseguem os dois tipos de padro dequalidade.
Qualidade de Software
Agora que voc j sabe o que qualidade e como ela pode ser avaliada, vamos tentaraplicar estes conceitos aos produtos de software e ao processo de desenvolvimento desoftware. Inicialmente, vamos encontrar um grande problema: muitas pessoas acham quecriar programas uma arte que no pode seguir regras, normas ou padres. Isto aconteceprincipalmente 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. Vocprovavelmente j ouviu dizer que "Se os engenheiros construssem prdios como osanalistas 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 corretaavaliao de qualidade tanto de produtos de software quanto de processos dedesenvolvimento de software. Apenas para ter uma uma viso geral, observe o quadroabaixo com as principais normais nacionais e internacionais nesta rea:
Norma Comentrio
ISO 9126 Caractersticas da qualidade de produtos de software.
NBR 13596 Verso brasileira da ISO 9126
ISO 14598 Guias para a avaliao de produtos de software, baseados na utilizaoprtica da norma ISO 9126
ISO 12119Caractersticas de qualidade de pacotes de software (software deprateleira, vendido com um produto embalado)
IEEE P1061Standard for Software Quality Metrics Methodology (produto desoftware)
ISO 12207 Software Life C cle Process. Norma ara a ualidade do rocesso de
-
8/9/2019 Qualidade Em Software
4/31
desenvolvimento de software.
NBR ISO 9001Sistemas de qualidade - Modelo para garantia de qualidade em Projeto,Desenvolvimento, Instalao e Assistncia Tcnica (processo)
NBR ISO 9000-3Gesto de qualidade e garantia de qualidade. Aplicao da norma ISO9000 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 deSoftware do Departamento de Defesa dos EEUU) para avaliao daqualidade do processo de desenvolvimento de software. No umanorma ISO, mas muito bem aceita no mercado.
SPICEISO 15504
Projeto da ISO/IEC para avaliao de processo de desenvolvimento desoftware. Ainda no uma norma oficial ISO, mas o processo est emandamento.
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 dedesenvolvimento de software a Engenharia de Software. atravs dela que poderemoschegar 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 menosat 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 conhecimentoscientficos. Atualmente, estes requisitos so atendidos apenas em parte.
necessrio definir, portanto, o que exatamente a Engenharia de Software. Veja algumastentativas 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. "
-
8/9/2019 Qualidade Em Software
5/31
"... 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 decomparao, provavelmente ligado s dimenses do produto ou alguma outra caractersticafsica. 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 bastantesobre 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 efoi publicada em 1991. Ela uma das mais antigas da rea de qualidade de software e jpossui 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 umsoftware para que ele seja considerado um "software de qualidade". So seis grandesgrupos de caractersticas, cada um dividido em algumas subcaractersticas.
Os nomes dados pelo ISO/IEC para as caractersticas e subcaractersticas so um poucocomplexos (para dizer a verdade, acho at que os prprios termos "caractersticas" e
"subcaractersticas" so mais complexos que o necessrio). Entretanto, uma pessoa quetrabalha com software no ter dificuldade em entend-las. Observe na tabela abaixo a listacompleta:
Caracterstica Subcaracterstica Pergunta chave para a subcaracterstica
Adequao Prope-se a fazer o que apropriado?
Acurcia Faz o que foi proposto de forma correta?
Interoperbilidade Interage com os sistemas especificados?
Conformidade Est de acordo com as normas, leis, etc.?
Funcionalidade(satisfaz as
necessidades?)Segurana de acesso Evita acesso no autorizado aos dados?
Maturidade Com que freqncia apresenta falhas?
Tolerncia a falhas Ocorrendo falhas, como ele reage?Confiabilidade
( imune a falhas?)Recuperabilidade capaz de recuperar dados em caso de falha?
Usabilidade Intelegibilidade fcil entender o conceito e a aplicao?
-
8/9/2019 Qualidade Em Software
6/31
Apreensibilidade fcil aprender a usar?( fcil de usar?)
Operacionalidade fcil de operar e controlar?
TempoQual o tempo de resposta, a velocidade deexecuo?
Eficincia( rpido e"enxuto"?)
Recursos Quanto recurso usa? Durante quanto tempo?Analisabilidade fcil de encontrar uma falha, quando ocorre?
Modificabilidade fcil modificar e adaptar?
Estabilidade H grande risco quando se faz alteraes?
Manutenibilidade( fcil de
modificar?)Testabilidade fcil testar quando se faz alteraes?
Adaptabilidade fcil adaptar a outros ambientes?
Capac. para serinstalado
fcil instalar em outros ambientes?
Conformidade Est de acordo com padres de portabilidade?
Portabilidade( facil de usar emoutro ambiente?)
Capac. para substituir fcil usar para substituir outro?
Esta norma no muito extensa (contm apenas 10 pginas). Entretanto, ela defineminunciosamente (em uma linguagem bem detalhista, estilo contrato) o que se pretendeavaliar em cada caracterstica e subcaracterstica. Se voc desejar ter o texto integral danorma 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 eoramento para compra de normas. Para maiores informaes, contacte diretamente aABNT:
ABNT - Associao Brasileira de Normas Tcnicas
Av. Treze de Maio, 13 - 28 andarCEP 20003-900 Caixa Postal 1680Fone: (021) 210-3122 - Fax: (021) 532-2143
Mtricas de Software
Embora a atual norma ISO 9126/NBR 13596 enumere as caractersticas e subcaractersticasum software, ela ainda no define como dar uma nota a um software em cada um destesitens. Se voc no est familiarizado com o processo de avaliao de software, pode terdificuldades em tentar utilizar a norma. Se voc pretende avaliar um software segundo estanorma, 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 umprograma, nmero de linhas de cdigo, nmero de erros encontrados em uma sesso deteste ou o tempo mdio entre falhas. Nestes casos, possvel utilizar uma tcnica, umaferramenta ou um software para realizar medies. Em outros casos, a caracterstica tosubjetiva que no existe nenhuma forma bvia de med-la.
-
8/9/2019 Qualidade Em Software
7/31
Ficam, portanto, as questes: como dar uma nota, em valor numrico, a uma caractersticainteiramente subjetiva? O que representa, por exemplo, uma "nota 10" em termos de"Segurana de Acesso"? Quando se pode dizer que a "Intelegibilidade" de um softwarepode ser considerada "satisfatria"? Criou-se, ento, uma rea de estudo parte dentro daQualidade 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, porexemplo, voc pode criar uma srie de perguntas do tipo "sim ou no". Crie as perguntas deforma tal que as respostas "sim" sejam aquelas que indicam uma melhor nota para acaracterstica. Depois de prontas as perguntas, basta avaliar o software, respondendo a cadapergunta. Se voc conseguir listar 10 perguntas e o software obtiver uma resposta "sim" em8 delas, ter obtido um valor de 80% nesta caracterstica.
Obviamente, a tcnica acima no muito eficiente. Para melhor-la, entretanto, voc podegarantir um nmero mnimo perguntas para cada caracterstica. Alm disso, algumasperguntas mais importantes podem ter pesos maiores. possvel, ainda, criar perguntas dotipo ABCDE, onde cada resposta indicaria um escore diferenciado. Alguns estudiosossugerem formas diferentes de medir uma caracterstica, baseada em conceitos do tipo "nosatisfaz", "satisfaz parcialmente", "satisfaz totalmente" e "excede os padres". Estesconceitos, emboram parecem muito subjetivos, no deixam de ser uma forma eficiente demedir uma caracterstica.
Em todos os casos, um fato fica claro: nada ajuda mais a avaliar caractersticas de umsoftware do que um avaliador experiente, que j realizou esta tarefa diversas vezes e emdiversas empresas diferentes. Afinal, medir comparar com padres e um avaliadorexperiente ter maior sensibilidade do que um profissional que acaba de ler uma norma pelaprimeira vez.
Atualmente, a norma ISO/IEC 9126 est sendo revisada. A reviso, que dever estar prontanos prximos anos, no dever modificar nenhuma das caractersticas bsicas da 9126. Amaior modificao ser a incluso de dois documentos adicionais para descrever mtricasexternas (relativas ao uso do produto) e mtricas internas (relativas arquitetura doproduto). Veja algumas das modificaes previstas para esta reviso:
Algumas novas subcaractersticas. Conformidade far parte de todas ascaractersticas. Atratividade ser uma subcaracterstica de usabilidade. Capacidadede coexistir ser uma subcaracterstica de portabilidade.
A norma ser dividida em trs partes. A primeira (9126-1) incluir definies ecaractersticas. 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.
-
8/9/2019 Qualidade Em Software
8/31
Guias para a Avaliao da Qualidade - ISO 14598
Todos notaram a necessidade de mais detalhes sobre como avaliar a qualidade de umsoftware. As caractersticas e subcaractersticas da norma ISO/IEC 9126 apenas comearamo 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 Guiaspara 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 nestanorma ainda no esteja totalmente pronta, j existem informaes detalhadas sobre o queser esta norma, quando for oficialmente publicada.
Esta nova norma trar muitos recursos interessantes aos avaliadores, j que trata o processode avaliao em grande detalhe. Ela leva em conta a existncia de trs grupos interessadosem avaliar um software, o que define os trs tipos bsicos de certificao:
Certificao Quem realiza Finalidade
de 1a. parteEmpresas que desenvolvemsoftware
Melhorar a qualidade de seu prprioproduto
de 2a. parte Empresas que adquirem softwareDeterminar a qualidade do produto queiro adquirir
de 3a. parte Empresas que fazem certificaoEmitir documento oficial sobre aqualidade de um software
Esta norma se constituir, na verdade, de seis documentos distintos, relacionados entre si.
Veja:
Norma Nome Finalidade
14598-1 Viso GeralEnsina a utilizar as outras normas dogrupo
14598-2 Planejamento e GerenciamentoSobre como fazer uma avaliao, deforma geral
14598-3 Guia para DesenvolvedoresComo avaliar sob o ponto do vista dequem desenvolve
14598-4 Guia para Aquisio
Como avaliar sob o ponto de vista de
quem vai adquirir
14598-5 Guia para AvaliaoComo avaliar sob o ponto de vista dequem certifica
14598-6 Mdulos de AvaliaoDetalhes sobre como avaliar cadacaracterstica
-
8/9/2019 Qualidade Em Software
9/31
Em resumo, esta nova norma complementar a ISO/IEC 9126 e permitir uma avaliaopadronizada das caractersticas de qualidade de um software. importante notar que, aocontrrio da 9126, a 14598 vai a detalhes mnimos, incluindo modelos para relatrios deavaliao, tcnicas para medio das caractersticas, documentos necessrios para avaliaoe fases da avaliao. Como um exemplo, observe um modelo de relatrio de avaliao,
segundo um anexo da norma 14598-5:
Seo Itens
1 - Prefcio Identificao do avaliadorIdentificao do relatrio de avaliaoIdentificao do contratante e fornecedor
2 - Requisitos Descrio geral do domnio de aplicao do produtoDescrio geral dos objetivos do produtoLista dos requisitos de qualidade, incluindo- Informaes do produto a serem avaliadas- Referncias s caractersticas de qualidade
- Nveis de avaliao3 - Especificao Abrangncia da avaliao
Referncia cruzada entre os requisitos de avaliao e os componentesdo produtoEspecificao das medies e dos pontos de verificaoMapeamento entre a especificao das medies com os requisitos deavaliao
4 - Mtodos Mtodos e componentes nos quais o mtodo ser aplicado
5 - Resultado Resultados da avaliao propriamente ditosResultados 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 processode 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, estanorma 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, tambmconhecidos como "software de prateleira". Alm de estabelecer os requisitos de qualidadepara este tipo de software, ela tambm destaca a necessidade de instrues para teste destepacote, considerando estes requisitos. A norma divide-se em itens, da seguinte forma:
Item Descrio
1. Escopo
2. Definies
-
8/9/2019 Qualidade Em Software
10/31
3. Requisitos de qualidade
3.1. Descrio do Produto Descreve o produto, de forma a ajudar o comprador empotencial, servindo como base para testes. Cada declaraodeve ser correta e testvel. Deve incluir declaraes sobrefuncionalidade, confiabilidade, usabilidade, eficincia,
manutenibilidade e portabilidade.3.2. Documentao dousurio
Deve ser completa, correta, consistente, fcil de entender ecapaz de dar uma viso geral do produto.
3.3. Programas e dados Descreve em detalhes cada uma das funes do software,incluindo declaraes sobre funcionalidade, confiabilidade,usabilidade, eficincia, manutenibilidade e portabilidade.
4. Instrues para teste
4.1. Pr-requisitos de teste Lista de itens necessrios ao teste, incluindo documentosincludos no pacote, componentes do sistema e material detreinamento.
4.2. Atividades de teste Instrues detalhadas sobre os procedimentos de teste,inclusive instalao e execuo de cada uma das funesdescritas.
4.3. Registro de teste Informaes sobre como os testes foram realizados, de talforma a permitir uma reproduo destes testes. Deve incluirparmetros utilizados, resultados associados, falhas ocorridase at a identidade do pessoal envolvido.
4.4. Relatrio de teste Relatrio inlcuindo: identificao do produto, hardware esoftware utilizado, documentos utilizados, resultados dostestes, lista de no conformidade com os requisitos, lista de
no conformidade com as recomendaes, datas, etc.
Um dos grandes mritos desta norma est na profundidade com que so descritas cada umadas caractersticas e subcaractersticas mencionadas na norma 9126. A norma incluidetalhes 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
-
8/9/2019 Qualidade Em Software
11/31
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 relatriosincludos. Tudo isso facilita grandemente o trabalho do avaliador. Uma verso traduzidadesta norma ser publicada em breve ABNT.
Qualidade do Processo de Software
Os estudos sobre qualidade mais recentes so na sua maioria voltados para o melhoramentodo processo de desenvolvimento de software. No que a qualidade do produto no sejaimportante, ela . Mas o fato que, ao garantir a qualidade do processo, j se est dando umgrande 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 ambasas disciplinas, estuda-se modelos do processo de desenvolvimento de software. Estesmodelos so uma tentativa de explicar em detalhes como se desenvolve um software, quaisso as etapas envolvidas. necessrio compreender cada pequena tarefa envolvida nodesenvolvimento.
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 sonormas 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. Nofinal desta pgina voc encontrar alguns links sobre Modelos de Qualidade de Processo deSoftware. 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 egerenciamento da qualidade. Veja algumas destas normas abaixo:
-
8/9/2019 Qualidade Em Software
12/31
Norma Trata de
ISO 9001 Modelo para garantia da qualidade em projeto, desenvolvimento,produo, instalao e assistncia tcnica.
ISO 9002 Modelo para garantia da qualidade em produo e instalao
ISO 9003 Modelo para garantia da qualidade em inspeo e ensaios finaisISO 9000-1 Diretrizes para escolher entre as normas ISO 9001, 9002 e 9003
ISO 9000-3 Orientao para a aplicao da ISO 9001 em Software
Entre as normas 9001, 9002 e 9003, a primeira a que mais se adequa ao desenvolvimentoe manuteno de software. Como toda norma deste grupo, ela usada para garantir que umfornecedor 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 ISO9001 especificamente na rea de desenvolvimento, fornecimento e manuteno de software.Todas as orientaes giram em torno de uma "situao contratual", onde uma outra empresacontrata a empresa em questo para desenvolver um produto de software. Veja na tabelaabaixo os processos definidos na ISO 9000-3:
Grupo Atividade
Estrutura do Sistema de Qualidade Responsabilidade do fornecedorResponsabilidade do compradorAnlise crtica conjunta
Atividades do Ciclo de Vida Anlise crtica do contratoEspecificao dos requisitos do
compradorPlanejamento do desenvolvimentoProjeto e implementaoTestes e validaoAceitaoCpia, entrega e instalaoManuteno
Atividades de Apio Gerenciamento de configuraoControle de documentosRegistros da qualidadeMedio
Regras, convenesAquisioProduto de software includoTreinamento
O processo de certificao de uma empresa de software segundo as normas ISO 9001 /9000-3 segue um conjunto de passos bem definidos:
-
8/9/2019 Qualidade Em Software
13/31
1. A empresa estabelece o seu sistema de qualidade2. A empresa faz uma solicitao formal a um rgo certificador, incluindo detalhes
do negcio da empresa, escopo da certificao solicitada e cpia do manual dequalidade
3. O rgo certificador faz uma visita empresa, colhe mais dados e explica o
processo de certificao4. O rgo certificador verifica se a documentao do sistema de qualidade est deacordo com a norma ISO
5. O rgo certificador envia uma equipe empresa com fins de auditoria. Nestavisita, ser verificado se todos na empresa cumprem o que est documentado nomanual de qualidade.
6. O rgo certificador emite o certificado de qualidade7. 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 ISO9000-3 custam menos de R$25, cada). O site da ABNT na Internet oferece funes depesquisa 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 bsicoem Engenharia de Software e tambm em qualquer estudo sobre Qualidade do Processo deSoftware. Esta norma possui mais de 60 pginas e detalha os diversos processos envolvidosno ciclo de vida do software. Estes processos esto divididos em trs classes: ProcessosFundamentais, Processos de Apoio e Processos Organizacionais.
Veja a lista completa dos processos na tabela abaixo:
ProcessosFundamentais
Incio e execuo do desenvolvimento, operao ou manuteno dosoftware durante o seu ciclo de vida.
Aquisio Atividades de quem um software. Inclui: definio da necessidadede adquirir um software (produto ou servio), pedido de proposta,seleo de fornecedor, gerncia da aquisio e aceitao dosoftware.
Fornecimento Atividades do fornecedor de software. Inclui preparar uma proposta,assinatura de contrato, determinao recursos necessrios, planosde projeto e entrega do software.
Desenvolvimento Atividades do desenvolvedor de software. Inclui: anlise derequisitos, projeto, codificao, integrao, testes, instalao eaceitao do software.
Operao Atividades do operador do software. Inclui: operao do software esuporte operacional aos usurios.
Manuteno Atividades de quem faz a manuteno do software.
-
8/9/2019 Qualidade Em Software
14/31
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 deConfigurao
Identificao e controle dos itens do software. Inclui: controle dearmazenamento, liberaes, manipulao, distribuio emodificao de cada um dos itens que compem o software.
Garantia daQualidade
Garante que os processos e produtos de software estejam emconformidade com os requisitos e os planos estabelecidos.
Verificao Determina se os produtos de software de uma atividade atendemcompletamente 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 umaatividade de um projeto, se apropriado.
Auditoria Determina adequao aos requisitos, planos e contrato, quandoapropriado.
Resoluo deProblemas
Anlisar e resoluo dos problemas de qualquer natureza ou fonte,descobertos durante a execuo do desenvolvimento, operao,manuteno ou outros processos. .
ProcessosOrganizacionais
Implementam uma estrutura constituda de processos de ciclo devida e pessoal associados, melhorando continuamente a estrutura eos 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 umprocesso 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 serusados de diferentes maneiras por diferentes organizaes (ou parte destas), representandodiversos pontos de vista para esta utilizao. Cada uma destas vises representa a forma
como uma organizao emprega estes processos, agrupando-os de acordo com suasnecessidades e objetivos.
As Vises tm o objetivo de organizar melhor a estrutura de uma empresa, para definir suasgerncias e atividades alocadas s suas equipes. Existem cinco vises diferentes: contrato,gerenciamento, operao, engenharia e apoio. Veja na figura abaixo como estas vises serelacionam aos processos.
-
8/9/2019 Qualidade Em Software
15/31
A ISO/IEC 12207 a primeira norma internacional que descreve em detalhes os processos,atividades e tarefas que envolvem o fornecimento, desenvolvimento, operao emanuteno de produtos de software. A principal finalidade desta norma servir dereferncia 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 aexpectativa da comisso encarregada da traduo que ela se transforme em normabrasileira ainda em 1997.
-
8/9/2019 Qualidade Em Software
16/31
CMM - Capability Maturity Model
Este "Modelo de Maturidade da Capacidade" uma iniciativa do SEI (SoftwareEngineering Institute) para avaliar e melhorar a capacitao de empresas que produzemsoftware. O projeto CMM foi apoiado pelo Departamento de Defesa do Governo dos
Estados Unidos, que um grande consumidor de software e precisava de um modeloformal 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 oIEEE), esta norma tem tido uma grande aceitao mundial, at mesmo fora do mercadoamericano. O modelo, publicado em 1992, no extenso e pode ser obtido na prpriaInternet 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 respeitoao processo de desenvolvimento de software. A definio do que "Maturidade" pode ser
melhor compreendida atravs da anlise do quadro abaixo:
Organizaes maduras Organizaes imaturas
Papis e responsabilidades bem definidos Processo improvisado
Existe base histrica No existe base histrica
possvel julgar a qualidade do produto No h maneira objetiva de julgar aqualidade do produto
A qualidade dos produtos e processos monitorada
Qualidade e funcionalidade do produtosacrificadas
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 suascaractersticas prprias. No nvel 1, o das organizaes mais imaturas, no h nenhumametodologia implementada e tudo ocorre de forma desorganizada. No nvel 5, o dasorganizaes mais maduras, cada detalhe do processo de desenvolvimento est definido,quantificado e acompanhado e a organizao consegue at absorver mudanas no processosem projudicar o desenvolvimento. Veja a tabela abaixo:
Nvel CMM Descrio
1) Inicial O processo de desenvolvimento desorganizado e at catico. Poucosprocessos so definidos e o sucesso depende de esforos individuais ehericos.
2) Repetvel Os processos bsicos de gerenciamento de projeto esto estabelecidos eermitem acom anhar custo crono rama e funcionalidade. ossvel
-
8/9/2019 Qualidade Em Software
17/31
repetir o sucesso de um processo utilizado anteriormente em outrosprojetos similares.
3) Definido Tanto as atividades de gerenciamento quanto de engenharia do processode desenvolvimento de software esto documentadas, padronizadas eintegradas em um padro de desenvolvimento da organizao. Todos os
projetos utilizam uma verso aprovada e adaptada do processo padro dedesenvolvimento de software da organizao.
4) Gerenciado So coletadas medidas detalhadas da qualidade do produto e processo dedesenvolvimento de software. Tanto o produto quanto o processo dedesenvolvimento de software so entendidos e controladosquantitativamente.
5) Otimizado O melhoramento contnuo do processo conseguido atravs de um"feedback" quantitativo dos processos e pelo uso pioneiro de idais etecnologias inovadoras.
Uma empresa no nvel 1 no d garantia de prazo, custo ou funcionalidade. No nvel 2, aempresa j consegue produzir bons softwares, no prazo e a um custo previsvel. O nvel 3garante um excelente nvel de qualidade, tanto no produto quanto no processo dedesenvolvimento como um todo. No h, no mundo, muitas empresas que tenham chegadoaos 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 reasso exatamente aquilo no que a organizao deve focar para melhorar o seu processo dedesenvolvimento de software. Para que uma empresa possa se quailificar em um
determinado nvel de maturidade CMM, deve estar realizando os processos relacionados sreas-chave daquele determinado nvel. Todas as reas-chave esto citadas na tabelaabaixo:
Nvel CMM Foco reas-chave de processo
1) Inicial Pessoas competentes e heris
2) Repetvel Processos de gerenciamento deprojetos
Gerenciamento de requisitos Planejamento do projeto Viso geral e acompanhamento do
projeto Gerenciamento de subcontratados Garantia da qualidade do software Gerenciamento de configurao
3) Definido Processos de engenharia e apoio Foco do processo organizacional Definio do processo
organizacional Programa de treinamento
-
8/9/2019 Qualidade Em Software
18/31
Gerenciamento de softwareintegrado
Engenharia de produto de software Coordenao intergrupos Reviso conjunta
4)Gerenciado
Qualidade do produto e doprocesso
Gerenciamento quantitativo dosprocessos
Gerenciamento da qualidade desoftware
5) Otimizado Melhoramento contnuo doprocesso
Preveno de defeitos Gerenciamento de mudanas
tecnolgicas Gerenciamento de mudanas no
processo
Objetivos das reas-chave de processo
O modelo CMM define um conjunto de dois a quatro objetivos para cada rea-chave. Estesobjetivos definem aquilo que deve ser alcanado no caso dos processos desta rea-chaveserem realmente realizados. Veja na tabela abaixo a lista destes objetivos.
Nvel CMM reas-chave de processo Objetivos
1) Inicial
Gerenciamento de requisitos Os requisitos do sistema definidos para o softwareso controlados de forma a estabelecer um perfilmnimo a ser utilizado pela engenharia de softwaree pela administraoOs planos, produtos e atividades do software sosempre consistentes com os requisitos de sistemadefinidos para o software
2) Repetvel
Planejamento do projeto Estimativas relativas ao software sodocumentadas para uso no planejamento eacompanhamento do projeto do software.As atividades de projeto de software ecompromissos assumidos so planejados edocumentados.
Grupos e pessoas afetadas concordam com seuscompromissos relacionados ao projeto do software.
-
8/9/2019 Qualidade Em Software
19/31
Viso geral e acompanhamentodo projeto
Resultados reais so acompanhados de acordo docom o planejamento do softwareQuando os resultados apresentam um significativodesvio do planejamento do software, so tomadasaes corretivas que so acompanhadas at o finaldo projeto
Mudanas nos compromissos assumidos so feitasem comum acordo com os grupos e indivduosafetados
Gerenciamento desubcontratados
O contratante seleciona subcontratos qualificadosO contratante e os subcontratatos esto de acordono que diz respeito aos compromissos assumidosum com o outro.O contratante e os subcontatados mantm umacomunicao constanteO contratante acompanha os resultados reais dosubcontratado de acordo com os compromissosassumidos
Garantia da qualidade do
software
As atividades de garantia de qualidade de software
so planejadasA conformidade dos produtos de software eatividades com os padres, procedimentos erequisitos verificada objetivamente.Os grupos e indivduos afetados so informadosdas atividades de garantia de qualidade de softwaree de seus resultados.Questes realacionadas no conformidade queno so resolvidas dentro do projeto de softwareso encaminhadas gerncia geral
Gerenciamento de configurao As atividades de gerenciamento de configuraoso planejadas.Os produtos de trabalho de software so
identificados, controlados e esto disponveis.Mudanas nos produtos de trabalho identificadosso controladas.Os grupos e pessoas afetadas so informados dasituao atual e projetada dos produtos de trabalhode software.
Foco do processo organizacional So coordenadas atividades de desenvolvimento emelhoramento do processo de software em toda aorganizaoOs pontos fortes e fracos do processo dedesenvolvimento de software utilizado soidentificados, de acordo com um padro deprocesso.
So planejadas atividades de desenvolvimento emelhoramento do processo, a nvel de organizao.
3) Definido
Definio do processoorganizacional
O processo padro de desenvolvimento desoftware da organizao desenvolvido e mantido.A informao relacionada ao uso do processopadro de desenvolvimento de software coletada,revisada e disponibilizada.
-
8/9/2019 Qualidade Em Software
20/31
Programa de treinamento As atividades de treinamento so planejadas fornecido treinamento para o desenvolvimentode habilidades e conhecimentos necessrios pararealizar o gerenciamento do software e as funcestcnicas.As pessoas no grupo de engenharia de software e
outros grupos relacionados a software recebem otreinamento necessrio para realizar as suasfunes
Gerenciamento de softwareintegrado
O processo de software definido para o projeto uma verso adaptada do processo padro dedesenvolvimento de software da organizaoO projeto planejado e gerenciado de acordo como processo de desenvolvimento de softwaredefinido para o projeto
Engenharia de produto desoftware
As atividades de engenharia de software sodefinidas, intregradas e consistentementerealizadas para produzir o software.Os produtos de trabalho do software so mantidos
consistentes entre si.Coordenao intergrupos Todos os grupos de traabalho afetados concordam
com os requisitos dos cliente.Todos os grupos de trabalho afetados concordamcom os acordos entre os grupos de engenhariaOs grupos de engenharia identificam, acompanhame resolvem todas as questes intergrupos.
Reviso conjunta Atividades de reviso conjunta so planejadasDefeitos nos produtos de trabalho so identificadose removidos.
Gerenciamento quantitativo dosprocessos
As atividades de gerenciamento quantitativo dosprocessos so planejadas
A performance do processo de desenvolvimento desoftware definido para o projeto controladaquantitativamenteA capacidade do processo desenvolvimento desoftware padro da organizao conhecida emtermos quantitativos.
4)Gerenciado
Gerenciamento da qualidade desoftware
As atividades de gerenciamento da qualidade desoftware do projeto so planejadas.Objetivos mensurveis da qualidade do produto desoftware e suas prioridades so definidos.O progresso real em direo realizao dosobjetivos de qualidade para os produtos desoftware quantificado e gerenciado.
5) Otimizado Preveno de defeitos As atividades de prevenco de defeitos soplanejadasAs causas comuns de defeitos so procuradas eidentificadasAs causas comuns de defeitos so priorizadas esistematicamente eliminadas.
-
8/9/2019 Qualidade Em Software
21/31
Gerenciamento de mudanastecnolgicas
A incorporao de mudanas tecnolgicas planejadaNovas tecnologias so avaliadas para determinarseu efeito na qualidade e na produtividadeNovas tecnologias adequadas so incorporadas naprtica normal de toda a organizao.
Gerenciamento de mudanas noprocesso
O melhoramento contnuo do processo planejadoToda a organizao participa das atividades demelhoramento do processo de softwareO padro de processo de software da organizao eos processos de software de cada projeto definidoso melhorados continuamente.
Caractersticas comuns e prticas-base
As caractersticas comuns so itens a serem observados para que se possa verificar aimplementao e institucionalizao de cada rea-chave de processo. Elas podem indicar sea 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.
CaractersticaComum
Descrio Prticas-baserelacionadas a
Compromisso derealizar
Atitutides a serem tomadas pelaorganizao para garantir que oprocesso se estabelea e sejaduradouro.
Estabelecimento depolticas e apadrinhamentode um gerente experiente.
Capacidade de realizar Pre-requisitos que devem existir noprojeto ou na organizao para
implementar o processo de formacompetente.
Alocao de recursos,definio da estrutura
organizacional e detreinamento.
Atividades realizadas Papis e os procedimentosnecessrios para implementar umarea-chave de processo.
Estabelecimento de planose procedimentos, realizaodo trabalho,acompanhamento dotrabalho e tomada de aoescorretivas, se necessrio.
Medies e anlise Necessidade de medir o processo eanalisar as medies.
Realizao de mediespara determinar o estado e aefetividade das atividadesrealizadas.
Implementao comVerficao
Passos para garantir que as atividadesso realizadas de acordo com oprocesso estabelecido.
Reviso, auditoria egarantia de qualidade.
As prticas-chave descrevem as atividades que contribuem para atingir os objetivos de cadarea-chave do processo. Em geral so descritas com frases simples, seguidas de descries
-
8/9/2019 Qualidade Em Software
22/31
detalhadas (chamadas de subprticas) que podem at incluir exemplos. As prticas-basedevem descrever "o que" deve ser feito e no "como" os objetivos devem ser atingidos. Omodelo CMM inclui um extenso documento em separado, chamado "Prticas-base para oCMM", que lista todas as prticas-chave e subprticas para cada uma das reas-chave deprocesso.
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
-
8/9/2019 Qualidade Em Software
23/31
At este ponto tnhamos falado da o CMM verso 1.1, que a verso atual. Entretanto, omodelo CMM est sendo revisado. Foi publicado em 20/ago/97 uma segunda versopreliminar (draft B) do novo CMM v2. O SEI (Software Engineering Institute) promete averso definitiva do novo modelo ainda para 1997. Esta verso promete corrigir e atualizaro 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 anecessidade de definir um modelo mais simples, voltado para pequenas empresas ou atpara um nico indivduo. Foi da que surgiu o PSP, que significa "Processo Pessoal deSofware".
Assim como o CMM, no modelo PSP, existem diversos nveis com caractersticas prprias.
O modelo PSP possui os seguintes nveis:
Nvel Nome Atividades
PSP0PSP0.1
Medio Pessoal Registro de tempoRegistro de defeitosPadro de tipos de defeitosPadro de codificaoMedida de tamanhoProposta de melhoramento do processo
PSP1PSP1.1
Planejamento Pessoal Estimativa de tamanhoRelatrio de testesPlanejamento de tarefasCronogramas
PSP2PSP2.1
Qualidade Pessoal Revises de cdigoRevises de projetoPadres de Projeto
PSP3 Processo Cclico Pessoal Desenvolvimento cclico
No nvel de Medio Pessoal, voc aprende a registrar o tempo gasto em cada etapa dociclo do desenvolvimento, registrando ainda os defeitos encontrados. Isto conseguidoatravs 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 doprocesso.
No nvel de Planejamento Pessoal, voc aprende a planejar. A idia geral obter acapacidade de estimar quanto tempo levar para realizar uma tarefa beseado nas mediesfeitas em tarefas semelhantes anteriormente. Neste nvel aprende-se a assumircompromissos que podem realmente ser cumpridos. O nvel PSP1.1 inclui o planejamentode tarefas e a elaborao de cronogramas.
-
8/9/2019 Qualidade Em Software
24/31
No nvel de Qualidade Pessoal voc aprende a lidar com seus erros. Deve-se ter uma idiaprecisa de quantos erros so cometidos (em mdia) em cada fase do ciclo dedesenvolvimento. 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 paracriar 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 deanlise e preveno de defeitos.
O nvel de Processo Cclico Pessoal a ltima etapa do PSP. Neste nvel, o PSP sai dodesenvolvimento de pequenos programas para tratar do desenvolvimento de projetosmaiores, embora ainda em nvel pessoal. A idia dividir os grandes projetos em pequenosprojetos que possam ser tratados no PSP2. Neste caso, o desenvolvimento acontece empassos incrementais.
O treinamento do PSP realizado atravs de 10 exerccios de desenvolvimento deprogramas. Alm servirem como exemplos de desenvolvimento, os exerccios propostospelo treinamento do PSP so pequenos utilitrios que ajudam voc a aplicar o PSP, poispermitem 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 nolivro "Introduction to the Personal Software Process", publicado em 1996 por WattsHumphery, o pai do PSP.
SPICE - Software Process Improvement and Capability dEtermination -ISO 15504
IntroduoO SPICE uma norma em elaborao conjunta pela ISO e pelo IEC. Ela constitui-se deuma padro para a avaliao do processo de software, visando determinar a capacitao deuma organizao. A norma visa ainda orientar a organizao para uma melhoria contnuado processo. Ela cobre todos os aspectos da Qualidade do Processo de Software e estsendo 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 detrabalhar 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 umaboa engenharia de software. Este modelo dividido em cinco grandes categorias deprocesso: Cliente-Fornecedor, Engenharia, Suporte, Gerncia e Organizao. Cada umadestas categorias detalhada em processos mais especficos. Tudo isso descrito emdetalhes pela norma.
-
8/9/2019 Qualidade Em Software
25/31
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. Oresultado de uma avaliao, portanto, um perfil da instituio em forma de matriz, ondetemos os processos nas linhas e os nveis nas colunas.
Categorias e ProcessosUma das contribuies do modelo SPICE definir em seu modelo de referncia todos osprocessos envolvidos no desenvolvimento de software, agrupados em categorias. Observeno quadro abaixo a estrutura completa das categorias, dos processos de cada categoria:
Processo Descrio
CUS - Cliente-FornecedorProcessos que impactam diretamente os produtos e servios de software nafornecedor 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 - EngenhariaProcessos que especificam, implementam ou mantm um sistema ou produtode software e sua documentao
ENG.1 Desenvolver requisitos e o projeto dosistema
ENG.2 Desenvolver requisitos de softwareENG.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 - SuporteProcessos que podem ser empregados por qualquer um dos outros processos
SUP.1 Desenvolver a documentao
SUP.2 Desempenhar a gerncia deconfigurao
SUP.3 Executar a garantia da qualidade
SUP.4 Executar a verificao dos produtos detrabalho
SUP.5Executar a validao dos produtos detrabalho
-
8/9/2019 Qualidade Em Software
26/31
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 usadaspor 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 - OrganizaoProcessos 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 delesexiste uma definio mais detalhada, uma lista dos resultados da sua implementao bemsucedida 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, narealidade, avaliar a capacitao da organizao em cada processo e permitir a suamelhoria. O modelo de referncia do SPICE inclui seis nveis de capacitao. Cada um dosprocessos mencionados acima deve ser classificado nestes nveis. Os nveis so descritos aseguir:
NvelNome Descrio
0 Incompleto H uma falha geral em realizar o objetivo do processo. No existemprodutos 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 naorganizao de que as aes devem ser realizadas e quando sonecessrias. Existem produtos de trabalho para o processo e eles soutilizados para atestar o atendimento dos objetivos.
2 Gerenciado O processo produz os produtos de trabalho com qualidade aceitvel edentro do prazo. Isto feito de forma planejada e controlada. Osprodutos de trabalho esto de acordo com padres e requisitos.
-
8/9/2019 Qualidade Em Software
27/31
3 Estabelecido O processo realizado e gerenciado usando um processo definido,baseado em princpios de Engenharia de Software. As pessoas queimplementam o processo usam processos aprovados, que so versesadaptadas 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 processoso coletadas e analisadas. Isto leva a um entendimento quantitativo dacapacitao do processo a uma habilidade de predizer a realizao.
5 Otimizado A realizao do processo otimizada para atender s necessidade atuaise futuras do negcio. O processo atinge seus objetivos de negcio econseguie ser repetido. So estabelecidos objetivos quantitativos deeficcia e eficincia para o processo, segundo os objetivos daorganizao. A monitorao consitante do processo segundo estesobjetivos conseguida obtendo feedback quantitativo e o melhoramento conseguido pela anlise dos resultados. A otimizao do processoenvolve 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 PginasDescrio
1 16 Guia de Introduo e Conceitos
2 38 Modelo de referncia para processos e capacidade de processos
3 7 Realizando uma avaliao4 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 ato ano de 2001...
-
8/9/2019 Qualidade Em Software
28/31
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
-
8/9/2019 Qualidade Em Software
29/31
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
-
8/9/2019 Qualidade Em Software
30/31
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 eCMM
How Software Doesn't Work (Byte Internacional, Dezembro/95) Reportagem deCapa sobre Qualidade.
Qualidade de Software (Developers Magazine, Junho/97) Reportagem de Capasobre Qualidade de SW
-
8/9/2019 Qualidade Em Software
31/31
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