Engenharia de Software Qualidade de Software Uma abordagem conceitual André Luis Zanon São Carlos SP – UFSCAR 2010 Engenharia de Software – UFSCAR 2010 – André L Zanon Um paralelo com Sistema de Gestão da Qualidade Engenharia de Software – UFSCAR 2010 – André L Zanon Um Sistema de Gestão da Qualidade exige: Procedimentos e métodos de processos Controles e medições Atendimento às especificações (declaradas ou não declaradas) Registros Técnicas para identificação de falhas e tratamento de desvios Processos mapeados Responsabilidades definidas Comunicação eficiente (interna e externa) Engenharia de Software – UFSCAR 2010 – André L Zanon Procedimentos e métodos Procedimentos e métodos bem elaborados garantem um processo eficiente Engenharia de Software – UFSCAR 2010 – André L Zanon Controles e medições Controles e medições adequados ajudam a identificar falhas nos processos e caracterizam a eficiência do SGQ Engenharia de Software – UFSCAR 2010 – André L Zanon Especificações (Requisitos) Conhecer as especificações declaradas e perceber as especificações não declaradas garantem a satisfação do cliente (usuário) “em se tratando de Sistemas de Informação, o usuário final tem uma influência preponderante na avaliação da qualidade do software” Engenharia de Software – UFSCAR 2010 – André L Zanon Registros Registrar as ocorrências conformes e nãoconformes permite dimensionar a qualidade funcional do SGQ Engenharia de Software – UFSCAR 2010 – André L Zanon Técnicas para identificação de falhas A utilização de ferramentas e técnicas para identificação de causas de problemas nos processos, ajudam a evitar reincidência de falhas Engenharia de Software – UFSCAR 2010 – André L Zanon Processos mapeados Conhecer completamente o processo, identificando as entradas, fluxos e saídas, permite definir os recursos necessários e responsabilidades para a execução das tarefas envolvidas nos processos Engenharia de Software – UFSCAR 2010 – André L Zanon Responsabilidades Atribuir bem as responsabilidades, garante bons resultados nas tarefas executadas Engenharia de Software – UFSCAR 2010 – André L Zanon Comunicação Possuir um canal eficiente de comunicação, garante a integridade da informação Engenharia de Software – UFSCAR 2010 – André L Zanon Qualidade de Software Como qualquer outro produto, o software precisa possuir garantias de que foi ou está sendo produzido e mantido de forma adequada Engenharia de Software – UFSCAR 2010 – André L Zanon Qualidade de Software De acordo com a norma ISO/IEC 9126, fatores que definem a qualidade do software Funcionalidade (o que faz, segurança, etc) Confiabilidade (maturidade, tolerância a falhas, etc) Usabilidade (facilidade de utilização) Eficiência (tempo de resposta e utilização de recursos) Manutenibilidade (possível de corrigir, adaptar, etc) Portabilidade (utilização em diferentes plataformas) Engenharia de Software – UFSCAR 2010 – André L Zanon Métricas A intangibilidade e a variedade de funções consideradas no software, dificultam as medições. Entretanto, medir e comparar é uma necessidade fundamental para avaliar a performance de um produto. Engenharia de Software – UFSCAR 2010 – André L Zanon Métricas Método GQM (Goal-Question-Metric): Estabelece objetivos explícitos de medição da atividade ou processo Questões chaves cujas respostas permitem alcançar os objetivos Métricas bem formuladas que auxiliam nas respostas das questões Engenharia de Software – UFSCAR 2010 – André L Zanon Métricas Tamanho: O tamanho do software pode ser um indicador de várias características: maior complexidade, maior tempo para codificação, etc. Engenharia de Software – UFSCAR 2010 – André L Zanon Métricas Pontos por função: Considera as funções criadas no sistema. Pode ser aplicada na descrição arquitetural do projeto. Independe da tecnologia aplicada no projeto Engenharia de Software – UFSCAR 2010 – André L Zanon Métricas Complexidade estrutural: Avalia o numero de componentes aplicados na construção do software. Pode ser aplicada a partir dos diagramas UML Engenharia de Software – UFSCAR 2010 – André L Zanon Métricas Baseada em fluxo de dados: Mede a complexidade baseada no volume de informação processado pelos componentes do software Engenharia de Software – UFSCAR 2010 – André L Zanon Métricas Acoplamento e coesão: Medem o grau de dependência entre os componentes de um programa, podendo ser sub-rotinas, objetos ou módulos. Engenharia de Software – UFSCAR 2010 – André L Zanon Modelos CMMI (Capability Maturity Model Integration): Modelo de capacitação de processo para desenvolvimento de software Permite conhecer e aprimorar processos de desenvolvimento de software Engenharia de Software – UFSCAR 2010 – André L Zanon Modelos CMMI (Capability Maturity Model Integration): O nível de maturidade é definido em cinco etapas: Otimizado Gerenciado quantitativamente Definido Gerenciado Inicial Processos caóticos Processos controlados Processos padronizados Processos melhorados continuamente Processos medidos Engenharia de Software – UFSCAR 2010 – André L Zanon Modelos CMMI (Capability Maturity Model Integration) Nível 1: Processos são caóticos Não existem padrões ou não são seguidos O planejamento é deficiente e geralmente prazos e custos não são cumpridos Engenharia de Software – UFSCAR 2010 – André L Zanon Modelos CMMI (Capability Maturity Model Integration) Nível 2: Os processos são bem definidos e planejados A gerência de projetos passa a ter um papel efetivo Engenharia de Software – UFSCAR 2010 – André L Zanon Modelos CMMI (Capability Maturity Model Integration) Nível 3: Os processos são bem identificados A padronização é permanente Engenharia de Software – UFSCAR 2010 – André L Zanon Modelos CMMI (Capability Maturity Model Integration) Nível 4: Há uma evolução para tratamentos quantitativos dos processos Métricas passam a ser adotadas A produtividade e qualidade passam a ser controladas Engenharia de Software – UFSCAR 2010 – André L Zanon Modelos CMMI (Capability Maturity Model Integration) Nível 5: Prevalece o conceito de melhoria contínua nos processos As ações passam a ser pró-ativas para que processos sejam melhorados Engenharia de Software – UFSCAR 2010 – André L Zanon Modelos MPS-BR (Melhoria de Processo de Software Brasileiro): Criado para a melhoria do processo de desenvolvimento de software em empresas o brasileiras Os níveis de maturidade variam de A (avançado) a G (básico) Engenharia de Software – UFSCAR 2010 – André L Zanon Modelos MPS-BR (Melhoria de Processo de Software Brasileiro): Nível G – Parcialmente gerenciado Nível F – Gerenciado Nível E – Parcialmente definido Nível D – Largamente definido Nível C – Definido Nível B – Gerenciado quantitativamente Nível A – Em otimização Engenharia de Software – UFSCAR 2010 – André L Zanon Gestão da Qualidade do Software Garantia da qualidade consiste de um conjunto de funções para auditar e relatar que avalia a efetividade e completeza das atividades de controle da qualidade [Pressman, 2006]. Engenharia de Software – UFSCAR 2010 – André L Zanon Gestão da Qualidade do Software Gestão de custos da qualidade: Prevenção: planejamento, revisões equipamentos de testes e treinamento Avaliação: relacionados ao entendimento operacional e calibração Falhas: custos relacionados com falhas do sistema Engenharia de Software – UFSCAR 2010 – André L Zanon Gestão da Qualidade do Software Garantia da Qualidade de Software - SAQ (Software Quality Assunrace): Plano de projeto: desenvolvido na fase de planejamento sendo revisado e auditado pelas partes Descrição do processo de software: visa a satisfação da política empresarial, obedecendo à padrões internos e externamente impostos, por exemplo, ISO 9001 Engenharia de Software – UFSCAR 2010 – André L Zanon Gestão da Qualidade do Software Garantia da Qualidade de Software - SAQ (Software Quality Assunrace): Satisfação do processo definido: garante o cumprimento de procedimentos estabelecidos e verifica se correções foram feitas Auditoria de processos: verifica processos, registra e acompanha desvios e relata aos responsáveis pelo projeto Engenharia de Software – UFSCAR 2010 – André L Zanon Gestão da Qualidade do Software Garantia da Qualidade de Software - SAQ (Software Quality Assunrace): Documentação de desvios: garante que desvios sejam registrados e acompanha as disposições de tratamento Registro de não-satisfação: registra e relata e acompanha os itens que não atendem ao padrão exigido Engenharia de Software – UFSCAR 2010 – André L Zanon Gestão da Qualidade do Software Garantia da Qualidade de Software - SAQ (Software Quality Assunrace): Mudanças: coordena o controle de gestão de mudanças Métricas: auxilia na coleta e análise das métricas do software Engenharia de Software – UFSCAR 2010 – André L Zanon Gestão da Qualidade do Software Revisões de Técnicas Formais garante: Identificar erros do software Satisfação dos requisitos Satisfação dos padrões estabelecidos Padronização no desenvolvimento Viabilizar a administração do projeto Engenharia de Software – UFSCAR 2010 – André L Zanon Conclusão A qualidade do software pode ser alcançada seguindo: conceitos gerenciais, rigor na escolha e aplicação de modelos, métodos e métricas. Todos estes procedimentos muito bem definidos, contribuem para a eficiência do Sistema de Gestão da Qualidade do Software. Engenharia de Software – UFSCAR 2010 – André L Zanon Referências Bibliográficas KOSCIANSKY, A. e SOARES, M.S.,”Qualidade de Software”, Novatec, 2007 PRESSMAN, R.S., “Engenharia de Software”. McGraw Hill, 2006. Engenharia de Software – UFSCAR 2010 – André L Zanon