• Nenhum resultado encontrado

Estudo de validação de métricas aplicadas às linguagens C e Pascal.

N/A
N/A
Protected

Academic year: 2021

Share "Estudo de validação de métricas aplicadas às linguagens C e Pascal."

Copied!
156
0
0

Texto

(1)

V

\

UNIVERSIDADE FEDERAL DA PARAÍBA CENTRO DE CIÊNCIAS E TECNOLOGIA CURSO DE MESTRADO EM INFORMÁTICA

ESTUDO DE VALIDAÇÃO DE MÉTRICAS APLICADAS ÀS LINGUAGENS C E PASCAL

SAULO DE ARAUJO P E R E I R A

CAMPINA GRANDE - PB JUNHO - 1991

(2)

SAULO DE ARAUJO P E R E I R A

ESTUDO DE VALIDAÇÃO DE MÉTRICAS APLICADAS ÀS LINGUAGENS C E PASCAL

Dissertação a p r e s e n t a d a ao c u r s o de M e s t r a d o em Informática da U n i v e r s i d a d e F e d e r a l d a P a r a i b a em cumprimento às exigências p a r a obtenção do g r a u de m e s t r e

ÁREA DE CONCENTRAÇÃO: CIÊNCIAS DA COMPUTAÇÃO

JOSÉ ANTÃO BELTRÃO MOURA O r i e n t a d o r

MARIA DE FÁTIMA CAMELO C o - o r i e n t a d o r a

CAMPINA GRANDE - PB JUNHO - 1991

(3)
(4)

E S T U D O D E V A L I D A Ç Ã O D E M É T R I C A S A P L I C A D A S A S L I N G U A G E N S C E P A S C A L S A U L O D E A R A U J O P E R E I R A D I S S E R T A Ç Ã O A P R O V A D A E M : 0 4 / 0 6 / 9 1 B A N C A E X A M I N A D O R A : (JOSE A N T f t O B E L T R Ã O M O U R A , P h D P r è s i d e n t e M A R I O T O Y O T A R O H A T T O R I , M . S c C A M P I N A G R A N D E J U N H O - 1 9 9 1

(5)

AGRADECIMENTOS

O a u t o r g o s t a r i a de a g r a d e c e r :

Aos o r i e n t a d o r e s Antão e Fátima, não só p e l a g r a n d e s a b e -d o r i a e experiência, mas p r i n c i p a l m e n t e p e l a -disposição em com-p a r t i l h a r s e u s c o n h e c i m e n t o s ;

À I n f o c o n e T e c n a l , p o r t e r e m c o l o c a d o s e u s p r o g r a m a s f o n -t e à disposição;

A P e d r o N i c o l e t t i , R o s t a n d , R e g i n a l d o , Dênio e N i v a l d o , p o r t e r e m c o l a b o r a d o n a c o l e t a de d a d o s ;

A UFPB/COPIN, PAQTC-PB e CAPES, p e l o u s o d o s e q u i p a m e n t o s e s u p o r t e f i n a n c e i r o ;

(6)

RESUMO

O u s o fundamentado de métricas (padrões de medição) é e s -s e n c i a l p a r a a execução de p r o j e t o -s de -s o f t w a r e de f o r m a men-su- mensu-rável, c u j o d e s e n v o l v i m e n t o p o s s a s e r p r e v i s t o , m o n i t o r a d o e a p r i m o r a d o . E n t r e a s métricas p a r a a f a s e de codificação a p r e -s e n t a d a -s n a l i t e r a t u r a , -s e d e -s t a c a m o número ciclomático e a -s métricas da Ciência de S o f t w a r e , p e l o s e u f u n d a m e n t o teórico e s u p o r t e empírico, e a s métricas de l i n h a s de código e número de r o t i n a s , p e l a s u a p o p u l a r i d a d e e s i m p l i c i d a d e .

E s t e t r a b a l h o v e r i f i c a a v a l i d a d e d e s t a s métricas a p l i c a -d a s às l i n g u a g e n s P a s c a l e C. P a r a i s t o , uma f e r r a m e n t a p a r a a obtenção automática d a s métricas é d e s e n v o l v i d a . As análises, f e i t a s em uma a m o s t r a de 1.670 r o t i n a s , u t i l i z a m técnicas de regressão e b a s e i a m - s e em c i n c o parâmetros estatísticos.

Algumas" d a s métricas e s t u d a d a s m o s t r a m s e válidas n a e s t i m a t i v a de tamanho de programa (métricas e s t i m a d o r a s do c o m p r i -mento N e N j ) e n a e s t i m a t i v a de tempo de d e s e n v o l v i m e n t o de p r o g r a m a (métricas de comprimento e v o l u m e da Ciência de S o f t w a r e , l i n h a s de código e número c i c l o m á t i c o ) . Métricas p a r a e s t i m a t i v a de tamanho e tempo de d e s e n v o l v i m e n t o de r o t i n a s e métricas p a r a o u t r a s aplicações, como avaliação de nível de l i n g u a g e m e conteúdo de informação de r o t i n a , m o s t r a m s e i m p r e -c i s a s ou i n -c o n s i s t e n t e s .

(7)

ABSTRACT

The u t i l i z a t i o n o f m e t r i c s ( m e a s u r e m e n t s t a n d a r d s ) i s e s -s e n t i a l f o r t h e e x e c u t i o n o f -s o f t w a r e p r o j e c t -s i n a m e a -s u r a b l e way, whose d e v e l o p m e n t c a n be p r e d i c t e d , m o n i t o r e d a n d im-p r o v e d . Among t h e most i m im-p o r t a n t m e t r i c s a r e t h e c y c l o m a t i c number a n d t h e S o f t w a r e S c i e n c e m e t r i c s — r e m a r k a b l e f o r t h e i r t h e o r e t i c a l b a s i s a n d e m p i r i c a l s u p p o r t — a n d t h e number o f l i n e s o f c o d e a n d r o u t i n e s — r e m a r k a b l e f o r t h e i r s i m p l i c i t y and p o p u l a r i t y . T h i s d i s s e r t a t i o n v e r i f i e s t h e v a l i d i t y o f t h o s e m e t r i c s when a p p l i e d t o P a s c a l and C p r o g r a m s . A t o o l i s d e v e l o p e d f o r t h e a u t o m a t i c c o l l e c t i o n o f t h e d a t a u s e d b y t h e m e t r i c s . The a n a l y s e s c o n s i d e r 1,670 r o u t i n e s a n d u s e r e g r e s s i o n a n d o t h e r s t a t i s t i c a l m e t h o d s . Some o f t h e s t u d i e d m e t r i c s a p p e a r t o be v a l i d f o r t h e e s -t i m a -t i o n o f p r o g r a m s i z e (N a n d N j ) a n d f o r -t h e e s -t i m a -t i o n o f p r o g r a m d e v e l o p m e n t t i m e ( t h e S o f t w a r e S c i e n c e s i z e and volume m e t r i c s , l i n e s o f c o d e and c y c l o m a t i c n u m b e r ) . M e t r i c s f o r e s t i m a t i o n o f r o u t i n e s i z e a n d d e v e l o p m e n t t i m e , a n d f o r e v a l u a t i o n o f l a n g u a g e l e v e l a n d i n f o r m a t i o n c o n t e n t o f r o u t i n e a p p e a r i m p r e c i s e o r i n c o n s i s t e n t .

(8)

ÍNDICE Página L I S T A DE FIGURAS X L I S T A DE TABELAS x i L I S T A DE QUADROS x i i L I S T A DE ABREVIATURAS X Ü i 1 - INTRODUÇÃO , 1 1.1 - Introdução 1 1.2 - Adoção de Métricas em E n g e n h a r i a de S o f t w a r e 3 1.3 - Ciência de S o f t w a r e e Número Ciclomático .... 6

1.4 - O b j e t i v o s e Contribuição do T r a b a l h o 8

1.5 - Organização d a Dissertação 10

2 - MÉTRICAS DE SOFTWARE 12

2.1 - Definição 12 2.2 - Utilização de Métricas n a Avaliação de

P r o d u t i v i d a d e 12 2.2.1 - Q u a l i d a d e 14 2.2.2 - Q u a n t i d a d e 15 2.3 - P r i n c i p a i s Métricas p a r a a F a s e de Codificação 16 2.3.1 - Métricas de Volume 17 2.3.2 -.Métricas de E s t r u t u r a Lógica 19 2.3.3 - Métricas de E s t r u t u r a de Dados 21 3 - MÉTRICAS DA CIÊNCIA DE SOFTWARE E NÚMERO

CICLOMÁTICO 23 3.1 - Métricas da Ciência de S o f t w a r e 23 3.1.1 - Histórico . .. 23 3.1.2 - Apresentação 24 3.1.3 - As Métricas Básicas 25 3.1.4 - Vocabulário (77) e Comprimento (N) .. 26 3.1.5 - Volume - V 27 3.1.6 - Nível e D i f i c u l d a d e de um P r o g r a m a . 28 3.1.7 - Conteúdo de Informação - I 29 3.1.8 - Nível de L i n g u a g e m 30 3.1.9 - Esforço 30 3.1.10 - Tempo de Programação 31 3.1.11 - I m p u r e z a s .32 3.2 - Número Ciclomático 3 3 4 - EXPERIMENTOS PUBLICADOS 37 4.1 - Métricas da Ciência de S o f t w a r e 37 4.1.1 - A Equação do Comprimento 3 7

(9)

4.1.2 - D i f i c u l d a d e - D 3 9 4 . 1.3 - Conteúdo de Informação - I 40 4.1.4 - Nível de Linguagem - NL 41 4.1.5 - Esforço - E 42 4.1.6 - Correlações E n t r e a s P r i n c i p a i s Métricas 4 3 4.1.7 - Críticas à Ciência de S o f t w a r e 45 4.2 - Número Ciclomático - NC 46

5 - DESCRIÇÃO DOS EXPERIMENTOS ' 4 9

5.1 - Descrição d o s E x p e r i m e n t o s E f e t u a d o s 49 5.2 - Validação Estatística d a s Métricas 51 5.3 - QUANTUM - A F e r r a m e n t a P a r a Cálculo d a s Métricas 53 5.3.1 - Execução 53 5.3.2 - F u n c i o n a m e n t o • 55 5.4 - M e t o d o l o g i a de Contagem d a s Métricas de Ciência de S o f t w a r e 57 5.4.1 - M e t o d o l o g i a de Contagem de O p e r a n d o s e O p e r a d o r e s P a r a a L i n g u a g e m P a s c a l 58 5.4.1.1 - Extensão P a r a o T u r b o P a s c a l - Versões 4 e 5 ... 60 5.4.2 - M e t o d o l o g i a de Contagem de O p e r a n d o s e O p e r a d o r e s P a r a a L i n g u a g e m C .... 61 5.4.2.1 - Análise Crítica da M e t o d o l o g i a A d o t a d a P a r a C 62 5.5 - M e t o d o l o g i a de Contagem do Número Ciclomático 63 5.6 - M e t o d o l o g i a de Contagem de L i n h a s de Código 64

6 - EXPERIMENTOS REALIZADOS COM PASCAL 66 6.1 - Características da A m o s t r a A n a l i s a d a 66 6.2 - Consistência I n t e r n a 67 6.2.1 - E s t i m a d o r e s de Comprimento 67 6.2.1.1 - E s t i m a d o r e s de Comprimento A p l i c a d o s a R o t i n a s 68 6.2.1.2 - Precisão dos E s t i m a d o r e s com o Tamanho da R o t i n a .. 72 6.2.1.3 - E s t i m a d o r e s de Comprimento A p l i c a d o s a P r o g r a m a s .... 73 6.2.2 - D i f i c u l d a d e e Nível de P r o g r a m a .... 75 6.2.3 - Nível de L i n g u a g e m 76 6.2.4 - R e l a c i o n a m e n t o E n t r e a s P r i n c i p a i s Métricas 78 6.3 - Consistência E x t e r n a 80 6.3.1 - E s t i m a t i v a de Tempo de R o t i n a s 81 6.3.2 - E s t i m a t i v a de Tempo de Programação . 83 6.4 - Conclusões 88 7 - EXPERIMENTOS REALIZADOS COM C 90

7.1 - Características da A m o s t r a A n a l i s a d a 90

7.2 - E s t i m a d o r e s de Comprimento 91

(10)

7.2.1 - E s t i m a d o r e s de Comprimento A p l i c a d o s a R o t i n a s 9 2 7.2.2 - E s t i m a d o r e s de Comprimento A p l i c a d o s a P r o g r a m a s 9 4 7.2.3 - Variação da Precisão d o s E s t i m a d o r e s com o Tamanho de R o t i n a s e P r o g r a m a s 97 7.3 - D i f i c u l d a d e e Nível de P r o g r a m a 98 7.4 - Conteúdo de Informação 99 7.5 - Nível de Linguagem 100 7.6 - R e l a c i o n a m e n t o E n t r e a s P r i n c i p a i s Métricas 101 7.7 - Conclusões 103 8 - SUMÁRIO, CONCLUSÕES E RECOMENDAÇÕES 105

8.1 - Sumário 105 8.1.1 - Consistência I n t e r n a d a s Métricas .. 107 8.1.2 - Consistência E x t e r n a d a s Métricas .. 110 8.2 - Conclusão e Considerações F i n a i s 110 8.3 - Recomendações P a r a T r a b a l h o s F u t u r o s 113 8.3.1 - M e t o d o l o g i a p a r a C o l e t a de Dados do D e s e n v o l v i m e n t o 113 8.3.2 - Variações n a M e t o d o l o g i a de Contagem 118

APÊNDICE A - MÉTODOS DE ANÁLISE ESTATÍSTICA 120

A . l - Séries Estatísticas 121 A. 2 - M e d i d a s de Tendência C e n t r a l 122

A. 3 - M e d i d a s de Dispersão 122 A. 4 - Relações E n t r e Duas Variáveis 124

A. 4.1 - Regressão L i n e a r 125 A.4.2 - C o e f i c i e n t e de Correlação L i n e a r 127

A. 4.3 - Regressões Não L i n e a r e s 129 A. 4.4 - E r r o Padrão de E s t i m a t i v a 130 • A.4.5 T D e s v i o R e l a t i v o Médio - DRM 131

A.4.6 - D e s v i o Quadrático Médio - DQM 132 A.4.7 Previsão a um Nível de E r r o e

-P r e v ( e ) 132 REFERÊNCIAS BIBLIOGRÁFICAS 134

(11)

L I S T A DE FIGURAS F i g u r a s Página Capítulo 1: 1.1 - C i c l o de d e s e n v o l v i m e n t o de s o f t w a r e 4 Capítulo 2: 2.1 - F a t o r e s que a f e t a m a p r o d u t i v i d a d e 13 Capítulo 6: 6.1 - R e l a c i o n a m e n t o E n t r e Nj e N ( r o t i n a s ) 71 6.2 - R e l a c i o n a m e n t o e n t r e Nj e N ( p r o g r a m a s ) 75 6.3 - R e l a c i o n a m e n t o s e n t r e N e V, e N e LDCe ( r o t i n a s ) 79 6.4 - R e l a c i o n a m e n t o e n t r e c o m p r i m e n t o e esforço ( r o t i n a s ) 79 6.5 - Gráfico do tempo r e a l v e r s u s o tempo e s t i m a d o

p o r V ( p r o g r a m a s ) 87 Capítulo 7: 7.1 - R e l a c i o n a m e n t o • e n t r e Nj e N ( r o t i n a s ) 94 7.2 - R e l a c i o n a m e n t o e n t r e Nj e N ( p r o g r a m a s ) 96 7.3 - Variação da relação N/N p a r a 206 p r o g r a m a s o r d e n a d o s p e l o comprimento 98 7.4 - R e l a c i o n a m e n t o e n t r e N e V, e N e LDCe ( r o t i n a s ) 102 Capítulo 8: 8.1 - Formulário p a r a c o l e t a de t e m p o / c u s t o 115 8.2 - Formulário p a r a c o l e t a de tamanho 116 8.3 - Formulário p a r a c o l e t a de informações s o b r e e r r o s 117 Apêndice A:

A . l - Esforço (d.m.e.) x Tempo ( m i n ) - Exemplo 125

A. 2 - Equação da m e l h o r r e t a - Exemplo 126 A.3 - E x e m p l o s de correlações l i n e a r e s 128 A.4 - E x e m p l o s de regressões não-lineares 129

(12)

L I S T A DE TABEIiAS T a b e l a s Página Capítulo 4: 4.1 - Correlação E n t r e N e N e Nj p a r a P r o g r a m a s em P a s c a l 38 4.2 - Nível de L i n g u a g e m (NL) p a r a Várias L i n g u a g e n s . 41

4.3 - Correlações e n t r e Tempo de Programação e

Esforço e L i n h a s de Código - 42 4.4 - Correlações E n t r e P r i n c i p a i s Métricas 44 Capítulo 6: 6.1 - Distribuição d o s P r o g r a m a s A n a l i s a d o s ( P a s c a l ) . 67 6.2 - Adequação de N n a E s t i m a t i v a de N ( R o t i n a s ) .... 69 6.3 - Adequação de Nj n a E s t i m a t i v a de N ( R o t i n a s ) ... 70 6.4 - Estatísticas da Regressão P o l i n o m i a l do Segundo G r a u p a r a N e rj ( R o t i n a s ) 72

6.5 - Variação d a s Relações N/N e Nj/N com o

Comprimento d a s R o t i n a s 73 6.6 - Adequação de N, Nj , Np r 0g e N j -p ro g Quando

A p l i c a d o s a 16 P r o g r a m a s 74 6.7 - Variação do Nível d a Linguagem P a s c a l 77

6.8 - Correlações E n t r e Métricas ( R o t i n a s ) 78 6.9 - Regressão do Tempo de Programação P a r a

. Vários Modelos ( R o t i n a s ) 81 6.10 - Regressão do Tempo de Programação p a r a

Vários Modelos ( P r o g r a m a s ) 83 6.11 - Variação d o s C o e f i c i e n t e s A n g u l a r e s em P r o g r a m a s de C a t e g o r i a s D i f e r e n t e s 85 6.12 - Tempo de Programação R e a l V e r s u s E s t i m a d o p o r D i v e r s o s Modelos ( P r o g r a m a s ) 86 Capítulo 7: 7.1 - Distribuição dos P r o g r a m a s A n a l i s a d o s ( C ) 90 7.2 - Adequação de N n a E s t i m a t i v a de N ( R o t i n a s ) .... 9 2 7.3 - Adequação d e Nj n a E s t i m a t i v a de N ( R o t i n a s ) ... 93 7.4 - Comprimentos d o s _ P r o g r a m a s A n a l i s a d o s 95 7.5 - Adequação de N, Nj , Np r_0g e N j -p ro g ( P r o g r a m a s ) . 95 7.6 - Variação d a s Relações N/N, Nj/N e 171/17 ( R o t i n a s ) 97 7.7 - Variação de N/N, Nj/N e x]\/r\ (Programas) 98 7.8 - Variação de I P a r a S e i s P r o g r a m a s 99 7.9 - Variação do Nível d a Linguagem C ( R o t i n a s ) 100

7.10 - Correlações E n t r e a s P r i n c i p a i s Métricas

(13)

L I S T A DE QUADROS Q u a d r o s Página Capítulo 2: 2.1 - E x e m p l o s de Métricas em D i v e r s a s F a s e s 16 Capítulo 5: 5.1 - V a l o r e s Desejáveis p a r a o s Parâmetros Estatísticos 52 5.2 - Instruções que I n f l u e m no Cálculo do Número

Ciclomático 64 Capítulo 8:

8.1 - Resumo do E s t u d o de Validação d a s Métricas 111

(14)

L I S T A DE ABREVIATURAS As s e g u i n t e s a b r e v i a t u r a s são u t i l i z a d a s ao l o n g o d e s t e t r a b a l h o . Parâmetros Estatísticos: , - r : c o e f i c i e n t e de correlação estatística; - a : p r i m e i r o c o e f i c i e n t e da equação de regressão. Se a equação é de uma r e t a , " a " é a interseção da r e t a com o e i x o y;

b : segundo c o e f i c i e n t e da equação de regressão. Numa r e -t a , é o c o e f i c i e n -t e a n g u l a r ;

- c : t e r c e i r o c o e f i c i e n t e da equação de regressão; - DRM: d e s v i o r e l a t i v o médio;

- DQM: d e s v i o quadrático médio;

- P r e v ( 0 , 2 5 ) : p e r c e n t a g e m de prognósticos com e r r o menor que 2 5 % . Métricas d a Ciência de S o f t w a r e : N, N e Nj : c o m p r i m e n t o s r e a l , e s t i m a d o de H a l s t e a d e e s -t i m a d o de J e n s e n ; - 17. e r/2 : número de o p e r a d o r e s e o p e r a n d o s d i s t i n t o s ; - N1 e N2: número de ocorrências t o t a i s de o p e r a d o r e s e o p e r a n d o s ; - r?: vocabulário do p r o g r a m a ; - V: volume do p r o g r a m a ;

(15)

- I : conteúdo de informação; A A , , - L e D: nível e d i f i c u l d a d e do p r o g r a m a e s t i m a d o s ; - NL: nível de l i n g u a g e m ; - E : esforço de programação; - N p r 0g e E p r o g : N e E c a l c u l a d o s p a r a t o d o o p r o g r a m a i g n o r a n d o - s e o s l i m i t e s d a s r o t i n a s . O u t r a s Métricas: - NC: número ciclomático; - NR: número de r o t i n a s ; - LDC ou L D C t : l i n h a s de código t o t a l ; - LDCe: l i n h a s de código executável.

(16)

1 - INTRODUÇÃO

1.1 - Introdução

Na instalação de n o v o s s i s t e m a s c o m p u t a d o r i z a d o s , a r e l a -ção de i n v e s t i m e n t o s em s o f t w a r e e h a r d w a r e c r e s c e u de 11:9 em 1980 p a r a c e r c a de 16:4 em 1990 [ F O R T 8 9 ] . A razão p a r a e s t e índ i c e tão a l t o tem s i índ o o índ e s e n v o l v i m e n t o m u i t o rápiíndo índ a t e c n o -l o g i a de h a r d w a r e . Nenhuma o u t r a t e c n o -l o g i a c o n s e g u i u em a p e n a s 30 a n o s a p r e s e n t a r tamanha evolução n a relação c u s t o - d e s e m p e h h o — da ordem de 1 06 [BR0087; B A E R 8 4 ] .

O h a r d w a r e m a i s p o t e n t e e b a r a t o , p o r s u a v e z , p e r m i t e uma m a i o r popularização e disseminação de c o m p u t a d o r e s n a s o c i e d a d e e o u s o d e s s e s em aplicações c a d a v e z m a i s a b r a n g e n t e s e comp l e x a s . I s t o f a z a demanda comp o r s o f t w a r e c r e s c e r c e r c a de 10 v e z e s p o r década [ M I Z U 8 3 ] , e n q u a n t o que, n e s s e mesmo período, e s -t i m a - s e que a p r o d u -t i v i d a d e n a produção de s o f -t w a r e c r e s c e a uma t a x a de a p e n a s 5 0 % [MOAD90]. Em conseqüência, a indústria de s o f t w a r e m o s t r a - s e i n c a p a z de s u p r i r t a l demanda, a p e s a r de i n v e s t i m e n t o s v u l t o s o s a n u a i s . (A e s t i m a t i v a p a r a 1990 é de a p r o x i m a d a m e n t e 250 b i l h õ e s de d ó l a r e s em t o d o o mundo

[ B O E H 8 7 ] . )

Tendo como o b j e t i v o " p r o d u z i r o m e l h o r s o f t w a r e possível ao menor c u s t o possível" [CARD87, p. 8 4 5 ] , a d i s c i p l i n a de e n g e n h a r i a de s o f t w a r e [RAMA84; M I L L 8 0 ] , s u r g i d a no início d a d é -c a d a de 70, t o r n o u - s e a l v o de m u i t o i n t e r e s s e , t a n t o a-cadêmi-co como c o m e r c i a l . A s u a evolução, c o n t u d o , é l e n t a e árdua, sem a s g r a n d e s revoluções que t a n t o c a r a c t e r i z a m a história do

(17)

h a r d w a r e . E a i n d a h o j e , o s m a i o r e s p r o b l e m a s d e s t a d i s c i p l i n a são o s mesmos de 20 anos atrás: b a i x a p r o d u t i v i d a d e , a t r a s o s de c r o n o g r a m a , g a s t o s a c i m a d o s p r e v i s t o s , f a l t a de c o n t r o l e s o b r e o d e s e n v o l v i m e n t o e b a i x a q u a l i d a d e . T a n t o é que uma p e s q u i s a do g o v e r n o a m e r i c a n o , c i t a d a em [ B U C K 8 4 ] , d e s c o b r i u que em nove p r o j e t o s de s o f t w a r e encomendados p e l o g o v e r n o , t o t a l i z a n d o v a l o r e s de 6,8 milhões de dólares: 4 5 % d o s s o f t w a r e f o r a m e n t r e -g u e s mas n u n c a u s a d o s , 29% f o r a m pa-gos mas não e n t r e -g u e s , 1 9 % f o r a m r e t r a b a l h a d o s p a r a poderem s e r u s a d o s , 3% f o r a m u s a d o s após p e q u e n a s mudanças e a p e n a s 2% f o r a m u s a d o s da m a n e i r a como f o r a m e n t r e g u e s . D i a n t e d e s t a situação problemática no d e s e n v o l v i m e n t o de s o f t w a r e , d i v e r s a s técnicas e m e t o d o l o g i a s têm s i d o e l a b o r a d a s e a p l i c a d a s com o i n t u i t o de m e l h o r a r a q u a l i d a d e da produção do s o f t w a r e e , também, do s o f t w a r e em s i , o' que é e s s e n c i a l n e s t e c o m p e t i t i v o m e r c a d o . E x e m p l o s m a i s r e l e v a n t e s d e s s a s técnicas são o s m o d e l o s de especificação, de representação de dados e de p r o j e t o s , a programação e s t r u t u r a d a , a s técnicas o r i e n t a d a s a o b j e t o s , a especificação f o r m a l , a s f e r r a m e n t a s CASE ( e n g e n h a r i a de s o f t w a r e a u x i l i a d a p o r c o m p u t a d o r ) , e t c

[BR0087; RAMA84] .

No e n t a n t o , uma á r e a f u n d a m e n t a l d a e n g e n h a r i a d e s o f t w a r e , r e l a t i v a m e n t e pouco a b o r d a d a , é a que compreende o s a s p e c t o s q u a n t i t a t i v o s da produção. A p e s a r de s u a importância np c o n t r o l e e gerência de d e s e n v o l v i m e n t o , o s f a t o r e s que r e l a -c i o n a m -c u s t o e tempo à q u a n t i d a d e de s o f t w a r e d e s e n v o l v i d o são pouco l e v a n t a d o s e a n a l i s a d o s [DEMA89]. P o r e s t a razão, a s

(18)

t o d o l o g i a s de previsão dos f a t o r e s q u a n t i t a t i v o s do d e s e n v o l v i mento de s o f t w a r e a i n d a estão pouco evoluídas. A s s i m , é f r e -qüente a previsão de p r a z o s e r e c u r s o s b a s e a d a e x c l u s i v a m e n t e n a experiência de g e r e n t e s de produção e em d a d o s empíricos.

O d e s e n v o l v i m e n t o de s o f t w a r e , como q u a l q u e r o u t r a a t i v i -dade, não pode s e r g e r e n c i a d o s e não pode s e r medido. D e s t a f o r m a , avanços n a previsão e c o n t r o l e acontecerão quando s e p u -d e r m e -d i r e e s t i m a r p r o p r i e -d a -d e s -do s o f t w a r e com precisão. A identificação, e s t u d o e aperfeiçoamento d e s t a s p r o p r i e d a d e s mensuráveis, ou métricas, como serão chamadas d a q u i em d i a n t e , são e s s e n c i a i s p a r a a execução de p r o j e t o s de f o r m a mensurável, c u j o d e s e n v o l v i m e n t o p o s s a s e r p r e v i s t o , acompanhado e m o n i t o -r a d o [DEMA89; GRAD87]. As mét-ricas, em suma, " t -r a b a l h a m como m e c a n i s m o s de c o n t r o l e que, além de a v a l i a r e m um p r o c e s s o , tam-b é m s e r v e m de g u i a p a r a o a p e r f e i ç o a m e n t o d e s t e p r o c e s s o "

[M0HA81, p. 1 1 7 ] . E s t e t r a b a l h o t r a t a de métricas a p l i c a d a s à e n g e n h a r i a de s o f t w a r e .

1.2 - Adoção de Métricas em E n g e n h a r i a de S o f t w a r e

A medição de características do s o f t w a r e pode s e r útil em p r a t i c a m e n t e t o d o s e u p r o c e s s o de d e s e n v o l v i m e n t o . Normalmente, c o s t u m a - s e d i v i d i r o p r o c e s s o de d e s e n v o l v i m e n t o de s o f t w a r e em d i v e r s a s f a s e s bem d e f i n i d a s embora, n a prática, e s t a s f a s e s possam s e s o b r e p o r . Um modelo comumente a c e i t o é m o s t r a d o n a f i g u r a 1.1 e d i v i d e o c i c l o de d e s e n v o l v i m e n t o n a s s e g u i n t e s f a s e s :

(19)

funções r e q u e r i d a s e características de d e s e m p e n h o ) ;

P r o j e t o (descrição de como o s o f t w a r e d e v e s e r i m p l e m e n t a -do p a r a c u m p r i r s u a especificação; c o n s i s t e n o r m a l m e n t e n a decomposição do s o f t w a r e em módulos e s u b m ó d u l o s ) ;

- Codificação (codificação e t e s t e s de c a d a m ó d u l o ) ;

- T e s t e s ( p r o c u r a e correção de e r r o s após a integração dos m ó d u l o s ) ;

- Manutenção ( m e l h o r i a e correção de e r r o s do s o f t w a r e , após a liberação p a r a u s o ) . R e q u i s i t o s / Especificação P r o j e t o 1 •z st Codificação . A e. T e s t e s Manutenção F i g u r a 1.1 - C i c l o de d e s e n v o l v i m e n t o de s o f t w a r e

Embora a s métricas possam s e r a p l i c a d a s às d i v e r s a s f a s e s

(20)

do c i c l o de d e s e n v o l v i m e n t o de s o f t w a r e , a g r a n d e m a i o r i a d a s métricas e n c o n t r a d a s n a l i t e r a t u r a -s e c o n c e n t r a n a f a s e de c o

-dificação. As métricas p a r a o u t r a s f a s e s m o s t r a r a m - s e até a g o r a bem m a i s i m p r e c i s a s , p r i n c i p a l m e n t e p o r dependerem m u i t o da me-t o d o l o g i a de d e s e n v o l v i m e n me-t o a d o me-t a d a .

As métricas d a f a s e de codificação n o r m a l m e n t e s e b a s e i a m n a c o n t a g e m de uma ou m a i s p r o p r i e d a d e s t e x t u a i s do p r o g r a m a f o n t e p a r a a v a l i a r o s s e g u i n t e s a s p e c t o s [CONT86]:

- o tamanho do s o f t w a r e (como o número de l i n h a s de código ou alguma o u t r a c o n t a g e m de t o k e n s ) ;

a c o m p l e x i d a d e da e s t r u t u r a lógica (como f l u x o de c o n t r o -l e , níve-l de a n i n h a m e n t o ou r e c u r s ã o ) ;

- a c o m p l e x i d a d e d a s e s t r u t u r a s de d a d o s (como o número de variáveis u s a d a s ) .

A i n d a que n u m e r o s a s métricas tenham s i d o p r o p o s t a s p o r p e s q u i s a d o r e s d e s d e meados da década de 7 0 , p a r a p o u c a s f o r a m f e i t o s e x p e r i m e n t o s d e m o n s t r a n d o o s benefícios de s u a u t i l i z a ção. D e s t a f o r m a , m a i s do que i d e n t i f i c a r n o v a s métricas é e s -s e n c i a l , h o j e , e x e c u t a r t e -s t e -s de validação d a -s e x i -s t e n t e -s , p o i s só a s s i m e l a s poderão s e r e f e t i v a m e n t e a d o t a d a s n a c a r a c terização e avaliação do s o f t w a r e e n a previsão de s e u s a t r i b u -t o s [ C U R T 8 3 ] . E s -t e e s -t u d o b u s c a a c r e s c e n -t a r subsídios p a r a a v a l i d a ç ã o d e m é t r i c a s a p l i c a d a s à f a s e de c o d i f i c a ç ã o de s o f t w a r e .

(21)

1.3 - Ciência de S o f t w a r e e Número Ciclomático

E n t r e a s d i v e r s a s métricas p a r a a f a s e de codificação a p r e s e n t a d a s n a l i t e r a t u r a , s e d e s t a c a m a s métricas da Ciência de S o f t w a r e de M a u r i c e H a l s t e a d [HALS77] e o número ciclomático de Thomas McCabe [MCCA76], p e l a atenção e críticas r e c e b i d a s . É i m p o r t a n t e n o t a r que e s t a s métricas não s e r e s t r i n g e m à f a s e de codificação, a p e n a s . P a r a f i n s c o m p a r a t i v o s , f o r a m também e x p e -r i m e n t a d a s a s mét-ricas de l i n h a s de código e núme-ro de -r o t i n a s , p o i s , a p e s a r de t e r e m g r a n d e s limitações ( v e r seção 2 . 3 . 1 ) , são a s m a i s p o p u l a r e s e fáceis de o b t e r .

A Ciência de S o f t w a r e é uma t e o r i a que, a p e s a r de s i m p l e s n a derivação de s u a s equações — t o d a s b a s e a d a s n a c o n t a g e m de o p e r a d o r e s e o p e r a n d o s do código f o n t e — tem uma gama de a p l i cações b a s t a n t e ampla e a b r a n g e n t e e , a princípio, não f a z r e s -trições q u a n t o a d i f e r e n t e s l i n g u a g e n s de programação e ambient e s de produção.' A publicação de a r ambient i g o s cienambientíficos d e s c r e v e n -do a u t i l i z a ç ã o d e s t a s m é t r i c a s n a s l i n g u a g e n s F o r t r a n

[ B A S I 8 3 b ] , APL [KONS85], P L / I [ E L S H 7 6 a ; E L S H 7 6 b ] , P L / S [SMIT80J e C o b o l [SHEN80] m o s t r a evidências que a t e o r i a de H a l s t e a d é r e l a t i v a m e n t e p r e c i s a e útil, p r i n c i p a l m e n t e n a determinação da c o m p l e x i d a d e de código e n a s e s t i m a t i v a s de c o m p r i m e n t o de p r o grama, de tempo de programação e do número de e r r o s no p r o g r a -ma .

O número ciclomático f o i c r i a d o com o i n t u i t o de q u a n t i f i -c a r a -c o m p l e x i d a d e do f l u x o de -c o n t r o l e e b a s e i a - s e no número de c a m i n h o s de execução possíveis em um p r o g r a m a . E s t e número é dado p e l a q u a n t i d a d e de decisões no código m a i s um. P o r r e f l e

(22)

t i r de q u a n t a s m a n e i r a s d i f e r e n t e s um p r o g r a m a pode s e r e x e c u -t a d o , e s -t a mé-trica é uma b a s e m a i s p r e c i s a p a r a previsões de d i f i c u l d a d e de t e s t e s e manutenção c a u s a d a p e l a c o m p l e x i d a d e do código.

A precisão ( o u g r a u de aproximação em relação aós dados r e a i s ) d e s t a s métricas na medição de esforço de d e s e n v o l v i m e n t o e c o m p l e x i d a d e do código a i n d a é uma questão em a b e r t o . Tendo em v i s t a que a m b i e n t e s e l i n g u a g e n s de programação v a r i a m , e s t u d o s i n d i v i d u a i s d e n t r o de organizações produzem r e s u l t a d o s m u i t o variáveis, d i f i c u l t a n d o análises de validação d a s m é t r i -c a s . A s s i m , e s t u d o s em d i v e r s o s a m b i e n t e s serão ne-cessários a n t e s de s e r e s p o n d e r a e s s a questão com algum g r a u de c o n f i -ança. T a i s e s t u d o s s e t o r n a m m a i s árduos d e v i d o à e s c a s s e z de d a d o s s e g u r o s s o b r e o p r o c e s s o de d e s e n v o l v i m e n t o de s o f t w a r e . A p a r e n t e m e n t e , p o u c o s c o l e t a m f o r m a l m e n t e tais•estatísticas, a não s e r quando c o n s c i e n t e s da importância de m e d i r o p r o c e s s o de d e s e n v o l v i m e n t o .

Em função da revisão bibliográfica r e a l i z a d a , p o d e - s e a f i r m a r que m u i t o pouco f o i p u b l i c a d o s o b r e a validação d a s m é -t r i c a s de H a l s -t e a d e McCabe p a r a p r o g r a m a s em P a s c a l e q u a s e n a d a q u a n t o à l i n g u a g e m C — l i n g u a g e n s p r e f e r i d a s h o j e em a m b i e n t e s acadêmicos e p a r a d e s e n v o l v i m e n t o de s o f t w a r e básico.

E s t a dissertação e s t u d a a adequação d a s métricas da Ciên-c i a de S o f t w a r e de H a l s t e a d e do número Ciên-ciCiên-clomátiCiên-co de MCiên-cCabe p a r a m o d e l a r o comportamento de p r o g r a m a d o r e s em P a s c a l e em C.

(23)

1.4 - O b j e t i v o s e Contribuição do T r a b a l h o

O p r i n c i p a l o b j e t i v o d e s t e t r a b a l h o é a n a l i s a r a v a l i d a d e d a s métricas da Ciência de S o f t w a r e e do número ciclomático n a implementação de p r o g r a m a s n a s l i n g u a g e n s C e P a s c a l , t a n t o do p o n t o de v i s t a de consistência"interna como no auxílio de e s t i -m a t i v a de te-mpo de progra-mação. Co-m i s t o , p r e t e n d e - s e e x a -m i n a r a aplicação d e s t a s métricas a a m b i e n t e s pouco e s t u d a d o s n a l i t e r a t u r a e s p e c i a l i z a d a .

O e s t u d o de validação é f e i t o em d u a s e t a p a s . A e t a p a de validação i n t e r n a v e r i f i c a a consistência d a s d i v e r s a s equações e suposições p o r trás d a s métricas de i n t e r e s s e . A e t a p a de v a -lidação e x t e r n a c o n f r o n t a o tempo de d e s e n v o l v i m e n t o e s t i m a d o p e l o s m o d e l o s de métricas com o tempo r e a l o b s e r v a d o . Em ambas a s e t a p a s , são u t i l i z a d a s técnicas estatísticas que p e r m i t e m a v a l i a r a precisão d a s equações e métricas e e s t a b e l e c e r i n t e r v a l o s de confiança p a r a a s métricas, quando u t i l i z a d a s como e s -t i m a d o r a s . O o b j e t o d a análise c o n s i s t i u em 1.670 r o t i n a s em C e P a s c a l , t o t a l i z a n d o m a i s de 50.000 l i n h a s de código f o n t e , p r o v e -n i e -n t e s de a p l i c a t i v o s c o m e r c i a i s , p r o c e s s a d o r de t e x t o , s o f t w a r e básico e p r o g r a m a s de e s t u d a n t e s . Os p r o g r a m a s em C f o r a m d e s e n v o l v i d o s no a m b i e n t e UNIX (o q u a l o f e r e c e um c o n j u n t o de f e r r a m e n t a s p o d e r o s a s p a r a m a i o r p r o d u t i v i d a d e no d e s e n v o l v i m e n t o de s o f t w a r e — e como t a l , pode i n f l u e n c i a r o s r e -s u l t a d o -s ) . O-s p r o g r a m a -s em P a -s c a l f o r a m p r o d u z i d o -s no a m b i e n t e DOS. Os r e s u l t a d o s são, p o r t a n t o , s i g n i f i c a t i v o s do p o n t o de v i s t a acadêmico e de i n t e r e s s e prático, v i s t o que o s p r o g r a m a s

(24)

a n a l i s a d o s estão disponíveis c o m e r c i a l m e n t e ( e x c e t o , o b v i a m e n -t e , a q u e l e s p r o v e n i e n -t e s de -t a r e f a s e s c o l a r e s ) .

Com relação à abrangência dos r e s u l t a d o s a s e r e m a p r e s e n -t a d o s , v a l e uma r e s s a l v a . D e v i d o à e s c a s s e z de d a d o s c o l e -t a d o s d u r a n t e o d e s e n v o l v i m e n t o dos p r o g r a m a s a n a l i s a d o s , p r i n c i p a l mente o s e s c r i t o s em C, a análise da u t i l i d a d e d a s métricas c o mo e s t i m a d o r a s de parâmetros como distribuição de e r r o s , e f i -ciência de remoção de e r r o s a n t e s da liberação de p r o d u t o e distribuição de f a l h a s r e s i d u a i s ( a s e r e m c o r r i g i d a s n a f a s e de manutenção) não pôde s e r r e a l i z a d a . É i n t u i t i v o , c o n t u d o , que e s s e s parâmetros s e c o r r e l a c i o n e m f o r t e m e n t e com o nível de q u a l i d a d e e p r o d u t i v i d a d e de d e s e n v o l v i m e n t o . P o r i s t o , devem s e r a l v o de atenção em t r a b a l h o s f u t u r o s .

É n o s s a opinião que o p r e s e n t e t r a b a l h o c o n t r i b u i p a r a a e n g e n h a r i a de s o f t w a r e d e v i d o a o s s e g u i n t e s p o n t o s . P r i m e i r o , e s t a dissertação expande o s h o r i z o n t e s de aplicação de um c o n -j u n t o de métricas s i m p l e s , mas r o b u s t a s (como será v i s t o ) , a a m b i e n t e s de programação p o p u l a r e s ( C no U n i x e P a s c a l no DOS). Segundo, o e s t u d o de validação o f e r e c e uma b a s e sólida, a p a r -t i r da q u a l , m o d e l o s de avaliação de produção e p r o d u -t i v i d a d e no d e s e n v o l v i m e n t o de s o f t w a r e podem s e r construídos d e v i d a m e n t e a j u s t a d o s p a r a r e f l e t i r características o p e r a c i o n a i s de p r o -d u t o s -de s o f t w a r e -de q u a l q u e r p o r t e . 0 a j u s t e -d e s t e s m o -d e l o s exigirá c e r t a m e n t e a c o l e t a de d a d o s d u r a n t e a l g u n s a n o s . A l -guns d o s possíveis p r o c e d i m e n t o s n a definição d o s m o d e l o s são a p r e s e n t a d o s a q u i . T e r c e i r o , o mero f a t o de s e r e m o f e r e c i d o s v a l o r e s p a r a a l g u n s parâmetros da f a s e de codificação e t e r - s e

(25)

d e m o n s t r a d a s u a v a l i d a d e p a r a s o f t w a r e f e i t o no B r a s i l tem d e s p e r t a d o o i n t e r e s s e de p r o f i s s i o n a i s era a d o t a r e m m o d e l o s g e r e n c i a i s b a s e a d o s n a s m é t r i c a s e s t u d a d a s . E s s e i n t e r e s s e levará c e r t a m e n t e a uma e v e n t u a l m e l h o r i a da q u a l i d a d e de n o s -s o -s p r o d u t o -s de -s o f t w a r e e a um nível g e r e n c i a l m a i -s b a l i z a d o . Q u a r t o , o e s t u d o r e a l i z a d o , s e bem que i n c i p i e n t e , motivará esforços p a r a uma m a i o r abrangência de p e s q u i s a n a área e ao d e s e n v o l v i m e n t o de m a i s f e r r a m e n t a s p a r a c o l e t a automática de d a d o s — o que m u i t o contribuirá p a r a e s t u d o s f u t u r o s de v a -lidação .

1.5 - Organização da Dissertação

O r e s t a n t e d e s t a dissertação está o r g a n i z a d o como s e g u e . O capítulo d o i s c o n c e i t u a métrica de s o f t w a r e e i n t r o d u z c l a s -sificações n a s q u a i s s e enquadram a s métricas d a Ciência de S o f t w a r e e o número ciclomático.

No t e r c e i r o capítulo são d e s c r i t a s a s a b o r d a g e n s e e q u a -ções d a s métricas d a Ciência de S o f t w a r e e do número ciclomátic o , e n q u a n t o que no ciclomáticapítulo q u a t r o são a p r e s e n t a d o s o s p r i n ciclomátic i p a i s t r a b a l h o s p u b l i c a d o s a r e s p e i t o d a aplicação d e s s a s m é t r i -c a s em d i v e r s a s l i n g u a g e n s .

O capítulo c i n c o d e s c r e v e , de f o r m a s u c i n t a , como f o r a m r e a l i z a d o s o s e x p e r i m e n t o s d e s t e e s t u d o e q u a i s f o r a m o s crité-r i o s a d o t a d o s p a crité-r a a validação estatística d a s métcrité-ricas. É a p r e s e n t a d a uma f e r r a m e n t a , d e s e n v o l v i d a e s p e c i a l m e n t e p a r a e s -t e -t r a b a l h o , c u j a f i n a l i d a d e é c o l e -t a r o s d a d o s e c a l c u l a r a s métricas p a r a códigos em P a s c a l e C. As m e t o d o l o g i a s de cálculo

(26)

s e g u i d a s p e l a f e r r a m e n t a na obtenção d a s métricas são também d e s c r i t a s d e t a l h a d a m e n t e .

Os capítulos s e i s e s e t e a p r e s e n t a m o s r e s u l t a d o s d a s aná-l i s e s e f e t u a d a s com códigos em P a s c a aná-l e em C, r e s p e c t i v a m e n t e , comparandoos com conclusões a que s e c h e g a r a m em o u t r o s e s t u -d o s . N e s s e s capítulos também são f e i t o s t e s t e s -de vali-dação i n t e r n a e e x t e r n a d a s métricas p a r a a m o s t r a s constituídas de r o t i n a s e p r o g r a m a s , a f i m de a v a l i a r a s u a adequação. A l e i t u -r a d e s s e s capítulos é dispensável ao l e i t o -r i n t e -r e s s a d o a p e n a s n o s p r i n c i p a i s r e s u l t a d o s , que são r e s u m i d o s no capítulo p o s t e -r i o -r .

O capítulo o i t o a p r e s e n t a um sumário do e s t u d o , com c o n -clusões a r e s p e i t o d a s métricas a b o r d a d a s . N e s t e capítulo, também são f e i t a s recomendações p a r a t r a b a l h o s f u t u r o s , e s p e c i a l -mente q u a n t o a m e t o d o l o g i a s de c o l e t a s de d a d o s p a r a cálculo d a s métricas.

O apêndice A, p o r f i m , i n t r o d u z c o n c e i t o s básicos e a l g u mas técnicas p e r t i n e n t e s à Estatística u t i l i z a d o s n e s t e t r a b a

(27)

2 - MÉTRICAS DE SOFTWARE

E s t e capítulo d e f i n e o que é uma métrica de s o f t w a r e e a p r e s e n t a classificações d a s métricas q u a n t o à área de a p l i c a -ção, f a s e de d e s e n v o l v i m e n t o e abordagem básica, com o i n t u i t o de e n q u a d r a r a s métricas a q u i e s t u d a d a s . P a r a a s métricas c i t a -d a s , mas não -d i s c u t i -d a s , são i n -d i c a -d a s referências bibliográfi-c a s .

2.1 - Definição

De a c o r d o com [GRAD87, p. 4 ] , "uma métrica de s o f t w a r e d e f i n e uma m a n e i r a p a d r o n i z a d a de m e d i r algum a t r i b u t o do p r o c e s s o de d e s e n v o l v i m e n t o de s o f t w a r e " . P o r e x e m p l o , tamanho, c u s -t o , d e f e i -t o s , comunicações, d i f i c u l d a d e e a m b i e n -t e são -t o d o s c o n s i d e r a d o s a t r i b u t o s . Embora o t e r m o métrica s e j a l a r g a m e n t e u s a d o e p o r i s s o a d o t a d o n e s t e t r a b a l h o , a l g u n s p e s q u i s a d o r e s o r e j e i t a m p r e f e r i n d o u s a r o t e r m o m e d i d a ( m e a s u r e , em i n g l ê s ) . De a c o r d o com [RAMA88], uma métrica é um c o n c e i t o matemático bem d e f i n i d o , o que não é, s e g u n d o o s a u t o r e s , o c a s o d a s m e d i -d a s -de s o f t w a r e .

2.2 - Utilização de Métricas n a Avaliação de P r o d u t i v i d a d e

Com a c r e s c e n t e demanda de s o f t w a r e , t o r n a - s e c r u c i a l o d e s e n v o l v i m e n t o de n o v a s t e c n o l o g i a s que p r o p o r c i o n e m uma m a i o r p r o d u t i v i d a d e e q u a l i d a d e . As métricas são e s s e n c i a i s n a v a l i dação e aprovação d e s t a s t e c n o l o g i a s p o r a u x i l i a r e m n a a v a l i a

(28)

ção m a i s o b j e t i v a d o s benefícios t r a z i d o s p e l a s u a adoção. An-t e s de e s An-t u d a r o que a s méAn-tricas de p r o d u An-t i v i d a d e e q u a l i d a d e medem, é c o n v e n i e n t e d e f i n i r p r o d u t i v i d a d e .

A p r o d u t i v i d a d e n o r m a l m e n t e s e r e f e r e à relação e n t r e a s m e d i d a s de saídas e e n t r a d a s de um p r o c e s s o . No d e s e n v o l v i m e n t o de s o f t w a r e , um exemplo bem comum é o número de l i n h a s de códi-go p o r p e s s o a p o r d i a . A e n t r a d a é a q u a n t i d a d e de p e s s o a s e d i a s , e a saída o número de l i n h a s de código. A f i g u r a 2.1, a d a p t a d a de [GRAD87], m o s t r a o s componentes p r i n c i p a i s d a e n t r a d a ( o CUSTO) e d a saída (o VALOR) do p r o c e s s o de d e s e n v o l v i -mento .

produt ividade

atributos defeitos tamanho

linhas de funções tokens código

(29)

P o r i n f l u e n c i a r d i r e t a m e n t e a p r o d u t i v i d a d e , o s f a t o r e s de v a l o r — a q u a l i d a d e e q u a n t i d a d e de s o f t w a r e — são tópicos da m a i o r importância n a e n g e n h a r i a de s o f t w a r e . Mas, ao contrário dos f a t o r e s de c u s t o , que n o r m a l m e n t e não a p r e s e n t a m d i f i c u l d a -d e s p a r a s e r e m q u a n t i f i c a -d o s , o s f a t o r e s -de v a l o r são -de cará-t e r m a i s s u b j e cará-t i v o e de difícil mensuração — a f i n a l , s o f cará-t w a r e é um p r o d u t o e s s e n c i a l m e n t e r e s u l t a n t e de um esforço lógico. As práticas comuns p a r a medição d e s t e s i t e n s são o a s s u n t o d a s próximas seções.

2.2.1 - Q u a l i d a d e

A abordagem m a i s comum no t r a t a m e n t o de q u a l i d a d e de s o f t w a r e c o n s i s t e em d i v i d i r a q u a l i d a d e em c o m p o n e n t e s ou a t r i b u t o s e e s t u d a r m a n e i r a s de m e d i r a presença ( o u ausência) d e s t e s a t r i b u t o s no s o f t w a r e . Boehm, p o r exemplo, decompõe a q u a l i d a d e n o s s e g u i n t e s a t r i b u t o s : c o m p r e e n s i b i l i d a d e , c o n f i a -b i l i d a d e , estruturação, eficiência e f a c i l i d a d e de t e s t e , manu-tenção e u s o [BOEH78], E n t r e t a n t o , d e v i d o à d i f i c u l d a d e , ou t a l v e z até i m p o s s i b i l i d a d e , de s e q u a n t i f i c a r a l g u n s d e s t e s a t r i b u t o s , não há a t u a l m e n t e métricas de q u a l i d a d e bem e s t a b e -l e c i d a s [ C 0 N T 8 6 ] .

Mas, de a c o r d o com a l g u n s p e s q u i s a d o r e s [LEW88; I V A N 8 7 ] , o s a t r i b u t o s de q u a l i d a d e dependem f o r t e m e n t e de um s u b e i t r i b u t o bem m a i s c o n h e c i d o , r e l a t i v a m e n t e i n d e p e n d e n t e e m a i s f a c i l m e n t e quantificável que é a c o m p l e x i d a d e . E s t e t i p o de c o m p l e x i d a de, também chamado de c o m p l e x i d a d e psicológica, está r e l a c i o -nado com a s características do s o f t w a r e que o f a z e m difícil de

(30)

e n t e n d e r , t e s t a r e m a n t e r [WAGU87].

P o r e s t a razão, a s métricas de c o m p l e x i d a d e são úteis na avaliação da d i f i c u l d a d e de d e s e n v o l v i m e n t o , de t e s t e s e p r i n c i p a l m e n t e de manutenção. C o n s i d e r a n d o que a manutenção r e p r e -s e n t a c e r c a de 70 a 7 5 % [ P A R I 9 0 ; BOEH78] do c u -s t o t o t a l no c i c l o de v i d a de g r a n d e s s i s t e m a s de s o f t w a r e , d e d u z s e que t o -dos o s esforços p a r a d i m i n u i r o t r a b a l h o de manutenção são bem-v i n d o s , e a s métricas de c o m p l e x i d a d e têm p a p e l e s s e n c i a l n e s t e s e n t i d o . Uma boa métrica de c o m p l e x i d a d e pode, i n c l u s i v e , s e r u s a d a p a r a i d e n t i f i c a r módulos de s o f t w a r e de difícil manuten-ção e m a i o r p r o b a b i l i d a d e de a p r e s e n t a r e r r o s .

D e n t r e a s métricas de c o m p l e x i d a d e e n c o n t r a d a s n a b i b l i o -g r a f i a , d e s t a c a m - s e p r i n c i p a l m e n t e o número ciclomático e uma d a s métricas de H a l s t e a d (o esforço, d e f i n i d a p o s t e r i o r m e n t e ) , ambas e s t u d a d a s n e s t e t r a b a l h o .

2.2.2 - Q u a n t i d a d e

P a r a a medição de q u a n t i d a d e , comumente são q u a n t i f i c a d o s o s p r o d u t o s r e s u l t a n t e s do d e s e n v o l v i m e n t o n a s d i v e r s a s f a s e s . O q u a d r o 2.1 m o s t r a a l g u n s e x e m p l o s .

(31)

FASES EXEMPLOS DE MÉTRICAS R e q u i s i t o s /

Especificação

Número de funções, i n t e r f a c e s , d a d o s e e s -t a d o s de -transição que c o n s -t a m n a documen-tação da especificação (métrica Bang)

[DEMA89].

P r o j e t o Número de módulos, conexões, d a d o s , t o -k e n s de c o n t r o l e , e t c , que c o n s t a m no p r o j e t o e s t r u t u r a d o [DEMA89]. Interação e n t r e o s módulos e c o m p l e x i d a d e i n t e r n a [LEW88]; G r a u de e s t a b i l i d a d e do p r o j e t o [YAU85]; A c o p l a m e n t o e coesão d o s módulos [ARTH85].

Codificação Número de l i n h a s de código, instruções e

r o t i n a s ; métricas de H a l s t e a d ; número c i -clomático

T e s t e s Número de d e f e i t o s e n c o n t r a d o s ; p o r c e n t a -gem de c a m i n h o s possíveis t e s t a d o s

fGRAD90].

Manutenção Número ( e t i p o ) de modificações c o r r e t i v a s , p r e v e n t i v a s e a d a p t a t i v a s ; c o n f i a b i -l i d a d e [CONT86]. Quadro 2.1 - E x e m p l o s de Métricas em D i v e r s a s F a s e s As métricas t r a t a d a s n e s t e t r a b a l h o s e r e s t r i n g e m a p e n a s à f a s e de codificação. 2.3 - P r i n c i p a i s Métricas p a r a a F a s e de Codificação As métricas p a r a a f a s e de codificação n o r m a l m e n t e s e p r o -põem a m e d i r a q u a n t i d a d e ou c o m p l e x i d a d e do código. É comum a classificação d e s s a s métricas em três c a t e g o r i a s [CONT86]: m é -t r i c a s de v o l u m e ( o u de -t a m a n h o ) , mé-tricas de e s -t r u -t u r a lógica

( o u de organização de c o n t r o l e ) e métricas de e s t r u t u r a de d a d o s . Algumas métricas podem s e r incluídas em m a i s de uma c a t e

(32)

g o r i a .

C o s t u m a s e , também, chamar a s métricas de v o l u m e de m é t r i -c a s e x t e n s i v a s e a s de e s t r u t u r a lógi-ca ou de d a d o s de métri-cas i n t e n s i v a s .

2.3.1 - Métricas de Volume

As métricas de volume são a s m a i s comuns e medem o tamanho do s o f t w a r e , como p o r exemplo, o s números de l i n h a s de código, de instruções, de declarações e de r o t i n a s . Até mesmo o número ciclomático pode s e r e n q u a d r a d o a q u i , já que é o número de d e -cisões de um p r o g r a m a m a i s um. Também n e s t a c a t e g o r i a podem s e r incluídas t o d a s a s métricas de H a l s t e a d , p o r s e r e m d e r i v a d a s da c o n t a g e m de o p e r a d o r e s e o p e r a n d o s .

A métrica número de l i n h a s de código é l a r g a m e n t e u s a d a n a e s t i m a t i v a de c u s t o e n a avaliação de p r o d u t i v i d a d e e c o m p l e x i -d a -d e . Uma utilização típica é a me-dição -de p r o -d u t i v i -d a -d e ; p o r exemplo, em [GRAD8 7] c i t a s e que a p r o d u t i v i d a d e média a m e r i c a na é de 100 a 500 l i n h a s de código p o r mês p o r p e s s o a . Mas a p e -s a r de -s e r a métrica m a i -s l e v a n t a d a e e -s t u d a d a , e l a a p r e -s e n t a g r a n d e s limitações ( q u e a s o u t r a s métricas em g e r a l a p r e s e n t a m , mas em menor g r a u ) :

- variação q u a n t o ao método de contcigem (inclusão ou não de l i n h a s de declaração, l i n h a s de comentário, l i n h a s n u l a s , l i n h a s de continuação, e t c ) ;

variação q u a n t o à l i n g u a g e m (um p r o g r a m a em código de m á -q u i n a , p o r exemplo, a p r e s e n t a m u i t o m a i s l i n h a s -que um

(33)

p r o g r a m a e q u i v a l e n t e em P a s c a l ) ;

variação q u a n t o ao e s t i l o de programação (um mesmo p r o g r a -ma pode s e r e s c r i t o de f o r m a m a i s ou menos c o n d e n s a d a ) ; - i n s e n s i b i l i d a d e à q u a l i d a d e e c o m p l e x i d a d e .

Uma métrica também de u s o m u i t o comum e de obtenção r e l a -t i v a m e n -t e s i m p l e s é o número de r o -t i n a s . Uma r o -t i n a pode s e r d e f i n i d a como s e n d o uma "Coleção de instruções, j u n t a m e n t e com a s declarações dos parâmetros f o r m a i s e d a s variáveis l o c a i s m a n i p u l a d a s p o r e s t a s instruções, que pode s e r i n v o c a d a como uma u n i d a d e o p e r a c i o n a l " [ B A S I 7 9 , p. 3 6 ] . (Embora e x i s t a m d e f i nições b a s e a d a s n o s n o v o s p a r a d i g m a s de programação, e s t a d e f i -nição é bem a p l i c a d a às l i n g a g e n s a q u i t r a t a d a s . ) O número de r o t i n a s é uma métrica útil n a previsão do tamanho de s o f t w a r e , p o i s pode s e r c o n h e c i d a com boa precisão no f i n a l da f a s e de p r o j e t o lógico. No e n t a n t o , a p r e s e n t a uma limitação s u b s t a n c i -a l : -a v-ari-ação de t-am-anho e c o m p l e x i d -a d e de um-a r o t i n -a p -a r -a o u t r a é m u i t o g r a n d e , e s p e c i a l m e n t e e n t r e r o t i n a s de d i f e r e n t e s t i p o s de s o f t w a r e e m e t o d o l o g i a s de programação.

O u t r o s t i p o s de métricas de volume [ R E D I 8 6 ; BERR85; HARR86] t e n t a m a v a l i a r a l e g i b i l i d a d e do t e x t o do p r o g r a m a através da análise do e s t i l o . A l g u n s d o s e l e m e n t o s c o n s i d e r a d o s são: endentação de instruções, q u a n t i d a d e de comentários, v a r i áveis e r o t i n a s , comprimento médio d o s nomes d a s variáveis, t a -manho médio d a s r o t i n a s , e t c . E s t a abordagem não l e v a em c o n t a a e s t r u t u r a lógica do código e s i m a s u a representação física.

O u t r a métrica de volume m u i t o u s a d a com bons r e s u l t a d a s na avaliação de p r o d u t i v i d a d e é a métrica de p o n t o s de função, d e

(34)

s e n v o l v i d a p o r A l l a n A l b r e c h t [ A L B R 7 9 ] . A abordagem básica s e c o n c e n t r a no número de e n t r a d a s , saídas, c o n s u l t a s , a r q u i v o s -m e s t r e e i n t e r f a c e s . E s t e s nú-meros são p o n d e r a d o s de a c o r d o co-m o g r a u de c o m p l e x i d a d e p a r a g e r a r o número de p o n t o s de função. A p r o d u t i v i d a d e é dada p e l a relação e n t r e e s t e número e o t o t a l de h o r a s de t r a b a l h o . A v a n t a g e m d e s t a abordagem é a t o t a l independência.quanto à l i n g u a g e m u s a d a . Mas um p o n t o f r a c o é a i n a b i l i d a d e de r e f l e t i r q u a l q u e r a t r i b u t o de q u a l i d a d e do s o f t w a r e .

P o r último, em [POOR88] há uma m a n e i r a de s e a v a l i a r ' a q u a l i d a d e de um p r o g r a m a através d a verificação do c u m p r i m e n t o de 22 r e g r a s de q u a l i d a d e que têm p e s o s v a r i a n d o de 1 a 4. Como a m a i o r i a d a s r e g r a s são s u b j e t i v a s , a automatização d a s m é t r i -c a s é m u i t o difí-cil. P a r a -c o n t o r n a r e s s a d i f i -c u l d a d e , f o r a m s e l e c i o n a d a s três métricas automatizáveis p r i n c i p a i s (uma d a s métricas de v o l u m e de H a l s t e a d ; a relação e n t r e o número de o p e r a n d o s a l t e r a d o s e o número t o t a l de o p e r a n d o s e o número de instruções de d e s v i o ) .

2.3.2 - Métricas de E s t r u t u r a Lógica

As métricas de e s t r u t u r a lógica medem a c o m p r e e n s i b i l i d a d e d a s e s t r u t u r a s de c o n t r o l e do código. D e s t a f o r m a , o número c i -c l o m -c i t i -c o , quando v i s t o -como o número de -c a m i n h o s de -c o n t r o l e , é também uma métrica d e s t a c a t e g o r i a .

A s métricas Número de Interseção Máxima [CHEN78] e K n o t s [WOOD79] t e n t a m m e d i r a c o m p l e x i d a d e e s t r u t u r a l através de grá-f i c o s de grá-f l u x o de c o n t r o l e c o r r e s p o n d e n t e s ao p r o g r a m a . 0

(35)

Númer o de InteNúmerseção Máxima é o númeNúmero de inteNúmerseções g e Númer a d a s q u a n -do uma l i n h a contínua e n t r a , p o r uma única v e z , em t o d a s a s regiões do gráfico de f l u x o de c o n t r o l e c o r r e s p o n d e n t e ao p r o -grama do q u a l s e d e s e j a m e d i r a c o m p l e x i d a d e . A métrica de K n o t s é c a l c u l a d a d e s e n h a n d o s e ao l a d o do código l i n h a s i n d i -cando a s mudanças no f l u x o de c o n t r o l e ( p r o v o c a d a s p o r g o t o , w h i l e , e t c ) e c o n t a n d o s e o número de interseções d e s t a s l i -n h a s . E s t a métrica é i-naplicável a p r o g r a m a s e s t r u t u r a d o s (sem instruções de d e s v i o g o t o ) , como o s c o n s i d e r a d o s n e s t e e s t u d o .

A c r e d i t a n d o que o nível de a n i n h a m e n t o de uma instrução d i f i c u l t a a compreensão de s u a função, a l g u n s p e s q u i s a d o r e s d e -s e n v o l v e r a m métrica-s (como p o r exemplo, B a n d w i d t h e B a n d ) que medem a c o m p l e x i d a d e como s e n d o p r o p o r c i o n a l ao nível médio de

a n i n h a m e n t o d a s instruções [DUNS78; LIND89; DAVC82; J E N S 8 5 ] . Uma abordagem i n t e i r a m e n t e d i f e r e n t e d a s c i t a d a s b a s e i a - s e no f a t o de que p r o g r a m a s são e n t e n d i d o s através d a assimilação de g r u p o s d e ' instruções que têm uma função comum [DAVI88; WEYU88; O V I E 8 0 ] . E s t e s g r u p o s são chamados comumente de b l o c o s . A p e s a r de não h a v e r um c o n s e n s o s o b r e o que d e f i n e p r e c i s a m e n t e um b l o c o , uma opinião b a s t a n t e a c e i t a d e f i n e - o como s e n d o uma seqüência de instruções c o n s e c u t i v a s com a p r o p r i e d a d e de que não há nenlmm d e s v i o de c o n t r o l e p a r a q u a l q u e r instrução d e n t r o do b l o c o que não s e j a a p r i m e i r a . . A c o m p l e x i d a d e do código é então d a d a p e l a dependência de c o n t r o l e de um b l o c o em relação a o s o u t r o s , que o c o r r e quando e x i s t e um d e s v i o de c o n t r o l e de um b l o c o p a r a o u t r o . Uma desvantagem d e s s a s métricas é a d i f i -c u l d a d e de obtenção.

(36)

De a c o r d o com [ D A V I 8 8 ] , a c o m p l e x i d a d e d a e s t r u t u r a lógica p a r e c e e s t a r m a i s r e l a c i o n a d a a a t i v i d a d e s p e r t i n e n t e s à c o n s -trução de p r o g r a m a s , comuns n a f a s e de p r o j e t o e codificação.

2.3.3 - Métricas de E s t r u t u r a de Dados

As métricas de organização de d a d o s são m e d i d a s do u s o e v i s i b i l i d a d e dos dados e também d a s interações e n t r e o s d a d o s d e n t r o de um p r o g r a m a . D e n t r e a s métricas de H a l s t e a d , d u a s bá-s i c a bá-s podem bá-s e r incluídabá-s a q u i : o número de o p e r a n d o bá-s d i bá-s t i n t o bá-s

(variáveis e c o n s t a n t e s ) e o número t o t a l de ocorrências de o p e r a n d o s .

A métrica de D a t a B i n d i n g [ B A S I 7 5 ; S T E V 7 4 ] é um exemplo d e s t a c a t e g o r i a p o r m e d i r a interação e n t r e a s r o t i n a s . O u t r o exemplo é a métrica Span [ E L S H 7 6 a ] que t e n t a m e d i r a p r o x i m i d a -de e n t r e referências e -definições -de c a d a i t e m -de dado.

Métricas p a r a m e d i r características do f l u x o de d a d o s de um p r o g r a m a e que s e b a s e i a m no c o n c e i t o de b l o c o s ( v i s t o n a seção a n t e r i o r ) f o r a m d e s e n v o l v i d a s em [DAVI88; O V I E 8 0 ] . A c o m p l e x i d a d e é dada p e l a dependência de d a d o s de um b l o c o em relação a o u t r o s . Uma dependência e n t r e d o i s b l o c o s e x i s t e s e uma variável pode s e r m o d i f i c a d a em um b l o c o e s e r r e f e r e n c i a d a

( u s a d a ) em o u t r o . D a v i s e L e B l a n c [DAVI88] c o n s i d e r a m que a c o m p l e x i d a d e da e s t r u t u r a de d a d o s a p a r e n t a s e r m a i s i m p o r t a n t e n a s a t i v i d a d e s r e l a t i v a s à compreensão de um p r o g r a m a e x i s t e n t e , comuns n a s f a s e s de t e s t e s e manutenção. N e s t e capítulo, a s p r i n c i p a i s métricas e n c o n t r a d a s n a l i

(37)

-t e r a -t u r a f o r a m a p r e s e n -t a d a s e c l a s s i f i c a d a s q u a n -t o à f a s e do d e s e n v o l v i m e n t o de s o f t w a r e e q u a n t o à abordagem básica u t i l i -z a d a . A utili-zação de métricas n a medição de p r o d u t i v i d a d e f o i também d i s c u t i d a . No próximo capítulo são d e s c r i t a s a s a b o r d a -g e n s e equações d a s métricas da Ciência de S o f t w a r e e do número ciclomático.

(38)

3 - MÉTRICAS DA CIÊNCIA DE SOFTWARE E NÚMERO CICLOMÁTICO

3.1 - Métricas da Ciência de S o f t w a r e

3.1.1 - Histórico

A Ciência de S o f t w a r e , i n i c i a l m e n t e c o n h e c i d a como Física de S o f t w a r e , f o i d e s e n v o l v i d a a p a r t i r de 197 2 p o r M a u r i c e H a l s t e a d e está r e l a c i o n a d a com a s p r o p r i e d a d e s mensuráveis do t e x t o de p r o g r a m a s f o n t e .

Lembrando que o s a n t i g o s p r o g r a m a s em l i n g u a g e m de máquina c o n s i s t i a m a p e n a s de uma série de instruções de uma p a l a v r a , c a d a uma c o n t e n d o um código de operação e o endereço de um ope-r a n d o , H a l s t e a d c o n c l u i u que um p ope-r o g ope-r a m a c o n s i s t i a a p e n a s de o p e r a d o r e s e o p e r a n d o s e n a d a m a i s . E l e , então, e s t e n d e u e s s a abordagem p a r a l i n g u a g e n s m a i s modernas e e l a b o r o u uma série de relações e n t r e ás p r o p r i e d a d e s mensuráveis, u s a n d o derivações matemáticas e observações e x p e r i m e n t a i s . A p a r t i r d a publicação de s e u l i v r o " E l e m e n t s o f S o f t w a r e S c i e n c e " [ H A L S 7 7 ] , a Ciência de S o f t w a r e p a s s o u a s e r a l v o de n u m e r o s o s t r a b a l h o s e x p e r i m e n t a i s . No g e r a l , o s r e s u l t a d o s e n -c o n t r a d o s p o r e s s e s t r a b a l h o s f o r a m r e l a t i v a m e n t e b o n s , mas aquém d o s a p r e s e n t a d o s p o r H a l s t e a d . C o n t u d o , a f a l t a de p r o g r e s s o s d a t e o r i a , com o f a l e c i m e n -t o de H a l s -t e a d em j a n e i r o de 1 9 7 9 , e a s crí-ticas n a s derivações d a s fórmulas [M0RA78; F E N I 7 9 ; SHEN83; COUL83] f i z e r a m a Ciência de S o f t w a r e c a i r em d e s u s o no início d o s a n o s 8 0 . R e c e n t e m e n t e , o número de e s t u d o s p u b l i c a d o s s o b r e a Ciência de S o f t w a r e

(39)

mos-t r a q u e h á um i n mos-t e r e s s e r e n o v a d o n a mos-t e o r i a . O m o mos-t i v o p a r a i s mos-t o t a l v e z s e j a a f a l t a d e g r a n d e s p r o g r e s s o s n a á r e a d e m é t r i c a s . A f i n a l , a t é mesmo a l g u n s d o s c r í t i c o s d a t e o r i a a f i r m a m q u e a p e s a r d e i n c o e r ê n c i a s n o s e u f u n d a m e n t o t e ó r i c o , a l g u m a s m é t r i -c a s d e H a l s t e a d p a r e -c e m a i n d a e s t a r e n t r e a s m e l h o r e s e p o d e m s e r m u i t o ú t e i s [SHEN8 3 ] . A s a p l i c a ç õ e s d a t e o r i a s ã o b a s t a n t e v a r i a d a s , s e n d o a s p r i n c i p a i s : - s e r v i r c o m o m e d i d a d e q u a n t i d a d e e c o m p l e x i d a d e d e s o f t w a r e e x i s t e n t e ; - p r e v e r o c o m p r i m e n t o d e p r o g r a m a s ; a v a l i a r o e f e i t o d a e s c o l h a d e uma l i n g u a g e m n a p r o d u t i v i -d a -d e ; - p r e v e r o n ú m e r o d e e r r o s n o p r o g r a m a ; - e s t i m a r o t e m p o q u e um p r o g r a m a d o r t í p i c o d e v e l e v a r p a r a i m p l e m e n t a r um d a d o a l g o r i t m o . 3 . 1 . 2 - A p r e s e n t a ç ã o T o d a s a s r e l a ç õ e s d a t e o r i a d e H a l s t e a d s ã o d e r i v a d a s a p a r t i r d a c o n t a g e m d o s o p e r a n d o s e o p e r a d o r e s d e um p r o g r a m a . Os o p e r a n d o s e o p e r a d o r e s s ã o a s p a r t í c u l a s - á t o m o s q u e c o m p õ e m um p r o g r a m a . Os o p e r a n d o s c o n t ê m v a l o r e s q u e s ã o m o d i f i c á v e i s o u u s a d o s c o m o r e f e r ê n c i a p a r a m u d a n ç a s , o u s e j a , s ã o a s v a r i á v e i s e c o n s t a n t e s . Os o p e r a d o r e s s ã o a s i n s t r u ç õ e s , d e l i m i t c i d o -r e s , s í m b o l o s a -r i t m é t i c o s e d e p o n t u a ç ã o , e t c , q u e a t u a m s o b -r e o s o p e r a n d o s . S ã o t a m b é m o p e r a d o r e s a s i n s t r u ç õ e s q u e a f e t a m o f l u x o de- c o n t r o l e d o p r o g r a m a , c o m o DO W H I L E , I F THEN, e t c . Os o p e r a n d o s e o p e r a d o r e s d a s l i n h a s d e d e c l a r a ç ã o s ã o n o r m a l m e n t e 24

(40)

i g n o r a d o s p o r n ã o s e r e m i n e r e n t e s a o a l g o r i t m o . 3 . 1 . 3 - A s M é t r i c a s B á s i c a s A s q u a t r o m é t r i c a s b á s i c a s d a s q u a i s s e d e r i v a m t o d a s a s r e l a ç õ e s d a t e o r i a s ã o : »71 n ú m e r o d e o p e r a d o r e s d i s t i n t o s u s a d o s n o p r o g r a m a r)2 n ú m e r o d e o p e r a n d o s d i s t i n t o s u s a d o s n o p r o g r a m a N1 n ú m e r o t o t a l d e o c o r r ê n c i a s d e o p e r a d o r e s n o p r o g r a m a N2 n ú m e r o t o t a l d e o c o r r ê n c i a s d e o p e r a n d o s n o p r o g r a m a P a r a i l u s t r a r a o b t e n ç ã o d o s v a l o r e s d a s m é t r i c a s d e H a l s t e a d s e r á u t i l i z a d a uma i m p l e m e n t a ç ã o em P a s c a l d o a l g o r i t -mo d e E u c l i d e s p a r a e n c o n t r a r o m á x i m o d i v i s o r c o m u m d e d o i s n ú m e r o s [ H A L S 7 7 ] : B e g i n I f A = 0 T h e n GCD := B E l s e I f B = 0 T h e n GCD := A E l s e B e g i n R e p e a t R := A m o d B; A := B; B := R U n t i l R = 0; GCD := A E n d E n d .

Referências

Documentos relacionados

(2008) encontraram interferência nos ganhos de força e potência muscular em homens que realizaram um treinamento concorrente de 2 x semana, em que o exercício

Ao exercerem a sua profissão os médicos e os restantes profissionais de saúde deparam-se com situações em que estão em causa alguns dos bens jurídicos fundamentais no

O projeto foi desenvolvido pelo autor do trabalho em conjunto com o gerente de produção da empresa, com auxílio do encarregado de produção. Na etapa de planejamento foram

Appendix 1 – Water Supply, Wastewater Management and Municipal Waste systems. Source: ERSAR

Ainda considerando a procedência dessas crianças, notou-se também que aquelas oriundas de instituição pública e com diagnóstico nutricional de obesidade ou sobrepeso

Os resultados para o campo do vento a sul do Cabo da Roca permitiram estabelecer uma relação de associação entre os valores máximos da intensidade do vento e a variação da TSAM, em

The way the main character, Maggie, and her trainer, Frankie Dunn, are portrayed in Million Dollar Baby corresponds to the fictional building of the victim-

Quanto ao tratamento periodontal em pacientes com coagulopatas hereditárias, é correto afirmar: a Polimentos coronarianos devem ser realizados de maneira esporádica, pois