me-ead-aula1-texto

17
Prof. Horacio Ribeiro Aula 01: Métricas e medidas e indicadores gerados a partir de medidas de tamanho

description

 

Transcript of me-ead-aula1-texto

Page 1: me-ead-aula1-texto

Prof. Horacio Ribeiro

Aula 01: Métricas e medidas e indicadores gerados a partir de medidas de tamanho

Page 2: me-ead-aula1-texto

Prof. Horacio Ribeiro

Page 3: me-ead-aula1-texto

Prof. Horacio Ribeiro

Page 4: me-ead-aula1-texto

Prof. Horacio Ribeiro

Page 5: me-ead-aula1-texto

Prof. Horacio Ribeiro

O homem não pode controlar o que não pode medir. O desenvolvimento do software, sob o aspecto gerencial, precisa ser medido. Vamos apresentar os principais conceitos envolvidos na medição do software.

Quando temos interesse em saber o crescimento, a idade ou melhorar na qualidade de alguma coisa devemos estabelecer “conceitos” que nos ajudem a verificar esta evolução. E, sobre estes conceitos faz-se medidas permitam comparar situações.

É comum na engenharia, dado um objetivo fazermos medidas. Assim,por exemplo, após se definir o que é corrente elétrica pode-se definir uma forma de medir e a partir daí pode-se comparar a intensidade de corrente elétrica em diversos circuitos.

Mas, quando o que se quer medir não é bem definido é comum confundirmos este conceito com a própria medida.

Por exemplo, pé direto: define-se que é a distancia entre um plano inferior (piso) e um plano superior (Teto). E ao se pedir qual o pé direito de um cômodo, apresentar-se a medida entre os dois planos, por exemplo, 3 metros. Assim se pede “qual o pé direito do cômodo? resposta 3 metros. Na prática assume-se a definição comum. Mas, se o objetivo entrar com um eletrodoméstico de 2,80 metros e no cômodo existe uma viga com 60 cm para baixo o real pé direito é de 2,40metros e o eletrodoméstico não poderá ser colocado no cômodo apesar dos 3 metros entre planos. Assim, deve-se procurar identificar o que se deseja para a partir daí se definir

Page 6: me-ead-aula1-texto

Prof. Horacio Ribeiro

claramente o que medir. O conceito que se deseja estabelecer é o que chamamos de uma métrica.

A importância de uma métrica e suas características

1 Abordagens IniciaisPara poder comparar coisas o homem tem necessidade de medir. Para sabe, por exemplo, se uma pessoa é mais alta que outra podemos colocá-las lado a lado e verificar quem é mais alto. Esta forma de comparar exige que tenhamos as pessoas presentes o que não é prático. Também é comum dizer que uma pessoa é alta, ou baixa. Mas não se sabe o quanto é alto ou baixa, e fica-se dependendo da noção de altura do observador.

É comum, ao se perguntar por uma localidade, se receber como resposta que é perto ou longe. Dependendo de quem responde pode-se estar falando de uns poucos quarteirões ou de alguns quilômetros.

Os exemplos acima mostram que há necessidade de se estabelecer alguns conceitos que criem um referencial comum para podermos comparar “coisas” ou processos.

Quando temos interesse em saber o crescimento, a idade ou melhorar na qualidade de alguma coisa devemos estabelecer “conceitos” que nos ajudem a verificar esta evolução. E, sobre estes conceitos faz-se medidas permitam comparar situações.

Para se definir uma métrica deve-se considerar alguns aspectos:

As métricas devem ser simples de entender

Page 7: me-ead-aula1-texto

Prof. Horacio Ribeiro

As métricas devem ser simples de entender e de serem utilizadas para verificar atingimento de objetivos e para subsidiar processos de tomada de decisão.

As métricas devem ser objetivas As métricas devem ser objetivas visando reduzir ou minimizar a influência do julgamento pessoal na coleta,cálculo e análise dos resultados.

Efetivas no custo O valor da informação obtido como resultado das medições deve exceder o custo de coletar,armazenar e calcular as métricas.

A especificação de uma métrica deve conter:

I )Nome da métrica: Pé direito

II)Objetivo da métrica: define-se que uso se deseja fazer da métrica.Objetivo: verificar o espaço entre planos de modo a permitir se entrar ou colocar utensílios.

iii) descrição da métrica: definição do que se deseja para se atingir o objetivo. A definição de uma métrica deve ser coerente com a sua leitura. Se em um aspecto é maior que outro isto deve-se refletir no indicador gerado. Assim, se a propriedade A de um produto x é maior em um produto y espera-se que o indicador de y para a propriedade seja maior que de x: se Paulo é mais alto que José. Espera-se que altura (Paulo) > altura (Jose). Este é um cuidado importante que se deve tomar quando se especifica uma métrica

iv)Sistema de medidas: que sistema de medida será utilizado, suas limitações e a precisão que se assume.Exem plo:A medida será feita em metros e centímetros. Sua precisão é da ordem de milímetros.

v)formas de se obter a medidaA forma de se obter uma medida depende do procedimento de se medir. Assim em alguns casos precisa-se controlar a temperatura (dilatação linear), ou o ângulo de leitura.

Exemplo: um metro e setenta e quatro centímetros. É a medida de uma pessoa segundo uma métrica para medir sua altura (sem sapatos, encostado em uma réguas,...).

Uma medida pode ser feita direta em um fenômeno, por exemplo: Qual é a altura de uma pessoa ? ou quantos alunos tem em uma sala de aula? Quantas linhas de código um programa tem? Mas, existem métricas que definem medidas de forma indireta. Assim pode-se medir a altura de um prédio a partir de sua planta,

Page 8: me-ead-aula1-texto

Prof. Horacio Ribeiro

com o conceito de escala. Pode-se medir a distancia da lua a terra a partir de cálculos e relações trigonométricas. As medidas obtidas a partir de cálculos (que utilizam outras medidas) são chamadas de medidas indiretas.

Uma medida direta é feita no processo ou produto de forma direta.A indireta é feita por medidas que serão usadas em cálculos para se calcular a medida final

Exemplo de especificação de uma métrica para o software:

I )Nome da métrica: Grau de complexidade ciclomática

II)Objetivo da métrica: define o número de caminhos que devem ser testados em um algoritmo

iii) descrição da métrica: é um numero inteiro correspondente ao número de áreas definidas por um grafo convecxo. Pode se obtido pela identificação do número de expressões booleanas usadas em comandos que fazem controle de fluxo, tais como if´s, whiles, etc. somando-se + um. iv)Sistema de medidas: unidade (números inteiros)

v)formas de se obter a medida: Contagem direta do número de expressões booleanas em comandos de controle de fluxo escrita no código fonte do desenvolvedor

Leia mais: http://pt.wikipedia.org/wiki/Complexidade_ciclom%C3%A1tica Segundo a métrica: qual o grau de complexidade ciclomática do trecho de programa abaixo:

#include <stdbool.h> inline void troca(int* a, int* b){ int aux = *a; *a = *b; *b = aux;} void bubbleSort (int *primeiro, int *ultimo) { bool naoTrocou; int *posAtual; for (; ultimo > primeiro; --ultimo)

Page 9: me-ead-aula1-texto

Prof. Horacio Ribeiro

{ naoTrocou = true; for (posAtual = primeiro; posAtual < ultimo; ++posAtual) { if (*posAtual > *(posAtual+1)) { troca (posAtual, posAtual+1); naoTrocou = false; } } if (naoTrocou) return; }}

include <stdbool.h>

inline void troca(int* a, int* b){ int aux = *a; *a = *b; *b = aux;} void bubbleSort (int *primeiro, int *ultimo) { bool naoTrocou; int *posAtual;

for (; ultimo > primeiro; --ultimo)

contagem= 1 { naoTrocou = true; for (posAtual = primeiro; posAtual < ultimo; ++posAtual)

contagem = 2 { if (*posAtual > *(posAtual+1)) contagem = 3 { troca (posAtual, posAtual+1); naoTrocou = false; }

Page 10: me-ead-aula1-texto

Prof. Horacio Ribeiro

} if (naoTrocou) return; contagaem = 4 }}

Resposta 4 + 1 = 5 o grau ciclomático do algoritmo é 5.

Medidas no software:

Que métricas pode-se definir para o software?

Exitem algumas propostas para se medir o tamanho do software. Entre várias métricas propostas a mais comum, de medida direta, é a LOC (lines of code = linhas de código). E, consiste em contar-se o número de linhas escritas por um programador. Esta medida, de uma maneira comum, é apresentada em KLOC (mil linhas de codigo) representando 1000 linhas de código.

KLOC é uma métrica que define o software a partir da contagem das linhas de código escritas.

Outras métricas podem ser criadas utilizando-se o KLOC.

As métrica para software podem ser para medir o processo de software ou sobre o produto software.

Exemplos de métricas sobre o produto:

Você pode ver as definições destas métricas no seu material

Exemplos de métricas sobre o processo:

Você pode ver as definições destas métricas no seu material

Para se fazer o acompanhamento gerencial utilizando o KLOC deve-se ter uma base de registros estatísticos de projetos já feitos. Estes registros são feitos, segundo as métricas de acompanhamento que de forma direta ou

Page 11: me-ead-aula1-texto

Prof. Horacio Ribeiro

indireto usam esta medida, servem de base para estimativas de novos de novos projetos.

Page 12: me-ead-aula1-texto

Prof. Horacio Ribeiro

Pode-se acompanhar e comparar projetos como mostrado na tabela abaixo:

Figura do livro: engenharia de software. Pressman – 3ª. ediçao

Page 13: me-ead-aula1-texto

Prof. Horacio Ribeiro

Exemplo de listagem da captura de medidas e valores de métricas para um projeto.

Figura do livro: engenharia de software. Pressman – 3ª. ediçao

Problemas com KLOC

Page 14: me-ead-aula1-texto

Prof. Horacio Ribeiro

O KLOC é uma medida direta, portanto é feita sobre o fenômeno. E, sóue só podemos contar as linhas de um software após ele ter sido escrito. Portanto, terminado.

Alguns contestam o KLOC por que não privilegia a boa programação (mais eficiente) ou o uso de linguagens mais eficientes. Além disto o acompanhamento de projetos com métricas baseadas no KLOC compara projetos inconvenientes de características diferentes nas especificações de funcionalidades e na sua forma de implementar.

Sugira três métricas diretas e três métricas indiretas para medir produtividade e qualidade para a documentação do software:Faça a especificação da métricaDica1: procure no seu materialDica2: pense na contagem de linhas, paragrafos e figurasDica3: pense na contagem de parágrafos e de tipos de diagramas

Envie para o seu professor fazer a avaliação da sua solução.

Estas comparações têm o problema de se comparar coisas diferentes, pois o LOC conta linhas em qualquer linguagem independente de sua produtividade.

Apresente um argumento contra o uso de linha de código como medida de produtividade de dois programadores. O seu ponto de vista se sustentará quando forem consideradas centenas de projeto? :Envie para o seu professor fazer a avaliação da sua solução.

O uso do Kloc na medida da produtidade previlegioa o Bom ou o mau desnvolvedor? Argmente baseado na sua experiência de desenvolver algoritmos.Envie para o seu professor fazer a avaliação da sua solução.

Desafio

Para medir o software antes de ser implementado precisamos de alguma coisa, como as “plantas de engenharia” para se fazer medidas ainda na fase de projeto, sem a existência da obra. É este tipo de ferramenta que se necessita para a gerência e acompanhamento da construção do software.

Page 15: me-ead-aula1-texto

Prof. Horacio Ribeiro

Fazer modelagem de situações, e a partir das especificações de funcionalidade, tomar decisões de projeto do futuro software, estudar alguns aspectos de gerenciais. Comparar projetos de uma forma uniforme. Fazer estimativas baseado em registros mais uniformizados que permitam melhores estimativas, passou a ser um desafio para os gerentes e pesquisadores da área de software.

Um pesquisador da IBM, Albrecht, apresentou uma proposta de modelo que a partir de um conjunto de funcionalidades mapeia um número real. De forma que duas especificações quaisquer podem ser comparadas através dos números reais gerados. Assim um número real maior gerado de uma especificação quando comparado com outro significa que este “produto” deverá ter mais funcionalidades para serem implementadas que o outro, portanto exigirá mais esforço, em iguais condições de implementação. A técnica desenvolvida por Albrecht foi rapidamente aceita pelo mercado. Hoje, vários pesquisadores têm desenvolvido e amadurecido este modelo que é conhecido como Analise de PONTO FUNÇÃO. Um ponto função nada representa fisicamente, apenas é uma forma de comparar software nas mesmas condições. Muitos estudiosos criticam o PONTO FUNÇÃO exatamente pelo fato de nada representar em termos de software.

Este modelo deverá ser tratado na próxima aula

Page 16: me-ead-aula1-texto

Prof. Horacio Ribeiro

Tenha consciência de que para se apropriar de algo inteiramente novo é necessário praticar.

Trabalhar com métricas normalmente é uma nova visão sobre o software. É a visão gerencial. Voce deve-se preparar para responder questões sobre prazos e tamanho de software, para isto você deverá ter uma boa formação em métricas. Exercite, isto é fundamental. Segundo Eintein o único lugar que Sucesso vem antes de Trabalho é no dicionário. Poprtanto, trabalhe faça os exerccicios e tire suas dúvidas. Não esqueça de particpar do mural.

Mural: tema qual a im,portância das métricas no desenvolvimento de software?