Análise e Projeto de Sistemas III Aula 3 – Qualidade de Software
Aula de hoje... Qualidade de software O que é um padrão Como surge um padrão Para que serve um padrão O que é um padrão de processo O que é um padrão de produto Noções sobre a Norma ISO-9126 Noções sobre o CMMI
Qualidade – definição(?) “O produto desenvolvido deve cumprir sua especificação” Como especificar certas características de software, como facilidade de manutenção? É fácil escrever uma especificação completa de software?
Qualidade... Qualidade não ocorre por acaso Ela deve ser planejada e construída sobre este planejamento Papel do gerente: Definir padrões e procedimentos Verificar se estes padrões e procedimentos estão sendo seguidos Promover uma “cultura de qualidade” (envolver a equipe)
Planejamento e controle Planejamento de qualidade: deve começar no estágio inicial do desenvolvimento Quais as qualidades desejadas do produto? Como estas qualidades serão avaliadas? Resulta no plano de qualidade Planejar Agir Executar Monitorar
Padrões de qualidade O que é um padrão? Dois grupos de padrões: Padrões de processo conjunto de práticas que uma organização deve realizar Padrões de produto Conjunto de características que um produto deve ter
Padrões de qualidade Por que utilizar um padrão? Reunião das melhores práticas Infra-estrutura pronta para o controle de qualidade Ajudam em termos de continuidade
Padrões de qualidade Os desenvolvedores gostam de padrões? Burocráticos e irrelevantes Tediosos Desnecessários E o gerente... Fazer compreender porque o padrão está sendo usado Revisar e modificar os padrões Fornecer ferramentas
Padrão de produto Norma ISO 9126 International Standardization Organization www.iso.org Definição de qualidade: A totalidade das características de um produto de software que lhe confere a capacidade de satisfazer as necessidades explícitas e implícitas
Norma ISO 9126 - NBR 13596 6 características que um software deve ter: Funcionalidade Confiabilidade Usabilidade Eficiência Manutenibilidade Portabilidade
Norma ISO 9126 - NBR 13596 Funcionalidade: Conjunto de atributos que evidenciam a existência de um conjunto de funções e suas propriedades Adequação Presença de um conjunto de funções e suas propriedades especificadas Acurácia Geração de resultados ou efeitos corretos ou conforme acordados Interoperabilidade Capacidade de interagir com sistemas especificados Conformidade Estar de acordo com normas, regulamentos, leis relacionadas à aplicação Segurança de acesso Evitar acesso não autorizado a programas e dados
Norma ISO 9126 - NBR 13596 Maturidade Confiabilidade: capacidade de manter o nível de desempenho sob condições estabelecidas durante um período estabelecido Maturidade Atributos do software que evidenciam a freqüência de falhas por defeitos Tolerância a falhas Capacidade de manter nível de desempenho especificado nos casos de falhas Recuperabilidade Capacidade de reestabelecer nível de desempenho e recuperar dados diretamente afetados, em caso de falha, e o tempo de esforço para tal
Norma ISO 9126 - NBR 13596 Inteligibilidade Usabilidade: capacidade para uso Inteligibilidade Atributos do software que evidenciam o esforço do usuário para reconhecer o conceito lógico e sua aplicabilidade Apreensibilidade Esforço do usuário para apreender sua aplicação Operacionabilidade Esforço do usuário para operação e controle de sua operação
Norma ISO 9126 - NBR 13596 Comportamento em relação ao tempo Eficiência: relacionamento entre o nível de desempenho do software e a quantidade de recursos usados, sob condições estabelecidas. Comportamento em relação ao tempo Tempo de resposta, tempo de processamento e velocidade na execução de suas funções Comportamento em relação aos recursos Quantidade de recursos usados e a duração do seu uso na execução de suas funções
Norma ISO 9126 - NBR 13596 Adaptabilidade Portabilidade: capacidade do software em ser transferido de um ambiente para outro. Adaptabilidade Capacidade de ser adaptado a ambientes diferentes especificados, sem a necessidade de aplicação de outras ações ou meios além daqueles fornecidos para esta finalidade Capacidade para ser instalado Atributos do software que evidenciam o esforço para sua instalação num ambiente especificado Conformidade Atributos do software que o tornam consoante com padrões ou convenções relacionados à portabilidade. Capacidade para substituir Capacidade e esforço para substituir um outro software, no ambiente estabelecido para este outro software
Norma ISO 9126 - NBR 13596 Analisabilidade Modificabilidade Manutenibilidade: esforço necessário para fazer modificações Analisabilidade Esforço necessário para diagnosticar deficiências ou causas de falhas, ou para identificar partes a serem modificadas Modificabilidade Atributos do software que evidenciam o esforço para modificá-lo, remover seus defeitos ou adaptá-lo a mudanças ambientais Estabilidade Riscos de efeitos inesperados ocasionados por modificações Testabilidade Esforço necessário para validar o software modificado
Padrão de Processo - CMMI CMMI – Capability Maturity Model Integration Modelo desenvolvido pelo Instituto de Engenharia de Software (Universidade Carnegie Mellon) Avalia o grau de maturidade de uma organização no processo de produção de software Pode ser utilizado: Clientes: avaliar produtos adquiridos Fornecedores:
Padrão de Processo - CMMI CMM até 2002 CMMI a partir daí Descreve princípios e práticas organizados em níveis de maturidade Nível de maturidade: estágio evolutivo Imaturo maduro
Padrão de Processo - CMMI Níveis
Padrão de Processo - CMMI Nível 1 - Inicial Processo é informal Não há práticas de gestão estabelecidas Planejamento ineficiente ou abandonado durante a execução Produto de sucesso depende do heroísmo das pessoas ou da “sorte”
Padrão de Processo - CMMI Nível 2 - Gerenciado Projeto é planejado Resultados de projetos anteriores podem ser repetidos O projeto é acompanhado e desvios são analisados e corrigidos Requisitos são gerenciados
CMMI – Nível 2 - Gerenciado Áreas de processos Gerência de requisitos Planejamento de projeto Controle e monitoramento de projeto Gerência de acordo com fornecedores Medição e análise (fornecer informação para gerência) Garantia de qualidade do processo e produto Gerência de configuração (manter a integridade do projeto)
Padrão de Processo - CMMI Nível 3 - Definido Processo é padrão Cada projeto adapta o processo padrão para suas necessidades Programa de treinamento é implementado em toda a organização
CMMI – Nível 3 - Definido Áreas de processos Desenvolvimento de requisitos Integração do produto Verificação Validação Foco no processo da organização Definição de processo organizacional Treinamento da organização Gerência de risco
Padrão de Processo - CMMI Nível 4 – Gerenciado quantitativamente Qualidade e desempenho do processo são entendidos em termos estatísticos Resultados das medições são armazenados e servem como base para projetos futuros
CMMI – Nível 4 – Quantitativamente Gerenciado Áreas-chave de processo Desempenho dos Processos da Organização Estabelecer e manter o entendimento quantitativo do desempenho dos processos padrões da organização, dando suporte à qualidade e ao controle da efetividade dos seus processos Gerência quantitativa de Projeto Estabelecer a gerência quantitativa de projeto para melhorar a qualidade e o desempenho
Padrão de Processo - CMMI Nível 5 – Em otimização A organização inteira está voltada para melhoria do processo Introdução de inovações Busca de melhoria de forma pró-ativa, prevenindo a ocorrência de falhas Novas práticas são experimentadas de forma controlada, para melhorar a qualidade e produtividade
CMMI – Nível 5 – Em otimização Áreas-chave de processo Finalidade Desenvolvimento e Inovação Organizacional Inovar e desenvolver melhorias de forma incremental que permitam medir o desempenho de seus processos e tecnologias. Análise e Resolução de Causa Identificar as causas dos defeitos e problemas e tomar decisões para prevenir que esses não aconteçam no futuro.