Análise e Projeto de Sistemas III Aula 3 – Qualidade de Software.
Transcript of Análise e Projeto de Sistemas III Aula 3 – Qualidade de Software.
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
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
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
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
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
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.