Gerencia de Qualidade de
Software
Métricas de Qualidade de Software
https://sites.google.com/site/thiagoaalves/
Conteúdo Programático
Apresentação da disciplina e metodologia
de trabalho. Apresentação do Plano de
Estudo e Aprendizagem. Introdução à
Qualidade de Software.
Estudo dos fatores técnicos e humanos
que influenciam a qualidade de um
software.
Garantia da Qualidade de Software
(SQA): conceito, importância e
apresentação das técnicas.
Conteúdo Programático
Garantia da Qualidade de Software (SQA):
Impactos de um sistema de má qualidade.
CMMI. Introdução, diferenciação entre
qualidade de software e de processo. Estudo
dos níveis CMMI. Abordagem das Key
Process Areas (KPA)
CMMI: abordagem dos aspectos práticos de
implantação do modelo. Apresentação de
casos de sucesso na implantação, níveis
obtidos pelas principais empresas de TI ou
não.
Conteúdo Programático
Normas MPS:BR e ISO 12207.
Norma ISO 15504 (Spice): conceituação,
utilização, metodologia de avaliação.
Modelos de Processo Pessoal e de Equipe
na Melhoria da Qualidade do processo de
desenvolvimento de Software
Conteúdo Programático
Métricas de software: conceituação,
motivos para medição de um produto de
software. Principais tipos e utilizações.
Métricas de software: apresentação da
métrica de Pontos por Função.
Qualidade de código. Programação:
Fatores de qualidade
Atividades de revisão de conteúdo e/ou
Trabalho
Grupos como estão?
◦
Grupo 1?
◦
Grupo 2?
◦
Grupo 3?
◦
Grupo 4?
Relembrando
Nas duas ultimas aulas vimos os 2 modelos
básicos para Qualidade de Software o
CMM e o MPS.BR.
Mas somente conhecer os 2 não e o
suficiente para alcançar os resultados
esperados.
Relembrando
Tem que adotar cada modelo e verificar se
o requisitos solicitados por cada modelo
estão sendo implementados.
Para isso deve se definir um conjunto de
métricas para auxiliar no trabalho.
Métricas da qualidade de software
Objetivos
o
Entender porque medição é importante para
avaliação e garantia da qualidade de software.
•
Entender as abordagens principais de métricas
e como elas são utilizadas.
•
Conhecer algumas métricas e suas aplicações.
•Entender o que é um Plano de Métricas e como
Métricas da qualidade de software
Motivação
Um dos objetivos básicos da Engenharia de Software é: a transformação da criação de
sistemas software de uma maneira artística, indisciplinada e pouco entendível para uma forma devidamente controlada, quantificada e previsível
“Métricas de Software” é um assunto discutido há mais de 20 anos na engenharia de software ... e no entanto não é verificada sua
utilização, na prática, pela grande maioria dos projetos de construção de software
Pesquisas realizadas em empresas de software indicam que mais da metade de grandes projetos de software se deparam com algum tipo de atraso, excesso de custo ou
prazo ou algum fracasso na execução quando implantado
Métricas da qualidade de software
Motivação
“Não se pode gerenciar o que não se pode
medir”.
Tom De Marco
“Se você não sabe para onde você quer ir,
qualquer caminho você pode seguir. Se você
não sabe onde você está, um mapa não vai
ajudar!”.
O que são métricas de software?
Uma métrica é a medição de um atributo
(propriedades ou características ) de uma
determinada entidade (produto, processo
ou
recursos). Exemplos:
Tamanho do produto de software (ex: Número de Linhas de código);
Número de pessoas necessárias para implementar um caso de uso;
Número de defeitos encontrados por fase de desenvolvimento;
Esforço para a realização de uma tarefa;
Tempo para a realização de uma tarefa;
Custo para a realização de uma tarefa;
Grau de satisfação do cliente (ex: adequação do produto ao propósito, conformidade do produto com a especificação);
Por que medir software?
Entender
e
aperfeiçoar
o
processo
de
desenvolvimento;
Melhorar
a
gerência
de
projetos
e
o
relacionamento com clientes;
Reduzir frustrações e pressões de cronograma;
Por que medir software?
Indicar a qualidade de um produto de software;
Avaliar a produtividade do processo;
Avaliar
os
benefícios
(em
termos
de
produtividade e qualidade) de novos métodos e
ferramentas de engenharia de software;
Por que medir software?
Identificar
as
melhores
práticas
de
desenvolvimento de software;
Embasar solicitações de novas ferramentas e
treinamento;
Avaliar o impacto da variação de um ou mais
atributos
do
produto
ou
do
processo
na
qualidade e/ou produtividade;
Por que medir software?
Formar uma baseline para estimativas;
Melhorar a exatidão das estimativas;
Oferecer dados qualitativos e quantitativos ao
gerenciamento de desenvolvimento de software,
de forma a realizar melhorias em todo o
processo de desenvolvimento de software;
Propriedades desejadas de uma
métrica
Facilmente calculada, entendida e testada;
Passível de estudos estatísticos;
Expressa em alguma unidade;
Obtida o mais cedo possível no ciclo de vida do
software;
Passível de automação;
Repetível e independente do observador;
Métrica
Uma métrica deve ser:
Válida: quantifica o que queremos medir;
Confiável: produz os mesmos resultados
dadas as mesmas condições;
Prática: barata, fácil de computar e fácil de
interpretar;
Dois contextos para medição de software:
Processo. Ex: produtividade;
Categorização das métrica
Métricas diretas (fundamentais ou básicas);
Métricas indiretas (derivadas);
Métricas orientadas a tamanho;
Métricas orientadas por função;
Métricas de produtividade;
Métricas de qualidade;
Categorização das métrica
Métricas diretas (fundamentais ou básicas)
Medida realizada em termos de atributos observados (usualmente determinada pela contagem)
Ex.: custo, esforço, no. linhas de código, capacidade de memória, no. páginas, no. diagramas, etc.
Métricas indiretas (derivadas)
Medidas obtidas a partir de outras métricas
Ex.: complexidade, eficiência, confiabilidade, facilidade de manutenção
Categorização das métrica
Métricas orientadas a tamanho
São medidas diretas do tamanho dos artefatos de software associados ao processo por meio do qual o software é desenvolvido.
Ex.: esforço, custo, no. KLOC, nº páginas de documentação, nº de Erros
Métricas orientadas por função
Consiste em um método para medição de software do ponto de vista do usuário, determinando de forma consistente o tamanho e a complexidade de um software.
Categorização das métrica
Métricas de produtividade
Concentram-se na saída do processo de engenharia de software.
Ex: nº de casos de uso/iteração.
Métricas de qualidade
Oferecem uma indicação de quanto o software se adequa às exigências implícitas e explícitas do cliente.
Categorização das métrica
Métricas técnicas
Concentram-se nas características do software e não no processo por meio do qual o software foi desenvolvido.
Possíveis problemas com métricas
Um exemplo: Comparar a produtividade de
engenheiros em termos de linha de código.
Está sendo utilizado a mesma unidade de medida?
O que é uma linha de código válida?
O contexto considerado é o mesmo?
Todos os engenheiros são familiarizados com a linguagem de programação?
O que se quer realmente é o tamanho do código?
E a qualidade do código?
Como o resultado será interpretado?
Produtividade média de um engenheiro?
O que se quer com o resultado?
Problemas com métricas
Teoria sobre métricas pode ajudar a resolver
estes problemas.
Teoria da medição
Como se deve medir
Relações Empíricas
Ajudam
a
observar
as
relações
do
tipo
verdadeiro/falso entre entidades do mundo real
Ex: Relações empíricas entre o atributo peso
das pessoas
Binária: O João é mais pesado do que José
Unária: O João é pesado
Ternária: O João é mais pesado que José e
Antônio
Medida
Medida é uma função de mapeamento
João José Antônio 110 Kg 90 Kg 85 Kg Atributos do mundo
real (domínio) Umconjuntosímbolocom emrelaçõesum matemáticas conhecidas
Medição
É a atribuição de uma medida (através de um
símbolo) a um atributo do mundo real
Propósito: manipular símbolos na faixa
=> determinar conclusões sobre os atributos do domínio
Para ser precisa, a medição deve especificar
Domínio: Será medido a largura ou peso das pessoas?
Faixa: A medida do peso foi feita em Kg ou g ?
Regras de mapeamento: Será permitido pesar considerando as pessoas vestidas?
Escala
Representa os símbolos na faixa de uma
medida mais as manipulações permitidas
Exemplo de manipulações:
Mapeamento: transformar símbolos em um
conjunto
em
outros
símbolos
em
outro
conjunto.
Tipos de escalas
Kelvin, tamanho, largura Diferença entre qualquer par
consecutivo de valores é
preservada. Possui 0 absoluto.
Ratio (razão)
Celsius e Fahrenheit Diferença entre qualquer par
consecutivo de valores é preservada Intervalar {simples, médio, complexo} Símbolos ordenados Ordinal {verdadeiro, falso} Símbolos não ordenados
Nominal
Exemplos Características
Os quatro papéis da medição
Segundo Humphrey, são quatro os principais papéis de Medições de Software: Processos, Produtos e Serviços de Software Entender Avaliar Prever Controlar
Os quatro papéis da medição
Entender
Métricas ajudam a entender o comportamento e funcionamento de processos, produtos e serviços de software
Avaliar
Métricas podem ser utilizadas para tomar decisões e determinar o estabelecimento de padrões, metas e critérios de aceitação
Os quatro papéis da medição
Controlar
Métricas podem ser utilizadas para controlar processos, produtos e serviços de software
Prever
Métricas podem ser utilizadas para prever valores de atributos
Os quatro papéis da medição
Controlar
Métricas podem ser utilizadas para controlar processos, produtos e serviços de software
Prever
Métricas podem ser utilizadas para prever valores de atributos
Criando uma Métrica
Para se criar uma métrica tem que se entender
primeiro o objetivo do que se deseja realizar,
vamos
pegar
o
seguinte
exemplo
para
trabalharmos em um conjunto de métricas:
Criando uma Métrica
“A PMZ, uma desenvolvedora com 25 anos de
experiência no desenvolvimento de sistemas esta com um problema. Atualmente a sua etapa de requisitos esta muito caótica, sendo que o processo esta sendo realizado fracamente ou não é realizado. Basicamente a etapa opera da seguinte forma: Os analistas entram em contato com o Cliente, Marcão uma reunião com o cliente, comparecem a reunião com o Formulário XYZ, retornar a empresa com o Formulário XYZ, apresentam o Formulário para equipe de desenvolvimento. A equipe da um Parecer e o Analista Retornar para o cliente os resultados esperados”
Criando uma Métrica
O foco e verificar se o processo de requisitos esta sendo realizado de acordo com o definido pela politica da empresa. Para isso vamos pegar cada parte importante do processo e associar a uma pergunta.
Criando uma Métrica
1. A equipe de analise entrou em contato com o Cliente? 2. A equipe de analise marcou uma reunião com o
Cliente?
3. A equipe ou o Analista encarregado compareceu a
reunião?
4. A equipe ou o Analista encarregado levou o Formulário
XYZ?
5. A equipe ou o Analista encarregado retornou para
empresa com Formulário XYZ?
6. O Formulário XYZ foi apresentado a equipe de
desenvolvimento?
7. A equipe de desenvolvimento deu um parecer?
8. A equipe ou o Analista encarregado retornou para o
Criando uma Métrica
Métrica Sim Não Não Aplicável
A equipe de analise entrou em contato com o Cliente?
A equipe de analise marcou uma reunião com o Cliente? A equipe ou o Analista encarregado compareceu a reunião? A equipe ou o Analista encarregado levou o Formulário XYZ?
A equipe ou o Analista encarregado retornou para empresa com Formulário XYZ?
O Formulário XYZ foi apresentado a equipe de desenvolvimento?
A equipe de desenvolvimento deu um parecer?
Criando uma Métrica
No exemplo anterior foi adotado um CheckList, o objetivo e ver se todos os pontos do processo estão sendo contemplados, e em cada ponto existe uma nota associada aquele ponto. No caso do Exemplo anterior temos:
Sim;
Não;
Criando uma Métrica
Um CheckList e muito útil para entendimento do processo como um todo.
Através dele consegue verificar as atividades realizadas e se elas estão realmente sendo realizadas.
Permite uma visão mais clara e ampla do processo como um todo.
CheckList
Um CheckList e um conjunto de perguntas( métricas) e as respostas para cada pergunta.
Não fica preso somente a ideia de sim e não podendo ser utilizado de varias formas diferentes, veja o exemplo de um para a Gestão de projetos em uma pequena empresa:
CheckList
“Para as perguntas abaixo, marque com um x somente uma opção, sendo escolhida aquela que mais se adequar à realidade atual da sua empresa no que se refere aos aspectos gerenciais dos projetos. Considere a seguinte escala:
1. Não existe essa característica ou tópico.
2. Existe um início de definição em relação a característica ou tópico.
3. A característica ou tópico já está implantado, mas não na sua totalidade.
4. A característica ou tópico já está completamente implantado, mas ainda não existe uma proficiência.
5. A característica ou tópico já integraram a cultura da empresa, ou seja, a proficiência e clareza sobre o assunto já faz parte da rotina da equipe.”
Criando uma Métrica - Cuidados
Cuidados ao se criar métricas:
1) Elas devem ter relação com o objetivo; 2) Tem que ter pontos em Comum;
3) Tem que ser de fácil entendimento para quem esta
respondendo;
4) Se for para uma comparação, deve apresentar as
Exercício – 30 minutos
Crie um conjunto de métricas(mínimo de 5) para atender o seguinte KPA do nível 2 do CMM:
“Gerência de Requisitos - Os requisitos do sistema são controlados de
forma a estabelecer um perfil mínimo a ser utilizado pela engenharia de software e pela administração. Os planos, produtos e atividades do software são sempre consistentes com os requisitos de sistema.”
Resolução
AS SETE FERRAMENTAS DA
QUALIDADE
1- Fluxograma: auxilia na identificação do melhor caminho que o produto ou serviço irá percorrer no processo, ou seja, mostra as etapas sequenciais do processo, utilizando símbolos que representam os diferentes tipos de operações, com o objetivo de identificar o desvio, caso ocorra.
AS SETE FERRAMENTAS DA
QUALIDADE
2- Diagrama Ishikawa (Espinha de Peixe): tem como objetivo identificar as possíveis causas de um problema e seus efeitos, através da relação entre o efeito e todas as possibilidades de causa que podem contribuir para esse efeito.
AS SETE FERRAMENTAS DA
QUALIDADE
3- Folhas de Verificação: é uma lista de itens pré-estabelecidos que serão marcados a partir do momento que forem realizados ou avaliados. É usada para a certificação de que os passos ou itens pré-estabelecidos foram cumpridos ou para avaliar em que nível eles estão.
AS SETE FERRAMENTAS DA
QUALIDADE
4- Diagrama de Pareto: é um recurso gráfico utilizado para estabelecer uma ordenação nas causas de perdas que devem ser sanadas.
AS SETE FERRAMENTAS DA
QUALIDADE
5- Histograma: tem como objetivo mostrar a distribuição de frequências de dados obtidos por medições, através de um gráfico de barras indicando o número de unidades em cada categoria.
AS SETE FERRAMENTAS DA
QUALIDADE
6- Diagrama de Dispersão: mostra o que acontece com uma variável quando a outra muda. São representações de duas ou mais variáveis que são organizadas em um gráfico, uma em função da outra.
AS SETE FERRAMENTAS DA
QUALIDADE
7- Controle Estatístico de Processo (CEP): são usados para mostrar as tendências dos pontos de observação em um período de tempo. É um tipo de gráfico utilizado para o acompanhamento do processo, determinando a faixa de tolerância limitada pela linha superior (limite superior de controle) e uma linha inferior (limite inferior de controle) e uma linha média do processo (limite central), que foram estatisticamente determinadas.