Alcançando Qualidade de Software com SW-CMM e ISO9000-3



Documentos relacionados
CHECK - LIST - ISO 9001:2000

Qualidade de. Software. Definições. Qualidade do Produto ISO Processo de. Software. Modelo de Processo de. Software CMM SPICE ISO 12207

CHECK LIST DE AVALIAÇÃO DE FORNECEDORES Divisão:

Palestra Informativa Sistema da Qualidade NBR ISO 9001:2000

MODELO CMM MATURIDADE DE SOFTWARE

QUALIDADE DE SOFTWARE

Padrões de Qualidade de Software

ISO Aécio Costa

Sistema de Gestão da Qualidade

Qual a diferença entre certificação e acreditação? O que precisamos fazer para obter e manter a certificação ou acreditação?

Auditoria e Qualidade de Software ISO/IEC 9126 Engenharia de Software Qualidade de Produto

Padrões de Qualidade de Software e Métricas de Software

PEDRO HENRIQUE DE OLIVEIRA E SILVA MESTRE EM MODELAGEM MATEMÁTICA E COMPUTACIONAL PEDROHOLI@GMAIL.COM CMM E CMMI

ESTRUTURA ISO 9.001:2008

LISTA DE VERIFICAÇAO DO SISTEMA DE GESTAO DA QUALIDADE

Universidade Paulista

GARANTIA DA QUALIDADE DE SOFTWARE

QUALIDADE DE SOFTWARE AULA N.7

ESTUDO COMPARATIVO NBR ISO 13485:2004 RDC 59:2000 PORTARIA 686:1998 ITENS DE VERIFICAÇÃO PARA AUDITORIA

Qualidade de Software: Visão Geral

CONSULTORIA. Sistema de Gestão ISO Lean Esquadrias

ANÁLISE DOS REQUISITOS NORMATIVOS PARA A GESTÃO DE MEDIÇÃO EM ORGANIZAÇÕES

Abordagem de Processo: conceitos e diretrizes para sua implementação

Prof. Dr. Ivanir Costa. Unidade III QUALIDADE DE SOFTWARE

CBG Centro Brasileiro de Gestão

Qualidade de Software. Prof.: Ivon Rodrigues Canedo. PUC Goiás

CAPABILITY MATURITY MODEL INTEGRATION. Prof. Késsia R. C. Marchi

CMM - Capability Maturity Model

NORMA NBR ISO 9001:2008

Qualidade de Processo de Software Normas ISO e 15504

Copyright Proibida Reprodução. Prof. Éder Clementino dos Santos

C.M.M. Capability Maturity Model Modelo de Maturidade da Capacidade

Melhorias de Processos de Engenharia de Software

21. Qualidade de Produto ou Qualidade de Processo de Software?

SGQ 22/10/2010. Sistema de Gestão da Qualidade. Gestão da Qualidade Qualquer atividade coordenada para dirigir e controlar uma organização para:

NORMA NBR ISO 9001:2008

Implantação de um Processo de Medições de Software

livros indicados e / ou recomendados

Introdução Visão Geral Processos de gerenciamento de qualidade. Entradas Ferramentas e Técnicas Saídas

SÉRIE ISO SÉRIE ISO 14000

ABNT NBR ISO 9001:2008

Sistemas de Gestão Ambiental O QUE MUDOU COM A NOVA ISO 14001:2004

MASTER IN PROJECT MANAGEMENT

Preparando a Implantação de um Sistema de Gestão da Qualidade

Qualidade de Software

AUDITORIA DE DIAGNÓSTICO

Código de prática para a gestão da segurança da informação

ENQUALAB 2013 QUALIDADE & CONFIABILIDADE NA METROLOGIA AUTOMOTIVA. Elaboração em planos de Calibração Interna na Indústria Automotiva

Modelos de Qualidade de Produto de Software

Lista de Verificação / Checklist

Qualidade de Software. Anderson Belgamo

- Revisão das normas ISO 9000 para o ano

Sistemas de gestão da qualidade - Requisitos

CMMI. B) descrições das atividades consideradas importantes para o atendimento de suas respectivas metas específicas. Governo do ES (CESPE 2009)

MODELO SPICE Software Improvement and Capacibilty Determination Avalia o software com foco na melhoria de seus processos (identifica pontos fracos e

ISO 9001:2008. Alterações e Adições da nova versão

FORMAÇÃO DE AVALIADORES DE SGI PELAS NORMAS DE GESTÃO DE QUALIDADE, SMS E RESPONSABILIDADE SOCIAL

NP EN ISO 9001:2000 LISTA DE COMPROVAÇÃO

Copyright Proibida Reprodução. Prof. Éder Clementino dos Santos

CONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Gerência de Projetos de Software Modelos de gerência. CMM: Capability Maturity Model ITIL: Information Technology Infrastructure Library MPS BR

MUDANÇAS NA ISO 9001: A VERSÃO 2015

O que é CMMI? Base do CMMI. Melhorando o processo é possível melhorar-mos o software. Gerais. Processo. Produto

Módulo 2. Estrutura da norma ISO 9001:2008 Sistemas de Gestão da Qualidade Requisitos 0, 1, 2, 3 e 4/4, Exercícios

Qualidade na gestão de projeto de desenvolvimento de software

14 ANEXO 02 - NORMA ISO 9001: INTERPRETAÇÃO LIVRE

OS 14 PONTOS DA FILOSOFIA DE DEMING

Governança de TI. ITIL v.2&3. parte 1

TRIBUNAL SUPERIOR DO TRABALHO SECRETARIA DE TECNOLOGIA DA INFORMAÇÃO ORDEM DE SERVIÇO Nº 1/SETIN, DE 30 DE SETEMBRO DE 2010

IC-UNICAMP IC-UNICAMP

ALESSANDRO PEREIRA DOS REIS PAULO CESAR CASTRO DE ALMEIDA ENGENHARIA DE SOFTWARE - CAPABILITY MATURITY MODEL INTEGRATION (CMMI)

SISTEMA DA GESTÃO AMBIENTAL SGA MANUAL CESBE S.A. ENGENHARIA E EMPREENDIMENTOS

FACULDADE SENAC GOIÂNIA

Processo de Implementação de um Sistema de Gestão da Qualidade

TREINAMENTO ITAIM INTERPRETAÇÃO DA NORMA NBR ABNT ISO 9001:2008. Maria das Graças Ferreira

MANUAL DO SISTEMA DA QUALIDADE. Rua Acre, CEP Bairro Boneca do Iguaçu - São José dos Pinhais - Paraná.

UNIP UNIVERSIDADE PAULISTA

Gerenciamento de Integração do Projeto Planejamento e Execução do Projeto

Uso Exclusivo em Treinamento

Qualidade e Teste de Software. QTS - Norma ISO (NBR13596) 1

ECS -ASSESSORIA E CONSULTORIA TÉCNICA. ISO 9001:2015 Tendências da nova revisão

ISO 9000:2000 Sistemas de Gestão da Qualidade Fundamentos e Vocabulário. As Normas da família ISO As Normas da família ISO 9000

ISO As três primeiras seções fornecem informações gerais sobre a norma, enquanto as cinco últimas centram-se na sua implementação.

CAMPO DE APLICAÇÃO Esta Norma Complementar se aplica no âmbito da Administração Pública Federal, direta e indireta.

Resumo das Interpretações Oficiais do TC 176 / ISO

CES-32 e CE-230 Qualidade, Confiabilidade e Segurança de Software. Conceitos de Qualidade. CURSO DE GRADUAÇÃO e DE PÓS-GRADUAÇÃO DO ITA

Por que sua organização deve implementar a ABR - Auditoria Baseada em Riscos

Introdução a CMMI. Paulo Ricardo Motta Gomes Renato Miceli Costa Ribeiro

PMONow! Serviço de Implantação de um Escritório de Projetos

Treinamento Gestão da Qualidade - Cartilha

Transcrição:

Alcançando Qualidade de Software com SW-CMM e ISO9000-3 ALEXANDRE NOVAES DORNELAS 1 HAMILTON TRINDADE VIVAS 2 EsAEx Escola de Administração do Exército, Rua Território do Amapá, Nº455, Pituba, Salvador BA, Brasil tenaldornelas@esaex.mil.br 1 tentrindadevivas@esaex.mil.br 2 Resumo. A busca pela qualidade motivou as organizações a adotarem modelos para qualidade de software, dentre os quais destacam-se os modelos ISO9000-3 e SW-CMM. O primeiro integra a família ISO9000, um conjunto de padrões e referências cujo reconhecimento pode ser medido pelo esforço das empresas por suas certificações. O modelo SW-CMM procura enquadrar a organização em níveis de maturidade e tem como meta a melhoria contínua dos processos de desenvolvimento de software. Este artigo apresenta estes modelos e compromete-se a demonstrar como cada um contribui na produção de software de qualidade. Palavras-chaves. Qualidade, software, maturidade. Abstract. The search for the quality has motivated the organizations to adopt models for quality of software, among which, the ISO9000-3 and SW-CMM models are distinguished. The first one integrates the ISO9000 family, a set of standards and references which are highly recognized. It can be measured by the companies effort to get such certificates. The SW-CMM model tries to classify the organization according to maturity levels. Its main goal is the continuous improvement of software development processes. This paper presents these models and demonstrates how each of them contributes in the production of quality software. Key words. Quality, software, maturity. 1. Introdução A existência de uma vasta gama de produtos e serviços, associados uma oferta cada vez mais global, obriga as empresas a atingir um padrão de qualidade elevado para que possam competir por um mercado cada vez mais exigente. A expressão clara desse fenômeno pode ser observado nas campanhas publicitárias, freqüentemente veiculadas pelos meios de comunicação, que garantem a melhor qualidade ao menor preço, buscando dessa forma apresentar ao público um elemento diferenciador. Qualidade é um conceito há muito debatido e diversos fatores devem ser considerados ao se julgar a qualidade de qualquer produto ou serviço. Um produto com determinada qualidade pode ser julgado de formas diversas por pessoas com experiências, educação, idade, formação e necessidades diferentes. Entre dezenas de definições a que obteve maior aceitação determina que qualidade consiste em adequação ao uso (JURAN, 1974). A norma NBR ISO8402 define qualidade como A totalidade das características de uma entidade que lhe confere a capacidade de satisfazer às necessidades explícitas e implícitas. As necessidades explícitas são aquelas expressas na definição dos requisitos do produto e que determinam as condições em que o este deve ser utilizado, seus objetivos, funções e o desempenho esperado. As necessidades implícitas são aquelas que, embora não expressas, são necessárias para o produto e englobam os requisitos que não são percebidos como necessários no desenvolvimento, mas que pela gravidade de suas consequências devem ser atendidos. Para assegurar a qualidade de software que produzem, o profissionais envolvidos devem estar conscientes do que exatamente seus clientes esperam: um produto sem defeitos que atenda plenamente aos requisitos especificados, disponibilizando uma farta quantidade de funções de fácil utilização sem comprometer o desempenho. O cliente também procura por rapidez de desenvolvimento associada a um baixo custo. A qualidade de software, segundo Pressman, "é a conformidade a requerimentos e a características implícitas que são esperadas de software profissionalmente desenvolvido" (Pressman, 2002) e pode ser dividida em três abordagens distintas: qualidade de projeto de software, qualidade de produto de software e qualidade de processo de software. Qualidade de projeto se refere a características que projetistas especificam para um item. O enfoque maior é nos requerimentos, na especificação e no projeto do sistema. A qualidade de produto de software é definida por um conjunto de características que devem ser alcançadas para que o produto atenda às necessidades de seus usuários, isto é, o produto deve atender seus requisitos. A qualidade do processo de software é determinada pela capacidade de adicionar novas características,

métodos, técnicas e ferramentas ao processo de software, viabilizando sua melhoria contínua. O processo de software é a seqüência de passos para construção de um produto de software. A qualidade de um produto de software é alcançada a partir da qualidade do processo (BUENO, 2000). A série ISO9000 (ISO9001, 2000) é um conjunto de documentos que trabalham com sistemas de qualidade que podem ser usados para propostas de garantia de qualidade externa. O ISO9000 ( Padrões de Gerenciamento e de Garantia de Qualidade - Diretrizes para Seleção e Uso ) descreve elementos de garantia de qualidade em termos genéricos que podem ser aplicados para qualquer empresa de produtos ou serviços oferecidos. O ISO 9001 ( Sistemas de Qualidade - Modelo para Garantia de Qualidade em Projeto/Desenvolvimento, Produção, Instalação e Serviço ) é o padrão de garantia de qualidade que é aplicado para engenharia de software. O padrão contém uma série de requerimentos que devem estar presentes para um sistema de garantia de qualidade efetivo. Como o padrão ISO 9001 é aplicado a todas as disciplinas de engenharia, um conjunto especial de guia ISO (ISO 9000-3) tem sido desenvolvido para ajudar a interpretar o padrão para uso no processo de software O Modelo de Maturidade de Capacidade para Software (CMM) desenvolvido pela SEI (Software Engineering Institute) descreve os princípios e práticas relacionados à maturidade do processo de software, e é aplicado pelas organizações que desejam aprimorar seus processos de desenvolvimento de software (SILVA, 2000). O CMM é organizado em cinco níveis de maturidade. Um nível de maturidade é uma base evolucionária bem definida direcionada a obter um processo de software maduro. Cada nível de maturidade fornece uma camada como base para um processo de melhora contínuo. O presente artigo tem por finalidade apresentar como os modelos ISO e CMM podem ser estrategicamente empregados de forma a garantir a qualidade do software desenvolvido por uma organização. A escolha deste tema levou em consideração o panorama dos projetos de software ainda marcados pela complexidade de trabalhar com unidades de conhecimento e pela ainda presente imaturidade da engenharia de software. 2. Qualidade de Produto de Software Duas normas ISO foram estabelecidas para determinar e avaliar as características de um software de qualidade: A norma ISO9126 define as características de um software de qualidade, enquanto a norma ISO14598 define como avaliar o software atribuindo conceitos para cada característica. 2.1 Norma ISO9126 - Características de Qualidade do Produto de Software A norma ISO9126 define as características de qualidade do produto de software: Funcionalidade, confiabilidade, usabilidade, eficiência, manutenibilidade e portabilidade. Esses fatores, embora não se prestam necessariamente a medidas diretas, fornecem uma base valiosa para medidas indiretas e uma excelente lista de verificação para avaliar a qualidade de um sistema. 2.1.1 Funcionalidade A funcionalidade é o grau em que o software satisfaz as necessidades declaradas, ou seja, as funções desenvolvidas satisfazem as necessidades explícitas e implícitas para a finalidade a que se destina o produto. Um software funcional satisfaz os seguintes subatributos: - Adequação ao problema: O conjunto de funções desenvolvido e sua apropriação para as tarefas; - Precisão: Geração de resultados corretos - Interoperabilidade: Capacidade de interagir com outros sistemas; - Segurança de acesso: Capacidade de evitar acesso não autorizado a programas e dados; - Conformidade: Estar de acordo com leis, normas, convenções. 2.1.2 Confiabilidade Confiabilidade está associada ao período de tempo em que o software está disponível para uso e em condições estabelecidas. São subcaracterísticas: - Maturidade: Freqüência de falhas; - Tolerância a falhas: Manter o nível de desempenho em caso de falha; - Recuperabilidade: Capacidade de se restabelecer e restaurar dados após falha. 2.1.3 Usabilidade Usabilidade é o atributo que leva o desenvolvedor a se colocar na posição do usuário final, a considerar a facilidade de uso do software de acordo com o perfil deste usuário. Implica em: - Facilidade de entendimento (documentação, interface gráfica); - Facilidade de aprendizagem (usuários leigos, especializados, treinamento); - Facilidade de operar e controlar a operação. 2.1.4 Eficiência Eficiência é o grau em que o software faz uso otimizado dos recursos do sistema, considerando que o tempo de resposta e a velocidade de execução são compatíveis com o nível de desempenho requerido para o produto. 2.1.5 Mantenibilidade

Mantenibilidade é a facilidade com a qual podem ser feitos reparos, atualizações e alterações no software levando em conta: - Facilidade de diagnosticar deficiências e causas de falhas; - Facilidade de remoção e remoção de defeitos; - Estabilidade (ausência de riscos de defeitos inesperados); - Facilidade de ser testado. 2.1.6 Portabilidade Portabilidade é a capacidade de um software ser implantado em ambientes ou plataformas diferentes com mínimo esforço de adaptação, tendo como subatributos: - Adaptabilidade: Capacidade de ser adaptado a ambientes diferentes; - Facilidade de instalação ; - conformidade com padrões de portabilidade; - Capacidade para substituir outro software. 2.2 Norma ISO14598 Uma vez estabelecidos os atributos que determinam a qualidade do produto de software, torna-se necessário fazer uso de instrumentos que permitam avaliar o software de acordo com essas características. A série ISO14598 disponibiliza um conjunto de guias e requisitos para avaliação do software e oferece uma visão geral dos processos de avaliação dos produtos de software. Segundo a norma, podem existir três visões diferentes para a avaliação da qualidade do produto, conforme a figura abaixo: São também disponibilizados modelos para relatórios de avaliação, técnicas para medição das características, documentos necessários para avaliação e fases de avaliação. A norma segue a seguinte estrutura: Quem desenvolve o software VISÕES Quem certifica o software Quem adquire o software 14598-1: Visão Geral (como utilizar as outras normas) 14598-2: Planejamento e Gerenciamento (como fazer uma avaliação) 14598-3: Guia para Desenvolvedores (como avaliar sob ponto de vista de quem desenvolve) 14598-4: Guia para Aquisição (como avaliar sob o ponto de vista de quem vai adquirir o software) 14598-5: Guia para avaliação (como avaliar sob o ponto de vista de quem certifica) 14598-6: Módulos de Avaliação (como avaliar cada característica) 2.2.1 Norma ISO14598-5 A norma ISO14598-5 merece especial atenção e aprofundamento, uma vez que se trata do processo de avaliação de software para certificação. O processo de avaliação deve ser: Repetível: a avaliação repetida de um mesmo produto, com mesma especificação, realizada pelo mesmo avaliador, deve produzir resultados que podem ser aceitos como idênticos; Reprodutível: a avaliação do mesmo produto, com mesma especificação de avaliação, realizada por avaliadores diferentes, deve produzir resultados que podem ser aceitos como idênticos; Imparcial: A avaliação não deve ser influenciada frente a nenhum resultado particular; Objetiva: Os resultados das avaliações não devem ser influenciadas pelos sentimentos ou opiniões do avaliador. O processo proposto pela norma inclui cinco atividades: análise dos requisitos da avaliação, especificação da avaliação, projeto da avaliação, execução da avaliação e conclusão da avaliação. 2.2.1.1 Análise dos Requisitos da Avaliação Esta fase busca descrever os objetivos da avaliação, levando em consideração pontos de vistas distintos, dependendo dos diferentes usuários do produto, tais como comprador, fornecedor, desenvolvedor e operador. 2.2.1.2 Especificação da Avaliação É definido o escopo da avaliação e as medidas a serem executadas no produto sob avaliação. 2.2.1.3 Projeto da Avaliação Fase em que o avaliador deve produzir um plano de avaliação que descreve os recursos necessários para executar a avaliação especificada, assim como a distribuição desses recursos nas várias ações a serem executadas. 2.2.1.4 Execução da Avaliação Nesta fase deve-se obter resultados da execução de ações para medir e verificar o produto de software de acordo com os requisitos de avaliação, como determinado na especificação da avaliação e como

planejado no plano de avaliação. Ao executar essas ações, tem-se o rascunho do relatório de avaliação e os registros da avaliação. 2.2.1.5 Conclusão da Avaliação Nesta fase faz-se a revisão do relatório de avaliação e disponibiliza-se os dados resultantes da mesma. 3. Qualidade de Processo de Software Um processo de software consiste em um conjunto de atividades, métodos, práticas e transformações que as pessoas utilizam para desenvolver e manter software e produtos relacionados (CMM). Dos requisitos do usuário à entrega do produto final, existe um processo de desenvolvimento complexo e dividido em fases, que pode comprometer a qualidade do software. Além disso, a qualidade do processo de software envolve uma série de fatores (fatores de qualidade) essenciais que devem ser considerados em todas as fases do desenvolvimento: - Métodos, procedimentos, padrões e técnicas; - Ferramentas; - O processo; - Pessoal habilitado que compreenda e use o processo. Uma vez que a qualidade do software é largamente determinada pela qualidade dos processos utilizados para o desenvolvimento, cabe a cada organização adotar o processo que melhor se adeqüe as suas necessidades, mas deve-se ter consciência que a melhoria da qualidade de software somente é obtida pela melhoria da qualidade dos processos, significando que não basta apenas a adoção do processo, mas também o esforço de aperfeiçoá-lo continuamente. Esta melhoria contínua deve obedecer aos seguintes princípios: - Grandes mudanças devem ser iniciadas de cima para baixo, ou seja, é preciso que o alto escalão da organização esteja envolvida no procedimento de melhoria do processo; - Todos os membros da organização devem estar envolvidos; - Mudanças efetivas devem ser construídas com base em conhecimento; - Mudanças são contínuas; - Mudanças no processo são incorporadas através de motivação e esforço; - Melhoria de processo de software requer investimento. Tal visão resultou na elaboração de modelos de definição, avaliação, melhoria de processos de software. Entre os modelos mais significativos encontram-se os modelos da ISO para qualidade de processo de software e da família ISO (ISO12207, ISO9001:2000 e ISO9000-3) e o modelo CMM. 4. Modelos da ISO para Qualidade de Processo de Software A ISO (International Organization for Standardization) é uma organização nãogovernamental cujo propósito é estabelecer referências internacionais para regulamentar obrigações contratuais entre fornecedores e compradores que focalizem a garantia da manutenção e uniformidade da qualidade de produtos. No Brasil é representada pela Associação Brasileira de Normas Técnicas (ABNT). No contexto de qualidade do processo de software, a ISO apresenta os seguintes modelos: a normas ISO12207 de definição do modelo de ciclo de vida para produtos de software, ISO9001:2000 que especifica requisitos para um sistema gerencial de qualidade de uma organização e a norma ISO9000-3 que atua como um guia para aplicação da ISO9001:2000 para desenvolvimento, suporte e manutenção de software. 4.1 A Norma ISO12207 A norma ISO12207 define um modelo e ciclo de vida para produtos de software, onde são estabelecidos dezessete processos do ciclo de vida de software que são organizados em três classes: processos fundamentais, processos de apoio e processos organizacionais. Os processos fundamentais estabelecem o início e a execução do desenvolvimento, operação e manutenção do software durante seu ciclo de vida. Processos de apoio provêem suporte aos outros processos e processos organizacionais implementam uma estrutura constituída de processos de ciclo de vida e pessoal associados, melhorando continuamente a estrutura e os processos. 4.2 A Norma ISO9001:2000 A norma ISO9001:2000 é um padrão internacional que especifica requisitos para um sistema gerencial de qualidade de uma organização. Ela incentiva a adoção de uma abordagem de processo para o desenvolvimento, implementação e melhoria da eficácia de um sistema de gestão da qualidade para aumentar a satisfação do cliente pelo atendimento aos requisitos do cliente. Quando utilizada em um sistema de gestão da qualidade, esta abordagem enfatiza a importância de: - Entendimento e atendimentos dos requisitos; - Necessidade de considerar os processos em termos de valor agregado; - Obtenção de resultados de desempenho e eficácia de processos; - Melhoria contínua de processos baseada em medições objetivas. São objetivos desta norma estabelecer o sistema de gestão da qualidade, a responsabilidade gerencial, a gestão de recursos, realização do produto, além da medição, análise e melhoria do processo.

4.2.1 Sistema de Gestão da Qualidade A organização deve estabelecer, documentar, implementar, manter e melhorar continuamente a eficácia de um sistema de gestão da qualidade. Para tal ela deve identificar os processos necessários para o sistema e sua aplicação por toda organização, além de constantemente monitorar, medir e analisar esses processos. Sua documentação deve incluir o manual da qualidade além do controle de documentos e registros. O manual da qualidade determina: - O escopo do sistema de gestão da qualidade; - Os procedimentos documentados estabelecidos para o sistema de gestão de qualidade, ou referencia a eles; - A descrição da interação entre os processos. O controle de documentos e registros tem por objetivo prover evidências da conformidade com os requisitos e da operação eficaz do sistema de gestão da qualidade. 4.2.2 Responsabilidade Gerencial A alta direção da organização deve evidenciar seu comprometimento com o desenvolvimento, implementação e melhoria contínua do sistema de gestão da qualidade. Para tanto devem ser observados a adoção de uma política da qualidade apropriada aos seus propósitos, o foco no cliente, planejamento e uma revisão gerencial esporádica de forma a assegurar sua contínua eficácia. 4.2.3 Gestão de recursos Cabe a organização prover recursos necessários para implementar e manter o sistema de gestão da qualidade e melhorar continuamente sua eficiência, disponibilizando recursos humanos, infra-estrutura e ambiente de trabalho adequados. 4.2.4 Realização do Produto A realização do produto lida com os roteiros e processos que a organização passa para entregar seus produtos e serviços finais. Um sistema de gestão da qualidade precisa desenvolver uma abordagem compreensiva desde o ponto de partida até a linha final. Esta abordagem precisa ser planejada e os passos e estágios importantes devem ser descritos. Compõe a realização do produto: - Planejamento da realização do produto; - Processos relacionados a clientes; - Projeto e desenvolvimento; - Aquisição; - Produção e fornecimento de serviço; - Controle de dispositivos de medição e monitoramento. 4.2.5 Medição, Análise e Melhoria É requerido que as organizações meçam e monitorem a conformidade dos seus processos e produtos. Os dados coletados devem ser analisados para iniciar ações corretivas e preventivas da melhoria contínua. É importante também determinar como medir a satisfação dos clientes e monitorar as como a percepção do cliente quanto a organização. Para tal temos: - Medição e monitoramento; - Controle de produto não conforme: Assegurar que produtos que não estejam conforme com os requisitos sejam identificados e controlados para evitar seu uso ou entrega não intencional. - Análise de dados; - Melhorias (melhoria contínua, ação corretiva e preventiva). 4.3 A Norma ISO9000-3 A norma ISO9001:2000 é aplicável a organizações em geral e não apenas a empresas que lidam especificamente com o desenvolvimento, fornecimento e manutenção do software. Sendo assim os documentos dessa série são genéricos, o que levou a elaboração de um documento complementar onde fosses abordados os aspectos específicos de software. A norma ISO9000-3 estabelece um guia para facilitar a aplicação da ISO9001:2000 para desenvolvimento, suporte e manutenção de software, e para cada item da ISO9001:2000 existe um correspondente na ISO9000-3 que o detalha e o adequar ao software. Suas diretrizes cobrem questões como o entendimento entre o contratante e contratado a respeito dos requisitos funcionais e o uso de metodologias consistentes para o desenvolvimento de software e o gerenciamento do projeto, desde a concepção a manutenção. São cláusulas da ISO9000-3: 1. Responsabilidade da Administração; 2. Sistema da Qualidade: manual da qualidade, metodologia, ferramentas, técnicas; 3. Análise Crítica de Contratos: Especificação dos requisitos, definição de responsabilidades, capacidade de entendimento; 4. Controle de projeto: Meta, conformidade com os requisitos especificados, planos para o desenvolvimento, modelo de ciclo de vida, revisões, verificações e validações; 5. Controle de Documentos e Dados: Padrões e procedimentos para aprovação, emissão, distribuição, revisão, controle do que é obsoleto e descarte; 6. Aquisição de Produtos: O fornecedor deve assegurar que os produtos adquiridos e serviços subcontratados que afetam a qualidade dos produtos de software estejam conforme os requisitos especificados no ato da aquisição; 7. Controle de Produtos Fornecidos pelo Cliente: Procedimentos para controle de verificação,

armazenamento, preservação, manutenção e disposição de produtos fornecidos pelo cliente; 8. Identificação e Rastreabilidade do Produto: Controle efetivo de versões de cada cliente, identificando as alterações implementadas em uma versão específica; 9. Controle do Processo: Garantir a continuidade e melhoria do processo de desenvolvimento, manutenção e serviços associados; 10. Inspeção, Teste e Validação de Software: Consiste em demonstrar a conformidade do produto com a especificação dos requisitos; 11. Controle de Equipamentos de Inspeção: antivírus, suporte técnico, massa de teste; 12. Identificação de Situação de Inspeção: Exame dos registros de teste; 13. Manuseio, Armazenamento, Embalagem, Preservação e Entrega: Métodos e procedimentos de manuseio do produto que previnam danos ou deterioração; 14. Controle de Registros da Qualidade; 15. Auditoria no Sistema da Qualidade; 16. Treinamento: Consiste no planejamento, execução e avaliação de treinamentos realizados em ambiente externo e interno. 17. Serviços associados: Suporte ao cliente, treinamento para o usuário, instalação e implantação do software, manutenção e conversão de dados. 18. Técnicas Estatísticas: Desempenho da empresa no mestrado, níveis de satisfação do cliente e características que afetam o desempenho do processo. É importante salientar que a ISO9001 indica apenas a não-conformidade de um produto e recomenda ações corretivas e preventivas. A melhoria contínua do processo não é explicitamente abordada por essa norma, tal como é abordada no modelo SW-CMM. 5. O Modelo SW-CMM O modelo SW-CMM propõe a avaliação da capacidade e maturidade de uma organização, descrevendo o caminho para a melhoria de um processo caótico, para um processo maduro e disciplinado. Desenvolvida pela Software Engineering Institute (SEI) tornou-se um dos modelos de maior prestígio, sendo aplicada inclusive pelo departamento de defesa norte-americano. 5.1 Maturidade do Processo Quando a organização faz uso de um processo imaturo no desenvolvimento do software fica sujeita a diversos contratempos, uma vez que neste nível o processo não é rigorosamente seguido, controlado e é altamente dependente dos profissionais atuais da empresa. Dessa forma, a ausência de um profissional envolvido no processo pode comprometer o desenvolvimento do produto e o cumprimento dos prazos. Além do mais esse tipo de processo não gera documentação, elevando os custo de manutenção e os riscos de incorporar novas tecnologias. Um processo maduro deve ser construído sobre uma infra-estrutura que possui processos eficazes, utilizáveis e consistentemente aplicados em toda organização. É explicitamente definido, documentado e continuamente melhorado, contando com o apoio visível da alta administração. Um processo de software maduro é rigorosamente controlado, gerenciado, previsível e estimável. 5.2 Níveis de Maturidade Os níveis de maturidade de um processo definem um caminho para o alcance de um processo de software maduro. Com exceção do primeiro nível (processo imaturo, caótico), cada nível possui áreas-chaves do processo, que são atividades a serem executadas de forma a satisfazer o grau de qualidade previsto. CMM define cinco níveis de maturidade: - Inicial (nível 1): - Repetível (nível 2); - Definido (nível 3); - Gerenciado (nível 4); - Otimização (nível 5); 5.2.1 Nível 1 Inicial O processo de software é caracterizado como ad hoc, ocasionalmente até caótico, onde poucos processos são definidos. O sucesso do produto depende de iniciativas individuais. Normalmente, durante os momentos de crise, os procedimentos planejados são abandonados e a atenção é focada na codificação. Não existem áreas-chaves de processo neste nível 5.2.2 Nível 2 - Repetitivo São estabelecidos processos básicos de gerenciamento de projetos para acompanhamento de custos, cronograma e funcionalidade. A disciplina necessária de processo permite repetir sucessos anteriores em projetos de aplicação similar. São áreas-chaves do processo: - Gerenciamento da Configuração de Software; - Garantia da Qualidade de Software; - Gerenciamento de Subcontrato de Software; - Acompanhamento de Projeto de Software; - Planejamento de Projeto de Software; - Gerenciamento de Requisitos. 5.2.3 Nível 3 Definido O processo para desenvolvimento de software é estabelecido, padronizado e documentado pela organização. Todos os projetos utilizam uma versão

aprovada e adaptada deste processo para o desenvolvimento e manutenção. São áreas-chaves: - Revisões; - Coordenação de Intergrupos; - Engenharia de Produto de Software; - Gerenciamento de Software Integrado; - Programa de Treinamento; - Definição do Processo da Organização; - Foco no Processo da Organização. 5.2.4 Nível 4 - Gerenciado São efetuados medições detalhadas do processo de software e qualidade do produto. Tanto o processo como o produto são entendidos e controlados quantitativamente, o que permite prever o desempenho dentro de limites quantificados. Áreaschaves do processo: - Gerenciamento da Qualidade de Software; - Gerenciamento Quantitativo do Processo. 5.2.5 Otimização A melhoria contínua do processo é possibilitada pela realimentação quantitativa do processo e conduzida a partir de idéias e tecnologias inovativas. O objetivo é identificar e eliminar causas crônicas da baixa performance e analisar a relação de custo/benefício de novas tecnologias. São áreas-chaves do processo: - Gerenciamento da Mudança no Processo; - Gerenciamento da Mudança Tecnológica; - Prevenção de Defeito. 6. Conclusão A implantação bem sucedida de um sistema de qualidade de software permite um aumento de produtividade, uma melhoria da qualidade do produto final e, consequentemente, um aumento da satisfação dos clientes e da própria empresa. Visto que qualidade é um conceito complexo, não existe uma medida padrão para qualidade de software que seja aplicável para todos os projetos de todas as organizações. Os modelos ISO9000-3 e SW-CMM, embora sejam aplicados para alcançar qualidade, possuem objetivos distintos e bem definidos. O modelo ISO9000-3 busca certificar a organização de acordo com padrões estabelecidos em contratos de fornecimento de software e seu principal instrumento de avaliação consiste em uma lista de verificação de conformidade dos processos aos padrões documentados, porém é limitado pela ausência de suporte a melhoria contínua. Embora seja uma norma internacional e de reconhecido valor de certificação, uma organização estará cometendo um equívoco caso adote o ISO9000-3 tendo a apenas a certificação como objetivo principal. O modelo SW-CMM objetiva determinar a estágio de maturidade de organizações que buscam a comprovação formal de sua capacidade e apoiar sua evolução de acordo com os cinco níveis estabelecidos. O modelo estabelece diretrizes para melhoria contínua do processo de desenvolvimento de software e vem alcançando grande difusão no mercado. Contudo o modelo peca ao não considerar a diversidade das organizações bem como na dificuldade de ser implantado em pequenas empresas. Uma estratégia viável para as organizações seria aplicar o casamento do ISO9000-3 e do SW-CMM, que consiste em implantar o ISO9000-3 na empresa de software utilizando o modelo CMM como guia. Depois da certificação, a empresa poderá melhorar seu sistema da qualidade implantado seu próprio modelo CMM. Independente do modelo a ser adotado, a organização deve considerar que estará realizando uma mudança cultural na empresa, exigindo a participação da alta administração e o envolvimento de todos os seus membros. Agradecimentos Agradeço a 1º Tenente Aluna Flavia Huber pelo auxílio na revisão da seção abstract. Referências (BUENO, 2000) BUENO, Cassiane; CAMPELO, Gustavo. Qualidade de Software. Centro de Informática UFPE. Disponível em http://www.cin.ufpe.br/~qualisoft/documentos/divers os/quality.doc (CMM, 1993) CMU/SEI-93-TR-25. CMM Nível 2. 1993. (ISO9001, 2000) NBR ISO9001. Sistemas de Gestão da qualidade. Dez 2000. (JURAN, 1974) JURAN, J.M. Quality Control Handbook, McGraw-Hill, Nova Iorque, 1974. (SILVA, 2000) SILVA, Elisabeth; NASCIMENTO, Rogério. Modelo da Maturidade para Capacitação para Software. Centro de Informática UFPE. Disponível em http://www.cin.ufpe.br/~qualisoft/documentos/divers os/cmm/cmm.doc