Você está na página 1de 21

Contedo Pontos de Funo Aplicados a Tecnologias Novas e Emergentes

INTRODUO 3

DEFINIES MELHORADAS PARA PONTOS DE FUNO ENTRADAS EXTERNAS SADAS EXTERNAS CONSULTAS EXTERNAS ARQUIVO LGICO INTERNO (ALI) ARQUIVO DE INTERFACE EXTERNA (AIE) RESUMO ENTENDENDO APLICAES INTERNET/INTRANET FRONTEIRA TRANSAES (TIPOS DE FUNES TRANSACIONAIS) ENTRADAS EXTERNAS SADAS EXTERNAS CONSULTAS EXTERNAS ARQUIVOS LGICOS INTERNOS E ARQUIVOS DE INTERFACE EXTERNA RESUMO APLICAES GUI ELEMENTOS DE DADOS AVALIANDO SADAS EXTERNAS AVALIANDO CONSULTAS EXTERNAS MENUS (MENUS DINMICOS) AVALIANDO ENTRADAS EXTERNAS ENTRADAS DE CONTROLE MLTIPLOS IDIOMAS BOTES DE RDIO CAIXAS DE VERIFICAO BOTES DE COMANDO APRESENTAO DE IMAGENS GRFICAS OU CONES BYTES DE SOM IMAGENS FOTOGRFICAS MENSAGENS OO
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 4 4 5 5 6 6 6 7 7 7 7 7 8 8 8 8 9 10 11 12 12 12 13 13 14 14 15 15 15 16

OBJETOS MTODOS ATRIBUTOS CLASSES SERVIOS DE INTERFACE, TRANSAES OU TROCA DE MENSAGENS ESTRUTURAS DE ARQUIVOS EXEMPLOS RESUMO

16 17 17 17 17 18 18 18

UTILIZANDO CASOS DE USO PARA DETERMINAR O NMERO DE PONTOS DE__ FUNO 19 CASO DE USO RISCOS AO CONTAR PONTOS DE FUNO A PARTIR DE CASOS DE USO EXEMPLOS 19 199 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.

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.

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.

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, 5

BFPUG (http://www.bfpug.com.br/) Reproduo autorizada se e somente se este aviso aparecer em todas as pginas.

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.

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.

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.

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

BFPUG (http://www.bfpug.com.br/) Reproduo autorizada se e somente se este aviso aparecer em todas as pginas.

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, 9

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.

10

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.

11

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.

12

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.

13

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.

14

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.

15

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.

16

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.

17

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.

18

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.

19

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.

20

Cor da Pgina, Cores da Tabela e Definies das Fontes. Esses so os itens modificados de acordo com o estilo existente 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.

21