Baixe o app para aproveitar ainda mais
Prévia do material em texto
Qualidade de software Motivação de Qualidade Material Teórico Responsável pelo Conteúdo: Prof. Ms. Douglas Almendro Revisão Textual: Profa. Esp. Márcia Ota 5 • Motivação de Qualidade • Qualidade x tipo de software • Avaliação da qualidade do produto Considerando o conhecimento adquirido por meio dos conceitos iniciais de qualidade e algumas metodologias voltadas para software, a proposta desta Unidade é mostrar que a qualidade faz parte da vida cotidiana. Vale salientar que a visão popular que se tem do conceito de qualidade pode ser muito diferente de como ele é usado profissionalmente. Por isso, não deixe de assistir, também, à apresentação narrada do conteúdo e de alguns exercícios resolvidos. Finalmente, e o mais importante: fique atento às atividades avaliativas propostas e ao prazo de realização e envio. Nesta Unidade, será explanado o conceito de qualidade. Esse primeiro passo nos levará ao entendimento de certificações dadas às metodologias que são utilizadas no mercado de software. Então, não perca nenhum detalhe dessa unidade. Motivação de Qualidade 6 Unidade: Motivação de Qualidade Contextualização Ao desenvolver um software, devemos estar familiarizados com os conceitos de qualidade. Entre eles, podemos citar o CMM (Capability Maturity Model), e a ISO/SPICE (Software Process Improvement & Capability Determination. O CMM é o modelo desenvolvido pelo Instituto de Engenharia de Software (SEI) da Universidade Carnegie-Mellon, EUA, visando dar às organizações diretrizes sobre como aprimorar o processo. A ISO/SPICE (Software Process Improvement & Capability Determination), cujo objetivo é gerar normas ISO/IEC para a avaliação de processos de software. Norma ISO/IEC 12207, define um processo de ciclo de vida do software. Norma ISO/IEC 9000-3, apresenta diretrizes para a aplicação da ISO 9001 (voltada para indústria), por empresas que desenvolvem software, para o processo de desenvolvimento e manutenção de software Avaliação da qualidade do produto. Com base nos conceitos de qualidade, estaremos mais à frente, optando pela melhor metodologia a ser seguida. É assim que seguiremos uma metodologia de qualidade. 7 Motivação de Qualidade Antes de iniciarmos nossos estudos, vamos primeiro entender o significado de qualidade. Veja: O Dicionário Aurélio define qualidade como: “propriedade, atributo ou condição das coisas ou das pessoas capaz de distingui-las das outras e de lhes determinar a natureza” [Aurélio86]. Como um atributo de um item, a qualidade se refere a coisas que podem ser medidas, ou seja, comparadas com padrões conhecidos, tais como, tamanho, cor, propriedades elétricas, maleabilidade, etc. Entretanto, é mais difícil categorizarmos qualidade em software, que é uma entidade intelectual, do que em objetos físicos. Quando falamos de qualidade, deparamo-nos com diversas situações. Veja um exemplo: O que seria um automóvel que tem qualidade? Vêm-nos em mente diversos tipos, modelos e marcas tão sonhadas, mas o que devemos observar? Esses automóveis tão sonhados espelham a qualidade principalmente pela funcionalidade, segurança, fácil manutenção e diversas outras conformidades que necessitamos. Aproveitando o nosso exemplo do automóvel, quando nos deparamos por um aviso no rádio, televisão e/ou internet, sobre um recall de um determinado automóvel, qual a sensação que é esperada a princípio por todos? Provavelmente, a sensação de que houve um defeito no projeto do automóvel, pois o que nos surpreende é que logo em seguida mostram o lote em que se deve efetuar o recall, do número x até o número y desse veículo e modelo... Isso mostra, de fato, que houve algum erro, defeito ou bug? Sim, mas o erro foi identificado a tempo e, mesmo assim, conseguiram saber quais veículos produzidos da linha de montagem tiveram esta anomalia. Isso prova que as maiorias das indústrias (nesse caso, automobilísticas) conseguem ter controle de todos os processos efetuados na criação de um veículo. Vale salientar que as indústrias têm como controlar essas anomalias, mas nem sempre foi assim, para chegar a esse grau de excelência, erram muito. Bem, mas e quando falamos de software? Definir qualidade de software é uma tarefa difícil. Muitas definições têm sido propostas e uma definição decisiva poderia ser debatida interminavelmente. Ao se examinar um item baseado em suas características mensuráveis, dois tipos de qualidade podem ser encontradas: qualidade de projeto e qualidade de conformidade [Pressman97]. • Qualidade de projeto se refere a características que projetistas especificam para um item (desempenho, tolerância, etc.). O enfoque maior é nos requerimentos, na especificação e no projeto do sistema. • Qualidade de conformidade é o grau, no qual, as especificações do projeto são seguidas durante o processo de desenvolvimento. O enfoque maior é na implementação. 8 Unidade: Motivação de Qualidade Uma definição de qualidade de software que se encaixa nesse escopo é: “conformidade a requisitos funcionais e de desempenho explicitamente declarados, a padrões de desenvolvimento claramente documentados e a características implícitas que são esperadas de todo software profissionalmente desenvolvido” [Pressman95]. Hoje, temos uma dependência crescente em sistemas computacionais. Sistemas computacionais dependem cada vez mais do software. Por isso, o mau funcionamento do software pode gerar custos altos. Alguns exemplos do passado: • bug do milênio; • avião F-16: voou de cabeça para baixo ao cruzar o equador devido à falha no software de navegação; • lançamento do ônibus espacial Columbia foi atrasado em 1981 devido à alteração errada em rotina de sincronização; • ao menos duas mortes causadas por overdose de radiação por causa de uma falha de software no Therac-25; http://www.cs.tau.ac.il/~nachumd/verify/horror.html Agora, reflita: No futuro, o que pode acontecer se bancos perderem milhões, clientes virem saldos de suas contas sumirem de repente, telefones pararem de funcionar, aviões tiverem suas rotas desviadas, vários trens/metrô forem colocados no mesmo trilho, entre muitos outros exemplos relacionados às consequências do mau funcionamento dos softwares? Características de Qualidade Abaixo, temos uma figura que representa as características de qualidade segundo McCall. Cada item representa uma característica de cada processo. Modelo de Qualidade de McCall et al, 1977 9 Com relação ao uso do produto (características operacionais): • correção: o quanto um programa satisfaz a sua especificação e cumpre os objetivos visados pelo cliente; • confiabilidade: o quanto um programa executa a função pretendida com a precisão exigida; • eficiência: a quantidade de recursos computacionais e de código exigida para que um programa execute sua função; • integridade: o quanto o acesso ao software ou aos dados por pessoas não autorizadas pode ser controlado; • usabilidade: o quanto de esforço é necessário para aprender, preparar a entrada e interpretar a saída de um programa. Com relação às alterações do produto (habilidade para ser alterado): • manutenibilidade: o quanto de esforço é necessário para localizar e eliminar erros em um programa. • flexibilidade: o quanto de esforço é necessário para modificar um programa. • testabilidade: o quanto de esforço é necessário para testar um programa a fim de garantir que ele execute a função pretendida. Com relação às alterações do produto (habilidade para ser alterado): • portabilidade: o quanto de esforço é necessário para transferir um programa de uma plataforma de hardware e/ou software para outra. • reusabilidade: o quanto um programa (ou partes dele) pode ser reutilizado em outros programas. • interoperabilidade: o quanto de esforço é necessário para se acoplar um programa a outro. Funcionalidade: o software satisfaz às necessidades explícitas e implícitas do usuário? Confiabilidade: o software, durante um períodode tempo, funciona de acordo com as condições preestabelecidas? Usabilidade: o software é fácil de usar? Eficiência: o software não desperdiça recursos? Manutenibilidade: o software é fácil de alterar? Portabilidade: o software é facilmente adaptável a diferentes plataformas? 10 Unidade: Motivação de Qualidade Características e subcaracterísticas Funcionalidade: o software satisfaz às necessidades explícitas e implícitas do usuário? • Adequação: propõe-se a fazer o que é apropriado? • Acurácia: gera resultados corretos ou conforme acordado? • Interoperabilidade: é capaz de interagir com os sistemas especificados? • Conformidade: está de acordo com normas e convenções previstas em leis, normas e descrições similares? • Segurança de acesso: evita o acesso não autorizado, acidental ou deliberado acesso a programa e dados? Confiabilidade: o software, durante um período de tempo, funciona de acordo com as condições preestabelecidas? • Maturidade: com que frequência apresenta falhas? • Tolerância a falhas: ocorrendo falhas, como ele reage? • Recuperabilidade: é capaz de recuperar dados após uma falha? Usabilidade: o software é fácil de usar? • Inteligibilidade: é fácil entender os conceitos utilizados ? • Apreensibilidade: é fácil de aprender a usar ? • Operacionalidade: é fácil de operar e controlar a operação ? Eficiência: o software não desperdiça recursos? • Comportamento em relação tempo: qual é o tempo de resposta e de processamento? • Comportamento em relação aos recursos: quanto recurso usa? Durante quanto tempo? Manutenibilidade: o software é fácil de alterar? • Analisabilidade: é fácil encontrar um erro quando ocorre? • Modificabilidade: é fácil modificar e remover erros? • Estabilidade: há grandes riscos de erros quando se faz alterações? • Testabilidade: é fácil testar quando se faz alterações? Portabilidade: o software é facilmente adaptável a diferentes plataformas? • Adaptabilidade: é fácil adaptar a outras plataformas sem aplicar outras ações ou meios além dos fornecidos para esta finalidade no software considerado? • Capacidade para instalar: é fácil instalar em outras plataformas? • Capacidade para substituir: é fácil substituir por outro software? • Conformidade: está de acordo com padrões e convenções de portabilidade? 11 Qualidade x tipo de software Cada tipo de software tem seu próprio requisito de qualidade, a importância de cada característica depende diretamente do tipo de software por exemplo. No exemplo acima, temos a importância que cada processo em cada sistema, cada um exige mais do que o outro de acordo com seus requisitos, em uns mais itens em outros menos itens. A figura abaixo mostra os diferentes pontos de vista das pessoas envolvidas no processo de desenvolvimento de software. Figura: Diferentes pontos de vista Quais são os principais objetivos da qualidade? • Aprimorar o processo de desenvolvimento e, em consequência, melhorar a qualidade do produto resultante. 12 Unidade: Motivação de Qualidade • Avaliar a qualidade do produto, visando emitir documento oficial sobre a qualidade de um software e sua conformidade em relação a uma norma ou padrão. • Adquirir um software, com o intuito de escolher o produto mais adequado dentre um conjunto de produtos selecionados. Aprimoramento do processo de software Algumas iniciativas visando melhorias do processo de software: SEI/CMM (Capability Maturity Model), modelo desenvolvido pelo Instituto de Engenharia de Software (SEI) da Universidade Carnegie-Mellon, EUA, visando dar às organizações diretrizes sobre como aprimorar o processo. ISO/SPICE (Software Process Improvement & Capability Determination), cujo objetivo é gerar normas ISO/IEC para a avaliação de processos de software. Norma ISO/IEC 12207, define um processo de ciclo de vida do software. Norma ISO/IEC 9000-3, apresenta diretrizes para a aplicação da ISO 9001 (voltada para indústria), por empresas que desenvolvem software, para o processo de desenvolvimento e manutenção de software Avaliação da qualidade do produto. Algumas normas: ISO/IEC 9126 (NBR 13596), define as características de qualidade de software que devem estar presentes em todos os produtos. ISO/IEC 12119, estabelece os requisitos de qualidade para pacotes de software e instruções para teste, considerando esses requisitos. ISO/IEC 14598-5, define um processo de avaliação da qualidade de produto de software. Avaliação da qualidade do produto Como fazer? - organismos de certificação: • No Brasil, para fornecer o certificado ISO 9000, existem empresas credenciadas pelo INMETRO. - avaliar in-house: • Utilizar equipe multidisciplinar com especialistas da área de tecnologia e especialistas da área que se utilizará do software (ie, que vão olhar para o software a partir do ponto de vista do cliente) ,grupo de Garantia da Qualidade do Software. 13 - contratar empresas para avaliação: • Existem empresas que fazem avaliação do software mas, por não serem credenciadas pelo INMETRO, não emitem certificado oficial. São, no entanto, mais acessíveis e ágeis que os organismos credenciados. Alguns entraves à qualidade segundo o IEEE610.12-1990: Erro(engano) Ação humana que produz um resultado incorreto. Mistake Falha Incorreção em um passo, processo ou definição de dados; manifestação no software de um engano cometido pelo desenvolvedor. Fault (bug) Erro Diferença entre o valor obtido e o valor esperado, ou seja, qualquer estado intermediário incorreto ou resultado inesperado na execução do software. Error Defeito Incapacidade de fornecer o serviço, conforme especificado. Failure Por que surgem as falhas? Alterações: • Alterações degradam a estrutura do software, tornando-o cada vez mais difícil de alterar. Tempo: • Com o tempo, os custos das implementações das alterações aumentam, e a capacidade do sistema em prestar os serviços esperados diminui. Complexidade: • difícil de desenvolver: um único desenvolvedor não é capaz de entender o sistema como um todo; • difícil de usar; • difícil de entender: código incompreensível, falta de documentação. Garantia da Qualidade do Software Definição de um arcabouço para se atingir a qualidade do produto de software [Sommerville01, 24.1] Padrão sistemático e planejado de ações que são exigidas para garantir a qualidade do software. [Pressman92, 17.1.2] Visa responder às seguintes questões: • O software atende às características de qualidade desejadas ? 14 Unidade: Motivação de Qualidade • O desenvolvimento do software foi conduzido conforme os padrões preestabelecidos ? • As disciplinas técnicas cumpriram adequadamente seus papéis como parte da atividade de Garantia da Qualidade? Norma ISO/IEC 14598 pode ser usada para definir o processo de Avaliação. Atividades da Garantia de Qualidade segundo Pressman Aplicação de métodos, técnicas e ferramentas, uso pelos desenvolvedores de métodos e ferramentas que ajudem a conseguir especificações, projetos, etc., de maior qualidade. Realização de revisões técnicas, o objetivo é avaliar a qualidade do artefato de software (especificação, projeto, ...) produzido ao longo do desenvolvimento. Atividades de testes em complemento às revisões e outras técnicas. Aplicação de padrões • padrões podem ser usados: para documentos, documentação do código e estilo de codificação (como usar linguagem de programação). • padrões podem ser determinados pelo cliente, por normas internacionais ou pela empresa de desenvolvimento. Atividades de Garantia de Qualidade Controle de alterações, toda mudança no software tem potencial para introduzir erros ou criar efeitos colaterais, que propagam erros no controle de mudanças durante desenvolvimento e manutenção, sendo essencial para garantir a qualidade do software. Medição, obtenção de métricas a fim de rastrear a qualidade do software e avaliar o impacto de mudanças nosmétodos e procedimentos usados para desenvolvimento e manutenção. Anotação e manutenção de registros para manter histórico com resultados de revisões, auditorias, controle de alterações e outras atividades de garantia de qualidade, que devem ser levados ao conhecimento dos desenvolvedores. Com isso, conseguimos ter uma noção de qualidade e chegar a uma conclusão de qualidade de software que devido ao aumento da competitividade e a preocupação em oferecer ao mercado softwares que atendam às expectativas de seus clientes, os desenvolvedores de software têm buscado aplicar os conceitos de qualidade em seus produtos. Dada a história e os fatos mencionados, notamos que, nos dias de hoje, a qualidade dos softwares desenvolvidos devem aumentar significativamente. Algumas certificações existentes no mercado têm dado uma atenção especial nos processos de qualidade e mobilizado as organizações a adotarem este tipo de processo em todos seus produtos. Espera-se que as organizações comecem a incluir em seu processo de desenvolvimento, o processo de qualidade de software, não apenas no momento que o produto foi finalizado ou desenvolvido, mas desde o início de sua concepção, para não ser surpreendido com a possibilidade de ocorrerem falhas no ciclo de vida do software. 15 Material Complementar Para aprofundar seus estudos sobre Qualidade, temos abaixo os sites e as seguintes referências: • http://www.sei.cmu.edu/ • http://www.cin.ufpe.br/~in953/olds/relatorios/fabrica1.pdf • http://www.spinsp.org.br/ • http://ibpi.org/standard/isoiec-15504/ • GAMMA, Erich. Padrões de projeto: soluções reutilizáveis de software orientado a objetivos. Porto Alegre: Bookman, 2000. • SOMMERVILLE, Ian. Engenharia de software. 8ª ed. São Paulo: Pearson Addison- Wesley, 2007. http://www.sei.cmu.edu/ http://www.cin.ufpe.br/~in953/olds/relatorios/fabrica1.pdf http://www.spinsp.org.br/ http://ibpi.org/standard/isoiec-15504/ 16 Unidade: Motivação de Qualidade Referências J. McCall, P. Richards and G. Walters. Factors in Software Quality (3 vols.), NTIS AD- AO49-014, 015, 055, Nov. 1977. R.S.Pressman. Software Engineering, A Practicioners Approach, McGraw-Hill. Steven R. Rakitin. “Software Verification and Validation: a Practitioner’s Guide”. Artech House, 1997. Nelma S. Gomes. “Qualidade de Software - Uma Necessidade”. Artigo obtido em fev/2003 em: www.esaf.fazenda.gov.br/cst/arquivos/Qualidade_de_Soft.pdf PRESSMAN, Roger S. Engenharia de software. 6ª ed. Porto Alegre: Bookman, 2006. GAMMA, Erich. Padrões de projeto: soluções reutilizáveis de software orientado a objetivos. Porto Alegre: Bookman, 2000. SOMMERVILLE, Ian. Engenharia de software. 8ª ed. São Paulo: Pearson Addison-Wesley, 2007. RESENDE, Denis Alcides. Engenharia de software e sistemas de informação. 3ª Ed. Rio de Janeiro: Brasport, 2005. FILHO, Wilson de Pádua Paula. Engenharia de software: fundamentos, métodos e padrões. 3ª ed. Rio de Janeiro: LTC, 2005. FERNANDES, Aguinaldo Aragon. http://www.redepro.rs.gov.br/docs/11177116862Seminario_redepro_palestra_1.pdf (22/07/2010, 17:35h) [SEI2000] Sei, An Overview of Capability Maturity Model Integration (CMMI) – Version 1.0, Tutorial presented at SIMPROS 2000 [23], 2000. [SEI2002a] Sei, Web Site do software Engineering Institute – SEI, http://www.sei.cmu. edu/ (CMMI nodels available at www.sei.cmu.edu/cmmm). [ISO9001:2000] International Standard Organization Certification for IMS Company. [ISO12207:2000] International Standard Organization. ISO/IEC 12207 Amendement: Information Technology – Amendement to ISO/IEC 12207, versão PDAM 3, novembro 2000. 17 Anotações www.cruzeirodosulvirtual.com.br Campus Liberdade Rua Galvão Bueno, 868 CEP 01506-000 São Paulo SP Brasil Tel: (55 11) 3385-3000 http://www.cruzeirodosulvirtual.com.br Qualidade de Software CMM - Capability Maturity Model (Modelo de Maturidade em Capacitação) Material Teórico Responsável pelo Conteúdo: Prof. Ms. Douglas Almendro Revisão Textual: Profa. Ms. Selma Aparecida Cesarin. 5 • Introdução • CMM • Níveis do CMM Estamos em nossos estudos sobre CMM. A ideia principal é mostrar a descrição deste modelo de maturidade e os principais elementos de um processo de desenvolvimento de software. Veremos os estágios de maturidade por que passam as organizações enquanto evoluem no seu ciclo de desenvolvimento de software, por meio de avaliação contínua, identificação de problemas e ações corretivas. Este caminho de melhoria é definido por cinco níveis de maturidade, que estudaremos em nossas aulas. · Nesta Unidade, será explanado o conceito de CMM. Este passo nos levará ao entendimento da certificação dada ao software e que é utilizada no mercado. Então, não perca nenhum detalhe dessa Unidade. CMM - Capability Maturity Model (Modelo de Maturidade em Capacitação) • Chaves do Processo de Produção • Entendendo os níveis de maturidade • Métricas de Qualidade de Software • Sistemas de Gerenciamento de Qualidade 6 Unidade: CMM - Capability Maturity Model (Modelo de Maturidade em Capacitação) Contextualização O CMM fornece às organizações uma orientação sobre como adquirir controle do processo de desenvolvimento de software e como avançar para uma cultura padrão na gestão de software. O objetivo principal é acompanhar, por meio dos níveis de maturidade, a realização de um processo controlado e mensurado que tem como fundamento a melhoria contínua. A cada nível de maturidade corresponde um conjunto de práticas de software e de gestão específicas, denominadas áreas-chave do processo (KPAs – Key Process Areas). Por este estudo, teremos uma boa visão, principalmente sobre como melhor gerir os processos de desenvolvimento de software. 7 Introdução Já temos em mente o que vem a ser qualidade, mas, para reforçarmos o conceito, observe como o dicionário Aurélio define qualidade: “propriedade, atributo ou condição das coisas ou das pessoas capaz de distingui-las das outras e de lhes determinar a natureza” (Aurélio, 1986). Como um atributo de um item, a qualidade se refere àquilo que pode ser medido, ou seja, comparado com padrões conhecidos, tais como tamanho, cor, propriedades elétricas, maleabilidade etc. Entretanto, é mais difícil categorizarmos qualidade em software, que é uma entidade intelectual, do que em objetos físicos. Vamos começar a nossa Unidade explicando a que nos referimos quando falamos de qualidade de software, principalmente no quesito de processos. Mas o que seria processo? Conjunto de atos por que se realiza uma operação qualquer (química, farmacêutica, industrial etc.): um processo de fabricação de nitroglicerina. / Sequência contínua de fatos que apresentam certa unidade, ou que se reproduzem com certa regularidade; andamento, desenvolvimento: o processo de uma crise econômica (Aurélio, 1986). Para a engenharia de software, seria um conjunto de passos de procedimentos parcialmente ordenados, relacionados a artefatos, pessoas, recursos, estruturas organizacionais e restrições, tendo como objetivo produzir e manter o produto de software requisitado. O CMM ajuda a apontar quais são os procedimentos a serem exigidos para que tenhamos excelência na atividade. CMM Vamos falar, agora, sobre o CMM. O CMM surgiu durante a década de 1980, como um modelo para avaliação de risco na contratação de empresas de software pelo Departamento de Defesa dos Estados Unidos, que desejava ser capaz de avaliar os processos de desenvolvimento utilizados pelas empresas que concorriam em licitações como indicação da previsibilidade da qualidade, custos e prazos nos projetos contratados. Para desenvolver esse processo, o DOD constituiu, junto a Carnegie-Mellon University, o SEI (Software Engineering Institute), que, além de ser responsável pela evolução da família CMM, também realiza diversas outras pesquisas em engenharia de software. Observe os dados cronológicos: • 1986 – início do desenvolvimentode um modelo de maturidade de processo, para ajudar as organizações a melhorarem seus processos de software (por solicitação do governo federal); 8 Unidade: CMM - Capability Maturity Model (Modelo de Maturidade em Capacitação) • Junho 1987 – liberação de breve descrição do modelo de maturidade de processo de software; • Setembro 1987 – versão preliminar do questionário de maturidade 1991 – 1ª. versão do CMM (Versão 1.0); • 1993 – depois de 5 anos de experiência, o modelo de maturidade evoluiu para um modelo completamente definido, usando conhecimento adquirido das avaliações de processo de software e de extensivo retorno das indústrias e do governo CMM – Capability Maturity Model for Software (atualmente usada). Premissa básica que está por baixo do trabalho do SEI sobre maturidade de processo é “A qualidade de um software produto é profundamente determinada pela qualidade do processo de desenvolvimento e de manutenção usado para construí-lo”. O SEI desenvolveu um modelo de 5 níveis que orienta uma organização em como “amadurecer” seus processos de software. O modelo descreve um caminho evolucionário, que vai de um processo indisciplinado para um processo disciplinado. Sem a disciplina descrita no modelo, programas de melhoria podem mostrar-se ineficientes porque os fundamentos necessários para apoiar os melhoramentos sucessivos não foram estabelecidos. Os 5 níveis de maturidade descrevem fundamentos sucessivos para melhoria contínua do processo e definem uma escala ordinal para medir a maturidade de processo de uma organização. As vantagens dos níveis de maturidade é que eles fornecem prioridades claras, que orientam a seleção de algumas atividades de melhoramento que serão muito úteis, se implementadas imediatamente. Isso é importante porque a maioria das organizações podem focalizar somente algumas poucas atividades de melhoramento de cada vez. 9 Níveis do CMM O CMM fornece às organizações orientação sobre como ganhar controle do processo de desenvolvimento de software e como evoluir para uma cultura de excelência na gestão de software. O objetivo principal nas transições desses níveis de maturidade é a realização de um processo controlado e mensurado como a fundação para melhoria contínua. Cada nível de maturidade possui um conjunto de práticas de software e gestão específicas, denominadas áreas-chave do processo. Estas devem ser implantadas para a organização atingir o nível de maturidade em questão. O nível de maturidade é um estágio evolutivo bem definido, em busca de um processo de software maduro. Cada nível de maturidade fornece uma gama de fundamentos para a melhoria contínua do processo e um conjunto de práticas de software e gestão específicas, denominado áreas-chave do processo, que devem ser implantadas para a organização atingir o nível de maturidade em questão. Cada nível compreende um conjunto de objetivos de processos que, quando satisfeitos, estabilizam um componente importante do processo de software. Alcançando cada nível da estrutura de maturidade, estabelecem-se diferentes componentes no processo, resultando em um crescimento na capacidade processual da organização. A maturidade do processo de software é a extensão para a qual um processo específico é explicitamente definido, gerenciado, medido, controlado e efetivado. A maturidade representa o potencial de crescimento e indica a riqueza do processo de software da organização e a consistência com que o mesmo é aplicado em todos os seus projetos. Em uma organização madura, o processo de software é bem compreendido – o que geralmente é feito por meio de documentação e treinamento – e está sendo continuamente monitorado e melhorado pelos seus usuários. A atividade de um processo de software maduro é conhecida e implica que a produtividade e a qualidade resultantes do processo possam ser continuamente melhoradas por meio de ganhos consistentes na disciplina alcançada com a sua utilização. Quando uma organização obtém ganhos na maturidade de um processo de software, ela o institucionaliza por meio de políticas, padrões e estruturas organizacionais. A institucionalização exige a construção de uma infraestrutura e de uma cultura corporativa que possa dar suporte aos métodos, práticas e procedimentos de negócio, que perdurem após possíveis afastamentos daqueles que originalmente os definiram. Vamos ver o que possuem os níveis de maturidade do CMM. Nível 1: Inicial No nível 1 de maturidade, os processos normalmente são ad hoc e a organização geralmente não dispõe de ambiente estável. O sucesso nestas organizações depende da competência e do heroísmo dos funcionários e não do uso de processos estruturados. Devido ao imediatismo, um ambiente caótico, o nível 1 de maturidade raramente produz um produto ou serviço que funcione. Assim, frequentemente, eles excedem o orçamento e o prazo em seus projetos. 10 Unidade: CMM - Capability Maturity Model (Modelo de Maturidade em Capacitação) Nível 2: Repetível No nível 2 de maturidade, o desenvolvimento do software é repetido. O processo pode não se repetir para todos os projetos da organização, que pode usar ferramentas de Gerência de Projetos para mapear os custos e o prazo do projeto. A adoção de um processo de desenvolvimento ajuda a garantir que práticas existentes são utilizadas em momentos de stress. Quando estas práticas são adotadas, os projetos decorrem e são gerenciados de acordo com o planejamento inicial. O status do projeto e os serviços entregues são visíveis ao gerenciamento (por exemplo: é possível a visualização de marcos do projeto e o término da maioria das tarefas). Técnicas de gerenciamento de projetos são estabelecidas para mapear custos, prazos e funcionalidades. Um mínimo de disciplina nos processos é estabelecido para que se possa repetir sucessos anteriores em projetos com escopo e aplicação similar. Ainda há um risco significante de exceder os custos e estimativas de prazo de desenvolvimento. Nível 3: Definido A organização possui um conjunto de processos padrão, que são a base do nível 3 e estão estabelecidos e melhorados periodicamente. Estes processos padrão são usados para estabelecer uma consistência dentro da organização e os projetos estabelecem seus processos definidos pelo conjunto de padrões processuais da organização. O gerenciamento da organização estabelece os objetivos dos processos, baseado no conjunto de padrões pré-definidos e garante que estes objetivos sejam encaminhados de forma apropriada. Uma crítica distinção entre os níveis 2 e 3 é o escopo dos padrões, descrição dos processos e procedimentos. No nível 2, os padrões, descrições de processos e procedimentos podem ser bem diferentes em cada instância específica do processo (por exemplo, em um projeto particular). No nível 3, os padrões, descrições de processo e procedimentos para o projeto são guiados pelo conjunto padrão de processos da organização. Nível 4: Gerenciado Utilizando métricas precisas, o gerenciamento pode efetivamente controlar os esforços para desenvolvimento de software. Em particular, o gerenciamento pode identificar caminhos para ajustar e adaptar o processo para projetos particulares, sem perda de métricas de qualidade ou desvios das especificações. Organizações neste nível conseguem metas quantitativas para o processo de desenvolvimento de software e de manutenção. 11 Nível 5: Otimizado O nível de maturidade 5 foca no contínuo aumento do desempenho dos processos por meio de melhorias de inovação tecnológica e incremental. Objetivos de melhoria quantitativa dos processos para a organização são estabelecidos, continuamente revisados, refletindo os objetivos da organização e usando critérios de gerência de processos. Os efeitos da melhoria da revisão dos processos são medidos e acompanhados, utilizando-se processos de melhoria de qualidade. Ambos – os processo definidos e o conjunto de processos padrão da organização – são alvos de melhoriade métricas. Chaves do Processo de Produção Cada nível, com exceção do primeiro, é composto por áreas chave de processo. Essas áreas são formadas por sessões, chamadas áreas comuns. As áreas comuns especificam as práticas chave necessárias para se alcançar a principal meta da área chave do processo, que são uma descrição do caminho que uma organização deve tomar para se tornar madura. Este caminho foi baseado em anos de experiência, tanto no processo de produção, quanto no gerenciamento do processo. As áreas chaves de processo do nível repetível são definidas como : » Gerenciamento de requisitos: Os requisitos do sistema são controlados de forma a estabelecer um perfil mínimo a ser utilizado pela engenharia de software e pela administração. Os planos, produtos e atividades do software são sempre consistentes com os requisitos de sistema; » Planejamento do Projeto: Estimativas relativas ao software são documentadas para uso no planejamento e acompanhamento do projeto do software. As atividades de projeto de software e compromissos assumidos são planejadas e documentadas; » Visão geral e acompanhamento do projeto: Resultados reais são acompanhados de acordo com o planejamento do software. Quando os resultados apresentam um significativo desvio do planejamento do software, são tomadas ações corretivas, que são acompanhadas até o final do projeto. Mudanças nos compromissos assumidos são feitas em comum acordo com os grupos e indivíduos afetados; » Gerenciamento de subcontratados: O contratante seleciona subcontratos qualificados. Ele os subcontratados estão de acordo no que diz respeito aos compromissos assumidos um com o outro e mantém uma comunicação constante. O contratante acompanha os resultados reais do subcontratado, de acordo com os compromissos assumidos; 12 Unidade: CMM - Capability Maturity Model (Modelo de Maturidade em Capacitação) » Garantia da qualidade do software: As atividades de garantia de qualidade de software são planejadas. A conformidade dos produtos de software e atividades com os padrões, procedimentos e requisitos é verificada objetivamente. Os grupos e indivíduos afetados são informados das atividades de garantia de qualidade de software e de seus resultados. Questões relacionadas a não conformidade que não são resolvidas dentro do projeto de software são encaminhadas à gerência geral; » Gerenciamento de configuração: As atividades de gerenciamento de configuração são planejadas. Os produtos de trabalho de software são identificados, controlados e estão disponíveis. Mudanças nos produtos de trabalho identificados são controlados. Os grupos e pessoas afetadas são informados da situação atual e projetada dos produtos de trabalho de software. As áreas chaves de processo do nível definido são definidas como: » Foco do processo organizacional: São coordenadas atividades de desenvolvimento e melhoramento do processo de software em toda a organização. Os pontos fortes e fracos do processo de desenvolvimento de software utilizado são identificados, de acordo com um padrão de processo. São planejadas atividades de desenvolvimento e melhoramento do processo em nível de organização; » Definição do processo organizacional: O processo padrão de desenvolvimento de software da organização é desenvolvido e mantido. A informação relacionada ao uso do processo padrão de desenvolvimento de software é coletada, revisada e disponibilizada; » Programa de treinamento: As atividades de treinamento são planejadas. » É fornecido treinamento para o desenvolvimento de habilidades e conhecimentos necessários para realizar o gerenciamento do software e as funções técnicas, tanto para o grupo de engenharia de software, quanto para outros relacionados ao desenvolvimento; » Gerenciamento de software integrado: O processo de software definido para o projeto é uma versão adaptada do processo padrão de desenvolvimento de software da organização. O projeto é planejado e gerenciado de acordo com este padrão; » Engenharia de produto de software: As atividades de engenharia de software são definidas, integradas e consistentemente realizadas para produzir o software; » Coordenação intergrupos: Os grupos de engenharia identificam, acompanham e resolvem todas as questões intergrupos. Todos os grupos de trabalho afetados concordam com os requisitos do cliente e com os acordos entre os grupos de engenharia; » Revisão conjunta: Atividades de revisão conjunta são planejadas. Defeitos nos produtos de trabalho são identificados e removidos. As áreas chave de processo do nível gerenciado são definidas como: » Gerenciamento quantitativo dos processos: As atividades de gerenciamento quantitativo dos processos são planejadas. O desempenho do processo de desenvolvimento de software definido é controlada quantitativamente. A capacidade do processo de desenvolvimento de software padrão da organização é conhecida em termos quantitativos; 13 » Gerenciamento da qualidade de software: As atividades de gerenciamento da qualidade de software do projeto são planejadas. Objetivos mensuráveis da qualidade do produto de software e suas prioridades são definidos. » O progresso real em direção à realização dos objetivos de qualidade para os produtos de software é quantificado e gerenciado. As áreas chave de processo do nível otimizado são definidas como: » Prevenção de defeitos: As atividades de prevenção de defeitos são planejadas. As causas comuns de defeitos são procuradas, identificadas e sistematicamente eliminadas; » Gerenciamento de mudanças tecnológicas: A incorporação de mudanças tecnológicas é planejada. Novas tecnologias são avaliadas para determinar seu efeito na qualidade e na produtividade e as adequadas são incorporadas na prática normal de toda a organização; » Gerenciamento de mudanças no processo: O melhoramento contínuo do processo é planejado. Toda a organização participa das atividades de melhoramento do processo de software. O padrão de processo de software da organização e os processos de software de cada projeto definido são melhorados continuamente. Entendendo os níveis de maturidade O CMM é um modelo descritivo, no sentido de descrever atributos essenciais (ou chave) que seriam esperados para caracterizar uma organização em um nível particular de maturidade. É um modelo normativo, no sentido de que as práticas detalhadas caracterizam os tipos normais de comportamento que seriam esperados em uma organização que desenvolve projetos em larga escala num contexto de contratação governamental. A intenção é que o CMM tenha um nível suficiente de abstração que não restrinja desnecessariamente a maneira que o processo de software é implementado pela organização; ele simplesmente descreve o que normalmente seria esperado dos atributos essenciais do processo de software. Em qualquer contexto em que o CMM for aplicado, deveria ser utilizada uma interpretação razoável das práticas. O CMM deve ser interpretado apropriadamente, utilizando-se o conhecimento de peritos quando o ambiente comercial da organização difere significativamente de uma grande organização fornecedora. O CMM não é prescritivo; ele não diz à organização como melhorar. O CMM descreve a organização em cada nível de maturidade sem prescrever os meios específicos para consegui-lo. Pode levar vários anos para se passar do Nível 1 para o Nível 2; a movimentação entre os outros níveis geralmente levará cerca de dois anos. 14 Unidade: CMM - Capability Maturity Model (Modelo de Maturidade em Capacitação) A melhoria de processo de software ocorre dentro do contexto dos planos estratégicos e dos objetivos de negócio da organização, da sua estrutura organizacional, das tecnologias em uso, da sua cultura social e sistema de gestão. O CMM está voltado para os aspectos de processo da Gestão da Qualidade Total; a melhoria de processo bem sucedida implica que os aspectos fora do escopo de processo de software também sejam encaminhados (porexemplo: as questões pessoais envolvidas nas mudanças da cultura organizacional que possibilitem a implementação e a institucionalização das melhorias de processo). O que o CMM não cobre O CMM não é uma bala de prata [BROOKS, 1987] e não trata todos os assuntos que são importantes para o sucesso dos projetos. Por exemplo, o CMM não indica peritos em domínios específicos de aplicações, não defende tecnologias específicas de software, nem sugere como selecionar, contratar, motivar e reter pessoas competentes. Apesar de esses assuntos serem cruciais para o sucesso do projeto, alguns deles têm sido analisados em outros contextos [CURTIS, 1990]. Entretanto, eles não têm sido integrados ao CMM. O CMM foi especificamente desenvolvido para prover uma estrutura ordenada e disciplinada dentro da qual possa se encaminhar assuntos de processo de gestão e desenvolvimento de software. Métricas de Qualidade de Software Um elemento chave de qualquer processo de engenharia é a medição. Nós usamos medidas para melhor entendermos os atributos dos modelos que criamos e, o mais importante, é que nós usamos medidas para avaliarmos a qualidade dos produtos de engenharia ou sistemas que nós construímos. Ao contrário de outras engenharias, a engenharia de software não é baseada em leis quantitativas básicas, medidas absolutas não são comuns no mundo do software. Ao invés disso, nós tentamos derivar um conjunto de medidas indiretas que levam a métricas que fornecem uma indicação de qualidade de alguma representação do software. Embora as métricas para software não sejam absolutas, elas fornecem uma maneira de avaliar qualidade por meio de um conjunto de regras definidas. Garantia de qualidade de software (SQA) Um dos desafios críticos para qualquer programa de qualidade é tornar possível que qualquer pessoa possa fazer revisões no trabalho de pessoas experientes. 15 Gerentes querem os melhores projetistas para projetar o produto, então, em geral, SQA não pode tê-los. A necessidade é concentrar esforços em métodos de SQA que permitam que o desenvolvimento possa ser revisado por pessoas que não são desenvolvedores. O papel de SQA é monitorar os métodos e os padrões que os engenheiros de software usam e verificar se eles estão usando apropriadamente seus conhecimentos. Pessoas podem ser experientes em SQA sem, no entanto, serem experientes em projeto de software. Atividades de garantia de qualidade de Software Em SQA, temos uma variedade de tarefas, que podem se dividir em dois grandes grupos: os engenheiros de software, que fazem o trabalho técnico, e o grupo de SQA, que tem responsabilidades no plano de qualidade, na inspeção, na conservação de registros históricos, na análise e no reporting das atividades de SQA para o gerente do projeto. Os engenheiros de software buscam qualidade de software, aplicando sólidos métodos e medidas, conduzindo revisões técnicas formais e realizando testes de software bem planejados. O papel do grupo de SQA é ajudar o time de engenharia de software a alcançar um produto de alta qualidade. O Instituto de Engenharia de Software (SEI) recomenda as seguintes atividades a serem realizadas por um grupo de SQA: » Preparar um plano de SQA para o projeto. O plano é desenvolvido durante o planejamento do projeto e é revisado por todas as partes interessadas; » Participar do desenvolvimento da descrição do processo do projeto do software. O time de engenharia de software seleciona um processo para o trabalho a ser realizado. O grupo de SQA revisa a descrição do processo, verificando se ele está de acordo com a política organizacional, os padrões internos para o software, os padrões impostos externamente e outras partes do plano de projeto de software; » Revisar as atividades dos engenheiros de software para verificar se o processo de software definido está sendo seguido. O grupo de SQA identifica, documenta e trilha os desvios do processo e verifica quais correções devem ser realizadas; » Garantir que os desvios no trabalho do software e nos produtos do trabalho são documentados e mantidos de acordo com o procedimento documentado; » Registrar qualquer discordância e reportar para o gerente. Além dessas atividades, o grupo de SQA coordena o controle e o gerenciamento de mudanças e ajuda a coletar e analisar métricas de software. 16 Unidade: CMM - Capability Maturity Model (Modelo de Maturidade em Capacitação) Sistemas de Gerenciamento de Qualidade Personal Software Process (PSP) O estímulo original para desenvolver o PSP surgiu de questões sobre o Capability Maturity Model (CMM). Muitos viam o CMM como projetado para grandes organizações e não entendiam como ele poderia ser aplicado a trabalhos individuais e em times pequenos de projeto. Apesar do CMM poder ser aplicado para ambas, pequenas e grandes organizações, uma orientação mais específica se tornava claramente necessária. Após alguns anos de pesquisa, 12 das 18 áreas chave de processo do CMM foram adaptadas para o trabalho de engenheiros de software individuais. O principal objetivo do PSP é fazer com que os engenheiros de software fiquem atentos no processo que eles usam para fazer seus trabalhos e estejam sempre verificando suas performances no processo. Engenheiros de software são treinados individualmente para um conjunto de objetivos pessoais, definindo os métodos a serem usados, medindo seus trabalhos, analisando os resultados, e ajustando os métodos para atingir seus objetivos. O PSP é uma estratégia para o desenvolvimento pessoal com o objetivo de aumento de produtividade. Trabalhos experimentais foram iniciados em algumas corporações para verificar como engenheiros experientes poderiam reagir ao PSP e explorar a introdução de seus métodos. Foi verificado que os engenheiros de software geralmente são atraídos pela estratégia do PSP e encontram métodos que ajudam em seus trabalhos. Nas palavras de um engenheiro: “Isto não é para a empresa, é para mim”. O leitor interessado pode obter informações adicionais em [SEI] . O PSP aplica princípios de processo para o trabalho do engenheiro de software por: » Fornecer um padrão de processo pessoal definido; » Introduzir uma família de medidas de processo; » Usar essas medidas para trilhar e avaliar o desempenho; » Se esforçar para obter critérios de qualidade e melhorar os objetivos. Usando o PSP, engenheiros: » Desenvolvem um plano para todo o projeto; » Registram seu tempo de desenvolvimento; » Trilham seus defeitos; » Mantêm dados de um projeto em relatórios resumidos; » Usam esses dados para planos de projetos futuros; » Analisam dados que envolvem seus processos a fim de aumentar suas performances. 17 Visão crítica sobre controle de qualidade de software O grande problema no controle de qualidade de software é ainda a falta de consciência de muitas empresas e profissionais que lidam com sistemas complexos em adotarem uma política de qualidade nos trabalhos a serem desenvolvidos. Como prova disso, uma pesquisa realizada em 1995 pelo Subprograma Setorial da Qualidade e Produtividade em Software (SSQP/SW), no qual foi indicado que [CESAR97]: » Apenas 38,9% das empresas incluem sistematicamente metas ou diretrizes para qualidade em seus planos; » 25,1% delas coletam sistematicamente indicadores de qualidade de seus produtos e serviços; » Apenas 11,5% têm um programa de qualidade total implantado; » A grande maioria (85,9%) não conhece o modelo CMM; » 66,6% não adota nenhum procedimento específico de garantia da qualidade do produto de software; » A avaliação de desempenho dos funcionários é feita periodicamente em apenas 16,4% das empresas; 54,1% delas disseram fazê-la informalmente. O importante não é o modelo a ser seguido. Quando o objetivo é otimizar a qualidade do software, deve-se ter cuidado, porém, em definir certos limites para os resultados a serem alcançados. A criação de software com qualidade requer um esforço tanto no nível financeiro quantono nível de conscientização das pessoas envolvidas no processo, sem, no entanto, sairmos da órbita em que o cliente é o termômetro da qualidade de um determinado produto. Mesmo se o produto (software) alcançar grande parte dos requisitos de qualidade, mas ultrapassar uma data que seja de vital importância para o cliente, o produto não terá qualquer serventia e, por isso, deve-se ter compromisso com prazos e outras coisas mais e, em certos casos, é desejável restringir o escopo da qualidade (partindo do máximo da qualidade para uma qualidade muito boa) a ser atingida, a fim de satisfazer as necessidades do cliente. Esta é uma visão realística de encarar a qualidade de software nos sistemas a serem desenvolvidos. 18 Unidade: CMM - Capability Maturity Model (Modelo de Maturidade em Capacitação) Material Complementar Para aprofundar seus estudos sobre CMM, consulte os sites e as seguintes referências: 9 http://www.cin.ufpe.br/~in953/olds/relatorios/fabrica1.pdf 9 http://www.spinsp.org.br/ 9 http://ibpi.org/standard/isoiec-15504/ GAMMA, Erich. Padrões de projeto: soluções reutilizáveis de software orientado a objetivos. Porto Alegre: Bookman, 2000. SOMMERVILLE, Ian. Engenharia de software. 8.ed. São Paulo: Pearson Addison- Wesley, 2007. http://www.cin.ufpe.br/~in953/olds/relatorios/fabrica1.pdf http://www.spinsp.org.br/ http://ibpi.org/standard/isoiec-15504/ 19 Referências FERNANDES, Aguinaldo Aragon. http://www.redepro.rs.gov.br/docs/11177116862Seminario_ redepro_palestra_1.pdf. Acesso em: 22 jul. 2010. GAMMA, Erich. Padrões de projeto: soluções reutilizáveis de software orientado a objetivos. Porto Alegre: Bookman, 2000. GOMES, Nelma S. Qualidade de Software - Uma Necessidade. Artigo obtido em fev. 2003 em: www.esaf.fazenda.gov.br/cst/arquivos/Qualidade_de_Soft.pdf. MCCALL J.; RICHARDS P.; WALTERS, G. Factors in Software Quality (3 vols.), NTIS AD- AO49-014, 015, 055, Nov. 1977. PAULA FILHO, Wilson de Pádua. Engenharia de software: fundamentos, métodos e padrões. 3.ed. Rio de Janeiro: LTC, 2005. PRESSMAN, Roger S. Engenharia de software. 6.ed. Porto Alegre: Bookman, 2006. _______. Software Engineering, A Practicioners Approach, McGraw-Hill. RAKITIN, Steven R. Software Verification and Validation: a Practitioner’s Guide. Artech House, 1997. RESENDE, Denis Alcides. Engenharia de software e sistemas de informação. 3.ed. Rio de Janeiro: Brasport, 2005. SOMMERVILLE, Ian. Engenharia de software. 8.ed. São Paulo: Pearson Addison-Wesley, 2007. [SEI2000] Sei, An Overview of Capability Maturity Model Integration (CMMI) – Version 1.0, Tutorial presented at SIMPROS 2000 [23], 2000. [SEI2002a] Sei, Web Site do software Engineering Institute – SEI, http://www.sei.cmu. edu/ (CMMI Models available at www.sei.cmu.edu/cmmm). [ISO9001:2000] International Standard Organization Certification for IMS Company. [ISO12207:2000] International Standard Organization. ISO/IEC 12207 Amendement: Information Technology – Amendement to ISO/IEC 12207, versão PDAM 3, novembro 2000. http://www.redepro.rs.gov.br/docs/11177116862Seminario_redepro_palestra_1.pdf http://www.redepro.rs.gov.br/docs/11177116862Seminario_redepro_palestra_1.pdf www.esaf.fazenda.gov.br/cst/arquivos/Qualidade_de_Soft.pdf http://www.sei.cmu.edu/ http://www.sei.cmu.edu/ www.sei.cmu.edu/cmmm 20 Unidade: CMM - Capability Maturity Model (Modelo de Maturidade em Capacitação) Anotações www.cruzeirodosulvirtual.com.br Campus Liberdade Rua Galvão Bueno, 868 CEP 01506-000 São Paulo SP Brasil Tel: (55 11) 3385-3000 http://www.cruzeirodosulvirtual.com.br Qualidade de Software Capability Maturity Model – Integration (CMMI) (Modelo de Maturidade em Capacitação – Integração) Material Teórico Responsável pelo Conteúdo: Prof. Ms. Douglas Almendro Revisão Textual: Prof. Ms. Luciano Vieira Francisco 5 • Introdução • CMMI-DEV • A representação contínua • Áreas de processo A ideia principal é mostrar a descrição desse modelo de maturidade de integração. Nesta Unidade você verá os estágios de maturidade pelos quais passam as organizações enquanto evoluem em seus ciclos de desenvolvimento de software, através de avaliação contínua, identificação de problemas e ações corretivas. Este caminho de melhoria é definido por níveis de maturidade, que estudaremos em nossas aulas. Nesta Unidade será explanado o conceito de CMMI, passo que lhe levará ao entendimento da certificação dadas aos softwares e que é utilizada no mercado, então fique atento(a) a todos os detalhes desta Unidade. A mesma atenção vale aos exemplos e às atividades propostas, bem como aos respectivos prazos de entrega. Capability Maturity Model – Integration (CMMI) (Modelo de Maturidade em Capacitação – Integração) 6 Unidade: Capability Maturity Model – Integration (CMMI) (Modelo de Maturidade em Capacitação – Integração) Contextualização Os processos e o desenvolvimento de soluções com engenharia de software são o foco do CMMI. Dada sua estrutura e abrangência, pode-se até dizer que o CMMI “poderia” ser utilizado para outros negócios que não “software”. Ou seja, inúmeras de suas práticas podem ser empregadas em projetos de construção civil, administração, marketing e diversos outros. O CMMI colabora na organização e aprimoramento de processos, tornando-os mais maduros e eficientes. Os modelos de capacidade e maturidade atingidos em seus níveis ajudam a prever o comportamento de determinado processo diante do cenário ao qual o projeto se encontra. Em resumo, torna-se possível saber se o projeto vai ou não dar certo. 7 Introdução Há anos se tornou vital fazer software com qualidade em um curto prazo de tempo. Com isso empresas adotam medidas voltando-se para a redução de custos, qualidade e diminuição de defeitos do produto final, satisfação dos envolvidos da equipe, usuários e clientes. Essas medidas utilizadas têm como principal objetivo diminuir os riscos e os possíveis fracassos de um projeto. O modelo Capatibility Maturity Model – Integration (CMMI), em português Modelo de Maturidade em Capacitação – Integração, criado pelo Software Enginering Institute (SEI), em português Instituto de Engenharia de Software, como inúmeros outros modelos utilizados, é uma forte ferramenta para o planejamento e gerenciamento de aquisições, desenvolvimento, manutenção e suporte do produto. Esse modelo tem como missão auxiliar empresas e organizações na prestação de serviços, aquisições e, principalmente, no desenvolvimento de produtos, visando a melhoria de seus processos internos, considerando desde os processos que são extremamente imprevisíveis e futuramente podem acarretar no fracasso do projeto, e modificando-os para que se tornem processos bem estabelecidos e seguros, garantindo assim o sucesso do projeto. Ao longo do tempo foram realizados ajustes no modelo CMMI. Em 27 de outubro de 2010 foi lançada a versão atual do CMMI (versão 1.3), que possui três modelos: » CMMI para Desenvolvimento (CMMI-DEV); » CMMI para Aquisição (CMMI-ACQ); » CMMI para Serviços (CMMI-SVC). CMMI-DEV O CMMI para desenvolvimento tem a missão de melhorar processos que são destinados à elaboração de produtos e serviços. É composto pelas melhores práticas de desenvolvimento e manutenção do produto final. O modelo CMMI-DEV possui características de Engenharia de Sistemas, Engenharia de Software, Gestão de Projetos, entre outras áreas, além disso, é amplamente utilizado nos setores bancários, hardware de computadores, softwares e indústria automobilística, para citar alguns exemplos. CMMI-ACQ Neste modelo de CMMI para aquisição o enfoque esta em atividades correlacionadas à prestação de serviços conjuntamente à aquisição de desenvolvimento de produtos. Este modelo contém práticas de Gestão de Projetos, Gestão de Processos e Engenharia de Aquisição, onde é utilizado na aquisição e gestão de fornecedores. 8 Unidade: Capability Maturity Model – Integration (CMMI) (Modelo de Maturidade em Capacitação – Integração)Empresas dos setores aeroespacial, software, defesa, entre outras são o público-alvo desse tipo de modelo. CMMI-SVC Este modelo é aplicado em atividades de gestão e também prestação de serviços. Nesse estão contidas práticas de Gestão de Serviços, Gestão de Projetos, entre outras áreas. Organizações relacionadas à educação, saúde, hotelaria e telecomunicações são as principais usuárias desse modelo. O CMMI é uma evolução de diversos outros modelos, comumente explicado em dois tipos de representações: » A primeira é a representação contínua, a qual é similar à norma onde se define o processo de desenvolvimento de software chamada ISO/IEC 15504, onde é separada por níveis de capacidade para cada processo. O modelo CMMI não foi criado a partir da norma ISO/IEC 15504, porém, são dados como modelos compatíveis; » A segunda é a representação por estágios, onde se define um caminho para o aperfeiçoamento da organização, dividida em áreas e descrita em cinco diferentes níveis de maturidade. Na representação contínua a empresa tem a liberdade de escolha para aplicar os processos de acordo com suas necessidades e os objetivos que pretende alcançar, possibilitando processos com diferentes níveis. É adequado usar a representação contínua quando a empresa quer converter apenas alguns processos, tornando-os mais maduros. Essa representação é dividida em seis níveis, os quais são chamados de incompleto; realizado (ou executado); gerenciado; definido; gerenciado quantitativamente; otimizado. A representação contínua Fonte: Falbo (2008). Figura 1 – Níveis da representação contínua. 9 Especificando-os, temos: » Nível 0: Incompleto – esse nível retrata um processo que comumente não é executado, ou é executado parcialmente; » Nível 1: Realizado (ou executado) – o processo deve ser executado com o objetivo de completar as tarefas necessárias para a execução de um processo; » Nível 2: Gerenciado – é o planejamento da execução dos processos, onde a equipe do projeto faz a comparação do que foi planejado com o que foi efetivamente executado; » Nível 3: Definido – é construído tomando a direção do processo que já existe, porém é sustentada uma descrição do processo; » Nível 4: Gerenciado quantitativamente – o processo é gerenciado quantitativamente por estudos estatísticos; » Nível 5: Otimizado – este nível é adaptado para que as necessidades da organização sejam plenamente supridas através da alteração e adaptação do processo gerenciado quantitativamente. A representação por Estágios Nesta representação a sequência é predeterminada e deve ser seguida rigorosamente, pois cada estágio depende diretamente do anterior. Divida em cinco níveis de maturidade, pode ser assim esquematizada: Nível 1 – inicial: O nível inicial pode ser facilmente considerado como um estágio caótico e talvez o mais complexo do projeto, onde os processos são mal definidos e os funcionários acabam dedicando mais tempo na correção das atividades realizadas. Nessa fase inicial é necessário que os profissionais se empenhem e deem o máximo de si, pois o que salvará o projeto e dará um empurrão inicial será a união dos esforços individuais. Figura 2 – Níveis da representação por estágios. Fonte: O QUE É CMMI? ([20--]). 10 Unidade: Capability Maturity Model – Integration (CMMI) (Modelo de Maturidade em Capacitação – Integração) Essa fase cobra redobrada atenção às possíveis situações: » Deficiências no planejamento; » Cronogramas impossíveis de cumprimento; » Documentação pouco confiável; » Ausência de controle de requisitos e avaliação do cliente. O processo de software é tratado como uma caixa preta, pois nesse momento apenas é possível visualizar as entradas e os produtos finais, de modo que todo o trâmite nesse ínterim fica impossibilitado de ser visualizado. Nível 2 – Gerenciado: Nesta etapa são discutidos e estabelecidos os processos básicos do gerenciamento do projeto, como planejamento de custos, aquisições e prazos. Na maioria dos casos a organização é disciplinada, porém, por certas resistências pode ocorrer resistência para a implantação de mudanças. Em inúmeros casos usar projetos que obtiveram sucesso no passado é uma grande ideia, levando ao bom encaminhamento e término seguro do projeto. O processo é visto como diversas caixas pretas interligadas, possibilitando a visualização em alguns pontos. Esses pontos são chamados de marcos do projeto. O avanço do projeto é controlado mediante a evolução dos requisitos. A cada marco realizado são aplicadas avaliações onde o progresso e a construção do software são notados e ponderados. Nível 3 – Definido: Todas as atividades de um processo padrão de software (ligadas a gerenciamento ou engenharia de software) passam pelas etapas de documentação, padronização e integração. No desenvolvimento e na manutenção do software são utilizadas versões aprovadas ou adaptadas desses processos, onde são enquadradas para os requerimentos e características do projeto em desenvolvimento. Figura 3 – Processo de software segundo o nível 1. Fonte: Falbo (2008). Figura 4 – Processo de software segundo o nível 2. Fonte: Falbo (2008). 11 Nesta etapa as funções de cada envolvido no projeto estão bem definidas e claras. Com isso, a organização utilizará processos estabelecidos e padronizados. Assim, a porcentagem de sucesso do projeto é aumentada significativamente e os riscos diminuem, pois a saída de um membro da equipe, por exemplo, pode ser facilmente suprida, dado que existem planos de riscos definidos e o impacto de qualquer imprevisto ocorrido se torna mínimo. Nível 4 – Gerenciado quantitativamente (removido da versão 1.3): Nesta fase são realizados relatórios estatísticos onde são visualizados os detalhes das métricas utilizadas no processo de software. A partir disso são estudados tanto o processo como o produto de software, onde são quantitativamente avaliados e controlados. A qualidade é realizada por um grupo que é apenas alocado para esse tipo de tarefa, onde rotineiramente analisam a qualidade e aprimoram o software. Nível 6 – Otimização (removido da versão 1.3): O contínuo aperfeiçoamento do processo é estabelecido através de sua avaliação quantitativa e também pela implantação de tecnologias e ideias inovadoras. Nesta etapa os processos estão bem definidos e a compreensão sobre esses ultrapassa os processos praticados, tornando facilmente compreensíveis os efeitos causados em qualquer possível alteração. Além disso, as tecnologias e melhorias são implantadas como parte de rotinas diárias. Figura 5 – Processo de software segundo o nível 3. Fonte: Falbo (2008). Figura 6 – Processo de software segundo o nível 4. Fonte: Falbo (2008). Figura 7 – Processo de software segundo o nível 5. Fonte: Falbo (2008). 12 Unidade: Capability Maturity Model – Integration (CMMI) (Modelo de Maturidade em Capacitação – Integração) Nesse tipo de representação a maturidade organizacional é medida pelo conjunto inteiro de seus processos. Assim, a empresa necessita que todos seus processos sejam classificados como nível 2 para que a instituição seja certificada como uma empresa nível 2. Com isso, pode-se supor que uma empresa possui 22 processos, onde 21 são classificados como nível 4 e o processo restante é classificado como nível 3. Com tal cenário essa empresa não poderá ser certificada como nível 4 de maturidade, pois só poderá ser classificada como tal se todos os seus processos atingirem o nível 4. A utilização do modelo por estágio é realizada quando a empresa já faz uso de algum outro modelo de maturidade por estágios. Instituições empresariais fazem uso desse tipo de representação quando têm a pretensão de alcançar certo nível de maturidade para poderem ser comparadas com outras empresas do ramo, ou quando pretendem trazer a experiência e o nível de conhecimento ganhos por outras empresas, para então utilizar em suas áreas de aplicação. Áreas de processo O modelo CMMI versão 1.2 (CMMI-DEV)contém 22 áreas de processo. Em sua representação por estágios, as áreas são divididas da seguinte forma: Nível 1 – Inicial: Não possui áreas de processo. Nível 2 – Gerenciado: » Gerenciamento de requisitos – processo onde são identificadas inconsistências dos requisitos e dos produtos de trabalho, onde deve-se realizar a gestão desses; » Planejamento de projeto – criar e concretizar planos específicos para aplicação nos projetos; » Acompanhamento e controle de projeto – para o gerenciamento eficaz é preciso providenciar informações suficientes; » Gerenciamento de acordo com fornecedores – fase onde são realizadas negociações de acordos de produtos, fornecedores e também toda a gestão das aquisições; » Medição de análise – são realizadas medições e, a partir dessas, são executados estudos para a verificação de desvios ou variações fora do planejamento; » Garantia da qualidade de processo e produto – processo onde é realizada a verificação da garantia do projeto, visando garantir se o produto possui os requisitos e qualidade desejados; » Gerência de configuração – processo onde é mantida a integridade dos produtos do projeto. 13 Nível 3 – Definido: » Desenvolvimento de requisitos – fase onde é realizada a análise e o desenvolvimento dos requisitos para a composição do produto; » Solução técnica – processo onde é desenvolvido e implementado o conjunto de soluções para os requisitos apontados; » Integração de produto – para garantir a entrega do produto, nesta etapa é realizada a junção de componentes, funções, módulos e outros produtos; » Verificação – processo onde é avaliado se o desenvolvimento do produto é realizado corretamente; » Validação – realização da demonstração do produto no ambiente definido, demonstrando se esse possui todas as especificações e requisitos definidos; » Foco de processo organizacional – realização de estudo para a verificação das deficiências que os processos e a organização possuem, seguido de um planejamento e implantação de melhorias baseadas no estudo elaborado; » Definição de processo organizacional – estabelecimento dos padrões da organização; » Treinamento organizacional – para a melhor realização de suas funções, os envolvidos do projeto devem estar cientes e bem treinados sobre suas funções. Para tanto, são ministrados cursos, palestras e reuniões para que os funcionários possam adquirir conhecimento e realizar de forma eficaz suas tarefas e atividades; » Gerenciamento integrado de projeto – onde é trabalhada a comunicação entre as equipes envolvidas no projeto; » Gerenciamento de riscos – nesse processo são antecipadamente gerenciados os riscos que podem vir a acontecer, funcionando como um plano B ou uma válvula de escape; » Análise de decisão e resolução – a tomada de decisões é um fato importante no projeto. Nesse processo são realizados os critérios que se devem seguir para uma tomada de decisão. Nível 4 – Quantitativamente gerenciado: » Desempenho de processo organizacional – esse processo possui a função de estabelecer linhas de base e os modelos para a gestão quantitativa, além de garantir um entendimento do conjunto de processos da organização; » Gerenciamento quantitativo de projeto – onde são gerenciados quantitativamente os processos definidos e que foram realizados para o alcance da qualidade e desempenho. Nível 5 – Em otimização: • Gestão de processo organizacional – criar condições que comprovem que houve melhorias no desempenho dos processos; • Análise casual e resolução – processo onde são identificados os problemas e defeitos do produto, assim como são planejadas ações para a prevenção de problemas futuros. 14 Unidade: Capability Maturity Model – Integration (CMMI) (Modelo de Maturidade em Capacitação – Integração) Material Complementar Para aprofundar seus estudos sobre CMMI, acesse os sites listados abaixo, assim como tome contato com as seguintes referências bibliográficas: A TECNOLOGIA EVOLUI muito rápido: desafios, moral e ética. 2 jun. 2014. Disponível em: <http://www.spinsp.org.br>. Acesso em 26 jul. 2014. GAMMA, E. Padrões de projeto: soluções reutilizáveis de software orientado a objetivos. Porto Alegre, RS: Bookman, 2000. ISO/IEC 15504. IBPI, [20--]. Disponível em: <http://ibpi.org/standard/isoiec-15504>. Acesso em 26 jul. 2014. MARQUES, H. M. et al. Fábricas de software e o processo de desenvolvimento segundo a experiência da FábricaUm. CIN/UFPE, [20--]. Disponível em: <http://www.cin.ufpe. br/~in953/olds/relatorios/fabrica1.pdf>. Acesso em 26 jul. 2014. SOMMERVILLE, I. Engenharia de software. 8. ed. São Paulo: Pearson Addison-Wesley, 2007. http://www.spinsp.org.br http://ibpi.org/standard/isoiec-15504 http://www.cin.ufpe.br/~in953/olds/relatorios/fabrica1.pdf http://www.cin.ufpe.br/~in953/olds/relatorios/fabrica1.pdf 15 Referências CMMI para Desenvolvimento (CMMI-DEV) – versão 1.2. Pittsburgh, PA, USA: Carnegie Mellon Software Engineering Institute, 2006. Disponível em: <http://cmmiinstitute.com/assets/ CMMI-DEV_1-2_Portuguese.pdf>. Acesso em: 26 jul.2014. FALBO, R. de A. Qualidade de processo de software CMMI. DI/UFES, 2008. Disponível em: <http://webcache.googleusercontent.com/search?q=cache:fM1wEU5ne20J:www.inf.ufes.br/~falbo/ files/Aula%252010%2520-%2520Qualidade%2520de%2520Processo%2520-%2520CMMI. ppt+&cd=2&hl=pt-BR&ct=clnk&gl=br>. Acesso em: 26 jul.2014. FIGUEIREDO, E. O modelo CMMI. DCC/UFMG, [20--]. Disponível em: <http://homepages. dcc.ufmg.br/~figueiredo/disciplinas/aulas/cmmi_v01.pdf>. Acesso em: 26 jul.2014. GOMES, P. R. M.; RIBEIRO, R. M. C. Introdução a CMMI. LDS/UFCG. Campina Grande, PB, 29 set. 2008. Disponível em: <http://www2.lsd.ufcg.edu.br/~renato/CMMI.pdf>. Acesso em: 26 jul.2014. GROFFE, R. J. Maturidade no desenvolvimento de software: CMMI e MPS-BR. Devmedia, [20--]. Disponível em: <http://www.devmedia.com.br/maturidade-no-desenvolvimento-de- software-cmmi-e-mps-br/27010>. Acesso em: 26 jul.2014. GUIMARÃES, C. F. O CMMI e o gerenciamento da qualidade de projetos de software. O Gerente, 31 jan. 2011. Disponível em:<http://ogerente.com.br/rede/projetos/gerenciamento- da-qualidade-de-projetos>. Acesso em: 26 jul.2014. O QUE É CMMI? ISD Brasil, [20--]. Disponível em: <http://www.isdbrasil.com.br/o-que-e- cmmi.php>. Acesso em: 26 jul.2014. TRISTACCI, C. CMMI. [20--]. Disponível em: <http://www.carlostristacci.com.br/blog/cmmi>. Acesso em: 26 jul.2014. http://cmmiinstitute.com/assets/CMMI-DEV_1-2_Portuguese.pdf http://cmmiinstitute.com/assets/CMMI-DEV_1-2_Portuguese.pdf http://webcache.googleusercontent.com/search?q=cache:fM1wEU5ne20J:www.inf.ufes.br/~falbo/files/Aula%252010%2520-%2520Qualidade%2520de%2520Processo%2520-%2520CMMI.ppt+&cd=2&hl=pt-BR&ct=clnk&gl=br http://webcache.googleusercontent.com/search?q=cache:fM1wEU5ne20J:www.inf.ufes.br/~falbo/files/Aula%252010%2520-%2520Qualidade%2520de%2520Processo%2520-%2520CMMI.ppt+&cd=2&hl=pt-BR&ct=clnk&gl=br http://webcache.googleusercontent.com/search?q=cache:fM1wEU5ne20J:www.inf.ufes.br/~falbo/files/Aula%252010%2520-%2520Qualidade%2520de%2520Processo%2520-%2520CMMI.ppt+&cd=2&hl=pt-BR&ct=clnk&gl=br http://homepages.dcc.ufmg.br/~figueiredo/disciplinas/aulas/cmmi_v01.pdf http://homepages.dcc.ufmg.br/~figueiredo/disciplinas/aulas/cmmi_v01.pdf http://www2.lsd.ufcg.edu.br/~renato/CMMI.pdf http://www.devmedia.com.br/maturidade-no-desenvolvimento-de-software-cmmi-e-mps-br/27010 http://www.devmedia.com.br/maturidade-no-desenvolvimento-de-software-cmmi-e-mps-br/27010 http://ogerente.com.br/rede/projetos/gerenciamento-da-qualidade-de-projetos http://ogerente.com.br/rede/projetos/gerenciamento-da-qualidade-de-projetos http://www.isdbrasil.com.br/o-que-e-cmmi.php http://www.isdbrasil.com.br/o-que-e-cmmi.php http://www.carlostristacci.com.br/blog/cmmi 16 Unidade: Capability Maturity Model – Integration (CMMI) (Modelo de Maturidade em Capacitação – Integração) Anotações www.cruzeirodosulvirtual.com.br Campus Liberdade Rua Galvão Bueno, 868 CEP 01506-000 São PauloSP Brasil Tel: (55 11) 3385-3000 http://www.cruzeirodosulvirtual.com.br Qualidade de Serviços ISO - International Organization for Standardization Material Teórico Responsável pelo Conteúdo: Prof. Ms. Douglas Almendro Revisão Textual: Prof. Ms. Claudio Brites 5 • Organismos Normativos • ISO Nesta unidade, realizaremos estudos sobre os modelos da ISO. A ideia principal é mostrar as normas e as descrições desses modelos. Veremos os órgãos normativos e as séries ISO sobre os desenvolvimentos de software, seus regulamentos e ações corretivas. Não deixe de assistir, também, a apresentação narrada do conteúdo e de alguns exercícios resolvidos. Finalmente, e o mais importante, fique atento às atividades avaliativas propostas e ao prazo de realização e envio delas. Nesta unidade, serão explanados conceitos relacionados à Organização Internacional para Padronização, a ISO. Este passo nos levará ao entendimento das certificações dadas a softwares utilizadas no mercado. ISO - International Organization for Standardization 6 Unidade: ISO - International Organization for Standardization Contextualização Qualquer organização gostaria de melhorar a forma pela qual opera – quer isso signifique melhorar a sua participação no mercado, reduzir seus custos, gerenciar o risco mais eficazmente, ou ampliar a satisfação dos clientes. Um sistema de gestão lhe dá a estrutura necessária para monitorar e melhorar o desempenho em qualquer área de seu interesse. A ISO 9001 é de longe a estrutura de qualidade melhor estabelecida, sendo utilizada atualmente por mais de 750 mil organizações em 161 países. Ela define o padrão não só para sistemas de gestão de qualidade, mas para sistemas de gestão em geral. Ela ajuda todos os tipos de organizações a obterem sucesso através de uma melhora na satisfação de seus clientes, na motivação dos colaboradores, entre outras melhorias contínuas. 7 Organismos Normativos Muito antigamente, os produtos em geral eram construídos de maneira artesanal – o oleiro pegava a argila e transformava ela em vasos. Pegava-se a matéria bruta e a transformava em produto final. Esse modo de fazer as coisas impossibilitava que os produtos fossem padronizados –era quase impossível comprar dois vasos idênticos. Com o passar do tempo, com a revolução industrial, produtos começaram a ser construídos de modo padronizado, em um sistema fabril em que poucas empresas têm acesso à matéria bruta, pois, na maioria das vezes, uma empresa compra vários produtos de outras empresas e, com essas “partes”, compõe ela mesmo um outro produto final. Com essa linha de montagem rígida e esquematizada os órgãos normativos foram criados. Organismos normativos são instituições que ditam regras criadas com base no trabalho de especialistas. Essas regras servem de base para: » realizar especificações de produtos; » organizar o fornecimento de serviços » a elaboração da legislação em diversos países. A hierarquia de órgãos regulamentadores é feita da seguinte maneira: » Órgão Internacional: • ISO – Organização Internacional para Padronização; » Órgãos Nacionais: sendo eles: • ABNT – Associação Brasileira de Normas Técnicas – Brasil; • ANSI – American National Standards Institute – Estados Unidos; • IPQ – Instituto Português de Qualidade – Portugal; • IANORQ – Instituto Angolano de Normalização e Qualidade – Angola; » Órgãos Regionais: • o AMN – Associação Mercosul de Normalização – Mercosul; • o COPANT – Comissão Pan-Americana de Normas Técnicas – Continente Americano. Quando uma organização pretende verificar se seu produto atende a todas as regras de uma norma técnica, deve-se respeitar a hierarquia acima. Com isso, digamos que a empresa X deseja que seu Sistema de Gestão de Qualidade seja qualificado como sendo ISO-9000. Essa empresa deve obter essa certificação por meio de organismos de certificação que são conhecidos internacionalmente. Como exemplo, podem ser citadas organizações como: BRTUV, Fundação Carlos Alberto Vanzolini, entre outras. 8 Unidade: ISO - International Organization for Standardization ISO Em 23 de Fevereiro de 1947, na cidade de Genebra, Suíça, foi fundada a Organização Internacional para Padronização – ISO . A sigla dessa instituição deveria ser IOS e não ISO, porém, pela diversidade de línguas, os fundadores decidiram que a organização deveria ser conhecida por uma só sigla, a qual provém da palavra isos que em grego significa igualdade. Em seu início, a ISO não confeccionava normas internacionais, mas sim recomendações. Esses documentos eram criados a partir de normas nacionais que existiam na época. O crescimento da organização aconteceu rapidamente, na tabela abaixo podemos ter uma noção de seu grande crescimento. Tabela 1 Ano Documentos Produzidos 1952 5 1957 57 1965 1.400 2004 14.941 A ISO é a organização que reúne a comunidade de padronização e cria normas de qualidade. Ela está presente em mais de 163 países, conforme levantamento de 2012, quando já possuía um total de mais de 19.000 normas publicadas. IEC Comissão Eletrotécnica Internacional – IEC – é a organização encarregada das padronizações de tecnologias elétricas e de tecnologias associadas a essas. Sua sede, assim como a da ISSO, está localizada em Genebra, Suíça, e foi fundada no ano de 1906. 9 Série ISO 9000 A série ISO 9000 contém a união de cinco normas, são as normas: ISO 9000, 9001, 9002, 9003 e 9004. Essas normas foram oficializadas em 1987 e desde então vêm sendo usadas. Essa série não é considerada como um conjunto de normas revolucionárias, pois elas foram baseadas em normas britânicas – como a BS5750 e outras que já existiam na época. A função da série ISO 9000 é a satisfação do cliente pela transparência do bom andamento do projeto e de todos os estágios que mostram a qualidade da empresa. Qualquer tipo de empresa pode utilizar as normas ISO 9000 – seja ela pequena ou grande, privada ou governamental. A série ISO 9000 serve para qualificar o sistema de gestão de qualidade da empresa, garantindo que produtos fabricados pelo processo dessa empresa tenham qualidade superior aos produtos de outras empresas. Possuir a qualificação ISO 9000 significa que os produtos criados por certo processo irão possuir os mesmos padrões de qualidade. Uma empresa qualificada como ISO 9000 deve possuir alguns princípios básicos, alguns deles são: a documentação de fácil acesso; equipamentos em bom estado de conservação e manutenção; auditorias internas. Além disso, a empresa deve estar constantemente em autoanálise, tomando medidas preventivas e corretivas para o bom funcionamento dos processos e para que seja garantido o sucesso dos projetos. Com essas ações, a empresa fica possibilitada de atender a demanda de pedidos, possui uma documentação concreta e garante a qualidade de seus produtos. ISO 9001:2008 Pelas constantes revisões e atualizações, adotou-se o padrão de escrever o nome da norma e o ano de sua última atualização separados por dois pontos, com isso, a ISO 9001:2008 nada mais é do que a atualização do ano de 2008 da norma ISO 9001. Essa norma utiliza uma abordagem de melhoria no desenvolvimento e na implementação de um sistema de gestão de qualidade, visando obter maior grau de satisfação do cliente no atendimento de seus objetivos. A ISO 9001 possui diversas vantagens para a empresa que a adota, dentre essas vantagens podemos citar: » Melhoria em processos de gerenciamento de riscos, aumentando a porcentagem de sucesso do projeto; » Redução do desperdício, por conta do bom planejamento, de uma documentação ampla e do foco nos processos operacionais; 10 Unidade: ISO - International Organization for Standardization » Melhoria em processos intrassetoriais, nos quais a comunicação é altamente valorizada, expondo os possíveis problemas que as equipes envolvidas no projeto possam sofrer (ou sofrem). Em seguida, temos um modelo Planejar, Fazer, Checar, Agir – PDCA
Compartilhar