Академический Документы
Профессиональный Документы
Культура Документы
Esta Dissertao foi julgada adequada para a obteno do ttulo de Mestre em Cincia
da Computao na rea de concentrao de Sistemas de Computao e aprovada em sua
forma final pelo Programa de Ps-Graduao em Cincia da Computao.
________________________________
Rogrio Cid Bastos
Banca Examinadora:
________________________________
Raul Sidnei Wazlawick (orientador)
________________________________
Itana Maria de Souza Gimenes
________________________________
Frank Siqueira
________________________________
Ricardo Pereira e Silva
iii
iv
meus
irmos
Elaine,
v
AGRADECIMENTOS
vi
SUMRIO
vii
2.1.4 Descrio Essencial e Real do Caso de Uso ............................................ 15
2.1.5 Escrevendo Casos de Uso para o propsito de estimativa........................ 15
2.2 Mtricas de Estimativas de Software................................................................ 16
2.2.1 Linhas de Cdigo ................................................................................... 16
2.2.2 Anlise de Pontos de Funo .................................................................. 17
2.2.2.1 Trabalhos relacionados Anlise de Pontos de Funo ............... 19
2.2.3 Anlise de Pontos de Funo Mk II ........................................................ 20
2.2.4 Pontos de Caso de Uso ........................................................................... 22
2.2.4.1 Contagem dos Pontos de Caso de Uso....................................... 23
2.2.4.2 Produtividade com o mtodo Pontos de Caso de Uso ................ 26
2.2.4.3 Contagem dos Casos de Uso Estendidos e Includos ................. 27
2.2.4.4 Problemas com a contagem dos casos de uso e o mtodo Pontos
de Caso de Uso ......................................................................... 28
2.2.4.5 Trabalhos relacionados a Pontos de Caso de Uso ...................... 28
2.2.4.6 Outros trabalhos........................................................................ 30
3 Teoria para Estimativa de Software Baseada em Casos de Uso no
Desenvolvimento Orientado a Objetos ................................................................ 33
3.1 Primeira Etapa: Listagem dos Casos de Uso na Fase de Concepo ................. 34
3.1.1 Estimativa usando apenas o nmero de casos de uso............................... 35
3.1.2 Acrescentando uma medida de complexidade aos casos de uso............... 36
3.1.3 Separando fatores dependentes e independentes dos casos de uso. .......... 37
3.1.4 Considerando que a anlise inicial no completa.................................. 37
3.2 Segunda Etapa: Expanso dos Casos de uso..................................................... 39
3.3 Terceira Etapa: Contratos ................................................................................ 41
3.4 A Fase de Projeto e Implementao ................................................................. 43
4 Avaliao .............................................................................................................. 45
4.1 Estudo de Caso 1 Avaliao da Contagem de Passos .................................... 45
viii
4.2 Estudo de Caso 2 Avaliao da Subestimao............................................... 51
4.3 Estudo de Caso 3 - Avaliao do Tempo de Desenvolvimento por Caso de Uso
........................................................................................................................ 53
5 Concluses ............................................................................................................ 56
5.1 Limitaes do Trabalho ................................................................................... 57
5.2 Trabalhos Futuros............................................................................................ 58
Referncias Bibliogrficas ........................................................................................ 59
Referncias Consultadas........................................................................................... 61
Apndice.................................................................................................................... 63
Anexo 1...................................................................................................................... 72
Anexo 2...................................................................................................................... 74
ix
Listas de Figuras
Lista de Quadros
xi
Resumo
xii
Abstract
Software metrics are essential in order to discover the cost and time of software
development. There exist a number of counting approaches to generate estimates for the
real development time, as for example Use Case Points. The main problem with this
method particularly is the lack of precision in the estimation of a use case complexity.
The counting of steps method (UCP) can generate discrepancy among different
analysts, which will possibly provide significantly different estimations. This work
presents a new technique for classification of steps in use cases based on a reasonable
hypothesis, confirmed by case studies. This technique allowed a reduction in
discrepancy on estimations made by different analysts in comparison to the original
UCP method. The reasonable hypothesis is presented as a set of definitions (theory) that
intends to capture the explanation of the real effort estimation throughout the activities
of analysis of the software development.
1 Introduo
Estimativas so necessrias para determinar quando vivel desenvolver o
sistema e propor contratos. Alm disso, boas estimativas de esforo so necessrias para
planejar e gerenciar projetos de software (PRESSMAN, 2001). Diversos modelos para
estimativa de software foram propostos a partir da dcada de 60, como Linhas de
Cdigo, Anlise de Pontos por Funo e mais recentemente, Pontos de Caso de Uso,
proposto por KARNER (1993) para estimar o desenvolvimento de software orientado a
objetos a partir dos casos de uso levantados na fase de requisitos.
KARNER (1993) props o mtodo Pontos de Caso de Uso (PCU) como uma
melhoria para a Anlise de Pontos por Funo (APF), que inicialmente foi proposta para
estimar o desenvolvimento de softwares estruturados. Devido o fato do mtodo PCU ser
uma evoluo do mtodo APF, alguns problemas foram adquiridos e incorporados.
Diversas melhorias foram propostas para tornar o mtodo mais preciso. O trabalho mais
recente e importante foi o de RIBU (2002), em uma dissertao de mestrado da
Universidade de Oslo.
Mesmo com as melhorias propostas, o mtodo PCU ainda possui problemas
inerentes aos casos de uso, que so a base para gerar as estimativas de software. Os
casos de uso so definidos com passos descritos subjetivamente e no existe uma
padronizao predominantemente adotada para descrev-los. Portanto, diferentes
analistas podero descrever os mesmos casos de uso com relativamente poucos ou
muitos passos.
Alm disso, proposta uma nova teoria para gerar estimativas do tempo de
desenvolvimento de software orientado a objetos com base nos casos de uso, utilizando
o processo de desenvolvimento de software de LARMAN (2002) adaptado por
WAZLAWICK (2004).
1.2 Justificativa
Cada vez mais as empresas de desenvolvimento de software necessitam gerar
estimativas para definir contratos com seus clientes. Existem diversos mtodos que
ajudam a gerar estas estimativas. O mais utilizado at o momento o mtodo Anlise de
Pontos de Funo APF, que j foi modificado e refinado diversas vezes, desde sua
concepo nos anos 70. Trata-se de um mtodo consolidado, que foi inicialmente
definido para aplicaes com processamento de dados e linguagens estruturadas.
Porm, a APF no tem alcanado os mesmos resultados para gerar estimativas
para o desenvolvimento de software orientado a objetos (SPARKS & KASPCZYNSKI,
1999). Alm disso, os conceitos da orientao a objetos conforme RULE (2001) no
podem ser convertidos em conceitos abordados pela APF (por exemplo, elementos de
entradas e arquivos lgicos).
Em 1993, surge um novo mtodo chamado Pontos de Caso de Uso, criado por
Gustav Karner, como uma adaptao da APF para gerar estimativas para o
desenvolvimento de software orientado a objetos. O mtodo Pontos de Caso de Uso
dependente de casos de uso, e estes so definidos por descries livres e que podem ser
ambguas. No existe padro formal predominante para descrever os casos de uso e
muitas vezes em uma mesma empresa so escritos de forma diferente, ou seja, analistas
diferentes produzem estimativas diferentes para o mesmo projeto.
Alm disso, o mtodo proposto inicialmente por KARNER (1993) e mais
recentemente aperfeioado por RIBU (2002), ainda possui limitaes:
a) O mtodo PCU foi criado h mais de 10 anos, mas no totalmente confivel e
ainda produz estimativas discrepantes.
3
b) No h uma forma definitiva de propor a quantidade de horas/equipe por caso de
uso.
c) Existem poucos trabalhos sobre Pontos de Caso de Uso. Essa pode ser uma das
razes de porque o mtodo ainda no se tornou popular.
Na tentativa de melhorar o mtodo e atingir melhores resultados para as
estimativas, este trabalho aplica uma classificao dos passos nos casos de uso, que
conduzir os diferentes analistas a descrever a mesma quantidade ou uma variao mais
baixa dos passos que geram o efetivo esforo de desenvolvimento em software
orientado a objetos.
1.4 Metodologia
Para a realizao deste trabalho foi feito um estudo bibliogrfico para obter o
entendimento terico necessrio para a definio dos conceitos sobre mtricas de
software, os mtodos de estimativas e seus respectivos processos de contagem, bem
como os trabalhos correlatos, focando principalmente o mtodo Pontos de Caso de Uso.
Neste estudo inicial, foi identificado o modelo de descrio dos casos de uso
utilizado por WAZLAWICK (2004) e adaptado para o processo de contagem do mtodo
Pontos de Caso de Uso original. Este modelo de descrio consiste na classificao dos
passos dos casos de uso em eventos e respostas de sistema e tende a gerar estimativas
menos discrepantes por diferentes analistas, j que os mesmos tendem a descrever os
mesmos passos obrigatrios nos casos de uso, ou seja, os passos que efetivamente
geram esforo. Este estudo foi aplicado em dois estudos de caso e os resultados so
apresentados no captulo 5.
A partir da aplicao do processo de desenvolvimento de LARMAN (2002)
adaptado por WAZLAWICK (2004) no desenvolvimento de um software orientado a
objetos, foi definida uma teoria que apresenta uma frmula para cada etapa do processo
de desenvolvimento, gerando uma estimativa conforme os artefatos gerados na fase de
anlise. Esta teoria foi aplicada em um estudo de caso para gerar os valores das
variveis que vo produzir as estimativas de tempo.
1.5 Hiptese
Este trabalho tem como hiptese o uso de uma descrio padronizada de caso de
uso, como a proposta por WAZLAWICK (2004), que diferencia passos de contexto de
entrada e sada de informao (evento e resposta de sistema). Desta forma, espera-se
gerar estimativas menos discrepantes do que os atuais mtodos que contabilizam o
nmero de passos sem diferenci-los.
6
disso, so sugeridos alguns trabalhos futuros, que possam complementar e/ou melhorar
este estudo.
2 Reviso da Literatura
Nesta seo so apresentados os principais conceitos sobre casos de uso e tcnicas
para descrev-los, logo aps os conceitos sobre mtricas de estimativas de software e
conseqentemente os principais mtodos de estimativa, processo de contagem e
trabalhos relacionados.
10
11
Fluxo Principal
Fluxos Alternativos
1. O cliente chega ao balco com as 3a. O cliente no possui cadastro
fitas que deseja locar.
3a.1 O cliente deve informar seus dados para
cadastro.
2. O cliente informa seu nome e 3a.2 O funcionrio registra o cadastro.
entrega as fitas ao funcionrio.
3a.3 Retorna ao Fluxo Principal no passo 3.
3. O funcionrio registra o nome do 3b. O cliente possui pendncias no cadastro
cliente e inicia a locao.
(locao anterior no foi paga)
3b.1 O cliente paga seu dbito.
4. O funcionrio registra cada uma 3b.2 O funcionrio registra o pagamento,
das fitas.
eliminando a pendncia.
3b.3 Retorna ao Fluxo Principal no passo 3.
5. O funcionrio finaliza a locao,
devolve as fitas ao cliente e lhe 4a. A fita est reservada para outro cliente
informa a da data de devoluo e o 4a.1 O funcionrio informa que a fita no est
valor total da locao.
disponvel para locao.
4a.2 Prossegue a locao no Fluxo Principal
6. O cliente deixa a locadora com as no passo 4 sem incluir a fita reservada.
fitas.
4b. A fita est danificada
4b.1 O funcionrio informa que a fita est
danificada.
4b.2 O funcionrio registra que a fita est
danificada.
4b.3 O funcionrio verifica se existe outra fita
disponvel com o mesmo filme.
4b.3 Se existir, o funcionrio substitui a fita e
Retorna ao Fluxo Principal no passo 4, sem
registrar a fita danificada.
FIGURA 1 - CASO DE USO: SISTEMA VIDEOLOCADORA (WAZLAWICK,2004).
12
estoque pode querer saber quais produtos foram vendidos, ou seja, direta e
indiretamente interessadas ao caso de uso (WAZLAWICK, 2004).
c) Ator Primrio: o interessado que inicia uma interao com o sistema para alcanar
um objetivo.
d) Caso de Uso: um contrato sobre o comportamento do sistema.
e) Escopo: identifica o sistema que est sendo discutido.
f) Pr-Condies e Garantias: o que deve ser verdadeiro antes e aps a execuo do
caso de uso.
g) Cenrio de Sucesso Principal (Fluxo Principal): um caso de uso em que nada
acontece de errado.
h) Extenses (Fluxos Alternativos): o que pode ocorrer de diferente durante aquele
cenrio.
i) Variaes Tecnolgicas e de Dados: quase sempre isto ocorre nos dados que
devem ser capturados, porque a captura dos dados pode acontecer de diversas
formas como no caso do cliente identificar-se no banco com carto magntico,
leitura da ris e impresso digital. Estas variaes no so Fluxos Alternativos.
Os analistas tm dificuldades em decidir o que pode e/ou deve ser colocado como
passo do caso de uso expandido. De fato, duas pessoas que descrevem um mesmo
processo, quase sempre definiro uma seqncia de passos diferentes (WAZLAWICK,
2004, p.67). Portanto, WAZLAWICK (2004) sugeriu uma forma de descrio dos casos
de uso, nomeado como passos obrigatrios. Estes passos obrigatrios incluem os passos
que indicam de alguma forma uma troca de informao entre os atores e o sistema. Ele
afirmou ainda que todo o caso de uso possui passos obrigatrios, porque sem estas
etapas, o caso de uso no pode prosseguir corretamente. Entretanto, os mesmos passos
obrigatrios podem aparecer em diferentes posies de um caso de uso. Quando
diferentes analistas descrevem um caso de uso, eles tendem a usar os mesmos passos
obrigatrios, mas eles podem usar uma ordem diferente.
13
14
15
16
Modelo de Caso de Uso pode tambm conter um variado nmero de atores e casos de
uso e estes nmeros tambm afetaro a preciso das estimativas.
RIBU (2001) props um princpio bsico segundo o qual um caso de uso que
tenha mais de dez etapas no cenrio principal de sucesso deve ser reduzido, unindo-se
as etapas ou separando as funcionalidades. Uma razo importante para que o caso de
uso no seja muito longo que a escala de complexidade no mtodo Pontos de Caso de
Uso tem somente trs nveis: simples, mdio e complexo, no sendo assim capaz de
diferenciar a complexidade dos casos de uso com muitas transaes.
Em ANDA et al. (2001) foi relatado que haveria a necessidade de uma escala de
complexidade com mais nveis para modelar a funcionalidade de um projeto.
WAZLAWICK (2004) props a classificao dos passos obrigatrios. Utilizando
esta classificao e contando somente os passos obrigatrios ao invs de todos os passos
dos casos de uso, pode ser esperada uma menor variao na estimativa feita por
diferentes analistas para o mesmo sistema, conforme mostrado por VIEIRA &
WAZLAWICK (2006). Espera-se que todos os analistas descrevam a mesma
quantidade de passos obrigatrios, mas no os passos complementares que no tem
nenhuma influncia no desenvolvimento de software.
17
LOC foi uma mtrica bastante utilizada at meados de 1970. Logo surgiram
diversas linguagens de programao nas quais o conceito de linhas de cdigo no fazia
sentido, e conseqentemente a necessidade de outras formas de estimar o tamanho de
software (ANDRADE, 2004, p.22).
18
19
20
Outros autores dedicaram a novos mtodos como Fast Count, Object Oriented
Function Point (OOFP), Predictive Object Point (POPs), Object Oriented Design
Function Points (OODFP), Fast&&Serious e Use Case Points (UCP), desenvolvido por
Arnold e Pedross (1998), com o mesmo nome para o mtodo proposto por Karner
(1993) e baseado em cenrios e casos de uso.
De acordo com a comparao dos resultados da contagem dos PCU (proposto pelo mtodo
de Arnold e Pedross, 1998) e dos FP, eles detectaram uma variao na estimativa entre 90%
a 110% e ressaltaram que esta preciso suficiente porque a avaliao da mtrica de APF
pode ter uma impreciso de at 30%, quando a estimativa do tamanho realizada por
diferentes lderes de projetos. (ANDRADE, 2004, p. 19-22)
A norma ISO/IEC 14143 foi desenvolvida para garantir que todos os mtodos de Medio Funcional de Tamanho sejam baseados
em conceitos similares e que possam ser testados para assegurar que eles se comportam de maneira similar e da forma esperada por
um mtodo de medio, dependendo dos domnios funcionais a que se aplicam.Ao final do ano de 2002 a tcnica de anlise de
pontos de funo, conforme definida na verso 4.x do manual do IFPUG, foi aprovada como um mtodo de Medio Funcional de
Tamanho aderente norma ISO/IEC 14143. (FATTOCS, 2007)
21
RIBU (2001) ainda fez a observao que a definio de transaes lgicas muito
similar ao conceito de um caso de uso. Por causa destas similaridades entre os
conceitos, as duas abordagens podem ser combinadas para produzir estimativas
melhores sob certas circunstncias.
O mtodo Mk II estende a lista de Fatores de Ajuste Tcnico da Anlise de Pontos
de Funo. Estes fatores foram descartados porque foi decidido que eles no fazem
sentido no desenvolvimento de software atual. Entretanto, muitos profissionais tm
ignorado o ajuste e trabalhado usando os Pontos de Funo No-Ajustados (RULE,
2001).
A lista das caractersticas (Quadro 1) apresentada a fim de mostrar que
KARNER (1993) adaptou os fatores T15, T16, T17 e T18 para usar no mtodo Pontos
de Caso de Uso, que ser apresentado a seguir, alm dos fatores T1 a T14 propostos por
Albrecht (RIBU, 2001).
22
Esta lista pode ser comparada com a lista de fatores tcnicos do mtodo Pontos de
Caso de Uso que sero mostrados mais adiante, a fim de detectar que muitos destes
fatores so idnticos.
O mtodo Mk II, como o mtodo Pontos de Funo original, no tipicamente
til para estimar projetos de software que incluem muitos clculos em tempo-real ou
embutidos, projetos que tem uma quantia substancial de fundamento algortmico ou
projetos web (RULE, 2001).
23
a) Facilidade de uso.
b) Processo de contagem simples.
c) Estimativas podem ser rapidamente calculadas com uma planilha eletrnica.
d) Produz estimativa na fase de Levantamento de Requisitos no processo de
desenvolvimento de software.
Uma das razes para que isto esteja ocorrendo deve-se ao fato que:
a) Apesar de casos de uso serem bastante utilizados para descrever requisitos
funcionais, ainda no existem padres para escrever casos de uso e no existem bons
histricos de produtividade.
b) O mtodo no foi incorporado em ferramentas populares de estimativa de software.
c) A Anlise de Pontos de Funo tem se tornado padro internacional e a mtrica
mais usada no mercado e prov estimativas mais precisas medida que se obtm
mais informaes do projeto.
24
Peso
1
Mdio
Complexo
Descrio
Representa outro sistema com uma API (Interface para
Programao de Aplicaes) definida.
Representa outro sistema que interage atravs de um protocolo
como TCP/IP ou FTP.
Uma pessoa interagindo atravs de uma interface grfica ou
pgina da Internet.
Peso
5
Mdio
10
Complexo
15
Descrio
3 ou menos transaes. Dever ser realizado com menos 5
classes de anlise.
4 a 7 transaes. Dever ser realizado com 5 a 10 classes de
anlise.
Mais que 7 transaes. Dever ser realizado com pelo menos 10
classes de anlise.
3. Os pontos de caso de uso so ajustados com base nos valores determinados conforme
os fatores de complexidade tcnica (Quadro 4) e os fatores ambientais (Quadro 5). Os
25
Descrio
Sistema Distribudo
Desempenho da aplicao (Performance)
Eficincia do usurio final
Processamento interno complexo
Reusabilidade (cdigo reusvel)
Facilidade de instalao
Usabilidade (fcil para utilizar)
Portabilidade
Facilidade de manuteno
Concorrncia
Caractersticas especiais de segurana
Acesso fornecido a terceiros
Facilidades especiais de treinamento dos usurios
Peso
2
1
1
1
1
0,5
0,5
2
1
1
1
1
1
Descrio
Familiaridade com o Processo Unificado (RUP)
Experincia na Aplicao
Experincia com Orientao a Objetos
Capacidade do lder do projeto
Motivao
Requisitos estveis
Trabalhadores com dedicao parcial
Dificuldade na linguagem de programao
Peso
1,5
0,5
1
0,5
1
2
-1
-1
26
4.
27
28
2.2.4.4 Problemas com a contagem dos casos de uso e o mtodo Pontos de Caso de
Uso
No existe um padro adotado para descrever e estruturar os casos de uso e muitas
variaes de estilo pode conduzir a medidas diferentes de complexidade dos casos de
uso (SMITH 1999). COCKBURN (2005) encontrou 18 definies diferentes para um
mesmo caso de uso e outros praticantes tm relatado encontrar acima de 32
interpretaes diferentes. RIBU (2001), ainda relata que na prtica, parece ser muita a
disparidade em como diferentes pessoas entendem e escrevem os casos de uso, pois
como diferentes indivduos aplicam diferentes regras, mesmo dentro de um projeto, os
resultados da aplicao dos casos de uso para medir o software podem ser ambguos.
SMITH (1999) relatou tambm que um caso de uso deve descrever o
comportamento do ponto de vista do ator, mas isto pode ser muito complexo,
especialmente se o sistema tem estados (como a maioria tem). Assim, para descrever
este comportamento, pode ser requerido um modelo do sistema que possa levar a uma
grande quantidade de nveis de decomposio funcional e detalhes, em uma tentativa de
capturar a essncia do comportamento. SYMONS (2001), concluiu que um caminho
para resolver este problema, seria visualizar as transaes lgicas Mk II como um
especfico caso de uso e que usando esta abordagem levaria aos requisitos no qual so
mensurveis e teria uma grande chance de uma nica interpretao. Entretanto,
conforme LONGSTREET (2001), muitos profissionais tm procurado converter as
medidas de casos de uso em Pontos de Funo, porque existe uma extensa experincia
com mtricas de Pontos de Funo.
SYMONS (1991) observou tambm que na Anlise de Pontos de Funo a
escolha dos valores Simples, Mdio e Complexo para classificao foi simplificada
demais. Isto significa que muitos itens complexos no so corretamente pesados. O
mesmo se aplica ao mtodo Pontos de Caso de Uso.
29
formulrios padres para descrever casos de uso, definindo regras para atribuio dos
valores aos fatores ambientais e descartando os fatores tcnicos. Alguns so
apresentados a seguir.
SCHNEIDER & WINTER (1998) sugeriram um refinamento da contagem de
KARNER (1993) para a quantidade de homens/hora, determinada pelos fatores
ambientais, conforme apresentados anteriormente.
ANDA et al. (2001) observaram que alguns aspectos da estrutura dos modelos de
casos de uso tiveram impacto nas estimativas tais como: o uso de generalizao entre os
atores; a contagem dos casos de uso estendidos e includos; o nvel de detalhe da
descrio dos casos de uso; as dificuldades para atribuio de valores aos fatores
tcnicos e ambientais e; a escolha da taxa de produtividade por PCU. Eles ainda
definiram um formulrio padro para descrever os casos de uso. Os resultados deste
estudo confirmaram que o modelo de casos de uso tem um impacto forte na estimativa;
que o mtodo pode ser utilizado com sucesso para estimar o esforo de
desenvolvimento de software; que o mtodo de KARNER (1993) pode apoiar os
especialistas no processo de estimativa baseado na APF; e apesar de KARNER (1993)
no recomendar a contagem dos casos de uso estendidos e includos, ANDA et al.
(2001) acham que os mesmos devem ser includos na contagem para evitar estimativa
abaixo da realidade, principalmente se as funes descritas nesses casos de uso so
essenciais e implementadas.
ANDA (2002) aplicou o mtodo como parte de trs cursos de modelagem de
casos de uso em uma companhia internacional de TI. Dois cursos foram realizados na
Dinamarca e um na Noruega, tendo como participantes 37 gerentes e desenvolvedores
de projeto de software experientes. O objetivo foi comparar as estimativas do mtodo
com as estimativas realizadas pelos especialistas. Os resultados mostraram que a
estimativa realizada utilizando o mtodo PCU foi mais prxima ao tempo real de
desenvolvimento do que a realizada pelos especialistas, mas ambas as estimativas
produzidas foram razoavelmente precisas com base nas informaes disponveis. Com
isso, ANDA (2002) concluiu que o mtodo de pontos de casos de uso pode ser utilizado
com sucesso para estimar o esforo de desenvolvimento de software e tambm que a
combinao das estimativas dos especialistas e as estimativas com o mtodo PCU
30
podem ser beneficiadas quando falta experincia especfica com o domnio da aplicao
e a tecnologia a ser usada.
RIBU (2001) utilizou o mtodo de KARNER (1993) para estimar o tamanho dos
projetos de estudantes e da indstria. Ele ainda testou o PCU com e sem o uso dos
fatores tcnicos de ajuste, calculou a estimativa de esforo, props um formulrio
padro para descrio de casos de uso e definiu regras para atribuir valores aos fatores
ambientais. Alm disso, props a anlise da complexidade do caso de uso atravs do
diagrama de seqncia e de classes que implementam os casos de uso, quando no
houver a descrio dos mesmos. Porm, RIBU (2001) ressaltou que esta alternativa
pode levar contagem de classes de projeto e comprometer o resultado da estimativa.
As concluses desse estudo foram as seguintes: o mtodo de PCU teve baixa variao
entre o valor estimado e o real; sugeriu descartar os fatores de ajustes tcnicos e manter
os fatores ambientais; contar os casos de uso includos e estendidos quando eles tiverem
grande impacto no desenvolvimento; e utilizar um formulrio padro para descrio de
casos de uso.
No Brasil, um nmero reduzido de empresas privadas de desenvolvimento de
software tem adotado o PCU para estimar seus projetos ou para estudos experimentais.
Algumas dessas experincias j foram publicadas por FEITOSA & JANSEN (2003),
CUNHA & ALMEIDA (2003) e VALENA (2003).
31
aparecer como atores. Isto corresponde ao mtodo PCU proposto por KARNER (1993).
O nvel de detalhes no modelo de caso de uso pode variar e no fornecer informao
suficiente para contar um caso de uso especfico de acordo com as regras da APF.
Entretanto, como no mtodo PCU, os casos de uso devem ser descritos em mais
detalhes a fim de contar as transaes. Os autores concluram que a Anlise de Pontos
de Funo pode ser usada no paradigma OO, pois o mtodo independente de
tecnologia. Entretanto, o mtodo no parece ter sido usado em projetos de
desenvolvimento de software com exceo dos projetos descritos neste artigo. Em
referncia a este trabalho, SMITH (1999) declarou que o nvel do caso de uso deve ser
descrito apropriadamente para o mapeamento ser vlido.
SMITH (1999) da Rational apresentou um framework para estimao baseado em
casos de uso, traduzido em Linhas de Cdigo (LOC). No foi feita mais nenhuma
pesquisa neste mtodo, embora a ferramenta Estimate Professional que fornecida
pela Software Productivity Center Inc. e a ferramenta CostXpert da Marotz Inc.
produzirem estimativas de esforo por caso de uso, calculando o nmero de Linhas de
Cdigo.
LONGSTREET (2001), da Software Metrics, observou que aplicar Pontos de
Funo ajuda a determinar se o caso de uso est escrito em um nvel adequado de
detalhes. Se for possvel descrever como os dados passam do ator para dentro da
fronteira ou como os fluxos de dados de dentro da fronteira de aplicao passam para o
ator, ento quer dizer que o nvel de detalhes est correto, fora isso o caso de uso
necessita de mais detalhes. Adotando ambos os mtodos Pontos de Caso de Uso e
Pontos de Funo, a qualidade do documento de requisitos pode ser melhorada. Dessa
forma, a medio e estimativa so melhoradas.
Outros trabalhos como o de ANDRADE (2004), fizeram a combinao dos
mtodos Pontos de Caso de Uso com Pontos de Funo. Este trabalho teve como
objetivo propor aos gerentes uma melhor forma de estimar, revisar e recalcular o
tamanho do projeto medida que novos artefatos estejam disponveis durante o
processo de desenvolvimento do projeto de software orientado a objetos (ANDRADE
& OLIVEIRA, 2004). Os autores estudaram as principais caractersticas da APF e PCU
e padronizaram os procedimentos de contagem da APF e PCU para projetos de software
32
33
34
35
36
(1) TDE = N * T
onde TDE o Tempo total de Desenvolvimento Estimado para o software.
Esta tcnica de estimativa tende a ser pouco precisa, pois a simples mdia no
dar bons resultados quando a complexidade dos casos de uso for varivel, ou seja,
espera-se que pelas caractersticas distintas dos projetos e diversidade de tipos de casos
de uso, o desvio padro seja muito alto.
Sendo assim, necessrio adicionar a esta equao uma medida de complexidade
para cada caso de uso, o que ser apresentado na subseo seguinte.
N
i =1
complex(uci )
N
i =1
complexidade atribudos a cada caso de uso em um projeto, deve ser igual ao nmero de
37
casos de uso do projeto. Porm, essa situao s ocorre em um projeto ideal. Na prtica,
os projetos tendem a ter casos de uso mais simples ou mais complexos na mdia e a
frmula
N
i =1
N
i =1
complex(uc i ) N ,
mais simples sero os casos de uso do projeto, e quanto mais positivo for este valor,
mais complexos sero os casos de uso do projeto.
N
i =1
complex(uci )
38
N
i =1
complex(uci )
Neste ponto da anlise em que apenas a listagem dos casos de uso est disponvel,
um analista poder fazer uma previso de esforo mais precisa medida que conhecer
valores mdios histricos para os elementos da equao (4). No sendo conhecidos
alguns destes valores, a frmula pode ser simplificada para as equaes (3), (2) ou (1),
perdendo preciso em cada uma delas.
39
40
dos casos de uso pode-se aprimorar a estimativa dos valores complex(uc) para definir o
tempo de desenvolvimento de um caso de uso baseado no nmero de transaes
obrigatrias (to) :
(5) complex(uc) = f uc
NUC
i =1
complexuc (toi )
Onde: complexuc (to) uma funo que estabelece uma medida de complexidade
para uma transao obrigatria, N uc o nmero de transaes obrigatrias do caso de
uso uc e f uc o fator de aumento esperado no nmero de transaes obrigatrias nas
fases posteriores da anlise.
Aplicando-se a frmula 5 em 4, obtm-se uma equao para a estimativa de
esforo que considera no s o nmero de casos de uso, mas tambm a complexidade
individual de cada caso de uso, calculada a partir do nmero de transaes obrigatrias,
sua complexidade estimada e o fator de aumento do nmero destas transaes no caso
de uso medida que a anlise prossegue:
(6) TDE = TFI + T * f
N
i =1
f uci
N uci
j =1
complex uc (to j )
N N uc i
i =1 j =1
complex uc (to j )
41
expandidos (
N N uci
i =1 j =1
N
i =1
N uci .
42
43
N N uc i
i =1 j =1
( p1* n
par
44
45
4 Avaliao
46
Fluxo Principal
Fluxos Alternativos
1. O cliente chega no balco 3a. O cliente no possui cadastro
3a.1 O cliente informa seus dados para cadastro.
com os livros que pretende
emprestar.
3a.2 O funcionrio registra o cadastro.
3a.3 Retorna ao Fluxo Principal no passo 3.
2. O cliente se identifica e
entrega os livros para o
3b. O cliente est com sit. pendente (Pgto em aberto)
funcionrio.
3b.1 O cliente efetua o pagamento.
3b.2 O funcionrio registra pagamento, eliminando a
3. O funcionrio registra o
pendncia.
cliente e inicia o
3b.3 Retorna ao Fluxo Principal no passo 3.
emprstimo.
4a. O livro est reservado
4a.1 O funcionrio informa que o livro no pode ser
4. O funcionrio registra
emprestado pois possui reserva.
cada livro.
4a.2 Retorna ao Fluxo Principal no passo 4 sem
registrar o livro reservado.
5. O funcionrio finaliza o
emprstimo, entrega os
livros de volta para o cliente 4b. O livro est danificado
4b.1 O funcionrio informa que o livro precisar de
avisando a data de
manuteno e no poder ser emprestado.
devoluo.
4b.2 O funcionrio registra que a fita est danificada.
4b.3 Retorna ao Fluxo Principal no passo 4, sem
6. O cliente vai embora com
registrar o livro danificado.
os livros.
Abaixo, o mesmo caso de uso (Quadro 7) com a classificao dos passos sugerida
por WAZLAWICK (2004):
47
Fluxo Principal
1. O cliente chega no balco com os
livros que pretende emprestar.
2. O cliente se identifica e entrega os
livros para o funcionrio.
Fluxos Alternativos
3a. O cliente no possui cadastro
3a.1 O cliente informa seus dados para
cadastro.
3a.2 [EV] O funcionrio registra o cadastro.
3a.3 Retorna ao Fluxo Principal no passo 3.
3. [EV] O funcionrio registra o cliente 3b. O cliente est com situao pendente
e inicia o emprstimo.
(Pagamento em aberto)
3b.1 O cliente efetua o pagamento.
4. [EV] O funcionrio registra cada
3b.2 [EV] O funcionrio registra
livro.
pagamento, eliminando a pendncia.
3b.3 Retorna ao Fluxo Principal no passo 3.
5. [RS] O funcionrio finaliza o
emprstimo, entrega os livros de volta 4a. O livro est reservado
para o cliente avisando a data de
4a.1 [RS] O funcionrio informa que o livro
devoluo.
no pode ser emprestado pois possui
reserva.
6. O cliente vai embora com os livros.
4a.2 Retorna ao Fluxo Principal no passo 4
sem registrar o livro reservado.
48
Contagem de passos
E1 E2 E3 E4 E5
UC 1: Reservar Livro
5 9 6 4 6
UC 2: Emprestar Livro
4 8 17 4 16
UC 3: Registrar Devoluo 5 12 9 8 6
UC 4: Registrar Pagamento 6 11 6 4 7
TOTAL
20 40 38 20 35
E6
6
7
4
5
22
E7
7
18
11
36
E8
14
18
20
52
E9
8
12
9
29
Contagem EV e RS
E1 E2 E3
UC 1: Reservar Livro
3 5 4
UC 2: Emprestar Livro
3 4 7
UC 3: Registrar Devoluo 3 5 5
UC 4: Registrar Pagamento 4 5 4
TOTAL
13 19 20
E6
3
3
3
3
12
E7
4
9
5
18
E8
5
8
9
22
E9 E10 E11
4 2
4
6 6
6
5 5
4
15 13 14
E4
2
3
4
3
12
E5
2
6
3
4
15
DP
2,83
5,39
4,50
2,43
9,65
DP
1,13
2,07
1,69
0,75
3,47
Contagem de passos
UC 1: Reservar Quarto
UC 2: Cancelar Reserva do Quarto
UC 3: Registrar Servios Adquiridos
UC 4: Registrar Pagamento
TOTAL
E1
9
5
2
4
E2
13
5
10
7
E3
8
3
5
6
20
35 22 23 20 25 19 20
Contagem EV e RS
UC 1: Reservar Quarto
UC 2: Cancelar Reserva do Quarto
UC 3: Registrar Servios Adquiridos
UC 4: Registrar Pagamento
TOTAL
E1
5
3
2
2
E2
4
2
5
3
12
14 13 13 10 12 11 11
E3
4
2
3
4
E4
8
4
4
7
E4
3
2
3
5
E5
8
3
9
E5
4
2
4
E6
11
3
5
6
E6
5
1
3
3
E7
6
3
5
5
E7
3
2
3
3
E8
8
7
5
E8
4
4
3
Mdia
8,88
3,25
4,75
6,13
DP
2,17
1,58
3,01
1,55
23,00
5,24
Mdia
4,00
1,75
2,88
3,38
DP
0,76
0,89
1,46
0,92
12,00
1,31
49
50
Mdia
25%-75%
Fora de 25%-75%
Fora da Escala
51
52
Mdulo Financeiro
Porcentagem de erro
Empresa
440,0
-0,02
PCU
647,9
0,44
Obrigatrios
486,3
0,08
Real
450,0
-
Mdulo Secretaria
Porcentagem de erro
360,0
-0,40
769,4
0,28
456,6
-0,24
600,0
-
Totais
Porcentagem de erro
800
-0,24
1417
0,35
943
-0,10
1050
-
A coluna Empresa mostra os valores que foram gerados pela empresa, usando o
mtodo PCU adaptado pela empresa, usando os fatores de complexidade tcnica e os
fatores ambientais. Os pesos usados pela empresa no foram informados, somente as
estimativas finais foram disponibilizadas. As colunas PCU e Obrigatrios foram
geradas similarmente, a nica diferena foram o nmero de passos considerados pelo
caso de uso. Em ambos os casos os seguintes clculos foram realizados:
a) Os atores foram classificados de acordo com as regras originais do mtodo PCU;
b) Os casos de uso foram classificados conforme o mtodo de contagem utilizado
(todos os passos ou somente os passos obrigatrios).
c) Os fatores ambientais foram todos ajustados para Mdio (3), visto que no foi
passado os valores utilizados na estimativa realizada pela empresa. Os fatores de
complexidade tcnica foram ignorados como proposto na literatura.
d) A produtividade foi seguida pela proposta de KARNER (1993), com 20
homens/hora por caso de uso.
53
mdulos e produziu resultado melhor que a experincia dos analistas da empresa para o
segundo mdulo e para a soma dos mdulos. Porm, as informaes para calcular os
fatores de complexidade tcnica e o valor da produtividade da equipe no foram
repassados pela empresa. Com isto, pode-se considerar que talvez os dados utilizados
no foram calibrados, ou foram definidos valores que no correspondiam a estimativa
da empresa.
Diante destas informaes, a hiptese de que a classificao iria gerar estimativas
muito abaixo do tempo efetivamente gasto no foi confirmada, mas ao contrrio, foram
geradas estimativas mais precisas.
4.3 Estudo
de
Caso
Avaliao
do
Tempo
de
54
Portanto, nesta etapa calculou-se que o tempo mdio para o desenvolvimento dos
artefatos derivados de um caso de uso deste tipo de sistema com esta equipe foi de
aproximadamente 12 horas e 07 minutos.
Com estes dados apenas, a equao de estimao de esforo da fase de concepo
poderia ser definida como:
(9) TDE = TFI + 12,7 * 1,2 * N = TFI + 15,24 * N
Para cada caso de uso identificado por esta equipe em futuros sistemas do mesmo
tipo, 15,24 horas em mdia sero necessrias para o desenvolvimento. O valor de TFI
no depende do nmero de casos de uso do sistema e deve, portanto, ser estimado
separadamente.
Pressupe-se que, com o aumento da experincia da equipe esse valor 15,24 v
diminuindo at atingir um mnimo, que corresponde ao mximo desempenho possvel
da equipe com a tecnologia de desenvolvimento disponvel. Investimentos em
treinamento, melhoria de processo e automatizao aumentaro inicialmente o valor de
TFI , mas com o tempo diminuiro o limite mnimo de T * f , correspondendo, portanto
os ganhos permanentes.
55
5 Concluses
57
58
Referncias Bibliogrficas
ANDA, B.; DREIEM, H.; JORGENSEN M.; SJOBERG, D. (2001) Estimating
Software Development Effort based on Use Cases Experience from Industry. In
M. Gogolla, C. Kobryn (Eds.): UML 2001 - The Unified Modeling Language.
Springer-Verlag. 4th International Conference, Toronto, Canada, October 1-5, 2001,
LNCS 218.
ANDA, B. (2002) Comparing Effort Estimates Based on Use Case Points with Expert
Estimates. Empirical Assessment in Software Engineering (EASE 2002), Keele, UK,
April 8-10.
ANDRADE, E.L.P. (2004) Pontos de Caso de Uso e Pontos de Funo na gesto de
estimativa de tamanho de projetos de software orientados a objetos. Programa de
Ps-Graduao em Gesto do Conhecimento e Tecnologia da Informao. Mestrado.
Universidade Catlica de Braslia. Braslia. 143 p.
ANDRADE, E.L.P. Oliveira, K.M. (2004) Gesto de estimativa de tamanho de projetos
de software orientado a objetos. Universidade Catlica de Braslia.
BANERJEE, G. (2001) Use Case Points an estimation approach. Disponvel em:
<http://www.bfpug.com.br/artigos.htm>. Acesso em: 10/08/2004.
COCKBURN, A. (2005) Escrevendo Casos de Uso Eficazes: um guia prtico para
desenvolvedores de software. Trad. Roberto Vedoato. Porto Alegre: Bookmam.
FATTOCS. Perguntas e Respostas sobre Anlise de Pontos de Funo. Disponvel em:
http://www.fattocs.com.br/faq.asp. Acesso em: 05/2007.
FEITOSA, C.; JANSEN, S. Processo de estimativa e acompanhamento de tamanho e
esforo para o ProSCes. In: Encontro da Qualidade e produtividade em software
(EQPS), 2003, Fortaleza. Fortaleza, MCT.
FREIRE, Herval. (2003) Calculando Estimativas: o Mtodo Pontos de Caso de Uso,
Developers Magazine, n 78, Fevereiro.
FENTON, N.E.; PFLEEGER, S.L. (1997) Software Metrics. A Rigorous and Practical
Approach. Cambridge University Press.
KARNER, Gustav. (1993). Resource Estimation for Objectory Projects. Objectory
Systems, September.
KARNER, Gustav. (1993b). Metrics for Objectory. Thesis at the University of
Linkopmg, Sweden.LiTH-IDA-Ex-9344;21. December.
KITCHENHAM, B.; KNSL, K. (1997) Inter-item correllation among function
points. National Computing Centre Ltd, UK and VTT, Finland.
LARMAN, Craig. (2002) Applying UML and patterns: an introduction to objectoriented analysis and design and iterative development. Prentice-Hall, second
edition.
LONGSTREET, D. (2001) Use cases and function points. Copyright Longstreet
Consulting Inc. www.softwaremetrics.com.
60
Referncias Consultadas
Antoniol G.; Calzolari F.; Cristoforetti L.; Fiutem, R.; Caldiera, G. (1998) Adapting
Function Points To Object Oriented Information Systems. Lecture Notes In
Computer Science. Proceedings of the 10th International Conference on Advanced
Information Systems Engineering: 59 76.
ANDA, B.; MOHAGHEGHI, P; CONRADI, R. (2005) Effort Estimation of Use Cases
for Incremental Large-Scale Software Development. ICSE 2005: St. Louis, MO,
USA. Session: Empirical Software Engineering. Pages: 303 - 311.
ANDA, B. (2003) Empirical Studies of Construction and Application of Use Case
Models. Department of Informatics. Faculty of Mathematics and Natural Sciences.
University of Oslo, 2003.
ARNOLD M, PEDROSS P. Software Size Measurement and Productivity Rating in a
Large-Scale
Software
Development
Department.
Disponvel
em:
<http://www.bfpug.com.br/artigos.htm>. Acesso em: 05/2004.
BANERJEE, G. Use Case Estimation - Framework. Annual IPML Conference, 2004.
Disponvel em:
<www.qaiindia.com/Conferences/presentations/gautam_birlasoft_pre.pdf>. Acesso
em: 10/08/2004.
BARONI, A.L. (2002) Formal Definition of Object-Oriented Design Metrics. Faculty of
Sciences In Collaboration with Ecole des Mines de Nantes France and
Universidade
Nova
de
Lisboa
Portugal.
Disponvel
em:
<http://ctp.di.fct.unl.pt/QUASAR/Resources/Papers/2002/ThesisAline.pdf>. Acesso
em: 03/2007.
CALDIERA G, LOKAN C, ANTONIOL G, FIUTEM R, CURTIS S, COMMARE GL
e MAMBELLA E. Estimating Size and Effort for Object Oriented System.
Disponvel em: <http://citeseer.ist.psu.edu/456963.html>. Acesso em: 02/2005.
COCKBURN,
A.
Use
Case
Fundamentals.
Disponvel
<http://alistair.cockburn.us/index.php/Use_case_fundamentals>.
Acesso
02/2006.
em:
em:
62
Disponvel
em:
Apndice
Sumrio Executivo
Sumrio Executivo
O sistema ir controlar o emprstimo e a devoluo de livros da biblioteca, bem
como as reservas e cancelamento de reservas. O sistema dever fazer a cobrana de
multas pelo atraso na devoluo dos livros.
64
Segurana
Interface
NF 2.2 Validao do
CPF
Segurana
Segurana
NF 3.2 Validao do
CPF
Segurana
Segurana
65
NF 4.2 Identificao
do cliente
NF 4.3 Identificao
do Livro
NF 4.4 Identificao
do Funcionrio
Segurana
Interface
Interface
Interface
NF 5.2 Identificao
do cliente
NF 5.3 Identificao
do Livro
NF 5.4 Multa
Segurana
Interface
Interface
Interface
NF 6.2 Identificao
do cliente
Segurana
Interface
66
NF 7.2 Identificao
do cliente
NF 7.3 Identificao
do Livro
NF 7.4 Enviar email
Segurana
Interface
Interface
Especificao
Segurana
Devolver Livros
Reservar Livros
Referncias
cruzadas
Cliente,
O cliente se identifica e identifica os F1,
F2,
Funcionrio livros que deseja levar. O funcionrio F3,
F4,
faz o registro e libera os livros para F6
emprstimo.
Cliente,
O cliente entrega ao funcionrio os F1,
F2,
Funcionrio livros. O funcionrio faz o registro da F3,
F4,
devoluo e o cliente efetua o F5
pagamento devido.
Cliente,
O cliente solicita a reserva de um ou F1, F2,
Funcionrio mais livros. O funcionrio registra a F3, F4,
reserva.
F7
Atores
Descrio
67
A E C Observaes
Livro
Funcionrio
F2
Cliente
Emprstimo
Reserva
Ref. Cruzadas
emprstimos
F1
As letras acima referem-se a Insero (I), Alterao (A), Excluso (E) e Consulta
(C).
Ref. Cruzadas
Livros Cadastrados
F1
Funcionrios Registrados
F2
Clientes Cadastrados
F3
Emprstimos do Ms
F1, F3, F4
Reservas Cadastradas
F7
68
69
70
Ator
Complexo
UAW
Classificao de Ator
Peso Quantidade Total UAW
3
2
6
6
Total
5
20
25
71
Concluindo, o Sistema de Biblioteca aqui especificado, levaria 620 horas para ser
desenvolvido. Que poderamos calcular em dias, ou seja, 620 horas dividido por 8 horas
dirias, chegando ao resultado de aproximadamente 78 dias ou pouco mais de 2 meses e
meio.
Anexo 1
N do caso de uso
Atores primrios
Tesoureiro
Atores secundrios
Fluxo principal
1.
2.
3.
4.
5.
6.
Fluxos alternativos e 3.1 O tesoureiro poder alterar a tabela de anuidades neste passo.
excees
N do caso de uso
Atores primrios
Tesoureiro
Atores secundrios
Fluxo principal
7.
8.
9.
Fluxos alternativos e 3.1 Caso o tesoureiro desejar parcelar uma taxa, ele deve repetir o fluxo principal
n vezes, onde n corresponde o nmero de parcelas.
excees
N do caso de uso
CU 03 Receber Arrecadao.
Atores primrios
Tesoureiro
Atores secundrios
Sacado, Sistema.
Fluxo principal
10.
11.
12.
13.
Fluxos alternativos e 4.1 [EV] Se o pagamento for com cheque, sistema ir solicitar o cadastro do
cheque.
excees
N do caso de uso
Atores primrios
Tesoureiro
Atores secundrios
Banco, Sistema.
Fluxo principal
!
Fluxos alternativos e
excees
"
73
N do caso de uso
Atores primrios
Tesoureiro
Atores secundrios
Sistema.
Fluxo principal
18.
19.
20.
21.
22.
Fluxos alternativos e
excees
N do caso de uso
Atores primrios
Tesoureiro
Atores secundrios
Sistema.
Fluxo principal
Fluxos alternativos e
excees
N do caso de uso
Atores primrios
Tesoureiro
Atores secundrios
Sistema.
Fluxo principal
26.
27.
28.
29.
Fluxos alternativos e
excees
Anexo 2
N do caso de uso
CU 01 Manter Requerimentos
Atores primrios
Secretrio
Atores secundrios
Requerente
Fluxo principal
N do caso de uso
CU 02 Tramitar requerimentos
Atores primrios
Atores secundrios
Sistema
Fluxo principal
75
N do caso de uso
CU 03 Enviar correspondncias
Atores primrios
Secretrio
Atores secundrios
Sistema
Fluxo principal
Fluxos alternativos e No h.
excees
N do caso de uso
CU 04 Receber correspondncias
Atores primrios
Secretrio
Atores secundrios
Sistema, Superintendente
Pr-condies
Fluxo principal
76
N do caso de uso
CU 05 Tramitar correspondncias
Atores primrios
Atores secundrios
Sistema
Pr-condies
1.
2.
3.
Fluxo principal
CU 06 Manter corretores
Atores primrios
Secretrio
Atores secundrios
Sistema, Corretor
Pr-condies
1.
2.
Fluxo principal