apf - perse.com.br · apf w ww . car los cam pos inf o.com p ág ina 3 agradecimentos agradeço a...

30
Carlos J E de Campos APF Análise de Pontos de Função Definições, Regras e Procedimentos Diretrizes, Estudos de caso e Pensamentos Métrica Guia de Referência CPM 4.3.1 Terceira edição São Paulo 2013

Upload: lekhue

Post on 08-Jan-2019

221 views

Category:

Documents


0 download

TRANSCRIPT

Carlos J E de Campos

APF Análise de Pontos de Função

Definições, Regras e Procedimentos

Diretrizes, Estudos de caso e Pensamentos

Métrica G u i a d e R e f e r ê n c i a

C P M 4 . 3 . 1

T e r c e i r a e d i ç ã o

S ã o P a u l o

2 0 1 3

Carlos J E de campos, 2013

Capa: Alexandra Hardt Carlini

Diagramação: Carlos J E de Campos

Revisão: Neusa Pallione

É proibida a reprodução total ou parcial desta obra, de qualquer forma ou por qualquer meio sem a autorização prévia e por escrito do autor. A violação dos Direitos Autorais (Lei n.º 9610/98) é crime estabelecido pelo artigo 184 do Código Penal.

2013

Todos os direitos desta obra pertencem a

Carlos J E de Campos

www.carloscamposinfo.com

A P F

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 3

Agradecimentos

Agradeço a Deus por ter-me colocado na trilha do conhecimento.

Agradeço à minha filhota, Vanessa Soares de Campos, por ser a minha fonte de esperança e por mostrar compreensão e paciência em muitos momentos da nossa vida.

Agradeço aos meus pais Alice de Assunção Esteves Costa e José Manuel Lopes Moreira de Campos, por terem-me dado a vida, educação, formação moral e muito apoio.

Agradeço ao amigo Roberto Azem, que sempre esteve por perto, nos momentos de estudo e naqueles em que precisava de ouvidos e conselhos.

Agradeço ao companheiro Benedito Aparecido Alves, pelo apoio que tem me dado nesta segunda fase dos meus livros, acompanhando-me no dia a dia do trabalho, ouvindo-me e apoiando-me com o seu conhecimento e sabedoria. Benê, como é conhecido, tem sido um grande conselheiro.

Agradeço ao Fernando Sampaio pelo apoio à área de métricas e contribuição para o lançamento do livro de APF, quando meu diretor na Sonda Procwork. Fernado Sampaio é uma pessoa honrada com princípios aos quais eu me curvo e sigo, sempre soube conduzir os trabalhos, e as pessoas, dentro das mais respeitosas cordialidades. Hoje é amigo e gerente da TIVIT.

Agradeço ao Paulo Possari, Gerente de Operações do Núcleo Bradesco da Sonda IT, antiga Procwork, o apoio dado desde o lançamento do livro de APF, o primeiro, ao projeto de formação e certificação, que envolve os livros e cursos. Sempre com uma palavra de incentivo, até mesmo, quando faz alguma observação crítica trazendo-me para o mundo real. Paulinho, como é conhecido, vem gerenciando pessoas e projetos há muito tempo, e eu me sinto muito bem trabalhando para uma pessoa com bons princípios.

Reflexão

“Para adquirir conhecimento é preciso estudar, para adquirir sabedoria é preciso observar.”

Autor: William Arthur Ward

N ã o e s t a m o s a q u i p a r a p a g a r n e m s o b r e v i v e r , m a s s i m , p a r a v e n c e r ,

a d q u i r i n d o s a b e r .

&

U s e m o s o c o n h e c i m e n t o c o m é t i c a e m o r a l .

A P F

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 5

Introdução

APF - Análise de Pontos de Função é uma métrica do IFPUG – International Function Point Users Group que apareceu e apresentou a ideia de quantificar as funcionalidades da aplicação, Software, a partir da visão de negócio sem levar em consideração a plataforma que está inserida. A métrica tem como objetivo, fornecer o tamanho das funcionalidades e, com o tamanho, poder calcular as horas necessárias para construir ou manter, a equipe, o prazo e o custo financeiro. Com estas informações a administração pode planejar com maior precisão. A métrica fica, a cada ano, mais firme e, cada vez mais, utilizada pelas empresas, públicas e privadas, espalhadas pelo mundo.

História

No ano de 2009, o Brasil tornou-se o país com o maior número de profissionais certificados do planeta Terra. Por sua vez, a cada ano, aparecem mais empresas, quer do setor público, quer do setor privado, que adotam a Análise de Pontos de Função (APF) para ajudar no planejamento das atividades de desenvolvimento e manutenção das suas aplicações e, com isso, obter ganhos de produtividade, que refletem diretamente em ganhos financeiros.

Esta obra

O leitor encontrará, neste livro, todo conteúdo da métrica apresentado pelo CPM 4.3.1 – Manual de Práticas de Contagem de Pontos de Função de Janeiro de 2010, organizado em uma sequência de capítulos com o objetivo de facilitar o entendimento. As regras e conceitos são apresentados com imagens para ajudar a compreensão. São oferecidos exemplos para exercitar e pensamentos para orientar, ou dispertar, a correta e justa aplicação da métrica, independente de onde o profissional está atuando.

As informações contidas nesta obra podem ser aprendidas e aplicadas por qualquer pessoa que deseje medir, com Pontos de Função, o tamanho funcional da aplicação ou de projetos de desenvolvimento e de melhoria de Sistemas da Informação.

Reflexão

“E conhecereis a verdade e a verdade vos libertará.”

João 8:32

Público-Alvo

As informações contidas nesta obra podem ser aprendidas e aplicadas por qualquer pessoa que deseje medir, com Pontos de Função, o tamanho funcional da aplicação ou de projetos de desenvolvimento e de melhoria de Sistemas da Informação.

Os conceitos, regras e procedimentos são apresentados numa ordem, como forma de melhorar a compreensão e são acompanhados por figuras para ilustrar e aumentar a clareza das informações. Com a finalidade de reforçar e consolidar o aprendizado e toda a métrica.

Para mais informações, visite o site www.carloscamposinfo.com, ou entre em contato através do e-mail do autor: [email protected].

Reflexão

“Muitos homens iniciaram uma nova era na sua vida a partir da leitura de um livro”.

Autor: Henry Thoreau

A P F

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 7

Sumário

Agradecimentos ................................................................................... 3

Introdução .......................................................................................... 5

Sumário ............................................................................................. 7

Introdução à APF ................................................................................ 17

Tamanho funcional .......................................................................... 18

Objetivos da APF ............................................................................. 19

Benefícios da APF ............................................................................ 19

Tamanho funcional da aplicação .......................................................... 20

Direcionamento estratégico do IFPUG ................................................... 21

Questionário .................................................................................. 22

Analogia com outras métricas ................................................................. 23

Produtividade com pontos de função ........................................................ 25

Elementos do planejamento ............................................................... 25

Como calcular a produtividade ............................................................ 26

Produtividade muda ......................................................................... 27

Como calcular o esforço .................................................................... 28

Como calcular o custo ....................................................................... 29

Como calcular o prazo ...................................................................... 29

Questionário .................................................................................. 30

A figura do usuário .............................................................................. 31

Visão do usuário .............................................................................. 32

Requisitos do usuário ........................................................................... 33

Requisitos funcionais do usuário .......................................................... 33

Requisitos não-funcionais do usuário ..................................................... 34

Processo de medição ........................................................................... 35

Visão geral .................................................................................... 35

Passos do processo de medição de tamanho funcional................................ 36

Questionário .................................................................................. 41

Questionário .................................................................................. 42

Identificar o propósito da contagem ......................................................... 43

Determinar o tipo de contagem .............................................................. 45

Projeto de desenvolvimento ............................................................... 45

Projeto de melhoria ......................................................................... 46

Aplicação ...................................................................................... 47

Questionário .................................................................................. 48

Determinar o escopo da contagem ........................................................... 49

Escopo do projeto de desenvolvimento .................................................. 50

Escopo do projeto de melhoria ............................................................ 50

Medir funcionalidade de conversão ....................................................... 51

Escopo da aplicação ......................................................................... 51

Dicas para ajudar a identificar o escopo ................................................ 51

Questionário .................................................................................. 52

Determinar a fronteira da aplicação ......................................................... 53

Identificar dados internos e externos da aplicação .................................... 54

Regras para identificar a fronteira ....................................................... 55

Dicas para ajudar a identificar a fronteira .............................................. 55

Exemplo de reposição da fronteira ....................................................... 56

Identificar tipo de função ..................................................................... 57

Função para transformar e armazenar dados ........................................... 57

Função de transação ........................................................................ 58

Função de dados ............................................................................. 59

Questionário .................................................................................. 60

Identificar processo elementar ............................................................... 61

Como identificar um processo elementar ............................................... 63

Identificar a menor atividade significativa .......................................... 63

Regra da unicidade do processo elementar ............................................. 67

Processos devem possuir o mesmo conjunto de tipo de dados ................... 67

Variação de tipos de dados considerando processo similar ....................... 68

A P F

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 9

Questionário .................................................................................. 72

Identificar lógica de processamento ......................................................... 73

Tipos de lógicas de processamento ....................................................... 74

Exemplos de lógicas de processamento .................................................. 75

Dado derivado ................................................................................ 78

Resumo da lógica de processamento por transação ................................... 78

Questionário .................................................................................. 79

Questionário .................................................................................. 80

Identificar e classificar função de dados .................................................... 81

Arquivo Lógico Interno ...................................................................... 82

Arquivo de Interface Externa .............................................................. 83

Diferença entre ALI e AIE ................................................................... 83

Reconhecido pelo Usuário .................................................................. 84

Como classificar função de dados ......................................................... 84

Regras para classificar uma função de dados ........................................ 84

Procedimentos de identificação da função de dados .............................. 85

Procedimentos de classificação da função de dados .................................. 86

Regras para classificar função de dados em ALI .................................... 86

Regras para classificar função de dados em AIE .................................... 87

Questionário .................................................................................. 88

Identificar e classificar função de transação ............................................... 89

Procedimentos de classificação da função de transação ............................. 90

Diagrama dos procedimentos para classificar transação. ......................... 90

Entrada Externa (EE) ........................................................................ 91

Intenção primária da EE ................................................................. 91

Lógica de processamento da EE ........................................................ 91

Exemplos de EE ........................................................................... 92

Classificar uma Entrada Externa (EE) ................................................. 93

Consulta Externa (CE) ....................................................................... 95

Classificar uma Consulta Externa (CE) ................................................ 96

Saída Externa (SE) ........................................................................... 97

Classificar uma Saída Externa (SE) .................................................... 98

Diferenças entre as funções transação ................................................... 99

Identificar dois processos elementares no requisito .................................. 100

Identificar consulta implícita ............................................................. 101

Questionário ................................................................................. 102

Medir funções de dados ....................................................................... 103

Procedimentos para medir a função de dados ......................................... 103

Determinar a complexidade e contribuição da função de dados ................... 104

Regras para determinar a complexidade da função de dados ................... 104

Tipo de dado elementar (TD) .......................................................... 104

Tipo de registro elementar (TR) ...................................................... 105

Como contar tipo de dado elementar na função de dados ....................... 105

Dados que não podem ser contados na função de dados ......................... 107

Exemplos para identificar tipo de dados (TD, DER, DET) ......................... 107

Como contar tipos de registros elementares (TR) ................................. 111

Como determinar a complexidade da função de dados .............................. 113

Como determinar a contribuição da função de dados ................................ 113

Exemplo para encontrar a contribuição do arquivo lógico ....................... 114

Dicas para ajudar a contar função de dados ........................................... 115

Dicas para ajudar a entender conceitos sobre ALI e AIE ............................. 116

Questionário ................................................................................. 117

Medir funções de transação .................................................................. 119

Procedimentos para medir função de transação ...................................... 119

Determinar a complexidade funcional da transação ................................. 120

Regras para determinar a complexidade da transação............................... 120

Arquivo lógico referenciado (ALR) .................................................... 120

Como contar ALR na função de transação........................................... 120

Exemplo para identificar ALR numa função de transação ........................ 121

Dados que não podem ser contados na função de transação .................... 122

Como determinar a complexidade de uma EE ......................................... 123

Regras para contar ALR de uma EE ................................................... 123

Regras para contar TD de uma EE .................................................... 123

Exemplo para identificar ALR e TD numa EE ....................................... 123

A P F

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 1 1

Como determinar a complexidade de uma CE ......................................... 124

Regras para contar ALR de uma CE ................................................... 124

Regras para contar TD de uma CE .................................................... 124

Exemplo para identificar ALR e TD numa CE ....................................... 124

Como determinar a complexidade de uma SE ......................................... 125

Regras para contar ALR de uma SE ................................................... 125

Regras para contar TD de uma SE .................................................... 125

Exemplo para identificar ALR e TD numa SE ........................................ 125

Como determinar a contribuição da transação ........................................ 126

Tabela de complexidade da função de transação ................................. 126

Tabela de contribuição da função de transação ................................... 126

Dicas para a contagem da função de transação ....................................... 127

Dicas para ajudar a contar EE, SE e CE .............................................. 127

Dicas para ajudar a contar SE e CE ................................................... 127

Questionário ................................................................................. 128

Exemplo de contagem de um estudo de caso ............................................. 129

Calcular tamanho funcional .................................................................. 131

Calcular o tamanho funcional do projeto de desenvolvimento ..................... 131

Calcular o tamanho funcional do projeto de melhoria ............................ 132

Comportamento das funcionalidades de projetos de melhoria .................. 133

Calcular o tamanho funcional da aplicação .......................................... 133

Função de conversão .................................................................. 133

Tamanho funcional da aplicação, após projeto de desenvolvimento ....... 133

Tamanho funcional da aplicação, após projeto de melhoria ................. 134

Identificar tipos de entidades de dados .................................................... 135

Tipos de entidade de dados ............................................................... 135

Entidade de dados funcional .......................................................... 135

Entidade de dados não funcional ..................................................... 136

Entidade de dados de negócio ............................................................ 136

Entidade de dados de referência......................................................... 137

Entidade de dados de código ............................................................. 138

Principal diferença dos dados de código e de referência ............................ 139

Questionário ................................................................................. 140

Identificar dados de código ................................................................... 141

Identificando dados de código ............................................................ 141

Categorias de dados de código ........................................................... 141

Identificando dados de substituição ..................................................... 142

Identificando código + descrição ..................................................... 142

Identificando dados estáticos ou constantes ........................................... 143

Identificando dados com uma ocorrência ........................................... 143

Identificando dados estáticos ......................................................... 143

Identificando valores defaults ......................................................... 144

Identificando dados de valores válidos .................................................. 144

Identificando valores válidos .......................................................... 144

Identificando faixa de valores válidos ............................................... 145

O que não é dado de código .............................................................. 145

Questionário ................................................................................. 146

Conceitos de modelagem de dados ......................................................... 147

Relacionamento entre entidades......................................................... 148

Entidade independente .................................................................... 149

Entidade dependente ...................................................................... 149

Tipos de entidade ........................................................................... 149

Entidade associativa ........................................................................ 149

Entidade atributiva ......................................................................... 150

Entidade subtipo ............................................................................ 150

Questionário ................................................................................. 151

Questionário ................................................................................. 152

Identificar arquivo lógico no MER ........................................................... 153

Passos para identificar arquivos lógicos no modelo normalizado .................. 153

Identificar função de dados no MER ..................................................... 154

Subpassos para contar arquivos lógicos no modelo normalizado ................ 155

Subpasso 3: identificar grupo de entidades dependentes ........................ 155

Subpasso 6: como contar entidades associativas .................................. 159

Identificar tipos de registro elementar (TR) ........................................... 159

A P F

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 1 3

Como contar entidade associativa .................................................... 160

Como contar entidade atributiva ..................................................... 163

Como contar entidade subtipo ........................................................ 165

Identificar dados compartilhados ........................................................... 167

Cenários de dados compartilhados....................................................... 167

Cenário 1 – Leitura .......................................................................... 169

Cenário 2 – Cópia estática de imagem .................................................. 169

Cenário 3 – Carga de imagem ............................................................. 170

Cenário 4 – Carga de imagem de uma tabela física ................................... 171

Cenário 5 - Cópia e merge ................................................................. 171

Cenário 6 - Screen scraping ............................................................... 172

Cenário 7 - Atualizando o mesmo dado armazenado ................................. 172

Cenário 8 - Dados de transação padrão ................................................. 173

Questionário ................................................................................. 174

Identificar mudanças funcionais ............................................................. 175

Como contar projeto de melhoria ....................................................... 175

Como o projeto de melhoria afeta o tamanho da aplicação ........................ 176

Funcionalidade incluída da aplicação ................................................ 176

Funcionalidade excluída da aplicação ............................................... 177

Funcionalidade alterada da aplicação ............................................... 177

Quando considerar que a aplicação foi alterada ...................................... 178

Quando considerar que a função de dado foi alterada ............................... 178

Alteração da função de dados por aspectos físicos ................................ 178

Alteração da função de dados por aspectos funcionais ........................... 179

Quando considerar que a função de dados não foi alterada ........................ 180

Aspectos físicos que não alteram uma função de dados .......................... 180

Aspectos funcionais que não alteram uma função de dados ..................... 180

Quando considerar que a função de transação foi alterada ......................... 181

Alteração na Lógica de Processamento .............................................. 181

Quando considerar que a função de transação não foi alterada ................... 182

Escopo de um projeto de melhoria ...................................................... 182

Fronteira num projeto de melhoria ...................................................... 182

Categorias de manutenção ................................................................ 183

Manutenção corretiva ................................................................... 183

Manutenção perfectiva (preventiva) ................................................. 183

Manutenção adaptativa ................................................................. 184

Solicitações eventuais (Ad Hoc) .......................................................... 184

Mudanças em massa de dados ............................................................ 184

Suporte ao usuário final – Estimativa preliminar ...................................... 184

Questionário ................................................................................. 185

Atividade de conversão de dados ............................................................ 187

Identificar funcionalidade de conversão ................................................ 187

Identificar processo de conversão ....................................................... 187

Identificar atributos adicionais de conversão .......................................... 187

Identificar processo elementar de conversão .......................................... 188

Conversão de dados em projetos de melhoria ......................................... 188

Conversão de dados com AIE referenciado ............................................. 188

Como contar atribuição de valores padrão ............................................. 188

O que não é funcionalidade de conversão .............................................. 189

Questionário ................................................................................. 190

Tamanho funcional ajustado ................................................................. 191

Calcular o fator de ajuste ................................................................. 191

Fator de ajuste (VAF) ...................................................................... 191

Nível de influência (NI) .................................................................... 192

Determinar o fator de ajuste (VAF)...................................................... 192

Características gerais do sistema (CGS) .................................................... 193

Calcular pontos de função ajustados ....................................................... 197

Contagem de pontos de função ajustados .............................................. 197

Calcular tamanho funcional ajustado para projeto de desenvolvimento ......... 198

Calcular tamanho funcional ajustado para projeto de melhoria ................ 199

Calcular tamanho funcional inicial ajustado da aplicação ........................ 200

Calcular tamanho funcional ajustado da aplicação, depois do projeto de melhoria ..................................................................................... 201

Diretrizes de contagem ....................................................................... 203

A P F

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 1 5

Como contar CHECK BOX .................................................................. 204

Contar vários TD no CHECK BOX ...................................................... 204

Contar um TD no CHECK BOX .......................................................... 204

Como contar RADIO BUTTOM ............................................................. 205

Como contar gráfico ........................................................................ 205

Como contar múltiplas mídias ............................................................ 206

Se o objetivo for fornecer informação ............................................... 206

Se o objetivo for receber informação ................................................ 206

Multimídia ................................................................................. 206

Como contar código de barras ............................................................ 207

Se o objetivo for fornecer informação ............................................... 207

Se o objetivo for receber informação ................................................ 207

Como contar DROP-DOWN – combos e listas ........................................... 208

Quando um DROP-DOWN não é contado ............................................. 208

Quando um DROP-DOWN é contado .................................................. 208

Dados devem ser contados ............................................................. 209

Exemplos de requisitos para contar .................................................. 209

Como contar LOGIN ......................................................................... 209

LOGIN contada como consulta externa .............................................. 210

LOGIN contada como saída externa .................................................. 210

Exemplos de requisitos para contar .................................................. 210

Como contar UPLOAD de arquivo ........................................................ 211

Quando um UPLOAD não é contado função de transação ........................ 211

Como contar E-MAIL ........................................................................ 212

Exemplos práticos de contagem ............................................................. 213

Exemplo de processos elementares similares ...................................... 215

Exemplo de processos elementares diferentes ..................................... 217

Exemplo de processos elementares diferentes ..................................... 219

Estudo de casos ................................................................................. 221

ECDE101 – Cadastramento de beneficiário de apólices .............................. 221

ECDD202 - Manter dados de segurança do funcionário ............................... 222

ECME101 – Cadastramento de criança adotada ........................................ 224

CEDR101 – Listagem de funcionários .................................................... 225

Definições e termos utilizados ............................................................... 226

Abreviaturas utilizadas ........................................................................ 232

Respostas dos questionários .................................................................. 233

Respostas dos estudos de caso ............................................................... 234

ECDE101 – Detalhamento .................................................................. 234

ECDD202 – Detalhamento .................................................................. 236

ECME101 – Detalhamento .................................................................. 239

CEDR101 – Detalhamento .................................................................. 242

O mundo do IFPUG ............................................................................. 245

BFPUG ......................................................................................... 245

Certificação de CFPS do IFPUG ........................................................... 245

Bibliografia ...................................................................................... 249

Formação de especialista COBOL ............................................................ 251

Metodologia dos cursos .................................................................... 252

Objetivo do método ........................................................................ 252

Benefícios do método ...................................................................... 252

Certificação para desenvolvedor Mainframe .............................................. 253

Objetivo da certificação ................................................................... 253

Como é a certificação ...................................................................... 253

Outras obras do autor ......................................................................... 255

A P F

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 1 7

Introdução à APF

Este capítulo apresenta a APF com a sua definição, objetivos, benefícios, sua unidade de medida, visão de aplicação e funcionalidade; e o direcionamento do IFPUG quanto à contagem de tamanho funcional e não funcional.

A Análise de Pontos de Função (APF) é um método de medição de tamanho funcional do IFPUG (International Function Point Users Group).

Sua unidade de medida é o Ponto de Função (PF).

Foi criado, na década de 70, por Allan Albrecht, da IBM, para medir aplicações, através da quantificação das suas funcionalidades.

Aplicação é uma coleção, coesa, de procedimentos automatizados e de dados, suportando um objetivo de negócio. Poder ser composto por componentes, módulos ou subsistemas.

O método serve para medir a funcionalidade que a aplicação fornece ao usuário, através da quantificação, em pontos de função.

As funcionalidades da aplicação devem ser observadas por dois aspectos: O processamento dos dados e o armazenamento dos dados.

A APF é um método de medição, baseado na análise das funcionalidades, que o sistema fornece aos usuários.

Funcionalidade, sinônimo de função, representa a capacidade ou particularidade de uma aplicação, conforme observada pelo usuário. Se tomarmos como exemplo o sistema “Vendas”, ele fornece duas funções que processam dados: incluir e

A P F

consultar pedido e uma função para armazenar dados: o depósito pedido. Estas três funcionalidades serão a base do tamanho funcional.

Tamanho funcional

O tamanho funcional da aplicação é obtido, através da quantificação dos requisitos funcionais do usuário.

Em 1998, foi publicado o primeiro padrão de medição de tamanho funcional pela ISO/IEC, como 14143-1:1998, e foi atualizado em 2007, como 14143-1:2007.

Segundo a ISO/IEC, este padrão define “Tamanho Funcional”, como “um tamanho da aplicação obtido, através da quantificação dos Requisitos Funcionais do Usuário”. A ISO/IEC 14143-1 define os conceitos fundamentais de Medição de Tamanho Funcional (FSM), assim como descreve os princípios para a aplicação do método FSM, mas sem fornecer regras detalhadas.

Nota: ao analisar os requisitos funcionais do usuário, para se obter o tamanho funcional dos mesmos, começa a aparecer uma questão importante, que é o dilema: "conta ou não conta". Eis a questão. Calcular o tamanho funcional deve ser a aplicação exata do método, com o único objetivo de identificar as funcionalidades passíveis de quantificação. Neste contexto, deve-se ter em mente que a métrica APF apresenta regras para a identificação dos processos de negócio, onde é pedido para que haja a decomposição ou composição dos mesmos, com o intuito de encontrar a menor atividade significativa.

Pensando um pouco: o objetivo da quantificação dos requisitos é encontrar uma medida que seja capaz de indicar o tamanho dos mesmos e, com isso, ajudar, por exemplo, a identificar o valor do patrimônio em sistemas de informação (aplicações), identificar o tempo e o custo necessário para realizar o projeto. Como a APF

quantifica somente os requisitos funcionais, uma das sugestões interessantes pode ser a aplicação, por analogia, dos conceitos, de “pontos de função”, para identificar processos "contáveis" e, assim, conseguir obter o tamanho não-funcional dos requisitos não-funcionais do usuário. De posse destes dois tamanhos, pode-se calcular o esforço para realizar cada um deles e, assim, conseguir calcular o esforço total. Veja bem, não é somar os dois tamanhos. É somar os esforços. No item “Planejar com Pontos de Função”, mais adiante, poderá ver como calcular o esforço, o prazo e o custo. Entendo que esta é uma maneira simples de calcular o tamanho não-funcional para se encontrar o esforço, o tempo e o custo sem gastar ligações neurais, desnecessárias na execução de fórmulas complexas para encontrar o simples. Os maiores paradigmas do universo estão resolvidos em simples equações. Exemplo: E=mc² (teoria da relatividade de Einstein). Pense nisso!

A P F

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 1 9

Objetivos da APF

O objetivo da técnica é medir a funcionalidade que o usuário do sistema solicita e recebe, ou medir a funcionalidade que é impactada pelo projeto de desenvolvimento, melhoria da aplicação, independentemente da tecnologia, utilizada na sua implementação.

O objetivo do processo de contagem é o de ser simples o suficiente, com a finalidade de minimizar, ao máximo, o esforço necessário para efetuar a medição. Com isso, o método pode ser utilizado, com simplicidade, como uma medida consistente para efetuar comparações entre várias aplicações e organizações.

Nota: as organizações podem passar a utilizar a APF como uma medida padrão, consistente, assim como o metro é utilizado para medir a área de uma casa, a distância entre cidades ou o comprimento de um fio elétrico que se deseja comprar.

Pensando um pouco: se for apresentada, por exemplo, a mesma documentação da aplicação “Vendas” a várias pessoas e as mesmas aplicarem a métrica APF, elas devem chegar a tamanhos diferentes ou ao mesmo tamanho funcional?

Se várias, pessoas medirem o tamanho da aérea de uma sala com a medida “metro”, elas devem chegar a tamanhos diferentes ou ao mesmo tamanho funcional?

Por que elas devem chegar à mesma medida de tamanho? Porque supõe-se que as pessoas vão aplicar corretamente o método. Pense nisso!

Benefícios da APF

Nota: quantificar as funcionalidades de um sistema é tão importante quanto obter o tamanho da área de uma casa. O tamanho, por si só, tem um significado específico, que é o de dar uma ideia da dimensão da casa. Com o tamanho da área, podemos obter muitos outros valores importantes, como: a quantidade de pessoas para construí-la, o tempo necessário para realizar a construção, o valor dessa obra e, assim por diante. Se dissermos que o m² da casa custa “X” num determinado local, então podemos ter uma ideia do valor da casa nessa região. É assim, também, para o tamanho em Pontos de Função de uma aplicação.

Pode-se utilizar o tamanho de uma aplicação como um meio para estimar quantas pessoas vão ser precisas para desenvolver ou efetuar a manutenção de uma aplicação e, com isso, pode-se obter o tempo necessário para a realização da tarefa e, ainda, pode-se obter o custo do projeto.

A APF, ao fornecer um método para se obter o tamanho dos requisitos, coloca à disposição das organizações uma ferramenta poderosa para a comparação entre aplicações e entre produtividades de empresas prestadoras de serviço, baseada nos mesmos requisitos de negócio.

Fornece um argumento sólido para ser utilizado como um meio de efetuar um melhor planejamento dos projetos, com a obtenção dos recursos, do tempo e dos custos, baseado na produtividade das equipes.

Nota: se a empresa adotar o planejamento com APF e elaborar um histórico das contagens realizadas, vai poder medir a produtividade e a qualidade das equipes, dos departamentos ou da própria organização. Depende dela! Com os dados precisos, a empresa pode gerar indicadores de produtividade e de qualidade e, assim, ter a oportunidade de aperfeiçoar os seus processos e melhorar a sua produtividade e a qualidade do seu produto. (ver item “Produtividade”).

Outro beneficio é que os dados podem ser comparados dentro da organização e entre organizações.

De posse da ferramenta APF, começa-se a descobrir muito mais utilidades e benefícios, ao se poder calcular o tamanho de uma aplicação através dos seus requisitos.

Tamanho funcional da aplicação

Da mesma forma como existem procedimentos para calcular o tamanho de uma casa, também existem procedimentos na APF para calcular o tamanho das funcionalidades que envolvem o desenvolvimento e a manutenção de aplicações. Para calcular o tamanho de uma aplicação, deve-se identificar as funcionalidades que processam e guardam dados, conforme observadas pelo usuário.

Se tomarmos como exemplo o sistema “Vendas”, que fornece duas funções que transformam dados: incluir pedido e consultar pedido e, uma função para armazenar dados: o depósito pedido, temos que as três funcionalidades, fornecidas pela aplicação, serão os componentes do tamanho da aplicação.

Ao aplicar as regras de contagem da APF, chega-se a um valor que determina o tamanho da aplicação. Neste exemplo, o tamanho da aplicação se resume ao tamanho das suas três funcionalidades. Ao observar somente as funcionalidades, a técnica ignora como a funcionalidade é construída.

Reflexão

“Muitos homens iniciaram uma nova era na sua vida a partir da leitura de um livro”.

Autor: Henry Thoreau

A P F

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 2 1

Direcionamento estratégico do IFPUG

A Análise de Pontos de Função do IFPUG (International Function Point Users Group) é um método padrão que está aderente à ISO/IEC: 14143-1:2007. Esta norma diz que o método mede, apenas, o “tamanho funcional” e não o “tamanho não-funcional”. O IFPUG faz o seguinte direcionamento estratégico, no seu Manual de Práticas de Contagem de Pontos de Função (CPM): “O fato de o método medir apenas o tamanho funcional não significa que o tamanho não-funcional não pode, ou não deve ser medido; apenas deve ser tratado claramente como uma medida separada”. O CPM também faz a seguinte colocação a respeito dos requisitos não funcionais: “Como não são parte do tamanho funcional, não contribuem para a contagem de Pontos de Função, mesmo fazendo parte dos requisitos e contribuindo para o tamanho dos mesmos”.

O IFPUG apresentou ao mercado a sua nova métrica, o SNAP (Software Non-Functional Assessment Process) para mensurar requisito não-funcional.

Reflexão

“A mente que se abre a uma nova ideia jamais voltará ao seu tamanho normal.”

Autor: Einstein

Questionário

Análise de Pontos de Função

1. “Pode ser utilizada como uma medida consistente de vários projetos e organizações”. A frase representa:

A. Um dos objetivos do processo do método APF.

B. Um dos benefícios da utilização do método APF.

C. As opções A e B.

D. Nenhuma das opções.

2. A aplicação da APF está vinculada à metodologia de desenvolvimento e à tecnologia, utilizada na construção da aplicação. A afirmação é:

A. Falsa.

B. Verdadeira.

3. Análise de Pontos de Função:

A. É um método padrão para medir o desenvolvimento de aplicação do ponto de vista do usuário.

B. Mede uma aplicação, através da quantificação da funcionalidade que é oferecida ao usuário, baseada no projeto lógico.

C. Tem como objetivo que o seu processo seja simples o suficiente para minimizar o esforço adicional necessário, no processo de medição.

D. Todas as opções.

4. Quais são os objetivos da Análise de Pontos de Função?

A. Medir as funcionalidades que o usuário solicita e recebe.

B. Medir o desenvolvimento e manutenção de aplicações de forma independente da tecnologia, utilizada na sua elaboração e implantação.

C. Ser simples o suficiente, com o intuito de minimizar o esforço necessário para efetuar a medição.

D. Todas as opções.

5. Quais são os benefícios alcançados com a utilização da APF?

A. Ser uma medida consistente de vários projetos e organizações.

B. Poder ser utilizada como fator de normalização na comparação de aplicações.

C. Poder quantificar a funcionalidade para obter o custo da sua elaboração.

D. Nenhuma das opções.

A P F

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 2 3

Analogia com outras métricas

Este capítulo tem como objetivo apresentar a APF como uma métrica, através da analogia com métricas populares do dia-a-dia, como o metro, para destacar o ponto positivo de se aplicar a métrica para obter o tamanho como início de um processo de identificação de outras informações.

A sociedade de hoje aceita, com extrema normalidade, que se fale em 10 metros de fio, 50 m² de área útil de um apartamento ou um litro de leite, e assim por diante. Isto se deve ao fato de que a sociedade adotou esses padrões de medida e, por isso, os utiliza nas suas transações comerciais. A APF, assim como as outras métricas, tem como finalidade medir (quantificar) as funcionalidades para encontrar o tamanho da aplicação.

Imaginemos uma casa de 50 m² com: sala, quarto, cozinha, banheiro e área de serviço.

Se perguntarmos quanto custa para construir a casa, aparecerão muitos valores.

De que dependeram os valores?

Se o tamanho é o mesmo, então houve outros fatores que influenciaram no valor. Dentre eles podemos citar os seguintes: o tipo do terreno, o material utilizado na construção, a arquitetura, o tipo de acabamento, a infra-estrutura, e muitos outros.

O fato é que não foi alterado o tamanho da casa. Antes de se calcular o valor da casa, mede-se o tamanho dela. É assim, também, para medir o tamanho de uma aplicação.

Reflexão

“Dar exemplos não é a melhor maneira de influenciar os outros. É a única.”

Autor: Desconhecido

Imaginemos a aplicação “Vendas” com os seguintes depósitos de dados: cadastro de pedidos, cadastro de funcionários e cadastro de clientes. E com as seguintes funcionalidades: incluir pedido, alterar pedido, excluir pedido, consultar pedido, listar pedidos do dia e listar pedidos do mês. Se perguntarmos quanto custa para construir a aplicação, aparecerão muitos valores.

De que dependem os valores?

Se o tamanho é o mesmo, então houve outros fatores que influenciaram no valor. Dentre eles podemos citar os seguintes: a plataforma, a linguagem, o nível de segurança dos dados, o nível de velocidade da execução, metodologia de desenvolvimento e as facilidades fornecidas ao usuário. Enfim, podemos citar muitos outros. O fato é que não foi alterado o tamanho da aplicação. Antes de se calcular o valor, mede-se o tamanho.

Pensando um pouco: já se ouviu ou se falou “Com esse tamanho não dá para construir?“. Quando vamos comprar um litro de leite e, achamos caro, reclama do tamanho ou, simplesmente, do o valor? É assim, também, com a APF. Se o tamanho encontrado não reflete no valor que se entende valer o trabalho necessário, analisemos outras variáveis e não culpemos o tamanho ou a APF. Mais adiante, veremos que existem

outros elementos necessários juntar ao tamanho para encontrar o valor; são esses outros elementos que devem ser negociados. O importante é entender toda a métrica e aplicá-la com imparcialidade. A utilização de interesses e valores podem distorcer a aplicação da métrica. Evite isso e construa a credibilidade.

Reflexão

“Só é livre o homem que sabe dar ordens a si mesmo.”

Autor: Pitágoras

A P F

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 2 5

Produtividade com pontos de função

Este capítulo apresenta a produtividade como um elemento fundamental para ser utilizado com o tamanho para obter, entre outros, o valor do custo, que tanto os estrategistas buscam saber para o planejamento financeiro.

A produtividade está fora do contexto da APF, mas é importante abordarmos este item para vermos e entendermos a sua importância na obtenção, por exemplo: do esforço, prazo e custo, a partir do tamanho medido. Desta forma, podemos ver a produtividade como um ingrediente adicional e importante para agregar valor ao planejamento das atividades de desenvolvimento e manutenção de aplicações.

Produtividade é a razão entre o produto e o esforço de trabalho.

Pode-se dizer que é a quantidade de horas necessárias para realizar uma unidade de medida (pontos de função).

Elementos do planejamento

O tamanho da aplicação, por si só, pode dizer pouco. No mínimo, pode-se ter a ideia da dimensão da aplicação, da casa e do terreno. Normalmente, as medidas são utilizadas como base para se obter outros elementos que se deseja para o planejamento: o tempo (em dias ou horas), para realizar o tamanho, o esforço (em horas) e o custo (em moeda corrente).

A importância da obtenção do tamanho está diretamente relacionada com o fato de ser um meio para estimar outros elementos do planejamento pretendido. Para ajudar a encontrar os outros elementos necessários no planejamento das atividades do projeto, existe o elemento “Produtividade”.

Tom De Marco disse: “Não se consegue controlar o que não se consegue medir”.

P r o d u t i v i d a d e

Como calcular a produtividade

Se analisarmos, por exemplo, a construção de um muro, vamos ver que se pode calcular, também, a produtividade.

Suponhamos que um profissional precisa de 350 horas para construir um muro de 35 m², de comprimento. O projeto de construção do muro está dividido nas etapas: projeto, construção e acabamento.

Na etapa “projeto” são gastas 85 h, na construção 230 h e no acabamento 35 h.

Para encontrarmos a produtividade da construção do muro, procederemos da seguinte forma: divide-se o total das horas trabalhadas (350 horas) pelo tamanho do muro (35 m²), o que dá uma produtividade total de dez horas por metro quadrado (10 h / m²).

Se desejarmos encontrar a produtividade somente da etapa “projeto”, procedemos da seguinte forma: divide-se o total das horas da etapa “projeto” pelo tamanho total do muro, (85 horas) pelo tamanho do muro (35 m²), o que dá uma produtividade de 2,43 h / m².

Se desejarmos encontrar a produtividade somente da etapa “construção”, procedemos da seguinte forma: divide-se o total das horas da etapa “construção” (230 horas) pelo tamanho do muro (35 m²), o que dá uma produtividade de 6,57 h / m².

Reflexão

“Não julgueis segundo a aparência, e sim segundo a reta justiça.”

Autor: João 7:24

A P F

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 2 7

Produtividade muda

Assim, sucessivamente, podemos achar qualquer índice de produtividade. Deste exemplo, pode–se concluir que a produtividade muda, de acordo com as etapas do projeto, com o tipo de projeto, com o nível de conhecimento dos envolvidos, com a sua experiência e, com certeza, muitas outras variáveis.

Da mesma forma, podemos observar o desenvolvimento e manutenção de sistemas. As características de cada funcionalidade, o nível das pessoas envolvidas, o ambiente onde vai ser desenvolvido, o método de desenvolvimento e até a linguagem utilizada no desenvolvimento, interferem na produtividade, que influencia, diretamente, nas estimativas, sem alterar o tamanho da aplicação.

E é bom que se diga, com todas as letras, para ficar claro, que a relatividade da produtividade nada tem a ver com o tamanho. É por isso que mencionamos a necessidade de sermos mais abertos para a negociação do índice de produtividade. Cada empresa deve ter o seu histórico de contagens e dos resultados dos seus projetos, para construir a sua base de dados com a finalidade de obter a sua produtividade e, com isso, estar sempre aberta a negociar, de forma madura, o valor da mesma, sempre que for necessário.

Pensando um pouco: vejamos dois aspectos que podem interagir de forma positiva ou negativa, no planejamento financeiro, visto que o prazo está sendo considerado pelos estrategistas como sagrado, e por isso está fora de negociação. No primeiro caso, se o valor do índice de produtividade for definido muito acima do realizado

pela equipe, pessoas podem entender que ‘alguém’ está levando vantagem financeira. No segundo caso, se o valor do índice de produtividade for definido bem abaixo do realizado pela equipe, pessoas podem entender que ‘alguém’ está tentando explorar a atividade humana dos envolvidos. Como se pode observar, este é um dilema para as pessoas com atitudes éticas. Desta forma, o melhor caminho é a transparência e a disponibilidade na equalização da solução. Pense nisso!

Reflexão

“A menos que admita a existência de Deus, a questão sobre propósito de vida não tem sentido.”

Autor: Bertrand Russell

Como calcular o esforço

Depois de possuir o tamanho e a produtividade, é possível começar a calcular outros elementos muito importantes para o planejamento do projeto. Vamos ver, agora, como calcular o esforço. Foi visto, anteriormente, como calcular a produtividade, a partir do tamanho e do esforço previamente estabelecidos para cada unidade de tamanho a ser realizada. O que, normalmente, acontece é que existe o valor de produtividade, encontrado a partir de um histórico próprio ou da análise do mercado.

Para calcular o esforço necessário a realizar o tamanho, multiplica-se o tamanho obtido pela produtividade previamente estabelecida. Como se pode observar pela fórmula, para encontrar o esforço, é preciso primeiro ter o tamanho (neste caso, da casa ou da aplicação) para, depois, estabelecer (negociar) a produtividade.

Vamos supor que o tamanho de uma casa a ser construída é de 50 m² e que a produtividade é de 10 h / m². O esforço para construir a casa é obtido com a multiplicação do tamanho pela produtividade, o que dá um esforço de 500 horas.

Vamos supor que temos o tamanho de uma aplicação a ser construída de 50 PF e que a produtividade é de 10 h / PF. O esforço para construir a aplicação é obtido com a multiplicação do tamanho pela produtividade, o que dá um esforço de 500 horas.

Pensando um pouco: qual foi a premissa utilizada para calcular o esforço necessário para construir a casa e a aplicação? Primeiro, é preciso ter o tamanho e depois a produtividade. Negocia-se o tamanho ou a produtividade? A produtividade. Opa! Então, é importante observar que, condenar o método de medição, porque o tamanho da aplicação gerou um esforço que se identifica como insuficiente, é

improcedente, é equivocado. Certo! Quando isto ocorrer, é necessário negociar o índice de produtividade. Pense nisso!

Reflexão

“Não falarei mal de nenhum homem mas falarei tudo de bom que souber de cada pessoa.”

Autor: Benjamim Franklin

A P F

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 2 9

Como calcular o custo

Depois de possuir o tamanho e a produtividade e de ter calculado o esforço, é possível calcular o custo do esforço necessário para realizar o respectivo tamanho. Se conversarmos com os estrategistas em planejamento, vamos ouvir que existem inúmeras variáveis que interferem no cálculo, mas vamos estabelecer um cenário perfeito e, neste caso, para calcular o custo: multiplica-se o esforço pelo valor da hora estabelecido.

Vamos estabelecer, para o nosso exemplo, um valor por hora trabalhada de R$20,00 (em moeda corrente), o que dá um custo de R$10.000,00.

Pensando um pouco: qual foi a premissa utilizada para calcular o custo necessário para realizar o esforço de construir a casa e a aplicação? Primeiro, é ter o tamanho, depois a produtividade e, por fim, ter o esforço. Negocia-se o tamanho, a produtividade ou o valor da hora trabalhada? Uma vez que já foi negociada a produtividade, pode-se negociar o valor da hora trabalhada. Opa! Então, é

importante observar que, condenar o método de medição, porque o tamanho da aplicação gerou um custo que se identifica como insuficiente, é improcedente, é equivocado. Certo! Quando isto ocorrer, é necessário negociar o índice de produtividade e/ou o valor da hora trabalhada. Pense nisso!

Como calcular o prazo

Depois de possuir o tamanho e a produtividade e de ter calculado o esforço, é possível calcular o prazo necessário para realizar o respectivo esforço.

Vamos estabelecer um cenário perfeito e, neste caso, para calcular o prazo: divide-se o esforço pela quantidade de horas trabalhadas por dia. Vamos estabelecer, para o nosso exemplo, 8 horas diárias, o que dá um prazo de 62,5 dias.

Pensando um pouco: agora tivemos acesso a mais esta informação, o que deve ser alterado, o tamanho ou a produtividade? A produtividade, é claro! Além disso, antes de se calcular o custo diretamente com o tamanho e a produtividade, devia-se fazer como nos EUA e Europa, planejar o prazo e, só depois, calcular o valor gasto para o tempo planejado. Assim, os projetos poderiam sair melhores e no prazo planejado

e, não como se faz hoje, impõem-se o prazo. A data é atribuída pelo planejamento estratégico.

Questionário

Produtividade

1. O que é produtividade?

A. Produtividade é a razão entre o produto e o esforço de trabalho.

B. Capacidade ou particularidades de uma aplicação, conforme observadas pelo usuário.

C. Uma coleção coesa de procedimentos automatizados e dados, suportando um objetivo de negócio.

D. Nenhuma das opções.

2. Qual o comportamento da produtividade?

A. Depois que é encontrada numa empresa, ela passa a ser sempre a mesma para todos os projetos.

B. Varia de acordo com muitos fatores.

C. Depende dos profissionais envolvidos no projeto.

D. Está atrelada ao tipo de projeto.

3. A produtividade interfere:

A. No tamanho funcional da aplicação.

B. No custo e no prazo.

C. Na qualidade.

D. Nenhuma das opções.

4. Existe o tamanho funcional e deseja-se obter o grau de esforço para realizar as atividades. Do que é preciso?

A. Da quantidade de recursos necessários.

B. Do custo da mão-de-obra.

C. Da produtividade.

D. Nenhuma das opções.

5. Mudar a produtividade faz mudar o tamanho funcional.

A. Verdadeiro.

B. Falso.

6. A produtividade pode mudar em todas as fases de um projeto.

A. Verdadeiro.

B. Falso.