• Nenhum resultado encontrado

03-21EngSoft(GerencimantodeQualidade)

N/A
N/A
Protected

Academic year: 2021

Share "03-21EngSoft(GerencimantodeQualidade)"

Copied!
37
0
0

Texto

(1)

Engenharia de Software

Prof. Wilkerson de L. Andrade

Versão resumida e traduzida dos slides originais produzidos por Ian Sommerville, Software Engineering, 7th edition. Chapter 27.

Estes slides foram adaptados dos slides gentilmente cedidos pela professora Patrícia D. L. Machado (DSC/UFCG).

(2)

Gerenciamento de Qualidade de

Software

• Garantir que o nível de qualidade requerido para o software é atingido.

• Envolve definir padrões de qualidade

adequados e procedimentos e assegurar que estes serão seguidos.

• Deve desenvolver uma “cultura de

qualidade” onde qualidade é vista como uma responsabilidade de todos.

(3)

O que é Qualidade?

• No geral, significa que um produto deve atender a sua especificação.

• Isto é mais difícil para sistemas de software:

▫ Podem existir conflitos entre requisitos de

qualidade do cliente (eficiência, confiabilidade, etc.) e requisitos de qualidade do desenvolvedor (manutenibilidade, reusabilidade, etc.);

▫ Alguns requisitos de qualidade são difíceis de especificar de forma não ambígua;

▫ Especificações de software são usualmente incompletas e inconsistentes.

(4)

O Compromisso de Qualidade

• Não podemos esperar até que

especificações sejam melhoradas antes de dar atenção ao gerenciamento de qualidade.

• Precisamos implantar procedimentos de gerência de qualidade mesmo com

(5)

Escopo de Gerência de Qualidade

• Gerência de qualidade é particularmente

importante para sistemas grandes e complexos.

• A qualidade da documentação é um registro de progresso e dá suporte contínuo ao

desenvolvimento a medida que a equipe muda.

• Para sistemas pequenos, gerenciamento de qualidade demanda menos documentação e deve ter enfoque em uma cultura de qualidade.

(6)

Atividades de Gerência de Qualidade

• Estabelece procedimentos organizacionais e padrões de qualidade.

Garantia de Qualidade

• Seleciona procedimentos e padrões aplicáveis para um projeto específico e os modifica se necessário.

Planejamento de Qualidade

• Garante que procedimentos e padrões são seguidos pela equipe de desenvolvimento.

Controle de Qualidade

Gerenciamento de qualidade deve ser separado do gerenciamento do projeto para assegurar independência.

(7)

Gerenciamento de Qualidade e

Desenvolvimento de Software

Processo de desenvolvimento de software Processo de gerenciamento de qualidade D1 D2 D3 D4 D5 Padrões e procedimentos Plano de

(8)

Qualidade de Processo de Produto

• A qualidade de um produto é influenciada pela qualidade do processo de produção.

• Isto é ainda mais importante no

desenvolvimento de software, pois alguns

atributos de qualidade são difíceis de avaliar.

• Porém, existe uma relacionamento complexo e ainda pouco entendido entre processos de desenvolvimento e qualidade de produtos.

(9)

Qualidade Baseada em Processos

Definir processo Desenvolver produto Assegurar a qualidade do produto Padronizar o processo Aprimorar o processo Qualidade OK Não Sim

(10)

Qualidade de Processos na Prática

Definir padrões de processo. Ex. Como revisões devem ser conduzidas.

Monitorar o processo de desenvolvimento para assegurar que padrões estão sendo seguidos. Manter comunicação com gerentes e clientes do

projeto.

Não aplicar práticas inapropriadas simplesmente porque padrões foram estabelecidos.

(11)

Garantia de Qualidade e Padrões

• Padrões são fundamentais para o gerenciamento efetivo de qualidade.

• Existem padrões internacionais, nacionais e organizacionais.

Padrões de Produto definem características

que todos os componentes devem exibir, como, por exemplo, um estilo comum de programação.

Padrões de Processo definem como o

(12)

Importância de Padrões

• Encapsulamento de boas práticas – evita repetição de erros do passado.

• Representam um arcabouço para processos de garantia de qualidade – envolvem a

checagem de conformidade com padrões.

• Provêem continuidade – novos membros podem compreender a organização a partir do entendimento dos padrões que são

(13)

Padrões de Produto e Processo

Padrões de produto Padrões de processo

Formulário de revisão de projeto Conduta de revisão de projeto Estrutura de documento de requisitos Envio do documento para o CM Formato do cabeçalho de método Processo de liberação de versão

Estilo de programação em Java Processo de aprovação de plano de projeto Formato de plano de projeto Processo de controle de mudança

(14)

Problemas com Padrões

• Podem não ser vistos como relevantes e atualizados por engenheiros de software.

• Usualmente envolvem muita burocracia como preenchimento de formulários.

• Se não houver suporte adequado de

ferramentas, trabalho manual tedioso pode ser necessário para manter a documentação associada com os padrões.

(15)

ISO 9000

• Um conjunto de padrões internacionais para gerencia de qualidade.

• Aplicável a diferentes tipos de organizações desde manufatura a serviços.

• ISO 9001 é aplicável a organizações que projetam, desenvolvem e mantém produtos.

• ISO 9001 é um modelo genérico do processo de qualidade que pode ser instanciado por

(16)

ISO 9001

Responsabilidade da gerência Sistema de qualidade Controle de produtos que estão em

não-conformidade

Controle de projeto

Manuseio, armazenamento, empacotamento e entrega

Compras

Produtos fornecidos para o comprador Identificação e rastreabilidade de produto Controle de processo Inspeção e teste

Equipamento de inspeção e teste Status de inspeção e teste Revisão de contrato Ação corretiva

Controle de documento Registros de qualidade Auditorias internas de qualidade Treinamento

(17)

Certificação ISO 9000

• Procedimentos e padrões de qualidade devem ser documentados em um manual de qualidade da organização.

• Um corpo de avaliadores externo pode certificar que o manual da organização está em acordo com os padrões ISO 9000.

• Alguns consumidores requisitam que

fornecedores possuam certificação ISO 9000, apesar de que a necessidade de flexibilidade está sendo cada vez mais reconhecida.

(18)

ISO 9000 e Gerenciamento de

Qualidade

Plano de qualidade Projeto 1 Gerenciamento de qualidade do projeto Manual de qualidade da organização Modelos de qualidade ISO 9000 Processo de qualidade da organização é usado para desenvolver

conhecido como documenta Apoia Plano de qualidade Projeto 2 Plano de qualidade Projeto 3 conhecido como

(19)

Planejamento de Qualidade

• Um plano de qualidade deve estabelecer as qualidades de software desejadas, descrever como elas devem ser avaliadas e definir os atributos de qualidade mais importantes.

• O plano de qualidade deve definir o processo de avaliação de qualidade.

• O plano de qualidade deve estabelecer que padrões organizacionais devem ser

aplicados e, quando necessário, definir novos padrões a serem utilizados.

(20)

Planejamento de Qualidade

• Estrutura geral de um plano de qualidade:

▫ Apresentação do produto;

▫ Planos de produto;

▫ Descrições de processos;

▫ Metas de qualidade;

▫ Riscos e gerenciamento de riscos.

• Planos de qualidade devem ser documentos curtos e sucintos

▫ Se eles forem muito longos, as pessoas não os lerão.

(21)

Atributos de Qualidade de Software

Segurança Facilidade de compreensão Portabilidade Proteção Facilidade de testes Facilidade de uso

Confiabilidade Adaptabilidade Facilidade de reuso

Facilidade de

recuperação Modularidade Eficiência Robustez Complexidade Facilidade de

(22)

Controle de Qualidade

• Envolve a monitoração do processo de

desenvolvimento de software para assegurar que os padrões de garantia de qualidade

estão sendo seguidos.

• Existem duas abordagens para o controle de qualidade:

▫ Revisões de qualidade;

(23)

Revisões de Qualidade

• São o principal método de validação de

qualidade de um processo ou de um produto.

• Um grupo examina parte ou o todo de um

processo ou sistema e sua documentação para descobrir problemas potenciais.

• Há diferentes tipos de revisão com diferentes objetivos:

▫ Inspeções para a remoção de defeitos (produto);

▫ Revisões para avaliação de progresso (produto e processo);

▫ Revisões de qualidade (padrões de produto e processo).

(24)

Medições e Métricas de Software

• A medição de software se dedica a derivar um

valor numérico para algum atributo de um produto de software ou de um processo de software.

• Permite comparações objetivas entre técnicas e processos.

• Embora algumas companhias tenham

introduzido programas de medição, a maior

parte delas ainda não faz o uso sistemático de medição de software.

(25)

Métrica de Software

• Qualquer tipo de medição que se refira a um sistema de software, processo ou

documentação relacionada

▫ Linhas de código, índice de Fog, número de pessoas-dia necessário para desenvolver um componente.

• Permite quantificar o software e o processo de software.

• Pode ser usado para predizer atributos de produto ou controlar o processo de software.

• Métricas de produto podem ser usadas para previsões gerais ou identificar componentes anômalos.

(26)

Medições de Predição e de Controle

Decisões gerenciais Medições de controle Processo de software Medições de predições Produto de software

(27)

Previsão de Métricas

• Uma propriedade de software pode ser medida.

• Existe uma relação entre o que podemos medir e o que queremos saber. Só podemos medir

atributos internos, mas muitas vezes estamos mais interessados em atributos de software externos.

• Essa relação tem sido formalizada e validada.

• Pode ser difícil relacionar o que pode ser medido a atributos de qualidade externos desejáveis.

(28)

Atributos Internos e Externos

Confiabilidade Número de parâmetros de procedimento Complexidade ciclomática Tamanho do programa em linhas de código Número de mensagens de erro Extensão do manual do usuário Facilidade de manutenção Facilidade de uso Portabilidade

(29)

O Processo de Medição

• Um processo de medição de software pode ser parte de um processo de controle de qualidade.

• Os dados coletados durante esse processo devem ser mantidos como um recurso da organização.

• Data collected during this process should be maintained as an organisational resource.

• Uma vez que um banco de dados de medições foi estabelecido, as comparações entre projetos tornam-se possíveis.

(30)

Coleta de Dados

• Um programa de métricas deve ser baseado em um conjunto de dados de processo e

produto.

• Os dados devem ser coletados

imediatamente (sem considerar dados

históricos) e, se possível, automaticamente.

• Há três tipos de coleta de dados automática

▫ Análise estática do produto;

▫ Análise dinâmica do produto;

(31)

Precisão dos Dados

Não colete

dados

desnecessários

As questões a serem respondidas devem ser

decididas com antecedência e os dados necessários identificados. Explique para as pessoas porque os dados estão sendo coletados

Esse processo não deve fazer parte de uma

avaliação pessoal.

Não confie na memória

Colete os dados quando os mesmos são gerados,

não quando o projeto terminar.

(32)

Métricas de Produtos

• Uma métrica de boa qualidade deve predizer a qualidade de um produto.

• Tipos de métricas de produto:

▫ Métricas dinâmicas são coletadas por meio de

medições realizadas em um programa em execução;

▫ Métricas estáticas são coletadas por meio de

medições realizadas em representações do sistema.

• Métricas dinâmicas ajudam a avaliar a eficiência e a confiabilidade.

• Métricas estáticas ajudam a avaliar a

complexidade, a facilidade de compreensão e a facilidade de manutenção.

(33)

Métricas Estáticas e Dinâmicas

Métricas dinâmicas estão estreitamente relacionadas com os atributos de qualidade de software

É relativamente fácil medir o tempo de resposta de um sistema (atributo de performance) ou o número de falhas (atributo de confiabilidade). Métricas estáticas possuem um relacionamento indireto com atributos de qualidade

Você precisa tentar derivar um relacionamento entre essas métricas e propriedades como complexidade, facilidade de compreensão e manutenibilidade.

(34)

Métricas de Produto de Software

Métrica de

Software Descrição

Fan-in/Fan-out Fan-in é um medida do número de funções ou métodos que

chamam alguma outra função ou método (digamos X). Fan-out é o número de funções chamadas pela função X. Um valor alto para fan-in significa que X está firmemente acoplado com o resto do projeto, e mudanças em X terão grande impacto. Um alto valor para fan-out sugere que a complexidade geral de X pode ser alta devido à complexidade da lógica de controle necessária para coordenar os componentes chamados.

Extensão de código

É uma medida do tamanho de um programa. Geralmente, quanto maior for o tamanho do código de um componente, mais complexo e propenso a erros esse componente será. A extensão de código foi mostrada como uma das métricas mais confiáveis de previsão de propensão a erros em componentes.

(35)

Métricas de Produto de Software

Métrica de

Software Descrição

Complexidade ciclomática

É uma medida da complexidade de controle de um programa.

Essa complexidade de controle pode estar relacionada à facilidade de compreensão do programa.

Extensão de identificadores

É uma medida da extensão média de identificadores distintos em um programa. Quanto maiores forem os identificadores, mais eles serão significativos e, por isso, mais compreensível será o

programa. Profundidade

de aninhamento de declarações condicionais

É uma medida da profundidade de aninhamento de declarações IF em um programa. As declarações IF profundamente aninhadas são difíceis de compreender e são potencialmente propensas a erros.

Índice de Fog É uma medida da extensão média das palavras e da sentenças em documentos. Quanto maior for o valor para o índice de Fog, mais difícil será a compreensão de documentos.

(36)

Métricas Orientadas a Objetos

Métrica orientada a objetos Descrição Profundidade de árvore de herança

Representa o número de níveis discretos na árvore de herança da qual as subclasses herdam atributos e operações (métodos) das superclasses. Quanto maior for a

profundidade da árvore de herança, mais complexo será o projeto. Muitas classes de objeto podem ser compreendidas ao se compreender as classes de objeto das folhas da árvore.

Fan-in/fan-out de método

Está diretamente relacionado com fan-in e fan-out e significa essencialmente a

mesma coisa. Contudo, pode ser apropriado fazer uma distinção entre chamadas de outros métodos dentro do objeto e chamadas com base em métodos externos.

Métodos ponderados por classe

Este é o número de métodos incluídos em um classe, ponderados pela complexidade de cada método. Portanto, um método simples pode ter uma complexidade de 1 e um método grande e complexo pode ter um valor muito mais alto. Quanto maior for o valor dessa métrica, mais complexa será a classe de objeto. Os objetos complexos são, provavelmente, mais difíceis de compreender. Eles podem não ser logicamente coesos, de modo que não podem ser reusados eficazmente como superclasses em um árvore de herança.

Número de operações sobrescritas

Este é o número de operações, em uma superclasse, sobrescritas em uma subclasse. Um valor alto dessa métrica indica que a superclasse usada pode não ser uma classe-mãe apropriada para a subclasse.

(37)

Análise de Medições

• Nem sempre a compreensão do que os dados significam é óbvia

▫ A análise dos dados coletados é muito difícil.

• Estatísticos profissionais devem ser consultados se houver disponibilidade.

• A análise de dados deve levar em consideração circunstâncias locais.

Referências

Documentos relacionados

Além disso, a falta de esclarecimento de toda a comunidade escolar sobre sua importância para a melhoria do desempenho dos educandos também contribuiu para que os pais não o

O trabalho intitulado PROJETO DE INTERVENÇÃO SOBRE A IMPLANTAÇÃO DA SISTEMATIZAÇÃO DA ASSISTÊNCIA DE ENFERMAGEM (SAE) PARA PACIENTES COM DIABETES MELLITUS NO

Este trabalho tem como objetivos apresentar os problemas ocasionados pelo recebimento de mensagens não solicitadas e pesquisar técnicas variadas no combate ao spam, em especial,

Embora não seja necessário, os conhecimentos do ensino médio sobre divisão de polinômios, funções polinomiais, teorema do resto e do fator e uma revisão so- bre o algoritmo

Obtivemos as respostas listadas a seguir: Sujeito 1: “Brincar na educação infantil é muito importante para o desenvolvimento da criança que nessa fase tem o lúdico como elemento

No Quadro 14, está a representação da incompatibilidade número 10 onde na modelagem BIM, conforme o projeto estrutural, a passagem da eletrocalha foi projetada a 2,97m

Neste sentido, o nosso trabalho foi realizado em dois momentos: o Campo de Observação com 20 horas semanais e Campo de Docência com 20 horas semanais, encontros significativos

A forma em que as empresas do arranjo do segmento cama-mesa-banho estão inseridas no mercado externo pode ser enquadrada em relações de redes de empresas, nas