análise de pontos de função de uma agenda eletrônica
DESCRIPTION
O presente trabalho tem por objetivo colocar em prática os conceitos de análise de pontos de função através da elaboração de um software de agenda eletrônica. As imagens citadas no trabalho encontram-se no link seguinte, de uma pasta compactada no Dropbox: http://goo.gl/gXQhWsTRANSCRIPT
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS Curso de Sistemas de Informação
Marcela Miranda Melo Patrícia Corniani Wíliam Gonçalves
ANÁLISE DE PONTOS DE FUNÇÃO DE AGENDA ELETRÔNICA
Arcos 2013
Marcela Miranda Melo Patrícia Corniani Wíliam Gonçalves
ANÁLISE DE PONTOS DE FUNÇÃO DE AGENDA ELETRÔNICA
Arcos 2013
Trabalho apresentado à disciplina Qualidade de Software, do curso Sistemas de Informação da Pontifícia Universidade Católica de Minas Gerais. Orientadora: Sílvio Garbes Lara.
1 INTRODUÇÃO
A crise do software que se expandiu na década de 1980 e se arrasta até os dias de
hoje tem reflexos imensamente negativos para o processo de desenvolvimento. Problemas
como a produtividade não acompanhar a demanda por serviços, a qualidade do software,
em alguns sistemas, não ser adequada e as estimativas de prazo e custo serem
frequentemente imprecisas têm sido contornados através da busca pelo aperfeiçoamento
do processo e consequente qualidade dele. Para tal, existem técnicas de medição de
software que definem com maior precisão seu tamanho funcional para que o projeto seja
definitivamente adequado ao seu planejamento.
A análise de pontos de função é uma técnica para mensuração de sistemas criada
em 1979. Esta análise dimensiona o software, considerando a perspectiva do usuário,
quantificando a funcionalidade que ele proporciona ao seu usuário final baseado
principalmente no seu desenho lógico. Com a aplicação desta técnica, há diversas
utilidades que partem dela: realizar estimativa de dimensão de projetos, estimar o nível de
produtividade da equipe, dimensionar o esforço para desenvolvimento e calcular a taxa de
manutenção do software.
O presente trabalho propõe a análise de pontos de função de um software hipotético
– uma agenda eletrônica – a fim de aplicar a teoria envolta neste processo de mensuração
de software. Foram feitos o levantamento de requisitos, a criação dos diagramas de caso
de uso e de classe, a formulação das interfaces para o usuário e a análise propriamente
dita, a fim de fazer a primeira medição de um software como forma de contínuo aprendizado
e aperfeiçoamento da prática.
2 DESENVOLVIMENTO
Esta seção tem o objetivo de detalhar e conceituar a análise de pontos de função
realizada sobre o levantamento de requisitos do software de agenda de telefones
especificado.
2.1 Levantamento de requisitos funcionais
O software a ser analisado para o presente trabalho é caracterizado por tornar mais
simples e eficiente o armazenamento e a consulta de contatos em um agenda eletrônica.
Todo e qualquer software é composto por funcionalidades que, em sua maioria, são
requisitadas pelos usuários. Os requisitos funcionais levantados para a agenda eletrônica
são:
a) Permitir várias agendas administradas por usuários diferentes: a agenda é
pessoal e pode ser acessada por usuários diferentes armazenados nela.
b) Fazer login: como permite agenda de vários usuários, estes devem realizar login
para poderem ter acesso à sua.
c) Gerenciar usuário: inserir/alterar/remover/mostrar usuários da agenda e a própria
agenda, pois ao se criar um novo usuário, automaticamente cria-se uma nova
agenda.
d) Gerenciar contato: inserir/alterar/remover/mostrar contatos da agenda de cada
usuário.
e) Gerenciar grupos: cada contato deve estar em algum grupo, e estes são pré-
definidos: favoritos, trabalho, amigos e família. Então, a agenda deve possibilitar
inserir o contato no grupo, remover o contato do grupo e mostrar membros dos
grupos e os próprios grupos.
f) Gerar relatórios: nos relatórios gerados devem constar informações gerais de
quantidade de contatos por agenda, último login, última alteração, dentre outras.
2.2 Diagrama de casos de uso
Figura 1 – Diagrama de casos de uso da agenda eletrônica
2.3 Diagrama de classes
Figura 2 – Diagrama de classes da agenda eletrônica
2.4 Diagrama de interfaces
As imagens encontram-se em anexo na pasta do arquivo ZIP.
2.5 Análise de pontos por função
A análise de pontos de função é uma métrica de software que se concentra na
funcionalidade ou utilidade do software e não no número de linhas de código. Os pontos
por função são derivados se usando uma relação empírica baseada em medidas de
informações e complexidade de software. Esta técnica envolve um processo com os
seguintes passos, demonstrados na Figura 3:
Figura 3 - Processo de análise de pontos de função
Fonte: BARCELLOS, 2013.
Para realizar a análise de pontos de função da agenda eletrônica, estes passos
foram seguidos.
a) Determinar tipo de contagem: o tipo de contagem é para um projeto de
Desenvolvimento, uma vez que se trata de um sistema a ser desenvolvido.
b) Identificar a fronteira da aplicação: não há interação com outros sistemas.
c) Contar funções tipo dados:
ALI: arquivo lógico interno / TED: tipo de elementos de dados / TER: tipo de elemento
de registros.
Funções Tipo Dados
ALI TED TER
Usuário 3 (nome, login, senha) 2 (Usuário e Usuário
Master)
Agenda 2 (dono, quantidade de contatos) 1 (Agenda)
Contato 5 (nome, idade, endereço, e-mail, telefone) 2 (Contato e Grupo)
Grupo 2 (descrição, quantidade de membros) 4 (Favoritos, Família, Amigos e Trabalho)
AIE TED TER
- - -
- - -
- - -
- - -
d) Contar funções tipo transações:
EE: entrada externa / SE: saída externa / CE: consulta externa / TED: tipo de
elementos de dados / TAR: tipo de arquivo referenciado.
Funções Tipo Transação
EE
ALI Função TED TAR
Usuário Inserir
8 (nome, login, repetir login, senha, repetir senha, inserir,
“inserção realizada com sucesso”, OK)
2 (Usuário e Agenda)
Remover 6 (login, senha, remover,
“deseja confirmar a remoção do registro?”, sim, não)
4 (Usuário, Agenda, Contato, Grupo)
Alterar
8 (nome, login, repetir login, senha, repetir senha, inserir,
“inserção realizada com sucesso”, OK)
2 (Usuário e Agenda)
Fazer login 3 (login, senha, entrar) 2 (Usuário e
Agenda)
Agenda Criar 1 (dono) 1 (Agenda)
Excluir 1 (dono) 1 (Agenda)
Contato Inserir
8 (nome, idade, endereço, e-mail, telefone, inserir,
“inserção realizada com sucesso”, OK)
1 (Contato)
Remover 6 (nome, telefone, remover, “deseja confirmar a remoção
do registro?”, sim, não) 1 (Contato)
Alterar 7 (nome do contato, buscar, nome, telefone, endereço, e-
mail, alterar) 1 (Contato)
Grupo Inserir contato 5 (nome do contato, grupo, inserir, “inserção realizada
com sucesso”, OK) 2 (Contato e Grupo)
Remover contato 6 (grupo, contato, remover,
“deseja confirmar remoção?”, sim, não)
2 (Contato e Grupo)
SE
- Relatório 7 (usuário, pesquisar, último
acesso, última alteração, 3 (Usuário, Contato
e Grupo)
quantidade de contatos, quantidade de grupos,
quantidade de contatos por grupo)
CE – Saídas
Usuário Mostrar todos 2 (usuário, senha) 1 (Usuário)
Agenda - - -
Contato Mostrar todos 2 (nome, telefone) 1 (Contato)
Grupo Mostrar grupo 2 (nome, quantidade de
contatos) 1 (Grupo)
Mostrar membros 2 (nome, telefone) 2 (Contato e Grupo)
CE – Entradas
Usuário - - -
Agenda - - -
Contato Mostrar todos - -
Grupo Mostrar grupo 1 (grupo) 1 (Grupo)
Mostrar membros 1 (grupo) 2 (Contato e Grupo)
e) Calcular pontos não-ajustados: (com base nas tabelas de complexidade fornecidas)
Pontos não-ajustados ALI e AIE
ALI Complexidade
Usuário Baixa
Agenda Baixa
Contato Baixa
Grupo Baixa
AIE Complexidade
- -
- -
- -
- -
Pontos não-ajustados EE
ALI Função Complexidade
Usuário Inserir Média
Remover Alta
Alterar Média
Fazer login Média
Agenda Criar Baixa
Excluir Baixa
Contato Inserir Baixa
Remover Baixa
Alterar Baixa
Grupo Inserir contato Média
Remover contato Média
Pontos não-ajustados SE
ALI Função Complexidade
- Relatório Média
Pontos não-ajustados CE – Saídas
ALI Função Complexidade
Usuário Mostrar todos Baixa
Agenda - -
Contato Mostrar todos Baixa
Grupo Mostrar grupo Baixa
Mostrar membros Baixa
Pontos não-ajustados CE – Entradas
ALI Função Complexidade
Usuário - -
Agenda - -
Contato - -
Grupo Mostrar grupo Baixa
Mostrar membros Baixa
Resultado de PFNA
Função Multiplicação Resultado
ALI 4 x Baixa (7) 28
AIE - 0
EE 5 x Baixa (3) 15
5 x Média (4) 20
1 x Alta (6) 6
SE 1 x Média (5) 5
CE 7 x Baixa (3) 21
Soma: 95
f) Calcular fator de ajuste:
Resultado de FA
Fator Pontuação
O sistema requer backup e recuperação confiáveis? 4
São exigidas as comunicações de dados? 0
Há funções de processamento distribuídas? 0
O desempenho é crítico? 1
O sistema funcionará num ambiente operacional existente, muito utilizado? 1
O sistema requer entrada de dados on-line? 0
A entrada de dados on-line exige que a transação de entrada seja elaborada em múl-tiplas telas ou operações?
0
Os arquivos-mestres são atualizados on-line? 0
A entrada, saída, arquivos ou consultas são complexos? 2
O processo interno é complexo? 0
O código foi projetado de forma a ser reusável? 1
A conversão e instalação estão incluídas no processo? 4
O sistema é projetado para múltiplas instalações em diferentes organizações? 3
A aplicação é projetada de forma a facilitar mudanças e o uso pelo usuário? 3
Soma: 19
Fórmula
VFA = (GIT * 0,01) + 0,65
VFA = (19 * 0,01) + 0,65 0,84
g) Calcular pontos de função ajustados:
Resultado de PFA
PFA = PFNA x VFA
PFA = 95 x 0,84 79,8
A agenda eletrônica hipotética abordada neste trabalho possui 79 pontos de função,
estes obtidos pela análise e cálculos demonstrados nos quadros acima.
3 CONCLUSÃO
A análise de pontos de função é parte de um processo de estimativas de projetos
completo e foi desenvolvida como tentativa para sanar um dos graves problemas trazidos
pela crise do software na década de 1980: as estimativas de prazo e custo eram
frequentemente imprecisas. Com a estimativa do tamanho funcional do projeto de software,
têm-se uma maior precisão e se possibilita a medição de produtividade, o que mais se
necessita para a produção de um software. Por isso, conhecer e realizar a análise é de
grande valia. Para o software de agenda eletrônica analisado no presente trabalho, o
processo foi simples, entretanto foram necessários recálculos para determinar o resultado
final a que se chegou até que se detectassem os parâmetros corretos. É um processo
trabalhoso, mas que transforma todo o projeto e define seu sucesso na ponta do lápis.
Referências bibliográficas
BARCELLOS, Monalessa Perini. Realização de Estimativas utilizando Análise de
Pontos de Função. Espírito Santo. Disponível em: <
http://www.inf.ufes.br/~monalessa/PaginaMonalessa-NEMO/ES/AnalisePontos Funcao.pdf
>. Acesso em: 08 nov. 2013.
FILHO, Alfredo Jorge Reimann. Análise por Pontos de Função. Curitiba. Disponível em:
< http://www.batebyte.pr.gov.br/modules/conteudo/conteudo .php?conteudo=1335 >.
Acesso em: 04 nov. 2013.
HAZAN, Claudia. Análise de Pontos de Função. Disponív el em: <
http://www.devmedia.com.br/artigo-engenharia-de-software-2-analise-de-pontos-de-
funcao/9146 >. Acesso em: 08 nov. 2013.