Você está na página 1de 21

Copyright Longstreet Consulting Inc ( www.SoftwareMetrics.Com ).

Traduzido por Mauricio Aguiar,


BFPUG (http://www.bfpug.com.br/) Reproduo autorizada se e somente se este aviso aparecer em todas as
pginas.
1
Contedo
Pontos de Funo Aplicados a Tecnologias Novas e
Emergentes
INTRODUO 3
DEFINIES MELHORADAS PARA PONTOS DE FUNO 3
ENTRADAS EXTERNAS 4
SADAS EXTERNAS 4
CONSULTAS EXTERNAS 5
ARQUIVO LGICO INTERNO (ALI) 5
ARQUIVO DE INTERFACE EXTERNA (AIE) 6
RESUMO 6
ENTENDENDO APLICAES INTERNET/INTRANET 6
FRONTEIRA 7
TRANSAES (TIPOS DE FUNES TRANSACIONAIS) 7
ENTRADAS EXTERNAS 7
SADAS EXTERNAS 7
CONSULTAS EXTERNAS 7
ARQUIVOS LGICOS INTERNOS E ARQUIVOS DE INTERFACE EXTERNA 8
RESUMO 8
APLICAES GUI 8
ELEMENTOS DE DADOS 8
AVALIANDO SADAS EXTERNAS 9
AVALIANDO CONSULTAS EXTERNAS 10
MENUS (MENUS DINMICOS) 11
AVALIANDO ENTRADAS EXTERNAS 12
ENTRADAS DE CONTROLE 12
MLTIPLOS IDIOMAS 12
BOTES DE RDIO 13
CAIXAS DE VERIFICAO 13
BOTES DE COMANDO 14
APRESENTAO DE IMAGENS GRFICAS OU CONES 14
BYTES DE SOM 15
IMAGENS FOTOGRFICAS 15
MENSAGENS 15
OO 16

Copyright Longstreet Consulting Inc ( www.SoftwareMetrics.Com ). Traduzido por Mauricio Aguiar,
BFPUG (http://www.bfpug.com.br/) Reproduo autorizada se e somente se este aviso aparecer em todas as
pginas.
2
OBJETOS 16
MTODOS 17
ATRIBUTOS 17
CLASSES 17
SERVIOS DE INTERFACE, TRANSAES OU TROCA DE MENSAGENS 17
ESTRUTURAS DE ARQUIVOS 18
EXEMPLOS 18
RESUMO 18
UTILIZANDO CASOS DE USO PARA DETERMINAR O NMERO DE PONTOS DE__
FUNO 19
CASO DE USO 19
RISCOS AO CONTAR PONTOS DE FUNO A PARTIR DE CASOS DE USO 199
EXEMPLOS 19


Copyright Longstreet Consulting Inc ( www.SoftwareMetrics.Com ). Traduzido por Mauricio Aguiar,
BFPUG (http://www.bfpug.com.br/) Reproduo autorizada se e somente se este aviso aparecer em todas as
pginas.
3
Introduo

Embora a funo primria de todos os aplicativos de software seja o alcance dos
objetivos negociais, tais aplicativos existem sob todas as formas e tamanhos. As
definies do IFPUG necessitam de modificaes, para que possam ser utilizadas no
mundo moderno de hoje. As Diretrizes Para Contagem do IFPUG (IFPUG Counting
Guidelines) no sofreram modificao por quase oito anos. Nesse perodo, o mundo da
tecnologia deu um salto frente, enquanto as Regras Para Contagem de Pontos de
Funo permaneceram estticas. importante ser capaz de adaptar as Regras de
Contagem do IFPUG (mantendo a conformidade com os padres do passado) ao mundo
de hoje, com seu ritmo rpido e sempre passando por mudanas.

O foco deste tutorial ser a aplicao dos pontos de funo a tecnologias novas e
emergentes. Examinaremos e dissecaremos diversas aplicaes OO, GUI e Internet, de
modo que possamos aplicar pontos de funo a elas. Adicionalmente, o tutorial
apresentar o participante a definies novas e melhoradas para pontos de funo. Tais
definies no so realmente novas. Elas tm aparecido na maioria de meus artigos
publicados nos ltimos anos. As novas definies so mais fceis de entender e de
aplicao mais simples s novas tecnologias do que as definies atuais do IFPUG. As
definies esto em conformidade com os Padres do IFPUG e no causariam impacto na
contagem de pontos de funo de uma aplicao, mas melhoram o entendimento e
reduzem a curva de aprendizagem.

Aps uma breve reviso das Definies do IFPUG, cobriremos tpicos difceis tais como
OO, GUI, Internet, Mensagens de Notificao, Mensagens de Erro, Mensagens de
Confirmao e assim por diante.

Ao concluir o tutorial, voc estar de posse das habilidades necessrias aplicao de
pontos de funo ao ambiente especfico coberto aqui. Adicionalmente, entender
claramente como aplicar pontos de funo ao seu prprio ambiente, no abordado neste
texto.
Definies Melhoradas Para Pontos de Funo

difcil aplicar as definies do IFPUG s novas tecnologias. Essas definies tornam-se
muito mais claras a partir de algumas simples e poucas alteraes. Ao longo do tutorial
sero apresentados diversos exemplos de aplicativos GUI e OO. Utilizaremos as
definies adiante, as quais sero comparadas e contrastadas com as antigas definies
do IFPUG.

As definies seguintes no devem afetar a contagem de pontos de funo, porm
reduzem a curva de aprendizagem na aplicao de pontos de funo a tecnologias novas e
emergentes.


Copyright Longstreet Consulting Inc ( www.SoftwareMetrics.Com ). Traduzido por Mauricio Aguiar,
BFPUG (http://www.bfpug.com.br/) Reproduo autorizada se e somente se este aviso aparecer em todas as
pginas.
4
Entradas Externas
Definio Melhorada:
Entrada Externa (EE) um processo elementar no qual dados atravessam a fronteira de
fora para dentro. Tais dados podem vir de uma tela de entrada de dados, por via
eletrnica ou atravs de um outro aplicativo. Os dados podem ser informaes de
controle ou informaes do negcio. No caso dos dados serem informaes do negcio,
sero utilizados para manter um ou mais arquivos lgicos internos. Se os dados forem
informaes de controle, no ser necessrio que atualizem um arquivo lgico interno.

Definio do IFPUG 4.0:
Entradas Externas (EE) processam dados ou informaes de controle procedentes de fora
da fronteira do aplicativo. A prpria entrada externa um processo elementar. Os dados
processados mantm um ou mais ALI. As informaes de controle processadas podem ou
no manter um ALI.

Raciocnio Crtico:
A definio do IFPUG diz "de fora da fronteira do aplicativo". Como a mesma
definio afirma que "os dados processados mantm um ou mais ALI, fica claro que a
informao vem de fora para dentro da fronteira. Isto importante por uma srie de
razes. Fica claro, a partir da definio melhorada, que valores calculados armazenados
so elementos de dados para a entrada externa, mas valores calculados no armazenados
no so elementos de dados para a entrada externa. Isto verdade porque o valor
calculado que no armazenado no atravessou a fronteira (de fora para dentro) e no
mantm um ALI.

Em um ambiente GUI ou OO comum que a informao se mova de uma janela para a
prxima. O movimento de dados em si no considerado uma entrada externa, pois no
atravessou a fronteira da aplicao (de fora para dentro) e no mantm um ALI.
Sadas Externas
Definio Melhorada:
Sadas Externas (SE) um processo elementar no qual dados derivados passam atravs
da fronteira, de dentro para fora. Os dados criam relatrios ou arquivos de sada, que so
enviados a outros aplicativos. Esses relatrios e arquivos so criados a partir de um ou
mais arquivos lgicos internos e/ou arquivos de interface externa.

Dados derivados so dados cujo processamento vai alm da recuperao e edio direta
de informaes de arquivos lgicos internos ou arquivos de interface externa. So o
resultado de algoritmos e/ou clculos. Dados derivados ocorrem quando um ou mais
elementos so combinados com uma frmula, de modo a gerar ou derivar um ou mais
elementos de dados adicionais.

Um algoritmo definido como um procedimento mecnico para executar um dado
clculo ou resolver um problema utilizando uma srie de passos.


Copyright Longstreet Consulting Inc ( www.SoftwareMetrics.Com ). Traduzido por Mauricio Aguiar,
BFPUG (http://www.bfpug.com.br/) Reproduo autorizada se e somente se este aviso aparecer em todas as
pginas.
5
Definio IFPUG 4.0:
Uma Sada Externa (SE) um processo elementar que gera dados ou informaes de
controle, enviados para fora da fronteira do aplicativo.

Raciocnio Crtico
O manual IFPUG 4.0 no fornece uma definio para dados derivados, nem diz onde a
informao estava antes de ser enviada para fora da fronteira do aplicativo. Se a
informao enviada para fora da fronteira, seguro dizer que ela estava dentro da
fronteira. Como a informao estava dentro da fronteira, ela deve estar contida em um
ALI ou AIE.
Consultas Externas
Definio Melhorada:
Consulta Externa (CE) um processo elementar com componentes de entrada e sada,
que resulta na recuperao de dados de um ou mais arquivos lgicos internos e/ou
arquivos de interface externa. A informao recuperada enviada para fora da fronteira
do aplicativo. O processo de entrada no atualiza nenhum Arquivo Lgico Interno e o
lado de sada no contm dados derivados.

Definio IFPUG 4.0:
Uma Consulta Externa (CE) um processo elementar constitudo por uma combinao
entrada-sada que resulta na recuperao de dados. O lado de sada no contm dados
derivados. Nenhum arquivo lgico interno mantido no processamento

Raciocnio Crtico
A Definio do IFPUG no clara por uma srie de razes. A definio do IFPUG diz
resulta na recuperao de dados. Se este o caso, os dados devem ser recuperados de
algum lugar dentro da fronteira do aplicativo. O nico lugar onde os dados podem residir
um ALI ou AIE. Neste caso, a definio deveria dizer explicitamente de um ALI ou
AIE.

A Definio IFPUG no declara explicitamente que a informao deve ser enviada para
fora da fronteira da aplicao (como no caso de uma SE). Isto importante para OO,
porque os objetos se comunicam uns com os outros. Apenas quando um objeto envia
alguma coisa para fora da fronteira que ele pode ser considerado uma consulta externa.

Adicionalmente, o manual IFPUG no faz distino clara entre uma SE e uma CE.
comum nos ambientes OO e GUI que uma SE tenha um lado de entrada. O nico fator
que permite distinguir uma da outra que uma CE no pode ter dados derivados. Se este
o caso, uma SE obrigatoriamente possui dados derivados (seno vai ser uma CE).
Arquivo Lgico Interno (ALI)
Definio Melhorada:
Arquivo Lgico Interno (ALI) um grupo lgico de dados relacionados, identificvel
pelo usurio, que reside inteiramente dentro da fronteira do aplicativo e mantido atravs
de Entradas Externas.

Copyright Longstreet Consulting Inc ( www.SoftwareMetrics.Com ). Traduzido por Mauricio Aguiar,
BFPUG (http://www.bfpug.com.br/) Reproduo autorizada se e somente se este aviso aparecer em todas as
pginas.
6

Definio IFPUG:
Arquivo Lgico Interno (ALI) um grupo lgico de dados relacionados, identificvel
pelo usurio, ou informaes de controle mantidas dentro da fronteira do aplicativo.

Raciocnio Crtico:
A diferena primria est nas ltimas palavras da definio. A diferena a expanso do
que se quer dizer com mantidas. A nica coisa que mantm um arquivo lgico interno
uma Entrada Externa.
Arquivo de Interface Externa (AIE)
Definio Melhorada:
Arquivo de Interface Externa (AIE) um grupo lgico de dados relacionados,
identificvel pelo usurio, que utilizado apenas para referncia. Os dados residem
inteiramente fora do aplicativo e so mantidos por um outro aplicativo. O Arquivo de
Interface Externa um Arquivo Lgico Interno para outro aplicativo.

Definio IFPUG:
Um Arquivo de Interface Externa um grupo de dados relacionados, identificvel pelo
usurio, ou informaes de controle, referenciados pelo aplicativo, porm mantidos
dentro da fronteira de um outro aplicativo. Isto significa que um AIE contado para um
aplicativo deve ser um ALI para outro aplicativo.

Raciocnio Crtico:
As diferenas so pequenas, mas acredito que a nova definio seja mais concisa.
Resumo
importante estabelecer a fundao para o tutorial. Sem definies slidas, no
poderemos prosseguir. Sustento que a razo para tanta dificuldade e confuso na
aplicao de pontos de funo a novas tecnologias que as definies do IFPUG so
muito fracas.
Entendendo Aplicaes Internet/Intranet
A grande maioria dos sites da web contm nenhum ou muito poucos pontos de funo. A
maioria dos sites nada mais so do que folhetos online. O meu site um exemplo. Isto ,
nenhum arquivo mantido e o contedo das pginas no o resultado da leitura de um
arquivo.

Por outro lado, h aplicaes Internet/Intranet que oferecem funcionalidade ligada ao
negcio e precisam ser consideradas. Cada vez mais organizaes esto utilizando
aplicaes Internet para implementar funcionalidade essencial do negcio. A utilizao
de pontos de funo com este tipo de aplicativo apresenta alguns problemas especficos.
O primeiro deles a fronteira. O segundo a identificao das transaes, dos arquivos
lgicos internos e/ou arquivos de interface externa.

Copyright Longstreet Consulting Inc ( www.SoftwareMetrics.Com ). Traduzido por Mauricio Aguiar,
BFPUG (http://www.bfpug.com.br/) Reproduo autorizada se e somente se este aviso aparecer em todas as
pginas.
7
Fronteira
A fronteira para um aplicativo Internet definida de maneira semelhante utilizada para
aplicativos tradicionais. No caso de aplicativos tradicionais, a fronteira no desenhada
simplesmente ao redor da interface com o usurio ou de um grupo de telas, mas do
aplicativo inteiro. Com freqncia os aplicativos Internet so apenas extenses de
aplicativos existentes. H uma tendncia a se criar um aplicativo para a extenso
Internet, mas esta abordagem no correta.
Transaes (Tipo de Funo Transacional)
Transaes (entradas externas, sadas externas, consultas externas) seguem as mesmas
regras bsicas utilizadas em aplicativos convencionais. O Manual do IFPUG atualmente
utilizado foi escrito antes do surgimento da Internet; dessa forma, no contm nenhuma
informao a respeito desse tipo de aplicao. O Manual do IFPUG passou 8 anos sem
sofrer qualquer alterao, devendo ser considerado um documento desatualizado.
Entrada Externa
Se uma entrada externa no for uma entrada de controle, ento dever atualizar um
arquivo lgico interno. Um exemplo de uma entrada externa seria algo como submeter
formulrios. Os formulrios submetidos podem ser um texto html atualizado com
informaes. Por exemplo, eu tive uma srie de pesquisas em meu site na web. A cada
resposta, a pesquisa survey.htm era atualizada. Este um exemplo de uma entrada
externa. As informaes atravessaram a fronteira de fora para dentro e um arquivo lgico
interno foi mantido.

Alguns aplicativos permitem a atualizao online de arquivos temporrios. Tais arquivos
temporrios so utilizados para atualizar arquivos permanentes. Embora a entrada externa
esteja atualizando um arquivo temporrio, este arquivo temporrio logicamente o
mesmo que o arquivo permanente. Isto significa que o arquivo temporrio uma imagem
espelho ou subconjunto do arquivo permanente.
Sadas Externas
Da mesma forma que uma consulta externa, uma sada externa pode ter e com freqncia
tem um lado de entrada. As informaes so lidas de um arquivo lgico interno ou de um
arquivo de interface externa. Nosso programador web desenvolveu uma srie de
relatrios, para que eu no tivesse que ler um arquivo html puro. Por exemplo, um
relatrio simples que resumisse as informaes referentes a cada pergunta. Tais
informaes resumidas so os totais fornecidos pelo relatrio (valores calculados). Aqui
teramos um exemplo de uma sada externa. As informaes atravessaram a fronteira de
dentro para fora e continham dados derivados.
Consultas Externas
Da mesma forma que em uma sada externa, as informaes em uma consulta externa
precisam ser lidas de arquivos lgicos internos ou arquivos de interface externa. Um
outro relatrio criado continha informaes obtidas a partir do html, isto , uma listagem

Copyright Longstreet Consulting Inc ( www.SoftwareMetrics.Com ). Traduzido por Mauricio Aguiar,
BFPUG (http://www.bfpug.com.br/) Reproduo autorizada se e somente se este aviso aparecer em todas as
pginas.
8
com Nome, Email, e Respostas. O relatrio no continha nenhum valor calculado, logo,
tratava-se de uma consulta externa.

Alm disso, cada vez que algum respondia a pesquisa, um email era enviado minha
caixa postal, contendo o nome, endereo de email e respostas da pessoa pesquisada. O
email deveria ser considerado uma consulta externa.
Arquivos Lgicos Internos e Arquivos de Interface Externa
No exemplo acima, survey.htm representa um arquivo lgico interno. Um arquivo lgico
interno deve ter pelo menos uma entrada externa. Neste caso, o formulrio de submisso
da pesquisa a entrada externa para o arquivo lgico interno survey.htm.
Resumo
Sites da web desenvolvidos com a utilizao de FrontPage e outras ferramentas de html
podem ou no conter funcionalidade. A chave entender onde as informaes residem e
como so processadas. A grande maioria dos sites web nada mais so do que apenas
menus e texto.
Aplicativos GUI
Da mesma forma que os aplicativos tradicionais, os aplicativos GUI apresentam as
informaes de duas maneiras, como Consultas Externas ou como Sadas Externas. Uma
consulta externa uma combinao entrada-sada que resulta na recuperao de
informaes de um ou mais arquivos. O lado de sada no contm dados derivados e
nenhuma concluso tirada. Por exemplo, um usurio pode querer visualizar o ltimo
pedido de um cliente. O nome do cliente seria introduzido como o critrio de pesquisa,
sendo ento mostrado o ltimo pedido. Neste caso, o lado de sada no contm dados
derivados e nenhuma concluso tirada.

Por outro lado, uma Sada Externa contm dados derivados. As informaes so
processadas com a utilizao de algoritmos e algum tipo de concluso apresentado. Um
erro comum contar toda a parte online como CE e toda a parte enviada ao papel como
SE. Tanto CE quanto SE podem ser mostrados online ou em hard copy.
Elementos de Dado
Utilizando a definio estrita de elemento de dado constante do Manual de Prticas de
Contagem do IFPUG, teremos Um Elemento de Dado um campo no recursivo,
identificvel pelo usurio. Infelizmente esta definio no prov suficiente orientao
na contagem de aplicativos GUI. Na verdade, o Manual de Prticas de Contagem do
IFPUG no oferece detalhes a respeito de Botes de Rdio, Caixas de Verificao,
Caixas de Listagem, Caixas de Combinao e assim por diante. Apesar disso, um
elemento de dado uma informao que armazenada em um Arquivo Lgico Interno,
ou utilizada para chamar uma transao.

Copyright Longstreet Consulting Inc ( www.SoftwareMetrics.Com ). Traduzido por Mauricio Aguiar,
BFPUG (http://www.bfpug.com.br/) Reproduo autorizada se e somente se este aviso aparecer em todas as
pginas.
9
Avaliando Sadas Externas
Sadas externas podem transmitir informaes textuais, grficas ou eletrnicas. Avalia-se
uma sada externa combinando-se o nmero de tipos de arquivos referenciados e o
nmero de tipos de elementos de dados nicos (no recursivos).

Elementos grficos so contados da mesma maneira que as SE textuais, isto , o elemento
grfico avaliado com base no nmero de TED (Tipos de Elementos de Dados) e no
nmero de RTA (Referncias a Tipos de Arquivos). Na verdade, informaes recursivas
so facilmente identificveis em um elemento grfico, sendo s vezes mais difceis de
visualizar em um relatrio textual.

H 10 elementos de dado na tabela seguinte:
1. Dias (Day)
2. Visitas (Hits)
3. % do Total de Visitas (% of Total Hits)
4. Sesses de Usurios (User Sessions)
5. Total de Visitas (dia til)
6. % Total (dia til)
7. Total de Sesses de Usurio (dia til) (Total Weekdays)
8. Total de Visitas (fim de semana) (Total Weekend)
9. % Total (fim de semana)
10. Total de Sesses de Usurio (fim de semana)

Nvel de Atividade por Dia da Semana



Os mesmos dados poderiam ser processados e apresentados como um grfico de barras.
No grfico de barras seguinte h apenas dois elementos de dado sesso de usurio e dia
da semana. O grfico de barras uma sada externa independente e diferente da tabela

Copyright Longstreet Consulting Inc ( www.SoftwareMetrics.Com ). Traduzido por Mauricio Aguiar,
BFPUG (http://www.bfpug.com.br/) Reproduo autorizada se e somente se este aviso aparecer em todas as
pginas.
10
acima. Em resumo, oferece ao negcio informaes um pouco diferentes daquelas
constantes da tabela.

Nvel de Atividade por Dia da Semana



Avaliando Consultas Externas
CE so muito comuns em aplicativos GUI. Conforme explicado anteriormente, CE no
contm dados derivados ou calculados. Uma caixa de listagem
dinmica (drop down box) um exemplo de Consulta Externa.
simplesmente uma leitura de um arquivo, como no caso de uma
caixa de listagem oferecendo uma lista de nomes de pases. A caixa
de listagem seria contada como uma CE, caso os nomes dos pases
estivessem contidos em um arquivo lgico interno, ou em um
arquivo de interface externa.

Uma consulta serial uma consulta seguida por outra. Por exemplo,
o usurio pode escolher um nome de pas de uma caixa de listagem
(primeira CE), o qual pode ser usado como entrada para uma
segunda CE, que traz os detalhes do pas selecionado.

Copyright Longstreet Consulting Inc ( www.SoftwareMetrics.Com ). Traduzido por Mauricio Aguiar,
BFPUG (http://www.bfpug.com.br/) Reproduo autorizada se e somente se este aviso aparecer em todas as
pginas.
11
Menus (Menus Dinmicos)
O menu mostrado direita um menu
dinmico. O Word mostra os ltimos
arquivos que foram abertos. Podemos
facilmente concluir que esta
informao est sendo lida de algum
tipo de arquivo interno. Por essa razo,
a informao dinmica. O menu seria
contado como uma consulta externa.

Embora o Manual do IFPUG diga
explicitamente que menus no so
contados, neste caso fica claro que o
menu dinmico e se modifica.
A distino real se o menu
dinmico ou esttico, isto , se o
contedo da tela ou relatrio
dinmico (lido de algum arquivo), ou
esttico.

Copyright Longstreet Consulting Inc ( www.SoftwareMetrics.Com ). Traduzido por Mauricio Aguiar,
BFPUG (http://www.bfpug.com.br/) Reproduo autorizada se e somente se este aviso aparecer em todas as
pginas.
12
Avaliando Entradas Externas
Uma EE o mtodo atravs do qual as informaes em um ALI so mantidas (includas,
alteradas ou excludas). Os aplicativos GUI costumam ter Entradas Externas precedidas
por consultas seriais. Um usurio pode selecionar um nome de cliente de um listbox (1


CE), sendo o nome utilizado como entrada para a 2

CE, a qual retorna endereo,


telefone, CEP e outras informaes. A partir deste ponto, o usurio pode incluir, alterar
ou excluir as informaes do cliente (3 EE). Neste caso, esta nica tela representaria 2
CE e 3 EE.
Entradas de
Controle
Entradas de
controle alteram o
comportamento de
um aplicativo ou o
contedo de um
relatrio. Na tela de
controle Criar
Relatrio, o
usurio pode
selecionar quais
relatrios devero
ser produzidos.
Esta tela possui
diversos tipos de
elementos de
dados: caixa de
verificao,
elemento grfico, dimenses, elementos, sub-itens e teclas de ao.

Notar que o usurio pode escolher cada relatrio individualmente. De fato, cada relatrio
um objeto. O relatrio gerado uma combinao de diversos relatrios (ou objetos).
Cada objetos tem vrios atributos.
Mltiplos Idiomas
Consideremos um aplicativo escrito para um nico idioma. provvel que os cabealhos
de relatrios e descries textuais estejam todos codificados internamente nos programas,
isto , o usurio no consegue alterar dinamicamente os cabealhos ou o texto. Agora,
consideremos um aplicativo que tenha sido desenvolvido com a previso de mltiplos
idiomas. Os cabealhos dos relatrios e as descries textuais sero todos lidos de
arquivos. Compare o quadro abaixo, em espanhol, ao quadro em ingls anteriormente
apresentado. este quadro uma sada externa nica, ou a mesma sada externa?

Copyright Longstreet Consulting Inc ( www.SoftwareMetrics.Com ). Traduzido por Mauricio Aguiar,
BFPUG (http://www.bfpug.com.br/) Reproduo autorizada se e somente se este aviso aparecer em todas as
pginas.
13


O quadro em espanhol no uma sada externa nica. Se as sadas externas estiverem
disponveis em mltiplos idiomas, vrias coisas precisam ser consideradas. Primeiro,
provavelmente dever haver alguma entrada de controle que permitir ao usurio
selecionar dinamicamente o idioma. Segundo, h uma RTA adicional, que contm o texto
no idioma selecionado. Terceiro, o arquivo interno lgico correspondente a este idioma
mantido atravs de uma entrada externa. Quarto, h mais elementos de dado no relatrio.
Se uma sada externa estiver disponvel em mais de um idioma, ento a mesma no ser
considerada uma sada externa nica, mas ser mais complexa (mais TED e mais RTA).
Botes de Rdio
Botes de Rdio so tratados como tipos de elementos de dado. Em um grupo de botes
de rdio, o usurio tem a opo de selecionar somente um boto de rdio de cada vez, de
modo que um nico tipo de elemento de dado contado para todos os botes de rdio
contidos no grupo inteiro. Na criao do relatrio webtrends, os botes de rdio 2 D
e 3 D representam apenas um nico elemento de dado.
Caixas de Verificao
Caixas de verificao podem
representar um ou mltiplos
elementos de dado. No exemplo
acima (Create Report - Criar
Relatrio), as caixas de verificao
representam apenas um elemento de
dado, isto , as caixas de verificao
so recursivas.
A tela listada como Data Entry
Preferences (Preferncias de
Entrada de Dados) possui vrias
caixas de verificao. Neste caso,
cada caixa de verificao
considerada um tipo de elemento de

Copyright Longstreet Consulting Inc ( www.SoftwareMetrics.Com ). Traduzido por Mauricio Aguiar,
BFPUG (http://www.bfpug.com.br/) Reproduo autorizada se e somente se este aviso aparecer em todas as
pginas.
14
dado (TED). Cada caixa de verificao independente das outras e oferece uma diferente
funcionalidade a nvel do negcio. As sees Sort employee list by (classificar lista de
empregados por) e Time Format (formato para tempo) tambm so dois tipos de
elementos de dado (TED). Esta tela tem 9 elementos de dado (8 TED e uma tecla de
ao).
Botes de Comando
Botes de comando podem especificar uma ao de incluso, alterao, excluso ou
consulta. De acordo com as regras de contagem do IFPUG, cada boto de comando seria
contado como um TED correspondente ao por ele comandada. Por exemplo, um
simples aplicativo para acompanhar Distribuidores poderia ter campos para Nome do
Distribuidor, Endereo, Cidade, Estado, CEP, Telefone e Fax. Isto representaria sete
elementos de dado (7 TED) e o boto de comando de incluso representaria o oitavo
elemento de dado. Resumindo, a entrada externa de incluso representa uma entrada
externa com oito elementos de dado, a entrada externa de alterao representa outra
entrada externa com oito elementos de dado (7 campos mais o boto de comando de
alterao) e a entrada externa de excluso representa a ltima entrada externa, com oito
elementos de dado (7 campos mais o boto de comando de excluso).

No exemplo Data Entry Preferences o boto OK um tipo de elemento de dado
(TED). O boto de cancelamento apenas navegao e o de ajuda para outras funes.
A tecla de ao default o lado de entrada de uma consulta, isto , se a tecla de ao
default for clicada, informaes sero lidas de um arquivo e iro popular a tela.
Apresentao de Imagens Grficas ou cones
A apresentao de uma imagem grfica simplesmente mais um elemento de dado. Um
aplicativo de estoque pode conter dados a respeito de peas. Pode conter nome da pea,
fornecedor, tamanho, peso e incluir uma imagem esquemtica da mesma. Esta imagem
tratada como um outro elemento de dado.
Um outro exemplo seria um mapa. O mapa pode ser quente, isto , conforme o mouse
movido sobre o mapa, diferentes nomes de cidades so mostrados. Se o usurio clicar
sobre um ponto
especfico do mapa,
aparecero detalhes a
respeito da cidade
selecionada. Se os
detalhes acerca de
cada cidade estiverem
contidos em um
arquivo lgico interno,
ou em um arquivo de
interface externa, os
detalhes podero ser
considerados uma
consulta externa.


Copyright Longstreet Consulting Inc ( www.SoftwareMetrics.Com ). Traduzido por Mauricio Aguiar,
BFPUG (http://www.bfpug.com.br/) Reproduo autorizada se e somente se este aviso aparecer em todas as
pginas.
15
O mapa acima dos Estados Unidos quente. Ao clicar em Kansas City, as seguintes
informaes sero obtidas:

Kansas City, Missouri: Populao 435.146; Localizao: 39,1 N; 94,5 W
Houston, Texas: Populao 2.231.130; Localizao: 29,8 N; 95,4 W
Chicago, Illinois: Populao 2.783.726; Localizao: 41,8 N; 87,6 W

Este seria um exemplo de uma outra consulta.
Bytes de Som
Muitos aplicativos GUI tm um byte de som anexado. Isto representa um elemento de
dado. O nmero de notas tocadas simplesmente informao recursiva. Se o tamanho do
byte de som aumentar, ainda assim continuar representando um nico elemento de dado.
Se o Hino Nacional for tocado durante dois ou quatro segundos, ainda assim teremos
apenas um elemento de dado. Quanto mais tempo o Hino tocar, mais informao
recursiva estar presente.
Imagens Fotogrficas
Uma imagem fotogrfica um outro exemplo de elemento de dado. Um aplicativo de
recursos humanos pode mostrar o nome do empregado, data de admisso, etc., bem como
uma fotografia do empregado. A fotografia ser tratada da mesma forma que o nome ou a
data de admisso. uma outra informao a respeito do empregado. A fotografia
armazenada e mantida como qualquer outra informao a seu respeito.
Mensagens
H trs tipos de mensagens geradas em uma aplicao GUI: Mensagens de Erro,
Mensagens de Confirmao e Mensagens de Notificao. Uma mensagem de erro e uma
mensagem de confirmao indicam que um erro aconteceu, ou que um processo foi ou
ser completado. Uma mensagem do tipo Por favor informe o CEP seria um exemplo
de mensagem de erro. Uma mensagem do tipo Confirma a excluso do cliente? um
exemplo de mensagem de confirmao. Nenhum desses tipos de mensagem tratado
como uma Sada Externa nica. So tratados como elementos de dado para a transao
apropriada.

Por outro lado, uma mensagem de notificao uma mensagem do negcio. a base para
o processamento e para que uma concluso seja obtida. Por exemplo, voc pode tentar
retirar de um caixa automtico mais dinheiro do que o disponvel em sua conta,
recebendo a temida mensagem Saldo insuficiente para esta transao. Isto o resultado
obtido a partir de informaes lidas de um arquivo a respeito de seu saldo atual, com uma
concluso delas decorrente. Uma mensagem de notificao tratada como uma Sada
Externa.


Copyright Longstreet Consulting Inc ( www.SoftwareMetrics.Com ). Traduzido por Mauricio Aguiar,
BFPUG (http://www.bfpug.com.br/) Reproduo autorizada se e somente se este aviso aparecer em todas as
pginas.
16
Mensagens de Notificao podem
ser resultantes de processamento
no visto pelo usurio. Se uma
mensagem for criada para envio a
um pager em um dado momento,
isso funcionar como um alarme,
isto , a hora corrente ser
comparada com a hora prevista para
a mensagem e, quando ambas forem
iguais, a mensagem ser enviada. A
mensagem de pager tem um nico
elemento de dado, o texto da
mensagem.
OO
Objetos
A viso tradicional dos sistemas de software como uma composio. H uma coleo
de dados que representam algumas informaes e um conjunto de procedimentos que
manipulam os dados. Os dados e a lgica dos procedimentos so componentes separados,
os quais constituem o todo do sistema de software.

Na viso orientada a objetos dos sistemas de software existe uma nica entidade,
chamada objeto, a qual representa tanto os dados quanto os procedimentos. Os objetos
podem ser manipulados da mesma forma que os dados. Contudo, assim como os
procedimentos, os objetos tambm podem descrever manipulaes.

Um objeto uma coleo de dados (atributos e propriedades) e lgica funcional
(mtodos). Os dados definem o estado do objeto e os mtodos, o seu comportamento. H
dois tipos de mtodos: primeiro, os mtodos de interface, os quais oferecem um meio de
comunicao com o objeto; segundo, os mtodos internos, que criam comportamentos
para o objeto, mas no so acessveis de fora do mesmo. O mtodo de interface prov
uma forma clara e definida para comunicao com o objeto. O mtodo interno precisa ser
conhecido apenas pelo projetista do objeto. Os usurios do objeto precisam conhecer
APENAS os mtodos de interface.

Pontos de Funo medem software atravs da quantificao da funcionalidade entregue
ao usurio, com base principalmente no desenho lgico. O termo usurio final ou usurio
freqentemente utilizado sem que se especifique de quem se trata. No caso aqui
considerado, o usurio um usurio sofisticado, algum que entende o sistema de um
ponto de vista funcional e que provavelmente fornece os requisitos ou efetua o teste de
aceitao. Pontos de Funo tornam possvel a mensurao do tamanho dos sistemas de
informaes de acordo com o que o usurio v e com o que interage. Esta definio
semelhante de mtodo de interface anteriormente apresentada.


Copyright Longstreet Consulting Inc ( www.SoftwareMetrics.Com ). Traduzido por Mauricio Aguiar,
BFPUG (http://www.bfpug.com.br/) Reproduo autorizada se e somente se este aviso aparecer em todas as
pginas.
17
Todos os mtodos internos existem para dar suporte a mtodos de interface. Os mtodos
internos no so um fim em si, mas mecanismos que apoiam o mtodo de interface em
sua tarefa de entregar informaes ao usurio.
Mtodos
Um mtodo simplesmente a ao causada por uma mensagem. Mtodos so as coisas
que um objeto pode fazer. Mtodos operam sobre os dados contidos no objeto,
modificando-os ou consultando-os.
Atributos
Atributos nada mais so do que caractersticas de um objeto.
Classes
Como os objetos so definidos? Um objeto definido atravs de sua classe, a qual
determina tudo a seu respeito. Objetos so instncias de uma classe. Tudo o que voc
precisa fazer criar uma subclasse da classe original. Esta nova classe herda todas as
mensagens existentes e, dessa forma, herda todo o comportamento da classe original. A
classe original chamada a classe me, ou superclasse da nova classe. Um pouco mais
de jargo diz-se que uma subclasse uma especializao da superclasse e, por outro
lado, que a superclasse uma generalizao de suas subclasses. Tudo isto de fato
independente da contagem de pontos de funo. O importante dirigir a ateno para
aquilo que cada objeto realmente faz.
Servios de Interface, Transaes ou Troca de Mensagens
Os objetos se comunicam uns com os outros atravs de troca de mensagens. Uma
mensagem contm um nome que identifica seu destino, podendo conter tambm alguns
argumentos ou parmetros. A mensagem, quando recebida, causa a execuo do mtodo
apropriado no objeto de destino. Na sua forma mais simples, uma mensagem o mesmo
que uma chamada de funo ou procedimento no sentido tradicional, uma vez que o
efeito lquido o mesmo. Muitas vezes o objeto que envia a mensagem chamado de
servidor e o objeto que recebe a mensagem chamado de cliente. Uma mensagem
preparada e enviada ao cliente geralmente vai se manifestar como Sada Externa ou
Consulta Externa. Uma mensagem preparada e enviada do cliente ao servidor
geralmente uma Entrada Externa.

Uma mensagem uma solicitao para que um objeto execute uma seqncia de aes
atravs de um ou mais mtodos chamados. Um mtodo uma unidade de lgica
funcional contida em um objeto. De acordo com os padres do IFPUG, uma transao
deve possuir lgica de processamento nica e que represente a menor unidade de
atividade significativa para o usurio do negcio. Como um mtodo uma unidade de
lgica funcional contida em um objeto, bastante semelhante definio de uma
transao de acordo com as Regras de Contagem do IFPUG.

Copyright Longstreet Consulting Inc ( www.SoftwareMetrics.Com ). Traduzido por Mauricio Aguiar,
BFPUG (http://www.bfpug.com.br/) Reproduo autorizada se e somente se este aviso aparecer em todas as
pginas.
18
Estruturas de Arquivos
Nas aplicaes OO, somente dados persistentes so considerados Arquivos Lgicos
Internos e no os dados transientes. Dados transientes so vlidos somente dentro de um
programa ou transao, sendo perdidos quando o programa ou transao termina. Na
programao tradicional, este caso seria semelhante ao de um arquivo temporrio. Os
dados persistentes so armazenados fora do programa e sobrevivem ao seu trmino.

Dados persistentes so armazenados em Bancos de Dados Relacionais ou Bancos de
Dados OO. Com freqncia, os dados contidos em terceira forma normal representaro
um arquivo lgico interno. A terceira forma normal procura remover quaisquer
dependncias entre os atributos no chaves. Para ser considerado um arquivo lgico
interno (ALI), o arquivo (ou tabela) deve ser um agrupamento lgico de dados, mantido
ou modificado atravs de processos elementares (mtodos).
EXEMPLOS
Transaes

1. Comunicao Peer to Peer Uma mensagem nica enviada, recebida e respondida
corresponde a uma srie de funes. Vamos assumir que h dois aplicativos A e B, com
comunicao peer to peer. O aplicativo A envia uma mensagem ao aplicativo B esta
mensagem enviada uma sada externa para o aplicativo A e uma entrada externa para o
aplicativo B. O aplicativo B processa a mensagem, com base nas regras de negcio
estabelecidas e cria uma outra mensagem (sada externa para o aplicativo B), que
enviada de volta ao aplicativo A (uma entrada externa para o aplicativo A). Desta forma,
esta srie de comunicaes representaria 2 entradas externas e 2 sadas externas. Na
realidade, podem existir centenas de mensagens trocadas entre os aplicativos A e B.

2. Comunicao Atravs de Dois Interruptores (switches), usando polling, um exemplo
de duas consultas externas.

3. Se um aplicativo tem uma interface pesada com o usurio e OO, existiro muito
mais consultas (consultas externas) do que em um sistema tradicional. Uma tela pode ter
vrios objetos nicos. Por exemplo, uma consulta a cliente pode apresentar uma lista de
clientes atuais (primeira consulta externa). Depois que um cliente selecionado, a tela
preenchida com todos os campos do cliente, tais como endereo, telefone, cidade, estado,
situao de imposto de renda, assim por diante (segunda consulta externa). Se todos os
campos puderem ser alterados, a tela final ser uma entrada externa. Ento, esta tela tem
2 consultas externas, seguidas por uma entrada externa.
Resumo
Repetindo, pontos de funo podem ser aplicados a ambientes OO. O benefcio proposto
pelos aplicativos OO so aplicativos mais rpidos, melhores e mais baratos. Se este no
for o caso, por que usar? Deve existir algum fator de normalizao para comparar OO ao
desenvolvimento tradicional. Pontos de Funo focam no que entregue ao usurio e so

Copyright Longstreet Consulting Inc ( www.SoftwareMetrics.Com ). Traduzido por Mauricio Aguiar,
BFPUG (http://www.bfpug.com.br/) Reproduo autorizada se e somente se este aviso aparecer em todas as
pginas.
19
independentes da metodologia de desenvolvimento ou linguagem. O que entregue a um
usurio por um aplicativo OO ou tradicional a mesma coisa.
Utilizando Casos de Uso Para Determinar o Nmero de Pontos
de Funo

Pontos de Funo medem o tamanho dos sistemas de informao, de acordo com o que o
usurio v e com o que ele interage.

Medem a funcionalidade entregue ao usurio sofisticado, com base principalmente na
viso lgica.

Um usurio sofisticado algum que participa da definio de requisitos,
desenvolvimento de casos de uso, teste de aceitao e assim por diante.
Caso de Uso
Um Caso de Uso um dilogo entre um usurio e o sistema computacional, com o
objetivo de satisfazer uma necessidade especfica do usurio. Um Caso de Uso coloca o
foco do esforo de desenvolvimento de software naquilo que o usurio precisa que seja
feito para que seus objetivos sejam alcanados.

Casos de uso descrevem como os usurios interagem com um sistema computacional.
Normalmente uma tela precisa ser dissecada em transaes (entradas externas, consultas
externas e sadas externas). Isto , qualquer tela especfica pode conter uma consulta
externa (apresentao de informaes), sadas externas (dados derivados) e entradas
externas (atualizaes de arquivos). Os casos de uso fornecem as partes j dissecadas
(passos). Um passo pode ser uma transao, um elemento de dado ou nenhum dos dois.
Cada passo precisa ser analisado para determinar se uma transao ou elemento de
dado.

importante rever o vocabulrio utilizado, procurando palavras tais como salvar,
atualizar, juntar, calcular e assim por diante.
Riscos ao Contar Pontos de Funo a Partir de Casos de Uso
Uma transao necessria no foi identificada em um Caso de Uso
Uma transao foi erradamente identificada em um Caso de Uso
O nmero de atributos no est claramente definido em um Caso de Uso
O nmero de atributos no pode ser associado a uma entidade.
Exemplos
Caso de Uso Modificar Contedo de Tabela

Passo 1
Uma lista dos estilos existentes apresentada
O usurio seleciona um dos estilos existentes

Copyright Longstreet Consulting Inc ( www.SoftwareMetrics.Com ). Traduzido por Mauricio Aguiar,
BFPUG (http://www.bfpug.com.br/) Reproduo autorizada se e somente se este aviso aparecer em todas as
pginas.
20
O usurio pode incluir um novo estilo
O usurio pode excluir estilos existentes

Passo 2
O usurio seleciona descries curtas ou longas para os cabealhos da tabela
O usurio seleciona a ordem de classificao
O usurio seleciona a largura da moldura da tabela
O usurio seleciona os itens das colunas

Layout da tela para o Passo 1. Os estilos existentes constituem uma consulta externa.
Esta consulta externa tem um elemento de dado no lado de entrada e um elemento de
dado no lado de sada. O resultado (lado de sada desta consulta) um elemento de dado
para a tela de entrada de controle. Os botes de rdio (alterar ou criar edit ou create)
representam um nico elemento de dado.


O item no lado esquerdo modificado de acordo com o estilo selecionado. Isto representa
outra consulta externa para esta tela.

Os elementos de dado so:

Copyright Longstreet Consulting Inc ( www.SoftwareMetrics.Com ). Traduzido por Mauricio Aguiar,
BFPUG (http://www.bfpug.com.br/) Reproduo autorizada se e somente se este aviso aparecer em todas as
pginas.
21
Cor da Pgina, Cores da Tabela e Definies das Fontes. Esses so os itens modificados
de acordo com o estilo existente selecionado.

Você também pode gostar