Logo Passei Direto
Buscar

Ferramentas de estudo

Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Engenharia de Software
Aula 4
Profa. Maristela Weinfurter Teixeira
Organização da Aula
Qualidade de Software
• Conceitos
• Garantia da Qualidade
• Testes
• Métricas
Qualidade de Software
– Conceitos
• Quais são as características genéricas de um software com alta 
qualidade?
• Como revisar a qualidade 
e como são realizadas revisões eficazes?
� O que significa garantia da qualidade de software?
� Quais são as estratégias para testes de software?
� Quais são os métodos usados para projetar casos de testes 
eficazes?
� Como gerenciar e controlar mudanças sempre que ocorrem quando 
um 
software já foi criado?
� Quais medidas e métricas podem ser usadas para avaliar a qualidade 
dos modelos 
de requisitos, projeto, código-fonte e casos de testes?
Respondemos a todas 
as questões?
� Então estamos aptos a desenvolver software com um bom padrão 
de qualidade
� Quando pensamos em qualidade de software?
• Década de 90
� Qual o motivo?
• Orçamentos desperdiçados com software que 
não apresentava as características e as funcionalidades 
prometidas
� Apesar de tudo, código mal feito continua a ser um 
fantasma no mercado de software
� David Garvin, da Harvard Business School, diz que: 
“qualidade é um conceito complexo e multifacetado”
� E pode ser descrito segundo cinco pontos 
de vista diferentes
1. Visão transcendental: algo que se reconhece 
imediatamente, 
sem definições
2. Visão do usuário: metas específicas
3. Visão do produto: características como 
funções e recursos
4. Visão baseada em valor: quanto o cliente está 
disposto a pagar pelo produto
5. Visão do fabricante: especificação original
� No desenvolvimento de software, a qualidade de um projeto 
engloba o grau de atendimento às funções e características 
especificadas no modelo de requisitos
� Para Tom DeMarco (98), a qualidade de um produto deve 
transformá-lo 
num lugar melhor
� E como pensar em qualidade de 
software então?
� Gestão da qualidade
� Produto útil
� Valor agregado para fabricante e usuário
� Dimensões da QS
• Qualidade do desempenho
• Qualidade dos recursos
• Confiabilidade
• Conformidade
• Durabilidade
• Facilidade de manutenção
• Estética
• Percepção
� Fatores de Qualidade
• Correção
• Confiabilidade
• Eficiência
• Integridade
• Usabilidade
• Facilidade de manutenção
• Flexibilidade
• Testabilidade
• Portabilidade
• Reusabilidade
• Interoperabilidade
Facilidade de 
manutenção, 
flexibilidade e 
testabilidade
Portabilidade, 
reusabilidade
e interope-
rabilidade
Revisão do 
produto
--------------
Transição 
do produto
Correção, 
confiabilidade, 
usabilidade, 
integridade 
e eficiência
Qualidade de Software
– Garantia da Qualidade
Fatores de Qualidade
• ISO 9126 – padrão desenvolvido para identificação de 
atributos fundamentais para qualidade de software
� ISO 9126
1. Funcionalidade
2. Confiabilidade
3. Usabilidade
4. Eficiência
5. Facilidade de manutenção
6. Portabilidade
� Software “bom o suficiente”
• Funções e características 
de alta qualidade
• Usuários desejam o software
• Funções especializadas
� Custo da qualidade
• Custo de prevenção
• Custo de avaliação
• Custo de falhas
� Custo médio
• US$ 977 por erro – na fase de codificação
• US$ 7.136 por erro – na fase de testes
� Custo X Erros e defeitos
� Riscos
• Aumentam para desenvolvedor e usuários quando a 
qualidade 
do software é baixa
� Negligência e Responsabilidade Civil
• Sistema lento
• Erros
• Sem aprovação do usuário
• Litígio
• Usuários X desenvolvedor
� Qualidade e Segurança
• Pirataria
• Riscos de segurança
• Software inseguro
• Muitas falhas
� Ações Administrativas
• Estimativa
• Cronograma
• Riscos
� Métodos de Engenharia de Software
• Técnicas de gerenciamento de software
• Controle de qualidade
• Garantia da qualidade
� Elementos GQ
• Padrões (IEEE e ISO)
• Revisões e auditorias
• Testes
• Coleta e análise de erros/ defeitos
• Gerenciamento de mudanças
• Educação
• Gerência de fornecedores
• Administração da segurança
• Proteção
• Administração de riscos
Meta Atributo Métrica
Qualidade das 
necessidades Ambiguidade
Número de modificadores 
ambíguos (por exemplo, 
muitos, grande, amigável)
Completude Número de TBA, TBD
Compreen-
sibilidade
Número de seções/subseções
Volatilidade
Número de mudanças por 
requisito
Tempo (por atividade) quando 
é solicitada a mudança
Facilidade de 
atribuição
Número de requisitos não 
atribuíveis ao projeto/código
Clareza do 
modelo
Número de modelos UML
Número de páginas descritivas 
por modelo
Número de erros UML
Qualidade 
do projeto
Integridade da 
arquitetura
Existência do modelo de arquitetura
Número dos 
componentes
Número de componentes que se 
atribui ao modelo da arquitetura
Complexidade do projeto procedural
Complexidade 
da interface
Número médio de cliques para 
chegar a uma função ou conteúdo 
típico
Apropriabilidade do layout
Qualidade 
do código
Padrões Número de padrões usados
Complexidade Complexidade ciclométrica
Facilidade de 
manutenção
Fatores do projeto (capítulo 8)
Compreensibilidade Porcentagem de comentários 
internos
Convenções de atribuição de 
variáveis
Eficiência do 
controle de 
qualidade
Reusabilidade Porcentagem de componentes 
reutilizados
Documentação Índice de legibilidade
Alocação de 
recursos
Porcentagem de horas de 
pessoal por atividade
Taxa de 
completude
Tempo de finalização real X 
previsto
Eficácia da 
revisão
Ver métricas de revisão 
(capítulo 14)
Eficácia dos 
testes
Número de erros encontrados 
e criticalidade
Esforço exigido para corrigir 
um erro
Origem do erro
� Ferramentas de GQ
• Estatísticas para GQ
• Seis Sigma para ES
• Medidas de Confiabilidade
• Proteção de Software
• Padrões de Qualidade ISO 9000
Qualidade de Software –Testes
• Teste é um conjunto de atividades que podem ser planejadas com 
antecedência 
e executadas sistematicamente
• Definição de um modelo (template) para testes
� Estratégias de testes
• Verificação e validação (V&V)
� Organização
� Estratégias de teste
� Estratégias de testes de software convencional
• Teste de unidade
• Teste de integração
� Estratégias de testes de software OO
• Teste de unidade
• Teste de integração
� Estratégias de testes de software WebApps
• Testado por usuários finais controlados 
e monitorados
• Teste de validação
• Teste alfa
• Revisão da configuração
• Teste de sistema
• Teste de recuperação
• Teste de segurança
• Teste de esforço
• Teste de desempenho
• Teste de disponibilização
� Visões interna e externa
• Teste Caixa-branca
• Teste do caminho básico
• Teste de estrutura de controle
• Teste Caixa-preta
• Teste baseado em modelos
• Teste para ambientes, arquitetura e apps especializados
• Padrões de teste
• Testes de OOA e OOD
• Teste de conteúdo
• Teste de interface
• Teste de usabilidade
• Teste de nível de componente
• Teste de navegação
• Teste de configuração
• Teste de segurança
• Teste de desempenho
Qualidade de Software
– Métricas
• Estrutura de métricas
• Medidas
• Métricas
• Indicadores
� Princípios de medição
• Formulação
• Coleção
• Análise
• Feedback
� Uma métrica deve ter as propriedades matemáticas 
desejadas. O valor damétrica deverá estar em um intervalo 
significativo
� Cada métrica deverá ser validada empiricamente em uma 
ampla variedade de contextos antes de ser publicada ou 
usada para tomada de decisões
� As métricas e medições devem ser:
• simples e computáveis
• empiricamente e intuitivamente persuasivas
• consistentes e objetivas
• consistentes no seu uso 
das unidades e dimensões
• independente da linguagem de programação
• um mecanismo efetivo para feedback de alta qualidade
� Function Point ou métricas baseadas em função
• Medida da funcionalidade fornecida pelo software
• Ponto de função mede as funcionalidades fornecidas por 
um sistema
• Estima custo ou trabalho para projetar, codificar 
e testar software
• Prevê número de erros que serão encontrados durante 
o teste
• Prevê o número de componentes ou número de linhas 
projetadas
• Avaliação qualitativa da complexidade do software
� Medição OO
� Métricas para modelo de requisitos
� Métricas para qualidade de especificação
� Métricas para modelo de projeto
� Métricas orientadas 
a classe
� Métricas de projeto em nível de componente
� Métricas orientadas 
a operação
� Métricas de projeto de interface de usuário
� Métricas de projeto 
para WebApps
� Métricas para teste
� Métricas para manutenção
Referências de Apoio
•PAGE-JONES, Meilir. Fundamentos do 
desenho orientado a objeto com UML. 
São Paulo, Pearson, 2001. 
•PFLEEGER, Shari L. Engenharia de 
software: teoria e prática. 2. ed. São 
Paulo, Prentice Hall, 2004.
� PRESMAN, Roger. Engenharia de software. 7. ed. Porto Alegre: 
Bookman, 2011.
� SOMMERVILLE, Ian. Engenharia de software. 9. ed. São Paulo: 
Pearson, 2011.

Mais conteúdos dessa disciplina