Gerência e Qualidade de Software - Aula 10 - Métricas
Summary
TLDRProfessor Fábio Siqueira's lecture delves into the realm of software quality metrics, emphasizing the importance of quantifying subjective attributes like user interface aesthetics. He discusses the necessity of objective measurements for assessing software quality, the challenges in evaluating certain characteristics, and the utility of metrics in project management and process improvement. The talk covers various types of metrics, including product metrics, and highlights the Function Points method as a way to measure software size and functionality, despite its empirical nature and potential for subjectivity.
Takeaways
- 😀 Software quality metrics are essential for quantitatively evaluating the aesthetic and user satisfaction of software interfaces.
- 📐 Metrics provide a numerical way to assess whether software has achieved the desired quality attributes, which is crucial for discussions and improvements.
- 🔍 The challenge with quality attributes like aesthetics is that they are not always easy to quantify, yet metrics are necessary for objective measurement.
- 📈 Metrics are used to measure the product, process, and project in software development, serving different purposes such as quality evaluation and defect prediction.
- 🛠️ A good metric should be easy to calculate, intuitive, unambiguous, consistent, and not dependent on the programming language used.
- 📊 Metrics are indicators that may not always have a direct correlation with the expected outcomes but are used to aid decision-making.
- 🔑 Traditionally, metrics are divided into three types: product metrics, project metrics, and process metrics, with the focus of this script being on product metrics.
- 🔄 Product metrics are used to measure the quality characteristics of the software and can be challenging to measure directly, often requiring indirect measurements.
- 🔢 The number of lines of code is a widely used but controversial metric due to its simplicity and potential misinterpretation of productivity.
- 📚 Function points are a method to measure the functional size of software, allowing for estimation of development time and cost without actual implementation.
- 🔄 Function points consider both data functions and transaction functions, with different levels of complexity affecting the calculation of points.
- 🔄 Adjusted function points take into account 14 characteristics of the software, allowing for a more nuanced measurement that can vary by up to 35%.
Q & A
What is the main topic discussed by Professor Fábio Siqueira in the video?
-The main topic discussed is software metrics, specifically how they are used to evaluate and measure the quality characteristics of software.
Why is it important to quantify the quality characteristics of software?
-Quantifying quality characteristics is important because it provides a measurable way to assess whether the software meets the expected quality standards, helps identify potential issues, and aids in project management and process control.
What are the problems associated with evaluating quality characteristics without metrics?
-Without metrics, it's difficult to objectively evaluate quality characteristics, leading to potential disagreements and lack of a clear direction for improvements.
What are the types of metrics mentioned in the script?
-The script mentions three types of metrics: product metrics, project metrics, and process metrics.
What is the purpose of product metrics as described in the video?
-Product metrics are used to measure the quality characteristics of a software product, also known as prediction metrics, to foresee if the software will possess certain qualities.
What are the characteristics of a good metric according to the video?
-A good metric should be easy to calculate, intuitive, unambiguous, consistent in measurement units, not dependent on programming language, and useful for decision-making.
Why are static metrics important in software development?
-Static metrics are important because they can be analyzed without executing the software, providing insights into the software's structure and potential issues before the software is run.
Can you provide an example of a static metric mentioned in the script?
-An example of a static metric mentioned is the number of lines of code, which is easy to measure and has been widely used in software engineering.
What is the Function Points method and why is it significant?
-The Function Points method is a way to measure the functional size of software, allowing for the estimation of development time and cost before the implementation phase.
What are the two main components used to calculate Function Points?
-The two main components are Data Functions, which represent data managed by the software, and Transactional Functions, which represent elementary processes within the software.
What are the criticisms of using the Function Points method?
-Criticisms include its empirical nature, which can introduce subjectivity into the measurement process, the difficulty in establishing a real relationship with other metrics like lines of code, and its dependence on the company's historical data for accurate calculation.
What is the adjusted Function Points method and how does it differ from the basic Function Points method?
-The adjusted Function Points method considers 14 general system characteristics, each rated on a scale from 0 to 5, and adjusts the basic Function Points calculation accordingly, accounting for factors such as distributed data processing, performance, and ease of operation.
Outlines
📏 Introduction to Software Metrics
Professor Fábio Siqueira introduces the concept of software metrics, emphasizing the importance of quantifying software quality attributes to facilitate objective evaluation and improvement. He discusses the need for measurable, non-subjective criteria to assess software interfaces and other quality characteristics, and how metrics can help identify potential issues and manage projects effectively.
🔍 Characteristics of Good Metrics
The video segment delves into the characteristics that make a metric effective, such as ease of calculation, intuitive understanding, and consistency in measurement units. It also touches on the importance of metrics not being ambiguous or dependent on programming languages, and how they should be useful in reflecting the quality of software. The professor illustrates these points with examples and discusses the challenges in creating metrics that meet all these criteria.
📈 Types of Metrics and Indirect Measurements
This paragraph explains the three traditional types of metrics: product metrics, project metrics, and process metrics, focusing on product metrics in this lesson. It discusses the challenges of indirect measurement of certain software qualities like usability and how properties related to ISO 25000 can be used to measure these attributes. The segment also covers static and dynamic metrics, providing examples such as lines of code and execution time.
🤖 Function Points: Measuring Software Functionality
The professor introduces function points as a method to measure the functional size of software, allowing for predictions about the software's characteristics before its implementation. He explains the concept of function points, which are based on transactions (external inputs, outputs, and inquiries) and data functions (internal and external files). The segment also covers how to calculate function points and the empirical nature of this method, including its advantages and limitations.
🔄 Adjusted Function Points and Subjectivity
The video discusses the concept of adjusted function points, which take into account 14 characteristics that can influence the software's complexity. It explains how to calculate these points by summing up the function points of data and transactional functions, and then adjusting them based on the characteristics' scores. The segment also addresses the subjectivity involved in function point analysis and its empirical nature, which can lead to variations in measurements.
📚 Conclusion and Future Outlook on Function Points
In the concluding segment, the professor summarizes the discussion on function points, acknowledging their utility despite the inherent subjectivity and empirical basis. He mentions the historical use of function points in tenders and public companies and notes a decline in their popularity in recent years. The segment also briefly introduces variations of function points, such as use case points, which measure software complexity through use cases.
Mindmap
Keywords
💡Metrics
💡Software Quality
💡User Interface Aesthetics
💡Quantitative Evaluation
💡Non-functional Requirements
💡Measurement
💡Product Metrics
💡Function Points
💡Maintainability
💡Static and Dynamic Metrics
💡Subjectivity
Highlights
Professor Fábio Siqueira discusses the importance of metrics in evaluating software quality.
Aesthetics of the user interface is defined as the degree of pleasant and satisfying interaction for the user.
The necessity of quantifying software quality attributes for objective evaluation and improvement.
The challenge of evaluating subjective software quality characteristics through quantitative metrics.
Metrics are essential for defining non-functional requirements with objective values to avoid disputes.
Measuring software quality to assess if the expected quality is achieved and to identify potential problems.
The use of metrics for project management, such as estimating the effort and progress of software development.
Definition of a metric as a quantitative measure of a system, component, or product's attribute.
Metrics should be easy to calculate, intuitive, and not ambiguous to be effectively used in decision-making.
Metrics should not be dependent on programming languages to maintain consistency across projects.
The importance of metrics being useful despite not fulfilling all ideal characteristics.
Traditional division of metrics into product metrics, project metrics, and process metrics.
Product metrics help measure software quality attributes and are also known as prediction metrics.
The difficulty of directly measuring certain software quality attributes, necessitating indirect measurements.
ISO 25000 standard model's approach to linking software quality characteristics with measurable properties.
Examples of maintainability metrics, such as lines of code, and their correlation with software analysis ease.
Static and dynamic metrics, with examples including lines of code and execution time.
The famous lines of code metric, its ease of measurement, and its historical significance in software engineering.
Criticisms of the lines of code metric, including its dependence on programming language and potential misrepresentation of productivity.
Introduction to the concept of Function Points as a measure of software's functional size.
Function Points' usefulness in estimating development time, cost, and productivity.
The empirical nature of Function Points calculation and the existence of different standards for calculation.
The process of calculating Function Points, including obtaining documentation and measuring data functions and transaction functions.
The subjective nature of Function Points and its criticism despite being a widely used metric.
Alternatives to Function Points, such as Use Case Points, for measuring software complexity through use cases.
Transcripts
[Música]
olá eu sou professor fábio siqueira e
nessa hora vou falar sobre métricas
então quando a gente considera as
características de qualidade de software
elas têm sempre uma definição desse tipo
aqui como por exemplo a estética da
interface com o usuário é o grau que a
interface do usuário permite interação
agradável satisfatória para o usuário
legal ótimo então eu preciso ver o grau
disso no software
mas como eu e como específico isso como
eu coloco isso no software como eu
consigo colocar o grau de alguma
característica se agradável da interface
agradável
então eu posso simplesmente falar que a
interface tem que ser muito agradável
para o usuário o que é muito que é pouco
o que é médio com o que eu consigo
avaliar isso é preciso ter números
então a gente engenharia gosta sem
trabalhar com alguma forma de avaliação
quantitativa
você precisa ter um número para você
dizer atingiu não atingir seu não
atingir bons fazer alguma coisa para
melhorar
então um problema sério que a gente tem
quando eu tenho um atributo uma
característica qualidade desse tipo
característica subir cura são
características é que nem sempre é fácil
avaliar a ela mas a gente precisa
avaliar de algum jeito então de alguma
forma a gente precisa ter métrica a
gente precisa conseguir medir a gente
conseguir precisa conseguir chegar algum
número que consegui expressar se a gente
atingiu aquela cueca aquela
característica esperada ou não então se
você definir um requisito não funcional
sem usar um valor objetivo
você tem sempre a possibilidade de
discussão alguém pode chegar e falar não
para mim não está suficiente pra outra
pessoa falaram pra mim tá suficiente e
fica essa discussão que não leva a lugar
nenhum então a gente já tem números até
alguma forma objetiva de medir
mesmo que seja uma característica de
difícil aparente difícil medição
então o que a gente vai medir num
projeto de software
a agente média o produto o processo e o
projeto então aula de hoje a gente vai
focar no produto processo projeto vai
ser tratado nessa aula aqui mas pra que
a gente mede então o motivo principal é
esse daí que eu coloquei
que é pra gente conseguir a avaliar a
qualidade do software tenha consigo
medir para saber se eu atingiam a
qualidade esperada mas também a gente
pode medir alguma característica para
descobrir corrigir algum problema que
tem é potencialmente no software não se
pode medir a quantidade de defeitos para
você saber se tem algum problema pode
dar algum problema no software futuro a
uma outra vantagem outro um outro uso da
medição é pra gente conseguisse mais
esforço
então você sabe eu já fiz eu tenho 20
casos de uso para serem implementados
eu já fiz dez então faltam se eu já fiz
50% obviamente depende do da
complexidade do caso de uso mas
dependendo de como você mede isso você
consegue ter uma estimativa de quanto
falta que é bastante útil para gestão de
projetos e também pra você controlar o
andamento do processo a essa atividade é
que já foi feita então já estou
terminando essa atividade possa executar
essa essa atividade aqui tá foi 50%
feita então a próxima atividade
a gente já pode começar a planejar ela
então pra medir a gente já teve métrica
e o que é uma métrica então né trica é
uma medida quantitativa do grau que o
sistema componente o produto possui um
determinado tributo então o importante
aqui é a questão do quantitativo
então é algo numérico e têm um grau a a
gente consegue ter um número
eu consigo dizer isso daqui têm valor x
para um determinado a componente
processo ou produto
então a gente vai avaliar de uma forma
quantitativa a qualidade e as métricas
elas vão ser usadas como indicadores são
elas indicam alguma coisa não
necessariamente é verdade não
necessariamente é aquilo que a gente tem
de informação que a métrica da tem uma
correlação direta e objetiva com aquilo
a gente espera que tenha mas ela indica
alguma coisa que pode ser que aconteça a
gente vai usar métrica pra ajudar a
gente a tomar a decisão
e quando a gente pensa em metro que ela
tem que ter algumas boas características
então quando você pensa uma métrica
ela precisa é a primeira coisa precisa
ser fácil de calcular se você tiver uma
métrica que é muito complexa de você
calcular tem uma forma muito complicada
você pegar uma informação muito
complicado
ela acaba se tornando um pouco prático
não é conseguir usar essa métrica a na
prática uma outra característica
importante é que ela tem que ser
intuitivo
então se você tem uma métrica que é ela
estranha se eu falar quando aumenta o
valor disso aqui significa que a
complexidade do software diminuiu
ela fica meio estranho então aumentou
alguma coisa diminui puxa o que está
acontecendo ou pior nessa tem algumas
métricas você pode definir uma meta que
é a partir de uma faixa de valor até um
crescimento diferente do que há a faixa
de valor inferior a ficar confuso eu
olho para o valor eu não sei muito bem
dizer o que ela quer
então uma boa meta não pode ser assim
ela tem que ser intuitivo subir um pouco
eu consigo ter um reflexo e consigo é
ver o reflexo claramente na qualidade
uma outra característica importante ela
não ser ambígua
então se você tem uma métrica que fala
puxa tem esse valor eu não consigo dizer
se é isso é bom e ruim
um abono métrica gente deveria conseguir
claramente olhar para o valor e dizer o
que significa e ela também precisa ser
consistente no uso de medidas é nuno uso
de unidades dimensões então se tiver uma
médica que tem um monte de unidade
dimensão colocados é a métrica é pessoa
linha de código a função por segundo o
que significa isso não é claro então
você tem que ter uma métrica que ela
seja bem direta em relação às unidades
dela se olha você consegue saber a data
significa isso eu consigo a trabalhar
com isso
a outra característica importante ela
não ser dependente em linguagem de
programação
então a gente sabe que a linguagem de
programação tem um impacto muito grande
no desenvolvimento
se pegar uma linguagem você pega uma
linguagem com você e pega uma linguagem
como o clube vai dar um impacto bem
diferente no seu projecto e pegar sendo
então meu deus do céu vai dar
tem uma dificuldade muito maior de
desenvolver então tem um impacto disso
mas o ideal aqui
há uma boa métrica não seja impactado
por isso e acima de tudo uma boa métrica
ela precisa ser útil então se você
aplicar a métrica ao se medir um
determinado valor e vai ser o último
você sabe alguma informação o
interessante dessas características é
que tem algumas métricas que não cumprem
com todas elas
nessa aula vou mostrar uma métrica que
não cumprir todas essas características
aqui e ainda assim ela é útil então as
métricas não precisam ter todas essas
características para ser útil para elas
serem úteis
o ideal seria que fosse mas às vezes é
difícil gerar um momento interessante
são as métricas se dividem
tradicionalmente em três tipos médica
métricas de produto métricas de projeto
e métricas de processo
nessa aula eu falar só sobre métricas de
produto
a médica de projeto as métricas de
projetos são usados pelo gerente de
projeto para conseguir acompanhar as
atividades dele e as métricas de
processo são usadas para a melhoria do
processo então consigo medir o processo
e eu sei que o processo está bom tá ruim
e consigo usar essa informação para a
melhoria tão falando especificamente
sobre métricas de produto a que ela
porque ela serve lançaram em pra ajudará
a medir alguma característica de
qualidade do produto elas são chamadas
também métricas de previsão então você
mede aquela característica você consegue
prevê a all é se essa característica se
o software vai ter aquela característica
ou não pensando em software pode usar
para outras coisas também e é o
desagradável de métricas de produto é
que nem sempre você consegue fazer uma
medição direta da métrica
então você pega por exemplo eficiência
da execução
o comportamento no tempo mais
especificamente isso é fácil de medir
diretamente
você pega um cronômetro e vê lá o tempo
quanto tempo estava demorando pra fazer
isso aqui hoje eu consegui ver o
comportamento no tempo
isso é fácil enxergar mas tem coisas que
a gente não consegue medir diretamente
como por exemplo não tem habilidade
usabilidade como comércio diretamente a
mano tem viabilidade
como que eu meço de
diretamente à usabilidade não dá a gente
não consegue emitir diretamente
então a gente tem que fazer algumas
medições indiretas
então pra fazer essas medições a gente
acaba relacionando as propriedades estão
pegando o modelo da iso 25 mil a ideia
que vai ter características sobre
características e aí você vai ter
propriedades
essas propriedades são o que você vai
medir e é isso que a gente consegue
medir
então por exemplo por exemplo
manutenabilidade têm analisa análise
habilidade ou seja com é o quão fácil é
analisar o produto de software e como
que a gente mede isso diretamente
difícil me diz directamente então o que
a gente pode fazer é relacionar uma
métrica como por exemplo o número de
linhas de código a análise habilidade
não se fala por si um software que tem
poucas linhas de código tem poucas
linhas de código é mais fácil de
analisar do que um software que tem
muita linha de código
então isso daí é uma relação que a gente
fez
então a gente está considerando que tem
uma correlação entre essas informações e
com isso a gente consegue analisar é
consegue calcular se o software é fácil
de analisar ou não um outro exemplo de
análise habilidade outra métrica que a
gente podia poderia considerar é o
número de filhos de uma classe falar
classes que têm um menor que é muito
grande
são mais difíceis de analisar no
clássico de amanhã daqui é pequena então
só tem é 2 nível geral que é mais fácil
analisar tudo bem é é uma outra
característica é uma outra métrica que a
gente consegue tirar dessa informação e
assim como o caso da revisão é quando a
gente trabalha com métrica tem duas
formas tem dois tipos de métrica
você tem métricas que são estáticas e
métricas são dinâmicas as métricas
estatísticas são métricas que você
consegue analisar é a partir de uma
representação do do seu sol então você
não precisa executar o software você
pega essa representação do software e
analisa
as dinâmicas por outro lado você precisa
ter um exemplo precisa executar o
software
então você precisa executar para
calcular alguma coisa então por exemplo
uma métrica estática é o número de
linhas de código
uma métrica dinâmica seria o tempo de
execução ou a quantidade de memória que
o software precisa então você só
executando o software vai conseguir ter
um valor preciso disso daí a uma das
métricas mais famosas é a número de
linhas de código era bastante famosa
porque é muito fácil de ser medida
então você pega qualquer código você
consegue facilmente ver o número de
linhas de código dele é uma métrica aqui
foi bastante usada pela engenharia de
software no começo tem gente solta a a
vantagem dela que é muito fácil de medir
a e uma outra vantagem é que ela tem
muito trabalho sobre sobre essa métrica
porque ela foi bastante usada era fácil
e é o que muitas vezes se tinha no
começo nos primórdios da engenharia de
software mas a e por causa disso a gente
tem há muito uso e relacionando linhas
de código com outras coisas
então por exemplo você tem erros por mil
linhas de código que a gente chama de
ken block a tem custo por mil linhas de
código então você tem essas informações
que você pode usar
qual é o problema da da linha de código
a linha de código tem um problema muito
sério que ela é muito independente da
linguagem de programação
é claro que faz muita diferença se você
tem é um código feito em c1 código feito
em python ao número de linhas de código
você completamente diferente então você
precisa levar isso em consideração um
outro problema de linha de código aquela
finaliza bons projetos bombons
programadores muitas vezes é um
programador que é muito vergonhoso
escreve bastante coisa para resolver um
problema à ele pode parecer muito
produtivo escrever um monte de linha de
código enquanto que um programador que
demora muito pra fazer alguma coisa mas
escreve um código enxuto direto e
eficiente ele pode parecer menos
produtivos e usa a linha de código
produtividade
então além de código tem esse tipo de
problema
ah e por causa disso o uso de linhas de
código hoje em dia atualmente é bem
discutível mas ainda assim como tem
bastante trabalho é importante conhecer
uma outra métrica muito interessante é é
são os pontos de função que é o ponto de
função é uma forma de você medir o
tamanho funcional do seu software
então você consegue fazer uma medição do
tamanho do sistema do software que vai
construir sem construir
então durante a atividade de análise
requisitos você consegue calcular o
ponto de função de um determinado
software e aí você consegue dizer você
consegue tirar algumas informações
algumas revelações interessantes por
exemplo quanto tempo vai demorar para
construir aquele software o quanto custa
para construir o software então é
interessante que você não consegue
descobrir o tamanho
antes da implementação qual que o uso
disso há a questão de produtividade
bastante uso é bastante útil questão de
qualidade a gente consegue mediantes a
ver quanto que as pessoas conseguem
fazer conseguem produzir cada
desenvolvedor a equipe consegue produzir
a útil para fazer estimativas de custo a
recurso então quantas pessoas vão ser
necessárias
a conseg também sempre dizer número de
erros
então você consegue ter históricos e
falar olha a gente tem tantos erros por
ponto de função há também em relação ao
ponto de função com linhas de códigos e
consegue dizer tal esse ponto de função
um ponto de função na minha equipe é
equivale à x linhas de código em tal
linguagem de programação então a métrica
bem interessante a e ela é baseada em
duas informações principais são as
transações que eles chamam de funções
internacionais e dos dados necessários
chance chamados de funções de dados
o detalhe do ponto de função é que é uma
forma empírica ou seja é uma fórmula que
o pessoal foi desenvolvendo com o tempo
experimentalmente chegaram à fórmula e
acharam que o valor dela é interessante
que é a forma interessante existem
diversas organizações que definem como
calcular essa forma então não existe uma
fórmula só um jeito só de você calcular
ponto de função o que é um problema
então existem dois padrões iso por
exemplo que dizem como calcular pontos
de função
tem o pessoal da spu gui e do mesmo que
definem formas diferentes a ideia geral
é a mesma mas os detalhes variam
dependendo da organização e como que se
calcula pontos de função o processo e se
daqui a primeira coisa que tem que ser
feita é obter documentação então obter
informação sobre o que tem que ser feito
é o que vai ser feito no projeto
depois de terminar o escopo ea fronteira
então tem que saber o que que vai ser
desenvolvido e aí sim se mede as funções
de dados e as funções de transação
a partir dessas informações se calcula o
tamanho funcional do software em pontos
de função e depois de documento e ponto
então como eu como se mede em função de
dados
então a função de dado a idéia dela é
que elas vão representar os dados
agrupados ou informações de controle que
o software precisa de algum tipo por
algum motivo
então existem dois tipos de funções de
dados são os arquivos de lógica interna
que são dados que o próprio software
gerencia ele cuida daquilo e os arquivos
de interface está em externa que são os
dados que o software precisa mais que
são gerenciados por algum outro software
um outro sistema externo então outra
aplicação cuida disso
então por exemplo uma loja virtual a
você pode dizer que os dados do pedido
categoria vem daí produto são todas
responsabilidades da loja a loja cuida
disso daqui mas externamente o é o dados
do cliente é cuidado pelo sistema
separado que o sistema de crm
então como que você como se mede isso há
a as normas dizem como você vai medir
como calcular cada uma dessas
informações como dizer o que é uma
função de dado que não é
e aí tem também uma tabela que diz
com quantos pontos de função você tem
para cada função de dados
e existe uma complexidade que ela varia
de baixo
média alta é esse baixa e média alta
também está definido como calcular o que
é baixo que a média o que é alto
então basicamente a quantidade de
informação que tem lá faz diferença se
obviamente será interno e externo também
faz diferença não se usa essa tabela
para calcular o quanto quantos pontos de
função se tempo em determinada função de
dados
a mesma idéia usada para a função
transnacional
então a idéia da função tradicional é
que ela vai tratar de processos
elementares
então é um processo que é o a mínima
unidade menor possível
no dentro do seu software e tem três
tipos de funções transnacionais são as
entradas em cada externas que elas
basicamente representam entrada de dados
então alguém passa algum dado pelo
sistema existe também a consulta externa
que é o pedido de alguma informação para
o sistema um pedido simples a biobío tem
essa informação aqui mostra tal
informação do do sistema e tem a saída
externa que é similar à consulta externa
só que não é simples ela pode ter um
algoritmo complexo pode ter um cálculo
complexo que é feito a e pode guardar os
dados de alguma forma esse específica
para resolver o problema
então a e pode alterar o comportamento
do sistema também então a saída externa
basicamente tem mais complexidade
um exemplo disso daqui a de entrada
externa consulta e saída pensa numa loja
virtual de novo a entrada externa pode
ser a edição de produto informar dados
de compra adicional produz na compra
tudo isso a entrada de dados está
informando dados o usuário informando
dados a consulta você tem a procurar
produto tudo bem o usuário tem que
informar alguma coisa que tem que dizer
como no produto mas é algo bastante
simples que em forma e já tem a resposta
e tem também os ver ver os dados do
cliente também é uma consulta externa
não tem cálculo nenhum complexo nisso
agora tem alguns cálculos mais complexo
como por exemplo o relatório de vender é
algo mais complexo então a saída externo
e emitir nota fiscal também algo mais
complexo então também é uma saída
externo
assim como na função de dar
nas funções de dados as funções
transnacionais têm uma forma de você
calcular o ponto de função a partir do
tipo se é entrada sair do consulta e à
complexidade e à norma vai dizer como
com o complexo é como calcular essa
complexidade ea partir dessas
informações você consegue calcular
pontos de função usando uma forma essa
forma ela varia dependendo do tipo de
sistema então se você está fazendo
desenvolvimento projetos de melhoria ou
se já tem o seu já foi feito um projeto
de melhoria a sua valia fórmula faria a
o que eu vou mostrar pra vocês é a
fórmula para desenvolvimento tal forma
desenvolvimento é simplesmente somar
você faz a soma do tamanho das funções
de dados com a soma das funções
transacionais e pronto você tem um ponto
de função
tradicionalmente que se usa é o ponto de
função ajustado que ele considera alguns
ajustes são 14 características que são
levados em conta que você precisa dar
uma nota de 0 a 5 exemplos de
características processamento de dados
distribuídos então se tiver
processamento distribuído
você tem que calcular levar isso em
conta o desempenho se o desempenho for
algo importante
você também precisa levar em conta é dar
uma nota no valor de 0 a 5
a facilidade de operação instalação se
for importante também conto esses são
múltiplos sites um site só isso também
tem que ser levado em conta no ajuste e
à forma com um ponto de função ajustado
tem uma variação de mais ou menos 35% ea
fórmula é essa daqui então são os pontos
de função calculados anteriormente
mais a somatória de cada um dessas
características do peso dessas
características x 0 01 em somar 0 65 ou
seja é bem explica claramente é um
número bem em pico a para calcular isso
aí
existe também uma forma de você
relacionar pontos de função a linguagem
de programação estão aqui têm uma tabela
que mostra a relação de quanto é um
ponto de função prom uma determinada
linguagem de programação e trabalha com
médio mínimo e máximo
mas dá para perceber claramente que se
você considerar a assembléia é bastante
se você pegar uma linguagem comum que
seja é c++ já é uma diferença bastante
grande e tem relação também de ponto de
função com o homem hora mas nessas
nesses casos aqui nessas relações um
interessante é o histórico da empresa
então a empresa tem um histórico ela
deve manter um histórico dela para saber
exatamente como funciona essa relação
da mesma forma o homem hora como
linguagem de programação linha de código
de programação e se você considerar o
manual a das pulgas da mesma tanto faz
ele vai falar como você não conta como
exatamente você deve trabalhar com
pontos de função então eles tentam
detalhar o máximo possível como fazer
esse cálculo para ter o mínimo de
subjetividade mas apesar disso tudo a
tem um pouco de subjetividade e esse é a
grande crítica do ponto de função apesar
de ter um monte de regra ainda tem uma
certa dose de subjetividade que
atrapalha a medição anterior
ricamente duas pessoas não deveriam dar
valores diferentes e que o pessoal alega
aqui pessoas bem treinadas conseguem
fazer isso mas é difícil é difícil
treinar também a ser tão bem treinado e
um outro problema é que é uma forma
empírica
não tem jeito ela é baseada na
experiência nos cálculos
muita gente usando essa forma mas ainda
assim ela não tem uma relação tão real
com os valores de linha de código
depende do histórico da empresa empresa
precisa relacionar isso e vai depender
da equipe vai depender de várias coisas
e um outro problema que ela não tem um
significado real
então o que é um ponto de função por
disfunção significa nada significa a
relação de pontos função com alguma
outra métrica interessante então como
conclusão é ela tem seus problemas como
qualquer outra métrica não é uma métrica
perfeita porque não existe métrica
perfeita mas ainda assim ela útil e é
usada em alguns editais estão alguns
anos 15 anos era bastante comum ou
empresas públicas usarem
são pra fazer pra fazer uma licitação
fala olha a gente precisa de uma empresa
que desenvolva x pontos de função mas
hoje em dia isso daí acabou não sendo
tão popular assim não é tão comum
empresas trabalharem com isso mas a
idéia é muito interessante e existem
algumas variações de ponto de função
exige por exemplo ponto de casos de uso
que a mesma idéia
só que para casos de uso então você
consegue medir a complexidade do seu
software só através do caso de uso e
analisando algumas características do
caso de uso
então isso foi à aula sobre métrica até
a próxima aula
[Música]
[Música]
[Música]
Посмотреть больше похожих видео
EDISS video series: Software Quality course at AAU
Important SaaS Success Metrics (MRR/ARR/CAC/ARPU/CLV/etc.) - Hamid Shojaee - PHX Startup Week
Performance Metrics - N10-008 CompTIA Network+ : 3.1
DevOps Huddle EP 19 | Measuring GitHub Copilot's Downstream Impact with DORA | Opsera
AS & A Level Computer Science (9618) - Chapter 8: System Software
Engenharia de Software - Aula 16 - Gerenciamento de configurações (Parte 1)
5.0 / 5 (0 votes)