apf - perse.com.br · apf w ww . car los cam pos inf o.com p ág ina 3 agradecimentos agradeço a...
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.