PFI_BFPUG_V1.00_2004-05-24

Embed Size (px)

Citation preview

  • 7/21/2019 PFI_BFPUG_V1.00_2004-05-24

    1/16

    BFPUG Brazilian Function Point Users Group

    BFPUG Brazilian Function Point Users Group, 2004

    PFIPontos de Funo de Implementao

    Verso 1.0022/04/2004

    Mauricio Aguiar

    Valter Braghin

    Nelson Camargo

    Irapu da Costa Jr.

    Gabriel Dalla Lana

    Elina Madeira

    Equipe

  • 7/21/2019 PFI_BFPUG_V1.00_2004-05-24

    2/16

    BFPUG Brazilian Function Point Users Group

    2

    Contedo

    1 INTRODUO .................................................................................................................. 3

    2 DEFINIES .................................................................................................................... 4

    2.1 PERSPECTIVAS DO USURIO FINAL E DA IMPLEMENTAO ...................................................42.2 USURIO, UNIDADE DE SOFTWARE, FRONTEIRA E APLICAO ............................................. 42.3 VISO DO USURIO ............................................................................................... 52.4 CAMADAS DE SOFTWARE..........................................................................................52.5 COESO E ACOPLAMENTO .........................................................................................52.6 PROCESSO ELEMENTAR............................................................................................52.7 ACESSO DIRETO E INDIRETO..................................................................................... 6

    3 PROCEDIMENTO DE CONTAGEM....................................................................................... 7

    3.1 DEFINIR O OBJETIVO DA CONTAGEM............................................................................73.2 DETERMINAR TIPO DE CONTAGEM ...............................................................................73.3 IDENTIFICAR ESCOPO E FRONTEIRA .............................................................................8

    3.3.1 Determinar as Camadas de Software ............................................................. 8

    3.3.2 Determinar as Fronteiras............................................................................ 103.4 CONTAR FUNES DE DADOS.................................................................................. 113.5 CONTAR FUNES TRANSACIONAIS ........................................................................... 12

    3.5.1 Entrada Externa........................................................................................ 123.5.2 Sada Externa........................................................................................... 133.5.3 Consulta Externa....................................................................................... 133.5.4 Exemplo da Identificao de Funes Transacionais....................................... 133.5.5 Exemplo da Contribuio para a Contagem de PFI ......................................... 14

    3.6 DETERMINAR PFI NO AJUSTADOS ........................................................................... 143.7 DETERMINAR FATOR DE AJUSTE ............................................................................... 153.8 DETERMINAR PFI AJUSTADOS ................................................................................. 15

    4 CONCLUSO................................................................................................................... 16

  • 7/21/2019 PFI_BFPUG_V1.00_2004-05-24

    3/16

    BFPUG Brazilian Function Point Users Group

    3

    1 Introduo

    Este trabalho tem como objetivo a definio e aplicao de uma medida de tamanho desoftware voltada para a implementao. Essa medida foi denominada Pontos de Funo deImplementao, ou PFI.

    Diferentemente dos Pontos de Funo (PF) convencionais, que medem o software a partir daperspectiva do usurio final do negcio, os PFI pretendem capturar o tamanho da aplicao apartir do ponto de vista do desenvolvedor, ou seja, de uma perspectiva centrada naimplementao.

    Os PFI foram concebidos para oferecerem, ao mesmo tempo, uma alternativa para a mediofuncional do software a partir da perspectiva da implementao e manterem mximacompatibilidade com os conceitos e terminologia do IFPUG.

    A correspondncia ou mapeamento dos conceitos estabelecidos neste trabalho com oselementos computacionais de cada ambiente especfico dever ser realizado pelos respectivosusurios.

  • 7/21/2019 PFI_BFPUG_V1.00_2004-05-24

    4/16

    BFPUG Brazilian Function Point Users Group

    4

    2 Definies

    2.1 Perspectivas do Usurio Final e da Implementao

    Inicialmente, fazemos distino entre a perspectiva do usurio final e a perspectiva daimplementao.

    A perspectiva do usurio final considera apenas a funcionalidade presente no softwareaplicativo que deve ser entregue para satisfazer os requisitos do negcio. Esta a perspectivautilizada nas medies realizadas com base nos Pontos de Funo do IFPUG. No o mesmoque viso do usurio1.

    A perspectiva da implementao considera toda a funcionalidade presente em cada parte dosoftware, que deve ser desenvolvida ou implementada para satisfazer os requisitos donegcio. Esta ser a perspectiva utilizada nas medies realizadas com base nos PFI2.

    2.2 Usurio, Unidade de Software, Fronteira e Aplicao

    Para medir a funcionalidade presente na implementao fundamental definir a fronteira queir separar cada unidade de software dos demais objetos do modelo. Para definir a fronteira,ser necessrio introduzir o conceito de usurio. Para identificar a fronteira, ser necessrioestabelcer os conceitos de estmulo, dado e informao de controle.

    Uma unidade de software (US) o menor pedao de software para o qual dever serrealizada medio. Uma US delimitada por uma fronteira.

    A fronteira indica o limite entre a unidade de software sendo medida e o usurio, definindo oque faz e o que no faz parte da US3.

    Uma aplicao um todo coeso constitudo por uma ou mais unidades de software.

    Um usurio qualquer pessoa que especifica requisitos funcionais para o software, e/ouqualquer pessoa ou objeto que se comunica ou interage com o software a qualquer tempo.Pode ser um ser humano, outro software, um dispositivo de hardware, etc, desde queespecificado nos requisitos funcionais4.

    Um estmulo uma representao de um evento que ocorre fora da fronteira de uma unidadede software e que provoca o incio de um processo dentro da US. o conceito de eventoaplicado implementao. Um evento externo pode dar origem a vrios estmulos

    internos aplicaco. Um estmulo comunicado unidade de software atravs da entradade dados, informaes de controle, ou do passar do tempo5.

    Um dado o valor de um atributo de uma entidade ou objeto de interesse de uma unidade de

    software. O que um dado para uma unidade de software depende do nvel de abstraodessa US.

    1User View IFPUG. Counting Practices Manual Version 4.1.1- Princeton Junction, 2000.2Developer Viewpoint COSMIC. Measurement Manual Version 2.2 January 2003.3 Boundary ISO. Information Technology Software Measurement Functional Size Measurement Part 1:Definition of Concepts. ISO 14143:1998. Genve: ISO/IEC, 1998.4User - ISO. Information Technology Software Measurement Functional Size Measurement Part 1: Definitionof Concepts. ISO/IEC 14143:1998. Genve: ISO/IEC, 1998.5Stimulation Clements, P. et al. Documenting Software Architectures- Boston: Addison-Wesley, 2003. Pg. 264.

  • 7/21/2019 PFI_BFPUG_V1.00_2004-05-24

    5/16

    BFPUG Brazilian Function Point Users Group

    5

    Uma informao de controle dispara ou influencia um processo de uma unidade de software.Informaes de controle determinam o qu, como, ou quando os dados sero processados6.

    2.3 Viso do Usurio

    Na contagem de PFI, a viso do usurio um dos conceitos que difere do utilizado nascontagens de Pontos de Funo do IFPUG. O usurio, no caso dos PFI, um observador

    situado dentro da unidade de software sendo considerada. Uma forma de compreender oponto de vista desse usurio identificar-se com o analista de sistemas, arquiteto ouprogramador encarregado de construir a unidade de software, supondo que o mesmo sabeapenas o indispensvel para poder compreend-la e constru-la.

    2.4 Camadas de Software

    Um conceito til na definio das fronteiras, sob o ponto de vista da implementao, o decamada de software (ou simplesmente camada). A definio de uma camada de software tema ver com o nvel de abstrao.

    Uma camada de software reflete a diviso do software em unidades, onde cada umarepresenta uma "mquina virtual". As camadas particionam o software completamente, demodo que cada camada oferece um conjunto de servios coeso7.

    Abstrao o processo de anlise do domnio do problema (mundo real) enfatizando fatoresrelevantes do processo de maneira a alcanar um modelo, ou o resultado desse processo8.Dizemos que as unidades de software operam em nveis de abstrao, modelos que soconstitudos por conceitos e regras dotados de significado especfico. Um nvel de abstrao considerado mais baixo que outro quando o respectivo modelo da realidade mais especfico,ou menos abrangente que o do outro.

    2.5 Coeso e Acoplamento

    Os conceitos de coeso e acoplamento foram bastante explorados pela Anlise Estruturada9.

    A coeso mede o grau de homogeneidade funcional de uma unidade de software. As funesde uma unidade de software coesa podem ser consideradas como pertencentes a um mesmogrupo funcional.

    O acoplamento mede o grau de independncia de uma unidade de software em relao sdemais. Uma US no acoplada possui baixo grau de dependncia em relao s demais,excetuando-se aquelas mais baixas na hierarquia de camadas, cujos servios espera-se que aUS utilize.

    2.6

    Processo Elementar

    Um processo elementar a menor unidade funcional que ainda possui significado no nvel deabstrao da US que o contm. Um processo elementar completo em relao ao nvel deabstrao da unidade de software10.6Control Information - IFPUG. Counting Practices Manual Version 4.1.1- Princeton Junction, 2000.7Layers - Clements, P. et al. Documenting Software Architectures- Boston: Addison-Wesley, 2003. Pg. 77.8Abstraction - COSMIC. Measurement Manual Version 2.2 January 2003.9 Coupling; Cohesion Pressman, Roger. Software Engineering A Practitioners Approach. 4 th Edition. NewYork: McGraw-Hill, 1997. Pg. 357.10Elementary Process - IFPUG. Counting Practices Manual Version 4.1.1- Princeton Junction, 2000.

  • 7/21/2019 PFI_BFPUG_V1.00_2004-05-24

    6/16

    BFPUG Brazilian Function Point Users Group

    6

    Exemplo: para uma unidade de software X, com a funo Efetuar Transferncia entreContas Correntes, a atividade Fazer o dbito na conta do correntista A no seriaconsiderada um processo elementar (completo) para essa unidade de software. Nesse nvelde abstrao, o processo s estaria completo aps ter sido efetuado o crdito na contacorrente do correntista B.

    J para uma unidade de software Y, voltada exclusivamente para a atualizao do banco de

    dados, a atividade Fazer o dbito na conta do correntista A seria interpretada(possivelmente) como Atualizar o campo Saldo com o valor X, que poderia ser um processoelementar (completo) para essa unidade. Na viso dessa unidade, receber um valor eatualizar um campo do banco de dados com esse valor constituiria um processo completo.Evidentemente, neste caso a unidade Y estaria em uma camada hierarquicamente inferior da unidade X.

    Para que um processo elementar (PE) seja considerado nico (no duplicado) em uma US,pelo menos uma das seguintes condies deve ser verdadeira:

    - A lgica de processamento do PE deve ser diferente da lgica de processamento dosdemais processos elementares da US;

    - Os arquivos referenciados pelo PE devem ser diferentes dos arquivos referenciados pelosdemais processos elementares da US;

    - Os itens de dado referenciados pelo PE devem ser diferentes dos itens de dadoreferenciados pelos demais processos elementares da US.

    2.7 Acesso Direto e Indireto

    Dizemos que um arquivo (ALI ou AIE) acessado diretamente por uma unidade de software(US) se a US utiliza, no acesso, exclusivamente software residente em sua prpria fronteira,excetuando-se os recursos de software bsico utilizados sistema gerenciador de banco dedados, sistema de teleprocessamento, rede, sistema operacional, etc. Neste caso, o acesso denominado direto.

    Por outro lado, dizemos que um arquivo (ALI ou AIE) acessado indiretamente por umaunidade de software se a US utiliza, no acesso, software residente em outras US, excetuando-se os recursos de software bsico utilizados. Neste caso, o acesso denominado indireto.

    Exemplo: Uma organizao criou uma classe denominada Cliente (no sentido O-O) especficapara lidar com o objeto Cliente. Todo o acesso tabela de Clientes efetuado atravs dessaclasse. Neste caso, diremos que a US constituda pela classe Cliente acessar diretamente oarquivo Clientes. Na organizao em questo, todas as demais US acessaro indiretamente oarquivo Clientes, uma vez que s o faro atravs de software residente na US Cliente.

  • 7/21/2019 PFI_BFPUG_V1.00_2004-05-24

    7/16

    BFPUG Brazilian Function Point Users Group

    7

    3 Procedimento de Contagem

    O procedimento de contagem utilizado na medio com base em PFI o mesmo definido peloIFPUG para a contagem de Pontos de Funo, conforme ilustra a Figura 1.

    Figura 1 Procedimento de Contagem de PFI

    A seguir, detalhamos cada um dos passos do procedimento acima, segundo a viso dos PFI.O Exemplo Modelo ilustra cada um dos passos, sendo desenvolvido ao longo da explanao.

    3.1 Definir o Objetivo da Contagem

    O objetivo da contagem de PFI resolver um problema do negcio11. A escolha dos PFI

    implica que a soluo do problema exige que a aplicao seja considerada do ponto de vistada implementao, ou do desenvolvedor. Desta forma, a medida obtida como resultado dacontagem no ter, necessariamente, significado claro para os usurios finais do negcio,mas sim para os desenvolvedores e outros envolvidos com a perspectiva da implementao.

    Exemplo Modelo: O objetivo da contagem : Calcular a quantidade de PFI de um projeto dedesenvolvimento, a fim de determinar o valor a ser pago aos respectivos fornecedores.

    3.2 Determinar Tipo de Contagem

    No h diferena entre os tipos de contagem definidos para os PFI e os do IFPUG. Os tipos decontagem so trs:

    - Contagem de projeto de desenvolvimento- Contagem de projeto de melhoria- Contagem de aplicao

    Exemplo Modelo: Trata-se de uma contagem de um projeto de desenvolvimento.

    11Purpose of the Count - IFPUG. Counting Practices Manual Version 4.1.1- Princeton Junction, 2000.

    1 - Definir

    objetivo dacontagem

    2 - Determinartipo de

    contagem

    3 - Identifi carescopo efronteira

    4 - Contar

    funes dedados

    7 - Determinar

    fator de ajuste

    6 - Determinar PF

    no ajustados

    8 - Calcular PF

    ajustados

    5 - Contar

    funestransacionais

  • 7/21/2019 PFI_BFPUG_V1.00_2004-05-24

    8/16

    BFPUG Brazilian Function Point Users Group

    8

    3.3 Identificar Escopo e Fronteira

    O escopo da contagem define a funcionalidade que ser includa na contagem. Define umsub-conjunto do software e depende do objetivo da contagem12.

    Exemplo Modelo: O escopo do projeto de desenvolvimento inclui todas as unidades de

    software criadas pelo projeto.A fronteira indica o limite entre as unidades de software sendo medidas e seus usurios (verdefinio acima). A determinao da fronteira no clculo de PFI dever obedecer aosseguintes critrios:

    3.3.1 Determinar as Camadas de Software

    A determinao das camadas de software auxilia na identificao das fronteiras. A seguir,fornecemos algumas dicas e orientaes para o estabelecimento das camadas. Neste estgio,nenhuma das orientaes apresentadas deve ser considerada como uma regra absoluta.

    3 .3 .1 .1Co n ce it o d e M q u in a V ir t u a l

    Cada camada pode ser visualizada como sendo uma mquina virtual, muitas vezespossuindo um processador especfico a ela alocado13.

    3 .3 .1 .2H i e r a r q u i a

    As camadas de software obedecem a um modelo hierrquico, no qual as camadas de nvelmais alto utilizam os servios daquelas de nvel mais baixo. Se A e B so duas camadaspodemos ter, por exemplo, a camada A em um nvel superior a B. Neste caso, A poder

    utilizar livremente todos os servios pblicos de B. Isso no ser verdade em relao a B. SeB for uma camada inferior a A, B no poder utilizar livremente os servios de A.

    Um exemplo simples envolve a camada de apresentao de uma aplicao, implementada emHTML camada A e a camada residente no servidor web, implementada em ASP camada

    B. Neste caso, a camada A hierarquicamente superior camada B: em outraspalavras, A cliente de B.

    3 .3 .1 .3Nv e is d e A b s t r ao

    Todas as unidades residentes na mesma camada operam no mesmo nvel de abstrao. Porexemplo, normal que a camada de apresentao (de nvel mais alto) opere no nvel de

    abstrao do negcio conhea a terminologia e os conceitos usados pelo negcio. O mesmono poderia ser dito de um device driver, cujo nvel de abstrao diferente e mais baixo.

    Unidades de software residentes em camadas diferentes interpretaro os mesmos dados deforma diferente, cada qual de acordo com seu prprio modelo. Por exemplo, a camada deapresentao de uma aplicao web pode denominar um determinado grupo de dados Dadosdo Cliente. Esses dados podero ser passados a uma camada de transporte cujo objetivoseja apenas fazer a triagem e encaminhar os dados ao destino. Para esta camada, os dados

    12Scope of the Count - IFPUG. Counting Practices Manual Version 4.1.1- Princeton Junction, 2000.13Layers - Clements, P. et al. Documenting Software Architectures- Boston: Addison-Wesley, 2003. Pg. 77.

  • 7/21/2019 PFI_BFPUG_V1.00_2004-05-24

    9/16

    BFPUG Brazilian Function Point Users Group

    9

    do cliente seriam conhecidos como Pacote Recebido (por exemplo), uma vez que o nvel deabstrao da mesma no reconheceria o conceito cliente.

    O fato de duas unidades de software interpretarem os mesmos dados da mesma maneira um indicador de que as mesmas residem em uma nica camada. No entanto, este no umcritrio conclusivo, como passamos a demonstrar. Uma unidade de software A construdaem Visual Basic, residente na camada de aplicao, pode comunicar-se com uma storedprocedure B programada em T-SQL, residente na camada de dados. Embora residam em

    camadas diferentes, A e B podem interpretar os dados trocados exatamente da mesmamaneira. Por exemplo, A pode enviar um grupo de dados referentes a Cliente para Batualizar no banco de dados. B pode enxergar este grupo de dados da mesma forma que

    A.

    Se duas unidades de software puderem usar livremente os servios uma da outra, essasunidades sero normalmente consideradas como residentes na mesma camada edenominadas pares (peers).

    3 .3 .1 .4 I n d ep en d n ci a

    Uma unidade residente em uma camada inferior pode operar independentemente das

    camadas superiores. Isto no verdade em relao s camadas superiores.

    3 .3 .1 .5Ou t r as Con sid er aes

    Normalmente, consideraremos como estando em camadas diferentes: gerenciador de bancode dados, device drivers, sistema operacional, parte residente no cliente de uma aplicaoweb, camada residente em um servidor de dados atendendo a vrias aplicaes, camada detriagem e transporte de dados entre vrios servidores, etc. Em aplicaes comerciais acamada de nvel mais alto corresponder, normalmente, US que faz interface com o usuriodo negcio. O estilo de arquitetura utilizado pela organizao deve servir de base definiodas camadas. Os conceitos de coeso e acoplamento, conforme definidos por Pressman14, soferramentas conceituais auxiliares na identificao das camadas. O claro estabelecimento das

    camadas um importante pr-requisito para a utilizao dos PFI.

    Exemplo Modelo: As camadas de software envolvidas neste projeto so: Camada deApresentao, Camada de Validao e Regras de Negcio e Camada de Dados. Ver Figura 2.

    Figura 2 Camadas de Software do Exemplo Modelo

    14Coupling; Cohesion Pressman, Roger. Software Engineering A Practitioners Approach. 4thEdition. NewYork: McGraw-Hill, 1997. Pg. 357.

    ApresentaoValidaes/Regras deNegcio

    Dados

  • 7/21/2019 PFI_BFPUG_V1.00_2004-05-24

    10/16

    BFPUG Brazilian Function Point Users Group

    10

    3.3.2 Determinar as Fronteiras

    A fronteira indica os limites do software, determinando o que faz e o que no faz parte decada unidade de software.

    Do ponto de vista da implementao, as fronteiras so determinadas pela arquitetura. Dessaforma, a documentao da arquitetura precede a identificao das fronteiras. Em projetos demelhoria (manuteno evolutiva), as fronteiras devem ser traadas com base em uma

    representao da arquitetura existente. Em projetos de novas aplicaes, as fronteiras spodero ser conhecidas aps definida e documentada a arquitetura. No desenvolvimentoincremental, diferentes iteraes podero resultar em modificaes na arquitetura, as quaispor sua vez podero afetar o posicionamento das fronteiras.

    3 .3 .2 .1Tip os d e Fr on t e i r a

    Existir sempre uma fronteira separando as diferentes camadas de software. Esta aFronteira entre Camadas.

    Existir tambm uma fronteira entre distintas unidades de software residentes na mesmacamada (Fronteira entre Pares peers).

    Definido onde pode existir uma fronteira, vejamos como identific-las.

    3 .3 .2 .2 Es t m u l o s

    Uma fronteira separa um estmulo do processo de software que trata esse estmulo. Umestmulo comunicado unidade de software atravs da entrada de dados, informaes decontrole, ou do passar do tempo. Um estmulo uma representao de um evento do mundoreal.

    Exemplos comuns de estmulos so a entrada de dados ou informaes de controle por partedo usurio. Outros exemplos so: a passagem de um intervalo de tempo, a chegada de umainformao esperada, o fim de um outro processo, um sinal de outro processo (trigger), etc.

    Os estmulos so utilizados, em conjunto com as camadas, para estabelecer as fronteiras dasunidades de software em uma determinada arquitetura.

    3 .3 .2 .3Ou t r as Con sid er aes

    Outros critrios utilizados na definio de fronteiras so coeso e acoplamento. Ver definiesacima.

    Unidades de software independentes so candidatas a serem desenvolvidas por fornecedores

    tambm independentes. A escolha de fornecedores independentes facilitada pela existnciade diferentes fronteiras.

    Exemplo Modelo: Neste projeto de desenvolvimento, foram identificadas as seguintesfronteiras, ou unidades de software: Aplicao Web de Cadastramento de Clientes, Mdulo deValidao de Clientes e Mdulo de Atualizao de Clientes. Ver Figura 3.

  • 7/21/2019 PFI_BFPUG_V1.00_2004-05-24

    11/16

    BFPUG Brazilian Function Point Users Group

    11

    Figura 3 Fronteiras do Exemplo Modelo

    3.4 Contar Funes de Dados

    A contagem de funes de dados nos PFI segue basicamente a mesma metodologia utilizada

    pelo IFPUG.

    As funes de dados representam a funcionalidade provida ao usurio pela aplicao a fim desatisfazer requisitos de dados internos e externos. Os tipos de funes de dados so ArquivosLgicos Internos (ALI) e Arquivos de Interface Externa (AIE).

    Um Arquivo Lgico Interno (ALI) um grupamento de dados logicamente relacionados,reconhecido pelo usurio e mantido por processos elementares do software considerado. Nacontagem de PFI, estes processos elementares podem fazer uso de software contido emoutras camadas ou fronteiras.

    Um Arquivo de Interface Externa (AIE) um grupamento de dados logicamente relacionados,reconhecido pelo usurio, referenciado para fins de recuperao de dados, mas no mantidopor processo elementar da US considerada. Na contagem de PFI, o processo elementar podefazer uso de software contido em outras camadas ou fronteiras. Um AIE deve,obrigatoriamente, ser mantido por processo elementar de alguma outra US, em outrafronteira.

    A complexidade de um ALI ou AIE deve ser calculada observando-se as regras de contagemdo IFPUG.

    Para que os Pontos de Funo referentes a um arquivo (ALI ou AIE) sejam contabilizados emuma US, necessrio que o arquivo seja diretamente acessado pela US. Caso o arquivo sejaacessado apenas indiretamente pela US, sero contabilizados somente os PF correspondentes referncia ao mesmo (FTR15). Ver definio de acesso direto e indireto, acima.

    Exemplo Modelo: Vamos verificar, para cada fronteira, quais os arquivos utilizados ecandidatos a funes de dados na contagem de PFI. Assumiremos sempre o ponto de vista dousurio da contagem de PFI um observador interno a cada fronteira considerada.

    Aplicao Web de Cadastramento de Clientes na viso do observador interno, esta unidadede software (US) ir atualizar o arquivo de Clientes. Para esta US, o arquivo de Clientes umgrupamento de dados logicamente relacionados, reconhecido pelo usurio e mantido porprocesso elementar a ela pertencente. No entanto, a atualizao do arquivo de Clientes

    15A referncia a um arquivo denominada File Type Reference, ou FTR, na terminologia do IFPUG.

    Aplicao Webde

    Cadastramentode Clientes

    Mdulo deValidao de

    Clientes

    Mdulo deAtualizaode Clientes

  • 7/21/2019 PFI_BFPUG_V1.00_2004-05-24

    12/16

    BFPUG Brazilian Function Point Users Group

    12

    realizada de forma indireta por esta US, atravs de chamada a software residente em outrafronteira. Por este motivo, apenas a referncia ao arquivo de Clientes (FTR) poder sercontabilizada para os processos elementares desta US que o acessarem.

    Mdulo de Validao de Clientes esta US ir acessar o arquivo de Clientes e verificar se osdados recebidos so vlidos e se permitem a realizao da operao desejada. Para estemdulo, o arquivo de Clientes um grupamento de dados logicamente relacionados,reconhecido pelo usurio e mantido por outra US. Porm, como o acesso ao arquivo de

    Cliente realizado atravs de software no residente nesta US

    16

    , apenas uma referncia aoarquivo de Clientes poder ser contabilizada para os processos elementares desta US que oacessarem.

    Mdulo de Atualizao de Clientes esta US gravar as informaes recebidas no banco dedados de Clientes. Para esta US o arquivo de Clientes um grupamento de dadoslogicamente relacionados, reconhecido pelo usurio e mantido por esta US. Como neste casoo acesso direto, trata-se de um ALI para esta US. A Figura 4 ilustra esta situao.

    Figura 4 Funes de Dados do Exemplo Modelo

    A complexidade e contribuio correspondentes ao ALI e do AIE identificados seriam obtidasutilizando-se as regras de contagem de PF do IFPUG.

    3.5 Contar Funes Transacionais

    As funes transacionais utilizadas na contagem de PFI so as mesmas utilizadas nacontagem de PF.

    3.5.1 Entrada Externa

    A inteno primria (ou objetivo principal) de uma Entrada Externa (EE) atualizar os dados dosistema, ou modificar o seu comportamento. Uma EE processa dados ou informaes decontrole que vm de fora da fronteira da US.

    Atualizar os dados do sistema significa alterar os dados persistentes do mesmo, atravs de umadas seguintes operaes: incluso, alterao ou excluso de dados.

    16Acesso indireto ver definio.

    Aplicao Webde

    Cadastramentode Clientes

    Mdulo deValidao de

    Clientes

    Mdulo deAtualizaode Clientes

    1 ALI (Cliente)

  • 7/21/2019 PFI_BFPUG_V1.00_2004-05-24

    13/16

    BFPUG Brazilian Function Point Users Group

    13

    Modificar o comportamento do sistema criar um efeito abrangente, iniciado atravs de umprocesso elementar e persistindo alm do tempo de execuo daquele processo. Um exemplosimples a funo Escolher Impressora. Se um processo elementar altera a impressoraescolhida, normalmente esta alterao afetar todos os demais processos da aplicao quetenham capacidade de imprimir, at que uma sesso seja encerrada, ou que outra impressoraseja escolhida. Ento, a ao Escolher a Impressora considerada uma alterao nocomportamento do sistema.

    Na contagem de PFI, o principal elemento na identificao de funes transacionais a intenoprimria, que deve ser determinada a partir do ponto de vista do usurio interno fronteirada unidade de software considerada.

    Diferentemente do que feito na contagem de PF, na contagem de PFI a atualizao dos dadosdo sistema pode ser efetuada dentro ou fora da fronteira considerada, conforme seja direto ouindireto o respectivo acesso. Isto significa dizer que um ALI pode ser atualizado por uma USmesmo sem ser interno sua fronteira. Ver exemplo adiante.

    3.5.2 Sada Externa

    A inteno primria (ou objetivo principal) de uma Sada Externa (SE) apresentar informaes

    ao usurio, efetuando processamento que no seja exclusivamente recuperao de dados ouinformaes de controle. Uma SE envia dados ou informaes de controle para fora da fronteirada US. A lgica de processamento da SE deve conter alguma frmula matemtica ou clculo,criar dados derivados, manter um ou mais ALI, ou alterar o comportamento do sistema.

    Da mesma forma que no caso da EE, na contagem de PFI a recuperao ou atualizao dosdados do sistema pode ser efetuada dentro ou fora da fronteira considerada.

    3.5.3 Consulta Externa

    A inteno primria (ou objetivo principal) de uma Consulta Externa (CE) apresentar

    informaes ao usurio, obrigatoriamente atravs da recuperao de dados ou informaes decontrole a partir de um ALI ou AIE. Uma CE envia dados ou informaes de controle para forada fronteira da US. A lgica de processamento da CE no pode conter frmula matemtica ouclculo, criar dados derivados, manter ALI, ou alterar o comportamento do sistema.

    Na contagem de PFI, a recuperao dos dados efetuada por uma CE pode ser efetuada dentroou fora da fronteira considerada.

    3.5.4 Exemplo da Identificao de Funes Transacionais

    Exemplo Modelo: Identificar as funes de transao existentes nas fronteiras consideradas noprojeto de desenvolvimento.

    Aplicao Web de Cadastramento de Clientes esta US apresenta ao usurio uma tela paracadastramento de clientes, permite que ele preencha os campos e clique OK. Caso os dadosdo cliente sejam validados corretamente, os mesmos so acrescentados ao banco de dadosde Cliente.

    Segundo a viso do usurio desta US, existe um processo elementar cuja inteno primria atualizar os dados do sistema cadastrar um cliente. O processo elementar recebe dados defora da fronteira e, na viso do usurio (interno fronteira da US), consulta (para validar) eatualiza o ALI de Cliente. Notar que, na contagem de PFI referente a funes transacionais,

  • 7/21/2019 PFI_BFPUG_V1.00_2004-05-24

    14/16

    BFPUG Brazilian Function Point Users Group

    14

    no importa que a consulta e a atualizao do ALI tenham sido implementadas em outrafronteira ou camada de software.

    Temos ento uma Entrada Externa (EE), cuja complexidade e contribuio devem ser obtidasde acordo com as regras de contagem de PF do IFPUG.

    A consulta realizada ao ALI para validar os dados no considerada um processoindependente na viso deste usurio. A atividade de consulta realizada somente como pr-

    requisito e em conjunto com a EE. No um processo em si, mas sim parte de um outroprocesso. Sua utilizao isolada no faz sentido para o usurio desta fronteira.

    Mdulo de Validao de Clientes esta US recebe um grupo de dados referentes a um cliente eefetua sua validao contra o registro correspondente da base de dados de Clientes. O usuriointerno a esta fronteira reconhece a existncia de um grupamento lgico de dados relacionadosdenominado Clientes, que mantido em outra US/fronteira. A inteno primria desta funotransacional apresentar informaes ao usurio, a partir da recuperao de dados de um AIE.A lgica de processamento no envolve frmula matemtica ou clculo, criar dados derivados,manter ALI, ou alterar o comportamento do sistema. Temos ento uma Consulta Externa (CE).

    Mdulo de Atualizao de Clientes esta US recebe um grupo de dados referentes a um clientee informaes de controle que determinam a execuo de uma incluso, alterao ou excluso

    na base de dados de Clientes. O usurio interno a esta fronteira reconhece a existncia de umgrupamento lgico de dados relacionados referentes a Clientes, que mantido dentro destafronteira. A inteno primria do processo elementar atualizar os dados do sistema. Temosento uma Entrada Externa (EE).

    3.5.5 Exemplo da Contribuio para a Contagem de PFI

    Resumindo as consideraes anteriores, a Figura 5 apresenta as funes de dados etransacionais creditadas a cada uma das fronteiras consideradas.

    Figura 5 Funes creditadas a cada US

    3.6 Determinar PFI No Ajustados

    A contagem de PFI de uma aplicao composta por vrias US a soma das contagens decada US. No Exemplo Modelo, supondo que todas as funes de dados tenham complexidadebaixa e que todas as funes transacionais tenham complexidade mdia, teramos osseguintes resultados:

    Aplicao Web de Cadastramento de Clientes 1 EE mdia = 4 PFI

    Aplicao Webde

    Cadastramentode Clientes

    Mdulo deValidao de

    Clientes

    Mdulo deAtualizaode Clientes

    1 EEFTR: Cliente

    1 CEFTR: Cliente

    1 ALI (Cliente)1 EEFTR: Cliente

  • 7/21/2019 PFI_BFPUG_V1.00_2004-05-24

    15/16

    BFPUG Brazilian Function Point Users Group

    15

    Mdulo de Validao de Clientes 1 CE mdia = 4 PFI

    Mdulo de Atualizao de Clientes 1 ALI simples, 1 EE mdia = 7 + 4 = 11 PFI

    Total de PFI No Ajustados = 4 + 4 + 11 = 19 PFI

    interessante comparar este valor com a quantidade de PF correspondentes a esta aplicao.

    Se considerarmos todas as US dentro de uma s fronteira, teremos um ALI e uma nica EE:

    Figura 6 Viso do Usurio do Negcio

    A partir das premissas de complexidade anteriores, teremos aqui 11 PF: 7 Pontos de Funocorrespondentes a um ALI simples e 4 Pontos de Funo correspondentes a uma EE mdia.

    A comparao dos PF com os PFI poder ser utilizada como uma medida da eficincia daimplementao: o objetivo ser implementar a mesma quantidade de PF com a menorquantidade possvel de PFI. No caso, a razo PF/PFI = 11/19 aproximadamente igual a 58%.

    Note-se que, para atribuir a este nmero um significado, teramos que poder compar-lo aalgum outro.

    3.7 Determinar Fator de Ajuste

    O Fator de Ajuste, se utilizado, deve ser determinado para cada US, consoante as regras doIFPUG. Notar que a utilizao do Fator de Ajuste tornou-se opcional a partir da norma ISO/IEC20929:2003.

    3.8 Determinar PFI Ajustados

    Aps a determinao do Fator de Ajuste para cada US, dever ser calculada a quantidade de PFIAjustados para cada US. A quantidade de PFI Ajustados para a aplicao composta pelas USdever ser obtida atravs da soma dos PFI Ajustados de todas as US envolvidas.

    Aplicao Webde

    Cadastramentode Clientes

    Mdulo deValidao de

    Clientes

    Mdulo deAtualizaode Clientes

  • 7/21/2019 PFI_BFPUG_V1.00_2004-05-24

    16/16

    BFPUG Brazilian Function Point Users Group

    16

    4 Concluso

    Os PFI Pontos de Funo de Implementao so uma medida de tamanho do softwareobtida a partir da implementao. Trata-se, intencionalmente, de uma medida dependente daarquitetura e da implementao. No medem o tamanho funcional dos requisitos, emboraestejam indiretamente relacionados a eles.

    Os PFI no so uma variao dos Pontos de Funo do IFPUG. Ao contrrio, constituem umamedida de software independente, que utiliza conceitos do IFPUG a fim de aproveitar a culturaexistente.

    Espera-se que esta primeira verso dos PFI Pontos de Funo de Implementao venha a serobjeto de crticas, sugestes, revises, melhorias e ampliaes, de modo a incorporar asperspectivas e contemplar as necessidades da comunidade brasileira usuria de mtricas desoftware e, particularmente, da Anlise de Pontos de Funo.