Escolar Documentos
Profissional Documentos
Cultura Documentos
A experincia demonstra que quase toda a organizao com desempenho considerado bom frente ao
mercado possui as seguintes caractersticas:
1. Informaes exatas e objetivas esto disponveis para todos os nveis de tomada de deciso
e esta prtica faz parte da cultura corporativa.
No passado, as organizaes tratavam o processo de medio como algo que no agregava valor ou
apenas algo a mais para se fazer. Nos dias de hoje, o processo de medio tem grande importncia na
engenharia de software. As organizaes bem sucedidas implementam a medio como parte de suas
atividades tcnicas e gerenciais do dia a dia.
02
1
120 Engenharia de Software II | Unidade 01
Um carro em alta velocidade, ao atravessar um nevoeiro, necessita ter sua velocidade reduzida (abaixo
de sua capacidade) por desconhecer o caminho que ele percorre. Dificilmente possvel imaginar uma
organizao alcanar a seu mximo desempenho desejado sem saber onde ela est e para onde ela quer
ir.
03
IEEE 90
2
120 Engenharia de Software II | Unidade 01
As medies ajudam a avaliar os produtos de trabalho e os processos com relao aos padres
estabelecidos. Tambm permitem mensurar caractersticas especficas durante o ciclo de vida
de um software com o objetivo de promover a melhoria da qualidade e do desempenho.
4- Decidir e melhorar
O uso das medies permite monitorar, avaliar, analisar e controlar o negcio, projetos,
produtos e atributos que suportam decises em nvel operacional e estratgico.
04
Padres so o elemento que fazem a unio entre o mundo da engenharia e o mundo da cincia. So
eles que promovem uma linguagem nica, independente de onde os mesmos so aplicados se em
uma fbrica de software na China ou no gerenciamento de uma linha de produo nos Estados
Unidos.
3
120 Engenharia de Software II | Unidade 01
atravs do uso de tais padres que a prtica pode ser realizada e melhorada continuamente.
05
A figura abaixo apresenta uma viso global dos padres relacionados engenharia de software e como
eles se relacionam uns com os outros:
06
4
120 Engenharia de Software II | Unidade 01
Muitas iniciativas de implantao de processos de medio falham. Seguem abaixo alguns riscos que
podem afetar negativamente o uso das medies nas organizaes:
Coleta de medies sem um sentido. O uso das medies deve ser orientado ao alcance de
objetivos. Cada medio deve possuir uma aplicao prtica.
Uso de medies que no so analisadas. Trabalhar com nmeros requer esforo. Distribuir
os nmeros em grficos e planilhas no suficiente h necessidade de uma anlise
detalhada do que os nmeros querem retratar.
07
2 - MEDIES E OBJETIVOS
5
120 Engenharia de Software II | Unidade 01
1. Em um primeiro momento importante saber o que a organizao quer e onde ela quer
chegar. Definem-se objetivos de negcio, indicadores de performance, metas de projetos e
objetivos de melhoria.
08
6
120 Engenharia de Software II | Unidade 01
Estabelece uma estrutura que relaciona os conceitos e termos de medio e prov base para
a comunicao precisa dos resultados de um processo de medio.
O uso de uma terminologia consistente mandatrio. A figura abaixo apresenta alguns dos termos
chave, definidos a partir da norma ISO/IEC 15939, SoftwareMeasurementProcess:
Necessidades de informao requeridas para dar suporte tomada de deciso nos projetos.
uma ideia sobre entidades que podem ser medidas de forma a satisfazer as necessidades de
informao. Por exemplo, produtividade uma entidade mensurvel que vai auxiliar o gerente de
projetos a tomar decises relacionadas a alocao de recursos.
a formalizao do conceito mensurvel que especifica exatamente o que ser medido e como os
dados sero combinados de forma a satisfazer as necessidades de informao. Por exemplo, o
esforo e o tamanho do software podem ser utilizados para compor a produtividade.
7
120 Engenharia de Software II | Unidade 01
Estabelece a dinmica de coleta e organizao dos dados requeridos para se chegar medio. Por
exemplo, para se chegar produtividade necessrio definir de que forma o esforo e o tamanho
de software sero coletados, organizados e interpretados.
09
o Planejar Medio
o Executar Medio
o Avaliar Medio
8
120 Engenharia de Software II | Unidade 01
Planejar Medio
Executar Medio
A atividade Executar Medio iniciada a partir do Plano de Medies. Esta atividade compreende a
coleta, o processamento e a anlise dos dados de medio. A partir deste ponto possvel
materializar aes e recomendaes que devem orientar o processo de tomada de deciso.
Avaliar Medio
Durante a atividade Avaliar Medio, tcnicas para anlise do prprio processo de medio em si so
aplicadas. esta atividade que garante que a abordagem adotada para medies em projetos est
adequada e continuamente revista e melhorada.
9
120 Engenharia de Software II | Unidade 01
10
A figura abaixo apresenta as tarefas que fazem parte da atividade Planejar Medio:
Veremos a seguir, detalhadamente, cada uma das tarefas da atividade Planejar Medio.
11
10
120 Engenharia de Software II | Unidade 01
Tecnologias emergentes;
Requisitos Externos;
Experincia.
As avaliaes dos riscos inerentes ao projeto podem apontar para necessidades de informao
relacionadas a requisitos, tecnologias, processos, custo e cronograma.
Tecnologias emergentes;
Os clientes podem impor critrios de aceitao do produto de software a ser desenvolvido. Quando
h dvidas sobre a capacidade de cumprir os critrios de aceitao definidos, o grau de satisfao de
tais critrios pode ser interpretado como uma necessidade de informao.
Requisitos Externos;
Diversas necessidades de informao esto relacionadas a requisitos externos ao projeto e que tem
um profundo grau de influncia sobre o mesmo.
11
120 Engenharia de Software II | Unidade 01
Experincia.
A equipe de um projeto pode utilizar da sua experincia em projetos anteriores para identificar reas
potenciais de problemas e as mesmas podem dar origem a necessidades de informao.
12
As necessidades de informao podem ser organizadas em categorias. O PSM define 7 categorias. Tais
categorias auxiliam na seleo das medies apropriadas. O PSM apresenta um conjunto de medidas
amplamente utilizadas no mercado, resultado da experincia de diversos projetos. A tabela abaixo
apresenta alguns exemplos:
Custo
Linhas de cdigo
12
120 Engenharia de Software II | Unidade 01
Portabilidade
Usabilidade
Confiabilidade
13
O uso de critrios bem definidos para a priorizao promove o consenso das diversas partes envolvidas.
A figura abaixo apresenta um exemplo de necessidades de informao priorizadas:
13
120 Engenharia de Software II | Unidade 01
14
Estrutura do produto, que pode considerar tarefas a serem realizadas por prestadores de
servios.
Enquanto o conceito mensurvel representa a ideia sobre o que pode ser medido para satisfazer as
necessidades de informao, uma construo mensurvel (measurementconstruct) define a forma como
14
120 Engenharia de Software II | Unidade 01
15
Durante esta tarefa, os procedimentos para uso das medies so incorporados aos processos dos
projetos:
16
O objetivo desta atividade implementar o Plano de Medies de forma a produzir os produtos que
daro subsdio tomada de deciso da gerncia do projeto.
Analisar Dados.
Produzir recomendaes.
A figura abaixo apresenta as tarefas que fazem parte da atividade Planejar Medio:
15
120 Engenharia de Software II | Unidade 01
17
Esta tarefa envolve a coleta dos dados das diversas fontes identificadas no Plano de Medies, prepar-
los para anlise e armazen-los em local acessvel para que sejam analisados.
Em muitos casos os dados podem ser coletados de forma automtica. Ferramentas de anlise de cdigo
podem ser utilizadas para prover mtricas relacionadas qualidade do cdigo desenvolvido.
Ferramentas que automatizam os processos de testes tambm podem fornecer dados para medies.
Em outros casos, dados de medio so coletados de forma manual. Por exemplo, a partir dos artefatos
utilizados para gerenciamento do projeto (Plano de Projeto, Cronograma, entre outros) possvel
coletar os dados para avaliar o desempenho de custos e prazos o que pode sinalizar se o trabalho est
sendo realizado conforme o planejado.
Os problemas mais comuns que podem ocorrer durante a tarefa de coleta de medies so:
Dados no capturados.
16
120 Engenharia de Software II | Unidade 01
PluginJDepend: Realiza a varredura dos diretrios de classes Java e gera mtricas relacionadas
qualidade do cdigo para cada pacote Java. Por exemplo: Nmero de classes e interfaces,
nvel de acoplamento, entre outras.
Plugin PMD: Ferramenta para anlise de cdigo que aponta falhas comuns na programao,
como objetos criados desnecessariamente, variveis no utilizadas, entre outros.
Mantis Bug Tracker: Ferramenta GPL (Licena Pblica Geral) que tem como principal funo
gerenciar defeitos identificados durante o processo de testes de software.
18
b) Analisar dados
Esta tarefa envolve a transformao dos valores de medio base em indicadores que, associados
aos critrios de deciso, devero direcionar as decises de planejamento, bem como aes
corretivas/ preventivas. Esta tarefa realizada a partir dos procedimentos de anlise definidos no
Plano de Medies.
A figura abaixo exemplifica a combinao de medies base para a derivao dos indicadores de Idade
dos Defeitos, Situao dos Defeitos e Densidade de Defeitos:
17
120 Engenharia de Software II | Unidade 01
A ttulo de exemplo, a medio base Data de Fechamento do Defeito gera as medies derivadas
Idade do Defeito (tempo em que o defeito est aberto) e Quantidade acumulada de defeitos
fechados. Os grficos apresentam a viso dos indicadores no tempo:
Para a anlise do indicador Defect Status (Situao do Defeito) possvel observar que o
volume de defeitos fechados aumentou no decorrer do tempo, o que demonstra tambm que
os defeitos foram tratados pela equipe.
19
Quando necessrio, tcnicas alternativas de anlise podem ser utilizadas. A figura abaixo apresenta os 3
tipos comuns de anlise utilizadas para dar suporte a tomada de deciso:
18
120 Engenharia de Software II | Unidade 01
Estimativa
Anlise de viabilidade
A Anlise de Viabilidade avalia a preciso e o quo realsticos so os planos do projeto. Para que um
plano de projeto seja vivel, necessrio que os elementos individuais deste plano sejam
tecnicamente reais e alcanveis.
Anlise de performance
20
c) Produzir recomendaes
19
120 Engenharia de Software II | Unidade 01
Esta tarefa envolve a formulao de recomendaes e a comunicao das mesmas, juntamente com o
resultado da anlise, a todos os interessados.
Pode resultar:
21
Avaliar Medies
A figura abaixo apresenta as tarefas que fazem parte da atividade Avaliar Medio:
20
120 Engenharia de Software II | Unidade 01
AVALIAR MEDIES
Esta tarefa envolve a avaliao dos produtos do processo de medio: medies base, medies
derivadas, indicadores e resultados das anlises. Esta avaliao deve ser realizada com base em
critrios pr-estabelecidos, entre eles:
21
120 Engenharia de Software II | Unidade 01
Esta tarefa envolve a identificao de melhorias especficas que podem ser implementadas no
processo de mensurao vigente, bem como nos projetos atualmente em execuo e futuros.
Tipicamente, as melhorias podem ser aplicadas:
22
22
120 Engenharia de Software II | Unidade 01
O objetivo desta atividade garantir o devido apoio organizacional ao processo de mensurao como
um todo, envolvendo o fornecimento de recursos e infraestrutura.
Definir Responsabilidades.
Prover Recursos.
A figura abaixo apresenta as tarefas que fazem parte da atividade Avaliar Medio:
DEFINIR RESPONSABILIDADES
Esta tarefa envolve a definio das responsabilidades dos envolvidos no processo de mensurao,
conforme tamanho e estrutura organizacional.
23
120 Engenharia de Software II | Unidade 01
PROVER RECURSOS
Esta tarefa envolve a definio de quais recursos so necessrios ao processo de mensurao como
um todo:
Um programa de medio pode ser entendido como uma iniciativa planejada, executada e
monitorada para a implantao de processos de mensurao. A implantao de um programa de
medio pode ser feita de forma incremental, conforme a maturidade e a experincia adquiridas pela
organizao como um todos nos diversos nveis gerenciais e tcnicos.
Esta tarefa envolve a reviso do programa de medio, conforme sua execuo no tempo.
23
Minimizar os custos.
24
120 Engenharia de Software II | Unidade 01
24
RESUMO
As medies possuem um papel de grande importncia nas organizaes: atravs do uso correto deste
instrumento ser possvel saber se a organizao caminha em direo ao alcance de seus objetivos. Na
engenharia de software, o uso das medies permite que aes corretivas e preventivas sejam tomadas
no momento certo, sempre com o objetivo de promover o alcance de bons resultados.
Planejar Medio.
Executar Medio.
Avaliar Medio.
25
120 Engenharia de Software II | Unidade 01
Mars Surveyor '98 era um programa da NASA (National Aeronautics and Space Administration),
agncia norte-americana responsvel por projetos na rea espacial. A Mars Surveyor '98 Lander foi
uma sonda construda como parte de do programa Mars Surveyor '98. O objetivo era que a sonda
pousasse no solo do planeta Marte e, a partir da, estudos do solo do planeta poderiam ser
realizados. A sonda foi lanada em 03/01/1999 e em 03/12/1999 entrou na rbita de Marte os
ltimos sinais da sonda foram enviados logo aps este fato. Estudos realizados por especialistas da
agncia indicaram que um erro de software foi a provvel causa da falha da misso: aps entrar na
rbita de Marte, as vibraes causadas pela aproximao do solo foram interpretadas pelo software,
que desligou de forma prematura os dispositivos que tinham por funo retardar a descida da sonda.
Resultado: A sonda seguiu em queda livre por aproximadamente 40 metros e foi destruda na queda.
02
Caso 2: Ariane
Ariane
Fonte: site da ESA
26
120 Engenharia de Software II | Unidade 01
O Ariane 5 foi um foguete construdo sob a superviso da ESA European Space Agency, agncia
espacial europeia, e que fez parte do Programa Ariane. O voo inaugural do Ariane 5 foi em
04/11/1996. Logo aps a decolagem, o foguete se desvia de sua rota original e aciona os dispositivos
de autodestruio. Em torno de 40 segundos aps a decolagem, uma exploso destruiu o foguete que
levava uma carga avaliada em US$ 500 milhes. Aps a anlise de especialistas, concluiu-se que um
erro de software causou a destruio do foguete.
03
As avaliaes da qualidade de um software podem ser realizadas de forma automatizada o que acelera
o processo de verificao do alcance da qualidade desejada.
A medio de software se dedica a derivar um valor numrico para algum atributo de um produto de
software ou de um processo de software (SOMERVILLE, 2007).
27
120 Engenharia de Software II | Unidade 01
04
Os resultados das medies de controle podem influenciar as decises gerenciais (por exemplo, se uma
equipe improdutiva, aps analisar a causa real da perda de produtividade, o Gerente de Projetos pode
decidir alocar recursos mais experientes para determinadas tarefas).
O produto de software o principal resultado do processo de software. As
medies de predio provm informaes sobre o estado do produto de
software (por exemplo, o nmero de erros apurados para determinado
perodo). Os resultados destas medies podem tambm influenciar a
tomada de deciso gerencial (por exemplo, um nmero elevado de defeitos
em aberto em data prxima entrega do produto, pode levar o Gerente de
Projetos a negociar a postergao da data de entrega para o cliente).
Na tomada de deciso.
05
Introduo
28
120 Engenharia de Software II | Unidade 01
Papis e Responsabilidades
Apresenta papis e responsabilidades dos profissionais envolvidos com o processo de medio, sejam
eles integrantes de reas estratgicas, tticas ou operacionais.
Recursos Tecnolgicos
Objetivos Estratgicos
Medies
Plano de Comunicao
Apresenta os meios, os responsveis pelo reporte global de resultados das medies, bem como os
interessados nos resultados.
06
A tabela abaixo apresenta um modelo (exemplo) para a especificao das medies de projeto:
29
120 Engenharia de Software II | Unidade 01
Coleta dos Dados Responsvel: Profissional ou papel responsvel pela coleta dos
dados da medio.
30
120 Engenharia de Software II | Unidade 01
As prximas sees apresentam exemplos prticos das informaes que sero base para elaborao do
Plano de Medies. Tais informaes so definidas no contexto do Modelo do Processo de Medio,
descrito no mdulo anterior.
07
Objetivos estratgicos so objetivos mensurveis; algo desejvel quando visto a partir de uma
perspectiva de negcio.
Exemplos prticos:
Aumentar o lucro
31
120 Engenharia de Software II | Unidade 01
08
O conceito mensurvel uma ideia sobre entidades que podem ser medidas de forma a satisfazer as
necessidades de informao.
Exemplos prticos:
Avaliar e aumentar a preciso das estimativas Nvel de preciso das estimativas (planejado
versus realizado).
Garantir a eficcia das revises tcnicas Retrabalho em artefatos que j passaram por
reviso tcnica.
Identificar a causa dos desvios dos prazos Nvel de atendimento dos prazos acordados.
acordados na entrega de produtos
32
120 Engenharia de Software II | Unidade 01
09
10
33
120 Engenharia de Software II | Unidade 01
Construo Mensurvel
34
120 Engenharia de Software II | Unidade 01
Outros exemplos:
Exemplo 2
Construo Mensurvel
Entregas Planejadas
Indicador ATDPrazo
Modelo de Anlise O valor ideal para fins de anlise 100%. Quanto maior o
valor para esse indicador, melhor o cumprimento das
entregas acordadas com o Cliente. Valores abaixo do
percentual definido indicam que os prazos acordados no
foram cumpridos.
35
120 Engenharia de Software II | Unidade 01
Exemplo 3
Construo Mensurvel
Tamanho do produto
Indicador DDef
36
120 Engenharia de Software II | Unidade 01
11
Algumas perguntas podem auxiliar na definio de como os dados sero coletados, apurados,
analisados e armazenados:
Qual a unidade de medida a ser utilizada? (nmero, percentual, valor relativo, valor absoluto)?
Corretude Consistncia
37
120 Engenharia de Software II | Unidade 01
12
Alguns instrumentos podem ser utilizados para auxiliar a anlise das medies:
13
b) Diagrama de Pareto
Conforme o Princpio de Pareto, 80% das consequncias so decorrentes de 20% das causas. O
Diagrama de Pareto o grfico de colunas que demonstra que diferena relativa de importncia de
diferentes grupos de dados, auxiliando na priorizao do que significativo.
38
120 Engenharia de Software II | Unidade 01
14
c) Grfico de Pizza
15
d) Grfico de Linhas
Este grfico permite a exibio de uma srie de dados como um conjunto de pontos conectados por
uma linha.
39
120 Engenharia de Software II | Unidade 01
16
Onde:
40
120 Engenharia de Software II | Unidade 01
17
41
120 Engenharia de Software II | Unidade 01
Onde:
Periodicidade: Mensal
Anlise O valor ideal para fins de anlise a meta definida. Quanto maior o
valor para esse indicador, melhor o cumprimento das entregas
acordadas com o Cliente. Valores abaixo do percentual definido
indicam que os prazos acordados no foram cumpridos.
42
120 Engenharia de Software II | Unidade 01
Meta 100%
Coordenao de Negcios
18
Onde:
43
120 Engenharia de Software II | Unidade 01
Periodicidade: Mensal
19
44
120 Engenharia de Software II | Unidade 01
Planos de Medio.
Sries de dados coletados, que podem ser utilizados para armazenar o sumrio dos
resultados representados atravs de grficos e tabelas.
No contexto dos projetos, as informaes do processo de medio podem ser armazenadas no prprio
repositrio do projeto, bem como em artefatos utilizados durante o monitoramento e o controle do
projeto, tais como:
20
Gerncia de negcios.
Lderes tcnicos.
Patrocinadores.
Clientes.
Manter os interessados informados dos resultados dos processos de medio no tempo adequado
essencial para que as aes corretivas e/ou preventivas sejam tomadas no momento necessrio.
Exemplos de aes que podem auxiliar no entendimento dos resultados das medies:
45
120 Engenharia de Software II | Unidade 01
Reflexo:
(SOMMERVILLE, 2007).
21
RESUMO
No existem mtricas de software padronizadas e universalmente aplicveis. As organizaes devem
selecionar suas mtricas e analisar as medies baseadas no conhecimento e nas circunstncias locais.
(SOMMERVILLE, 2007).
As bases de todo processo de medio se formam no estabelecimento deste processo nos projetos e o
grande desafio da implantao das medies em projetos de software faz-la com o maior impacto
positivo possvel.
Cada medio estabelecida deve ser comunicada de forma nica e consistente. necessrio definir:
A relao matemtica que existe entre os dados coletados e que vo fornecer o resultado da
medio.
A unidade de medida, bem como contra que meta ou faixa de valores o resultado da medio
deve ser comparado.
46
120 Engenharia de Software II | Unidade 01
Os requisitos de segurana dos dados das medies, tais como a definio de que papis na
organizao devem ter acesso at que nvel de informao da medio e o local de
armazenamento dos produtos de trabalho gerados/atualizados.
Os resultados do processo de medio devem ser comunicados de forma eficaz de forma que promova
agregao de valor s decises tomadas nos projetos, bem como a melhoria contnua dos processos da
organizao.
A estimativa precisa do tamanho do software o primeiro passo para a obteno de uma estimativa
efetiva. Os resultados das estimativas de esforo so fundamentais para o processo de desenvolvimento
de software, pois seus resultados serviro de insumos para o planejamento financeiro do projeto, bem
como a elaborao do cronograma.
Especificao de sistema.
47
120 Engenharia de Software II | Unidade 01
Produtos de trabalho da fase de projeto do sistema tambm podem ser utilizados para prover
informaes adicionais a serem utilizadas nas estimativas.
02
A mtrica de Pontos de Funo foi concebida como uma medida de tamanho funcional para projetos
de desenvolvimento e de melhoria (manuteno evolutiva) de software. Dekkers (2003) define o
tamanho funcional como Tamanho de um software derivado pela quantificao dos requisitos
funcionais do usurio.
O IFPUG (International Function Point Users Group) ou Grupo Internacional de Usurios de Pontos de
Funo uma entidade sem fins lucrativos que tem por misso promover, aprimorar e incentivar o uso
da Anlise de Pontos de Funo e outras tcnicas de medio de software. este grupo que define as
regras aplicveis Anlise de Pontos de Funo, que so publicadas em um manual conhecido como
CPM Counting Practice Manual.
A utilizao da mtrica de Pontos de Funo considerada uma boa prtica para contratao de
servios de software. A Instruo Normativa SLTI n 4 de 12 de novembro de 2010, recomenda o uso de
mtricas em contratos de projetos de software, restringindo o uso da mtrica de esforo homem-hora.
A Portaria SLTI/MP n 31, de 29 de novembro de 2010, recomenda o uso da mtrica Pontos de Funo
para os rgos integrantes do SISP, bem como a adoo do Roteiro de Mtricas de Software do SISP na
contratao de servios de desenvolvimento e manuteno de solues de software.
O SISP (Sistema de dos Recursos de Tecnologia da Informao) foi institudo pelo Decreto n 1.048 de 21
de janeiro de 1994 e atualizado pelo Decreto n 7.579 de 11 de outubro de 2011, com o objetivo de
organizar a operao, controle, superviso e coordenao dos recursos de informao e informtica da
administrao direta, autrquica e fundacional do Poder Executivo Federal.
03
Criao dos fundamentos da Anlise de Pontos de Funo, por Allan Albrecht (IBM). Os
1979
mesmos foram apresentados em uma conferncia do GUIDE (Grupo de Usurios IBM).
1986 Criao da primeira diretoria do IFPUG (International Function Point Users Group)
48
120 Engenharia de Software II | Unidade 01
1996 Realizao do primeiro exame CFPS (Certified Function Point Specialist) no Brasil
04
Permite que estimativas sejam realizadas nas fases iniciais do ciclo de vida de um projeto de
software.
49
120 Engenharia de Software II | Unidade 01
05
Regras de Negcio.
06
50
120 Engenharia de Software II | Unidade 01
Veremos a seguir, com detalhes, cada um dos passos para contagem de pontos de funo.
07
Esta tarefa tem por objetivos a identificao de requisitos funcionais a partir da anlise da
documentao disponvel e a definio do propsito da contagem a ser realizada.
O propsito da contagem de pontos de funo a ser realizada est diretamente ligado ao tipo de
contagem escolhido, conforme situao.
a contagem dos pontos de funo relacionados a uma melhoria a ser aplicada em um software j
existente, sejam as modificaes relacionadas a incluso, alterao e/ ou excluso de funcionalidades.
51
120 Engenharia de Software II | Unidade 01
08
Esta tarefa tem por objetivos a definio de quais funcionalidades sero consideradas para fins de uma
contagem em particular, bem a fronteira do software baseada na viso do usurio.
Para contagens do tipo Desenvolvimento, o escopo deve incluir todas as funcionalidades a serem
construdas para o novo software.
Para contagens do tipo Manuteno, o escopo deve incluir as funcionalidades includas, alteradas e/
ou excludas que fazem parte da melhoria.
Para contagens do tipo Aplicao, o escopo pode considerar a totalidade das funcionalidades j
utilizadas pelos usurios.
Entende-se por fronteira do software a interface conceitual que indica o limite entre o software a ser
medido e o mundo exterior.
52
120 Engenharia de Software II | Unidade 01
09
A fronteira do software:
Delimita que elementos devem ser levados em considerao para fins de contagem.
Pode ser tratada como uma interface pela qual os dados processados pelas transaes
(entradas externas, sadas externas e consultas externas) transitam entre o mundo externo
e o software.
O Sistema de Gesto de Recursos Humanos possui uma importante integrao com o Sistema de Gesto
Financeira. Ambos os sistemas possuem um conjunto de funcionalidades disponveis para os usurios.
Cada um dos sistemas em questo possui suas fronteiras especficas. Por sua vez, o Sistema de Gesto
de Recursos Humanos possui diversos mdulos e ambos tambm possuem fronteiras especficas.
10
Esta tarefa tem por objetivo a identificao das funcionalidades fornecidas para os usurios para
satisfazer os requisitos de dados internos e/ ou externos.
53
120 Engenharia de Software II | Unidade 01
Assumindo como escopo da contagem de pontos de funo uma melhoria no Mdulo de Cadastro de
Empregados, as informaes bsicas do empregado (cdigo, nome, data de admisso, CPF) e as
informaes de endereo de empregados so consideradas ALI. Os dados dos benefcios aos quais o
empregado tem direito sero considerados AIE.
Grupos de dados logicamente relacionados que so referenciados pelo software, porm mantidos
externos fronteira do software que est sendo contada. O objetivo de um AIE armazenar dados
54
120 Engenharia de Software II | Unidade 01
referenciados atravs de um ou mais processos elementares dentro da fronteira do software que est
sendo contada.
11
Um processo elementar pode ser conceituado como a menor atividade que tem um significado para o
usurio do software. Para fins de exemplo, tomar como escopo o Mdulo de Cadastro de Empregados
pode ser considerado processos elementares:
Alterao de Empregado.
Excluso de Empregado.
Os processos elementares devem ser realizados na sua totalidade, provendo o objetivo para o qual a
funcionalidade do software foi definida. As funes transacionais representam esses processos
elementares. Temos os seguintes tipos:
um processo elementar que processa os dados ou informaes de controle que entram pela
fronteira do software. O objetivo primrio de uma EE manter um ou mais ALI ou alterar o
comportamento do software.
Podem representar:
55
120 Engenharia de Software II | Unidade 01
Um processo elementar que utiliza uma ou mais telas que mantm um ou mais ALI.
Uma atividade de atualizao (inserir, alterar ou excluir) poder ser considerada uma EE, caso
faam parte de um processo elementar.
Um processo batch que mantm um ou mais ALI (dados ou informaes de controle) devem
atravessar a fronteira do software.
Uma transao utilizada para manter o comportamento do software ou controlar o seu fluxo
de processamento.
12
um processo elementar que apresenta dados ou informao de controle para fora da fronteira do
software. O objetivo primrio apresentar informaes para um usurio ou outro software atravs
de um processamento lgico que pode considerar ou no a recuperao de dados ou informaes de
controle.
A lgica de processamento:
Transferncias de dados para outro software, que contenha clculos ou dados derivados.
56
120 Engenharia de Software II | Unidade 01
Dados ou informaes representados de forma grfica (grficos de barras, pizza, entre outros).
Telas de login.
13
um processo elementar que apresenta dados ou informaes de controle para fora da fronteira do
software. O objetivo primrio apresentar as informaes para os usurios a partir da recuperao
de dados ou informaes de controle de ALI ou AIE.
A lgica de processamento:
Dados que so recuperados de um ou mais ALI e/ou AIE e apresentados com base em um critrio
especfico de entrada.
Transferncia de dados para outro software, sem que contenha clculos ou dados derivados.
57
120 Engenharia de Software II | Unidade 01
Telas auxiliares ou campos do tipo combo box que apresentam informaes recuperadas de um ALI
ou AIE.
Telas de alterao ou excluso de dados que apresentam o que ser alterado/ removido antes da
ao de alterao/ excluso efetiva.
14
O prximo passo necessrio realizar a classificao das funes de dados e transacionais, que ser
feita conforme o nmero de registros lgicos (arquivos referenciados) e itens de dados.
15
A partir das informaes identificadas, a prxima etapa realizar o clculo dos pontos de funo no
ajustados, conforme exemplifica a tabela abaixo:
3 BAIXA x7 = 21
ALI 0 MDIA x 10 = 0 21
0 ALTA x 15 = 0
AIE 2 BAIXA x5 = 10 10
58
120 Engenharia de Software II | Unidade 01
0 MDIA x7 = 0
0 ALTA x 10 = 0
4 BAIXA x3 = 12
EE 2 MDIA x4 = 8 26
1 ALTA x6 = 6
2 BAIXA x4 = 8
SE 0 MDIA x5 = 0 8
0 ALTA x7 = 0
CE 2 BAIXA x3 = 6
2 MDIA x4 = 8 14
0 ALTA X6= 0
16
O fator de ajuste leva em considerao as caractersticas gerais do software. utilizado para ajustar a
contagem. So elas:
59
120 Engenharia de Software II | Unidade 01
17
s caractersticas gerais do software sero atribudos pesos que variam de 0 a 5, conforme tabela
abaixo:
60
120 Engenharia de Software II | Unidade 01
0 Nenhuma influncia
1 Influncia mnima
2 Influncia moderada
3 Influncia mdia
4 Influncia significativa
5 Grande influncia
O prximo passo definir o Nvel de Influncia (NI), que calculado conforme frmula abaixo:
Onde NI (Nvel de Influncia) igual ao somatrio obtido da pontuao das caractersticas do software.
Onde FA (Fator de Ajuste) igual ao Nvel de Influncia (NI) multiplicado por 0,01. O resultado dever
ser somado a 0,65.
18
Para o clculo dos pontos de funo de um Projeto de Desenvolvimento, considerar a frmula abaixo:
PF_DESENV = PF_NA * FA
Onde:
FA = Fator de ajuste
61
120 Engenharia de Software II | Unidade 01
Para o clculo dos pontos de funo de um Projeto de Manuteno, considerar a frmula abaixo:
Onde:
19
Para o clculo dos pontos de funo de uma Aplicao j implantada, considerar a frmula abaixo:
PF_APLIC = PF_NA * FA
Onde:
FA = Fator de ajuste.
Para o clculo dos pontos de funo de uma Aplicao j implantada, a partir dos pontos de funo de
um projeto de desenvolvimento, considerar a frmula abaixo:
Onde:
62
120 Engenharia de Software II | Unidade 01
o Migrao ou carga inicial de dados para popular as novas tabelas criadas (Entradas
Externas).
FA = Fator de ajuste
20
Para o clculo dos pontos de funo de uma Aplicao aps um projeto de manuteno, considerar a
frmula abaixo:
Onde:
63
120 Engenharia de Software II | Unidade 01
21
RESUMO
A elaborao das estimativas tanto nos projetos de desenvolvimento quanto nas manutenes de
software atividade fundamental e de grande importncia. A estimativa de tamanho um dos insumos
fundamentais para a projeo de custos, esforo e do tempo necessrios para a entrega de um produto
que atenda as necessidades estabelecidas por seus usurios.
Entre os tipos de estimativas existentes, no que se refere ao tamanho do software, destaca-se a Anlise
de Pontos de Funo, amplamente utilizada e discutida.
1 - REQUISITOS NO FUNCIONAIS
Os requisitos funcionais de um sistema descrevem o que o sistema deve fazer. Esses requisitos
dependem do tipo do software que est sendo desenvolvido, dos usurios a que o software se
destina e da abordagem geral considerada pela organizao ao redigir os requisitos (Sommerville,
2007).
Alm dos requisitos funcionais, existem requisitos que no esto diretamente relacionados s funes
especficas de um sistema, tais como:
64
120 Engenharia de Software II | Unidade 01
Para fins de referncia sobre os requisitos no funcionais, a norma ISO/IEC 9126:2001, descreve um
modelo de qualidade do produto de software, composto de duas partes:
b) A qualidade em uso.
A qualidade em uso
a viso da qualidade do produto de software do ponto de vista do usurio, quando este produto
usado em um ambiente e um contexto de uso especificado. Ela mede o quanto usurios podem
atingir seus objetivos num determinado ambiente e no as propriedades do software em si.
02
65
120 Engenharia de Software II | Unidade 01
03
66
120 Engenharia de Software II | Unidade 01
Cinco subcategorias
Subcategorias:
67
120 Engenharia de Software II | Unidade 01
Subcategorias:
Subcategorias:
68
120 Engenharia de Software II | Unidade 01
Subcategorias:
69
120 Engenharia de Software II | Unidade 01
04
As caractersticas e subcaractersticas podem ser medidas por meio de mtricas externas e internas.
A utilizao conjunta dos dois tipos mensurao do tamanho de um software APF (Anlise de Pontos
de Funo) e a estimativa de tamanho baseada nos requisitos no funcionais permite aos profissionais
da engenharia de software:
Obter dados especficos e promover a comunicao para vrios interlocutores de questes que
envolvem requisitos no funcionais.
05
70
120 Engenharia de Software II | Unidade 01
Existem critrios bsicos estabelecidos e que so utilizados como base para a medio.
O tamanho do requisito no funcional obtido pela soma dos tamanhos das suas
subcategorias.
06
2011 Release 1.0: 1 release pblica do SNAP APM. Estabelecia conceitos, processos e regras para
a avaliao dos requisitos no funcionais de software. Foi resultado de anos de avaliao e
feedback de especialistas.
2009 Release 0.1 do International Function Point Users Group (IFPUG) SNAP Assessment Practices
Manual (APM)
Fonte: Software Non-functional Assessment Process (SNAP) Assessment Practices Manual, verso 2.3
O SNAP APM utiliza definies e terminologias definidas por organizaes internacionais para definio
de padres como:
71
120 Engenharia de Software II | Unidade 01
07
08
3 - O FRAMEWORK SNAP
Um projeto de desenvolvimento de software pode ser visualizado a partir das dimenses tcnica, de
qualidade e funcional, conforme figura abaixo:
72
120 Engenharia de Software II | Unidade 01
Fonte: Software Non-functional Assessment Process (SNAP) Assessment Practices Manual, verso 2.3
A dimenso funcional coberta pela medio baseada em pontos de funo (APF). O SNAP cobre tanto
a dimenso qualitativa, quanto a tcnica.
09
Abaixo veremos alguns termos comumente utilizados no contexto do procedimento de anlise SNAP:
#DERs;
Partio.
73
120 Engenharia de Software II | Unidade 01
Atributo nico, no repetido, que pode ser um dado do negcio, um dado de referncia ou um dado
de cdigo.
#DERs
A soma de todos os DERs que so parte da entrada + sada do processo elementar, mais os elementos
de dados que so lidos ou atualizados dentro da fronteira.
Um subgrupo de dados elementares referenciados, reconhecidos pelo usurio, dentro de uma funo
de dados e o grupo de dados de cdigo.
uma funo de dados lida e/ou mantida por uma funo transacional, podendo incluir:
Nmero de validaes condicionais (If-Else combo/While loop/For loop ou qualquer outro bloco
de validao) na cadeia de validao mais longa.
74
120 Engenharia de Software II | Unidade 01
Partio
10
11
Esta atividade tem por objetivo definir o foco da avaliao. As seguintes tarefas devem ser realizadas, na
sequncia apresentada conforme figura abaixo:
75
120 Engenharia de Software II | Unidade 01
possvel medir o tamanho dos requisitos funcionais e no funcionais para qualquer projeto ou
aplicao. Na tarefa Identificar o tipo de avaliao, necessrio entender em que contexto a avaliao
ser realizada.
Avaliao de Aplicao.
Este tipo de avaliao aplicvel a um novo projeto de desenvolvimento de software, que tem por
objetivo a entrega da 1 verso de um produto de software.
Este tipo de avaliao aplicvel s manutenes de software, como a entrega uma melhoria
(manuteno evolutiva), de uma correo (manuteno corretiva), uma manuteno adaptativa ou
perfectiva.
Avaliao de Aplicao
Este tipo de avaliao aplicvel ao contexto de aplicaes, onde as mesmas so entendidas como
um conjunto coeso de procedimentos automatizados e dados que do suporte a um objetivo de
negcio; consiste em um ou mais componentes, mdulos ou subsistemas.
76
120 Engenharia de Software II | Unidade 01
12
O objetivo desta tarefa identificar os requisitos no funcionais que devero fazer parte da avaliao.
Para uma avaliao do tipo Projeto de Melhoria devem fazer parte do escopo os requisitos no
funcionais relacionados manuteno especfica (seja uma melhoria, corretiva, adaptativa ou
perfectiva).
Para uma avaliao do tipo Avaliao de Aplicao devem fazer parte do escopo todos os requisitos
no funcionais necessrios aplicao em avaliao.
13
Uma fronteira considerada uma interface conceitual entre o software em avaliao e o mundo
exterior, conforme ilustra a figura abaixo:
A figura acima exemplifica as fronteiras existentes entre o Sistema de Vendas de Produtos na Internet e
o mundo exterior, sendo elas:
14
77
120 Engenharia de Software II | Unidade 01
(Software Non-functional Assessment Process (SNAP) Assessment Practices Manual, verso 2.3).
Podem trabalhar de forma conjunta para prover todo o comportamento requerido pelo
software.
15
Esta atividade tem por objetivo selecionar os requisitos no funcionais e identificar, a partir do escopo
definido, as categorias e subcategorias que sero utilizadas para atender os mesmos.
As categorias:
78
120 Engenharia de Software II | Unidade 01
Uma subcategoria definida como um componente, um processo ou uma atividade executada dentro
de um projeto de software, de forma a atender requisitos no funcionais.
Categoria
Uma categoria um grupo de componentes, processos e atividades que so utilizados para satisfazer
os requisitos no funcionais definidos.
16
Categoria que est relacionada a como o dado processado dentro de um UCS (SNAP Counting Unit)
para atender os requisitos no funcionais. Esse processo no atravessa a fronteira do software.
79
120 Engenharia de Software II | Unidade 01
Parmetros de complexidade:
80
120 Engenharia de Software II | Unidade 01
Parmetros de complexidade:
Mdia: Envolve a
criptografia/descriptografia que uma
caracterstica da aplicao e aplicada a
81
120 Engenharia de Software II | Unidade 01
Parmetros de complexidade:
82
120 Engenharia de Software II | Unidade 01
Parmetros de complexidade:
17
Categoria que est relacionada experincia do usurio. Esta categoria avalia o design dos processos
UI e os mtodos que permitem a interao do usurio com a aplicao.
83
120 Engenharia de Software II | Unidade 01
Informaes fornecidas aos usurios que explicam Manual do usurio 1*(#itens de ajuda)
como o software prov suas funcionalidades ou outras
informaes de suporte aos usurios. (cpia fsica / cpia
eletrnica / ajuda
no nvel
deaplicao)
UCS: A aplicao avaliada.
Texto on-line 2*(#itens de ajuda)
(Textos descritivos
Parmetros de complexidade:
disponveis de
Tipo de ajuda disponvel. forma online)
84
120 Engenharia de Software II | Unidade 01
durante a execuo
de uma
funcionalidade)
Parmetros de complexidade:
85
120 Engenharia de Software II | Unidade 01
3* 4* 6*
18
Categoria que est relacionada a aspectos do ambiente no qual a aplicao reside. Ela avalia a
tecnologia, bem como as mudanas nos dados internos e na configurao que no modifica
funcionalidades a partir da perspectiva de pontos de funo.
(famlias diferentes)
86
120 Engenharia de Software II | Unidade 01
(browsers diferentes)
2 3 +4
Plataforma Plataforma Plataformas
s s
SP = 10 SP = 20 SP = 30
(SistemasReal time)
2 3 +4
Plataforma Plataforma Plataformas
s s
2 3 +4
Plataforma Plataforma Plataformas
s s
87
120 Engenharia de Software II | Unidade 01
2 3 +4
Plataforma Plataforma Plataformas
s s
88
120 Engenharia de Software II | Unidade 01
Parmetros de complexidade:
19
CATEGORIA 4 Arquitetura
Categoria relacionada s tcnicas de design e codificao utilizadas para construir a aplicao. Ela
avalia a complexidade do desenvolvimento modular/baseado em componentes.
Parmetros de complexidade:
89
120 Engenharia de Software II | Unidade 01
3* 4* 6*
UCS: O processo elementar.
#interfaces #interfaces #interfaces
adicionais adicionais adicionais
Parmetros de complexidade:
20
90
120 Engenharia de Software II | Unidade 01
A complexidade de uma UCS determinada com base na anlise dos parmetros que afetam a
complexidade de uma subcategoria.
Os pontos SNAP (PS) so a soma do tamanho de todas as UCSs identificadas em cada subcategoria. Uma
vez que todos os parmetros de complexidade tenham sido avaliados, o tamanho de cada UCS
calculado e os PS de todas as UCSs so somados para obter os PS calculados para a subcategoria.
21
DSP = ADD
Onde:
Para o clculo dos pontos de funo de um Projeto de Melhoria (manuteno de software), considerar a
frmula abaixo:
Onde:
Melhoria.
91
120 Engenharia de Software II | Unidade 01
CHGA = Tamanho dos requisitos no funcionais alterados pelo projeto de melhoria como eles
ficaram aps a implementao.
Para o clculo dos pontos de funo de uma Aplicao, considerar a frmula abaixo:
Onde:
CGHA = Tamanho dos requisitos no funcionais alterados pelo projeto de melhoria como eles
ficaram aps a implementao.
CHGB = Tamanho dos requisitos no funcionais alterados pelo projeto de melhoria como eles
eram antes do projeto comear.
22
RESUMO
O IEEE [IEEE 610.12-1990] define requisito como Uma condio ou capacidade que deve ser atendida
ou possuda por um sistema ou partes de um sistema para satisfazer um contrato, padro, especificao
ou outros documentos formais impostos. Os requisitos podem existir em diversos nveis da abstrao e
constituem um dos produtos de trabalho mais importantes de um projeto de desenvolvimento ou
manuteno: a partir dos requisitos que ser definido o que construir.
Enquanto a Anlise de Ponto de Funo est voltada para o dimensionamento do software a partir das
caractersticas funcionais, o SNAP (Software Non-functionalAssessmentProcess) tambm criado pelo
IFPUG (InternationalFunction Point UsersGroup) volta-se para o dimensionamento do software a partir
dos requisitos no funcionais. Assim como a Anlise de Pontos de Funo, a tcnica SNAP tambm
92
120 Engenharia de Software II | Unidade 01
73 No entanto, tendo em vista o ineditismo e a falta de pessoal qualificado e certificado nessa nova
tcnica, ainda no se nota adoo disseminada do Snap pelas organizaes da amostra avaliada.
Somente uma delas tem planos de adotar Snap conjuntamente com Anlise de Pontos de Funo em
suas novas contrataes.
93