41
_ ADÃO VOLMIR ACOSTA CARACIOLO AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E INCLUDE NO MÉTODO PONTOS POR CASO DE USO CANOAS, 2009

AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

Embed Size (px)

Citation preview

Page 1: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

_

ADÃO VOLMIR ACOSTA CARACIOLO

AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E INCLUDE NO MÉTODO PONTOS POR CASO DE USO

CANOAS, 2009

Page 2: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

1

ADÃO VOLMIR ACOSTA CARACIOLO

AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E INCLUDE NO MÉTODO PONTOS POR CASO DE USO

Trabalho de conclusão apresentado à banca examinadora do curso de Ciência da Computação do Centro Universitário La Salle – Unilasalle, como exigência parcial para obtenção do grau de Bacharel em Ciência da Computação, sob orientação do Prof. Ms. Abraham Lincoln Rabelo de Sousa.

CANOAS, 2009

Page 3: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

2

TERMO DE APROVAÇÃO

ADÃO VOLMIR ACOSTA CARACIOLO

AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E INCLUDE NO MÉTODO PONTOS POR CASO DE USO

Trabalho de conclusão aprovado como requisito parcial para a obtenção do grau de

Bacharel do Curso de Graduação em Ciência da Computação do Centro Universitário La Salle – Unilasalle, pela seguinte banca examinadora:

Prof. Ms. Abraham Lincoln Rabelo de Souza UFRGS

Prof. Ms. Marcos Ennes Barreto UFRGS

Prof. Ms. Roberto Petry UFRGS

Canoas, 8 de junho de 2009.

Page 4: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

3

RESUMO

Determinar o esforço no desenvolvimento de software é um grande desafio enfrentado pela gerência de projetos. O uso das métricas disponibilizadas pela Engenharia de Software propõe auxiliar nesse desafio. Com o advento da Orientação Objeto, surgiu o método Pontos por Caso de Uso (PCU), no entanto, as empresas enfrentam dificuldades para aplicá-lo devido à falta de padrão dos casos de uso. Este trabalho propõe avaliar o impacto nos resultados apresentados pelo PCU, considerando as propostas de contar ou não os casos de uso do tipo extend e include. Palavras-chave: Estimativa. Casos de uso. PCU. Estendido. Incluído.

ABSTRACT

Determining the effort in software development is a huge challenge faced by project management. The use of metrics provided by Software Engineering should assist in this challenge. Since the creation of the Object-Orientation it was created the Use Case Points method (UCP), however, the companies find difficulties to apply it due to a lack of a standard in use cases. The objective of this work is to evaluate the impact in the results presented by UCP, considered the fact of counting (or not) the use cases of extend and include kind. Key words: Estimation. Use cases. UCP. Extend. Include.

Page 5: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

4

SUMÁRIO

1 INTRODUÇÃO .........................................................................................................5

2 MÉTRICAS PARA ESTIMAR TAMANHO DE SOFTWARE....................................7

2.1 Métricas no processo de desenvolvimento de software .................................9

2.2 Pontos por Caso de Uso...................................................................................11

2.3 Padrões para aplicação da PCU.......................................................................14

2.4 Considerações finais sobre o capítulo............................................................18

3 CARACTERIZAÇÃO DO ESTUDO .......................................................................20

3.1 Modelo aplicado ................................................................................................21

4 AVALIAÇÃO DO TRABALHO...............................................................................24

4.1 Avaliação do trabalho realizado.......................................................................24

4.2 Critérios aplicados no modelo anterior...........................................................27

4.3 Avaliação do trabalho sem considerar fatores externos ...............................28

4.4 Avaliação dos resultados apresentados .........................................................31

5 CONCLUSÃO ........................................................................................................35

5.1 Trabalhos futuros ..............................................................................................36

REFERÊNCIAS.........................................................................................................38

Page 6: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

5

1 INTRODUÇÃO

Diante do cenário mundial cada vez mais competitivo e dinâmico, as empresas

que desenvolvem software devem estar em constante evolução na busca da

excelência dos seus produtos e serviços, proporcionando o desenvolvimento de

novos negócios e sua afirmação no mercado. Para atingir suas metas as empresas

dependem de projetos bem gerenciados.

Um projeto bem gerenciado reflete na entrega do produto dentro do orçamento,

no prazo contratado e com a qualidade desejada pelo cliente. Para atingir esses

objetivos, as empresas devem estar em constante aperfeiçoamento dos seus

processos de desenvolvimento de software, controle dos projetos e a utilização de

novas tecnologias de desenvolvimento.

Dentro do processo de desenvolvimento de software, surgem as métricas que

são essenciais como elementos de gestão (CARVALHO, 2004), já que, segundo

DeMarco (1982), “não se consegue controlar aquilo que não se consegue medir”.

O grande desafio das empresas que desenvolvem software é conseguir

mensurar e estimar de forma precisa seus projetos, evitando divergências nas

estimativas de tamanho, tempo e custo. Essas divergências têm sido a causa de

constantes atritos entre as áreas de negócios e áreas de Tecnologia da Informação

(TI), pois, na maioria das vezes, o orçamento e a previsão de entrega do produto

não condizem com a realidade. As consequências disso são, segundo Calazans,

Oliveira e Dias (2004), insatisfação do cliente, perda da qualidade, perdas

financeiras e desgastes entre os profissionais envolvidos no processo.

No decorrer do tempo dentro da engenharia de software, diversas métricas

foram criadas para auxiliar nesse desafio de estimar. Dentre as métricas

disponibilizadas, está o método Pontos por Caso de Uso (PCU), que trata de estimar

o tamanho de um sistema de acordo com a visão do usuário final, utilizando como

base os artefatos de caso de uso (ANDRADE, 2004). O PCU surgiu com o advento

Page 7: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

6

da orientação objeto, no entanto, as empresas enfrentam dificuldades na utilização

do método devido à falta de padrão de refinamento dos casos de uso, afetando

diretamente as estimativas de tamanho, tempo e custo (FREIRE, 2003).

Essa falta de padrão de refinamento dos casos de uso também decorre por ser

uma métrica nova perante as outras que já estão consolidadas como, por exemplo, a

Análise de Pontos de Função (APF), que apresenta resultados reais, já

demonstrados por diversos estudos, como em Andrade (2004). A aceitação e

aplicação da técnica APF pelo mercado se deu graças ao trabalho dos

pesquisadores no sentido da busca de soluções e padronização para resolução de

problemas em estimativa, o que também deve ser feito para o método PCU.

Nesse contexto, existem diversos trabalhos relacionados a padrões para

aplicação do PCU. Entre os assuntos abordados nessas pesquisas – entre elas

Anda et al. (2001) e Ribu (2001) –, é proposta a contagem dos casos de uso

estendidos e incluídos separadamente, uma única vez, e não como uma transação

de cada caso de uso que o utiliza. No entanto, Karner o criador do PCU (1993), não

recomenda a contagem dos casos de uso estendidos e incluídos.

Entretanto, apesar dos pesquisadores Anda e Ribu discordarem de Karner em

relação à contagem dos casos de uso, não foi localizado nenhum trabalho que

demonstre qual é o impacto de considerar ou não os casos de uso do tipo extend e

include no resultado das estimativas produzidas pelo PCU.

Assim, este estudo tem o seguinte objetivo: avaliar qual a influência do uso ou

não de casos de uso do tipo extend e include no resultado das estimativas

produzidas pelo PCU. A motivação para este trabalho está em avaliar se o impacto

da contagem desses casos de uso é relevante ou não nas estimativas e o quanto

isso afeta o resultado produzido pelo PCU.

Este trabalho está organizado em seis seções. A seção 2 é composta pela

fundamentação teórica e trabalhos relacionados, nos quais são apresentadas as

métricas, suas aplicações no processo de desenvolvimento de software, bem como

os padrões já propostos por pesquisadores. A seção 3 descreve a caracterização do

estudo, identificando qual é o problema e como será resolvido. Na seção 4, é

apresentado o resultado obtido através da avaliação do trabalho realizado. A seção

5 apresenta a conclusão e possíveis trabalhos futuros e, na seção 6, encontram-se

relacionadas às referências bibliográficas utilizadas no trabalho..................................

Page 8: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

7

2 MÉTRICAS PARA ESTIMAR TAMANHO DE SOFTWARE

A partir da década de 90, as empresas passaram a se preocupar em melhorar

o processo de desenvolvimento de software, seguindo normas e modelos para medi-

lo. Até então, as empresas não julgavam necessário o planejamento e controle de

projetos. No entanto, para o sucesso da implantação de um projeto, o mesmo deve

ser implantado com planejamento, programação e controle. Nesse contexto, as

métricas de software são essenciais no auxílio do controle no gerenciamento de

projetos (MENESES, 2001).

Segundo Calazans, Oliveira e Dias (2004), uma medida é referente a um valor

de uma métrica, o qual fornece uma indicação de quantidade, capacidade, dimensão

ou tamanho de algum produto de software ou de um processo.

Ultimamente, as métricas têm evoluído no sentido de resolver problemas que

afetam as estimativas, ou seja, problemas que geram divergências entre os valores

estimados e os valores realizados. Essa evolução ocorreu graças ao trabalho dos

pesquisadores no sentido da busca de soluções e padronização para os diversos

problemas e desafios em estimar tamanho de software (MENESES, 2001).

Entre os estudos já realizados (CALAZANS; OLIVEIRA; DIAS, 2004 e

MENESES, 2001), foi identificado que tais divergências muitas vezes decorrem de

alguns fatos, tais como:

a) aumento de escopo;

b) requisitos não bem definidos;

c) requisitos não bem conhecidos por todos;

d) maior detalhamento dos requisitos na fase do planejamento;

e) surgimento de requisitos secundários;

f) software é um produto de alto grau de abstração;

g) os analistas utilizam muito mais a intuição do que o embasamento;

h) pressões por interesses;

Page 9: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

8

i) pressões políticas.

Conforme concluiu Meneses (2001), isso pode acarretar problemas como:

a) sobrecarga de trabalho sobre a equipe;

b) desgastes com o cliente pelo atraso;

c) redução de escopo;

d) má estimativa de custos;

e) prejuízos financeiros;

f) perda da qualidade;

g) até mesmo a interrupção do desenvolvimento do projeto. Segundo Meneses (2001) e Peñalvo, Escudero e García (2001), uma métrica

para ser útil e de qualidade deve ser:

a) simples - a definição deve ser simples e o uso da métrica deve ser prático;

b) objetiva - deve indicar claramente, para que diferentes pessoas possam

encontrar valores aproximados, idênticos; devem ter consistência para

evitar interpretações individuais;

c) robusta - a métrica deve ser insensível a mudanças irrelevantes, para

permitir comparações com dados mais úteis;

d) válida - a métrica deve medir o que se pode medir, pois isso dá

confiabilidade à medida.

No decorrer do tempo, diversas métricas foram criadas para auxiliar no desafio

de estimar o tamanho de software. Entre as métricas existentes, podemos citar: LOC

(Linhas de Código); COCOMO (Constructive Cost Model); COCOMO II; APF

(Análise de Pontos de Função) e a PCU (Ponto por Caso de Uso).

A métrica LOC (Lines of Code) objetiva indicar o tamanho de um sistema

basicamente contando o número de linhas de código existente. Provavelmente essa

seja a métrica mais básica dentro do universo de desenvolvimento de software.

Outra métrica é a COCOMO (Constructive Cost Model) e sua evolução

COCOMO II. Este método objetiva medir esforço, prazo, tamanho da equipe e custo

necessário para o desenvolvimento de software, desde que se tenha uma dimensão

do tamanho do mesmo, por meio de um modelo de estimativa. O COCOMO (oriundo

de 1981) teve a sua versão atualizada em 2000, sendo substituído pelo COCOMO II,

que estima o custo e tempo baseado em pessoas/mês e meses. O modelo ainda

prevê um coeficiente de risco de 20% adicional ao tempo computado, como margem

de erro.

Page 10: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

9

A APF (Function Point Analysis) foi desenvolvida em 1979 por Allan Albrecht e

refinada posteriormente pelo IFPUG (International Function Point Users Group),

objetiva medir a complexidade de produto pela quantificação de funcionalidade

expressa através da visão do usuário. Pode ser utilizada independente da tecnologia

usada no desenvolvimento de software e mede uma aplicação a partir das funções

desempenhadas por solicitação do usuário final.

O processo de contagem da APF é realizado em sete passos, sendo que a

métrica efetua o cálculo através dos pontos de função, que são os dados ou

transações do sistema, aplicando à complexidade de cada função como: Baixa,

Média ou Alta. A métrica APF é a mais utilizada pelo mercado, porém, só prevê

estimativas mais precisas à medida que obtém maiores informações no decorrer do

desenvolvimento do projeto.

Maiores detalhes sobre a APF poderão ser encontrados em Vazquez, Simões

e Albert (2005).

O PCU (Ponto por Caso de Uso) é um método criado por Gustav Karner, em

1993, com o propósito de poder estimar o tamanho de um projeto de software

orientado a objeto ainda na fase de levantamento dos casos de uso.

O PCU é baseado na Análise por Pontos de Função, para estimar tamanho de um sistema de acordo com o modo que os usuários finais o utilizarão e a complexidade de ações requeridas por cada tipo de usuário final (FREIRE, 2003).

Sobre o PCU, será abordado com mais detalhe na seção 2.2.

2.1 Métricas no processo de desenvolvimento de software

As métricas no processo de desenvolvimento de software devem ser aplicadas

independentemente do modelo de ciclo de vida (por exemplo: cascata, espiral,

prototipação, RUP). No entanto, as métricas utilizam artefatos disponibilizados pela

Engenharia de Software (PEÑALVO; ESCUDERO; GARCÍA, 2001).

A medição pode ser aplicada durante uma ou mais etapas do ciclo de

desenvolvimento de software: especificação de requisitos, análise de requisitos,

modelagem, implementação, depuração, manutenção e documentação (CHÁVEZ,

2005 e PEÑALVO; ESCUDERO; GARCÍA, 2001); porém, cada métrica tem que

Page 11: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

10

focar objetivos específicos e bem definidos. Dessa forma, uma métrica aplicada para

estimar o tamanho de código não pode ser utilizada com finalidade de medir a

qualidade do software.

O estudo publicado em Abreu (1996) sugere adotar alguns critérios na

aplicação de métricas, sendo que as mesmas devem ser: bem definidas;

dimensionáveis ou expressas em alguma unidade; obtidas o mais cedo possível no

ciclo de vida do sistema; facilmente calculadas; estar em uma escala que aumente a

precisão; vistas como probabilidade, de forma que permita a aplicação de teorias

estatísticas sobre as mesmas.

Dentro do desenvolvimento de software, as métricas podem ser aplicadas:

a) no planejamento - as informações dos projetos anteriores poderão ser

utilizadas nas estimativas do novo projeto de software;

b) durante o desenvolvimento - medições são coletadas e analisadas em

relação às estimativas propostas inicialmente;

c) ao término do desenvolvimento - as medições são coletadas e analisadas

em relação às estimativas propostas inicialmente.

A Figura 1 apresenta a aplicação das métricas no processo de

desenvolvimento de software.

Figura 1 - Aplicação das métricas dentro do processo de desenvolvimento de software Fonte: Autoria própria, 2007.

O método PCU foi criado para estimar projetos com base no modelo de casos

de uso gerado no início do projeto. Dessa forma, a métrica pode ser aplicada ainda

Page 12: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

11

na fase de planejamento, na etapa de levantamento de requisitos, tão logo sejam

produzidos os casos de uso. Diferente do PCU, a métrica APF depende de mais

informações a respeito da complexidade de cada função (dados ou transações),

essas informações somente são identificadas ao longo do processo de

desenvolvimento de software. A principal vantagem do PCU em relação à APF é a

possibilidade de gerar estimativas mais cedo no ciclo de vida do processo de

desenvolvimento de software. Por esse motivo que este trabalho optou em explorar

a potencialidade da aplicação da PCU, buscando sua maior assertividade nas

estimativas de tamanho, geradas ainda no início do processo de desenvolvimento de

software. A APF somente tem melhores resultados à medida que obtém mais

informações de análise e do projeto de sistemas (ANDRADE, 2004).

2.2 Pontos por Caso de Uso

Proposto por Karner, em 1993, Pontos por Caso de Uso é um método com o

propósito de poder estimar o tamanho de um projeto de software ainda na fase de

requisitos. O método estima projetos de acordo com o modo que os usuários finais

utilizarão, com base nos atores, caso de uso e complexidade técnica e de ações

requeridas por cada tipo de usuário final, bem como na complexidade de ambiente,

por exemplo, equipe (FREIRE, 2003).

Após serem levantados os principais casos de uso, já é possível aplicar o PCU

para estimar o tamanho de um software. No entanto, como a análise de medição dos

casos de uso é feita a nível de sistema – o que possibilita diferenciar transações de

interações com o usuário –, o nível de detalhamento dos casos de uso influencia

diretamente nas estimativas. Sendo assim, casos de uso de nível muito alto (busines

modelling do sistema, descrevendo apenas as regras de modelagem do negócio) ou

casos de uso de nível muito baixo (caso de uso atômicos, descrevendo o sistema a

nível de interações do usuário com a interface) são inadequados para medição

(MONTEIRO; PIRES; BELCHIOR, 2004 e FREIRE, 2003).

Ultimamente, o que se tem discutido é sobre qual o nível ideal de

decomposição dos casos de uso para aplicação do PCU, “sendo essa a principal

falha da técnica” (HERVAL, 2003). O PCU apresenta seis etapas para aplicação do

método, no entanto, o grande desafio já começa nas duas primeiras, nas quais os

atores e os casos de uso, bem como suas complexidades, são identificados. Após

Page 13: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

12

essa identificação, são aplicados os pesos para o cálculo dos Unajusted Use Case

Points (UUCP)1 (TANAKA; BARROS; NUNES, 2005). Essas duas primeiras etapas

já influenciam diretamente na potencialidade de sucesso ou insucesso da aplicação

do método, conforme apresentam as Tabelas 1 e 2.

Tabela 1 - Classificação de Ator

Tabela da complexidade dos Atores

Complexidade Descrição Peso

Simples Muito poucas entidades de Banco de Dados envolvidas e sem nenhuma regra de negócio complexa / Outro sistema acessado pela API de programação

1

Médio Poucas entidades de Banco de Dados envolvidas e com algumas regras de negócios complexas / Outro sistema interage através de protocolo de comunicação TCP/IP

2

Complexo Muitas entidades de Banco de Dados envolvidas e regas de negócio complexas / Usuário interage com interface gráfica (web)

3

Fonte: Adaptado de Andrade (2004) e Ribu (2001).

Depois de identificados e classificados os Atores, é calculado o Unajusted

Actor Weight (UAW).

Tabela 2 - Classificação do caso de uso

Tabela da complexidade dos casos de uso

Tipo Descrição Peso

Simples Até 3 transações com menos de 5 classes de análise 5

Médio De 4 a 7 transações com 5 a 10 classes de análise 10

Complexo De 7 transações com pelo menos 10 classes de análise 15

Fonte: Adaptado de Andrade (2004) e Ribu (2001).

1 Tradução: Pontos de Caso de Uso Não Ajustados (PCUNA).

Page 14: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

13

Após identificados e classificados os casos de uso, é calculado o Unajusted

Use Case Weight (UUCW).

A soma do valor da quantidade de Atores multiplicado pela sua complexidade,

mais a soma do valor da quantidade de casos de uso multiplicado pela sua

complexidade, resulta no valor do Unajusted Use Case Points (UUCP).

UUCP = UAW + UUCW

UAW = (Quantidade de Atores x Complexidade) e,

UUCW = (Quantidade de Casos de Uso x Complexidade)

Maiores detalhes sobre o PCU poderão ser encontrados em Karner (1993) e

Tanaka, Barros e Nunes (2005).

A aplicação do PCU ocorre ainda na fase de planejamento, conforme

apresenta a Figura 2.

Figura 2 - Aplicação do método PCU durante o levantamento de requisitos Fonte: Autoria própria, 2007.

Dessa forma, pode-se entender a necessidade da busca de padrões no

momento de considerar o número de atores e os casos de uso com as suas

respectivas complexidades, pois no momento em que se considerar atores ou

transações inadequadas, estar-se-á afetando diretamente o resultado apresentado

pelo método Pontos por Caso de Uso (MONTEIRO; PIRES; BELCHIOR, 2004).

Destaca-se que o PCU também leva em consideração Fatores Técnicos

(relacionados às dificuldades de construir o sistema) e Fatores Ambientais

Page 15: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

14

(relacionados à experiência, motivação da equipe) (ANDA; MOHAGHEGHI;

CONRADI, 2005).

2.3 Padrões para aplicação da PCU

Conforme apresentado nas seções anteriores, a aplicação do PCU baseia-se

no artefato caso de uso, sendo assim, os casos de uso devem ser construídos de

forma que venham a garantir a confiabilidade para aplicação do PCU. No entanto, o

desafio é a inexistência de um padrão do nível ideal de decomposição dos casos de

uso para aplicação do método, algo que está presente nas discussões atuais, sendo

essa a principal falha do método segundo (MONTEIRO; PIRES; BELCHIOR, 2004 e

FREIRE, 2003).

Pode-se dizer que, além desse desafio na utilização da PCU, as contagens

podem variar: entre as organizações e indivíduos; devido aos diferentes casos de

uso; um estilo comum para especificação dos casos de uso pode levar ao sucesso

ou fracasso; não existem padrões para construção de casos de uso; não há como

garantir que a PCU está medindo a mesma coisa, se os critérios para a construção

de casos de uso são diferentes.

Diversos pesquisadores têm trabalhado para propor soluções a esses

problemas, sugerindo algumas diretrizes para elaboração dos casos de uso que

possam trazer uma maior padronização na construção dos mesmos, para aplicação

do método PCU com um maior potencial de assertividade. Para resolver o problema

do nível ideal de decomposição dos casos de uso que influenciam diretamente na

aplicação do PCU, os pesquisadores têm discutido principalmente a identificação

das transações e a generalização dos atores (ANDRADE, 2004).

Alguns pesquisadores (BELGAMO, 2004 e BELGAMO; FABBRI, 2004) têm

proposto a utilização de técnicas de leitura como a GUCCRA como forma de

contribuir fornecendo diretrizes para a construção dos modelos de casos de uso. No

entanto, há um consenso geral sobre o nível de detalhamento dos casos de uso,

sendo que o nível não pode ser nem muito alto, nem muito baixo, ou seja, não pode

se referir à modelagem de negócio do sistema nem à decomposição funcional dos

casos de uso.

Dentre os trabalhos relacionados, podemos destacar dois pesquisadores que

se aprofundaram no assunto, Anda e Ribu, que participaram juntos em 2002 do

Page 16: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

15

trabalho que aplicou o método Pontos por Caso de Uso numa empresa de

desenvolvimento de software.

O trabalho realizado por Anda, Angelvik e Ribu (2002) foi aplicar o método de

Karner em três projetos, concluindo que a estrutura dos casos de uso pode gerar

impacto nas estimativas, tais como: uso da generalização entre os atores; contagem

dos casos de uso estendido e incluído; nível de detalhes da descrição dos casos de

uso; entre outras dificuldades, a atribuição de valor para os fatores técnicos e

ambientais e taxa de produtividade por PCU. Já Karner, criador do método PCU, não

recomenda a contagem dos casos de uso estendidos e incluídos.

O trabalho publicado por Ribu (2001) também aplicou o método de Karner,

porém, considerando e não considerando os fatores de ajustes técnicos em projetos

de estudantes e da indústria.

Anda (2002) aplicou o método PCU como parte de três cursos de modelagem

de casos de uso de uma companhia internacional de TI. O objetivo desse trabalho

foi comparar as estimativas realizadas pelos especialistas com as estimativas

geradas pelo método PCU. Os resultados mostram que as estimativas geradas pelo

método foram mais próximas do que as estimativas geradas pelos especialistas. Ao

final do trabalho, o pesquisador concluiu que o método Pontos por Caso de Uso

pode ser utilizado com sucesso para estimar o tamanho de esforço no

desenvolvimento de software.

Destacam-se, entre os estudos realizados pelos pesquisadores Anda e Ribu,

as seguintes propostas:

a) contar os casos de uso estendido e incluído separadamente, uma única

vez, e não como uma transação de cada caso de uso que o utiliza;

b) generalizar os atores em um super ator, quando as descrições de dois ou

mais atores têm muito em comum;

c) utilizar formulário padrão para descrição dos casos de uso;

d) contar uma única vez uma transação quando a mesma ocorrer em diversos

casos de uso, pois uma vez implementada, a mesma será chamada por

outros casos de uso através de reuso;

e) utilizar regras para atribuição de valores aos fatores ambientais;

f) analisar a complexidade do caso de uso através do diagrama de

sequência;

g) analisar a complexidade do caso de uso através das classes que os

Page 17: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

16

implementam quando não houver descrição dos mesmos;

h) identificar as classes de análise, não as de projeto, que implementam as

funções do caso de uso para auxiliar na determinação da complexidade do

caso de uso;

i) descartar os fatores de ajustes técnicos;

j) manter os fatores de ajustes ambientais;

k) comparar as transações descritas nos casos de uso com as transações do

diagrama de sequência e com o número de classes de análise utilizadas

para implementar o caso de uso, para verificar se a complexidade do caso

foi definida corretamente;

l) quando a documentação não apresentar casos de uso, deverá ser utilizado

o diagrama de sequência para contar as transações, levando-se em

consideração apenas as transações que indicam o que fazer e não como

fazer, ou classes que implementam o caso de uso.

Já sobre horas por Ponto de Caso de Uso, Karner sugere 20 horas; no entanto,

Schneider e Winters (2001) sugerem uma revisão da técnica e propõe o número

entre 20 a 36 horas. Da mesma forma, o trabalho publicado por Carroll (2005)

concorda com a proposta de Schneider e Winters, pois o mesmo acredita que nem

todos os projetos são iguais.

Em 2005, um novo trabalho publicado por Anda utilizou o PCU para estimar

projetos de grande escala no processo incremental de desenvolvimento de software.

A diferença desse estudo para os anteriores é a aplicação do PCU no processo

incremental, que em cada nova liberação deve ser estimado o projeto a ser entregue

e muitas vezes são apenas exigências não-funcionais como, por exemplo,

desempenho e segurança, que alteram apenas os requisitos não-funcionais2. É

importante observar que os casos de uso essencialmente descrevem os requisitos

funcionais3.

2 Os requisitos não-funcionais são aqueles que expressam como deve ser feito. São as propriedades ou qualidades do produto. Em geral se relacionam com padrões de qualidade como confiabilidade, performance, robustez, etc. Neles também são apresentadas as restrições e especificações de uso para os requisitos funcionais. 3 Os requisitos funcionais são aqueles que descrevem o comportamento do sistema, suas ações para cada entrada, ou seja, é aquilo que descreve o que tem que ser feito pelo sistema, o que o produto deve fazer, as funcionalidades de que o sistema deve dispor.

Page 18: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

17

Tabela 3 - Abordagem dos trabalhos relacionados

Autor Assunto abordado

Karner 1993

Anda 2001-2005

Ribu 2001

Freire 2003

Schneider 2001

Carroll 2005

PCU na OO X X X X X X

Horas por PCU X X X

Caso de Uso Nível de Sistema

X

Contagem Caso de Uso Estendido

N S S

Contagem Caso de Uso Incluído

N S S

PCU baixa variação com o real

X X X

Formulário padrão para Caso de Uso

X X

Descartar fatores de ajustes técnicos

X

Super atores X

Diagrama de sequência

X

Regra para fatores ambientais

X

Desenvolvimento incremental

X

Influência dos requisitos não funcionais

X

Coeficiente de risco X

Estimar relatórios diferenciados

X

Fonte: Autoria própria, 2007.

Na Tabela 3, X indica que o assunto foi abordado, S indica que o autor

concorda e N indica que o autor não concorda.

Page 19: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

18

Pode ser observada, nessa mesma tabela, a preocupação de medir os casos

de uso em nível de sistema, no qual, como foi dito anteriormente, é possível

diferenciar transações e interações com o usuário. Outro ponto discutido é a

contagem ou não dos casos de uso do tipo extend e include.

Entre as perguntas respondidas no estudo de Anda, Mohagheghi e Conradi

(2005), uma era se a PCU poderia ser aplicada às mudanças incrementais em caso

de uso. Foi concluído que é possível aplicar. Outra pergunta era qual o seu resultado

nesse cenário de desenvolvimento em grande escala. Concluiu-se que os resultados

são satisfatórios, porém, foram sugeridas algumas adequações aos valores,

principalmente quando as mudanças não afetam os casos de uso, ou seja, são

apenas requisitos não-funcionais.

Ao final de seu trabalho, Carroll (2005) propõe, entre outras coisas, a aplicação

de coeficiente de risco a ser adicionado no PCU, bem como estimar os relatórios de

forma específica para o seu desenvolvimento, levando em conta os dados históricos

para determinar o tempo de desenvolvimento dos mesmos.

O trabalho realizado por Freire (2003) reforça a preocupação de somente medir

os casos de uso em nível de sistema, no qual é possível diferenciar as transações e

interações com o usuário.

Estimar cada vez mais cedo no ciclo de vida do desenvolvimento de software é

um desafio. No entanto, a exatidão das estimativas através da aplicação do método

PCU já conseguiu alcançar percentuais consideráveis como, por exemplo, um desvio

de menos de 9% em relação ao real estimado em 95% dos projetos. É o que

demonstra o estudo apresentado por Carroll (2005), que reuniu mais de 450

coordenadores e mais de 200 projetos num período de 5 anos.

2.4 Considerações finais sobre o capítulo

O capítulo apresentou a evolução das métricas no decorrer do tempo, como

forma de apoiar no desafio de estimar projetos que possam gerar estimativas mais

precisas. As métricas são importantes ferramentas no processo de desenvolvimento

de software; com essa finalidade, foram criadas diversas métricas, entre outras,

podemos citar o Pontos por Caso de Uso (PCU).

Este capítulo também abordou as dificuldades enfrentadas e os trabalhos

realizados nesse contexto, bem como os pontos a desenvolver propostos pelos

Page 20: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

19

pesquisadores. Entre as dificuldades apresentadas em relação ao método Pontos

por Caso de Uso, destaca-se a preocupação do nível ideal de decomposição dos

casos de uso. Por isso que é importante avaliarmos qual é o impacto que isso pode

gerar nas estimativas apresentadas pelo PCU, sendo que entre os pontos mais

relevantes aqui citados, pode-se destacar: considerar ou não a contagem separada

dos casos de uso do tipo extend e include no método PCU.

No próximo capítulo, será apresentado o estudo e o modelo que será aplicado

para responder qual a influência da contagem separada ou não dos casos de uso do

tipo extend e include no resultado das estimativas produzidas pelo método PCU.

Page 21: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

20

3 CARACTERIZAÇÃO DO ESTUDO

Analisando os trabalhos relacionados, percebe-se que apesar da preocupação

dos pesquisadores em considerar a contagem separada dos estereótipos tipo extend

e include, não foram localizados estudos que revelam qual o impacto do uso ou não

desses casos de uso no resultado das estimativas produzidas pelo PCU.

Os casos de uso secundários simplificam o comportamento dos casos de uso

primários por meio de mecanismos de extensão e inclusão (extend e include).

Assim, muitas vezes os casos de uso secundário podem estar contidos dentro do

caso de uso primário na forma de transações.

Dependendo do nível de detalhamento dos casos de uso, um determinado

comportamento pode ser considerado como uma transação ou pode ser separado

como um caso de uso do tipo extend ou include. É nesse ponto que surge o

problema, quando um determinado comportamento deve ser considerado como uma

transação do caso de uso primário ou deve ser separado como um caso de uso

secundário, em um estereótipo do tipo extend e include. E qual o impacto que essa

decisão pode causar nos resultados produzidos pelo PCU? Este trabalho visa avaliar

qual a influência do uso ou não de casos de uso do tipo extend e include no

resultado das estimativas produzidas pelo PCU.

O caso de uso extend é útil para um comportamento não-padrão ou incomum,

enquanto o caso de uso include permite fatorar um comportamento comum a vários

casos de uso, conforme demonstram a Figura 3 (Diagrama de caso de uso primário)

e a Figura 4 (Diagrama de caso de uso secundário).

Page 22: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

21

Figura 3 - Diagrama de caso de uso primário Fonte: Autoria própria, 2007.

Figura 4 - Diagrama de caso de uso secundário, incluindo os estereótipos extend e include Fonte: Autoria própria, 2007.

O risco de não contar como um caso de uso separado é de subestimar o

tamanho do projeto. Por outro lado, a contagem como transação dos casos de uso

que o utilizam pode compensar essa provável subestimação. Este é o problema que

ainda não foi esclarecido: Essa contagem ou não dos casos de uso extend e include

realmente impacta nos resultados gerados pelo PCU? E se impacta, o quanto

impacta?

3.1 Modelo aplicado

Para responder à questão de qual a influência do uso ou não de casos de uso

do tipo extend e include no resultado das estimativas produzidas pelo PCU, este

estudo apresenta um trabalho retrospectivo, no qual é aplicado o método PCU

baseado nos requisitos dos casos de uso de uma base de projetos. O método PCU

foi aplicado de duas formas:

a) considerando a contagem separada dos casos de uso do tipo extend e

include;

b) não considerando a contagem separada os casos de uso do tipo extend e

include.

As informações para a realização deste trabalho foram fornecidas a partir de

uma base de projetos reais, desenvolvidos em uma fábrica de software. Foram

selecionados seis projetos e foi aplicado o método pontos por caso de uso

considerando de duas formas:

Page 23: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

22

a) aplicar o método PCU (Estimativa CCS), para estimar o esforço do projeto

através do método PCU com base no diagrama de casos de uso S (casos

de uso primários e secundários), considerando a contagem separada dos

casos de uso do tipo extend e include;

b) aplicar o método PCU (Estimativa NCS), para estimar o esforço do projeto

através do método PCU com base somente no diagrama de casos de uso

P (casos de uso primários), não considerando a contagem separada dos

casos de uso do tipo extend e include;

Depois de aplicado o método, os resultados são comparados com as

informações do total de horas realizadas até a conclusão do projeto. Os resultados

gerados pela aplicação deste modelo serão apresentados na seção seguinte.

Foram avaliados os valores estimados (Estimativa CCS e Estimativa NCS) em

relação ao valor realizado até a conclusão do projeto. A Figura 5 apresenta o modelo

aplicado.

Figura 5 - Modelo aplicado no trabalho Fonte: Autoria própria, 2007.

É importante destacar que o objetivo deste trabalho é avaliar qual a influência

do uso ou não de casos de uso do tipo extend e include no resultado das estimativas

produzidas pelo PCU. Dessa forma, não está sendo abordado qual o nível de

detalhamento dos casos de uso é o melhor para aplicação do PCU, mas sim qual é o

impacto que a contagem separada dos casos de uso extend e include podem gerar

nos resultados apresentados pelo método. Da mesma forma que o nível de

Page 24: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

23

detalhamento dos casos de uso não está sendo considerado, outros fatores também

não estão sendo observados, exceto os fatores que influenciam a tabela de

complexidade de Atores e tabela de complexidade de casos de uso.

O escopo deste trabalho limita-se aos fatores que provocam a influência na

complexidade da tabela de classificação do caso de uso. Não são considerados

outros fatores como: Fator de Complexidade Técnica e Fator de Complexidade

Ambiental.

Page 25: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

24

4 AVALIAÇÃO DO TRABALHO

A contagem separada dos casos de uso do tipo extend e include influenciam

nos resultados gerados pelo método Pontos por Caso de Uso, porém o impacto

depende do tamanho do projeto e da sua complexidade. Ou seja, depende do

número e da complexidade dos casos de uso que compõem o projeto a ser

desenvolvido.

4.1 Avaliação do trabalho realizado

Com o objetivo de avaliar a influência da contagem separada ou não dos casos

de uso do tipo extend e include no método Pontos por Caso de Uso, foi aplicado o

modelo apresentado na seção 3.1, gerando o seguinte resultado:

Figura 6 - Resultado apresentado na aplicação do modelo Fonte: Autoria própria, 2009.

Page 26: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

25

O resultado gerado por este trabalho demonstra que realmente a contagem

separada dos casos de uso do tipo extend e include influencia no resultado da

estimativa gerado pelo método PCU. A Figura 6 demonstra os resultados do

percentual de desvio após aplicado o modelo.

Na Figura 6, %N_C_S indica o percentual de desvio entre o valor do tempo

gasto para a realização do projeto (tempo realizado) em relação ao valor do tempo

estimado pela PCU (valor estimado NCS), não considerando a contagem separada

dos casos de uso do tipo extend e include. Porém, o %C_C_S indica o percentual de

desvio entre o valor do tempo gasto para a realização do projeto (tempo realizado)

em relação ao tempo estimado pelo PCU (valor estimado CCS), considerando a

contagem separada dos estereótipos extend e include.

Também, na Figura 6, os projetos foram dispostos de acordo com o seu

tamanho e complexidade, sendo os menores e menos complexos representados

pelo identificador A e B e os maiores e mais complexos sendo representados pelo

identificador E e F, respectivamente nessa ordem. Dessa forma, C e D representam

os projetos intermediários.

Os resultados apresentados no gráfico da Figura 6 mostram que, conforme

aumentam o tamanho e a complexidade dos projetos, aumenta também o percentual

de desvio entre os valores estimados pelo método Pontos por Caso de Uso em

relação ao tempo efetivo de realização do projeto. Porém, observa-se também que

os percentuais de desvio entre o tempo estimado %N_C_S (não consideração a

contagem separada dos casos de uso do tipo extend e include) e %C_C_S

(consideração a contagem separada dos casos de uso do tipo extend e include) se

aproximam. Dessa forma, o gráfico demonstra que o grau descolamento entre os

valores estimados pelo PCU considerando e não considerando a contagem

separada os casos de uso do tipo extend e include não aumentam conforme

aumenta o tamanho e o grau de complexidade dos projetos.

Com esses números apresentados, pode ser observado que a contagem

separada dos casos de uso do tipo extend e include influenciam nos resultados

estimados pelo método Pontos por Caso de Uso, porém, não determinam o que gera

essa influência.

Outra análise importante a ser observada é que, conforme o grau de

complexidade e tamanho do projeto aumenta, também aumenta o percentual de

desvio entre os valores estimados em relação aos valores reais dos projetos. No

Page 27: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

26

entanto, apenas essa análise inicial pode ser precipitada, uma vez que os projetos

podem ser influenciados por outros fatores que eventualmente interferem no

andamento dos mesmos, gerando, dessa forma, distorções na análise. Os fatores

que podem influenciar no andamento de um projeto muitas vezes são fatores

externos que devem ser observados, gerenciados e desconsiderados nesse tipo de

trabalho, para não invalidar os resultados gerados pelas estimativas da PCU. Tais

fatores já foram abordados na seção 2, por exemplo: pressões políticas e falta de

motivação da equipe.

Na seção 4.1, destacam-se, entre outros pontos importantes, as seguintes

conclusões:

a) a contagem separada ou não dos casos de uso extend e include

influenciam nos resultados de estimativas gerados pela PCU;

b) à medida que o tamanho e a complexidade dos projetos aumentam, a

diferença dos percentuais de desvio entre os valores estimados pela PCU e

o valor realizado também aumenta;

c) à medida que o tamanho e a complexidade dos projetos aumentam, a

diferença entre os percentuais %N_C_S (não considerando a contagem

separada) e %C_C_S (considerando a contagem separada dos casos de

uso do tipo extend e include) diminui;

d) os valores do percentual de desvio entre %N_C_S e %C_CS não

aumentam conforme aumentam o tamanho e o grau de complexidade dos

projetos.

Com esses resultados, apenas tem-se uma percepção do que gera a influência

nos resultados apresentados pela PCU, na contagem separada ou não dos casos de

uso extend e include.

Com base nos resultados apresentados nesta seção, e como forma de avaliar

este trabalho que objetiva demonstrar qual a influência do uso ou não de casos de

uso do tipo extend e include no resultado das estimativas produzidas pelo PCU, foi

aplicado um novo modelo avaliando o impacto gerado pela contagem separada ou

não desses casos de uso, porém, sem considerar o fator tempo de realização do

projeto. Foram aplicadas simulações de projeto no método Pontos por casos de uso.

O resultado dessa avaliação será apresentado na seção 4.3.

Page 28: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

27

4.2 Critérios aplicados no modelo anterior

O resultado obtido por meio da aplicação do modelo apresentado na Figura 5

está composto por seis projetos:

Tabela 4 - Projetos utilizados no modelo aplicado

Fonte: Autoria própria, 2009.

Na Tabela 4, Horas N_C_S significa a quantidade de horas estimadas pelo

método PCU não considerando a contagem separada dos casos de uso do tipo

extend e include; enquanto isso, Horas C_C_S significa a quantidade de horas

estimadas pelo método PCU considerando a contagem separada dos estereótipos

extend e include, e o Peso Total = UUCW (Quantidade de Casos de Uso x

Complexidade). Horas Realizadas corresponde à quantidade de horas efetivamente

realizadas para concluir o projeto.

A fórmula para aplicar o percentual de desvio entre os valores estimados e o

realizado foi definida da seguinte forma:

% desvio = (valor estimado / valor realizado) – 100

Como o objetivo deste trabalho é apenas avaliar a influência da contagem

separada ou não dos estereótipos extend e inlcude, e como forma de viabilizar o

trabalho, os fatores de complexidade técnica e fatores ambientais foram

considerados de forma padrão para não influenciar os resultados. Ou seja, não

foram considerados os fatores de complexidade técnicas e ambientais, pois essa

informação somente seria obtida no momento em que as equipes estavam

desenvolvendo os projetos. Esses fatores podem ter influenciado no percentual de

desvio entre os valores estimados em relação aos valores realizados.

Page 29: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

28

4.3 Avaliação do trabalho sem considerar fatores externos

Como forma de avaliar os resultados apresentados a partir do modelo aplicado

na seção 4.1, foi realizada uma nova avaliação deste trabalho, por meio da

aplicação de simulação de projetos.

Como o objetivo deste trabalho é avaliar a influência dos casos de uso do tipo

extend e include no método Pontos por Caso de Uso, ou seja, realmente saber se a

contagem separada ou não desses estereótipos impacta nos resultados gerados

pelo PCU, foram considerados os seguintes critérios:

a) avaliar somente a influência da contagem separada ou não dos casos de

uso do tipo extend e include, sem considerar as horas efetivamente

realizadas;

b) desconsiderar os fatores de complexidade técnica e fatores ambientais,

pois ambos dependem da equipe e do ambiente onde está inserida, algo

que pode ter influenciado no percentual de desvio entre os valores

estimados e realizados apresentados na seção 4.1, conforme já

apresentado pelos trabalhos de Anda et al. (2001), Ribu (2001), Anda,

Mohagheghi e Conradi (2005), nos quais já foram propostos alguns ajustes

nestes fatores;

c) neste trabalho de avaliação sem considerar a influência de fatores

externos, os valores apenas serão influenciados pela contagem separada

ou não dos casos de uso extend e include, pois os demais parâmetros

foram mantidos iguais para não influenciar as comparações dos resultados.

Outra observação importante neste trabalho de avaliação é que foram apenas

considerados os resultados apresentados das estimativas, sem considerar o valor

das horas realizadas, pois este pode ser influenciado por uma série de fatores

externos que independe do método PCU. A Figura 7 demonstra o modelo aplicado

para avaliar o trabalho sem considerar os fatores de influência externa.

Page 30: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

29

Figura 7 - Modelo aplicado para avaliar o trabalho sem influência externa Fonte: Autoria própria, 2009.

Com o objetivo de avaliar o trabalho realizado, que propõe demonstrar qual a

influência da contagem separada ou não dos casos de uso do tipo extend e include

no método Pontos por Caso de Uso, foi aplicado o modelo demonstrado na Figura 7,

gerando o seguinte resultado:

Figura 8 - Resultado apresentado na aplicação do modelo sem influência externa Fonte: Autoria própria, 2009.

Page 31: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

30

Esse gráfico demonstra que conforme a evolução do tamanho e complexidade

do projeto (os projetos estão dispostos na ordem de A...Z, respectivamente na

sequência do menor ao maior em relação ao tamanho e à complexidade dos

projetos), o percentual de desvio das estimativas se mantém na média 5% para mais

ou para menos, mantendo esse mesmo nível após o projeto D. Dessa forma, o

comportamento do gráfico está em conformidade com o mesmo comportamento

apresentado na seção 4.1, ou seja, a contagem separada dos estereótipos do tipo

extend e include influenciam nos resultados gerados pelo método PCU, dependendo

do tamanho e complexidade dos casos de uso do projeto.

Na Figura 8, %N_C_S indica o percentual de desvio entre o valor estimado

pela PCU, não considerando a contagem separada dos casos de uso do tipo extend

e include; em relação a %C_C_S, indica o percentual do valor estimado pela PCU,

considerando a contagem separada dos estereótipos extend e include.

Com objetivo de entender o que influencia esse percentual de desvio,

apresentam-se as informações que geraram o resultado apresentado na Figura 8.

Tabela 5 - Resultado dos projetos simulados sem a influência externa

Fonte: Autoria própria, 2009.

Page 32: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

31

Essas informações disponibilizadas na Tabela 5 demonstram que a influência

da contagem separada ou não dos casos de uso do tipo extend e include somente

recai sobre o resultado se o peso da complexidade dos casos de uso for alterado.

Em algumas situações, existe uma compensação de peso na aplicação da contagem

separada e na contagem não separada dos casos de uso.

Na Tabela 5, N_C_S significa: não considerando a contagem separada dos

casos de uso do tipo extend e include; enquanto isso, C_C_S significa: considerando

a contagem separada dos estereótipos extend e include, e o Peso Total = UUCW

(Quantidade de Casos de Uso x Complexidade).

É importante destacar que os projetos apresentados na Tabela 5, são

diferentes dos projetos demonstrados na Tabela 4 da seção 4.2.

4.4 Avaliação dos resultados apresentados

Os resultados gerados pelos dois modelos aplicados e apresentados nas

seções 4.1 e 4.3 demonstram que realmente a contagem separada ou não dos

casos de uso dos estereótipos tipo extend e include influenciam no resultado gerado

pelo método Pontos por Caso de Uso. Os resultados apresentados demonstram:

a) o impacto da contagem separada nos projetos com UUCW <= 40 é maior

do que a influência apresentada nos demais projetos com UUCW > 40;

b) o percentual da influência nos resultados apresentados na contagem

separada nos projetos com UUCW <= 40 é entre 6% - 9% para mais ou

para menos;

c) o percentual da influência nos resultados apresentados na contagem

separada nos projetos com UUCW > 40 é < 5%, ou seja, menor que os

projetos com UUCW <= 40;

d) à medida que o UUCW aumenta o seu valor, o percentual de influência

tende a diminuir, porém, depende da complexidade e do número de casos

de uso que utilizam os estereótipos do tipo extend e include;

e) dependendo do número de casos de uso que utilizam os estereótipos

extend e include, uma contagem compensa a outra, refletindo num

percentual de influência nula, igual a zero.

As evidências de que projetos de porte menor e complexidade maior são mais

influenciados pela contagem se concretizam: à medida que o impacto do percentual

Page 33: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

32

é maior na proporção da quantidade horas ser menor, matematicamente o

percentual é maior. Por outro lado, há evidências de que projeto de porte maior e

complexidade menor terá percentual de influência menor: na medida em que a

proporção de horas aumenta, o percentual diminui. O grande impacto que influencia

nos resultados apresentados pelo PCU é a complexidade dos casos de uso que

gera o valor apresentado como UUCW, que compõe uma parte do cálculo da UUCP,

e esse impacto depende do número de casos de uso que terão a sua complexidade

alterada na aplicação da contagem separada dos casos de uso. É importante

ressaltar que UUCW mede somente a complexidade dos casos de uso.

Quando é aplicado o método PCU sem considerar a contagem separada dos

casos de uso, as transações dos casos de uso secundário são consideradas em

cada caso de uso primário que utilizam. Dessa forma, muitos casos de uso primários

que deveriam ser considerados de complexidade média, acabam elevando o grau

para complexo.

No entanto, quando é realizada a contagem separada dos casos de uso tipo

extend e include, as transações desses casos de uso não são consideradas em

cada caso de uso que utilizam, mas são contadas uma única vez. Dessa forma,

algumas vezes ocorre a compensação de complexidade, onde o caso de uso que

anteriormente era complexo acaba transformando em complexidade média. Algumas

vezes existe uma simples compensação de complexidade, gerando o mesmo

resultado de ambos os modelos (considerando e não considerando a contagem

separada). Porém, também existe a possibilidade da contagem separada gerar um

peso de UUCW menor que a contagem não separada.

Tabela 6 - Tabela da complexidade dos casos de uso

Fonte: Autoria própria, 2009.

Page 34: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

33

Esse impacto decorre de um ponto a ser desenvolvido no método, pois

atualmente pode representar uma limitação. Os pesos atribuídos através da tabela

da complexidade dos casos de uso são distintos e não existe uma proporção para

cada transação, mas a um conjunto de transações.

A Tabela 6 demonstra a tabela da complexidade dos casos de uso atual,

aplicando pesos consideráveis e distintos (Simples = peso 5, Médio = peso 10 e

Complexo = peso 15). Isso influencia diretamente no resultado apresentado pela

contagem separada dos casos de uso do tipo extend e include.

Muitas vezes, ocorre da complexidade do caso de uso ficar em uma zona de

fronteira entre uma complexidade e outra, conforme demonstra a Tabela 6, sendo

sensível a qualquer movimento de alteração, impactando diretamente no resultado

gerado pelo método PCU.

Este ponto a ser desenvolvido no método pode ser resolvido ao aplicar uma

tabela menos sensível, utilizando valores proporcionais às transações e não a um

conjunto de transações, dessa forma, estaria cumprindo ao critério de uma métrica

insensível, conforme demonstra a Tabela 7.

Tabela 7 - Tabela da complexidade dos casos de uso – Menos sensível

Fonte: Autoria própria, 2009.

Aplicando a proposta da Tabela 7, provavelmente será reduzido o impacto dos

valores gerados pelo método PCU, pelo motivo da tabela aplicar pesos menos

distintos.

Entretanto, os resultados iniciais demonstram que a redução da influência dos

resultados entre a contagem separada e não separada dos casos de uso do tipo

extend e include não é simplesmente inverso ao porte e complexidade dos projetos.

Page 35: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

34

Nesse contexto, não pode ser analisado somente o tamanho ou complexidade dos

projetos, mas sim o comportamento da classificação da complexidade dos casos de

uso em número de transações.

Os resultados iniciais apresentam que, na contagem separada dos casos de

uso extend e include através do método Pontos por Caso de Uso, deve ser

considerada a complexidade dos casos de uso e o número de casos de uso primário

que utilizam os casos de uso secundário. Desta forma, os resultados trarão uma

maior assertividade nas estimativas geradas pelo método PCU.

O estudo apresentado por Carroll (2005) demonstra que conseguiu alcançar

percentuais consideráveis como, por exemplo, um desvio de menos de 9% entre o

valor real e o valor estimado. Ao final desse trabalho, Carroll propõe, entre outras

coisas, a aplicação de coeficiente de risco a ser adicionado no PCU. O

comportamento dos resultados iniciais deste trabalho apresenta um percentual de

desvio menor que 9%, desta forma realmente pode ser aplicado um coeficiente de

risco. Porém a proposta deve ser baseada em critérios técnicos e não de forma

empírica.

Um coeficiente de risco a ser adicionado pode ser o coeficiente de risco de

utilização dos casos de uso do tipo extend e include. O estudo de um novo

coeficiente de risco a ser aplicado no PCU deve levar em consideração a relação do

valor da UUCW e o número de usabilidade dos casos de uso do tipo extend e

include.

Page 36: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

35

5 CONCLUSÃO

Estimar não é uma tarefa fácil, no entanto, as métricas disponibilizadas pela

Engenharia de Software apresentam o propósito de auxiliar os profissionais

envolvidos no processo de desenvolvimento de software. Porém, as empresas que

desenvolvem software encontram dificuldades para aplicação do método Pontos por

Caso de Uso, que foi criado para estimar projetos ainda na fase de requisitos. Tais

dificuldades ocorrem pela falta de padrão dos casos de uso, sendo que o principal

artefato para aplicação do método PCU são os casos de uso.

Este trabalho visa contribuir para uma maior assertividade nas estimativas

geradas pelo método Pontos por Caso de Uso. Dessa forma, analisando os

resultados gerados e avaliados por este trabalho, pode-se concluir que a contagem

separada dos casos de uso do tipo extend e include influencia nas estimativas

geradas pelo PCU, porém, depende do tamanho, da complexidade do projeto a ser

desenvolvido e do número de casos de uso que utilizam outros casos de uso de

inclusão (include) e extensão (extend).

Projetos de porte menor são mais influenciados, dependendo da complexidade

do projeto; porém, conforme evolui o porte e a complexidade dos projetos, o

percentual de influência tende a diminuir. No entanto, não deve ser apenas

considerado o porte e complexidade do projeto: outro fator determinante é o grau de

usabilidade dos casos de uso em relação aos estereótipos do tipo extend e include.

Uma das vantagens da contagem separada dos casos de uso do tipo extend e

include são a maior precisão nos resultados das estimativas geradas pelo PCU.

Porém o impacto da influência média dos projetos ficou em torno de 5%, devendo as

empresas avaliarem se este percentual realmente deve ser considerado relevante ou

não em suas estimativas.

Uma das desvantagens da contagem separada dos casos de uso do tipo

extend e include no método PCU são os pesos atribuídos a partir da tabela da

Page 37: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

36

complexidade dos casos de uso, pois não existe valor proporcional a cada

transação, mas a um conjunto de transações, sendo que para o cálculo do método

PCU é aplicada a tabela da complexidade dos casos de uso, com pesos distintos e

valores consideráveis. Isso influencia diretamente no resultado apresentado pela

contagem separada dos casos de uso do tipo extend e include.

A tarefa de estimar um projeto não é fácil, mas isso desafia os profissionais e

as empresa de TI diariamente. O mundo científico deve aplicar novos estudos para

contribuir com propostas para uma melhor distribuição dos pesos aplicados na

tabela de complexidade dos casos de uso e a possibilidade de aplicar um coeficiente

de risco ao método, sendo esses os pontos a serem desenvolvidos na busca da sua

maior assertividade nas estimativas geradas através do método Pontos por Caso de

Uso (PCU).

5.1 Trabalhos futuros

Este estudo gera conhecimento e recomenda a aplicação de outros trabalhos a

partir dos dados dispostos neste trabalho e das informações aqui apresentadas.

Entre os trabalhos futuros recomendados a partir deste, destacam-se:

a) realizar um trabalho aplicado em estimativas de software, num ambiente

próprio de uma fábrica de desenvolvimento, adicionando ao método Pontos

por Caso de Uso um coeficiente de risco de usabilidade de inclusão e

extensão. Esse coeficiente deverá ser definido no trabalho futuro a ser

realizado, aplicando o valor do coeficiente proporcional aos valores

apresentados neste trabalho. Os dados que servirão de base para definir o

valor do coeficiente estão dispostos na Tabela 5 através dos valores

apresentados nas colunas: Peso Total (não considera a contagem

separada), Peso Total (considera a contagem separada), Diferença de

Peso, % N_C_S e % C_C_S. Também se recomenda que o trabalho futuro

efetue o dimensionamento dos valores ideais de mínimos e máximos para

cada classe de valor a ser aplicado um percentual distinto no coeficiente de

risco;

b) realizar um trabalho aplicado em estimativas de software, também dentro

de um ambiente próprio de uma fábrica de desenvolvimento, utilizando uma

proposta diferente da atual classificação da complexidade dos casos de

Page 38: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

37

uso, deve ser observado a proporcionalidade além de Simples, Média e

Complexa. Como recomendação para o trabalho futuro, sugere-se verificar

a possibilidade de utilizar a estratégia de dimensionar o valor do peso da

tabela da complexidade dos casos de uso proporcional a cada transação e

não mais a um conjunto de transações, dessa forma reduzindo o impacto

atual gerado através da aplicação de pesos muito distintos entre uma

classificação de complexidade para a outra. A Tabela 2, que apresenta os

critérios atuais para classificação da complexidade dos casos de uso, deve

ser observada a Tabela 7 para definir novos valores e regras de

proporcionalidade.

Recomenda-se que novos trabalhos sejam realizados com o objetivo de buscar

um maior aprimoramento da técnica, para que aplicação do método Pontos por Caso

de Uso gere estimativas ainda mais assertivas, cumprindo, dessa forma, o seu papel

de importante ferramenta para o apoio gestão no processo de desenvolvimento de

software.

Page 39: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

38

REFERÊNCIAS

ABREU, Fernando Brito e. Metrics for object-oriented desing on software quality. In: PROCEEDINGS OF THE 3 RD INTERNATIONAL SOFTWARE METRICS SYMPOSIUM, 3., 1996, Berlim, Germany. Artigo. Disponível em: <http:// eprints.kfupm.edu.sa/38200/>. Acesso em: 24 maio 2009.

ANDA, Bente et al. Estimating software development effort based on use cases - experiences from industry. In: INTERNATIONAL CONFERENCE ON THE UNIFIED MODELING LANGUAGE, 4., 2001, Toronto. Artigo. Toronto, Canadá: Martin Gogolla and Cris Kobryn (editors), LNCS 2185, Springer Verlag, p. 487-502. Disponível em: <http://www.idi.ntnu.no/emner/tdt4290/docs/faglig/uml2001-anda.pdf>. Acesso em: 20 maio 2009.

ANDA, Bente; ANGELVIK, Endre; RIBU, Kirsten. Improving estimation practices by applying use case models. In: INTERNATIONAL CONFERENCE ON PRODUCT FOCUSED SOFTWARE PROCESS IMPROVEMENT, 4., 2002. Artigo. Disponível em: <http://portal.acm.org/citation.cfm?id=713661>. Acesso em: 24 maio 2009.

ANDA, Bente; MOHAGHEGHI, Parastoo; CONRADI, Reidar. Effort estimation of use cases for incremental large-scale software development. In: INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 27., 2005, St. Louis, MO, USA. Artigo. Disponível em: <http://portal.acm.org/citation.cfm?id=1062455.1062516>. Acesso em: 24 maio 2009.

ANDRADE, Edméia Pereira de. Pontos de Caso de Uso e Pontos de Função na gestão de estimativa de tamanho de projetos de software orientados a objetos. 2004. 132 f. Dissertação (mestrado) - Universidade Católica de Brasília, Curso de Pós-Graduação stricto sensu em Gestão do Conhecimento e Tecnologia da Informação. Disponível em: <http://www.bfpug.com.br/Artigos/UCP/ Tese%20Edmeia.zip>. Acesso em: 20 maio 2009.

BELGAMO, Anderson. CUCCRA: técnicas de leitura para construção de modelos de casos de uso e análise do documento de requisitos. 2004. 157 f. Dissertação (mestrado) - Universidade Federal de São Carlos, Curso de Pós-Graduação em Ciência da Computação. Disponível em: <http://www.bdtd.ufscar.br/tde_busca/ arquivo.php?codArquivo=801>. Acesso em 4 abr. 2007.

BELGAMO, Anderson; FABBRI, Sandra. Um estudo sobre a influência da sistematização da construção de modelos de casos de uso na contagem dos pontos de casos de uso. In: SIMPÓSIO BRASILEIRO DE QUALIDADE DE SOFTWARE, 3., 2004, Brasília. Artigo. Disponível em: <http://ftp.mct.gov.br/Temas/info/Dsi/PBQP/ IIISBQS/ST7_2.pdf>. Acesso em: 3 abr. 2007.

Page 40: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

39

CALAZANS, Angélica; OLIVEIRA, Marcelo de; DIAS, Zeno. Avaliação do processo de estimativas de tamanho, custo e duração para construção do produto software. In: SIMPÓSIO INTERNACIONAL DE MELHORIA DE PROCESSOS DE SOFTWARE, 6., 2004, São Paulo. Artigo. Disponível em: <http://www.simpros. com.br/simpros2004/Apresentacoes_PDF/Artigos/Art_02_Simpros2004.pdf>. Acesso em: 20 maio 2009.

CARROLL, Edward. Estimating software based on use case points. In: CONFERENCE ON OBJECT ORIENTED PROGRAMMING SYSTEMS LANGUAGES AND APPLICATIONS, 20., 2005, San Diego, CA, USA. Artigo. Disponível em: <http://portal.acm.org/citation.cfm?id=1094855.1094960>. Acesso em: 24 maio 2009.

CARVALHO, Gonçalo Lages de. Métricas de modelação de software. 2004. Disponível em: <http://berlin.inescid.pt/cadeiras/pfsi/PFSI2003/SEMINARIO/ pdfs/metricas-goncalo-carvalho.pdf>. Acesso em: 20 maio 2009.

CHÁVEZ, Michelet. Estimativas de esforço de projetos de software utilizando pontos de caso de uso e redes neurais artificiais. 2005. 53 f. Trabalho de Conclusão de Curso (graduação) - Curso de Ciência da Computação - Universidade Federal de Lavras, Minas Gerais, 2005. Disponível em: <http://cc.msnscache.com/ cache.aspx?q=%22estimativas+de+esforco+de+projetos+de+software+utilizando+pontos+de+caso+de+uso+e+redes+neurais+artificiais%22&d=75828820837495&mkt=pt-BR&setlang=pt-BR&w=4e6b5756,deb0c3c4>. Acesso em: 23 maio 2009.

DEMARCO, Tom. Controlling Software Projects: management, measurement & estimation. Englewood Cliffs, NJ: Prentice Hall, 1982.

FREIRE, Herval. Calculando estimativas: o Método de Pontos de Caso de Uso. Developer’s Magazine, n. 78, fev. 2003. Disponível em: <http://www.cnnt.com.br/ files/usecasepoints.pdf>. Acesso em: 20 maio 2009.

KARNER, Gustav. Resource estimation for objectory projects. Objective Systems SF AB. 1993. Disponível em: <http://www.bfpug.com.br/Artigos/UCP/Karner%20-%20Resource%20Estimation%20for%20Objectory%20Projects.doc>. Acesso em: 20 maio 2009.

MENESES, Javé de. Inspector: um processo de avaliação de progresso para projetos de software. 2001. 189 f. Dissertação (mestrado) - Universidade Federal de Pernambuco, Curso de Pós-Graduação em Ciência da Computação. Disponível em: <http://www.cin.ufpe.br/~gmp/docs/papers/dissertacao-inspector-final.pdf>. Acesso em: 23 maio 2009.

MONTEIRO, Tatiana; PIRES, Carlo Giovano S.; BELCHIOR, Arnaldo Dias. Estimativas por tipo de produto de trabalho: uma extensão da técnica PCU para CMMI-SW Nível 2. In: CONFERÊNCIA LATINO-AMERICANA DE INFORMÁTICA,

Page 41: AVALIAÇÃO DA INFLUÊNCIA DOS CASOS DE USO DO TIPO EXTEND E ... · processos de desenvolvimento de software, ... Dentro do processo de desenvolvimento de software, surgem as métricas

40

30., 2004, Peru. Artigo. Disponível em: <http://www.clei.cl/nuevaweb/cleiversion/ 2004/es/Wc4d46f6de9cee.htm>. Acesso em: 24 maio 2009.

PEÑALVO, Francisco José García; ESCUDERO, Pedro Jesús Vázquez; GARCÍA, María N. Moreno. Métricas orientadas a objetos. Departamento de Informática y Automática, Universidad de Salamanca, 2001. Disponível em: <http://diaweb.usal.es/ diaweb20/archivos/10001122DPTOIA_IT_2001_002.pdf>. Acesso em: 23 maio 2009.

RIBU, Kirsten. Estimating object-oriented software projects with use cases. 2001. 133 f. Master of Science Thesis - Departament of Informatic, University of Oslo, Oslo, Norway. Disponível em: <http://heim.ifi.uio.no/%7Ekribu/oppgave.pdf>. Acesso em: 20 maio 2009.

SCHNEIDER, Geri; WINTERS, Jason. Applying use cases: a practical guide. 2. ed. [S.l.]: Addison Wesley, 2001.

TANAKA, Sergio A.; BARROS R. M.; NUNES, R. L. Aplicação de métricas utilizando casos de uso. In: SEMANA DE COMPUTAÇÃO DA UNIVERSIDADE ESTADUAL DE LONDRINA, 2., 2005, Londrina. Artigo. Disponível em: <http://buscatextual.cnpq.br/buscatextual/visualizacv.jsp?id=K4705668H9>. Disponível em: 5 abr. 2007. VAZQUEZ, C. E.; SIMÕES, G. S.; ALBERT, R. M. Análise de pontos de função: medição, estimativas e gerenciamento de projetos de software. 3. ed. São Paulo: Érica, 2005.