cumprimento s exigncias para obteno de grau no curso de psgraduao lato sensu de especializao em Tecnologia da Informao na Administrao de Negcios
DEDICATRIA
Ao meu fil.o /ucas 0ue 1 a razo de min.a 2ida( meu porto seguro
AGRADECIMENTOS
Aos
meus
caros
professores
compan.eiros de trabal.o 0ue tanto me apoiaram e me forneceram informa%es para acumular con.ecimento na dif3cil tarefa de estimati2a de sistemas de informao 4m especial a Aguinaldo
Aragon 5ernandes 0ue foi a primeira pessoa a me transmitir informa%es sobre m1tricas
EP)GRAFE
67esen2ol2er sistemas de informao sem procedimentos padronizados e sem um m1todo de estimati2a 1 o mesmo 0ue se a2enturar em um mar tenebroso sem instrumentos de na2egao8 O Abismo da Borda do Mundo: Embora seu pas fosse banhado pelo Atlntico, os portugueses nunca haviam desafiado o Mar Tenebroso, um territrio mitolgico e desconhecido. Os prprios rabes acreditavam ue as !portas! da uele oceano eram guardadas, com a a"uda de um drag#o, pelas !ninfas do $oente!, as %esp&rides, filhas do gigante Atlas. 'isposto a chegar ( )uin& * de onde provinha o ouro ue enri uecera +euta * '. %enri ue decidiu enfrentar os perigos do Atlntico. Os maru"os, de ,agres desesperaram*se, pois acharam ue seus navios iriam despencar no abismo do fim do mundo- a maioria deles acreditava ue a Terra era plana como uma bande"a. $ara al&m desses terrores imaginrios, eles tiveram ue enfrentar uma s&rie de perigos reais- os ventos e as correntes contrrias, as longas calmarias sob o sol inclemente e as s.bitas tempestades. Os mareantes, al&m disso, deparavam estranhos fen/menos meteorolgicos * como o chamado 0fogo de ,#o Telmo 12correntes el&tricas ue atingiam os mastros3 * e com incrveis animais marinhospei4es imensos, enormes polvos, baleias descomunais5. Tais seres deram origem ao mito das sereias e das serpentes marinhas * sempre prontas, na febril imagina6#o dos maru"os, a devorar seus navios. /i2ro de 4duardo 9ueno : 9rasil Terra a ;ista <+=>
4
RESUMO
?ma das maiores dificuldades encontradas no gerenciamento de pro@etos de informAtica 1 saber a dimenso do 0ue estA sendo gerenciado Muitas aplica%es 0ue a princ3pio parecem pe0uenas( 0uando em desen2ol2imento( mostram-se muitas 2ezes maior do 0ue o pre2isto inicialmente e( para alguns casos( torna-se to complexas e grandes( 0ue se perde o controle Al1m do 0ue nem sempre 1 2iA2el se lanar na a2entura de desen2ol2er um aplicati2o( @A 0ue atualmente existem no mercado uma infinidade de produtos prontos ou necessitando de pe0uenas customiza%es A Area de informAtica da grande maioria das empresas( em geral( s consegue retratar custos passados de .ardBare( softBare e people7are( al1m de alguns indicadores relati2os ao ambiente de produo Cutilizao de processador por tempo( taxa de disponibilidade do sistema( etc D A inexistncia de indicadores de desempen.o financeiro( de 0ualidade e de produti2idade 0ue retratem o desen2ol2imento de sistemas de informao dificulta( e muito( a efeti2a gerncia destas ati2idades !roduzir ser2ios de alta 0ualidade com o m3nimo custo poss32el ou se@a( alta produti2idade - se constitui em fator cr3tico de sucesso para o bom desempen.o empresarial No esforo de implantao de uma no2a mentalidade 2oltada para a 0ualidade e produti2idade( no 1 admiss32el o desen2ol2imento de sistemas atra21s de EfeelingF( onde 0uest%es como" 0ual 1 a produti2idade da Area de informAtica( 0ual 1 a capacidade de produo( 0ual con@unto de ferramentas possibilita a maior produti2idade( 0uais so os indicadores de 0ualidade existentes( 0ual camin.o de2o adotar( desen2ol2er ou comprar um pacote e customizA-lo( so simplesmente deixadas de lado ou respondidas sem suporte de uma base 0uantificA2el ?m processo de medio de2e ser implantado na empresa com o ob@eti2o de suportar a anAlise de tendncias de determinados indicadores( 0ue podem subsidiar a%es para re2erso ou sustentao dessas tendnciasG a anAlise de impactos na introduo de no2as tecnologias sobre a 0ualidade e produti2idade( 0ue pode auxiliar na deciso sobre 0uais combina%es de elementos de tecnologia garantem mel.ores resultadosG a anAlise de atributos( 0ue permite a comparao da 0ualidade e
5
produti2idade entre plataformas( metodologias( Areas de aplicao( .abilidades t1cnicas de pessoas e assim sucessi2amente A gerncia( criando os padr%es de medidas para a instalao( fica em posio de monitorar o comportamento dos pro@etos e produtos indi2idualmente( analisar resultados( comparA-los e 2erificar a ade0uabilidade dos respecti2os processos e necessidades de implementar mel.orias
SUMRIO
5ol.a de rosto 7edicatria Agradecimentos 4p3grafe &esumo $umArio Introduo ) !remissas para Medio + 7efinindo um !rograma de M1tricas H 7ificuldades em se Kbter uma 9ase Listrica de Medi%es - A Nuesto #MM : #apabilitO MaturitO Model * Mel.oria do !rocesso de $oftBare Atra21s de Indicadores de Nualidade e !roduti2idade M K #.o0ue #ultural 4n2ol2endo 4stimati2as I Influncia da metodologia de 7esen2ol2imento e Pesto de !ro@etos J ?tilizao de #asos de ?so para 7eterminar o NQmero de !ontos de 5uno = ?tilizao de !ontos de 5uno para 4stimar #asos de Teste ), Mapeamento de #asos de Teste em #asos de ?so e !ontos de 5uno )) Impacto das No2as Tecnologias )+ Perenciamento de !ro@etos de e#ommerce )H 4stimati2a em Ambiente #liente R $er2idor )- !roduti2idade e a Nualidade Aplicada nas 4stimati2as )* Tabela de /inguagens de !rogramao )M #ontratao com 9ase em !ontos de 5uno #onclus%es &eferncias bibliogrAficas Anexo - #onceitos de AnAlise de !ontos de 5uno +J HH HJ --J *I *= I+ III J) J=+ =* =I ) + H * I J ), )H )M +)
INTRODUO
?ma das maiores dificuldades encontradas no gerenciamento de pro@etos de informAtica 1 saber a dimenso do 0ue estA sendo gerenciado Muitas aplica%es 0ue a princ3pio parecem pe0uenas( 0uando em desen2ol2imento( mostram-se muitas 2ezes maior do 0ue o pre2isto inicialmente e( para alguns casos( tornam-se to complexas e grandes( 0ue se perde o controle Al1m do 0ue nem sempre 1 2iA2el se lanar na a2entura de desen2ol2er um aplicati2o( @A 0ue atualmente existem no mercado uma infinidade de produtos prontos ou necessitando de pe0uenas customiza%es ?m sem-nQmero de dQ2idas 2em tona( 0uando se fala em dimensionamento( prazo e custo de sistemas 4stas dQ2idas no so s pertinentes aos gerentes e desen2ol2edores e sim( a todos os en2ol2idos neste processo to nebuloso e complicado de se administrar 7entre elas( pode-se citar algumas( como por exemplo" 5ornecer expectati2as realistas para o usuArio R clienteG A2aliar e medir resultadosG Ter con.ecimento do patrimSnio de softBareG Kbter recon.ecimento relati2o a um bom trabal.oG 4stimati2a de prazo( custo e recursos para desen2ol2er sistema ou customizar pacoteG 7ecidir entre manter x desen2ol2er x comprarG 4stabelecer indicadores para tomada de decisoG !articipar do processo de 0ualidade A Area de informAtica da grande maioria das empresas( em geral( s consegue retratar custos passados de .ardBare( softBare e people7are( al1m de alguns indicadores relati2os ao ambiente de produo Cutilizao de processador por tempo( taxa de disponibilidade do sistema( etc D A inexistncia de indicadores de desempen.o financeiro( 0ualidade e produti2idade 0ue retratem o desen2ol2imento de sistemas de informao dificulta( e muito( a efeti2a gerncia destas ati2idades !roduzir ser2ios de alta 0ualidade com o
m3nimo custo poss32el - ou se@a( alta produti2idade - se constitui em fator cr3tico de sucesso para o bom desempen.o empresarial A gesto do ambiente de softBare no estA 2inculada somente a um pro@eto ou a um produto espec3fico e sim( ao con@unto dos pro@etos e produtos da instalao como um todo T o n32el tAtico de gesto Neste n32el( a preocupao 1 a2aliar a 0ualidade dos processos de plane@amento de pro@etos( de desen2ol2imento de softBare e de gesto dos produtos em utilizao( 2isando atingir patamares cada 2ez mais ele2ados de 0ualidade sob o conceito de mel.oria cont3nua !ara tanto( as medi%es operacionais de2em ser agregadas a fim de permitir" a anAlise de tendncias de determinados indicadores( 0ue podem subsidiar a%es para re2erso ou sustentao dessas tendnciasG a anAlise de impactos na introduo de no2as tecnologias sobre a 0ualidade e produti2idade( 0ue pode auxiliar na deciso sobre 0uais combina%es de elementos de tecnologia garantem mel.ores resultadosG a anAlise de atributos( 0ue permite a comparao da 0ualidade e produti2idade entre plataformas( metodologias( Areas de aplicao( .abilidades t1cnicas de pessoas e assim sucessi2amente ?ma das dimens%es da gesto do softBare 1 a econSmica K esforo de atingir patamares mais e2olu3dos de 0ualidade recai tamb1m sobre a gesto de custos de noconformidade ou mA 0ualidade Ku se@a( 0ualidade aumenta lucrati2idade pela diminuio dos custos de fal.as internas e externas e pelo aumento da satisfao do cliente A gerncia( criando os padr%es de medidas para a instalao( fica em posio de monitorar o comportamento dos pro@etos e produtos indi2idualmente( analisar resultados( comparA-los e 2erificar a ade0uabilidade dos respecti2os processos e necessidades de implementar mel.orias
*+
elaborao de estimati2as de esforo de desen2ol2imento( prazo e custo de um pro@eto de sistemas <H+> !ara suportar a realizao de tal ati2idade torna-se necessArio a adoo de um m1todo de estimati2a de taman.o de sistemas de informao A escol.a da m1trica para auxiliar e suportar as medi%es de softBare de2e le2ar em conta alguns parUmetros( como demonstrado a seguir" !ro2er resultados consistentesG !ermitir sua obteno por no especialistas em informAticaG $er de fAcil aprendizadoG $er compreens32el ao usuArio finalG $er2ir para estimati2asG !ermitir automatizaoG !ossibilitar obter s1ries .istricas T1cnicas de 4stimati2as As t1cnicas de estimati2as podem ser classificadas basicamente( em trs categorias" AnalogiaG Modelos AlgoritmosG AnAlise de 5uncionalidade
#omo des2antagens pode-se citar" estA su@eito presso( necessita de e4perts da compan.ia( pode apresentar grande des2io( 1 altamente dependente de experincia passada( no de2e ser utilizado para pro@etos grandes e no produz indicadores
fases re0uer esforo de contagens de pontos de funo para cada fase e re0uer um meio eficiente de armazenamento das informa%es obtidas nas contagens
?ma considerao de2e ser feita com relao m1trica A!5 1 0ue o padro definido pelo I5!?P trata somente de medida de taman.o de um sistema de informao em termos de 0uantidade de pontos de funo A 0uesto da produti2idade de2e ser tratada particularmente por cada empresa 0ue decide pela implantao desta m1trica #onsiderao adicional sobre produti2idade e 0ualidade pode ser encontrada no item 6)- A !roduti2idade e a Nualidade Aplicada nas 4stimati2as"8
12
1+
de ponto de funo 1" Nual a moti2ao para a sua utilizaoW T fundamental le2ar em considerao trs principais aspectos 0ue de2em ser a2aliados para respond-la" K contexto de sua aplicao nas organiza%es 0ue mantm pro@etos e opera%es 2oltadas contratao( desen2ol2imento e manuteno de sistemas 4xiste uma anAlise da problemAtica presente nesse contexto K entendimento de como a t1cnica pode a@udar essas organiza%es a identificar e e0uacionar o con@unto de 0uest%es en2ol2idas na soluo das dificuldades inerentes a esses empreendimentos Ao explorar a moti2ao para medir e os ob@etos de medio( c.ega-se concluso 0ue o taman.o 1 umas das propriedades 0ue de2e ser medida Agora 1 necessArio a2aliar a mel.or unidade para medir o taman.o de sistemas A m1trica AnAlise de !ontos de 5uno 1 utilizada como geradora de indicadores para estimati2as de prazos( gerncia de recursos .umanos e elaborao de planos de trabal.o de pro@etos( assim como na a2aliao e acompan.amento do progresso de pro@etos e anAlise da produti2idade de e0uipes A medida do taman.o de sistemas( em con@unto com tempo e custo( fornece estes indicadores( 0ue constituem um sistema de informa%es gerenciais - importante ferramenta para a administrao da organizao A implantao de um programa de m1tricas( fundamentado nos indicadores obtidos atra21s da utilizao da AnAlise de !ontos possibilitar fornecer uma s1rie de informa%es( como por exemplo" Nossa capacidade de responder s solicita%es do usuArio Cproduti2idadeD aumentou HHX No ano passado( liberA2amos )* !ontos de 5uno por Lomem Ms Neste ano( estamos liberando +, !5R LM Nossa capacidade de responder s solicita%es do usuArio Cproduti2idadeD diminuiu +*X No ano passado( liberA2amos +, !5 R LM Neste ano( estamos liberando )* !5R LM !recisamos fazer algo
13
de 5uno irA
K 3ndice de defeitos foi reduzido de )+X para ),X( resultando num aumento de )M(MX do 3ndice de 0ualidade K custo por ponto de funo diminuiu de ),, Y R !5 para J, Y R !5 4ste custo menor gerou um aumento de demanda por parte dos usuArios A preciso de nossas estimati2as mel.orou significati2amente( passando de -*X para )*X de des2ios Cestimado x atualD K ob@eti2o principal da aplicao de medi%es na gesto do pro@eto estA associado aos seguintes aspectos" Atingir o prazo inicialmente pre2istoG Atingir o oramento inicialmente pre2istoG Perao de um produto de softBare de boa 0ualidade( ade0uado ao uso $atisfao do cliente R usuArioG 5ornecimento de informa%es gerncia de desen2ol2imento para 0ue possa mel.orar( continuamente( os processos de plane@amento( desen2ol2imento de softBare e gesto do produtoG Moti2ar e0uipeG 7irecionar trabal.os - pro2er informa%es a tempo de afetar o prprio processoG Identificar oportunidades de mel.orias - medir impacto de t1cnicas e ferramentasG !ro2er a gerncia de indicadores - A2aliar o ambiente de forma( a saber( se estamos no camin.o certo !ara tanto( 1 preciso controlar R monitorar o processo de desen2ol2imento( 2isando manter a produti2idade nos n32eis pre2istos( remo2er o 0uanto antes defeitos introduzidos no produto( reduzindo ou eliminando o esforo de retrabal.o( conse0uentemente mantendo o oramento sob controle K processo de definio de um programa de m1tricas( isto 1( 0uais m1tricas e 0uais informa%es geradas por estas m1tricas sero utilizadas pela empresa( de2e ser baseado nas necessidades de informao de cada n32el organizacional Isto 1 obtido a partir do le2antamento de informa%es @unto as Areas interessadas !ara o tal( pode-se
14
aplicar o m1todo 9asili PNM CPoal R Nuestion R MetricD K diagrama apresentado a seguir ilustra o modelo 9asili
Nuais so as metas Nual 0uesto se dese@a responder Nual M1trica Z Indicador poderA l.e a@udar
15
3+
?ma 2ez estabelecido por 0ue medir( a prxima pergunta 0ue de2e ser respondida 1" K 0ue medirW No caso da Area de sistemas de2em ser a2aliadas no s suas caracter3sticas de produto final( mas tamb1m as caracter3sticas dos processos en2ol2idos em sua concepo e construo 7esta forma primeiro 1 preciso identificar as caracter3sticas rele2antes para a anAlise !ara cada um dos ob@eti2os 0ue se dese@a acompan.ar 1 poss32el estabelecer um con@unto de informa%es 0ue so capazes de a partir do relacionamento entre elas( produzir indicadores para suportar o processo gerencial
16
m1trica( define-se como sero armazenadas as informa%es coletadas Ca0uisio de uma ferramenta( uso de planil.as( desen2ol2imento de um sistema( etc D Neste momento( 1 necessArio 0ue todos os en2ol2idos no processo de coleta este@am moti2ados e conscientes da importUncia do trabal.o( cu@o retorno no serA imediato( pois apesar do pe0ueno acr1scimo de trabal.o( pro2eniente das medi%es e da coleta de dados( ainda no se tem uma massa de dados .istricos m3nima( to necessArio uma utilizao da m1trica A ati2idade de coleta da base de dados tem seu in3cio 0uando 1 transmitida a necessidade de um re0uerimento de negcio( se estenderA ao longo do ciclo de desen2ol2imento e acompan.ar o sistema de informao durante todo o seu ciclo de 2ida at1 sua desati2ao( 0uando sero coletados os Qltimos dados Ao final do processo de desen2ol2imento de2em ser feitas algumas medi%es( para 0ue dem subs3dios ao aperfeioamento continuo dos processos de plane@amento de pro@etos e de desen2ol2imento da instalao 4ssas medi%es iro atualizar o banco de dados de m1tricas e alimentar os indicadores( bem como estabelecer os no2os padr%es da instalao( os 0uais sero utilizados para o plane@amento e desen2ol2imento de no2os pro@etos 4stas medi%es compreendem" ;erificao da exatido das estimati2asG Taman.o do softBare entregueG !roduti2idade do 7esen2ol2imentoG #usto do !5 de 7esen2ol2imentoG #rescimento funcional do softBare durante o desen2ol2imentoG &eutilizao de cdigoG #omplexidade relati2a do softBareG #usto da 0ualidadeG 7istribuio do esforo por faseG 7istribuio do custo por faseG
17
7ensidade e distribuio dos defeitos por fase !ode-se ter os seguintes exemplos de indicadores para clientes e para
executi2os 0ue so resultantes do relacionamento entre as informa%es coletadas" [ndice de Nualidade" IN \ NQmero de 7efeitos R Taman.o do $oftBareG Tempo m1dio de soluo de problemasG N32el de satisfao do clienteG !ontos de funo liberadosG #rescimento de softBareG Taxa de produoG Nualidade do produto liberadoG &an]ing de defeitosG #usto por ponto de funoG #usto de retrabal.oG Taxa de faturamentoG !roduti2idadeG !atrimSnio de $oftBare e In2entArio de $oftBare !ode-se ter os seguintes exemplos de indicadores para Perentes e 40uipe 0ue so resultantes do relacionamento entre as informa%es coletadas" Taxa de !roduti2idade" !5 R !essoa-ms ou !5 R !essoa .oraG !roduti2idade \ Taman.o do $oftBare R 4sforoG 4ficincia na remoo de defeitosG 4stimati2a de 4sforo" 4sforo \ Taman.o do $oftBare R !roduti2idadeG &etrabal.oG Taxa de #usto de $oftBare" Taxa de #usto \ #usto Total R Taman.o do $oftBareG Tendncias de custoG #usto por ambiente" #usto \ Taxa de #usto x Taman.o do $oftBare
18
?m exemplo de uma m1trica seria 0ue .ou2e apenas dois erros descobertos pelo usuArio nos primeiros )J meses de operao Isto dA mais informao significati2a do 0ue dizer 0ue o sistema entregue 1 de excelente 0ualidade ?m exemplo de indicador seria um VflagV( um indicador 1 alguma coisa 0ue c.ama a ateno de uma pessoa para uma situao espec3fica ?m outro exemplo de indicador 1 a ati2ao de um detetor de fumaa na sua casaG a ele 1 atribu3do um estado pr1-estabelecido e um alarme soa se o nQmero de part3culas de fumaa no ar excede as condi%es especificadas para o estado segundo o 0ual o detetor foi calibrado 4m termos de softBare( um indicador pode ser um aumento substancial no nQmero de defeitos encontrados na 2erso mais recente do cdigo
20
6+
de desen2ol2imento de softBare Tem sido utilizado com sucesso por 2Arias organiza%es na a2aliao de seu processo de softBare( bem como na identificao das Areas-c.a2e onde focalizar as iniciati2as de mel.oria<I> K #MM oferece uma estrutura para o entendimento e mel.oria da eficAcia de uma organizao no desen2ol2imento de softBare T organizado em cinco n32eis de maturidade organizacional( onde cada n32el representa um estAgio e2olucionArio da capacidade do processo
#ada n32el representa um estAgio da maturidade organizacional( descrito em termos de suas V^reas-#.a2e de !rocessosV ?ma ^rea-#.a2e de !rocesso Ctamb1m c.amada _!A - 8e9 $rocess AreaD 1 um grupo de ati2idades relacionadas considerado importante para 0ue uma organizao funcione no n32el apropriado de maturidade do processo Ks ob@eti2os de uma ^rea-#.a2e de !rocesso so alcanados 0uando certas ati2idades so executadas !or exemplo( um dos ob@eti2os da ^rea-#.a2e de !rocesso do N32el +( $lane"amento do $ro"eto de ,oft7are ( 1 V4stimati2as de softBare so
21
documentadas para utilizao no plane@amento e super2iso do pro@eto de softBare V A tabela a seguir( apresenta as ^reas-#.a2e de !rocesso para cada N32el do #MM N.el 2 A BOti"iC# %B !re2eno de 7efeitos Perenciamento da Mudana Tecnolgica Perenciamento da Mudana no !rocesso N.el - 6 Gere&ci# %B Perenciamento Nuantitati2o do !rocesso Perenciamento da Nualidade de $oftBare 5oco no !rocesso Krganizacional 7efinio do !rocesso Krganizacional N.el 2 3 BDefi&i %B !rograma de Treinamento Perenciamento Integrado de $oftBare 4ngen.aria do !roduto de $oftBare #oordenao Intergrupos &e2is%es de !arceiros Perenciamento de &e0uisitos - &M !lane@amento do !ro@eto de $oftBare : !! N.el 2 1 BRe$et.elB Acompan.amento e $uper2iso do !ro@eto de $oftBare - !M# Perncia de $ubcontratao de $oftBare : $AM Medio e AnAlise - MA Parantia da Nualidade de $oftBare : !!NA Perenciamento de #onfigurao de $oftBare : #M N.el 2 * BI&ici#lB Cnen.uma ^rea-#.a2e de !rocessoD
22
Kbser2a-se 0ue o N32el ) no possui ^reas-#.a2e de !rocesso Na 2erdade( o n32el VInicialV representa a ausncia de processos 7iz-se 0ue uma organizao estA funcionando no N32el + 0uando todos os ob@eti2os das ^reas-#.a2es de !rocesso do N32el + foram alcanados A maioria das organiza%es ainda estA buscando o N32el + A principal preocupao do N32el +( o n32el V&epet32elV( 1 a boa prAtica do gerenciamento de pro@etos 4ste n32el focaliza os processos aplicA2eis ao n32el do pro@eto K N32el H( por outro lado( preocupa-se com processos relacionados s ati2idades de engen.aria no Umbito da organizao K N32el - ol.a os processos com uma granularidade mais fina( oferecendo mensurao e feedbac] ao n32el do processo K N32el *( alcanado por uma pe0uena 0uantidade de organiza%es( focaliza a mel.oria cont3nua de uma organizao de classe mundial 7e2ido ao foco do N32el + no gerenciamento de pro@etos( 1 nas ^reas-#.a2e de !rocesso desse n32el 0ue 1 iniciada a aplicao da AnAlise de !ontos de 5uno As ati2idades e ob@eti2os rele2antes para cada ^rea-#.a2e de !rocesso do N32el + C 2ide tabela anteriorD esto em conformidade com o documento #M?R$4I=H-T&-+* do $4I"
funo na fase de re0uisitos de um pro@eto pode ser utilizada em estimati2as e para fixar uma baseline para gerenciar o aumento do escopo #onforme os re0uisitos mudarem( os pontos de funo podem ser usados para comunicar o taman.o das mudanas relati2as ao taman.o do pro@eto
24
13
13,9
Envolvimento do usurio
57,2
15,9
utros ! plane"amento apropriado, expectativas real#aitas, marcos do pro"eto atin$%veis, equipe competente, comprometimento, etc&
12,' Especi+ica,-es e requisitos incompletos 12,3 .udan,as de especi+ica,-es e requisitos (3,1 11,' utros ! +alta de suporte executivo, incompetncia tecnol/$ica, +alta de recursos, espectativas irreais, ob"etivos con+usos, "anelas de tempo irreais, etc&
26
requisitos incompletos
(3,9
11,( utros ! +alta de suporte executivo, expectativas irreais, mudan,as de especi+ica,2o e requisitos, +alta de plane"amento, caracter%sticas desnecessrias, +alta de $erenciamento de 3*, anal+abetismo tecnol/$ico, etc&
#om o intuito de diminuir os problemas relacionados ao pouco en2ol2imento dos usuArios e deficincia dos processos de definio e gerenciamento de re0uisitos( causadores dos impactos negati2os 0ue le2am ao atraso e mesmo ao cancelamento de pro@etos de softBare( torna-se necessArio aumentar a proximidade entre os usuArios e a e0uipe responsA2el pelo sistema 7iminuir esta distUncia significa" Aumentar a interati2idade entre todos a0ueles 0ue esto direta ou indiretamente interessados no pro@eto( por interm1dio de um processo de trabal.o 0ue pre2e@a a maturidade sucessi2a dos re0uisitos ao longo de cada fase do desen2ol2imentoG Aproximar as 2is%es dos usuArios e dos desen2ol2edores com relao aos re0uisitos a serem implementados no sistema
27
A+
MelG%ri#
% Pr%ce!!%
e S%ftF#re Atr#.7!
28
4m cada uma destas ati2idades so definidas sub-ati2idades 0ue e produtos 0ue as comp%em" Pl#&eE#r, A-ir, #riao de medidas( padr%es e coleta de dados Metas Kb@eti2os Necessidade de Informa%es 5atores #r3ticos de $ucesso !roblemas e Kportunidades
Ac%"$#&G#r, Acompan.ar o andamento f3sico e financeiro dos pro@etos e ser2ios ;erificao dos pro@etos com des2io de estimati2as de prazos ;erificao dos pro@etos com des2io de estimati2as de custos AnAlise de Impacto Ca2aliar as 2aria%es de 0ualidade( produti2idade e aspectos de custos dos processos de desen2ol2imento e gesto do softBare( em funo de mudanas no ambienteD AnAlise de Tendncias Ccomportamento futuro dos principais atributos do processo de plane@amento de pro@etos( desen2ol2imento de softBare e gesto de produtoD #omparao entre plataformas e tecnologias
Re#-ir, Incenti2ar R !remiar Treinar Alocar R &ealocar &ecursos Modelar o Ambiente de 7esen2ol2imento 4liminar os problemas antes deles te eliminarem
29
A implantao de uma Metodologia 0ue pode ser graficamente apresentada como a figura a seguir( possui 0uatro fases 0ue se interagem continuamente Isto 1( Aps a deciso( definio e Implantao de um processo de medio de softBare( o processo de definio dos indicadores 1 realizado de modo a atender as necessidades atuais de negcio !orem( esta necessidade no pode ser 2ista como uma ati2idade 0ue 1 feita uma Qnica 2ez As necessidade e2oluindo e no2os indicadores preciso ser criados A ?tilizao de dados .istricos para o plane@amento e controle do pro@etos 1 fundamental e a base 1 alimentada continuamente com os dados 0ue 2o sendo extra3dos dos pro@etos em andamento e dos finalizados
A partir da 9ase Listrica so extra3das informa%es baseadas nos indicadores para suportar o processo gerencial de mel.oria cont3nua !ortanto( os principais ob@eti2os da utilizao dos indicadores propostos so" Mel.orar a 0ualidade do processo de desen2ol2imento de softBareG Aumentar a produti2idade do processo de desen2ol2imento de softBareG Mel.orar a 0ualidade do softBare desen2ol2idoG Auxiliar gerentes a plane@ar e a controlar os pro@etos de softBareG !romo2er a mel.oria cont3nua do processo de softBare
30
!ara implantar a mel.oria cont3nua no processo de desen2ol2imento de softBare( 1 indispensA2el uma gerncia eficaz dos parUmetros 0uantitati2os do processo 0ue resultam em informa%es de controle <Metodologia para Mel.oria do !rocesso - #laudia Lazan C*D> !ortanto( para manter-se um processo de softBare sob controle de2e-se instituir um processo de medio eficaz( 2isando a coleta de dados para os indicadores( os 0uais sero utilizados para manter o processo sob controle ?ma organizao de2e identificar 0uais so as maiores Areas de riscos e focalizar as oportunidades de mel.oria para corrigir ou minimizar os fatores de risco( dando prioridade s mel.orias com base nos seguintes fatores estrat1gicos de sucesso( cr3ticos para a organizao na perspecti2a do negcio" <'KN4$( )==I> &eduo do tempo de entrega para o mercadoG &eduo dos custos do desen2ol2imento e manuteno do softBareG Mel.oria na preciso das estimati2as de custos e cronogramasG ?so otimizado de no2as tecnologiasG ?so eficiente de consultores e contratos de terceirizao A coleta de dados .istricos de desempen.o Ccronogramas( custo( 0ualidade e produti2idadeD de2e ser uma das primeiras a%es dentro do processo de mel.oria cont3nua com a finalidade de obter-se uma base de comparao ?tilizam-se os dados do processo tanto para analisA-lo 0uanto para modificA-lo no sentido de pre2enir problemas e mel.orar a eficincia 4sses dados .istricos daro subs3dios para a criao de indicadores de desempen.o financeiro( 0ualidade e produti2idade 0ue retratem o desen2ol2imento de sistemas de informao No esforo de implantao de uma no2a mentalidade 2oltada para a 0ualidade e produti2idade( no 1 admiss32el o desen2ol2imento de sistemas atra21s de EfeelingF( onde 0uest%es como" 0ual 1 a produti2idade da Area de informAtica( 0ual 1 a capacidade de produo( 0ual con@unto de ferramentas possibilita a maior produti2idade( 0uais so os indicadores de 0ualidade existentes( 0ual camin.o de2o adotar( desen2ol2er ou comprar um pacote e customizA-lo( so simplesmente deixadas de lado ou respondidas sem suporte de uma base 0uantificA2el
31
Medi%es operacionais de2em ser utilizadas a fim de permitir" a anAlise de tendncias de determinados indicadores( 0ue podem subsidiar a%es para re2erso ou sustentao dessas tendnciasG a anAlise de impactos na introduo de no2as tecnologias sobre a 0ualidade e produti2idade( 0ue pode auxiliar na deciso sobre 0uais combina%es de elementos de tecnologia garantem mel.ores resultadosG a anAlise de atributos( 0ue permite a comparao da 0ualidade e produti2idade entre plataformas( metodologias( Areas de aplicao( .abilidades t1cnicas de pessoas e assim sucessi2amente
32
H+
re0uisitos( ainda no .A o con.ecimento completo das caracter3sticas do produto 0ue permita a apurao de sua futura dimenso Nesse caso 1 necessArio estimar ;Arios modelos de estimati2as foram criados para fornecer m1tricas 0ue permitam atender com menor margem de erro s necessidades de comunicao e informao do pro@eto A anAlise de pontos de funo permite no s medir o taman.o do sistema em termos de funcionalidades fornecidas ao usuArio( mas tamb1m estimar seu taman.o em 0ual0uer fase do seu ciclo de 2ida Cmesmo 0ue os re0uisitos ainda no ten.am sido detal.adosD A manuteno de registros de outros pro@etos semel.antes( com a e2oluo das estimati2as iniciais at1 a medio final( permite um acompan.amento da relao entre a 0uantidade de pontos de funo estimados ou calculados nos 2Arios estAgios de con.ecimento do produto As medidas obtidas nos di2ersos momentos do pro@eto no s tm 2alor 0uando a2aliadas isoladamente( mas tamb1m 0uando relacionadas entre si Ao comparar a e2oluo do taman.o funcional durante a e2oluo de pro@etos passados( pode ser obtido um fator 0ue indi0ue o percentual de crescimento funcional entre essas di2ersas etapas Ao identificar pro@etos passados com caracter3sticas semel.antes ao 0ue se estA plane@ando( 1 poss32el a@ustar as estimati2as realizadas em fases iniciais #ontudo( taman.o em si tem pouco 2alor analisado de forma isolada 4le passa a ser rele2ante 0uando ser2e de base para responder s perguntas referentes a outros aspectos K plane@amento de pro@etos de sistemas en2ol2e e0uacionar um con@unto complexo de elementos( entre eles" Nuais produtos de2em ser desen2ol2idosG !or meio de 0ue ati2idadesG 4n2ol2endo 0uanto de esforoG Nuais profissionais sero alocadasG 7urante 0uanto tempoG Nuais riscos de2em ser identificados e contingnciados
33
7entre os di2ersos paradigmas 0ue a implantao de um programa de m1trica necessita 0uebrar estA a 0uesto da estimati2a de custo K cAlculo dos custos de um pro@eto re0uer o somatrio de um con@unto de custos das 2Arias ati2idades 0ue comp%em o processo de desen2ol2imento de sistemas de informao !ortanto( a ati2idade de padronizao do cAlculo de custos de pro@eto de softBare re0uer uma padronizao pr12ia de processo desen2ol2imento de softBare Al1m( disto 1 necessArio acreditar em um padro 0ue ainda tem uma margem de descon.ecimento por no ainda amadurecimento dentro da empresa
A #ombinao destas informa%es possibilita fornecer os nQmeros necessArios para a elaborao do cronograma do pro@eto
H+1+ Pr#C%! e C5!t%! D# %! $el%! P#tr%ci&# %re! e Alt# Ger0&ci# #&te! Me!"% e !er Defi&i % % Pr%8le"#,
A implantao de um processo de estimati2a de2e ser associado a uma mudana cultural do processo de oramento de desen2ol2imento de softBare No 1 poss32el dar preos a um produto sem antes ter uma id1ia de seu escopo e taman.o A alta gerencia de2e estar consciente 0ue para se ter uma id1ia de custo( um trabal.o m3nimo de2e ser realizado para o mapeamento do problema e assim( se reunir um con@unto de informa%es 0ue subsidie os cAlculos de custos e prazos
T na fase de implementao 0ue muitos !ro@etos de Mudana fracassam( apesar de ser recon.ecido a 6causa8 e de ter identificado a mel.or 6soluo8( a falta de metodologia ade0uada de 6implementao8 conduz ao fracasso de no atingir os resultados esperados !ortanto( algumas ati2idades podem ser plane@adas e executadas de modo a minimizar os riscos de fracasso na implantao" 4laborar um diagnstico claro da situao" /e2antar dados e informa%es com o maior nQmero de pessoas en2ol2idas no processo de mudana 4ntender o !ro@eto e seus ob@eti2os Alin.amento dos Kb@eti2os" A definio do escopo( especificao funcional e o resultado final dese@ado( de2endo ser 0uantificado na medida do poss32el 5ixar 4strat1gia" 4stabelecer a metodologia geral ou plano bAsico para se implementar a mudana 7efinir a pol3tica de utilizao de recursos internos e externos 5ortalecimento da #ultura Krganizacional" K desafio consiste na necessidade de construir uma no2a cultura eRou reforar a cultura existente #omprometimento das !essoas com os Kb@eti2os e 4strat1gia" K sucesso de tais mudanas depende da capacitao e preparao do pessoal( em todos os n32eis( para enfrentar os no2os desafios T preciso ousar( arriscar e ino2ar para 2encer A preparao do pessoal para mudana exige uma abordagem ino2adora 0ue demonstre( atra21s de 2i2ncia( como encarar o risco e desen2ol2er formas ino2adoras de trabal.o Identificar Ati2idades" $ubdi2idir o pro@eto como um todo em Vfases do trabal.oV ( passi2eis de serem gerenciadas e controladas A Vestrutura anal3ticaV de2e ser aplicada ao pro@eto de mudana Identificar &ecursos"
36
7eterminar os &ecursos .umanos dispon32eis para implementar as mudanas( analisando a 0ualificao( tempo de utilizao e 0uantidade re0uerida /e2antar tamb1m necessidades de recursos financeiros( materiais e e0uipamentos especiais Treinamento Ade0uado das !essoas" T necessArio dotar os programas de treinamento de conteQdo e metodologia( embasados em uma filosofia 0ue de2ol2a ao indi23duo a capacidade de pensar( a partir dos resultados da sua prpria experincia Isso implica num processo de aprendizagem 0ue 1 desen2ol2ido al1m da sala de aula( integrando t1cnicas e pensamento gerencial( intuio e intelecto( cincia e bom senso 4stabelecer Tempo para cada Ati2idade" #om base nos recursos( calcular o tempo de execuo de cada ati2idade 4stabelecer calendArio das ati2idades com datas programadas de in3cio e t1rmino &e2er Tudo" A@ustar as necessidades de prazo global com a disponibilidade de recursos( rea2aliar a lgica( refinar o plano 4m todas as fases( o gerenciamento eficaz dos aspectos culturais e .umanos 1 a c.a2e para o sucesso K desafio 1 conseguir integrar a Abordagem T1cnica da Implementao com o 7esen2ol2imento das #ompetncias Lumanas
37
J+
I&fl50&ci#
# Met% %l%-i#
e De!e&.%l.i"e&t% e
V<ic:ed $roblems, =ighteous ,olutions- A +atalog of Modern ,oft7are Engineering $aradigmsV C!rentice-Lall( )==,D CV!roblemas !er2ersos( $olu%es #orretas" ?m #atAlogo de !aradigmas Modernos de 4ngen.aria de $oftBareVD As metodologias le2es representam uma abordagem consciente para o in2estimento de tempo( din.eiro e recursos nas di2ersas ati2idades associadas ao desen2ol2imento !orerm( 0uanto pode ser considerado excesso de anAlise de re0uisitos( e 0uanto de2em ser considerados insuficientesW ?ma abordagem Vle2eV para os re0uisitos poderia consistir de documentar cada um dos re0uisitos Cnormalmente centenasD associados a um pro@eto de desen2ol2imento com uma Qnica frase sucinta ?ma abordagem Vm1diaV seria documentar cada um com um parAgrafo de texto ?ma abordagem VpesadaV exigiria modelos ?M/ detal.ados( defini%es de elementos de dado e descri%es formais dos Vm1todosV associados a cada ob@eto A escol.a entre uma abordagem le2e ou pesada para os re0uisitos pro2a2elmente sofrerA forte influncia da presso corporati2a relati2a ao V time to mar:etV Ctempo para a entrega do produtoD 7a mesma forma( a taxa de rotati2idade dos empregados 1 um fator" uma das @ustificati2as para a existncia de um processo formal de desen2ol2imento de softBare 1 0ue um documento detal.ado descre2endo os re0uisitos( o design e o cdigo irA diminuir o caos se os principais desen2ol2edores sa3rem no meio de um pro@eto Ao mesmo tempo( se por um lado os sistemas dos anos I, e J, tin.am uma 2ida Qtil esperada de uma ou duas d1cadas( tal2ez uma empresa Vponto-comV este@a disposta a assumir um compromisso formal de 0ue suas aplica%es de e*business existiro durante apenas um ano( para depois serem completamente reescritas $e for esse realmente o caso( e se a aplicao da prxima gerao for completamente diferente da atual( serA 0ue farA sentido seguir uma abordagem pesada( apenas por0ue 1 um pr1-re0uisito para alcanar o n32el H do $4I-#MMW Igualmente( 0uanto formalismo e rigor so apropriados para as fases de design e testeW Nue 0uantidade de documentao 1 apropriada( com relao ao preenc.imento de fol.as de tempo Ctime sheetD( relatrios de progresso( atas de reunio e outras ati2idades normalmente associadas ao gerenciamento de um pro@eto : especialmente para pro@etos 0ue duram apenas uma semanaW 4ssas perguntas sempre
39
foram rele2antes( mas as respostas 0ue sempre aceitamos como estrat1gias corporati2as precisam ser reexaminadas de tempo em tempo( pois os parUmetros de custoRbenef3cio mudam( assim como a tecnologia e os desen2ol2edores de softBare As metodologias le2es tamb1m reexaminam as suposi%es 0ue temos feito( .istoricamente( a respeito de in2estir recursos em anAlise de re0uisitos e na mel.oria de processos 4m )=J)( o li2ro V ,oft7are Engineering EconomicsV CVA 4conomia da 4ngen.aria de $oftBareVD de 9arrO 9oe.m forneceu-nos a surpreendente re2elao de 0ue( se um erro fosse cometido na fase de anAlise de um pro@eto( seria ), 2ezes mais barato identificA-lo durante a essa fase( do 0ue permitir 0ue ele fosse detetado somente na fase de design !or1m( 9oe.m fez uma suposio 0ue pode no ser 2erdadeira na primeira d1cada do no2o milnio" o crescimento dos nQmeros 1 rele2ante somente se for poss32el identificar o defeito na fase do ciclo de 2ida na 0ual ele ocorrer No ambiente de .o@e( .A muitas situa%es nas 0uais isso no 1 poss32el Nuando 9ill Pates sentou-se para formular os re0uisitos para o >nternet E4plorer( tal2ez ele ten.a dito( V5aa-o exatamente como o ?etscape ?avigator( por1m ainda mel.or8 4( tal2ez( Marc Andreesen da ?etscape ten.a pensado" V5arei o ?avigator como o Mosaic( por1m ainda mel.orV Mas o 0ue pensou Tim 9erners ao criar a 2erso inicial da <orld <ide <eb e a primeira 2erso( grosseira( de um bro7serW K 0ue adiantaria para ele escre2er re0uisitos detal.adosW 7e maneira similar( os defensores das metodologias pesadas dizem 0ue( se um defeito for encontrado durante o desen2ol2imento( a culpa no de2eria ser atribu3da ao indi23duo 0ue o criouG ao in21s disso( tal fato de2eria conduzir ao exame do processo 0ue permitiu 0ue o defeito acontecesse !or1m( mais uma 2ez( existe uma suposio fundamental : isto 1( a Qnica razo pela 0ual 2ale a pena in2estir recursos para identificar a fal.a em um processo 1 por0ue pretendemos utilizA-lo no2amente : por0ue nosso prximo pro@eto serA suficientemente parecido com o anterior( de forma 0ue poderemos usar o mesmo processo Agora( as coisas esto mudando to rapidamente( 0ue no .A garantia de 0ue o pro@eto Nb) terA 0ual0uer semel.ana com o pro@eto NG assim sendo( o processo de ontem pode ter de ser substancialmente modificado para ser usado aman. 4nto( tal2ez no 2al.a a pena realizar o esforo
40
para consertar nada 0ue no se@a uma grande fal.a no processo( pois os respecti2os detal.es sero Qteis apenas para um Qnico pro@eto Naturalmente( .A circunstUncias sob as 0uais poderemos continuar a depender dos antigos e fundamentais princ3pios da engen.aria de softBare e 0ue podem @ustificar uma abordagem metodolgica pesada 7e2emos nos perguntar( toda2ia( se as suposi%es sub@acentes a esses princ3pios ainda so 2Alidas !ara muitos dos pro@etos de .o@e( as suposi%es sub@acentes precisam ser modificadas( e as metodologias le2es constituem a mel.or abordagem em termos de eficAcia e custos T importante destacar 0ue o processo de estimati2a re0uer padronizao( re0uer 3ndices de produti2idade aplicados a estes padr%es A metodologia de desen2ol2imento se@a ela para desen2ol2imento rApido( se@a para outro tipo de desen2ol2imento de2e ser padronizada e as informa%es para serem armazenadas na base .istrica de estimati2as de2em ser compat32eis com os m1todos de desen2ol2imento adotados pela empresa
no2as funcionalidades 0ue foram negligenciadas ou 0ue surgiram aps a fase de definio de re0uisitos 4ste tipo de re0uisito tem o potencial de influenciar no crescimento da espiral de re-trabal.o do pro@eto No momento 0ue o pro@eto atinge a etapa de teste( a percentagem relati2a de re0uisitos con.ecidos e descon.ecidos cresce dramaticamente K desafio das e0uipes de desen2ol2imento 1 maximizar o nQmero e a clareza dos re0uisitos con.ecidos nas etapas iniciais do pro@eto( bem como gerenciar e controlar o impacto dos re0uisitos descon.ecidos 0uando surgirem 5erramentas e metodologias para formalizar os re0uisitos podem a@udar na maximizao do con.ecimento nas etapas iniciais do pro@eto( permitindo uma estimati2a mais acurada do pro@eto ?sando uma analogia com a construo de uma casa( 0uando mais detal.ada e completa for a planta baixa( mais acuradas podero ser as estimati2as do pro@eto Nuando um pro@eto gasta o tempo necessArio para certificarse de 0ue seus re0uisitos esto bem definidos e completos Cambos #on.ecidos e 7escon.ecidos( >mprevisveisD( 1 o mesmo 0ue garantir 0ue a planta baixa este@a completa antes 0ue o modelo final se@a desen.ado e 0ue as funda%es da casa se@am iniciadas Ks softBares de alta 0ualidade surgem da maximizao do nQmero de re0uisitos con.ecidos nas etapas iniciais do pro@eto e da gerncia do impacto dos re0uisitos descon.ecidos 0uando finalmente tornam-se con.ecidos
43
L+
orientada a ob@etos( 1 c.amado Vcasos de usoV Cuse casesD e pode ser aplicado maioria dos pro@etos de desen2ol2imento ?m #aso de ?so resume( em termos do usuArio de negcio( uma Vunidade de trabal.oV lgica e completa 0ue a aplicao pode suportar( sem referncia a como a funo serA implementada Ks casos de uso descre2em a funcionalidade dos re0uisitos do softBare( e traduzem naturalmente o 0ue a maioria dos praticantes considera como o ob@eti2o de uma anAlise orientada a ob@etos T importante notar( contudo( 0ue embora os casos de uso se@am mais comumente associados ao desen2ol2imento orientado a ob@etos( a abordagem KK no 1 pr1-re0uisito para o desen2ol2imento dos casos de uso ?ma das maneiras mais populares de documentar os re0uisitos de softBare cai facilmente dentro do desen2ol2imento de casos de uso Trata-se da I444 $oftBare &e0ueriments $pecification C4specificao de re0uisitos de $oftBare C$&$DD" I444 )H,( largamente usada pelo go2erno e pela indQstria dos 4?A #ada especificao na $&$ de2eria ser ligada ao elemento do pro@eto 0ue a referencia( ao segmento de cdigo 0ue a implementa( e aos casos de teste 0ue o 2erificam( utilizando uma matriz de rastreabilidade de re0uisitos <)I> A importUncia de usar a especificao de re0uisitos de $oftBare C$&$D 1 0ue se descre2e o 0u o softBare irA fazer( sem referncia ao como as fun%es sero implementadas #om a $&$( os casos de uso podem ser claramente documentados e os casos de teste podem ser mapeados para especificar os re0uisitos ?m grupo de cenArios ou casos de uso so desen2ol2idos( para a@udar a identificar os ob@etos e descre2er o comportamento do sistema ?ma 2ez 0ue o #aso de ?so 1 conclu3do( 1 poss32el utilizar o #aso de ?so para obter a interao entre os ob@etos( as mudanas de estado contidas dentro do #aso de ?so( e os re0uisitos funcionais ou de dados contidos no #aso de ?so 4xemplos de casos de uso incluem"
44
5uncionalidades re0ueridas para depositar fundos em uma conta bancAria ;erificar 0ue o limite do carto de cr1dito no foi excedido para um pedido de compra !rocessar uma transao de um carto de cr1dito para uma 2enda 7eterminar 0ual rota de uma lin.a a1rea entre duas cidades tomarA o menor tempo ?ma 2ez 0ue os re0uisitos do sistema con.ecidos e associados aos casos de
uso se@am documentados( o resultado 1 essencialmente uma planta baixa do 0ue o softBare de2e fazer T importante( neste ponto( 0uantificar o taman.o dos re0uisitos da sua planta baixa( usando unidades ob@eti2as de medio de softBare( tais como !ontos de 5uno Muitos modelos de estimati2as de pro@etos( tais como o produto $/IM da N$M de /arrO !utnam( o produto !NM!lus da ?nion !acific Tec.nologies( o _noBledge!/AN da Artemis( o #K#KMKII de 9arrO 9oe.m e o 4stimate !rofessional do $oftBare !roducti2itO #enter( iro aceitar o ponto de funo como uma unidade padro de medida de taman.o de um pro@eto #omo todas estes 2endedores de solu%es e outros especialistas da indQstria iro atestar( mensurar o taman.o dos re0uisitos do usuArio 1 to cr3tico para a gerncia e o controle do pro@eto( 0uanto identificar os re0uisitos ?m #aso de ?so 1 um diAlogo entre um usuArio e o sistema computacional( com o ob@eti2o de satisfazer uma necessidade espec3fica do usuArio ?m #aso de ?so coloca o foco do esforo de desen2ol2imento de softBare na0uilo 0ue o usuArio precisa 0ue se@a feito para 0ue seus ob@eti2os se@am alcanados #asos de uso descre2em como os usuArios interagem com um sistema computacional Normalmente uma tela precisa ser dissecada em transa%es Centradas externas( consultas externas e sa3das externasD Isto 1( 0ual0uer tela espec3fica pode conter uma consulta externa Capresentao de informa%esD( sa3das externas Cdados deri2adosD e entradas externas Catualiza%es de ar0ui2osD Ks casos de uso fornecem as partes @A dissecadas CpassosD ?m passo pode ser uma transao( um elemento de dado ou nen.um dos dois #ada passo precisa ser analisado para determinar se 1 uma transao ou elemento de dado
45
T importante re2er o 2ocabulArio utilizado( procurando pala2ras tais como sal2ar( atualizar( @untar( calcular e assim por diante
mas( na prAtica( um Qnico #aso de ?so pode descre2er mais do 0ue uma funcionalidade lgica do usuArio As pessoas 0ue utilizam !ontos de 5uno encontraro maior facilidade para contar !ontos de 5uno a partir da documentao de casos de uso( diferentemente do caso das misturas de formas de documentao 0ue costumam ser encontrados K taman.o do pro@eto de softBare em !ontos de 5uno 0uantifica o taman.o dos re0uisitos do usuArio e pode ser usado em con@unto com as 2ariA2eis f3sicas e tecnolgicas( dentro de um modelo de estimati2as( para estimar o esforo( durao( defeitos e outros aspectos do pro@eto de softBare
47
N+
funo e o esforo associado ao desen2ol2imento de softBare Prande parte da dificuldade no estabelecimento desta relao 1 de2ida ao fato de ser examinado apenas o relacionamento entre os pontos de funo e o ciclo de 2ida inteiro do softBare A associao entre pontos de funo e caso de testes de2e passar inicialmente por uma padronizao da ati2idade de testes realizada pela empresa No 1 poss32el a aplicao de 3ndices de produti2idade em ati2idades 0ue no este@am padronizadas
&egression test" Tem como ob@eti2o 2erificar se as corre%es solicitadas foram executadasG Installation test" 4ste teste 1 executado 0uando da instalao do sistema e tem como ob@eti2o 2erificar se o sistema ao ser implantado no apresenta problemas 0uando em funcionamento no ambiente de produo
#rit1rios para a2aliao dos resultados( ou se@a( o 0ue de2erA ser atendido para 0ue se considere um teste satisfatrioG 7ocumentao a ser produzida K resultado desta fase de2e ser um plano completo com todas ati2idades
funcionalidade de uma funo de negcio para um cenArio espec3fico 4le de2e descre2er passo a passo como a funo de2e ser testada( contendo inclusi2e" identificao do Test #ase e da funo a ser testada( data de criao e de execuo( autor( executor( resultado esperado e obtido( input necessArio( condio de restrio( fatores de complicao( condi%es a serem testadas( m1todo de 2alidao e se0uncia de execuoG 4n2ol2er 79A e A7 para 0ue auxiliem a construo de acessos otimizados ao 9anco de 7ados T de fundamental importUncia a anAlise dos acessos ao banco( como por exemplo( a2aliao de necessidade de criao R alterao R excluso de 3ndices( alterao R unio R di2iso de tabelas ou at1 mesmo( a@ustes necessArios no ambiente do bancoG Testar exausti2amente cada funo( usando a massa de dados constru3da e os VTest #aseV criadoG &egistrar no VTest #aseV todos os fatos ocorridos nos testes( independente de terem sido bem sucedidos ou noG A2aliar os resultados Cesperado x realizadoDG $olicitar a re2iso do resultado dos testes pelo Prupo de Nualidade A execuo dos testes unitArios 1 um procedimento c3clico Cteste( correo( teste( correo( teste D ?m bom plane@amento( eficincia e dedicao dos responsA2eis pelas corre%es e a@ustes necessArios e a utilizao correta de VTest #aseV( sero fatores cr3ticos de sucesso para se obter ao final desta fase um produto ),,X testado e corrigido Ao final dos testes unitArios de2e-se fazer uma reunio formal para apro2ao dos resultados
A2aliar a possibilidade da participao de pessoas independentes C fora da e0uipe do pro@etoD para a realizao dos testesG A2aliar e 2alidar o plano de testes e o resultado dos testes unitArios #aso se@am necessArios a@ustes e altera%es( executA-las e 2alidA-las com o Perente do !ro@etoG 4laborar Test $cript de modo a grupar Test #ase( para cada uma das se0uncias operacionais 0ue o sistema serA operacionalmente utilizadoG Test $cript descre2e como um con@unto de Test #ase de2e ser ordenado( de modo a representar o encadeamento operacional de cada uma das se0uncias lgicas de negcios 4le de2e conter inclusi2e" identificao do Test $cript( responsA2el pela criao( execuo e 2alidao( data de criao e de execuo( fluxo operacional a ser testado( ob@eti2o( informa%es sobre a operao( identificao dos VTest #aseV en2ol2idos( pr1-re0uisitos( dados de teste( resultado esperado e obtido( forma de 2alidao e documentao em anexo como por exemplo( relatrios emitidosG
$elecionar e preparar pre2iamente os dados de modo 0ue todas as situa%es poss32eis( possam ser testadasG ;erificar se todos os ar0ui2os R tabelas a serem utilizados @A foram criados( carregados e esto dispon32eis Ao utilizar ar0ui2os R tabelas de outros sistemas( 2erificar se o conteQdo atende aos testesG
$olicitar a Area de 79A a criao de acessos conforme os perfis dese@adasG !rocurar testar o sistema em mdulos e exausti2amente utilizando-se dos formulArios de VTest #aseV e VTest $criptV elaboradosG 7ocumentar todas as ocorrncias nos formulArios de VTest #aseV e VTest $criptV( reportando a 0uem de direito ;erificar a aderncia dos resultadosG Kbter o parecer do Prupo de &e2iso do !ro@eto R Prupo de Nualidade sobre os testes de programas cr3ticosG
4sta fase tem como ob@eti2os desen2ol2er as ati2idades relacionadas com o teste integrado e teste de aceitao do sistema #orresponde ao n32el f3sico de concepo para o n32el f3sico de operao A execuo desta fase de2e suceder a apro2ao formal dos testes unitArios e de sistema Isto 1( o teste integrado e de aceitao do sistema s podero ser realizados com as fun%es ),, X implementadas e testadas As ati2idades pre2istas para esta etapa so" 4laborar o plano para teste integrado e teste de aceitao Ks formulArios de Test #ase e Test $cript utilizados( so tamb1m perfeitamente 2Alidos para esta etapaG #aso se@a 2iA2el( estes testes podero ser realizados no prprio local do usuArio de modo a 2erificar adicionalmente( se o sistema opera na0uele ambienteG A2aliar as necessidades de recursos de .ardBare R softBare R .umanos( armazenamento( configurao do processador e rede de comunicaoG 4stimar esforos e custos para execuo dos testesG 7efinir os crit1rios de aceitao do usuArio( do ciclo de testes( descre2er os dados para testes( teste de auditoria( roteiros de testes e infra-estrutura necessAriaG 4laborar a massa de dados completa( 0ue se@a capaz de cobrir todos os casos 0ue comp%em os re0uisitos de negcio do usuArio 4sta massa de dados @A de2e ter sido elaborada com o intuito de atender s necessidades dos testes anterioresG 4laborar o cronograma inicial contemplando todas as ati2idades necessAriasG 4xecutar os mesmos tipos de testes realizados durante o teste do sistema A diferena entre estes dois testes 1 o ob@eti2o( pois no teste do sistema busca-se descobrir defeitos en0uanto 0ue no teste de aceitao( busca-se demonstrar tamb1m 0ue os crit1rios de aceitao foram atendidosG K roteiro de2e tamb1m ser executado le2ando em considerao o 2olume( desempen.o( controle d segurana de acesso( recuperao R contingnciaGG Apro2ar os resultados dos testes de aceitao em reunio formalG
Na execuo da fase de testes o comprometimento de todos os en2ol2idos CusuArio( gerncia( grupo de re2iso de 0ualidade( desen2ol2edor( etc D( 1 fator cr3tico de sucesso para a obteno de um produto de 0ualidade dentro do prazo e custo estabelecido Alguns pontos extras podem ser considerados 0uando do plane@amento( especificao e execuo dos testes" T extremamente incon2eniente relatar o mesmo erro 2Arias 2ezes e 2erificar 0ue a correo no estA sendo realizada conforme solicitada ou 0ue no foi testada corretamente antes de ser disponibilizada K implementador tem obrigao de testar exausti2amente uma correo solicitada antes de entregA-la ao responsA2el pelos testes Isto influencia diretamente no bem estar da e0uipe do pro@eto e nos 3ndices de produti2idades obtidos 4studos e registros .istricos relatam 0ue considerando-se as produti2idades realizadas em um pro@eto de sistema em termos de nQmero de pontos de funo por unidade de tempo( os percentuais de tempo gasto na fases de um pro@eto( podem ser em m1dia assim distribu3dos<)M>" o +X o +)X o *+X o +,X o *X 4laborao 9usiness #ase 7efinio dos &e0uerimentos de Negcios Implementao 53sica das 5un%es Testes Implantao
Kbser2a-se no acima exposto( 0ue o tempo de teste em relao ao tempo total do pro@eto( corresponde em m1dia a +, X Aplicando-se este percentual ao custo total de desen2ol2imento de um pro@eto( desconsiderando-se o custo de correo dos problemas encontrados( nota-se 0ue esta parcela e0ui2ale a uma 0uantia razoA2el de din.eiro Nuando se incorpora os custos relati2os correo dos erros encontrados( a parcela relati2a a fase de testes como um todo( seria somente menor 0ue a de implementao f3sica das fun%es 4m alguns casos( podemos ter algo em torno de )RH do custo de desen2ol2imento do sistema <)M>
54
7ocumente em ata e formulArios espec3ficos todos os passos e fatos ocorridos durante os testes K formalismo adotado no de2e ser considerado como um processo burocrAtico 4xistem 2Arios benef3cios obtidos diretamente com a formalizao( como por exemplo" faz com 0ue as pessoas prestem mais ateno no 0ue estA sendo realizado( possibilita rastreabilidade das condi%es de erro( permite definir indicadores de erros como nQmero de erros por ponto de funo( alem de ser2ir como .istrico para outros pro@etos
!or Qltimo( repetindo uma frase @A dita 2Arias 2ezes neste documento( 6no 1 poss32el a aplicao de 3ndices de produti2idade em ati2idades 0ue no este@am padronizadas8
55
K Qnico camin.o para ele2ar a 0ualidade do softBare em produo 1 se e somente se todo o softBare migrado para a produo for de 0ualidade superior ao softBare atualmente em produo T importante entender tanto os defeitos potenciais do softBare de produo( 0uanto os defeitos potenciais do no2o softBare !ode ser imposs32el estimar o nQmero de defeitos embutidos no softBare atualmente em produo( mas 1 poss32el estimar o potencial de defeitos para cada no2a 2erso do softBare A diferena nas 0uantidades real e estimada dos casos de teste 1 um bom indicador do potencial de defeitos Taxas de produti2idade inconsistentes entre diferentes pro@etos podem ser uma indicao de 0ue no estA sendo seguido um processo padro A produti2idade 1 definida como a razo entradas R sa3das No caso de softBare( a produti2idade 1 definida como a 0uantidade de esforo re0uerida para entregar um certo con@unto de funcionalidades Cmedidas em pontos de funoD
56
*O+ M#$e#"e&t%
e C#!%!
e U!% e
P%&t%! e F5&'(%,
$e todos os re0uisitos do sistema forem mapeados em casos de teste( e todos os casos de teste forem executados( seria razoA2el supor 0ue o sistema alcanaria os resultados dese@ados 4mbora este ob@eti2o possa ser alcanado atra21s do uso de modelos de Krientao a Kb@etos( a con2erso dos modelos para uma linguagem simples pode reduzir a ambig`idade e a@udar a definir claramente os re0uisitos do sistema Ks casos de uso fornecem tal grupo de documentos( escritos em uma linguagem simples Ks casos de teste podem ser mapeados para componentes da AnAlise de !ontos de 5uno e( atra21s do uso de modelos de estimati2as( uma estimati2a do tempo para os testes pode ser deri2ada Algumas empresas utilizam como medida padro considerar o percentual da funcionalidade 0ue foi testado Cem !5D( di2idido pelo taman.o total do pro@eto $empre 0ue 1 introduzida alguma alterao de escopo no pro@eto( ou 0ue so identificados no2os re0uisitos Cpre2iamente classificados como 'esconhecidos, >mprevisveisD( no2as documenta%es de $&$ e casos de uso de2em ser elaboradas( para facilitar a medio das altera%es em !ontos de 5uno Inserindo o taman.o re2isto do pro@eto em !ontos de 5uno dentro do modelo de estimati2as( o impacto do escopo da alterao em termos de recursos( plane@amento e oramento poderA ser propriamente estimado $e as altera%es de escopo forem subse0`entemente aceitas no pro@eto( os casos de uso( no2os ou re2istos( de2eriam ser escritos( os detal.es dos !5 2erificados( e casos de teste desen2ol2idos para abordarem as funcionalidades no2as ou re2istas A importUncia dos casos de teste para as funcionalidades no2as ou re2istas 1 to cr3tica para a 0ualidade do produto desen2ol2ido 0uanto os casos de teste originais Perenciar as altera%es de softBare desta forma 1 similar maneira como uma construo de um pr1dio 1 gerenciada -- solicita%es de alterao so dimensionadas em termos do seu impacto no pro@eto As modifica%es de recursos e custos so
57
estimadas e ento uma deciso 1 tomada( sobre como e de 0ue forma fazer K sistema de desen2ol2imento de pro@etos resultarA numa maior 0ualidade de softBare 0uando as altera%es introduzidas durante o pro@eto forem plane@adas( estimadas e controladas( e no mais c.egarem com a ordem VfaamV Atra21s de casos de uso( especifica%es de re0uisitos padronizadas( casos de teste e !ontos de 5uno( os pro@etos de softBare podero maximizar o nQmero de re0uisitos Vcon.ecidosV nas etapas iniciais do ciclo de desen2ol2imento A utilizao de casos de uso re0uer 0ue a e0uipe de pro@eto aumente o tempo gasto nos estAgios iniciais do desen2ol2imento do softBare( plane@ando e garantindo 0ue os re0uisitos este@am completos( bem definidos e documentados A contagem de !ontos de 5uno fre0`entemente mostrarA ausncia de clareza nos casos de uso( podendo a@udar a eliminar a ambig`idade onde a mesma se tornar aparente( por0ue a metodologia de !ontos de 5uno 2incula os repositrios de dados Cob@etos( entidadesD com a sua manipulao e uso dentro das fun%es do softBare Ks casos de teste baseados em casos de uso garantem 0ue os testes se@am realizados para cada caso de teste do usuArio e( 0uando os casos de uso forem desen2ol2idos baseados em $&$( os mesmos iro garantir 0ue todos os casos de uso apontaro para os re0uisito originais do usuArio Atra21s da documentao das altera%es medida 0ue elas ocorrerem atra21s de $&$( casos de uso( casos de teste e( ainda( com a atualizao da contagem do pro@eto em !ontos de 5uno( a documentao e o controle do desen2ol2imento do pro@eto tornar-se-o mais fAceis K impacto das altera%es introduzidas posteriormente no ciclo de 2ida do desen2ol2imento pode ser controlado antes 0ue ciclos de retrabal.o se@am alimentados e o 0ue pro@eto deri2e para fora do controle
58
A definio do I5!?P diz Vde fora da fronteira do aplicati2oV #omo a mesma definio afirma 0ue Vos dados processados mant1m um ou mais A/I8( fica claro 0ue a informao 2em de fora para dentro da fronteira Isto 1 importante por uma s1rie de raz%es 5ica claro( a partir da definio mel.orada( 0ue 2alores calculados armazenados so elementos de dados para a entrada externa( mas 2alores calculados no armazenados no so elementos de dados para a entrada externa Isto 1 2erdade por0ue o 2alor calculado 0ue no 1 armazenado no atra2essou a fronteira Cde fora para dentroD e no mant1m um A/I 4m um ambiente P?I ou KK 1 comum 0ue a informao se mo2a de uma @anela para a prxima K mo2imento de dados em si no 1 considerado uma entrada externa( pois no atra2essou a fronteira da aplicao Cde fora para dentroD e no mant1m um A/I
$e a informao 1 en2iada para fora da fronteira( 1 seguro dizer 0ue ela esta2a dentro da fronteira #omo a informao esta2a dentro da fronteira( ela de2e estar contida em um ar0ui2o lgico interno CA/ID ou ar0ui2o de interface externa CAI4D
61
utilizando aplica%es Internet para implementar funcionalidade essencial do negcio A utilizao de pontos de funo com este tipo de aplicati2o apresenta alguns problemas espec3ficos K primeiro deles 1 a fronteira K segundo 1 a identificao das transa%es( dos ar0ui2os lgicos internos eRou ar0ui2os de interface externa A fronteira para um aplicati2o Internet 1 definida de maneira semel.ante utilizada para aplicati2os tradicionais No caso de aplicati2os tradicionais( a fronteira no 1 desen.ada simplesmente ao redor da interface com o usuArio ou de um grupo de telas( mas do aplicati2o inteiro #om fre0`ncia os aplicati2os Internet so apenas extens%es de aplicati2os existentes LA uma tendncia a se 6criar8 um aplicati2o para a extenso Internet( mas esta abordagem no 1 correta Transa%es Centradas externas( sa3das externas( consultas externasD seguem as mesmas regras bAsicas utilizadas em aplicati2os con2encionais $e uma entrada externa no for uma entrada de controle( ento de2erA atualizar um ar0ui2o lgico interno ?m exemplo de uma entrada externa seria algo como 6submeter formulArios8 Ks formulArios submetidos podem ser um texto .tml atualizado com informa%es !or exemplo( eu ti2e uma s1rie de pes0uisas em meu site na Beb A cada resposta( a pes0uisa sur2eO .tm era atualizada 4ste 1 um exemplo de uma entrada externa As informa%es atra2essaram a fronteira de fora para dentro e um ar0ui2o lgico interno foi mantido Alguns aplicati2os permitem a atualizao online de ar0ui2os temporArios Tais ar0ui2os temporArios so utilizados para atualizar ar0ui2os permanentes 4mbora a entrada externa este@a atualizando um ar0ui2o temporArio( este ar0ui2o temporArio 1 logicamente o mesmo 0ue o ar0ui2o permanente Isto significa 0ue o ar0ui2o temporArio 1 uma imagem espel.o ou subcon@unto do ar0ui2o permanente 7a mesma forma 0ue uma consulta externa( uma sa3da externa pode ter e com fre0`ncia tem um lado de entrada As informa%es so lidas de um ar0ui2o lgico interno ou de um ar0ui2o de interface externa 7a mesma forma 0ue em uma sa3da externa( as informa%es em uma consulta externa precisam ser lidas de ar0ui2os lgicos internos ou ar0ui2os de interface externa
63
$ites da Beb desen2ol2idos com a utilizao de 5ront!age e outras ferramentas de .tml podem ou no conter funcionalidade A c.a2e 1 entender onde as informa%es residem e como so processadas A grande maioria dos sites Beb nada mais so do 0ue apenas menus e texto
64
$a3das externas podem transmitir informa%es textuais( grAficas ou eletrSnicas A2alia-se uma sa3da externa combinando-se o nQmero de tipos de ar0ui2os referenciados e o nQmero de tipos de elementos de dados Qnicos Cno recursi2osD 4lementos grAficos so contados da mesma maneira 0ue as $4 textuais( isto 1( o elemento grAfico 1 a2aliado com base no nQmero de T47 CTipos de 4lementos de 7adosD e no nQmero de &TA C&eferncias a Tipos de Ar0ui2osD Na 2erdade( informa%es recursi2as so facilmente identificA2eis em um elemento grAfico( sendo s 2ezes mais dif3ceis de 2isualizar em um relatrio textual #onsultas 4xternas so muito comuns em aplicati2os P?I #onforme explicado anteriormente( #4 no cont1m dados deri2ados ou calculados ?ma caixa de listagem dinUmica Cdrop doBn boxD 1 um exemplo de #onsulta 4xterna T simplesmente uma leitura de um ar0ui2o( como no caso de uma caixa de listagem oferecendo uma lista de nomes de pa3ses A caixa de listagem seria contada como uma #4( caso os nomes dos pa3ses esti2essem contidos em um ar0ui2o lgico interno( ou em um ar0ui2o de interface externa ?ma consulta serial 1 uma consulta seguida por outra !or exemplo( o usuArio pode escol.er um nome de pa3s de uma caixa de listagem Cprimeira #4D( o 0ual pode ser usado como entrada para uma segunda #4( 0ue traz os detal.es do pa3s selecionado 4m um menu dinUmico( como( por exemplo( o do cord( so mostrados os Qltimos ar0ui2os 0ue foram abertos !ode-se facilmente concluir 0ue esta informao estA sendo lida de algum tipo de ar0ui2o interno !or essa razo( a informao 1 dinUmica K menu seria contado como uma consulta externa 4mbora o Manual do I5!?P diga explicitamente 0ue menus no so contados( neste caso fica claro 0ue o menu 1 dinUmico e se modifica A distino real 1 se o menu 1 dinUmico ou estAtico( isto 1( se o conteQdo da tela ou relatrio 1 dinUmico Clido de algum ar0ui2oD( ou estAtico ?ma 4ntrada 4xterna 1 o m1todo atra21s do 0ual as informa%es em um A/I so mantidas Cinclu3das( alteradas ou exclu3dasD Ks aplicati2os P?I costumam ter 4ntradas 4xternas precedidas por consultas seriais ?m usuArio pode selecionar um
65
nome de cliente de um listbox C)e #4D( sendo o nome utilizado como entrada para a +e #4( a 0ual retorna endereo( telefone( #4! e outras informa%es A partir deste ponto( o usuArio pode incluir( alterar ou excluir as informa%es do cliente CH 44D Neste caso( esta Qnica tela representaria + #4 e H 44 4ntradas de controle alteram o comportamento de um aplicati2o ou o conteQdo de um relatrio Na tela de controle 6#riar &elatrio8( o usuArio pode selecionar 0uais relatrios de2ero ser produzidos 4sta tela possui di2ersos tipos de elementos de dados" caixa de 2erificao( elemento grAfico( dimens%es( elementos( sub-itens e teclas de ao Nota-se 0ue o usuArio pode escol.er cada relatrio indi2idualmente 7e fato( cada relatrio 1 um ob@eto K relatrio gerado 1 uma combinao de di2ersos relatrios Cou ob@etosD #ada ob@eto tem 2Arios atributos #onsidera-se um aplicati2o escrito para um Qnico idioma T pro2A2el 0ue os cabeal.os de relatrios e descri%es textuais este@am todos codificados internamente nos programas( isto 1( o usuArio no consegue alterar dinamicamente os cabeal.os ou o texto Agora( considerando-se um aplicati2o 0ue ten.a sido desen2ol2ido com a pre2iso de mQltiplos idiomas Ks cabeal.os dos relatrios e as descri%es textuais sero todos lidos de ar0ui2os $e as sa3das externas esti2erem dispon32eis em mQltiplos idiomas( 2Arias coisas precisam ser consideradas !rimeiro pro2a2elmente de2erA .a2er alguma entrada de controle 0ue permitirA ao usuArio selecionar dinamicamente o idioma $egundo( .A uma &TA adicional( 0ue cont1m o texto no idioma selecionado Terceiro( o ar0ui2o interno lgico correspondente a este idioma 1 mantido atra21s de uma entrada externa Nuarto( .A mais elementos de dado no relatrio $e uma sa3da externa esti2er dispon32el em mais de um idioma( ento a mesma no serA considerada uma sa3da externa Qnica( mas serA mais complexa Cmais T47 e mais &TAD 9ot%es de &Adio so tratados como tipos de elementos de dado 4m um grupo de bot%es de rAdio( o usuArio tem a opo de selecionar somente um boto de rAdio de cada 2ez( de modo 0ue um Qnico tipo de elemento de dado 1 contado para todos os
66
bot%es de rAdio contidos no grupo inteiro Na criao do relatrio 6Bebtrends8( os bot%es de rAdio 6+ 78 e 6H 78 representam apenas um Qnico elemento de dado 9ot%es de comando podem especificar uma ao de incluso( alterao( excluso ou consulta 7e acordo com as regras de contagem do I5!?P( cada boto de comando seria contado como um Tipo de 4lemento de 7ado CT47D correspondente ao por ele comandada !or exemplo( um simples aplicati2o para acompan.ar 7istribuidores poderia ter campos para Nome do 7istribuidor( 4ndereo( #idade( 4stado( #4!( Telefone e 5ax Isto representaria sete elementos de dado CI T47D e o boto de comando de incluso representaria o oita2o elemento de dado &esumindo( 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 CI campos mais o boto de comando de alteraoD e a entrada externa de excluso representa a Qltima entrada externa( com oito elementos de dado CI campos mais o boto de comando de exclusoD A apresentao de uma imagem grAfica 1 simplesmente mais um elemento de dado ?m aplicati2o de esto0ue pode conter dados a respeito de peas !ode conter nome da pea( fornecedor( taman.o( peso e incluir uma imagem es0uemAtica da mesma 4sta imagem 1 tratada como um outro elemento de dado ?m outro exemplo seria um mapa K mapa pode ser 60uente8( isto 1( conforme o mouse 1 mo2ido sobre o mapa( diferentes nomes de cidades so mostrados $e o usuArio clicar sobre um ponto espec3fico do mapa( aparecero detal.es a respeito da cidade selecionada $e os detal.es acerca de cada cidade esti2erem contidos em um ar0ui2o lgico interno( ou em um ar0ui2o de interface externa( os detal.es podero ser considerados uma consulta externa Muitos aplicati2os P?I tm um bOte de som anexado Isto representa um elemento de dado K nQmero de notas tocadas 1 simplesmente informao recursi2a $e o taman.o do bOte de som aumentar( ainda assim continuarA representando um Qnico elemento de dado $e o Lino Nacional for tocado durante dois ou 0uatro segundos( ainda assim teremos apenas um elemento de dado Nuanto mais tempo o Lino tocar( mais 6informao recursi2a8 estarA presente
67
?ma imagem fotogrAfica 1 um outro exemplo de elemento de dado ?m aplicati2o de recursos .umanos pode mostrar o nome do empregado( data de admisso( etc ( bem como uma fotografia do empregado A fotografia serA tratada da mesma forma 0ue o nome ou a data de admisso T uma outra informao a respeito do empregado A fotografia 1 armazenada e mantida como 0ual0uer outra informao a seu respeito LA trs tipos de mensagens geradas em uma aplicao P?I" Mensagens de 4rro( Mensagens de #onfirmao e Mensagens de Notificao ?ma mensagem de erro e uma mensagem de confirmao indicam 0ue um erro aconteceu( ou 0ue um processo foi ou serA completado ?ma mensagem do tipo 6!or fa2or informe o #4!8 seria um exemplo de mensagem de erro ?ma mensagem do tipo 6#onfirma a excluso do clienteW8 1 um exemplo de mensagem de confirmao Nen.um desses tipos de mensagem 1 tratado como uma $a3da 4xterna Qnica $o tratados como elementos de dado para a transao apropriada !or outro lado( uma mensagem de notificao 1 uma mensagem do negcio T a base para o processamento e para 0ue uma concluso se@a obtida !or exemplo( 2oc pode tentar retirar de um caixa automAtico mais din.eiro do 0ue o dispon32el em sua conta( recebendo a temida mensagem 6$aldo insuficiente para esta transao8 Isto 1 o resultado obtido a partir de informa%es lidas de um ar0ui2o a respeito de seu saldo atual( com uma concluso delas decorrente ?ma mensagem de notificao 1 tratada como uma $a3da 4xterna Mensagens de Notificao podem ser resultantes de processamento no 2isto pelo usuArio $e uma mensagem for criada para en2io a um pager em um dado momento( isso funcionarA como um alarme( isto 1( a .ora corrente serA comparada com a .ora pre2ista para a mensagem e( 0uando ambas forem iguais( a mensagem serA en2iada A mensagem de pager tem um Qnico elemento de dado( o texto da mensagem
Na 2iso orientada a ob@etos dos sistemas de softBare existe uma Qnica entidade( c.amada ob@eto( a 0ual representa tanto os dados 0uanto os procedimentos Ks ob@etos podem ser manipulados da mesma forma 0ue os dados #ontudo( assim como os procedimentos( os ob@etos tamb1m podem descre2er manipula%es ?m ob@eto 1 uma coleo de dados Catributos e propriedadesD e lgica funcional Cm1todosD Ks dados definem o estado do ob@eto e os m1todos( o seu comportamento LA dois tipos de m1todos" primeiro( os m1todos de interface( os 0uais oferecem um meio de comunicao com o ob@etoG segundo( os m1todos internos( 0ue criam comportamentos para o ob@eto( mas no so acess32eis de fora do mesmo K m1todo de interface pro2 uma forma clara e definida para comunicao com o ob@eto K m1todo interno precisa ser con.ecido apenas pelo pro@etista do ob@eto Ks usuArios do ob@eto precisam con.ecer A!4NA$ os m1todos de interface !ontos de 5uno medem softBare atra21s da 0uantificao da funcionalidade entregue ao usuArio( com base principalmente no desen.o lgico K termo usuArio final ou usuArio 1 fre0`entemente utilizado sem 0ue se especifi0ue de 0uem se trata No caso a0ui considerado( o usuArio 1 um usuArio sofisticado( algu1m 0ue entende o sistema de um ponto de 2ista funcional e 0ue pro2a2elmente fornece os re0uisitos ou efetua o teste de aceitao !ontos de 5uno tornam poss32el a mensurao do taman.o dos sistemas de informa%es de acordo com o 0ue o usuArio 2 e com o 0ue interage 4sta definio 1 semel.ante de m1todo de interface anteriormente apresentada Todos os m1todos internos existem para dar suporte a m1todos de interface Ks m1todos internos no so um fim em si( mas mecanismos 0ue apoiam o m1todo de interface em sua tarefa de entregar informa%es ao usuArio ?m m1todo 1 simplesmente a ao causada por uma mensagem M1todos so as coisas 0ue um ob@eto pode fazer M1todos operam sobre os dados contidos no ob@eto( modificando-os ou consultando-os Atributos nada mais so do 0ue caracter3sticas de um ob@eto #omo os ob@etos so definidosW ?m ob@eto 1 definido atra21s de sua classe( a 0ual determina tudo a seu respeito Kb@etos so instUncias de uma classe Tudo o 0ue
69
2oc precisa fazer 1 criar uma subclasse da classe original 4sta no2a classe .erda todas as mensagens existentes e( dessa forma( .erda todo o comportamento da classe original A classe original 1 c.amada a classe me( ou superclasse da no2a classe ?m pouco mais de @argo : diz-se 0ue uma subclasse 1 uma especializao da superclasse e( por outro lado( 0ue a superclasse 1 uma generalizao de suas subclasses Tudo isto 1 de fato independente da contagem de pontos de funo K importante 1 dirigir a ateno para a0uilo 0ue cada ob@eto realmente faz Ks ob@etos se comunicam uns com os outros atra21s de troca de mensagens ?ma mensagem cont1m um nome 0ue identifica seu destino( podendo conter tamb1m alguns argumentos ou parUmetros A mensagem( 0uando recebida( causa a execuo do m1todo apropriado no ob@eto de destino Na sua forma mais simples( uma mensagem 1 o mesmo 0ue uma c.amada de funo ou procedimento no sentido tradicional( uma 2ez 0ue o efeito l30uido 1 o mesmo Muitas 2ezes o ob@eto 0ue en2ia a mensagem 1 c.amado de ser2idor e o ob@eto 0ue recebe a mensagem 1 c.amado de cliente ?ma mensagem preparada e en2iada ao cliente geralmente 2ai se manifestar como $a3da 4xterna ou #onsulta 4xterna ?ma mensagem preparada e en2iada do cliente ao ser2idor 1 geralmente uma 4ntrada 4xterna ?ma mensagem 1 uma solicitao para 0ue um ob@eto execute uma se0`ncia de a%es atra21s de um ou mais m1todos c.amados ?m m1todo 1 uma unidade de lgica funcional contida em um ob@eto 7e acordo com os padr%es do I5!?P( uma transao de2e possuir lgica de processamento Qnica e 0ue represente a menor unidade de ati2idade significati2a para o usuArio do negcio #omo um m1todo 1 uma unidade de lgica funcional contida em um ob@eto( 1 bastante semel.ante definio de uma transao : de acordo com as &egras de #ontagem do I5!?P Nas aplica%es KK( somente dados persistentes so considerados Ar0ui2os /gicos Internos e no os dados transientes 7ados transientes so 2Alidos somente dentro de um programa ou transao( sendo perdidos 0uando o programa ou transao termina Na programao tradicional( este caso seria semel.ante ao de um ar0ui2o temporArio Ks dados persistentes so armazenados fora do programa e sobre2i2em ao seu t1rmino
70
7ados persistentes so armazenados em 9ancos de 7ados &elacionais ou 9ancos de 7ados KK #om fre0`ncia( os dados contidos em terceira forma normal representaro um ar0ui2o lgico interno A terceira forma normal procura remo2er 0uais0uer dependncias entre os atributos no c.a2es !ara ser considerado um ar0ui2o lgico interno CA/ID( o ar0ui2o Cou tabelaD de2e ser um agrupamento lgico de dados( mantido ou modificado atra21s de processos elementares Cm1todosD
71
Necessidade de 2elocidadeG Mudanas de escopo - no negcio( na tecnologia( nos concorrentesG !ro@etos de alto riscoG Interdependncia entre pro@etos e conse0`ente dificuldade no gerenciamentoG !rocesso dirigido pelo negcio e pelos clientesG 7esen2ol2imento de soluo para o 0ue for necessArio( com a tecnologia existente K gerente de pro@etos de TI par a fazer frente ao no2o e arriscado mundo do
e#ommerce necessita pensar nos fatores 0ue determinam o desen2ol2imento dos sistemas e desen2ol2er um modelo ade0uado a suas necessidades( conduzindo a flexibilidade e a padronizao a um ponto timo 0ue um no pre@udi0ue o outro !ara o tal( alguns tpicos de2em ser le2ados em considerao" /embre 0ue o cacife do @ogo aumentou Cficou mais fAcil perder o empregoDG #on.ea o negcio de seus clientesG !ense na @ornada( no apenas no destino imediato( mas al1m deleG !ense al1m do dia da implantao C1 0uando seus problemas apareceroDG 4stilo e metodologia so importantes Cno abra moDG #olaborao 1 fundamental Cpense VcomV o cliente e no VparaVDG A 2elocidade 1 mais importante do 0ue a perfeioG #ada cliente 1 o cara mais exigente do mundoG 4scre2a tudo o 0ue fizer Cmanten.a o controleD #omo conse0`ncia direta desta no2a abordagem de desen2ol2imento( os pro@etos tero taman.os e prazos menores e atendero problemas espec3ficos de negcios
73
74
5ato 1 0ue a contagem de ponto de funo no a@ustada s considera as caracter3sticas lgicas dos sistemas( no le2ando em considerao os fatores t1cnicos 0ue definiram como sero fisicamente implementadas as fun%es 4m uma sistemas cliente R ser2idor as fun%es de gerenciamento de dados e os componentes do aplicati2o residem completamente no $er2idor Ks componentes da apresentao residem inteiramente CremotaD ou parcialmente Cdistribu3daD no #liente( mas so apresentados ao usuArio como um todo K componente aplicati2o encontra-se di2idido entre o #liente e o $er2idor( geralmente por raz%es t1cnicas Todas as partes do componente aplicati2o de2em funcionar como um todo( a fim de atender as defini%es das regras de negcio Ks componentes da apresentao residem no #liente e os componentes de gerenciamento de dados residem no $er2idor Ks componentes do aplicati2o e da apresentao residem totalmente no #liente No gerenciamento remoto de dados( o componente de gerenciamento de dados reside inteiramente no $er2idor No caso de base de dados distribu3da( o componente de gerenciamento de dados 1 di2idido entre o $er2idor e o #liente Ao determinar a fronteira do aplicati2o( especialmente ao lidar com no2as tecnologias( 1 importante 2er o aplicati2o do ponto de 2ista da soluo do negcio( ao in21s da soluo t1cnica A soluo t1cnica no de2e ter efeito sobre a fronteira do aplicati2o !rotocolos e passagem de mensagens entre mQltiplas camadas em uma soluo t1cnica multi-camada no afetam a 2iso 0ue o usuArio tem do negcio 0ue o aplicati2o pretende suportar No 1 necessArio 0ue todos os componentes de um aplicati2o residam na mesma plataforma de .ardBare Cisto 1( #liente ou $er2idorD 7o ponto de 2ista do negcio( a fronteira de um aplicati2o #lienteR$er2idor consiste de todos os componentes 0ue atendem o re0uisito do negcio( independentemente da implementao f3sica #oncentre-se exclusi2amente nos aspectos negociais do aplicati2o ao determinar a fronteira do mesmo $e o propsito do negcio for o desen2ol2imento e a comercializao dos componentes t1cnicos utilizados no ambiente #lienteR$er2idor( ento para efeito de medio interna o negcio pode"
75
Medir o componente t1cnico como um aplicati2o( e #onsiderar outros componentes t1cnicos como usuArios do aplicati2o Ao contar os componentes separados do aplicati2o #lienteR$er2idor( 1
importante recon.ecer 0ue a funcionalidade pro2ida foi incorporada ao aplicati2o do usuArio final e 0ue essa capacidade serA contada por ocasio da contagem desse aplicati2o 7essa maneira( os resultados da contagem do componente separado no sero somados contagem do aplicati2o do usuArio( pois estar3amos inflacionando a funcionalidade entregue( com base em uma implementao t1cnica 7e2e ser definida uma carteira de aplicati2os independente( especificamente para os componentes #lienteR$er2idor K ob@eti2o da contagem de pontos de funo pode ser determinar o nQmero de pontos de funo para um ou mais componentes do aplicati2o #R$ No caso em 0ue todos os componentes do aplicati2o #R$ este@am no escopo da contagem( o escopo da contagem serA dado pela fronteira do aplicati2o( se no existirem outras fun%es Cpor exemplo( con2ersoD( mel.orias ou mudanas pertinentes ao escopo da contagem #aso um ou mais componentes - mas no todos este@am no escopo da contagem Cpor exemplo( se a inteno da contagem for o desen2ol2imento de um pacote de gerenciamento de dadosD( somente as fun%es 0ue esti2erem dentro deste escopo espec3fico de2ero ser contadas ?ma 2ez 0ue a fronteira da aplicao e o escopo da contagem ten.am sido determinados( as regras definidas na A!5 podem ser aplicadas para identificar as fun%es de dados e as transacionais !or Qltimo( as mensagens 0ue passam entre o cliente e o ser2idor no de2em ser contadas como fun%es separadas Tais mensagens so consideradas parte da soluo t1cnica
76
Camada de $ados
Camada de Ne !c"o
Camada #"sual
6r$umentos de 5esquisa
;iso do ?suArio
)uncionalidade
5ro$rama 7E8
4esposta da 5esquisa
A camada 2isual( ou interface ceb( pode ser 2ista como a necessidade de implementao de uma camada de interao 2isual entre o usuArio e a camada de negcio !ara o usuArio( a interface ceb no 1 2ista como uma funcionalidade( pois estA totalmente integrada funo transacional completa( como( por exemplo( consultar cliente A camada 2isual no pode ser classificada por si s( segundo os conceitos da m1trica anAlise de pontos de funo( como uma das fun%es transacionais Cinput( output( 0uerOD !ortanto( a camada no de2e fazer parte da lista de fun%es
77
transacionais a serem 0uantificados para se determinar o taman.o de uma sistema em termos pontos de funo Ao 0uantificarmos as caracter3sticas t1cnicas relacionadas interface ceb( 0ue influencia o fator de a@uste da 0uantidade de pontos de funo( o percentual encontrado referente a estas caracter3sticas no seria significati2amente grande a ponto de influenciar no crescimento do taman.o do sistema !or1m( a implementao f3sica desta caracter3stica re0uer um esforo em termos de .oras significantemente grande para a implementao desta camada 2isual ?m padro de m1trica pode ser considerada aplicA2el em termos de estimati2a de .oras 0uando produz um des2io da ordem de +,X entre o estimado e o realizado 4sforo em .oras para a implementao f3sica de fun%es A m1trica anAlise de ponto de funo 1 destinada a 0uantificar o taman.o de um sistema e no para estimar as .oras necessArias para o desen2ol2imento !ara tal( um outro fator torna-se necessArio ser con.ecido" 0uanto tempo 1 preciso para implementar um determinado nQmero de pontos de funo Isto 1( 0ual 1 o 3ndice de produti2idade A aplicao de 3ndices de produti2idade ao taman.o de um sistema( expresso em nQmero de ponto de funo( no faz parte do escopo da m1trica anAlise de pontos de funo Ao aplicarmos 3ndices de produti2idade para a implementao f3sica das fun%es 0uantificadas pela m1trica( passamos a tratar o sistema com uma 2iso influenciada pelas tecnologias a serem utilizadas $e forem utilizados dos mesmos conceitos da anAlise de pontos de funo( poder3amos dizer 0ue camada 2isual pode ser 2ista como uma 6consulta simples8( 0ue recupera dados de um Qnico ar0ui2o lgico e apresenta ao usuArio ou 0ue recebe dados do usuArio e gra2a em um Qnico ar0ui2o lgico $endo assim( pode-se determinar o nQmero de pontos de funo associado programao ceb e( tendo o 3ndice de produti2idade espec3fico para este tipo de ambiente( poder3amos determinar o tempo necessArio para a implementao
78
!oderia-se considerar 0ue cada funcionalidade transacional a ser implementada na camada de negcio CfuncionalD demandaria a implementao de aproximadamente uma interface ceb na camada 2isual A interface ceb( 0uando implementada em uma linguagem de programao diferente da utilizada na camada de negcio Cregras de negcio da funcionalidadeD( re0uer a aplicao de 3ndices de produti2idade distintos !or exemplo( se a camada de negcio for implementada em #K9K/ e a camada 2isual for implementada em uma linguagem espec3fica para ambiente ceb( teremos dois 3ndices de produti2idade a serem aplicados A partir do le2antamento dos re0uisitos de negcio obtidos da 2iso do usuArio do sistema do usuArio( a 0uantificao do sistema 1 feita com o aux3lio da m1trica anAlise de ponto de funo As seguintes 0uest%es podem ser le2antadas 0uando da definio da 0uantidade de .oras necessArias implementao f3sica de sistemas" A aplicao de 3ndice de produti2idade no estA no escopo desta m1trica A 2iso do usuArio do sistema no contempla a implementao f3sica do sistema A aplicao de 3ndices de produti2idade 1 totalmente dependente da metodologia e dos aspectos tecnolgicos en2ol2idos no desen2ol2imento de sistemas A obteno do tempo necessArio para a implementao de interface ceb re0uer a aplicao de 3ndices de produti2idade espec3ficos A 0uesto da definio do tempo para implementao da camada 2isual Cinterface cebD pode ser tratada sob os seguintes aspectos( entre outros" Aplicao de 3ndice de produti2idade espec3fico( 0ue considera a funo transacional online como um todo( sobre a 0uantidade de pontos de funo obtidos para a funo transacional on-line Isto nos possibilitaria obter o tempo necessArio para a implementao f3sica da funo transacional Aplicao de 3ndice de produti2idade espec3fico para a camada 2isual sobre a 0uantidade de pontos de funo originalmente obtida para a funo transacional on-line
79
correspondente Isto nos permitiria obter o tempo necessArio para a implementao f3sica da camada 2isual Cinterface cebD T poss32el considerar 0ue cada funo transacional on-line demandaria a implementao de aproximadamente uma interface ceb #onforme o desen.o apresentado anteriormente( a camada 2isual estaria acessandoRatualizando um Qnico ar0ui2o lgico geradoRacessado pela camada de negcio !ortanto( poder3amos apro2eitar os conceitos da m1trica anAlise de pontos de funo e definir 0ue esta interface ceb poderia ser classificada como uma 60uerO8 de baixa complexidade Aplicando-se o 3ndice de produti2idade espec3fico para a camada 2isual sobre a 0uantidade de pontos de funo obtidos( c.egar3amos ao tempo necessArio para a implementao f3sica da camada 2isual Cinterface cebD !ara os trs casos citados acima( os 3ndices .istricos de produti2idade de2em ter sido coletados e tratados em concordUncia com a opo escol.ida !ara finalizar( a coleta e aplicao de 3ndice de produti2idade re0uer padronizao !ortanto( a aplicao dos conceitos e defini%es da m1trica anAlise de pontos de funo de2e seguir um padro comum de entendimento( em concordUncia com os crit1rios estabelecidos pela m1trica( para 0ue a classificao e contagem no se@am feitas a partir de interpretao prpria
80
Kutro fator 0ue no pode ser es0uecido 1 o 0ue diz respeito manuteno da aplicao T lgico 0ue 0uanto mais lin.a de cdigo possui uma aplicao( mais dif3cil 1 a compreenso do 0ue estA codificado( mais tempo 1 gasto em sua manuteno( maior serA o custo de manuteno e maior serA a possibilidade de erros de execuo A tabela a seguir demonstra como a linguagem de programao pode influenciar nos prazos e nos custos de desen2ol2imento de sistemas de informao <BBB spr comRproductsRfunction .tm>
Acti.it@ &e0uirement 7esign #oding IntegrationRTest ?ser 7ocumentation ManagementR$upport Total Total #osts #ost !er $ource /ine /ines !er !erson Mont. #ost !er 5 ! 5 ! !er !erson Mont.
A!!e"8ler Ker!i%& P*O=OOO Li&e!Q + Mont.s H Mont.s ), Mont.s * Mont.s + Mont.s H Mont.s +* Mont.s Y)+*(,,, Y)+ *, -,, Y-()MM MI )+
F%rtr#& Ker!i%& P3=OOO Li&e!Q + Mont.s H Mont.s H Mont.s H Mont.s + Mont.s + Mont.s )* Mont.s YI*(,,, Y+* ,, +,, Y+(*,, ,, + , , -I -+ , -) -), CY*,(,,,D Y)+ *, -+,, CY)(MMM MID b,J Differe&ce
Taxas de produti2idade econSmicas mais acuradas podem ser obtidas atra21s do exame da m1dia mensal das taxas de produo( em !ontos de 5uno( associadas aos di2ersos n32eis de linguagem A Tabela a seguir mostra como o n32el da linguagem afeta a produti2idade <BBB spr comRproductsRfunction .tm> L#&-5#-e Le.el
82
F5&cti%& P%i&t ),H+RA5 )st Peneration default +nd Peneration default Hrd Peneration default -t. Peneration default +, ) H )M )M H+, ),I J, +,
A Area de TI de uma empresa terA dois camin.os bAsicos para montar uma relao entre 0uantidade de lin.as de cdigo e o nQmero de pontos de funo" K primeiro seria adotar uma tabela de con2erso ad0uirida do mercado e ir fazendo a@ustes at1 obter um n32el de acerto considerado satisfatrio ou $elecionar uma 0uantidade significati2a de fun%es implementadas nas linguagens de programao comumente utilizada na empresa e montar uma tabela prpria !ara o segundo caso( tem-se os seguintes passos a serem seguidos" $elecionar uma 0uantidade significati2a de fun%es implementadas nas linguagens de programao comumente utilizada na empresaG &ealizar a contagem de lin.as de cdigo de cada uma das fun%esG &ealizar a contagem de pontos de funo de cada uma das fun%esG Montar uma tabela de relacionamentoG Acompan.ar e realizar os a@ustes necessArios na tabela conforme as aplica%es so desen2ol2idas e entregues
aspecto determinante no relacionamento entre a empresa 0ue contrata e a empresa contratada ?ma forma muito popular de contratao de ser2ios de desen2ol2imento de sistemas 1 a0uela denominada( nos 4stados ?nidos( bodO s.op Clo@a de corposD No 9rasil utiliza-se a expresso locao de mo-de-obra Na operao tipo bodO s.op( uma empresa fornecedora aloca um profissional a uma empresa cliente( cobrando por isso um 2alor mensal 4ssa 1 uma operao com um risco muito baixo para o locador( pois no caso do profissional alocado no atender ao pretendido pelo cliente( o 0ue se faz 1 simplesmente substitu3-lo K risco dos pro@etos no 1 compartil.ado pelo locador de mo-de-obra( 0ue no precisa participar do pesadelo 0ue costuma ser o gerenciamento dos pro@etos de TI #laro 0ue .A solu%es intermediArias( nas 0uais o fornecedor di2ide o gerenciamento dos resultados com o cliente( mas essas no podem ser consideradas estritamente como bodO s.op No bodO s.op propriamente dito( no existe o comprometimento do fornecedor de mo-de-obra com os resultados !or essa razo( 1 natural 0ue as empresas bus0uem solu%es alternati2as para a contratao do desen2ol2imento de sistemas !ara minimizar os problemas citados anteriormente( algumas grandes empresas resol2eram partir para a contratao do desen2ol2imento de sistemas baseado em m1tricas de softBare Nessas contrata%es( o ob@eto produzido atra21s do contrato programa( sistema( documento( etc - 1 0uantificado e pago atra21s de alguma medida ob@eti2a( realizada sobre o prprio ob@eto gerado Teoricamente essa 1 uma soluo ideal( pois o 0ue estA sendo pago 1 o resultado( ao in21s dos recursos ou insumos utilizados na sua gerao K problema dessa abordagem passa a ser a escol.a( a medio e a interpretao da m1trica a ser utilizada na 0uantificao dos ser2ios contratados No caso do desen2ol2imento de sistemas( o principal item 0ue se busca medir 1 o softBare produzido atra21s do respecti2o contrato LA contratos espec3ficos para o desen2ol2imento de um Qnico sistema( bem como outros destinados ao desen2ol2imento e manuteno de di2ersos sistemas( programas e outros artefatos
84
4ste Qltimo tipo de contrato 1 por 2ezes denominado Vguarda-c.u2aV( por abrigar uma grande 2ariedade de ser2ios As medidas mais utilizadas para a medio de softBare( tanto no mundo acadmico 0uanto na indQstria( so as lin.as de cdigo e os pontos de funo As lin.as de cdigo possuem a grande 2antagem da medio automAtica( atra21s de programas de computador Tal no 1 poss32el com os pontos de funo( embora algumas ferramentas bus0uem realizar essa tarefa( com graus 2ariA2eis de acerto !or outro lado( 1 dif3cil estimar lin.as de cdigo no in3cio de um pro@eto( 0uando ainda no se tem definida a ar0uiteturaG al1m disso( a 0uantidade de lin.as de cdigo 2aria com a linguagem utilizada e( o 0ue 1 pior( com o prprio estilo de programao da e0uipe 4ssas dificuldades tm contribu3do para a crescente disseminao dos pontos de funo( regulamentados e periodicamente atualizados pelo International 5unction !oint ?sers Proup CI5!?PD( organizao sem fins lucrati2os sediada nos 4stados ?nidos Ks pontos de funo permitem medir a funcionalidade de um sistema independentemente da t1cnica utilizada em sua implementao 7essa maneira( os pontos de funo so independentes da linguagem de programao e da plataforma utilizada 5uncionam como a medida de um im2el em metros 0uadrados" um apartamento de ),, metros 0uadrados terA os mesmos ),, metros 0uadrados( este@a em Manaus ou em !orto Alegre( em um bairro da periferia ou na regio mais cara( constru3do com materiais de primeira lin.a ou com os mais baratos( finamente decorado ou 2azio Igualmente( um sistema com *,, pontos de funo terA esse mesmo taman.o( se@a ele implementado atra21s de #K9K/R#I#$ e 79+ no mainframe( em 7elp.i com Kracle em uma ar0uitetura de H camadas( ou como uma aplicao Beb utilizando 'a2a( $olaris e $Obase Ao medir um aplicati2o utilizando pontos de funo( os elementos considerados so componentes 2is32eis e recon.ecidos pelo usuArio( tais como ar0ui2os lgicos( transa%es de entrada e de sa3da e consultas efetuadas A 2iso lgica e centrada no ponto de 2ista do usuArio garante a independncia com relao implementao Na contagem de pontos de funo( 1 necessArio exercitar o processo
85
de abstrao utilizado para identificar os componentes contA2eis no modelo do sistema( conforme descrito pelo usuArio ou registrado na documentao existente A fim de garantir 0ue todos os contadores de pontos de funo utilizem o mesmo procedimento padro( o I5!?P oferece a certificao profissional Atra21s dela( tanto o prprio profissional 0uanto as empresas contratantes podem certificar-se de 0ue as contagens estaro sendo efetuadas corretamente ?ma 2ez determinado o taman.o funcional do sistema( o prximo passo 1 dispor de um m1todo para obter o custo do ser2io de desen2ol2imento a partir do taman.o em pontos de funo ?ma sa3da simples( mas no recomendA2el( 1 estabelecer um custo fixo para cada ponto de funo gerado( isto 1( um preo por ponto de funo Acontece 0ue o custo de um ponto de funo 2ai 2ariar segundo di2ersos fatores( dificultando o estabelecimento de um preo Qnico por !5 Na analogia anterior( o ponto de funo e0ui2aleria ao metro 0uadrado( en0uanto o preo por ponto de funo e0ui2aleria ao preo por metro 0uadrado 5ica fAcil 2er 0ue no 1 poss32el estabelecer um Qnico preo por metro 0uadrado para todos os tipos de im2eis( independentemente da localizao e do acabamento utilizado 7a mesma maneira( no podemos ter um Qnico preo por ponto de funo para todos os sistemas( independentemente da plataforma( linguagem( etc 4sses so fatores 0ue iro afetar a produti2idade da e0uipe de desen2ol2edores K esforo despendido em um ser2io de desen2ol2imento 1 o nQmero de .oras gasto para realizA-lo( o 0ual pode ser dado por" 4 \ 5 x T( onde 4 1 o esforo em .oras( 5 o taman.o em pontos de funo e T a taxa de entrega em .oras gastas por ponto de funo A taxa de entrega 1 o in2erso da produti2idade #on.ecido o nQmero de .oras 4( o custo pode ser obtido multiplicando-se 4 pelo 2alor unitArio da .ora" # \ 4 x L( onde # 1 o custo do ser2io( 4 1 o esforo e L 1 o 2alor unitArio da .ora ;emos ento 0ue( al1m do taman.o do sistema em pontos de funo( precisamos con.ecer a taxa de entrega e o 2alor unitArio da .ora( para 0ue possamos ter o custo K taman.o em pontos de funo pode ser determinado por um contador de pontos de funo experiente K 2alor da .ora 1 con.ecido do mercado( mesmo por0ue @A 1 intensamente utilizado nos contratos do tipo bodO s.op &esta con.ecer a taxa de
86
entrega( 0ue reflete a produti2idade Nuais empresas brasileiras con.ecem sua prpria produti2idadeW !arece 0ue poucas No .A estat3sticas con.ecidas para a taxa de entrega C.oras por ponto de funoD ou para a produti2idade Cpontos de funo por pessoa por msD das empresas brasileiras 0ue produzem aplicati2os 2oltados para negcios !oucas empresas mantm algum tipo de programa de m1tricas e( 0uando o fazem( nem todas utilizam uma medida padro 0ue permita compara%es com outras empresas( o principal benef3cio na utilizao dos pontos de funo do I5!?P Nesse contexto( faz-se necessArio o estabelecimento de programas de m1tricas( 0ue permitam aos clientes e fornecedores con.ecerem sua prpria produti2idade !or 0ue uma empresa cliente dese@aria con.ecer sua prpria produti2idadeW No bastaria con.ecer a produti2idade das mel.ores empresas do mundo e exigir esse mesmo n32el dos fornecedoresW Tal2ez sim( no caso da a0uisio de uma mercadoria( ou de um ser2io totalmente independente do ambiente do cliente Mas tal no 1 o caso No desen2ol2imento de sistemas( as demoras( dificuldades e indefini%es dos usuArios podero afetar fortemente a fase de concepo ou anAliseG os processos internos e tecnologia utilizados pela Area de TI do cliente podero( por sua 2ez( impactar bastante a fase de elaborao ou pro@etoG os procedimentos de aceitao e a forma adotada para o gerenciamento das mudanas de escopo direcionaro os riscos da fase de construo ou programaoG finalmente( a localizao geogrAfica e o cronograma dos usuArios iro determinar o tempo para a transio ou implantao do sistema !ara 0ue uma empresa possa exigir( realisticamente( uma determinada produti2idade de um fornecedor( 1 preciso 0ue ela tome como ponto de partida a sua prpria produti2idade( buscando mel.orias sucessi2as ao longo da parceria resultante da contratao K con.ecimento da prpria produti2idade 1( neste caso( o principal ob@eti2o do programa de m1tricas a ser implantado T muito comum as pessoas buscarem nQmeros de terceiros( 0ue possam substituir as medi%es acima indicadas 4ste autor recebe( regularmente( uma razoA2el 0uantidade de mensagens de colegas 0ue buscam o nQmero mAgico As perguntas mais comuns so do tipo V4m 0uantas .oras se faz um ponto de funo( em um
87
ambiente clienteRser2idor( usando ;9 com $N/ $er2erWV( ou VNuantos pontos de funo faz um programador #K9K/ por msWV T claro 0ue tais nQmeros existem( nas estat3sticas internacionais K problema 1" eles se aplicam ao seu casoW LA uma grande probabilidade de 0ue no A 2ariabilidade do processo de desen2ol2imento de sistemas 1 muito grande 7iferentes empresas 2o utilizar diferentes metodologias Muitas empresas no utilizam( consistentemente( 0ual0uer metodologia( embora 0uase todas dispon.am de alguma Nuanto uma metodologia padro 1 utilizada( os pro@etos por sua 2ez so diferentes entre si Mesmo 0uando os pro@etos so comparA2eis( muitas 2ezes as e0uipes 1 0ue no so &esumindo( o fenSmeno 0ue se dese@a estudar( o desen2ol2imento de sistemas( 1 to 2ariA2el 0ue desafia a definio $e( ainda assim( aceitarmos 0ue todos 0ue escre2em sobre desen2ol2imento de sistemas esto tratando da mesma coisa( teremos 0ue considerar a 0uesto das medi%es !ara obter a produti2idade( 1 preciso medir o taman.o e o esforo despendido A medida dos pontos de funo pode ser razoa2elmente precisa( se forem utilizados contadores experientes !or outro lado( os crit1rios para registro do tempo despendido podem 2ariar bastante $e no .ou2er um padro para isso( no teremos como saber 0uem e o 0u foi medido !or exemplo" foi medido o tempo gasto pelos administradores de dados neste pro@etoW 5oi considerado o tempo do pessoal de suporteW K pro@eto foi medido desde a primeira reunio realizada para tratar do mesmoW K antepro@eto foi considerado nas medi%esW K treinamento ao usuArio foi inclu3doW Aps o aceite final do usuArio ainda .ou2e alguma ati2idade registradaW 7e2eria ter .a2idoW T mais importante ter um Qnico crit1rio( consistente( do 0ue ficar discutido se determinado tipo de ati2idade de2e ou no entrar no cSmputo das .oras despendidas no pro@eto #omo conse0`ncia da grande 2ariabilidade do fenSmeno e das respecti2as estrat1gias de medida diferenciadas( as estat3sticas internacionais sobre produti2idade tamb1m 2ariam muito Isso pode ser 2erificado atra21s da comparao entre os dados pro2enientes de trs respeitadas fontes de dados sobre as ati2idades de TI" o International $oftBare 9enc.mar]ing $tandards Proup CI$9$PD( #apers 'ones e LoBard &ubin #omparando a produti2idade do desen2ol2imento( medida em pontos
88
de funo por pessoa por ms( 2eremos 0ue o banco de dados do I$9$P registra cerca de )= !5( #apers 'ones indica I(* !5 e LoBard &ubin c.ega a H(M !5 Isso significa uma 2ariao de 0uase + 2ezes entre &ubin e 'ones( e de 0uase * 2ezes entre &ubin e o I$9$P Nual desses 1 o caso da sua empresaW Ku serA algum outroW Ks dados citados so de )==J T ine2itA2el a decepo da0ueles 0ue esperam do processo de mensurao de softBare alguma frmula mAgica ou re2elao m3stica 4xatamente como 0uando tratamos de metodologias de desen2ol2imento( ferramentas #A$4 ou t1cnicas de modelagem( no .A uma soluo bril.ante 0ue resol2a todos os problemas #omo dizem os americanos( Vt.ere is no sil2er bulletV Cno existe a bala de prataD A contratao de softBare com a utilizao de m1tricas passa( primeiro( pela implantao de um programa de mensurao( tamb1m c.amado programa de m1tricas As estat3sticas internacionais so Qteis( sim" como a@uda para a 2alidao de nossas prprias m1tricas e para posicionamento de nosso processo em relao s demais organiza%es A implantao de um programa de m1tricas re0uer um esforo espec3fico da organizao K pro@eto pode ser efetuado em J passos( resumidamente descrito a seguir" )D 7ocumentar o processo de desen2ol2imento atualmente utilizado e padronizA-lo Csem buscar a realizao de mel.orias( mas to somente a estabilizao do processoDG +D 4stabelecer os ob@eti2os do programa de m1tricas Cem nosso caso( determinar a produti2idadeDG HD 7efinir as m1tricas necessArias ao alcance dos ob@eti2os pretendidos Cpor exemplo" taman.o funcional em pontos de funo( esforo em .oras( 0ualidade em densidade de erros( etc DG -D Identificar os dados a serem coletados Cpor exemplo" .oras trabal.adas de cada t1cnico en2ol2ido( taman.o funcional de cada uma das solicita%es de alterao do sistema( erros identificados e suas categorias( etc DG
89
*D 7efinir o processo de coleta de dados Cidentificar os pontos de coleta( periodicidades( formulArios ou sistema de coleta( etc DG MD Kbter ferramentas Cconstruir eRou ad0uirir as ferramentas 0ue permitam implementar o processo de coleta anteriormente definidoDG ID #riar um banco de dados de m1tricas Cimplementar um repositrio 0ue possa abrigar( de forma organizada e acess32el( todos os dados 0ue 2iro a ser coletadosDG JD 7efinir um mecanismo de feedbac] Cuma maneira 0ue permita e0uipe de m1tricas receber feedbac] de todos os participantes do processoD 4xistem 2Arias outras formas de se conduzir o processo de implantao de um programa deste tipo K importante 1 o comprometimento da gerncia e a clara definio dos ob@eti2os do programa( de modo a garantir 0ue as m1tricas geradas se@am a0uelas necessArias e efeti2amente utilizadas ?ma 2ez implantado o programa de m1tricas( a organizao comearA a obter dados de produti2idade 4m uma organizao imatura( ainda no n32el ) da classificao #MM( 1 pro2A2el 0ue a produti2idade 2arie de forma errAtica refletindo( 1 claro( o fenSmeno 0ue estA sendo medido Pradati2amente( serA poss32el separar os pro@etos por plataforma( ramo de negcio( localizao geogrAfica( perfil da e0uipe e outros fatores 0ue este@am influenciando os resultados K tratamento de categorias separadas tenderA a reduzir a 2ariabilidade Aps a estabilizao dos fatores mais influentes( serA poss32el estabelecer uma produti2idade m1dia para cada categoria definida 4sse serA o ponto de partida para a obteno de mel.orias @unto aos fornecedores !or exemplo( uma empresa poderia firmar um contrato com um fornecedor( tendo como al2o um aumento de produti2idade de +*X no primeiro ano e de ),X no segundo Ceste 1 apenas um exemplo( 2alores reais s podem ser determinados mediante cuidadosa anAlise por parte do cliente e do fornecedorD A contratao do desen2ol2imento de sistemas com a utilizao de pontos de funo Cou outra m1tricaD no pode ser realizada exclusi2amente com base em dados de terceiros( ainda 0ue publicados em respeitA2eis fontes internacionais Antes da contratao( e imprescind32el a implantao de um programa de m1tricas( 0ue permita
90
ao cliente estabilizar seu processo de desen2ol2imento e con.ecer sua prpria produti2idade #om base nesse con.ecimento( mel.orias podero ser buscadas e obtidas @unto ao mercado Prande a@uda pode ser conseguida atra21s da troca de experincias com empresas assemel.adas( tanto para contratantes 0uanto para contratados As mel.ores prAticas de contratao s podem ser conseguidas com o concurso de ambas as partes( em um clima do tipo Vgan.a-gan.aV Tal ambiente no pode ser obtido durante o calor de uma concorrncia ou negociao espec3fica #om o intuito de dar ense@o a tal modo de interao( o 9razilian 5unction !oint ?sers Proup C95!?PD instituiu um #omit com a misso de buscar as mel.ores formas de contratao para o desen2ol2imento de sistemas( ade0uadas aos grandes contratantes e exe0`32eis para os grandes contratados
91
CONCLUSO
No esforo de implantao de uma no2a mentalidade 2oltada para a 0ualidade e produti2idade( no 1 admiss32el o desen2ol2imento de sistemas atra21s de EfeelingF( onde 0uest%es como" 0ual 1 a produti2idade da Area de informAtica( 0ual 1 a capacidade de produo( 0ual con@unto de ferramentas possibilita a maior produti2idade( 0uais so os indicadores de 0ualidade existentes( 0ual camin.o de2o adotar( desen2ol2er ou comprar um pacote e customizA-lo( so simplesmente deixadas de lado ou respondidas sem suporte de uma base 0uantificA2el A implantao de um procedimento de m1trica possibilita fornecer informa%es gerenciais para definio de indicadores 0ue suportaro uma s1rie de ati2idades essenciais para a gerncia eficaz de sistemas de informa%es como" a anAlise de tendnciasG anAlise de impactos na introduo de no2as tecnologias sobre a 0ualidade e produti2idade( 0ue pode auxiliar na deciso sobre 0uais combina%es de elementos de tecnologia garantem mel.ores resultadosG a anAlise de atributos( 0ue permite a comparao da 0ualidade e produti2idade entre plataformas( metodologias( Areas de aplicao( .abilidades t1cnicas de pessoas e assim sucessi2amente A gerncia( criando os padr%es de medidas para a instalao( fica em posio de monitorar o comportamento dos pro@etos e produtos indi2idualmente( analisar resultados( comparA-los e 2erificar a ade0uabilidade dos respecti2os processos e necessidades de implementar mel.orias A gesto eficiente dos re0uisitos 1 um dos principais fatores de sucesso no desen2ol2imento de sistemas de informao #omo 1 dito popularmente 6lixo 0ue entra 1 lixo 0ue sai8( no existe uma frmula mAgica 0ue transforma uma especificao de mA 0ualidade em uma especificao de excelente 0ualidade f gesto dos re0uisitos de2e possuir mecanismos 0ue permitem identificar se todos os re0uisitos necessArios ao negcio foram le2antados e mapeados Isto 1( se todos os re0uisitos 0ue esto dentro da fronteira do sistema foram identificados e se estA correta a real fronteira do sistema A simples desconsiderao ou es0uecimento de
92
um re0uisito pode at1 tornar o pro@eto in2iA2el No li2ro 6Pesto de $on.os8 de Amir _lin] <HH> 1 citado um episdio sobre o es0uecimento de um item de custo extremamente baixo e aparentemente sem importUncia( 0ue poderia ter in2iabilizado a 2ia@em de ) ano pela AntArtica" 6Nuando esta2a para deixar o cais em direo ao continente gelado sem escalas( um pessoa no cais me pediu fsforos para acender o cigarro e descobri 0ue no tin.a caixa de fsforo a bordo 8 A implantao de um programa de m1tricas re0uer um esforo espec3fico da organizao &e0uer um compromisso muito forte em enfrentar todos as dificuldades 0ue surgem durante esta longa tra@etria sem fim No existe espao para acomodao( sempre estA se reno2ando e apreendendo com as no2as informa%es 0ue so coletadas A implantao de um pro@eto de m1tricas 2oltada para a 0ualidade( pode ser efetuada em J passos( como descrito resumidamente a seguir" )D 7ocumentar o processo de desen2ol2imento atualmente utilizado e padronizA-lo Csem buscar a realizao de mel.orias( mas to somente a estabilizao do processoDG +D 4stabelecer os ob@eti2os do programa de m1tricas Cem nosso caso( determinar a produti2idadeDG HD 7efinir as m1tricas necessArias ao alcance dos ob@eti2os pretendidos Cpor exemplo" taman.o funcional em pontos de funo( esforo em .oras( 0ualidade em densidade de erros( etc DG -D Identificar os dados a serem coletados Cpor exemplo" .oras trabal.adas de cada t1cnico en2ol2ido( taman.o funcional de cada uma das solicita%es de alterao do sistema( erros identificados e suas categorias( etc DG *D 7efinir o processo de coleta de dados Cidentificar os pontos de coleta( periodicidades( formulArios ou sistema de coleta( etc DG MD Kbter ferramentas Cconstruir eRou ad0uirir as ferramentas 0ue permitam implementar o processo de coleta anteriormente definidoDG ID #riar um banco de dados de m1tricas Cimplementar um repositrio 0ue possa abrigar( de forma organizada e acess32el( todos os dados 0ue 2iro a ser coletadosDG
93
JD 7efinir um mecanismo de feedbac] Cuma maneira 0ue permita e0uipe de m1tricas receber feedbac] de todos os participantes do processoD 4xistem 2Arias outras formas de se conduzir o processo de implantao de um programa deste tipo K importante 1 o comprometimento da gerncia e a clara definio dos ob@eti2os do programa( de modo a garantir 0ue as m1tricas geradas se@am a0uelas necessArias e efeti2amente utilizadas ?ma 2ez implantado o programa de m1tricas( a organizao comearA a obter dados de produti2idade 4m uma organizao imatura( ainda no n32el ) da classificao #MM( 1 pro2A2el 0ue a produti2idade 2arie de forma errAtica refletindo( 1 claro( o fenSmeno 0ue estA sendo medido Pradati2amente( serA poss32el separar os pro@etos por plataforma( ramo de negcio( localizao geogrAfica( perfil da e0uipe e outros fatores 0ue este@am influenciando os resultados K tratamento de categorias separadas tenderA a reduzir a 2ariabilidade Aps a estabilizao dos fatores mais influentes( serA poss32el estabelecer uma produti2idade m1dia para cada categoria definida 4sse serA o ponto de partida para a obteno de mel.orias @unto aos fornecedores
94
REFERSNCIA 9I9LIOGRFICA,
) + H * M I J = $istemAtica M1trica( Nualidade e produti2idade" #arlos $im%es - Artigo publicado na 7e2elopersg Magazine( setembro de )=== I444 $tandard PlossarO of $oftBare 4ngineering TerminologO( I444 $td I+= )=JH I444 $tandard PlossarO of $oftBare 4ngineering TerminologO( I444 $td M), )+ )==, 4ngineering an 4ffecti2e Measurement !rogram #ourse Notes( )==Perncia da Mel.oria do !rocesso de $oftBare atra21s de Indicadores da Nualidade e !roduti2idade - #laudia Lazan #ustomizando o Modelo $c-#MM - por &a]es. $.ri2asta2a e 7r Pular L Mal]ani publicado em $oftBare NualitO( @ul.o de +,,, !ontos de 5uno e o $4I-#MM - 7a2id /ipton - NR! Management Proup NA$$#KM - .ttp"RRBBB nasscom orgR( VIT NualitOV( 7ez )=== /instone( Larold A e MurraO Turoff C)=I*D( eds 7elp.i Met.od" Tec.ni0ues and Applications( &eading( MA" Addison-cesleO !ublis.ing #ompanO( ?$A ), A Tabela de /inguagens de !rogramao da $!& - T #apers 'ones( $oftBare !roducti2itO &esearc. 119 NA$$#KM - .ttp"RRBBB nasscom orgR( VIT NualitOV( 7ez )=== )+ /instone( Larold A e MurraO Turoff C)=I*D( eds 7elp.i Met.od" Tec.ni0ues and Applications( &eading( MA" Addison-cesleO !ublis.ing #ompanO( ?$A )H AnAlise de !ontos de 5uno e [ndices de !roduti2idade : #arlos $im%es : Artigo publicado no 95!?P em +,,H )- Medida( M1trica ou Indicador" Nual a 7iferenaW - 9rOce &agland( $oftBare Tec.nologO $upport #enter )* 4ngineering an 4ffecti2e Measurement !rogram #ourse Notes( )==)M !lane@amento( 4specificao e 4xecuo dos Testes : #arlos $im%es : 7e2elopersF Magazine )=== )I I444 $oftBare &e0ueriments $pecification C4specificao de re0uisitos de $oftBare C$&$DD" I444 )H, )J Impacto das no2as tecnologias na #ontagem de !ontos de 5uno - Mauricio Aguiar
95
)= A MAgica do Perenciamento de !ro@etos de e#ommerce - Mauricio Aguiar( #5!$ publicado na 7e2eloperFs Magazine( @un.o de +,,, +, e-!M !aradox - 'ac] 7uggal( - Inacom #orporation e ?ni2ersitO of Lartford +) 'ones( #apers T - 4stimating $oftBare #osts - McPraB-Lill( )==J ++ &ubin $Ostems( Inc - IT !erformance Trends g== - Meta Proup( )=== +H International $oftBare 9enc.mar]ing $tandards Proup - T.e 9enc.mar] &elease * - I$9$P( )==J +- .ttp"RRBBB spr comR - $oftBare !roducti2itO &esearc. - 4mpresa de #apers 'ones +* .ttp"RRBBB .rubin comR - &ubin $Ostems( Inc - 4mpresa de LoBard &ubin +M .ttp"RRBBB ifpug orgR - International 5unction !oint ?sers Proup - $ite do I5!?P 279 .ttp"RRBBB bfpug com brR - 9razilian 5unction !oint ?sers Proup +J #ontratando o 7esen2ol2imento com 9ase em M1tricas : Artigo de Mauricio Aguiar += 9rasil Terra a ;ista : A A2entura do 7escobrimento : 4duardo 9ueno H, !ro@eto d 4ngen.aria de $oftBare : Teste de $oftBare : TraOa.Q & Moreira 5il.o d 4merson &ios H) AnAlise de !ontos de 5uno : #arlos 4duardo ;az0uez( Puil.erme $i0ueira $im%es( &enato mac.ado Albert H+ Perncia de !ro@etos de $istemas : Aguinaldo Aragon 5ernandes d 'os1 /uiz #arlos _ugler HH Pesto de $on.os - Amir _lin]
96
ANETO
97