• Nenhum resultado encontrado

aula14

N/A
N/A
Protected

Academic year: 2021

Share "aula14"

Copied!
48
0
0

Texto

(1)

Gerenciamento de Qualidade

Engenharia de Software 2o. Semestre de 2005

UNIVERSIDADE ESTADUAL PAULISTA

INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS

(2)

Gerenciamento de Qualidade

Gerenciar a qualidade tanto

do processo como do

produto de software

(3)

Tópicos

● Garantia e padrões de qualidade ● Planejamento de qualidade

● Controle de qualidade

(4)

Gerenciamento da qualidade de

software

● Preocupa-se em garantir que o nível exigido de

qualidade do produto de software seja atingido

● Envolve definir procedimentos e padrões de

qualidade que devem ser seguidos

Devem ajudar a desenvolver uma “cultura de

qualidade” onde qualidade deve ser vista como

(5)

O que é qualidade?

● Classicamente, a noção de qualidade é a de que o

produto desenvolvido deve cumprir com suas especificações

● Para sistemas de software, existem problemas:

• O desenvolvedor também possui requisitos de qualidade (por ex. facilidade de manutenção)

• Alguns requisitos de qualidade são difíceis de serem especificados de forma não ambígua. (Ex. facilidade de manutenção).

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

(6)

O compromisso com a qualidade

● Não se pode esperar por uma especificação

perfeita antes de implantar procedimentos de gerenciamento de qualidade.

● Deve-se implantar procedimentos para melhorar

a qualidade dentro das restrições impostas por uma especificação imperfeita.

● O gerenciamento de qualidade não se preocupa

somente em reduzir defeitos, se preocupa reduzir defeitos

(7)

Atividades do gerenciamento de

qualidade

● Garantia de qualidade

• Estabelecer uma estrutura de procedimentos e de padrões organizacionais para qualidade.

● Planejamento de qualidade

• Seleção e ajustes de procedimentos e de padrões de qualidade para um projeto específico.

● Controle de qualidade

• Garantir que os procedimentos e padrões estão sendo seguidos pela equipe de desenvolvimento de software.

O gerenciamento de qualidade deve ser uma atividade

(8)

Gerenciamento de qualidade e desenvolvimento de software Processo de desenvolvimento de software Processo de gerenciamento de qualidade Padrões e procedimentos Plano de qualidade Relatórios de revisão De qualidade

(9)

ISO 9000

● Padrão internacional para o gerenciamento de

qualidade.

● Aplicável a uma gama de organizações, desde a

industria de manufatura até as indústrias de serviços.

● ISO 9001 é aplicável a organizações que projetam,

desenvolvem e dão manutenção a produtos

● ISO 9001 é um modelo genérico de um processo de

(10)

ISO 9001 – áreas cobertas

Treinamento Auditorias internas de qualidade

Identificação e facilidade de rastreamento do produto

Produtos fornecidos para o comprador

Ação corretiva Revisão do contrato

Status de inspeção e teste Equipamentos de inspeção e teste

Registros de qualidade Controle de documento

Compras Manuseio, armazenamento, embalagem e

entrega

Controle de projeto Controle de produto que não estão em

conformidade

Sistema de qualidade Responsabilidade de gerenciamento

(11)

Certificação ISO 9000

● Os procedimentos de garantia de qualidade devem ser

documentados em um manual de qualidade organizacional

● Instituições independentes podem certificar que o

processo de qualidade de uma organização, segundo o manual, está em conformidade com a ISSO 9001

● Cada vez mais, os clientes procuram a certificação da

ISO 9000 em fornecedores, como indicativo do nível de seriedade com que consideram a qualidade.

(12)

Padrões são a chave para gerenciamento de qualidade

efetivos.

● Podem ser internacionais, nacionais, organizacionais ou

padrões de projeto.

Padrões de produto são os padrões que se aplicam ao

produto de software em desenvolvimento. Ex: estilo de programação, etc.

Padrões de processo definem os processos a serem

seguidos durante o desenvolvimento de software. Ex. definições de especificação, processos de projeto e validação, e documentos que devem ser gerados

(13)

● Encapsulam as melhores práticas – evitam a

repetição de erros passados.

● Infra estrutura para o processo de garantia de

qualidade – envolve a verificação de conformidade com os padrões

● Ajudam em termos de continuidade – todos os

engenheiros de uma organização adotam as mesmas práticas – o esforço de aprendizado é reduzido.

(14)

Padrões de produto e de

processo

Submissão de documentos a CM (gerenciamento de configuração) Estrutura do documento de requisitos

Conduta de revisão de projeto Formulário de revisão de projeto

Padrões de processo Padrões de produto

Processo de liberação de versão Modelo de cabeçalho de procedimento

Processo de registro de teste Formulário de pedido de mudança

Processo de controle de mudança Modelo do plano de projeto

Processo de aprovação do plano de projeto Estilo de programação em Java

(15)

● A qualidade de um produto desenvolvido é diretamente

influenciado pela qualidade do processo de produção.

● Particularmente importante em desenvolvimento de

software, uma vez que é difícil avaliar atributos de qualidade do produto sem utilizar o software por um período longo.

● Contudo, a relação entre a qualidade de processo e do

produto em produção é complexa – a modificação do processo nem sempre conduz à melhoria da qualidade.

Qualidade de produto e de

processo

(16)

Qualidade baseada em processo

● Ligação direta entre o processo e produto em

produtos manufaturados.

● Mais complexo em software pois:

• A aplicação de habilidades individuais e experiências é

particularmente importante no desenvolvimento de software. • Fatores externos, tais como novidade de uma aplicação ou

pressão comercial para a liberação rápida de um produto, podem afetar o produto.

(17)

Qualidade baseada no processo

Defina o processo Desenvolva O produto Avalie a qualidade Do produto Melhore o processo Padronize o processo Qualidade OK? sim não

(18)

● Definição de padrões de processo, como por

exemplo: como conduzir revisões, quando devem ocorrer, etc.

● Monitorar o processo de desenvolvimento, a fim

de assegurar que os padrões estão sendo seguidos.

● Relatar o processo de software para a gerência

de projeto e para o comprador do software.

Atividades de gerenciamento de

qualidade de processo

(19)

Planejamento de qualidade

● Um plano de qualidade deve estabelecer as

qualidades desejadas para o produto e como essas qualidades devem ser avaliadas.

● Deve definir o processo de garantia de

qualidade.

● Deve selecionar os padrões organizacionais

apropriados a um determinado produto e

processo de desenvolvimento e, se necessário, definir novos padrões.

(20)

Estrutura do plano de qualidade

● Introdução sobre o produto ● Planos para o produto

● Descrições de processo ● Metas de qualidade

● Riscos e gerenciamento dos riscos.

Planos de qualidade devem ser documentos sucintos.

(21)

Atributos de qualidade do

software

Facilidade de uso Testabilidade Proteção Portabilidade Facilidade de compreensão Segurança Facilidade de aprendizado Complexidade Robustez Eficiência Modularidade Capacidade de recuperação Facilidade de reuso Facilidade de adaptação Confiabilidade

(22)

Controle de qualidade

● Supervisionar o processo de desenvolvimento

de software para garantir que os procedimentos e os padrões de garantia de qualidade seja

seguidos.

● Duas abordagens para o controle de qualidade

• Revisões de qualidade

• Avaliação automática de software e medição quantitativa de alguns atributos de software

(23)

Revisões de qualidade

● O principal método de validar a qualidade de um

processo ou de um produto.

● Revisores examinam partes ou todo o processo

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

● Existem diferentes tipos de revisões com

diferentes objetivos

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

• Revisões para avaliar o progresso (produto e processo) • Revisões de qualidade (produto e padrões)

(24)

Tipos de revisões

Realizar uma análise técnica dos

componentes ou da documentação do produto, a fim de encontrar inconsistências entre a especificação e o projeto, código ou documentação dos componentes e garantir Revisões de qualidade

Fornecer informações à gerência sobre o progresso geral do projeto. Essa é uma revisão de processo e de produto, e se preocupa com custos, planos e prazos. Revisões de progresso

Detectar erros detalhados nos requisitos, nos projetos ou no código. A revisão deve ser orientada por uma lista de possíveis erros,

Inspeções de projeto ou programa

Objetivo Tipo de revisão

(25)

Medição e métricas de software

● Medição de software se preocupa em obter um

valor numérico para alguns atributos de um produto ou de um processo de software.

● Permite comparações objetivas entre técnicas e

processos.

● Algumas organizações introduziram programas

de medições, porém o uso sistemático de medições ainda não é comum.

(26)

● Qualquer tipo de medição que se refira a um sistema de

software, processo ou documentação relacionada

• Linhas de código em um programa, número de pessoas-dia

necessário para desenvolver um componente, número de defeitos relatados em um produto de software fornecido, etc.

● Permite que o sofware e o processo de desenvolvimento

de software sejam quantificados

● Medidas do processo de software ou produto

● Podem ser usadas para estimar atributos do produto

(métricas preditivas) ou controlar o processo de software

(27)

Métricas preditivas e de controle

Processo de software Decisões de gerenciamento Medições de controle Produtos de software Medições preditivas

(28)

● Uma propriedade do software pode ser medida ● Existe um relacionamento entre o que podemos

medir e o que queremos saber.

● Esse relacionamento pode ser formalizado e

validado.

Pode ser difícil relacionar o que pode ser medido com os atributos de qualidade desejados.

(29)

Relação entre atributos internos e

externos de software

Manutenibilidade Confiabilidade Portabilidade Facilidade de uso Número de parâmetros de procedimento Complexidade ciclomática Tamanho do programa em Linhas de código

Número de mensagens de erro

(30)

O processo de medição

● Um processo de medição pode ser parte de um

processo de controle de qualidade.

● Dados coletados durante esse processo devem

ser mantidos como um recurso organizacional (dados históricos)

● Uma vez estabelecido um banco de dados de

medição, comparações entre projetos podem ser efetuadas e métricas específicas podem ser

(31)

● Métricas devem predizer a qualidade do produto ● Classes de métricas de produto

• Métricas dinâmica – coletadas por medições feitas de um programa em execução

• Métricas estáticas – coletadas por medições feitas das

representações do sistema (projeto, programa, documentação) Métricas dinâmicas ajudam a avaliar a eficiência e

confiabilidade; métricas estáticas ajudam a avaliar a

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

(32)

Métricas estáticas e dinâmicas

● Métricas dinâmicas estão intimamente

relacionadas com os atributos de qualidade do software

• É relativamente fácil medir o tempo de resposta de um sistema (atributo de performance) ou número de falhas (atributo de

confiabilidade)

● Métricas estáticas tem um relacionamento

indireto com atributos de qualidade

• É preciso derivar um relacionamento entre essas métricas e propriedades como complexidade, legibilidade e facilidade de manutenção.

(33)

Métricas de produto de software

Medida do tamanho de um programa.

Tamanho do código

Medida da complexidade de controle de um programa. Pode estar relacionada com a

facilidade de compreensão. Complexidade ciclomática

Descrição Métricas de software

Mede o comprimento das variáveis. Quanto maior, mais compreensível o programa. Extensão dos identificadores

Fan-in - Medida do número de funções que chamam outra função. Fan-out é o número de funções que são chamada pela função.

(34)

Métricas de software orientado a

objetos

Quanto mais profunda, mais complexo é o projeto.

Profundidade da árvore de herança

Idem ao software convencional. Deve-se fazer uma distinção entre as

chamadas de outros métodos dentro do objeto e chamadas de métodos

externos. Método de Fan-in/Fan-out

Descrição Métricas de software

Um alto valor para essa métrica indica que a superclasse utilizada pode não Número de operações sobrepostas

(overloading)

Número de métodos em uma classe ponderados pela complexidade de cada método.

(35)

Análise de medições

● A dificuldade está em compreender o que as

medidas significam

• A análise dos dados coletados é bastante difícil

● Profissionais da área de estatística podem

oferecer ajuda valiosa.

● A Análise dos dados deve levar em conta as

(36)

● Entender os processos existentes

● Introduzir alterações no processo para atingir objetivos

organizacionais que, geralmente, são melhorar a

qualidade do produto, reduzir os custos e o tempo de desenvolvimento

● A maioria da literatura relacionada a melhoria de

processo tem se concentrado na redução de defeitos. Isso reflete a grande preocupação da indústria em

relação a qualidade de seus produtos.

● Outros atributos do processo podem ser o alvo de

melhorias.

(37)

Atributos de processo

Até que ponto as atividades do processo podem ser apoiadas por ferramentas CASE?

Facilidade de suporte

O processo pode continuar , mesmo que surjam problemas inesperados?

Robustez

O processo está projetado de tal maneira que seus erros sejam evitados ou identificados antes que resultem em erros no produto?

Confiabilidade

As atividades de processo culminam em resultados nítidos, de modo que o processo do processo seja externamente visível?

Visibilidade

Até que ponto o processo está explicitamente definido e com que facilidade de pode compreender a definição do processo?

Facilidade de compreensão

Descrição Características de processo

(38)

● Análise de processo

• Analisar e modelar (quantitativamente, se possível) processos existentes

● Identificação de melhoria

• Identificar gargalos relativos a qualidade, ao prazo e ao custo

● Introdução de mudançã de processo

• Modificar o processo para remover os gargalos identificados

● Treinamento em mudanças de processo

• Treinar o pessoal envolvidos em novas propostas de processo

● Ajuste de mudanças

(39)

● A qualidade de processo e qualidade de produto estão

intimamente relacionados

● Um bom processo geralmente produz bons produtos ● Em algumas classes produtos manufaturados, o

processo é o principal determinante da qualidade do produto

● Para atividades baseadas em projeto, outros fatores

também estão envolvidos, em especial a habilidade dos projetistas.

Qualidade de processo e de

produto

(40)

Principais fatores da qualidade de

produtos de software

Qualidade do produto Tecnologia de desenvolvimento Qualidade do processo Custo, tempo e cronograma Qualidade do pessoal

(41)

● Fundado pelo Dept. de Defesa dos EUA, junto à

Universidade Carnegie Mellon

● A missão é a transferência de tecnologia de software,

para capacitação das organizações que recebem fundos do DoD para grandes projetos de defesa.

● Modelo de maturidade foi proposto em meados da

década de 80, e refinado no início da década de 90.

● O resultado desse trabalho tem tido grande influência na

melhoria do processo de software

O Intituto de Engenharia de

Software (SEI)

(42)

O Modelo de Maturidade de

Capacitação da SEI

Nível 2 Repetível Nível 3 Definido Nível 4 Gerenciado Nível 5 Otimização

(43)

● Inicial

• Essencialmente não controlado

● Repetível

• Procedimentos de gerenciamento de produto definidos e usados

● Definido

• Procedimentos e estratégias de gerenciamento de projeto definidos e usados

● Gerenciado

• Estratégias de gerenciamento de qualidade definidas e usadas.

● Otimização

• Estratégias de melhoria do processo definidas e usadas

(44)

Áreas-chave

de processo

Gerenciamento de configuração de software Garantia de qualidade de software

Gerenciamento de contrato de software Acompanhamento e supervisão do projeto

Revisão por pares

Coordenação entre grupos

Engenharia de produto de software Gerenciamento de software integrado Programa de Treinamento

Definição de processo as organização Foco em processo da organização

Gerenciamento da qualidade de sotware Gerenciamento do processo quantitativo

Gerenciamento da mudança de processo Gerenciamento da mudança de tecnologia Prevenção de defeitos

Repetível

Definido

Gerenciado

(45)

● O enfoque é em gerenciamento de projeto em

vez de gerenciamento de produto

● Ignora o uso de tecnologias como por exemplo a

prototipação.

● Não incorpora a análise de risco como uma área

chave de processo.

● Não define o seu domínio de aplicabilidade

(46)

CMM e ISO 9000

● Existe uma clara correlação entre os processos

chave e o padrão ISO 9000.

● O CMM é mais detalhado e prescritivo e inclui

uma estrutura de melhoria de processo.

● Em geral, as organizações cuja maturidade de

processo é classificada no Nível 2 ou 3

provavelmente são compatíveis com a ISO 9000.

(47)

Pontos chave

Gerenciamento de qualidade de software tem Gerenciamento de qualidade de software

como objetivo garantir que o software está de acordo com os padrões propostos.

● Procedimentos de garantia de qualidade devem

ser documentados em um manual de qualidade manual de qualidade organizacional

organizacional.

Padrões de software reuni as melhores práticasPadrões de software

Revisão é a abordagem mais utilizada para Revisão

(48)

Pontos chave

Medições de software são informações

coletadas sobre o processo de software e o produto de software.

● Medidas de qualidade do produto devem ser

usadas para identificar componentes potencialmente problemáticos.

● Não existe um padrão universalmente aceito

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

O resultado deste trabalho é a modelagem dos processos de negócio identificados para um e-commerce, a construção de uma loja virtual para aplicação do modelo e a

Este estudo, assim, aproveitou uma estrutura útil (categorização) para organizar dados o que facilitou a sistematização das conclusões. Em se tratando do alinhamento dos

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

Para atingir este fim, foram adotados diversos métodos: busca bibliográfica sobre os conceitos envolvidos na relação do desenvolvimento de software com

Objetivo: Garantir estimativas mais realistas e precisas para o projeto, ao considerar nesta estimativa o esforço necessário (em horas ou percentual do projeto) para