Professional Documents
Culture Documents
Jos Barreto Jnior O que qualidade? Existem diversas definies. Algumas pessoas que tentaram uma definio simples chegaram a frases como:
Qualidade estar em conformidade com os requisitos dos clientes Qualidade antecipar e satisfazer os desejos dos clientes Qualidade escrever tudo o que se deve fazer e fazer tudo o que foi escrito
Segundo a atual norma brasileira sobre o assunto (NBR ISO 8402), qualidade : A totalidade das caractersticas de uma entidade que lhe confere a capacidade de satisfazer s necessidades explcitas e implcitas Nota-se que esta definio formal exige alguns complementos, principalmente para definir o que so as entidades, as necessidades explcitas e as necessidades implcitas. A entidade o produto do qual estamos falando, que pode ser um bem ou um servio. As necessidades explcitas so as prprias condies e objetivos propostos pelo produtor. As necessidades implcitas incluem as diferenas entre os usurios, a evoluo no tempo, as implicaes ticas, as questes de segurana e outras vises subjetivas. Por exemplo, a qualidade de um prato de comida (a entidade, o produto) est relacionada com a satisfao de necessidades (requisitos) tais como: sabor, aparncia, temperatura, rapidez no servio, preo, higiene, valor nutricional, etc... Para avaliar a qualidade de um produto, voc deve fazer uma lista destas necessidades e analisar cada uma destas necessidades.
Certificao de Qualidade
Um aspecto interessante da qualidade que no basta que ela exista. Ela deve ser reconhecida pelo cliente. Por causa disso, necessrio que exista algum tipo de certificao oficial, emitida com base em um padro. Voc provavelmente j conhece alguns certificados mais comuns:
O selo do SIF de inspeo da carne O selo da ABIC nos pacotes de caf O certificado da Secretaria de Sade para restaurantes (classe "A" so os melhores) A classificao em estrelas dos hotis (hotis com cinco estrelas so timos) Os certificados de qualidade da srie ISO-9000
Voc j deve ter ouvido muitas propagandas de empresas falando de sua certificao ISO9000. Isto nada mais do que um padro de qualidade (reconhecido mundialmente) pelo qual esta empresa foi avaliada e julgada. Para que seja possvel realizar uma avaliao e um julgamento, necessrio haver um padro ou norma. Existem alguns organismos normalizadores reconhecidos mundialmente:
ISO - International Organization for Standardization IEEE - Instituto de Engenharia Eltrica e Eletrnica ABNT - Associao Brasileira de Normas Tcnicas
A norma ISO-9000, por exemplo, foi criada pela ISO para permitir que todas as empresas do mundo possam avaliar e julgar sua qualidade. Existindo um padro nico mundial, uma empresa do Brasil, mesmo no tendo nenhum contato com uma outra empresa na Europa, pode garantir a ela a qualidade de seu trabalho. A Certificao em uma norma ou padro a emisso de um documento oficial indicando a conformidade com esta determinada norma ou padro. claro que, antes da emisso do certificado, preciso realizar todo um processo de avaliao e julgamento de acordo com uma determinada norma. Embora uma empresa possa auto-avaliar-se ou ser avaliada por seus prprios clientes, o termo Certificao costuma ser aplicado apenas quando efetuado por uma empresa independente e idnea, normalmente especializada neste tipo de trabalho. No Brasil, o INMETRO o rgo do governo responsvel pelo credenciamento destas instituies que realizam a certificao de sistemas de qualidade.
Hoje em dia, voc pode consultar normas e padres tanto para produtos quanto para processos. Obviamente, os certificados mais valiosos so aqueles que certificam o processo de produo de um produto e no aqueles que simplesmente certificam o produto. Entretanto, comum encontrar empresas que perseguem os dois tipos de padro de qualidade.
Qualidade de Software
Agora que voc j sabe o que qualidade e como ela pode ser avaliada, vamos tentar aplicar estes conceitos aos produtos de software e ao processo de desenvolvimento de software. Inicialmente, vamos encontrar um grande problema: muitas pessoas acham que criar programas uma arte que no pode seguir regras, normas ou padres. Isto acontece principalmente porque:
Produtos de software so complexos, at mais do que o hardware onde executam Software no tm produo em srie. Seu custo est no projeto e desenvolvimento Software no se desgasta e nem de modifica com o uso O Software invisvel. Sua representao em grafos e diagramas no precisa. A Engenharia de Software ainda no est madura, uma tecnologia em evoluo No h um acordo entre os profissionais da rea sobre o que Qualidade de Software
Apesar de tudo isso, voc precisa entender que o problema no est no Software em si, mas na forma como as pessoas tem desenvolvido software at os dias de hoje. Voc provavelmente j ouviu dizer que "Se os engenheiros construssem prdios como os analistas constroem software, um nico pica-pau destruiria a humanidade". Exageros parte, voc precisa se conscientizar que ns precisamos aplicar na indstria de software os conceitos de qualidade, urgentemente. Atualmente, muitas instituies se preocupam em criar normas para permitir a correta avaliao de qualidade tanto de produtos de software quanto de processos de desenvolvimento de software. Apenas para ter uma uma viso geral, observe o quadro abaixo com as principais normais nacionais e internacionais nesta rea: Norma ISO 9126 NBR 13596 ISO 14598 ISO 12119 IEEE P1061 ISO 12207 Comentrio Caractersticas da qualidade de produtos de software. Verso brasileira da ISO 9126 Guias para a avaliao de produtos de software, baseados na utilizao prtica da norma ISO 9126 Caractersticas de qualidade de pacotes de software (software de prateleira, vendido com um produto embalado) Standard for Software Quality Metrics Methodology (produto de software) Software Life Cycle Process. Norma para a qualidade do processo de
desenvolvimento de software. Sistemas de qualidade - Modelo para garantia de qualidade em Projeto, NBR ISO 9001 Desenvolvimento, Instalao e Assistncia Tcnica (processo) Gesto de qualidade e garantia de qualidade. Aplicao da norma ISO NBR ISO 9000-3 9000 para o processo de desenvolvimento de software. NBR ISO 10011 Auditoria de Sistemas de Qualidade (processo) Capability Maturity Model. Modelo da SEI (Instituto de Engenharia de Software do Departamento de Defesa dos EEUU) para avaliao da CMM qualidade do processo de desenvolvimento de software. No uma norma ISO, mas muito bem aceita no mercado. Projeto da ISO/IEC para avaliao de processo de desenvolvimento de SPICE software. Ainda no uma norma oficial ISO, mas o processo est em ISO 15504 andamento. No final desta pgina, voc encontra alguns links relacionados a Qualidade e Qualidade de Software.
Engenharia de Software
Como voc j viu, a disciplina que vai nos ajudar a entender o processo de desenvolvimento de software a Engenharia de Software. atravs dela que poderemos chegar qualidade. Existe, entretanto, um grande problema a ser resolvido: tecnicamente, ela no existe. O problema que, para que uma disciplina seja considerada realmente uma Engenharia, necessrio atender a alguns requisitos bsicos que a Engenharia de Software, pelos menos at agora, no atende. Veja a definio de Engenharia: "A Engenharia deve criar solues com uma relao custo-benefcio adequada para problemas prticos, pela aplicao de conhecimentos cientficos, para construir coisas a servio da humanidade." Dentro destes conceitos, a Engenharia de Software falha principalmente no que diz respeito adequao do custo-benefcio e aplicao, em toda a sua extenso, de conhecimentos cientficos. Atualmente, estes requisitos so atendidos apenas em parte. necessrio definir, portanto, o que exatamente a Engenharia de Software. Veja algumas tentativas de definio: "... a disciplina que integra mtodos, ferramentas e procedimentos para o desenvolvimento de software para computadores." "... uma coleo de processos de gerenciamento, ferramental de software e atividades de projeto para o desenvolvimento de software. "
"... um termo usado para referir-se a modelos de ciclo de vida, metodologias de rotina, tcnicas de estimativa de custo, estruturas de documentao, ferramentas de gerenciamento de configurao, tcnicas de garantia de qualidade e outras tcnicas de padronizao da atividade de produo de software." No final desta pgina voc encontrar alguns links relacionados a Engenharia de Software.
Subcaracterstica Adequao Acurcia Funcionalidade (satisfaz as Interoperbilidade necessidades?) Conformidade Segurana de acesso Maturidade Confiabilidade ( imune a falhas?) Tolerncia a falhas Recuperabilidade Intelegibilidade Usabilidade
Caracterstica
Pergunta chave para a subcaracterstica Prope-se a fazer o que apropriado? Faz o que foi proposto de forma correta? Interage com os sistemas especificados? Est de acordo com as normas, leis, etc.? Evita acesso no autorizado aos dados? Com que freqncia apresenta falhas? Ocorrendo falhas, como ele reage? capaz de recuperar dados em caso de falha? fcil entender o conceito e a aplicao?
Recursos Analisabilidade Manutenibilidade Modificabilidade ( fcil de Estabilidade modificar?) Testabilidade Adaptabilidade Capac. para ser Portabilidade fcil instalar em outros ambientes? instalado ( facil de usar em outro ambiente?) Conformidade Est de acordo com padres de portabilidade? Capac. para substituir fcil usar para substituir outro?
fcil aprender a usar? fcil de operar e controlar? Qual o tempo de resposta, a velocidade de execuo? Quanto recurso usa? Durante quanto tempo? fcil de encontrar uma falha, quando ocorre? fcil modificar e adaptar? H grande risco quando se faz alteraes? fcil testar quando se faz alteraes? fcil adaptar a outros ambientes?
Esta norma no muito extensa (contm apenas 10 pginas). Entretanto, ela define minunciosamente (em uma linguagem bem detalhista, estilo contrato) o que se pretende avaliar em cada caracterstica e subcaracterstica. Se voc desejar ter o texto integral da norma NBR 13596, pode pedir uma cpia ABNT. Voc ter de pagar por ela, mas o valor pequeno (menos de R$20). O site da ABNT na Internet oferece funes de pesquisa e oramento para compra de normas. Para maiores informaes, contacte diretamente a ABNT: ABNT - Associao Brasileira de Normas Tcnicas Av. Treze de Maio, 13 - 28 andar CEP 20003-900 Caixa Postal 1680 Fone: (021) 210-3122 - Fax: (021) 532-2143
Mtricas de Software
Embora a atual norma ISO 9126/NBR 13596 enumere as caractersticas e subcaractersticas um software, ela ainda no define como dar uma nota a um software em cada um destes itens. Se voc no est familiarizado com o processo de avaliao de software, pode ter dificuldades em tentar utilizar a norma. Se voc pretende avaliar um software segundo esta norma, deve tentar atribuir valores (como se fossem notas ou conceitos) a cada uma das subcaractersticas. Algumas caractersticas podem ser realmente medidas, como o tempo de execuo de um programa, nmero de linhas de cdigo, nmero de erros encontrados em uma sesso de teste ou o tempo mdio entre falhas. Nestes casos, possvel utilizar uma tcnica, uma ferramenta ou um software para realizar medies. Em outros casos, a caracterstica to subjetiva que no existe nenhuma forma bvia de med-la.
Ficam, portanto, as questes: como dar uma nota, em valor numrico, a uma caracterstica inteiramente subjetiva? O que representa, por exemplo, uma "nota 10" em termos de "Segurana de Acesso"? Quando se pode dizer que a "Intelegibilidade" de um software pode ser considerada "satisfatria"? Criou-se, ento, uma rea de estudo parte dentro da Qualidade de Software conhecida como Mtricas de Software. O que se pretende fazer definir, de forma precisa, como medir numericamente uma determinada caracterstica. Para avaliar uma determinada subcaracterstica subjetiva de forma simplificada, por exemplo, voc pode criar uma srie de perguntas do tipo "sim ou no". Crie as perguntas de forma tal que as respostas "sim" sejam aquelas que indicam uma melhor nota para a caracterstica. Depois de prontas as perguntas, basta avaliar o software, respondendo a cada pergunta. Se voc conseguir listar 10 perguntas e o software obtiver uma resposta "sim" em 8 delas, ter obtido um valor de 80% nesta caracterstica. Obviamente, a tcnica acima no muito eficiente. Para melhor-la, entretanto, voc pode garantir um nmero mnimo perguntas para cada caracterstica. Alm disso, algumas perguntas mais importantes podem ter pesos maiores. possvel, ainda, criar perguntas do tipo ABCDE, onde cada resposta indicaria um escore diferenciado. Alguns estudiosos sugerem formas diferentes de medir uma caracterstica, baseada em conceitos do tipo "no satisfaz", "satisfaz parcialmente", "satisfaz totalmente" e "excede os padres". Estes conceitos, emboram parecem muito subjetivos, no deixam de ser uma forma eficiente de medir uma caracterstica. Em todos os casos, um fato fica claro: nada ajuda mais a avaliar caractersticas de um software do que um avaliador experiente, que j realizou esta tarefa diversas vezes e em diversas empresas diferentes. Afinal, medir comparar com padres e um avaliador experiente ter maior sensibilidade do que um profissional que acaba de ler uma norma pela primeira vez. Atualmente, a norma ISO/IEC 9126 est sendo revisada. A reviso, que dever estar pronta nos prximos anos, no dever modificar nenhuma das caractersticas bsicas da 9126. A maior modificao ser a incluso de dois documentos adicionais para descrever mtricas externas (relativas ao uso do produto) e mtricas internas (relativas arquitetura do produto). Veja algumas das modificaes previstas para esta reviso:
Algumas novas subcaractersticas. Conformidade far parte de todas as caractersticas. Atratividade ser uma subcaracterstica de usabilidade. Capacidade de coexistir ser uma subcaracterstica de portabilidade. A norma ser dividida em trs partes. A primeira (9126-1) incluir definies e caractersticas. As duas seguintes descrevero mtricas externas (9126-2) e internas (9126-3). A verso brasileira da reviso desta norma dever ser chamada de NBR 9126-1, 9126-2 e 9126-3, segundo a numerao original da ISO/IEC.
Esta norma se constituir, na verdade, de seis documentos distintos, relacionados entre si. Veja: Norma 14598-1 14598-2 14598-3 14598-4 14598-5 14598-6 Nome Viso Geral Planejamento e Gerenciamento Guia para Desenvolvedores Guia para Aquisio Guia para Avaliao Mdulos de Avaliao Finalidade Ensina a utilizar as outras normas do grupo Sobre como fazer uma avaliao, de forma geral Como avaliar sob o ponto do vista de quem desenvolve Como avaliar sob o ponto de vista de quem vai adquirir Como avaliar sob o ponto de vista de quem certifica Detalhes sobre como avaliar cada caracterstica
Em resumo, esta nova norma complementar a ISO/IEC 9126 e permitir uma avaliao padronizada das caractersticas de qualidade de um software. importante notar que, ao contrrio da 9126, a 14598 vai a detalhes mnimos, incluindo modelos para relatrios de avaliao, tcnicas para medio das caractersticas, documentos necessrios para avaliao e fases da avaliao. Como um exemplo, observe um modelo de relatrio de avaliao, segundo um anexo da norma 14598-5: Seo 1 - Prefcio Itens Identificao do avaliador Identificao do relatrio de avaliao Identificao do contratante e fornecedor 2 - Requisitos Descrio geral do domnio de aplicao do produto Descrio geral dos objetivos do produto Lista dos requisitos de qualidade, incluindo - Informaes do produto a serem avaliadas - Referncias s caractersticas de qualidade - Nveis de avaliao 3 - Especificao Abrangncia da avaliao Referncia cruzada entre os requisitos de avaliao e os componentes do produto Especificao das medies e dos pontos de verificao Mapeamento entre a especificao das medies com os requisitos de avaliao 4 - Mtodos Mtodos e componentes nos quais o mtodo ser aplicado 5 - Resultado Resultados da avaliao propriamente ditos Resultados intermedirios e decises de interpretao Referncia s ferramentas utilizadas As normas 14598-1, 14598-4 e 14598-5 j foram publicadas. As demais esto em processo de finalizao. Est sendo feito pela ABNT um trabalho de traduo desta norma (tanto dos itens j publicados quanto das verses preliminares dos itens restantes). Com isso, esta norma ter sua verso brasileira pouco tempo depois do final de sua publicao pela ISO.
Descreve o produto, de forma a ajudar o comprador em potencial, servindo como base para testes. Cada declarao deve ser correta e testvel. Deve incluir declaraes sobre funcionalidade, confiabilidade, usabilidade, eficincia, manutenibilidade e portabilidade. Deve ser completa, correta, consistente, fcil de entender e capaz de dar uma viso geral do produto. Descreve em detalhes cada uma das funes do software, incluindo declaraes sobre funcionalidade, confiabilidade, usabilidade, eficincia, manutenibilidade e portabilidade. Lista de itens necessrios ao teste, incluindo documentos includos no pacote, componentes do sistema e material de treinamento. Instrues detalhadas sobre os procedimentos de teste, inclusive instalao e execuo de cada uma das funes descritas. Informaes sobre como os testes foram realizados, de tal forma a permitir uma reproduo destes testes. Deve incluir parmetros utilizados, resultados associados, falhas ocorridas e at a identidade do pessoal envolvido. Relatrio inlcuindo: identificao do produto, hardware e software utilizado, documentos utilizados, resultados dos testes, lista de no conformidade com os requisitos, lista de no conformidade com as recomendaes, datas, etc.
Um dos grandes mritos desta norma est na profundidade com que so descritas cada uma das caractersticas e subcaractersticas mencionadas na norma 9126. A norma inclui detalhes que devem estar presentes no produto, tais como:
Documentao do usurio de fcil compreenso Um sumrio e um ndice remissivo na documentao do usurio Presena de um Manual de instalao com instrues detalhadas Possibilidade de verificar se uma instalao foi bem sucedida Especificao de valores limites para todos os dados de entrada, que devero ser testados Operao normal mesmo quando os dados informados esto fora dos limites especificados Consistncia de vocabulrio entre as mensagens e a documentao Funo de auxlio (help) com recursos de hipertexto Mensagens de erro com informaes necessrias para a soluo da situao de erro Diferenciao dos tipos de mensagem: confirmao, consulta, advertncia e erro Clareza nos formatos das telas de entrada e relatrios
Capacidade de reverter funes de efeito drstico Alertas claros para as conseqncias de uma determinada confirmao Identificao dos arquivos utilizados pelo programa Identificao da funo do programa que est sendo executada no momento Capacidade de interromper um processamento demorado
Outras caractersticas importante so a nfase nos testes e os modelos de relatrios includos. Tudo isso facilita grandemente o trabalho do avaliador. Uma verso traduzida desta norma ser publicada em breve ABNT.
ISO 9000-3 - Normas para aplicao da srie ISO 9000 em processos de software ISO 12207 - Processos do Ciclo de Vida do Software CMM - Capability Maturity Model PSP - Personal Software Process ISO 15504 - SPICE - Software Process Improvement and Capability dEtermination Modelo Trillium Metodologia Bootstrap Engenharia de Software Cleanroom
Dentre os trabalhos na rea de Qualidade de Processo de Software, o nico que realmente norma oficial o ISO 9000-3, que faz parte da srie ISO 9000. Os demais modelos so normas no-oficiais criados por empresas e institutos ou ento so normas em estgio de desenvolvimento. Muitos dos modelos esto disponveis na Internet, em texto integral. No final desta pgina voc encontrar alguns links sobre Modelos de Qualidade de Processo de Software. A seguir sero analisados em maior detalhes alguns destes modelos.
Norma ISO 9001 ISO 9002 ISO 9003 ISO 9000-1 ISO 9000-3
Trata de Modelo para garantia da qualidade em projeto, desenvolvimento, produo, instalao e assistncia tcnica. Modelo para garantia da qualidade em produo e instalao Modelo para garantia da qualidade em inspeo e ensaios finais Diretrizes para escolher entre as normas ISO 9001, 9002 e 9003 Orientao para a aplicao da ISO 9001 em Software
Entre as normas 9001, 9002 e 9003, a primeira a que mais se adequa ao desenvolvimento e manuteno de software. Como toda norma deste grupo, ela usada para garantir que um fornecedor atende aos requisitos especificados nos diversos estados do desenvolvimento. Estes estgios incluem projeto, desenvolvimento, produo, instalao e suporte. A norma ISO 9000-3 (no confundir com a ISO 9003) traz os roteiros para aplicar a ISO 9001 especificamente na rea de desenvolvimento, fornecimento e manuteno de software. Todas as orientaes giram em torno de uma "situao contratual", onde uma outra empresa contrata a empresa em questo para desenvolver um produto de software. Veja na tabela abaixo os processos definidos na ISO 9000-3: Grupo Estrutura do Sistema de Qualidade Atividade Responsabilidade do fornecedor Responsabilidade do comprador Anlise crtica conjunta Anlise crtica do contrato Especificao dos requisitos do comprador Planejamento do desenvolvimento Projeto e implementao Testes e validao Aceitao Cpia, entrega e instalao Manuteno Gerenciamento de configurao Controle de documentos Registros da qualidade Medio Regras, convenes Aquisio Produto de software includo Treinamento
Atividades de Apio
O processo de certificao de uma empresa de software segundo as normas ISO 9001 / 9000-3 segue um conjunto de passos bem definidos:
1. A empresa estabelece o seu sistema de qualidade 2. A empresa faz uma solicitao formal a um rgo certificador, incluindo detalhes do negcio da empresa, escopo da certificao solicitada e cpia do manual de qualidade 3. O rgo certificador faz uma visita empresa, colhe mais dados e explica o processo de certificao 4. O rgo certificador verifica se a documentao do sistema de qualidade est de acordo com a norma ISO 5. O rgo certificador envia uma equipe empresa com fins de auditoria. Nesta visita, ser verificado se todos na empresa cumprem o que est documentado no manual de qualidade. 6. O rgo certificador emite o certificado de qualidade 7. O rgo certificador realiza visitas peridicas empresa para assegurar que o sistema continua sendo efetivo Se voc desejar ter o texto integral das normas da srie ISO 9000, pode pedir uma cpia ABNT. Voc ter de pagar por ela, mas o valor pequeno (tanto a ISO 9001 quanto a ISO 9000-3 custam menos de R$25, cada). O site da ABNT na Internet oferece funes de pesquisa e oramento para compra de normas.
Fornecimento
Desenvolvimento
Operao Manuteno
Processos de Apoio Auxiliam um outro processo. Documentao Registro de informaes produzidas por um processo ou atividade. Inclui planejamento, projeto, desenvolvimento, produo, edio, distribuio e manuteno dos documentos necessrios a gerentes, engenheiros e usurios do software. Gerncia de Identificao e controle dos itens do software. Inclui: controle de Configurao armazenamento, liberaes, manipulao, distribuio e modificao de cada um dos itens que compem o software. Garantia da Garante que os processos e produtos de software estejam em Qualidade conformidade com os requisitos e os planos estabelecidos. Verificao Determina se os produtos de software de uma atividade atendem completamente aos requisitos ou condies impostas a eles. Validao Determina se os requisitos e o produto final (sistema ou software) atendem ao uso especfico proposto. Reviso Conjunta Define as atividades para avaliar a situao e produtos de uma atividade de um projeto, se apropriado. Auditoria Determina adequao aos requisitos, planos e contrato, quando apropriado. Resoluo de Anlisar e resoluo dos problemas de qualquer natureza ou fonte, Problemas descobertos durante a execuo do desenvolvimento, operao, manuteno ou outros processos. . Implementam uma estrutura constituda de processos de ciclo de Processos vida e pessoal associados, melhorando continuamente a estrutura e Organizacionais os processos. Gerncia Gerenciamento de processos. Infra-estrutura Fornecimento de recursos para outros processos. Inclui: hardware, software, ferramentas, tcnicas, padres de desenvolvimento, operao ou manuteno. Melhoria Atividades para estabeler, avaliar, medir, controlar e melhorar um processo de ciclo de vida de software. Treinamento Atividades para prover e manter pessoal treinado. A norma detalha cada um dos processos acima. Ela define ainda como eles podem ser usados de diferentes maneiras por diferentes organizaes (ou parte destas), representando diversos pontos de vista para esta utilizao. Cada uma destas vises representa a forma como uma organizao emprega estes processos, agrupando-os de acordo com suas necessidades e objetivos. As Vises tm o objetivo de organizar melhor a estrutura de uma empresa, para definir suas gerncias e atividades alocadas s suas equipes. Existem cinco vises diferentes: contrato, gerenciamento, operao, engenharia e apoio. Veja na figura abaixo como estas vises se relacionam aos processos.
A ISO/IEC 12207 a primeira norma internacional que descreve em detalhes os processos, atividades e tarefas que envolvem o fornecimento, desenvolvimento, operao e manuteno de produtos de software. A principal finalidade desta norma servir de referncia para os demais padres que venham a surgir. Lanada em agosto de 1995, ela citada em quase todos os trabalhos relacionados Engenharia de Software desde ento, inclusive aqueles relativos qualidade. A futura norma ISO 15504 (SPICE), por exemplo, organiza seu trabalho segundo o que est descrito na 12207. A verso brasileira da norma foi encaminhada para votao na ABNT em junho de 1997 e a expectativa da comisso encarregada da traduo que ela se transforme em norma brasileira ainda em 1997.
2) Repetvel
3) Definido
4) Gerenciado
5) Otimizado
repetir o sucesso de um processo utilizado anteriormente em outros projetos similares. Tanto as atividades de gerenciamento quanto de engenharia do processo de desenvolvimento de software esto documentadas, padronizadas e integradas em um padro de desenvolvimento da organizao. Todos os projetos utilizam uma verso aprovada e adaptada do processo padro de desenvolvimento de software da organizao. So coletadas medidas detalhadas da qualidade do produto e processo de desenvolvimento de software. Tanto o produto quanto o processo de desenvolvimento de software so entendidos e controlados quantitativamente. O melhoramento contnuo do processo conseguido atravs de um "feedback" quantitativo dos processos e pelo uso pioneiro de idais e tecnologias inovadoras.
Uma empresa no nvel 1 no d garantia de prazo, custo ou funcionalidade. No nvel 2, a empresa j consegue produzir bons softwares, no prazo e a um custo previsvel. O nvel 3 garante um excelente nvel de qualidade, tanto no produto quanto no processo de desenvolvimento como um todo. No h, no mundo, muitas empresas que tenham chegado aos nveis 4 e 5... reas-chave de processo (Key Process Areas ou KPAs) Exceto no nvel 1, todos os nveis so detalhados em reas-chave de processo. Estas reas so exatamente aquilo no que a organizao deve focar para melhorar o seu processo de desenvolvimento de software. Para que uma empresa possa se quailificar em um determinado nvel de maturidade CMM, deve estar realizando os processos relacionados s reas-chave daquele determinado nvel. Todas as reas-chave esto citadas na tabela abaixo: Nvel CMM Foco 1) Inicial Pessoas competentes e heris 2) Repetvel Processos de gerenciamento de projetos reas-chave de processo
Gerenciamento de requisitos Planejamento do projeto Viso geral e acompanhamento do projeto Gerenciamento de subcontratados Garantia da qualidade do software Gerenciamento de configurao Foco do processo organizacional Definio do processo organizacional Programa de treinamento
3) Definido
Gerenciamento de software integrado Engenharia de produto de software Coordenao intergrupos Reviso conjunta Gerenciamento quantitativo dos processos Gerenciamento da qualidade de software Preveno de defeitos Gerenciamento de mudanas tecnolgicas Gerenciamento de mudanas no processo
4) Gerenciado
Objetivos das reas-chave de processo O modelo CMM define um conjunto de dois a quatro objetivos para cada rea-chave. Estes objetivos definem aquilo que deve ser alcanado no caso dos processos desta rea-chave serem realmente realizados. Veja na tabela abaixo a lista destes objetivos. Nvel CMM reas-chave de processo 1) Inicial 2) Repetvel Gerenciamento de requisitos Objetivos
Os requisitos do sistema definidos para o software so controlados de forma a estabelecer um perfil mnimo a ser utilizado pela engenharia de software e pela administrao Os planos, produtos e atividades do software so sempre consistentes com os requisitos de sistema definidos para o software Estimativas relativas ao software so documentadas para uso no planejamento e acompanhamento do projeto do software. As atividades de projeto de software e compromissos assumidos so planejados e documentados. Grupos e pessoas afetadas concordam com seus compromissos relacionados ao projeto do software.
Planejamento do projeto
Resultados reais so acompanhados de acordo do com o planejamento do software Quando os resultados apresentam um significativo desvio do planejamento do software, so tomadas aes corretivas que so acompanhadas at o final do projeto Mudanas nos compromissos assumidos so feitas em comum acordo com os grupos e indivduos afetados O contratante seleciona subcontratos qualificados O contratante e os subcontratatos esto de acordo no que diz respeito aos compromissos assumidos um com o outro. O contratante e os subcontatados mantm uma comunicao constante O contratante acompanha os resultados reais do subcontratado de acordo com os compromissos assumidos As atividades de garantia de qualidade de software so planejadas A conformidade dos produtos de software e atividades com os padres, procedimentos e requisitos verificada objetivamente. Os grupos e indivduos afetados so informados das atividades de garantia de qualidade de software e de seus resultados. Questes realacionadas no conformidade que no so resolvidas dentro do projeto de software so encaminhadas gerncia geral so planejadas. Os produtos de trabalho de software so identificados, controlados e esto disponveis. Mudanas nos produtos de trabalho identificados so controladas. Os grupos e pessoas afetadas so informados da situao atual e projetada dos produtos de trabalho de software. melhoramento do processo de software em toda a organizao Os pontos fortes e fracos do processo de desenvolvimento de software utilizado so identificados, de acordo com um padro de processo. So planejadas atividades de desenvolvimento e melhoramento do processo, a nvel de organizao.
Gerenciamento de subcontratados
3) Definido
O processo padro de desenvolvimento de software da organizao desenvolvido e mantido. A informao relacionada ao uso do processo padro de desenvolvimento de software coletada, revisada e disponibilizada.
Programa de treinamento
As atividades de treinamento so planejadas fornecido treinamento para o desenvolvimento de habilidades e conhecimentos necessrios para realizar o gerenciamento do software e as funces tcnicas. As pessoas no grupo de engenharia de software e outros grupos relacionados a software recebem o treinamento necessrio para realizar as suas funes O processo de software definido para o projeto uma verso adaptada do processo padro de desenvolvimento de software da organizao O projeto planejado e gerenciado de acordo com o processo de desenvolvimento de software definido para o projeto As atividades de engenharia de software so definidas, intregradas e consistentemente realizadas para produzir o software. Os produtos de trabalho do software so mantidos consistentes entre si. Todos os grupos de traabalho afetados concordam com os requisitos dos cliente. Todos os grupos de trabalho afetados concordam com os acordos entre os grupos de engenharia Os grupos de engenharia identificam, acompanham e resolvem todas as questes intergrupos. Atividades de reviso conjunta so planejadas Defeitos nos produtos de trabalho so identificados e removidos.
Coordenao intergrupos
Gerenciamento quantitativo dos As atividades de gerenciamento quantitativo dos processos so planejadas processos
A performance do processo de desenvolvimento de software definido para o projeto controlada quantitativamente A capacidade do processo desenvolvimento de software padro da organizao conhecida em termos quantitativos.
Objetivos mensurveis da qualidade do produto de software e suas prioridades so definidos. O progresso real em direo realizao dos objetivos de qualidade para os produtos de software quantificado e gerenciado. As atividades de prevenco de defeitos so planejadas As causas comuns de defeitos so procuradas e identificadas As causas comuns de defeitos so priorizadas e sistematicamente eliminadas.
A incorporao de mudanas tecnolgicas planejada Novas tecnologias so avaliadas para determinar seu efeito na qualidade e na produtividade Novas tecnologias adequadas so incorporadas na prtica normal de toda a organizao.
Gerenciamento de mudanas no O melhoramento contnuo do processo planejado Toda a organizao participa das atividades de processo
melhoramento do processo de software O padro de processo de software da organizao e os processos de software de cada projeto definido so melhorados continuamente.
Caractersticas comuns e prticas-base As caractersticas comuns so itens a serem observados para que se possa verificar a implementao e institucionalizao de cada rea-chave de processo. Elas podem indicar se a rea-chave de processo eficiente, repetvel e duradoura. So cinco as caractersticas comuns no modelo CMM e cada uma possui suas prticas-base a serem realizadas. Caracterstica Comum Compromisso de realizar Descrio Prticas-base relacionadas a Estabelecimento de polticas e apadrinhamento de um gerente experiente.
Atitutides a serem tomadas pela organizao para garantir que o processo se estabelea e seja duradouro. Capacidade de realizar Pre-requisitos que devem existir no projeto ou na organizao para implementar o processo de forma competente. Atividades realizadas Papis e os procedimentos necessrios para implementar uma rea-chave de processo.
Medies e anlise
Alocao de recursos, definio da estrutura organizacional e de treinamento. Estabelecimento de planos e procedimentos, realizao do trabalho, acompanhamento do trabalho e tomada de aoes corretivas, se necessrio. Necessidade de medir o processo e Realizao de medies analisar as medies. para determinar o estado e a efetividade das atividades realizadas. Passos para garantir que as atividades Reviso, auditoria e so realizadas de acordo com o garantia de qualidade. processo estabelecido.
As prticas-chave descrevem as atividades que contribuem para atingir os objetivos de cada rea-chave do processo. Em geral so descritas com frases simples, seguidas de descries
detalhadas (chamadas de subprticas) que podem at incluir exemplos. As prticas-base devem descrever "o que" deve ser feito e no "como" os objetivos devem ser atingidos. O modelo CMM inclui um extenso documento em separado, chamado "Prticas-base para o CMM", que lista todas as prticas-chave e subprticas para cada uma das reas-chave de processo. Estrutura Em resumo, o CMM definido em funo de um conjunto de
CMM v2
At este ponto tnhamos falado da o CMM verso 1.1, que a verso atual. Entretanto, o modelo CMM est sendo revisado. Foi publicado em 20/ago/97 uma segunda verso preliminar (draft B) do novo CMM v2. O SEI (Software Engineering Institute) promete a verso definitiva do novo modelo ainda para 1997. Esta verso promete corrigir e atualizar o modelo atual, alm de compatibiliz-lo com padres (ou propostas de padres) que surgiram aps o lanamento do CMM 1.1, como ISO 9000-3, ISO 12207 e ISO 15504.
No nvel de Medio Pessoal, voc aprende a registrar o tempo gasto em cada etapa do ciclo do desenvolvimento, registrando ainda os defeitos encontrados. Isto conseguido atravs do uso de formulrios adequados. O nvel PSP0.1 inclui o uso de um padro de codificao, de medidas padronizadas e do formulrio de proposta de melhoramento do processo. No nvel de Planejamento Pessoal, voc aprende a planejar. A idia geral obter a capacidade de estimar quanto tempo levar para realizar uma tarefa beseado nas medies feitas em tarefas semelhantes anteriormente. Neste nvel aprende-se a assumir compromissos que podem realmente ser cumpridos. O nvel PSP1.1 inclui o planejamento de tarefas e a elaborao de cronogramas.
No nvel de Qualidade Pessoal voc aprende a lidar com seus erros. Deve-se ter uma idia precisa de quantos erros so cometidos (em mdia) em cada fase do ciclo de desenvolvimento. O modelo PSP mostra que a forma mais adequada para tratar erros evit-los desde a sua origem. Voc deve utilizar os dados sobre defeitos j coletados para criar uma lista de verificao (checklist) a ser utilizada em suas revises de projeto e de cdigo. O nvel PSP2.1 inclui a criao de padres de projeto, bem como mtodos de anlise e preveno de defeitos. O nvel de Processo Cclico Pessoal a ltima etapa do PSP. Neste nvel, o PSP sai do desenvolvimento de pequenos programas para tratar do desenvolvimento de projetos maiores, embora ainda em nvel pessoal. A idia dividir os grandes projetos em pequenos projetos que possam ser tratados no PSP2. Neste caso, o desenvolvimento acontece em passos incrementais. O treinamento do PSP realizado atravs de 10 exerccios de desenvolvimento de programas. Alm servirem como exemplos de desenvolvimento, os exerccios propostos pelo treinamento do PSP so pequenos utilitrios que ajudam voc a aplicar o PSP, pois permitem medir o nmero de linhas e objetos nos seus programas, calcular desvio padro, prever intervalos etc. Uma descrio completa deste modelo e do treinamento proposto pode ser encontrada no livro "Introduction to the Personal Software Process", publicado em 1996 por Watts Humphery, o pai do PSP.
Alm dos processos, o SPICE define tambm os 6 nveis de capacitao de cada processo, que pode ser incompleto, executado, gerenciado, estabelecido, previsvel e otimizado. O resultado de uma avaliao, portanto, um perfil da instituio em forma de matriz, onde temos os processos nas linhas e os nveis nas colunas. Categorias e Processos Uma das contribuies do modelo SPICE definir em seu modelo de referncia todos os processos envolvidos no desenvolvimento de software, agrupados em categorias. Observe no quadro abaixo a estrutura completa das categorias, dos processos de cada categoria: Processo Descrio CUS - Cliente-Fornecedor Processos que impactam diretamente os produtos e servios de software na fornecedor para o cliente. CUS.1 Adquirir Software CUS.2 Gerenciar necessidades do Cliente CUS.3 Fornecer Software CUS.4 Operar Software CUS.5 Prover Servio ao Cliente ENG - Engenharia Processos que especificam, implementam ou mantm um sistema ou produto de software e sua documentao ENG.1 Desenvolver requisitos e o projeto do sistema ENG.2 Desenvolver requisitos de software ENG.3 Desenvolver o projeto do software ENG.4 Implementar o projeto do software ENG.5 Integrar e testar o software ENG.6 Integrar e testar o sistema ENG.7 Manter o sistema e o software SUP - Suporte Processos que podem ser empregados por qualquer um dos outros processos SUP.1 Desenvolver a documentao SUP.2 Desempenhar a gerncia de configurao SUP.3 Executar a garantia da qualidade SUP.4 Executar a verificao dos produtos de trabalho Executar a validao dos produtos de SUP.5 trabalho
SUP.6 Executar revises conjuntas SUP.7 Executar auditorias SUP.8 Executar resoluo de problemas MAN - Gerncia Processos que contm prticas de natureza genrica que podem ser usadas por quem gerencia projetos ou processos dentro de um ciclo de vida de software MAN.1 Gerenciar o projeto MAN.2 Gerenciar a qualidade MAN.3 Gerenciar riscos MAN.4 Gerenciar subcontratantes ORG - Organizao Processos que estabelecem os objetivos de negcios da organizao ORG.1 Construir o negcio ORG.2 Definir o processo ORG.3 Melhorar o processo ORG.4 Prover recursos de treinamento ORG.5 Prover infra-estrutura organizacional A norma define detalhes de cada um dos processos mencionados acima. Para cada um deles existe uma definio mais detalhada, uma lista dos resultados da sua implementao bem sucedida e uma descrio detalhada de cada uma das prticas bsicas. Nveis de Capacitao O SPICE, entretanto, no se limita a listar categorias e processos. Seu principal objetivo, na realidade, avaliar a capacitao da organizao em cada processo e permitir a sua melhoria. O modelo de referncia do SPICE inclui seis nveis de capacitao. Cada um dos processos mencionados acima deve ser classificado nestes nveis. Os nveis so descritos a seguir: Nvel Nome 0 Incompleto Descrio H uma falha geral em realizar o objetivo do processo. No existem produtos de trabalho nem sadas do processo facilmente identificveis. 1 Realizado O objetivo do processo em geral atingido, embora no necessariamente de forma planejada e controlada. H um consenso na organizao de que as aes devem ser realizadas e quando so necessrias. Existem produtos de trabalho para o processo e eles so utilizados para atestar o atendimento dos objetivos. 2 Gerenciado O processo produz os produtos de trabalho com qualidade aceitvel e dentro do prazo. Isto feito de forma planejada e controlada. Os produtos de trabalho esto de acordo com padres e requisitos.
3 Estabelecido O processo realizado e gerenciado usando um processo definido, baseado em princpios de Engenharia de Software. As pessoas que implementam o processo usam processos aprovados, que so verses adaptadas do processo padro documentado. 4 Predizvel O processo realizado de forma consistente, dentro dos limites de controle, para atingir os objetivos. Medidas da realizao do processo so coletadas e analisadas. Isto leva a um entendimento quantitativo da capacitao do processo a uma habilidade de predizer a realizao. 5 Otimizado A realizao do processo otimizada para atender s necessidade atuais e futuras do negcio. O processo atinge seus objetivos de negcio e conseguie ser repetido. So estabelecidos objetivos quantitativos de eficcia e eficincia para o processo, segundo os objetivos da organizao. A monitorao consitante do processo segundo estes objetivos conseguida obtendo feedback quantitativo e o melhoramento conseguido pela anlise dos resultados. A otimizao do processo envolve o uso piloto de idias e tecnologias inovadoras, alm da mudana de processos ineficientes para atingir os objetivos definidos. Os 9 manuais do SPICE Esta norma se constituir de um conjunto de 9 manuais, totalizando quase 400 pginas, conforme o detalhamento a seguir, baseado na atual verso preliminar (draft). Parte Pginas Descrio 1 16 Guia de Introduo e Conceitos 2 38 Modelo de referncia para processos e capacidade de processos 3 7 Realizando uma avaliao 4 36 Guia para realizao de uma avaliao 5 145 Um modelo de avaliao e guia de indicadores 6 31 Guia para qualificao de avaliadores 7 47 Guia para uso no melhoramento de processos 8 25 Guia para uso na determinao da capacidade do processo de fornecedor 9 9 Vocabulrio Recentemente, os trabalhos do SPICE evoluram bastante. Os otimistas acreditam que a norma sair dentro de mais um ou dois anos. Tecnicamente, o trabalho pode alongar-se at o ano de 2001...
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
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
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
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
SEI - Software Engineering Institute Defense Info Systems's Software Process Improvement Program Expert System Program and System Development Group Software Development: People, Process, Technology European Software Institute (ESI) Software Technology Support Center
Software Design & Engineering: Process Management Issues Useful Internet Sites related to Software Process Improvement Software Productivity Center's Process Improvement Resources Managing Software Development Project Management Software FAQ Software Proccess, Quality and ISO 9000
Modelo CMM
SEI - CMM - Capability Maturity Model SEI - CMM 1.1 - Texto completo para download SEI - CMM v2 - A nova verso do CMM SEI - P-CMM - People Capability Maturity Model Capability Maturity Model CMM Level 2 Focus Group CMM Questions Rochester Software Quality Association Integrated Product Development - CMM Software Engineering - CMM Software Factory Information Database ITG Software Process Improvement (SPI)
Modelo SPICE
SPICE - European Software Institute SPICE - Texto da verso 1.00 draft para download SPICE - Australian Software Quality Research Institute SPICE - Articulo de Arnoldo Daz Olavarrieta
Outros Modelos
PSP - Personal Software Process The Trillium Model The Bootstrap Methodology Cleanroom Software Engineering Cleanroom Software Engineering Tutorial
The Quality Factor (Byte Internacional, Abril/97). Viso geral sobre ISO-9000-3 e CMM How Software Doesn't Work (Byte Internacional, Dezembro/95) Reportagem de Capa sobre Qualidade. Qualidade de Software (Developers Magazine, Junho/97) Reportagem de Capa sobre Qualidade de SW
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