Introdução à Qualidade de Software Alexandre M. Lins de Vasconcelos Departamento de Informática - UFPE [email protected] 081 2718430 CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 1 Motivação O principal objetivo da Engenharia de Software (ES) é ajudar a produzir software de qualidade; Empresas que desenvolvem software de qualidade são mais competitivas; Empresas que utilizam software de alta qualidade podem, em geral, oferecer um melhor serviço a um preço mais competitivo. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 2 Conceitos de Qualidade Definição genérica: “Propriedade, atributo ou condição das coisas ou das pessoas capaz de distingui-las das outras e de lhes determinar a natureza” (Aurélio). Outras definições: Qualidade é estar em conformidade com os requisitos dos clientes; Qualidade é antecipar e satisfazer os desejos dos clientes; Qualidade é escrever tudo o que se deve fazer e fazer tudo o que foi escrito. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 3 Conceitos de Qualidade Segundo a atual norma brasileira sobre o assunto (NBR ISO 8402), qualidade é: A totalidade das características de uma entidade que lhe confere a capacidade de satisfazer as necessidades explícitas e implícitas. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 4 Conceito de Qualidade de Software “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” (Pressman). CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 5 Fatores de Qualidade de Software A noção de qualidade de software pode ser descrita por um grupo de fatores, requisitos ou atributos, tais como: confiabilidade, eficiência, facilidade de uso, modularidade, legibilidade, etc; Podemos classificar estes fatores em dois tipos principais: externos e internos; Fatores Externos Fatores Internos CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 6 Fatores de Qualidade de Software Fatores externos são percebidos tanto pelas pessoas que desenvolvem software quanto pelos usuários. Por exemplo, confiabilidade, eficiência e facilidade de uso são fatores externos; Fatores internos são percebidos apenas pelas pessoas que desenvolvem software. Por exemplo, modularidade e legibilidade são fatores internos; Se os fatores internos forem observados, os fatores externos serão consequentemente observados. De fato, os fatores internos são um meio para se alcançar os fatores externos. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 7 Fatores Externos de Qualidade de Software facilidade de uso eficiência portabilidade CESAR/DI-UFPE s o f t w a r e correção robustez integridade © 1998, Alexandre Vasconcelos 8 Fatores Externos de Qualidade de Software Facilidade de uso: a facilidade de aprender como usar o software; Eficiência: o bom uso dos recursos computacionais; Portabilidade: a facilidade de transferir software entre ambientes operacionais. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 9 Fatores Externos de Qualidade de Software Correção: habilidade do software executar suas tarefas exatamente como definida pelos requisitos e especificação; Robustez: habilidade de um software funcionar mesmo em condições anormais; Integridade: a habilidade do sistema de proteger seus vários componentes contra acessos ou modificações indevidos. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 10 Processos de Engenharia Especificação - define os requisitos e limitações do sistema Projeto - Produz um modelo do sistema Manufatura - construção do sistema Teste - verifica se o sistema satisfaz a especificação Instalação - entrega o sistema ao usuário e garante sua operacionalidade Manutenção - repara falhas no sistema quando elas são descobertas CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 11 O Processo de Software Um conjunto estruturado de atividades necessárias para o desenvolvimento de um sistema de software • • • • • Especificação Projeto Implementação Validação Evolução As atividades variam de acordo com a organização e o tipo de sistema sendo desenvolvido CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 12 Características do Processo Facilidade de Entendimento • Visibilidade • O progresso do processo está externamente visível? Suportabilidade • O processo está definido e bem entendido? O processo pode ser apoiado por ferramentas CASE? Aceitabilidade • O processo é aceito pelas pessoas envolvidas nele? CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 13 Processos e Qualidade do Produto Qualidade do processo e qualidade do produto estão intimamente relacionados; Um bom processo é normalmente necessário para produzir um bom produto; Para produtos manufaturados, o processo é o principal determinante de qualidade; Para projetos, outros fatores também são importantes. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 14 Dimensões da Qualidade do Software Development technology Process quality Product quality People quality Cost, time and schedule CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 15 Análise e Modelagem do Processo Estude um processo existente para entender suas atividades Produza um modelo abstrato do processo. Normalmente representado graficamente. Várias visões diferentes (ex. atividades, deliverables, etc.) podem ser necessárias Analise o modelo para descobrir problemas do processo. Envolve discutir atividades com as partes interessadas CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 16 Técnicas de Análise do Processo Modelos de processos públicos e processos padronizados Questionários e entrevistas É sempre melhor começar o processo de análise com um modelo existente. As pessoas então poderão estender e mudá-lo. Devem ser cuidadosamente projetadas. Participantes podem contar o que eles acham que você quer ouvir. Análise Etnográfica Envolve a assimilação do conhecimento do processo através da observação CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 17 Elementos do Processo de Software Atividades Processos Conjunto de atividades com alguma coerência e um objetivo bem definido. Deliverables (entrega) Tem um objetivo claramente definido, condições de entrada e saída. Normalmente executadas por uma única pessoa. Saída tangível de uma atividade. Usualmente um documento. Condições Predicado que deve valer antes ou depois de um processo ou atividade. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 18 Elementos do Processo de Software Papéis Exceções Uma área limitada de responsabilidade. Exemplos: gerente de configuração, engenheiro de teste, etc. Um evento que requer um tratamento especial e que não é tratado por atividades normais. Usualmente tratadas quando surgem sem uma estratégia prévia. Comunicação Um troca de informação entre pessoas ou pessoas e computadores CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 19 Classificação do Processo Informal Gerenciado Processos são definidos e guiam o desenvolvimento Metódico Não há um modelo detalhado do processo. O time de desenvolvimento escolhe sua própria forma de trabalhar Processos são definidos por algum método de desenvolvimento (OMT, Booch, etc) Suportado Processo suportado por alguma ferramenta CASE CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 20 Aplicabilidade do Processo Informal process Prototypes Short-lifetime products 4GL business systems Managed process Lar ge systems Long-lifetime products Methodical process Well-understood application domains Re-engineered systems CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 21 Escolha do Processo O processo a ser usado depende do tipo de produto em desenvolvimento Para grandes sistemas, o gerenciamento é geralmente o principal problema. Portanto, você precisará de um processo gerenciado. Para projetos menores, uma informalidade será possível; Não existe um processo uniforme que possa ser padronizado em qualquer organização; Você poderá ter altos custos se forçar um processo não apropriado num time de desenvolvimento. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 22 Ferramentas de suporte a processos Informal process Generic tools Managed process Configuration management tools CESAR/DI-UFPE Project management tools Methodical process Analysis and design workbenches © 1998, Alexandre Vasconcelos Improving process Specialized tools 23 Melhoria do Processo Os estudos sobre qualidade estão na sua maioria voltados para o melhoramento do processo de desenvolvimento; Ao melhorar a qualidade do processo está se dando um grande passo para se garantir também a qualidade do produto. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 24 Objetivos da Melhoria do Processo Entender o processo existente Introduzir mudanças de processo para alcançar objetivos organizacionais, que são associados à melhoria da qualidade, redução de custos e aceleração de prazos A maior parte do trabalho de melhoria de processo até o momento tem abordado a redução de defeitos. Reflete a atenção cada vez maior da indústria para a questão da qualidade CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 25 Estágios da Melhoria do Processo Análise do Processo Identificação de Melhorias Modifique o processo para remover os gargalos identificados Treinamento na Mudança do Processo Identifique os gargalos de qualidade, custo e escalonamento Introdução das Mudanças de Processo Modele e analise (quantitativamente se possível) os processos existentes. Métricas são necessárias. Treine a equipe envolvida com os novos processos propostos Ajuste da Mudança Evolua e melhore os processos revisados CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 26 Estágios da Melhoria do Processo Introduce process change Analyse process Tune process changes Identify improvements Train engineers Process model Process change plan CESAR/DI-UFPE Training plan Feedback on improvements © 1998, Alexandre Vasconcelos Revised process model 27 Medindo o Processo Quando for possível, dados quantitativos do processo devem ser coletados Contudo, quando as organizações não têm processos padronizados bem definidos isto pode ser difícil, pois você não saberá o que medir. Um processo precisa ser definido antes de qualquer medição ser possível Medições do processo devem ser usadas para avaliar a melhoria do processo Mas isto não implica que as medições devem guiar as melhorias. Os objetivos organizacionais devem guiar as melhorias. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 28 Objetivos das Métricas Independentemente da métrica usada, sempre se busca os mesmos objetivos Melhorar o entendimento da qualidade do produto; Atestar a efetividade do processo; Melhorar a qualidade do trabalho realizado a nível de projeto. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 29 Classes de Medições de Processos Tempo que se leva para completar as atividades do processo Recursos necessários para os processos ou atividades Ex. Tempo do calendário ou esforço para completar uma atividade ou processo Ex. Esforço total em pessoa-dias, custo de viagens, recursos computacionais Número de ocorrências de um determinado evento Ex. Número de defeitos descobertos CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 30 Paragima GQM (Goal-Question-Metric) Objetivos - Goals O que a organização quer alcançar? O objetivo da melhoria do processo é satisfazer estes objetivos Questões Questões a respeito das áreas de incerteza relacionadas com os objetivos. Como poderemos reduzir o tempo de produção de requisitos? Como diminuir o número de linhas de código com defeitos? Métricas Medições para coletar as respostas às perguntas CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 31 Controle e Garantia de Qualidade Gerentes querem os melhores projetistas para projetar o produto, mas em geral não podem tê-los; Não existe técnica que possibilite o desenvolvimento de software isento de defeitos; Controle de Qualidade evita que produtos defeituosos sejam entregues aos clientes (relaciona-se à validação); Garantia da Qualidade tenta produzir software com uma baixa taxa de defeitos (relaciona-se à verificação); Existe então a necessidade de concentrar esforços em métodos de SQA (Software Quality Assurance); O papel de SQA é monitorar os métodos e padrões que os engenheiros de software usam. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 32 Atividades de SQA Em SQA temos uma variedade de tarefas, as quais podemos dividir em dois grandes grupos: Engenheiros de software: fazem o desenvolvimento dos sistemas (trabalho técnico); Grupo de SQA: responsabilidades sobre o plano de qualidade, inspeção, conservação de registros históricos, análise do produto desenvolvido e reporting das atividades de SQA ao gerente do projeto. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 33 Atividades de SQA O SEI (Software Engineering Institute) recomenda as seguintes atividades para o grupo de SQA Preparar uma plano de SQA; Participar da descrição do projeto de software; Revisar as atividades dos engenheiros de software; Documentar e consertar os desvios; Registrar discordâncias e reportar para o gerente; Gerenciar mudanças e métricas de software. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 34 Atividades de SQA: revisões de software São um filtro no processo de ES; Não são limitadas à especificação, projeto e código. Defeito: anomalia do produto (IEEE); Revisões Técnicas Formais (RTF): destinam-se a encontrar erros durante o processo antes que eles se tornem defeitos; 50% a 60% do total de erros são introduzidos durante o projeto de software; RTF podem descobrir cerca de 75% desses erros. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 35 Atividades de SQA: medidas de produtividade de programação A qualidade do software depende da produtividade de programação, a qual é afetada por: qualidade da documentação; linguagem de programação; disponibilidade de ferramentas; experiência do programador; comunicação no projeto; grau de dependência entre módulos; práticas de programação bem definidas. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 36 Atividades de SQA: medidas de confiabilidade “Probabilidade de uma operação de programa de computador ser livre de falha”. não conformidade com os requisitos de software É um elemento importante para a qualidade do software; Exemplo: um software que opera corretamente em 96 das suas 100 execuções, tem uma confiabilidade de 0.96. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 37 Confiabilidade x Segurança Confiabilidade usa a análise estatística para determinar a probabilidade de que uma falha venha a ocorrer. Segurança examina as maneiras segundo as quais as falhas resultam em condições que podem levar a uma deformação. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 38 Plano de SQA Especifica os objetivos, as tarefas de SQA a serem realizadas, os padrões, os procedimentos a estrutura organizacional e os mecanismos de auditoria; Documentos de ES exigidos: Especificação de Requisitos, Descrição de Projeto, Plano (e Relatório) de Verificação e Validação, Documentação do Usuário. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 39 Certificação de Qualidade Não basta que a qualidade exista, ela deve ser reconhecida pelo cliente; Deve existir uma certificação oficial emitida com base em um padrão; As certificações são dadas por instituições competentes; Exemplos de certificação: Selo SIF de qualidade de produtos alimentícios; Selo ABIC de qualidade do café; Classificação da rede hoteleira. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 40 Certificação do Produto ou do Processo? Hoje em dia, a qualidade do processo é mais importante do que a qualidade final do produto; Existem normas e padrões tanto para produtos quanto para processos. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 41 Padrões de Qualidade de Software Qualidade de produtos de software - ISO 9126 (versão brasileira - NBR 13596); Qualidade de pacotes de software - ISO 12119; Qualidade do processo de software ISO 9000 / ISO 9001 Capability Maturity Model (CMM) Outros padrões para qualidade de processo Personal Software Process (PSP) SPICE CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 42 Qualidade de produtos de software ISO 9126 Conjunto de características que devem estar presentes em um software de qualidade: Funcionalidade - satisfaz as necessidades? Confiabilidade - é imune a falhas? Usabilidade - é fácil de usar? Eficiência - é rápido e “enxuto”? Manutenibilidade - é fácil de modificar? Portabilidade - é fácil de usar em outro ambiente? Muitas destas características são subjetivas; Outras podem ser definidas por meio de métricas. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 43 Qualidade de pacotes de software ISO 12119 Trata da avaliação de “software de prateleira”; Descreve detalhes que devem estar presentes no software, tais como: Documentação do usuário de fácil compreensão; Um sumário e um índice remissivo na documentação do usuário; Presença de um manual de instalação com instruções detalhadas; Possibilidade de verificar se uma instalação foi bem sucedida; Especificação de valores limites para os dados de entrada; etc. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 44 Qualidade do processo de software Capability Maturity Model (CMM) Descreve princípios e práticas relacionadas à maturidade do processo de software; Tem o objetivo de ajudar as organizações a melhorarem seus processos de software em termos de um caminho evolutivo que vai de ad hoc (processos caóticos) a processos maduros e disciplinados; Para isto define o conceito de nível de maturidade: base evolucionária bem definida direcionada a obter um processo de software maduro. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 45 Maturidade Organizações maduras Organizações imaturas Papéis e responsabilidades bem definidos Processo improvisado Existe base histórica Não existe base histórica É possível julgar a qualidade do produto Não há maneira objetiva de julgar qualidade do produto A qualidade dos produtos e processos é monitorada Qualidade e funcionalidade do produto podem ser sacrificadas O processo pode ser atualizado Existe comunicação entre o gerente e seu grupo CESAR/DI-UFPE Não há rigor no processo a ser seguido Resolução de crises imediatas © 1998, Alexandre Vasconcelos 46 Componentes do CMM Níveis de Maturidade Áreas-chave de processo Características comuns Práticas-chave CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 47 Os 5 Níveis de Maturidade Otimizado Gerenciado Definido Reproduzível Inicial CESAR/DI-UFPE Um processo de melhora contínuo é capacitado p/retorno quantitativo do processo e das idéias. Medidas de qualidade são coletadas. O processo e o produto são entendidos e controlados quantitativamente. Processos padronizados, documentados e integrados. Processos estabelecidos por experiências anteriores. Processo caótico e ad hoc. O gerenciamento é pensado” durante o desenvolvimento. © 1998, Alexandre Vasconcelos 48 Níveis no Modelo de Maturidade Inicial Essencialmente não controlado. Resultado imprevisível. Reproduzível Procedimentos definidos e usados para gerenciamento de Produto Definido Procedimentos e estratégias definidas e usadas para gerenciamento de Processo Gerenciado Estratégias definidas e usadas para Gerenciamento de Qualidade Otimizado Estratégias definidas e usadas para Melhoria do Processo CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 49 Nível 1: Inicial Foco : pessoas competentes e heróis O processo de desenvolvimento é desorganizado e até caótico. Poucos processos são definidos e o sucesso depende de esforços individuais e heróicos. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 50 Nível 2: Repetível Foco: Processos de gerenciamento de projetos Os processos básicos de gerenciamento de projeto estão estabelecidos e permitem acompanhar custo, cronograma e funcionalidade. É possível repetir o sucesso de um processo utilizado anteriormente em outros projetos similares. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 51 Nível 3: Definido Foco: Processos de engenharia e apoio Tanto as atividades de gerenciamento quanto de engenharia do processo de desenvolvimento de software estão documentadas, padronizadas e integradas em um padrão de desenvolvimento da organização. Todos os projetos utilizam uma versão aprovada e adaptada do processo padrão de desenvolvimento de software da organização. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 52 Nível 4: Gerenciado Foco: Qualidade do Produto e do Processo São coletadas medidas detalhadas da qualidade do produto e processo de desenvolvimento de software. Tanto o produto quanto o processo de desenvolvimento de software são entendidos e controlados quantitativamente. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 53 Nível 5: Otimizado Foco: Melhoramento contínuo do Processo O melhoramento contínuo do processo é conseguido através de um “feedback” quantitativo dos processos e pelo uso pioneiro de idéias e técnicas inovadoras. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 54 Áreas-chave de processo (KPA’s) Indicam as áreas que uma organização deve enfocar para melhorar seu processo de software; O CMM define 18 KPA’s distribuídas nos 5 níveis; Cada KPA é descrita em termos de práticas-chave que contribuem para satisfazer seus objetivos. descrevem a infra-estrutura e atividades que contribuem para a implementação e institucionalização da KPA. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 55 Áreas-chave de processo KPA 1: não existem KPA’s para este nível; KPA 2: interesses relacionados ao estabelecimento do controle básico de administração de projeto; KPA 3: problemas organizacionais e de projeto; KPA 4: estabelecem um entendimento quantitativo do processo de software e do produto; KPA 5: cobrem os problemas que a organização e os projetos devem endereçar para implementar uma melhora contínua e mensurável do processo de software. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 56 Áreas-chave de processo do Nível 2 Repetível Repetível (2) 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 CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 57 Áreas-chave de processo do Nível 3 Definido Definido (3) Revisões (peer review) Coordenação 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 CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 58 Áreas-chave de processo do Nível 4 Gerenciado Gerenciado (4) Gerenciamento da Qualidade de Software Gerenciamento Quantitativo do Processo CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 59 Áreas-chave de processo do Nível 5 Otimizado Otimizado (5) Gerenciamento da Mudança no Processo Gerenciamento da Mudança Tecnológica Prevenção de Defeito CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 60 Características Comuns As características comuns são itens a serem observados para que se possa verificar a implementação e institucionalização de cada área-chave de processo. Compromisso a realizar Capacidade de realizar Atividades realizadas Medições e análise Verificação da implementação Cada característica comum possui práticas-chave a serem realizadas. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 61 Críticas ao Modelo CMM A ênfase é no gerenciamento do projeto e não no desenvolvimento do produto. Não incorpora a análise de risco como uma área crítica do processo. Não define o seu domínio de aplicabilidade Dificuldade para implantação em pequenas empresas CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 62 Curiosidades sobre o CMM Só existem atualmente cinco empresas no mundo no nível 5: BOEING; Loral Systems (IBM); Unidade da Motorolla (Índia); Base de Eduards (USAF); Lock Hit (empresa de aviação). No Brasil temos: Nível 2: NEC, ERICSON, CITIBANK; Nível 3: XEROX; Equitel/Siemens: implantou nível 2 ou 3, mas não se certificou. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 63 Comparação entre ISO 9001 e CMM CMM ISO 9001 Ênfase no contínuo processo de melhora; Enfoca estritamente o software; Não é uma norma emitida por uma instituição de padronização. CESAR/DI-UFPE Ênfase no critério mínimo para um sistema de qualidade aceitável; Tem um escopo mais abrangente; Por ser mais conhecido e embutir um padrão internacional mínimo de qualidade, o ISO talvez traga melhores resultados para a empresa. © 1998, Alexandre Vasconcelos 64 Comparação entre ISO 9001 e CMM perguntas Em que nível do CMM poderia se encaixar uma organização em conformidade com o ISO 9001? A ISO 9001 atende boa parte das KPA’s do nível 2 e algumas do nível 3. Uma organização de nível 2 (ou 3) poderia ser considerada em conformidade com o ISO 9001? Provavelmente. Meus esforços na melhoria do processo e no gerenciamento de qualidade deveriam ser baseados no ISO 9001 ou no CMM? Estas perguntas não têm uma resposta definitiva. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 65 Pontos Principais O processo de software consiste naquelas atividades envolvidas no desenvolvimento de software Modelos de processo incluem a descrição de tarefas, atividades, papéis, comunicações, deliverables e outros processos Processos podem ser classificados com informal, gerenciado, metódico e de melhoria. Melhoria de processo envolve análise do processo, padronização, medições e mudanças CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 66 Pontos Principais Devemos coletar métricas para responder questões específicas sobre o processo de software usado O modelo CMM classifica os processos de software como inicial, repetíveis, definidos, gerenciáveis e otimizados Ele identifica processos chaves que devem ser utilizados em cada nível O modelo da SEI é apropriado para grandes projetos desenvolvidos por grande time de engenheiros CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 67 Conclusão Qualidade é um conceito complexo, porque significa diferentes coisas para diferentes pessoas; Não há uma simples medida para qualidade de software que seja aceitável para todos os projetos de todas as empresas; Para estabelecer ou melhorar a qualidade de software, deve-se definir os aspectos de qualidade nos quais se está interessado e, então, decidir como fazer para medi-los; A implantação de um sistema de qualidade permite um aumento de produtividade, uma melhoria da qualidade do produto final e um aumento da satisfação dos clientes e da própria empresa; A falta de consciência de muitas empresas e profissionais que lidam com sistemas complexos tem sido um dos maiores problemas em adotarem uma política de qualidade; Apesar dos custos elevados, é importante introduzir sistemas de gerenciamento de qualidade de software, como o ISO 9001 ou o CMM. CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 68 Introdução à Qualidade de Software Situação da Qualidade de Software no Brasil CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 69 Elaboração de planos estratégicos, plano de negócios ou planos de metas Categorias Atualização sistemática Revisão sem periodicidade fixa Em implantação Não elabora CESAR/DI-UFPE 1993 % 34,5 38,5 13,1 13,8 1995 % 21,7 34,2 24,7 19,5 © 1998, Alexandre Vasconcelos 1997 Nº 159 183 150 97 % 27,0 31,1 25,5 16,5 70 Inclusão de metas ou diretrizes para a qualidade Categorias Sistemática Eventual Pretende incluir Não inclui CESAR/DI-UFPE 1993 % 41,2 29,0 15,4 14,3 1995 % 38,9 29,3 28,7 3,1 © 1998, Alexandre Vasconcelos 1997 Nº 199 141 131 21 % 40,4 28,7 26,6 4,3 71 Coleta de indicadores da qualidade de produtos e serviços Periodicidade Sistemática Quando necessário Em estudo Não coleta CESAR/DI-UFPE 1993 % 26,9 41,8 13,8 17,5 1995 % 25,1 42,1 21,7 11,1 © 1998, Alexandre Vasconcelos 1997 Nº 174 192 141 82 % 29,5 32,6 23,9 13,9 72 Contabilidade de custos da qualidade e da não-qualidade 65% 381 6% 34 55 118 9% 20% Não mantém Em estudo Em projetos específicos 10 4 6 4 6 Sistemática 9 93 95 97 Sistemática CESAR/DI-UFPE Em projetos específicos © 1998, Alexandre Vasconcelos 73 Programa da qualidade total ou similar 46% 272 18% 104 212 36% Não tem Em estudo Implantado 47 12 11 36 18 Implantado CESAR/DI-UFPE 38 93 95 97 Em estudo © 1998, Alexandre Vasconcelos 74 Certificação do sistema da qualidade Empresas Certificadas Setor de Informática Pesquisa da Qualidade Certificação ISO 9001 Certificação ISO 9002 SW explicitado no certificado CESAR/DI-UFPE © 1998, Alexandre Vasconcelos 1995 ... 8 8 1 1 1997 124 44 35 11 15 75 Conhecimento do Modelo CMM 5% 71% 27 419 143 24% Não conhece Conhece, mas não usa Conhece e usa 24 5 3 Conhece e usa CESAR/DI-UFPE 11 95 97 Conhece, mas não usa © 1998, Alexandre Vasconcelos 76 Métodos para apoiar a participação dos empregados na solução de problemas 1993 % Reuniões de trabalho 43,6 Procedimentos informais 34,9 Times, equipes ou círculos ... Programas de sugestões ... Outros métodos 14,6 Não adota/em estudo 6,9 CESAR/DI-UFPE 1995 % 61,3 37,4 12,4 18,7 2,5 10,8 © 1998, Alexandre Vasconcelos 1997 Nº 437 214 123 113 28 47 % 74,6 36,5 21,0 19,3 4,8 8,0 77 Avaliação de desempenho dos funcionários Periodicidade Sistemática Eventual Informal Em implantação Não realiza CESAR/DI-UFPE 1993 % 18,2 13,8 44,7 9,5 13,8 1995 % 16,4 11,3 54,0 7,0 11,3 © 1998, Alexandre Vasconcelos 1997 Nº 103 62 281 63 78 % 17,5 10,6 47,9 10,7 13,3 78 Pesquisa de satisfação dos funcionários Periodicidade Sistemática Eventual Informal Em implantação Não realiza CESAR/DI-UFPE 1993 % 6,1 9,0 56,7 7,2 20,9 1995 % 6,8 14,1 50,1 4,3 24,7 © 1998, Alexandre Vasconcelos 1997 Nº % 49 8,3 62 10,6 272 46,3 53 9,0 151 25,7 79 Pesquisas de satisfação dos clientes Periodicidade Sistemática Eventual Em implantação Dados de terceiros Não realiza CESAR/DI-UFPE 1993 % 21,3 50,5 8,7 1,8 17,7 1995 % 18,7 45,3 14,6 3,6 17,8 © 1998, Alexandre Vasconcelos 1997 Nº 147 248 78 27 88 % 25,0 42,2 13,3 4,6 15,0 80 Estruturas de atendimento e resolução de reclamações 76% 93 40% 72% 71% 40% 48% 7% 38% CESAR/DI-UFPE 97 60% 76% Suporte 95 12% 11% Visitas Hot-line © 1998, Alexandre Vasconcelos Internet 81 Uso de dados de pesquisa ou de reclamações 44% 259 63 51 211 11% 9% 36% Sistemática Não usa 39 41 44 Em estudo 43 35 Eventual 36 93 95 97 Sistemática CESAR/DI-UFPE Eventual © 1998, Alexandre Vasconcelos 82 Engenharia de Software Principais métodos para prevenção de defeitos Tipos Controles de versão Prototipação Gerência de projetos Métodos orientados a objetos Análise de requisitos Métodos estruturados Projeto da interface com o usuário Análise crítica conjunta CESAR/DI-UFPE 1993 % 52,5 39,4 ... ... 45,0 ... ... ... © 1998, Alexandre Vasconcelos 1995 % 53,7 46,5 ... 43,4 47,4 ... ... ... 1997 Nº 327 259 235 216 210 210 207 194 % 61,1 48,4 43,9 40,4 39,3 39,3 38,7 36,3 83 Engenharia de Software Outros métodos para prevenção de defeitos Tipos Reuso Engenharia da informação Medições da qualidade (Métricas) JAD Gestão de configuração Desenvolvimento em sala limpa Estimação da confiabilidade Gestão de mudança QFD Outros CESAR/DI-UFPE 1993 % ... ... ... ... ... ... ... ... ... ... © 1998, Alexandre Vasconcelos 1995 % 37,3 ... ... 9,9 ... ... 10,1 ... 1,7 ... 1997 Nº 110 104 48 46 40 36 32 32 11 19 % 20,6 19,4 9,0 8,6 7,5 6,7 6,0 6,0 2,1 3,6 84 Engenharia de Software Principais métodos para detecção de defeitos Tipos Testes de sistema Testes de campo Testes de usabilidade Testes funcionais Testes de aceitação Validação CESAR/DI-UFPE 1993 % 64,2 55,0 ... 58,5 46,8 ... 1995 % 62,2 58,2 ... 48,8 47,6 ... © 1998, Alexandre Vasconcelos 1997 Nº 392 357 327 329 278 250 % 69,4 63,2 57,9 58,2 49,2 44,2 85 Engenharia de Software Outros métodos para detecção de defeitos Tipos Testes de unidade Revisões estruturadas Auditorias Inspeções formais Testes estruturais Verificação independente Outros CESAR/DI-UFPE 1993 % ... ... ... ... ... ... ... 1995 % 23,6 2,0 ... 10,1 ... ... ... © 1998, Alexandre Vasconcelos 1997 Nº 137 113 102 100 97 81 16 % 24,2 20,0 18,1 17,7 17,2 14,3 2,8 86 Principais Ferramentas Utilizadas Tipos Dicionários de dados Gerador de relatórios Gerador de telas Depurador interativo Gerador de código-fonte Gerenciador de projetos CESAR/DI-UFPE 1993 % 34,0 36,2 45,7 34,4 30,1 ... 1995 % 38,4 44,5 46,7 33,3 37,3 ... © 1998, Alexandre Vasconcelos 1997 Nº 222 218 207 167 162 143 % 39,2 38,4 36,5 29,5 28,6 25,2 87 Outras ferramentas utilizadas Tipos Gerenc. bibliotecas de módulo Gerador de gráficos Documentador Prototipador Distribuição de software CASE Lower CASE Upper Gerador de entrada de dados CESAR/DI-UFPE 1993 % 26,6 24,5 19,1 18,4 ... 24,5 ... 45,7 1995 % 20,4 20,7 18,6 16,6 ... 26,5 ... 46,7 © 1998, Alexandre Vasconcelos 1997 Nº 116 115 104 90 86 81 79 63 % 20,5 20,3 18,3 15,9 15,2 14,3 13,9 11,1 88 Mais Ferramentas utilizadas Tipos 1993 % Gerenciador de configuração Gerenciador de documento Driver de teste Gerador de dados de teste Analisador de código Otimizador Outras Não utiliza CESAR/DI-UFPE ... 8,9 10,3 15,2 ... 21,3 1995 % 10,3 ... 6,5 5,8 9,9 8,8 7,0 10,8 © 1998, Alexandre Vasconcelos 1997 Nº % 57 10,1 54 9,5 52 9,2 50 8,8 50 8,8 38 6,7 26 4,6 122 21,5 89 Principais documentos adotados Tipos Manual do usuário Help on-line Contratos e acordos Guia de instalação Documentação de programas Documentação no código Especificação de sistema Documentação comercial Doc. de descrição do produto CESAR/DI-UFPE 1993 % 64,5 46,1 66,3 46,1 ... 49,3 62,4 51,4 ... 1995 % 83,3 62,3 67,1 44,5 45,4 47,3 54,1 46,6 ... © 1998, Alexandre Vasconcelos 1997 Nº 436 369 360 317 313 311 293 248 241 % 76,0 64,3 62,7 55,2 54,5 54,2 51,0 43,2 42,0 90 Outros documentos adotados 1993 % 56,7 Projeto de sistema 42,6 Manual de treinamento ... Documentação de marketing ... Doc. do processo de software 36,2 Plano de testes Resultados de revisões / testes 31,6 ... Plano de controle da qualidade ... Outros ... Não adota documentação Tipos CESAR/DI-UFPE 1995 % 40,2 43,8 ... ... 22,4 21,9 ... ... 2,5 © 1998, Alexandre Vasconcelos 1997 Nº 223 209 193 141 125 126 39 12 17 % 38,9 36,4 33,6 24,6 21,8 22,0 6,8 2,1 3,0 91 Biblioteca Técnica Especializada 11% 49% 61 284 232 40% Sem registro bibliográfico Com registro bibliográfico 93 45,1 45 40,2 Com registro CESAR/DI-UFPE 43,3 46 95 Não mantém 97 49,2 Sem registro © 1998, Alexandre Vasconcelos 92