24
Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção com qualidade. “Tem-se dado grande importância ao processo como forma de se garantir um software de melhor qualidade.” Qualidade Qualidade

Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção

Embed Size (px)

Citation preview

Page 1: Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção

QualidadeQualidade é um dos principais objetivos da Engenharia de Software.

Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção com qualidade.

“Tem-se dado grande importância ao processo como forma de se garantir um software de melhor qualidade.”

QualidadeQualidade

Page 2: Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção

QUALIDADE enfatiza três importantes conceitos:

1) Requisitos de Software formam a base a partir da qual a qualidade é avaliada.

Falta de concordância com os requisitos é falta de qualidade.

2) Padrões especificados definem um conjunto de Critérios de Desenvolvimento que orientam a maneira como o software é construído. Se o critério não for seguido, certamente haverá falta de qualidade.

3) Requisitos Implícitos que freqüentemente não são mencionados. (ex: desejo de boa manutenibilidade). Se o software atende aos requisitos explícitos, mas falha nos requisitos implícitos, a qualidade é suspeita.

QualidadeQualidade

Page 3: Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção

Qualidade?Qualidade?

A priori Qualidade é um conceito muito subjetivo, pois dependendo da percepção de cada!

Pode se distinguir dois pontos de

vista importantes:

– Ponto de vista do cliente;– Ponto de vista do fornecedor.

Page 4: Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção

Ponto de Vista do Ponto de Vista do ClienteCliente A qualidade de um produto está ligada ao:

– seu desempenho;

– comprimento fiel das especificações;

– relação custo/benefício;

– seu padrão de excelência em relaçãoa um padrão mínimo exigido;

– condição de atendimento durante

o processo de aquisição;

– tradição no mercado;

– adequação ao uso de cada um;– segurança de uso que ele traz;

Page 5: Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção

Ponto de Vista do Ponto de Vista do FornecedorFornecedor

– Capacidade de levar a satisfação ao

cliente;

– relação custo/benefício;

– adequação ao mercado, à concorrência,

e aos clientes.

Page 6: Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção

Níveis Estruturais de um Níveis Estruturais de um Sistema de QualidadeSistema de Qualidade

Nível EstratégicoAlta gerência

Nível TáticoMédia Gerência

Em todos os níveis

Nível operacional

Supervisores, Técnicos e Operadores

PQ

MQ

PO

IT - EP - D

RQ

O que?

Como?

Page 7: Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção

Visões sobre a importância da qualidade Visões sobre a importância da qualidade do produto e do processodo produto e do processo

Visão que aborda a qualidade do produtoqualidade do produto– Funcionalidade, confiabilidade, utilizabilidade,

eficiência, manutenibilidade e portabilidade.

Visão que aborda a qualidade do processoqualidade do processo– Dos requisitos do usuário à entrega do produto

final, existe um processo de desenvolvimento complexo e dividido em fases, que pode comprometer a qualidade do software.

Page 8: Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção

Modelo de Processo de Modelo de Processo de SoftwareSoftware

Modelo de Processo é representado por um conjunto seqüencial de atividades, objetivos, transformações e eventos que encapsulam estratégias para o cumprimento da evolução do software.

A efetividade de um modelo depende da adequação deste com as metas do projeto, ex. confiabilidade, produtividade e recursos disponíveis.

Um modelo de processo deve ser flexível.

Page 9: Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção

Gerência de Processo de Gerência de Processo de SoftwareSoftware

A gerência de processo objetiva a geração de produtos de acordo com o planejado e, ao mesmo tempo, melhorar a capacidade de produzir software com mais qualidade.

Melhor capacidade de lidar com o software:Passo 1. Compreender o estado atual do processo;Passo 2. Desenvolver uma visão do processo desejado;Passo 3. Estabelecer ações para a melhoria do processo;Passo 4. Gerar um plano para acompanhar estas ações;Passo 5. Compreender os recursos para execução do plano;Passo 6. Recomeçar a partir do Passo 1.

Para a evolução do processo de software é necessário ter uma maneira para medí-lo.

Page 10: Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção

Fatores da Qualidade de Software ( McCall)Fatores da Qualidade de Software ( McCall)

Manutenibilidade: Posso consertá-lo? Flexibilidade: Posso mudá-lo Testabilidade:

Posso testá-lo? Portabilidade:

Poderei usá-lo em outra máquina? Reusabilidade: Poderei reutilizá-lo em outra máquina? Interoperabilidade: Poderei compor uma interface

com outro sistema?

Page 11: Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção

Corretitude: Ele faz aquilo que eu quero?

Confiabilidade: Ele se comporta com precisão o tempo todo?

Eficiência: Ele rodará no meu hardware tão bem quanto possível?

Integridade: Ele é seguro?

Usabilidade: Ele foi projetado para o usuário?

Fatores da Qualidade de Software ( McCall)Fatores da Qualidade de Software ( McCall)

Page 12: Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção

1. A atividade de teste é o processo de executar um programa com a intenção de descobrir um erro;

2. Um bom caso de teste é aquele que tem uma elevada probabilidade de revelar um erro ainda não descoberto;

3. Um teste bem-sucedido é aquele que revela um erro ainda não descoberto.

Técnicas de Teste de Software

Page 13: Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção

    Projetar testes que descubram sistematicamente diferentes classes de erros e façam-no com uma quantidade de tempo e esforço mínimos. Se a atividade de teste for conduzida com sucesso, ela descobrirá erros no software. A atividade de teste não pode mostrar a ausência de bugs;ela só pode mostrar se defeitos de software estão presentes. Se erros graves forem encontrados com regularidade a qualidade e a confiabilidade de software são suspeitas. Se erros facilmente corrigíveis forem encontrados a qualidade e a confiabilidade do software estão aceitáveisou os testes são inadequados para revelar erros graves. Se não for encontrado erro a configuração de teste não foi suficientemente elaborada e erros estão escondidos no software.

Objetivos da Atividade de Teste

Page 14: Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção

Abordagens de Teste

• Teste de Caixa Preta •Teste de Caixa Branca •Teste de Caminho Básico

• Caminho Independente • Complexidade Ciclomática

•Teste de Estrutura de Controle

• Teste de Condição• Teste de Fluxo de Dados• Teste de Laços

Page 15: Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção

Teste de Caixa Preta

Concentram-se nos requisitos funcionais do software.O teste de caixa preta procura descobrir erros nas seguintes categorias:

1) funções incorretas ou ausentes2) erros de interface3) erros nas estruturas de dados ou no acesso a bancos de dados externos4) erros de desempenho5) erros de inicialização e término

Page 16: Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção

Teste de Caixa Branca

É um método de projeto de casos de teste que usa a estrutura de controle do projeto procedimental para derivar casos de teste. casos de teste. Podem ser derivados casos de teste que: Podem ser derivados casos de teste que:

(1) garantam que todos os caminhos independentes dentro de um módulo tenham sido exercitados pelo menos uma vez.(2) exercitem todas as decisões lógicas para valores falsos ou verdadeiros.(3) executem todos os laços em suas fronteiras e dentro de seus limites operacionais.(4) exercitem as estruturas de dados internas para garantir a sua validade.

Page 17: Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção

Teste de Caminho Básico

O método de caminho básico possibilita que o projetista do caso de teste derive uma medida de complexidade lógicade um projeto procedimental e use essa medida como guiapara definir um conjunto básico de caminhos de execução.

Page 18: Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção

Verificação e Validação

Verificação: refere-se ao conjunto de atividades que garante que o software implementa corretamente um função específica.

“Estamos construindo certo o produto?” Validação: refere-se ao conjunto de atividades que garante que o software que foi construído é “rastreável” às exigências do cliente.

“Estamos construindo o produto certo?”

Page 19: Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção

Organização para Realização de Teste

Quando o teste se inicia há um conflito de interesses:

         Desenvolvedores: interesse em demonstrar que o programa é isento de erros.

         Responsáveis pelos testes: interesse em mostrar que o programa tem erros. Do ponto de vista psicológico:

    Análise, Projeto e Codificação de Software são tarefas construtivas

Teste é tarefa destrutiva

Page 20: Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção

Teste de Unidade: concentra-se em cada unidade do software, de acordo com o que

é implementado no código fonte.

Teste de Integração: concentra-se no projeto e na construção da arquitetura de

software.

Teste de Validação: os requisitos estabelecidos como parte da análise de

requisitos de software são validados em relação ao software que foi construído.

Teste de Sistema: o software e outros elementos do sistema são testados como um todo.

Uma Estratégia de Teste de Software

Page 21: Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção

Manutenção de Software 1. Alterações efetuadas no software depois de sua liberação.

2. As alterações ocorrem por diversas razões.

3. As razões para as alterações determinam a categoria demanutenção.

4. Fase mais problemática do Ciclo de Vida de Software

5. Pode despender mais de 70% de todo esforço de uma Organização6. Esses sistemas devem continuar rodando e as alterações

são inevitáveis

Page 22: Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção

7. Por que é exigida tanta Manutenção e por que é despendido tanto Esforço nessa atividade?

• Idade Média de 10 a 15 anos• Quando foram implementados , o tamanho do programa e espaço de armazenamento eram o principal interesse• Migração Para Novas Plataformas• Sistemas mau estruturados• Melhoramentos Para Atender Novas Necessidades• Nenhuma preocupação com a Arquitetura Global• Codificação, Lógica e Documentação ruins

Manutenção de Software

Page 23: Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção

Categorias de Manutenção 1. Identificar e Corrigir Erros Manutenção Corretiva

2. Adaptar o Software ao Ambiente Manutenção Adaptativa

3. Atender Pedidos do Usuário para : Modificar Funções Existentes, Incluir Novas Funções e Efetuar Melhoramentos Gerais

Manutenção Perfectiva

4. Melhorar a manutenibilidade ou confiabilidade futuras e fornecer uma base melhor para futuros melhoramentos

Manutenção Preventiva

Page 24: Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção

Tarefas da Manutenção 1. Estabelecer uma organização para a manutenção;

2. Descrever o procedimento de avaliação e comunicação;

3. Definir sequencias padronizadas de eventos ( para os pedidos de manutenção);

4. Estabelecer procedimento para registrar a história das atividades de manutenção;

5. Definir critérios de revisão e avaliação.