me-ead-aula1-texto

Page 1

Prof. Horacio Ribeiro

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


Prof. Horacio Ribeiro


Prof. Horacio Ribeiro


Prof. Horacio Ribeiro


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


Prof. Horacio Ribeiro 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 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 Iniciais

Para 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 ajudem a verificar esta evolução.

“conceitos” que nos

E, sobre estes conceitos

medidas permitam comparar situações.

faz-se


Prof. Horacio Ribeiro

Para se definir uma métrica deve-se considerar alguns aspectos: As métricas devem ser simples de entender 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 medida A 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.


Prof. Horacio Ribeiro

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? forma indireta.

Assim

Mas, existem métricas que definem medidas de

pode-se medir a altura de um prédio a partir de sua

planta, 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:


Prof. Horacio Ribeiro #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) { 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;


Prof. Horacio Ribeiro 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; } } 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.


Prof. Horacio Ribeiro

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 indireto usam esta medida, servem de base para estimativas de novos de novos projetos.


Prof. Horacio Ribeiro

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

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


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


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étrica Dica1: procure no seu material Dica2: pense na contagem de linhas, paragrafos e figuras Dica3: 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


Prof. Horacio Ribeiro se necessita para a gerência e acompanhamento da construção do software. 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


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?


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.