qualidade em software

Upload: wilborn

Post on 30-May-2018

218 views

Category:

Documents


0 download

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