Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

78
Unidade II
Unidade II
Como futuros profissionais de tecnologia da informação, é essencial compreender profundamente 
conceitos como gerenciamento de defeitos e rastreabilidade, pois eles desempenham um papel 
fundamental na qualidade e no sucesso dos projetos de software.
O gerenciamento de defeitos, também conhecido como gestão de bugs ou falhas, é o processo de 
identificar, registrar, priorizar, corrigir e acompanhar defeitos encontrados em um software durante seu 
ciclo de vida. Defeitos, ou bugs, podem ser qualquer desvio ou inadequação em relação aos requisitos 
estabelecidos, ou ao comportamento esperado do software. Eles podem variar de erros simples de 
digitação até problemas complexos que comprometem a funcionalidade do sistema.
Por outro lado, a rastreabilidade é a capacidade de documentar e acompanhar a origem, a evolução 
e o destino de cada requisito, componente ou mudança em um sistema de software. Ela possibilita 
entender como e por que certas funcionalidades foram implementadas, fornecendo um contexto valioso 
para o gerenciamento de defeitos. A rastreabilidade ajuda a garantir que todas as partes interessadas 
compreendam as inter-relações entre os diferentes elementos do sistema, fornecendo uma base sólida 
para tomadas de decisão informadas ao longo do ciclo de vida do software.
Ao integrar o gerenciamento de defeitos com a rastreabilidade, é possível criar um ambiente mais 
eficaz para identificar, analisar e resolver problemas de software. Isso não apenas melhora a qualidade 
do produto final, mas também aumenta a transparência, a colaboração e a eficiência dentro da equipe 
de desenvolvimento.
A seguir, serão exploradas as práticas mais adequadas, além de ferramentas e técnicas para o 
gerenciamento de defeitos e rastreabilidade. Você aprenderá a identificar e priorizar problemas, a 
documentar e acompanhar alterações, e a utilizar ferramentas específicas para otimizar esses processos.
5 GERENCIAMENTO DE DEFEITOS E RASTREABILIDADE
O gerenciamento de defeitos e a rastreabilidade são componentes cruciais na garantia da qualidade 
de software, pois ajudam a identificar e corrigir falhas mais rapidamente, além de contribuírem para 
o aperfeiçoamento contínuo dos processos de desenvolvimento. O gerenciamento eficaz de defeitos 
começa com a identificação precisa e o registro detalhado de cada falha encontrada durante os testes 
ou no uso do software.
A identificação e o registro de defeitos possibilitam às equipes que classifiquem os problemas com 
base em sua gravidade, urgência e impacto no usuário final. Isso facilita a priorização das correções e 
ajuda a garantir que recursos críticos sejam alocados aos problemas mais significativos. Além disso, um 
registro detalhado dos defeitos fornece uma base valiosa para análises futuras, propiciando às equipes 
o entendimento claro das causas raízes dos problemas recorrentes.
79
QUALIDADE DE SOFTWARE
A análise de causa raiz é outro aspecto fundamental do gerenciamento de defeitos, pois ao entender 
por que um erro ocorreu, a equipe pode implementar medidas preventivas para evitar que problemas 
semelhantes surjam no futuro. Essa rotina envolve desde pequenas alterações no código até revisões 
abrangentes nos processos de desenvolvimento.
Além disso, a rastreabilidade desempenha um papel vital na garantia da qualidade do software. 
A capacidade de rastrear cada requisito através das fases de desenvolvimento até sua implementação 
final ajuda a garantir que todos os objetivos do projeto sejam atendidos. Ela também facilita a verificação 
da conformidade com padrões regulatórios e normas industriais, o que é especialmente importante em 
setores como saúde e finanças.
Um exemplo real da importância do gerenciamento eficaz de defeitos pode ser visto na indústria 
automotiva, na qual falhas no software podem ter consequências graves. Em 2014, uma grande 
fabricante precisou fazer recall de milhões de veículos por causa de um problema no software do sistema 
de ignição. Uma gestão mais rigorosa dos defeitos poderia ter identificado esse problema antes que os 
carros fossem entregues aos consumidores.
O gerenciamento eficaz dos defeitos e uma sólida estratégia de rastreabilidade são essenciais para 
manter altos padrões de qualidade em projetos de software, ajudando a mitigar riscos, o que contribui 
para o desenvolvimento contínuo da equipe e melhoria dos processos de construção e qualidade 
de software.
5.1 Identificação e registro de defeitos
A identificação e o registro de defeitos são etapas fundamentais no processo de garantia 
da qualidade do software, atuando como a primeira linha de defesa contra falhas que podem 
comprometer a funcionalidade, a segurança e a satisfação do usuário final. São práticas que facilitam 
a detecção precoce de problemas, além de estabelecerem uma base sólida para análises futuras e 
correções eficazes.
Para iniciar, a identificação de defeitos requer uma combinação de testes automatizados e manuais, 
onde ferramentas avançadas e a experiência dos profissionais trabalham juntas para descobrir falhas. 
Uma vez identificado um defeito, é crucial registrar todos os detalhes relevantes sobre ele, o que inclui 
informações como o ambiente em que foi encontrado, passos para reproduzi-lo, gravidade do problema, 
e qualquer outra observação que possa auxiliar na resolução deste.
O registro detalhado dos defeitos é muito importante. Primeiramente, porque ele possibilita uma 
comunicação clara entre as equipes de desenvolvimento e teste sobre o problema encontrado. Além 
disso, um histórico bem documentado dos defeitos ajuda na priorização das correções com base 
na gravidade e no impacto no usuário final. Esse registro também é essencial para realizar análises 
profundas de causa raiz, viabilizando o entendimento das vulnerabilidades em seus processos ou 
código para as equipes.
80
Unidade II
Um exemplo prático da importância desse processo pode ser observado em plataformas online 
de grande escala. Quando um bug crítico foi identificado em uma rede social popular, afetando a 
privacidade dos usuários, a rápida identificação e documentação detalhada do problema garantiram 
à equipe técnica a resolução rápida da questão, impedindo que ela escalasse para um incidente maior.
Veja a seguir um exemplo de documento que pode ser utilizado para registrar e catalogar os defeitos 
encontrados durante os testes:
Relatório de registro de defeitos de software
Projeto: Sistema de gerenciamento de biblioteca
Data: 07/04/2023
Identificação do defeito: D0001
Descrição: ao tentar adicionar um novo livro ao catálogo, o sistema exibe uma mensagem de erro e 
não salva as informações do livro.
Prioridade: alta
Severidade: crítica
Ambiente de teste:
— Sistema operacional: Windows 10
— Navegador: Google Chrome versão 100.0.0
Passos para reproduzir o defeito:
— Acesse a página de administração do catálogo de livros.
— Clique no botão “Adicionar livro”.
— Preencha os campos obrigatórios do formulário de adição de livro.
— Clique no botão “Salvar”.
Resultado esperado: o sistema deve adicionar o livro ao catálogo e exibir uma mensagem de 
confirmação de sucesso.
Resultado observado: o sistema exibe uma mensagem de erro “Erro ao salvar as informações do livro. 
Tente novamente mais tarde.” e não salva as informações do livro.
Captura de tela: (inserir link ou anexar imagem, se aplicável)
Observações adicionais:
— O problema foi replicado em diferentes navegadores e ambientes de teste.
— Ocorreu em todas as tentativas de cadastro de um novo livro no catálogo.
Figura 17 – Relatório de defeitos do software
Esse é um exemplo básico de como um relatório de registro de defeitos de software pode ser 
estruturado. Ele fornece dados detalhados sobre o defeito encontrado, como a descrição, prioridade, 
severidade, ambiente de teste, passos para reproduzir, resultado esperado e resultado observado. Isso 
ajuda os desenvolvedores a entenderem o problema e a trabalharem em sua resolução de forma eficaz.
Como resultado,uma abordagem sistemática para a identificação e o registro de defeitos não 
apenas melhora significativamente a qualidade do software, mas também fortalece a confiança dos 
usuários finais nos produtos desenvolvidos. Ao adotar práticas rigorosas nessa área, as organizações 
podem evitar retrabalho desnecessário e garantir que seus produtos atendam ou superem 
as expectativas dos clientes.
81
QUALIDADE DE SOFTWARE
5.2 Análise de causa raiz e resolução
A análise de causa raiz é um processo crítico na engenharia de software, especialmente quando 
se trata de garantir a qualidade e a confiabilidade dos sistemas. Esse processo envolve investigar 
profundamente os defeitos identificados para descobrir as razões fundamentais que os causaram. 
Ao entender essas causas subjacentes, as equipes podem implementar soluções duradouras que resolvam 
o problema atual, bem como previnam sua recorrência no futuro.
Uma abordagem eficaz para a análise de causa raiz começa com a coleta e a revisão detalhada das 
informações sobre o defeito. Assim, é preciso saber como ele foi descoberto; em quais condições ele 
ocorre; e se houve qualquer tentativa anterior de correção. Ferramentas como diagramas de Ishikawa 
e o método dos 5 porquês são frequentemente utilizados para facilitar essa investigação, ajudando a 
mapear todas as possíveis origens do problema.
 Observação
O diagrama de Ishikawa, também conhecido como diagrama de espinha 
de peixe ou diagrama de causa e efeito, por exemplo, é uma ferramenta visual 
utilizada para encontrar e organizar as possíveis causas de um problema ou 
efeito específico. Ele foi nomeado em homenagem ao engenheiro japonês 
Kaoru Ishikawa, que o popularizou na década de 1960 como um método 
para melhorar a qualidade dos processos industriais.
Ainda muito utilizado, o diagrama é estruturado visualmente como uma espinha de peixe, com as 
espinhas representando o problema ou o efeito a ser analisado, e as espinhas laterais representando 
as categorias principais de causas que podem contribuir para esse problema. Normalmente, elementos 
como pessoas, processos, materiais, máquinas, ambiente e métodos estão incluídos nas categorias.
Causa Causa Causa
Causa Causa Causa
Causa Causa Causa
Causa Causa Causa
Efeito
Máquinas Materiais Mão de obra
Meio ambiente Métricas Método
Figura 18 – Diagrama de Ishikawa
Disponível em: https://tinyurl.com/2m63uh7x. Acesso em: 3 jun. 2024.
82
Unidade II
Para conseguir utilizar essa ferramenta, é necessário seguir alguns passos.
Comece identificando a consequência ou o problema que deve ser analisado. Por exemplo, o 
problema pode ser “Atrasos na entrega de software em produção”, se você está lidando com atrasos 
na produção.
Em seguida, encontre as categorias amplas que podem estar relacionadas ao problema. Pessoas, 
processos, materiais, máquinas, ambiente e métodos estão entre as categorias comuns.
Na parte superior da folha, desenhe um eixo horizontal que represente o problema ou o efeito. Isso 
representa o “corpo do peixe”. As espinhas são representadas por linhas diagonais que começam no eixo 
principal. A estrutura que forma essas linhas é semelhante a uma espinha de peixe.
Ao longo das linhas diagonais, crie espinhas laterais que representem as categorias principais de 
causas. Para listar todas as causas potenciais dentro de cada categoria, faça uma reunião com a equipe. 
Anote essas causas como “espinhas secundárias” associadas às espinhas laterais.
Após listar as causas, discuta e analise cada uma para determinar o grau de importância delas e como 
afetam o problema. Priorize os fatores mais importantes, pensando em como eles podem contribuir para 
o problema e como podem afetar a resolução.
Depois de dar prioridade às causas, procure as principais causas subjacentes do problema. Isso pode 
exigir investigação e análise adicional. Após encontrar as causas primárias, crie soluções para cada uma 
delas. Implemente as soluções e verifique os resultados para garantir que os problemas estão sendo 
resolvidos de forma eficaz.
Continue observando e avaliando os resultados ao longo do tempo após a implementação das 
soluções. Para evitar que o problema volte a surgir, siga o processo de melhoria contínua e faça os 
ajustes necessários. Esses passos fornecem uma estrutura detalhada para a elaboração e execução 
de um diagrama de Ishikawa, o que garante uma análise completa das causas de um problema e a 
implementação de soluções para resolvê-lo.
Já a ferramenta dos 5 porquês consiste em chegar à raiz do problema com a repetição da pergunta 
“por quê?”. Para a identificação da causa, o método exige interatividade e investigação, a fim de que seja 
encontrado o que realmente causou o problema.
A abordagem dos 5 porquês é uma ferramenta simples, mas poderosa e é utilizada na área de 
resolução de problemas e qualidade. Foi criada pela Toyota como parte do TPS, e seu objetivo é investigar 
as causas primárias de um problema ao fazer perguntas sucessivas sobre por que algo aconteceu.
83
QUALIDADE DE SOFTWARE
Ao encontrar o motivo da adversidade, é possível tomar ações eficientes que eliminem o problema, 
evitando o investimento em ações ineficientes que custem caro ao cliente. Veja o exemplo a seguir:
Quadro 3 – Abordagem dos 5 porquês
Problema: um artigo não foi entregue no prazo
1) Por quê?
Porque o responsável não conseguiu escrever.
2) Por quê?
Porque existia outras demandas como prioridade.
3) Por quê?
Porque surgiram demandas de urgência.
4) Por quê?
Porque o colaborador era o único que conseguia resolver.
5) Por quê?
Porque a equipe é reduzida e surgiram muitas demandas, atrasando a entrega do artigo.
Contramedida: contratar um novo funcionário para auxiliar com as demandas.
Após identificar as causas fundamentais, o próximo passo é desenvolver uma estratégia de resolução, 
o que pode envolver correções no código, mudanças nos processos de desenvolvimento ou até mesmo 
ajustes na infraestrutura. É crucial que essas soluções sejam implementadas com uma visão holística do 
sistema a fim de evitar medidas paliativas, que possam gerar novos problemas no futuro.
Um exemplo notável da importância da análise de causa raiz pode ser visto no caso da falha do 
lançamento do foguete Ariane 5 em 1996.
A investigação revelou que o acidente foi causado por um erro de software relacionado à 
conversão entre tipos numéricos diferentes. Esse incidente reforça como uma pequena falha 
pode levar a consequências desastrosas e destaca a necessidade de uma análise meticulosa para 
identificar e corrigir as verdadeiras causas dos defeitos.
A combinação da técnica dos 5 porquês com o diagrama de Ishikawa viabiliza uma análise 
mais profunda e abrangente das causas de um problema, o que ajuda a encontrar a causa raiz 
subjacente do problema para criar soluções eficazes. É um método sistemático e eficiente que 
resolve problemas em várias áreas e setores.
Por fim, a análise de causa raiz é essencial para a melhoria contínua da qualidade do software. 
As equipes podem construir sistemas mais fortes e confiáveis ao identificar e resolver os problemas 
por meio de uma abordagem sistemática e rigorosa. Isso aumenta a satisfação do usuário final e 
reduz os custos de manutenção corretiva.
84
Unidade II
 Saiba mais
Para aprofundar seu conhecimento na área de engenharia de software, 
seguem algumas sugestões de leitura:
LEÃO, T. Diagrama de Ishikawa: o que é, como funciona e como fazer. Nomus 
Meu Blog Industrial, 2024. Disponível em: https://tinyurl.com/yx7uh4pd. Acesso 
em: 1º jul. 2024.
RAMOS, D. Causa raiz das não conformidades: boas práticas para análise e 
identificação. Blog da Qualidade, 2019. Disponível em: https://tinyurl.com/zjsky55j. 
Acesso em: 1º jul. 2024.
 
5.3 Rastreabilidade de requisitos
A rastreabilidade de requisitos é uma prática essencial no desenvolvimento de software que visa 
acompanhar e documentar a vida útil dos requisitos desde sua concepção até sua implementação e 
manutenção. Essa prática possibilita compreendercomo cada requisito está relacionado aos outros 
e como cada um deles influencia o projeto como um todo. Logo a seguir está um detalhamento.
Imagine um projeto de desenvolvimento de software em que os requisitos são coletados inicialmente 
a partir de diversas fontes, como reuniões com clientes, documentação de negócios e feedback de 
stakeholders. Esses requisitos são então documentados e priorizados para orientar o trabalho da equipe 
de desenvolvimento.
A rastreabilidade de requisitos começa no momento em que eles são coletados e documentados, 
assim cada requisito é atribuído a um identificador exclusivo e é registrado em um repositório 
de requisitos. Esse repositório serve como uma fonte centralizada de informações sobre todos os 
requisitos do projeto.
Veja na figura 19 um exemplo de documento de rastreabilidade de requisito versus casos de testes.
85
QUALIDADE DE SOFTWARE
Documento de rastreabilidade de requisitos
Projeto: Sistema de gerenciamento de biblioteca
Data: 07/04/2024
Objetivo: este documento visa rastrear os requisitos do sistema de gerenciamento de biblioteca 
desde sua origem até sua implementação final.
Requisitos do sistema:
ID do requisito Descrição 
do requisito Origem Status da 
implementação
RQ001
O sistema deve 
permitir o cadastro 
de usuários
Documento de 
especificação 
de requisitos
Implementado
RQ002
O sistema deve 
permitir o cadastro 
de livros
Documento de 
especificação 
de requisitos
Implementado
RQ003
O sistema deve 
permitir o 
empréstimo de livros
Documento de 
especificação 
de requisitos
Em desenvolvimento
RQ004
O sistema deve 
permitir a devolução 
de livros
Documento de 
especificação 
de requisitos
Pendente
Mapeamento de requisitos para casos de uso:
ID do requisito Caso de uso associado
RQ001 UC001 – Cadastro de usuário
RQ002 UC002 – Cadastro de livro
RQ003 UC003 – Empréstimo de livro
RQ004 UC004 – Devolução de livro
Mapeamento de casos de uso para testes:
Caso de uso Casos de teste associados
UC001 – Cadastro de usuário CT001 – Teste de cadastro de usuário
UC002 – Cadastro de livro CT002 – Teste de cadastro de livro
UC003 - Empréstimo de livro CT003 – Teste de empréstimo de livro
UC004 - Devolução de livro CT004 – Teste de devolução de livro
Observações adicionais:
– O documento de especificação de requisitos contém os requisitos detalhados do sistema, incluindo 
descrições, prioridades e critérios de aceitação. 
– Os casos de uso são derivados dos requisitos e descrevem as interações do usuário com o sistema.
– Os casos de teste são desenvolvidos com base nos casos de uso e são utilizados para validar se o 
sistema atende aos requisitos especificados.
Figura 19 – Rastreabilidade de requisitos
O exemplo de documento de rastreabilidade de requisitos mostra como os requisitos do sistema 
são mapeados para casos de uso e de teste, podendo mudar de empresa para empresa o seu conteúdo. 
Ele facilita o acompanhamento do progresso do projeto e garante que todos os requisitos sejam 
adequadamente implementados e testados. É trabalho do engenheiro de qualidade de software deixar 
esse documento sempre atualizado e coerente com a versão corrente do software.
86
Unidade II
Ao longo do desenvolvimento, a rastreabilidade de requisitos ajuda a garantir que todos os requisitos 
sejam atendidos e implementados corretamente. Cada requisito é rastreado através das diferentes fases 
do ciclo de vida do desenvolvimento, desde a análise e design até a implementação e teste.
Durante a análise e o design, os requisitos são decompostos em componentes menores e mais 
detalhados, como casos de uso, fluxos de trabalho e especificações técnicas. A rastreabilidade de 
requisitos possibilita entender como esses componentes estão relacionados aos requisitos originais e 
como eles contribuem para a realização desses requisitos.
Durante a implementação, os desenvolvedores podem fazer referência aos requisitos originais ao 
escrever o código e criar funcionalidades. A rastreabilidade de requisitos ajuda a garantir que todos 
os requisitos sejam abordados e que nenhuma funcionalidade seja desenvolvida sem uma justificativa 
clara baseada nos requisitos do projeto.
Durante os testes, os casos de teste são criados com base nos requisitos originais para verificar se 
todas as funcionalidades atendem às expectativas dos usuários. A rastreabilidade de requisitos permite 
vincular os casos de teste aos requisitos correspondentes e garantir uma cobertura abrangente dos 
requisitos durante o teste.
Além disso, a rastreabilidade de requisitos é útil durante a manutenção do software, pois propicia 
entender como as mudanças em um requisito afetam outros requisitos e componentes do sistema. 
Dessa forma, consegue-se avaliar o impacto de uma alteração antes de implementá-la e garantir que 
todas as partes afetadas sejam atualizadas adequadamente.
Tendo isso em mente, é possível dizer que a rastreabilidade de requisitos é uma prática importante 
no desenvolvimento de software, pois ajuda a garantir que todos os requisitos sejam atendidos e que 
o software atenda às necessidades e às expectativas dos usuários finais. Em todas as fases do ciclo de 
vida do desenvolvimento, as equipes de desenvolvimento podem garantir a integridade, consistência e 
qualidade do software ao registrar e acompanhar a vida útil dos requisitos.
6 MÉTRICAS E GERENCIAMENTO DA QUALIDADE DE SOFTWARE
O gerenciamento da qualidade de software é um pilar fundamental para o sucesso de qualquer 
projeto de desenvolvimento. A implementação de métricas específicas possibilita a avaliação da 
eficiência e eficácia dos processos, bem como a identificação de áreas que necessitam de melhorias. 
Nesse contexto, duas métricas se destacam: COCOMO e ponto de função.
O COCOMO (Constructive Cost Model, em português Modelo Construtivo de Custo) é uma métrica 
projetada para estimar custo, esforço e tempo necessários para o desenvolvimento de um software. Ele 
é baseado em modelos matemáticos que consideram diversas variáveis, como tamanho do software, 
complexidade, experiência da equipe e capacidades das ferramentas utilizadas. Um exemplo prático da 
aplicação do COCOMO pode ser observado em grandes projetos corporativos, uma vez que a precisão na 
estimativa dos recursos é crucial para o planejamento financeiro e alocação adequada da equipe.
87
QUALIDADE DE SOFTWARE
Por outro lado, a métrica ponto de função foca na funcionalidade entregue pelo software ao 
usuário final. Ela mede as funcionalidades com base na perspectiva do usuário, considerando entradas, 
saídas, consultas, arquivos internos e interfaces externas. Essa abordagem é particularmente útil em 
projetos nos quais a entrega de valor ao cliente é prioritária. Empresas que adotam metodologias ágeis, 
frequentemente, utilizam pontos de função para mensurar progresso e produtividade, adaptando-se 
rapidamente às mudanças sem perder o foco na qualidade.
A integração dessas métricas no ciclo de vida do desenvolvimento de software auxilia 
significativamente no gerenciamento da qualidade. Elas fornecem dados quantitativos que podem ser 
analisados para tomar decisões informadas sobre ajustes nos processos ou na alocação de recursos. 
Além disso, contribuem para uma comunicação mais efetiva entre as equipes técnicas e os stakeholders, 
alinhando expectativas e facilitando o entendimento mútuo dos objetivos do projeto.
Por fim, as métricas de ponto de função e COCOMO são instrumentos valiosos para o gerenciamento 
da qualidade do software. Além de aumentar a precisão das estimativas e do planejamento, sua aplicação 
cria uma cultura na organização que incentiva a melhoria contínua de processos e produtos.
6.1 Estratégias para identificação e gestão da eficiência de defeitos
A identificação e a gestão da eficiência de defeitos são componentes críticos no ciclo de vida do 
desenvolvimento de software, exigindo estratégias robustas para garantir a qualidade e a satisfação 
do usuário final. Uma abordagem eficaz envolve várias etapas,desde a detecção precoce até a análise 
pós-correção, passando por uma série de práticas que visam minimizar o impacto dos defeitos no 
produto final.
Uma das primeiras estratégias, mas não a única, é a implementação de revisões de código e inspeções 
formais. Essa prática possibilita às equipes que identifiquem problemas potenciais de forma antecipada. 
Empresas líderes no setor de tecnologia, como Google e Microsoft, adotam rigorosos processos de 
revisão de código para assegurar que apenas o código da mais alta qualidade seja integrado aos seus 
produtos. A utilização de ferramentas como os casos de testes pode auxiliar fortemente nesse trabalho, 
pois os critérios de aceitação devem estar claros para cada requisito do projeto, e isso por natureza já 
consta no documento de casos de testes.
Isso proporciona uma base sólida para a identificação e categorização de defeitos de forma consistente 
durante o teste. A ênfase na prevenção de defeitos, desde o início do desenvolvimento, é crucial, pois 
incentiva práticas como as de revisões de código, de integração contínua e de desenvolvimento orientado 
a testes para identificação e correção de defeitos o mais cedo possível no processo.
A implementação de testes automatizados e o uso de ferramentas de rastreamento de defeitos 
facilitam a gestão eficiente dos defeitos ao longo do ciclo de vida do projeto, propiciando à equipe 
que registre, priorize e acompanhe o status dos defeitos para garantir que sejam tratados de forma 
oportuna e eficaz.
88
Unidade II
 Observação
A implementação de testes automatizados também desempenha um 
papel fundamental na identificação precoce de defeitos, pois possibilita 
a criação de uma suíte abrangente de testes para verificar continuamente a 
integridade do software e para detectar problemas rapidamente.
 
A análise regular das tendências de defeitos e métricas de qualidade é essencial para fornecer 
insights valiosos sobre padrões de defeitos e áreas problemáticas, incentivando para que a equipe tome 
medidas proativas a fim de melhorar a eficiência geral do processo de desenvolvimento. Além disso, é 
importante priorizar e resolver rapidamente os defeitos críticos que têm um impacto significativo na 
funcionalidade ou segurança do sistema, implementando um processo eficiente de triagem de defeitos 
para garantir uma resolução oportuna e eficaz dos problemas mais urgentes.
Ao adotar essas estratégias de identificação e gestão de defeitos de forma abrangente, é possível 
capacitar os alunos a implementar práticas eficazes de garantia de qualidade em seus próprios projetos 
de software.
Por último, é necessário promover uma cultura organizacional que priorize a aprendizagem com 
base em erros para melhorar continuamente os processos e os produtos da organização. As falhas 
podem mudar drasticamente a maneira como as equipes lidam com desafios técnicos, criando um 
ambiente onde a qualidade e a inovação caminham lado a lado.
6.2 Métrica: COCOMO
Como vimos, COCOMO é uma métrica amplamente reconhecida e utilizada para a estimativa de 
esforço, tempo e custo necessários para o desenvolvimento de software. Desenvolvido inicialmente 
por Barry Boehm, em 1981, ele evoluiu ao longo dos anos, adaptando-se às mudanças tecnológicas e 
metodológicas no campo do desenvolvimento de software. Assim, a essência do COCOMO reside em sua 
capacidade de fornecer estimativas baseadas em parâmetros históricos de projetos anteriores, ajustados 
por fatores específicos do projeto atual.
Existem três versões principais do modelo COCOMO: básico, intermediário e detalhado. O modelo 
básico oferece, de forma rápida, uma visão geral, utilizando poucas variáveis para calcular uma 
estimativa aproximada. Já o modelo intermediário introduz mais variáveis relacionadas às características 
do software e ao ambiente de desenvolvimento, possibilitando uma estimativa mais precisa. Por fim, o 
modelo detalhado leva em consideração aspectos ainda mais granulares, incluindo atributos específicos 
das fases do projeto e tarefas individuais.
Suponha que será necessário desenvolver um aplicativo móvel simples, mas que contenha 5000  linhas 
de código, de baixa complexidade e que a equipe possui experiência mediana no desenvolvimento desse 
tipo de aplicativo. Além disso, todas as ferramentas e processos que a equipe tem são bons para a 
construção desse aplicativo.
89
QUALIDADE DE SOFTWARE
Tendo esses parâmetros descritos, siga para estimar os custos usando o COCOMO.
Para calcular o esforço em pessoa-mês (PM), use a fórmula do COCOMO básico com base nos 
parâmetros fornecidos. A fórmula fundamental é:
PM = Ax (KLOC)B
Onde:
Parâmetros A e B são específicos para o tipo de projeto e estão disponíveis nas tabelas do COCOMO.
O tamanho estimado do software em milhares de linhas de código é KLOC.
Suponha que os valores de A e B sejam 2,8 e 1,20 para um projeto de software de baixa complexidade, 
com uma equipe de desenvolvimento experiente e boas ferramentas e processos. Portanto, substituindo 
os valores, tem-se:
PM = 2,8 × (5)1,20
PM = 2,8 × 7,543
PM ≈ 21,15 pessoa-mês
Agora, sabendo o esforço necessário em pessoa-mês, você já pode estimar o tempo de desenvolvimento e 
o custo total do projeto. Suponha que a equipe trabalhe em média 160 horas por mês e o custo médio 
por pessoa seja de $ 5.000 por mês.
Tempo de desenvolvimento = PM meses.
 160
Custo total do projeto = PM × 5.000 dólares.
Logo:
Tempo de desenvolvimento ≈ 21,15 meses ≈ 0,13 mês (ou cerca de 4 dias).
 160
Custo total do projeto ≈ 21,15 × $ 5.000 ≈ $ 105.750.
Esse é um exemplo simples de como você pode usar o COCOMO para estimar os custos associados 
ao desenvolvimento de um projeto de software.
90
Unidade II
Um dos grandes desafios na aplicação do COCOMO é a calibração correta dos seus coeficientes para 
refletir as peculiaridades da equipe de desenvolvimento, das tecnologias empregadas e das práticas 
organizacionais. Empresas que conseguem ajustar adequadamente os parâmetros do COCOMO podem 
obter estimativas muito precisas, facilitando a gestão eficaz dos recursos e a tomada de decisões 
estratégicas sobre o escopo e o cronograma dos projetos.
Além disso, a aplicabilidade universal do COCOMO torna-o uma ferramenta valiosa tanto para gerentes 
de projeto experientes como para startups e empresas emergentes no cenário tecnológico. Ao adotá-lo 
no planejamento e execução de projetos de software, como parte integrante da cultura organizacional, 
as empresas podem melhorar significativamente suas chances de sucesso comercial e técnico.
Por fim, embora algumas críticas indiquem que a calibração adequada dos modelos mais sofisticados 
pode ser difícil, ou que os parâmetros precisam ser atualizados constantemente, devido às novas 
tecnologias, não se pode negar o valor inestimável que o COCOMO oferece como ferramenta preditiva 
no campo do desenvolvimento de software.
 Saiba mais
Para aprofundar seus conhecimentos sobre o modelo COCOMO e suas 
aplicações práticas no desenvolvimento de software, seguem algumas 
sugestões de leitura:
PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software: uma abordagem 
profissional. 7. ed. Porto Alegre: AMGH, 2011.
Este livro aborda vários tópicos relacionados à engenharia de software, 
incluindo modelos de estimativa de esforço como o COCOMO.
 
6.3 Ponto de função
A métrica de ponto de função (function point, em inglês) é uma técnica de medição usada na 
engenharia de software para quantificar o tamanho funcional de um sistema de software, com base 
nas funcionalidades fornecidas aos usuários finais. Desenvolvida por Allan Albrecht, na IBM, na década 
de 1970, a métrica de ponto de função se tornou uma ferramenta valiosa para estimar o tamanho e a 
complexidade de um projeto de desenvolvimento de software.
A ideia principal por trás da métrica de ponto de função é medir a funcionalidade entregue pelo 
software, em vez de medir diretamente o tamanho do código, ou o número de linhas de código. Isso 
significaque a métrica de ponto de função se concentra nas características do sistema que são visíveis 
aos usuários finais e que agregam valor ao negócio.
91
QUALIDADE DE SOFTWARE
Para calcular os pontos de função, são identificadas as diferentes funcionalidades do sistema, como 
entradas de dados, consultas ao banco de dados, interfaces com o usuário e relatórios gerados pelo 
sistema. Cada funcionalidade é classificada com base em sua complexidade e a ela é atribuída uma 
pontuação em pontos de função. Essas pontuações são então somadas para obter o tamanho total do 
sistema em pontos de função.
Abstração orientada a dados
Documentação 
do software
Aplicação
Outras 
aplicações
Dados 
internos (ALIs)
Dados 
externos 
(AIEs)
Pontos de função 
(números)
Transações 
(EEs, CEs, SEs)
Identificação dos itens da APF
Mapeando em números
Usuários
Figura 20 – Elementos para contagem do ponto de função
Disponível em: https://tinyurl.com/yc4pm7xe. Acesso em: 3 jun. 2024.
 Lembrete
A unidade de medida de software ponto de função (PF) foi definida 
em 1977, por Allan Albrecht, na IBM, e é reconhecida pela ISO/IEC 20926 
para estimar o tamanho de um sistema de informação com base na 
funcionalidade percebida pelo usuário do sistema, independentemente da 
tecnologia usada para implementá-lo.
 
O cálculo dos pontos de função envolve várias etapas e é importante seguir um processo sistemático 
para garantir precisão. A seguir apresentamos uma abordagem básica para calcular os pontos de função.
Identificação das funções do sistema
O primeiro passo é identificar as diferentes funcionalidades que o sistema deve fornecer aos usuários 
finais. Isso inclui todas as entradas de dados, consultas, relatórios e interfaces com o usuário.
92
Unidade II
Classificação das funções
Cada função identificada é classificada com base em sua complexidade. Desse modo, existem três 
tipos de funções: entradas externas (EE), saídas externas (SE) e consultas externas (CE). A classificação 
das funções é baseada em critérios como o número de campos de entrada ou saída, o número de 
arquivos lógicos acessados e a complexidade da lógica de processamento.
Atribuição de pontos de função
A cada função classificada é atribuída uma pontuação em pontos de função, com base em uma 
tabela de valores padrão. Por exemplo, uma entrada externa (EE) simples vale três pontos de função, 
enquanto uma mais complexa vale seis pontos de função. As pontuações são determinadas com base 
em estimativas de esforço necessárias para implementar cada função.
Somatório dos pontos de função
Uma vez que todas as funções tenham sido classificadas e pontuadas, as pontuações são somadas 
para obter o tamanho total do sistema em pontos de função.
Ajustes por fatores de influência
Após o cálculo inicial dos pontos de função, podem ser aplicados ajustes para levar em consideração 
fatores de influência adicionais, como a complexidade da arquitetura do sistema, a experiência da equipe 
de desenvolvimento ou a qualidade dos requisitos.
Esses ajustes são aplicados multiplicando os pontos de função brutos por um fator de ajuste 
específico para cada fator de influência.
Cálculo final dos pontos de função
Os pontos de função ajustados são calculados a partir da soma dos pontos de função brutos e dos 
ajustes por fatores de influência. Para demonstrar, segue uma aplicação do ponto de função.
Imagine que você é o encarregado de desenvolver um sistema de gerenciamento de biblioteca 
para uma biblioteca local. Você começa identificando as principais funcionalidades que o sistema deve 
fornecer aos usuários finais, como permitir que os bibliotecários cadastrem novos livros, consultem 
livros existentes, registrem empréstimos e gerem relatórios sobre os livros disponíveis.
Para cada uma dessas funcionalidades, é necessário avaliar a complexidade envolvida. Por exemplo, o 
cadastro de um novo livro pode ser relativamente simples, enquanto a geração de relatórios talvez exija 
mais trabalho e lógica de processamento. Com base nessa avaliação, você classifica cada funcionalidade 
como de complexidade baixa, média ou alta.
93
QUALIDADE DE SOFTWARE
Agora, é hora de atribuir pontos de função a cada funcionalidade com base em uma tabela de valores 
padrão. Por exemplo, o cadastro de um novo livro vale seis pontos de função, enquanto a consulta de 
um livro existente vale três pontos. Esses valores são determinados a partir de estimativas de esforço 
necessárias para implementar cada funcionalidade.
Depois de atribuir pontos de função a todas as funcionalidades, você os somará para obter o tamanho 
total do sistema em pontos de função. Nesse caso, o sistema de gerenciamento de biblioteca tem um total 
de 27 pontos de função.
Nessa etapa, é necessário fazer ajustes adicionais para levar em consideração fatores como a 
complexidade da arquitetura do sistema ou a experiência da equipe de desenvolvimento. Por exemplo, 
você decide aplicar um ajuste de mais 10% para a complexidade da arquitetura do sistema, resultando, 
assim, em 30 pontos de função ajustados.
Esses 30 pontos de função representam a estimativa do tamanho e a complexidade funcional do 
sistema de gerenciamento de biblioteca, o que vai ajudar você a ter uma ideia do esforço necessário para 
desenvolver e manter o software. Essa medida é valiosa para o planejamento de recursos, estimativas de 
custo e prazos de entrega do projeto.
Suponha que você está estimando o tamanho funcional de um sistema de gerenciamento de 
biblioteca com as seguintes funcionalidades: cadastro de livros, cadastro de usuários, empréstimo 
de livros, devolução de livros, geração de relatórios de empréstimos, e busca de livros no catálogo.
Para calcular o ponto de função, usaremos os seguintes passos:
• Identificar tipos de função e contar suas ocorrências.
— Funções de entrada de dados (EEs): cadastro de livros, cadastro de usuários.
— Funções de saída de dados (SEs): empréstimo de livros, devolução de livros, geração de 
relatórios de empréstimos.
— Funções de consulta (CEs): busca de livros no catálogo.
• Atribuir pontos de função não ajustados (PFNA).
— EEs: 4 pontos cada.
— SEs: 5 pontos cada.
— CEs: 4 pontos cada.
Total de PFNA = (2 x 4) + (3 x 5) + (1 x 4) = 8 + 15 + 4 = 27 PFNA
94
Unidade II
• Identificar fatores de ajuste.
— Complexidade: avaliar cada função (baixa, média, alta) com base em fatores como volumes de 
dados, complexidade de processamento, entre outros.
— Ajustar os PFNA com base na complexidade de cada função.
• Calcular pontos de função ajustados (PFA).
PFNA x fator de ajuste = PFA (para exemplificar, foi considerado apenas 10% como fator de ajuste)
27 + (27 x 10%)
• Somar os PFA.
Total de PFA = soma de todos os PFA de cada função.
Total de PFA = 30 PFA
É importante notar que o cálculo dos pontos de função é uma estimativa e pode variar dependendo 
da precisão das estimativas de esforço e da complexidade das funções. No entanto, quando realizado 
com cuidado e baseado em dados reais – sempre que possível –, ele fornece uma medida útil do tamanho 
e da complexidade funcional de um sistema de software.
Uma vez conhecendo a quantidade de pontos de função de um sistema de software, facilmente você 
poderá calcular a quantidade de horas que se leva para resolver cada ponto de função. A quantidade 
de horas pode variar de 8 horas a 20 horas por ponto de função, a variação dependerá mais do 
histórico da empresa.
A métrica de ponto de função oferece várias vantagens sobre outras técnicas de medição de tamanho 
de software. Por ser baseada na funcionalidade fornecida aos usuários finais, ela é independente da 
linguagem de programação ou da tecnologia utilizada no desenvolvimento do software. Além disso, 
como se concentra nas funcionalidades do sistema, pode ser usada para comparar a produtividade entre 
projetos e equipes diferentes, fornecendo uma base mais objetiva para estimativas de custo, prazo e 
esforço de desenvolvimento.
Entretanto, a métrica de ponto de função tambémtem suas limitações e desafios. A determinação 
precisa dos pontos de função é subjetiva e requer um entendimento detalhado dos requisitos do sistema. 
Além disso, ela não leva em consideração a qualidade do software ou a eficiência do código, o que 
significa que dois sistemas com o mesmo tamanho em pontos de função podem ter níveis diferentes de 
complexidade técnica.
A métrica de ponto de função é uma técnica útil para medir o tamanho e a complexidade funcional 
de um sistema de software, bem como para fornecer uma base objetiva para estimativas de custo, 
95
QUALIDADE DE SOFTWARE
prazo e esforço de desenvolvimento. Embora tenha algumas desvantagens, ela ajuda as organizações a 
melhorar a gestão de seus projetos de desenvolvimento de software e a fazer escolhas mais inteligentes 
sobre planejamento e alocação de recursos.
 Saiba mais
O cálculo de ponto de função é uma técnica utilizada por grandes empresas 
e conhecê-la poderá ser um diferencial no momento da contratação. Para 
entender melhor sobre o assunto, consulte:
SERVIÇO FEDERAL DE PROCESSAMENTO DE DADOS (SERPRO). Roteiro 
Serpro de contagem de pontos de função e estimativas. 2014. Disponível em: 
https://tinyurl.com/yc4pm7xe. Acesso em: 28 maio 2024.
VAZQUEZ, C. E.; SIMÕES, G. S.; ALBERT, R. M. Análise de pontos de função. 
12. ed. São Paulo: Érica, 2012.
 
6.4 Tempo médio entre falhas (MTBF)
O tempo médio entre falhas (MTBF, do inglês Mean Time Between Failures) é um indicador fundamental 
na área de manutenção e confiabilidade de sistemas, sendo utilizado para avaliar a confiabilidade de 
equipamentos, componentes ou sistemas em geral.
O cálculo do MTBF foi desenvolvido por engenheiros e cientistas, com a finalidade de avaliar a 
confiabilidade de sistemas e equipamentos. Não há um único inventor ou criador específico do cálculo 
do MTBF, pois ele é o resultado de décadas de pesquisa e desenvolvimento na área de confiabilidade 
e manutenção. A teoria por trás do cálculo do MTBF está baseada em estatística e probabilidade, e 
foi desenvolvida por diversos pesquisadores e profissionais ao longo do tempo. A ideia de utilizar o 
MTBF como uma métrica para avaliar a confiabilidade de sistemas e equipamentos surgiu na década 
de 1950, com o advento da teoria da confiabilidade e da manutenção preventiva.
O MTBF é aplicado no desenvolvimento de software para avaliar a sua confiabilidade e prever o 
tempo médio entre falhas. Nesse contexto, ele é utilizado para estimar o tempo médio que um software 
pode operar sem falhas.
Para o cálculo do MTBF, é necessário considerar o tempo total de operação do equipamento ou 
do sistema e o número de falhas que ocorreram durante esse período. Ele é realizado pela fórmula: 
MTBF = (tempo total de operação – tempo de manutenção) / número de falhas, onde:
• o tempo total de operação é o período em que o sistema esteve em funcionamento, no caso de 
um sistema de produção, ou o tempo de desenvolvimento da release para ser entregue ao cliente;
96
Unidade II
• o tempo de manutenção é o tempo em que o sistema ficou inativo em produção devido a reparos 
ou falhas ou, no caso de desenvolvimento, pode ser o tempo que uma funcionalidade demorou 
para ser ajustada depois que o erro foi detectado pelo time de testes;
• o número de falhas corresponde à quantidade de vezes que o sistema falhou durante o período de 
operação, no caso de produção, ou a quantidade de itens retornados para desenvolvimento depois 
de uma rodada de testes.
Veja um exemplo: se um software operou por 525.600 minutos (aproximadamente um ano) e teve 
6 falhas durante esse período com um tempo total de manutenção de 170 minutos, o MTBF seria 
calculado como:
MTBF = (525600 – 170) / 6
MTBF = 87571,67 min.
Resultando em aproximadamente 60 dias entre falhas.
O cálculo do MTBF é aplicado no desenvolvimento de software como uma métrica para avaliar a 
sua confiabilidade, prever o tempo médio entre falhas e auxiliar na tomada de decisões para melhorar 
a qualidade e a confiabilidade do produto final.
6.5 Métricas de usabilidade
A usabilidade de software é a medida na qual os usuários podem interagir com um sistema de 
software. Portanto, a métrica de usabilidade é uma técnica para avaliar e medir essa qualidade.
Pode-se aplicar uma variedade de métricas de usabilidade a um sistema de software, cada uma 
das quais se concentra em aspectos específicos da experiência do usuário. Algumas das métricas 
mais usadas são discutidas a seguir.
Métricas de facilidade de uso
Uma das métricas mais importantes para avaliar a usabilidade do software é a facilidade de uso, 
que pode ser definida como “a facilidade com que um produto pode ser utilizado para alcançar 
objetivos específicos por usuários específicos, em um contexto específico de uso” (ISO 9241-11). 
Essa definição enfatiza que o contexto do usuário deve ser levado em consideração ao avaliar a 
facilidade de uso de um software.
É fundamental que a interface seja fácil de usar. Segundo Jakob Nielsen (1993), um renomado 
especialista em usabilidade, a interface do usuário deve antecipar as necessidades dos usuários e 
garantir que as opções sejam visíveis, acessíveis e compreensíveis. As interfaces do usuário de alta 
qualidade – a ajuda e a satisfação do usuário – diminuem os erros.
97
QUALIDADE DE SOFTWARE
Além disso, é fundamental que os controles sejam fáceis de entender para o usuário usar o 
software. Norman (2013) alega ser essencial que os controles sejam intuitivos, de fácil localização e 
compreensão para os usuários. Portanto, é fundamental fornecer ao usuário um feedback imediato 
para que ele fique atualizado e possa corrigir rapidamente os erros.
A consistência do design é um componente crucial da facilidade de uso. A consistência é uma 
das características mais poderosas de uma interface do usuário eficaz, de acordo com Steve Krug, 
autor de Não me faça pensar (2001). Quando se descobre que as coisas funcionam da mesma 
maneira, não é necessário gastar tempo ou esforço para descobrir como funcionam.
Finalmente, é essencial que o software seja fácil de usar para que os usuários comecem 
rapidamente. A implementação de guias de ajuda contextuais e tutoriais interativos pode ser um 
exemplo disso.
Em resumo, uma experiência de usuário positiva com o software depende da facilidade de uso. 
Um software que seja verdadeiramente fácil de usar e atenda às necessidades dos usuários deve 
ter uma interface intuitiva, controles claros, design consistente e facilidade de aprendizado.
Métricas de eficiência
A eficiência de software é uma medida que avalia a rapidez e a precisão com que um sistema de 
software executa suas funções, tarefas ou processos com poucos recursos, tais como tempo, memória 
e processamento.
O tempo de resposta, que é aquele que o sistema leva para responder a uma solicitação do usuário, 
trata-se de uma métrica comum para avaliar a eficiência de um software. Os usuários esperam uma 
resposta rápida, então qualquer atraso pode causar insatisfação e frustração.
A métrica de consumo de recursos mede quantos recursos um software usa durante sua execução, 
tais como memória, processamento e largura de banda de rede. De acordo com Tanenbaum (2016), 
é fundamental projetar software de forma a minimizar o consumo de recursos, assegurando que o 
sistema funcione de maneira suave e responsiva.
A escalabilidade é a métrica que mede a capacidade de um sistema de suportar uma carga de 
trabalho maior com o mesmo desempenho. Esse tipo de métrica está associada aos resultados de testes 
não funcionais realizados no sistema.
A eficiência de software é uma medida importante que avalia a rapidez e a precisão com que 
um sistema de software executa suas funções, tarefas ou processos a partir de recursos limitados. O 
desempenho responsivo, o uso eficiente de recursos e a escalabilidade do software dependem de uma 
abordagem eficaz.
98
Unidade II
 Saiba mais
Para aprender mais sobre as métricas de eficiência, acesse as 
seguintes leituras:
DIAS,R. Métricas para avaliação de sistemas de informação. Revista 
Eletrônica de Sistemas de Informação, v. 1, n. 1, 2002. Disponível em: 
https://tinyurl.com/3wrz246v. Acesso em: 4 jun. 2024.
GUIMARÃES, W. Métricas em testes de usabilidade, como usá-las 
para melhorar o seu produto. UX CollectiveBR, 2019. Disponível em: 
https://tinyurl.com/5n6ab3xj. Acesso em: 4 jun. 2024.
NUNES, A. As principais métricas para avaliar a usabilidade de uma 
interface. UX CollectiveBR, 2020. Disponível em: https://tinyurl.com/3p325ty4. 
Acesso em: 4 jun. 2024.
VIRGENS, G. B. D. Extração de métricas de usabilidade a partir de protótipos 
de fidelidade mista. 2010. Dissertação (Mestrado em Ciência da Computação) – 
Pontifícia Universidade Católica do Rio Grande do Sul, Porto Alegre, 2010. 
Disponível em: https://tinyurl.com/mrk4dj7k. Acesso em: 4 jun. 2024.
6.6 Métricas de manutenibilidade
A manutenibilidade de um software mede a facilidade com que um sistema de software pode ser 
modificado, corrigido e adaptado ao longo do tempo, mantendo sua qualidade e desempenho. Há, 
portanto, diferentes tipos de métricas de manutenibilidade:
• Complexidade ciclomática: mede a complexidade do fluxo de controle do software, sendo um 
indicador da dificuldade de compreender e manter o código.
• Índice de manutenibilidade: mede a facilidade de manutenção do software, considerando a 
complexidade do código, a quantidade de comentários e a estrutura do programa.
• Métricas de Chidamber e Kemerer: avaliam a manutenibilidade de software orientado a objetos, 
considerando aspectos como o número de classes, métodos e heranças.
As métricas de manutenibilidade são importantes para a avaliação da qualidade do software, 
especialmente em sistemas de informação. Elas são usadas para identificar trechos de código que 
precisam ser refatorados, para avaliar a qualidade do código antes de sua implantação e para controlar 
os custos de manutenção ao longo do tempo.
99
QUALIDADE DE SOFTWARE
Indicadores quantitativos que avaliam a facilidade de manutenção e modificação de software no 
decorrer de um período são conhecidos como métricas de manutenibilidade. Assim, existem vários tipos 
que podem ser usadas para avaliar a qualidade do software em sistemas de informação.
 Lembrete
As métricas de manutenibilidade são essenciais para controlar os 
custos de manutenção e avaliar a qualidade do software. Dentre elas, 
estão: complexidade ciclomática; índice de manutenibilidade; e métricas 
de Chidamber e Kemerer.
 Saiba mais
Para se aprofundar mais nesse assunto, seguem algumas sugestões 
de leitura:
BATISTA, C. F. A. Métricas de segurança de software. 2007. Dissertação 
(Mestrado em Informática) – Pontifícia Universidade Católica do Rio de 
Janeiro, Rio de Janeiro, 2007. Disponível em: https://tinyurl.com/3rt6jzbm. 
Acesso em: 4 jun. 2024.
FERREIRA, B. N.; ARAKAKI, J. Métricas de manutebilidade apoiando a Refatoração. 
Academia Edu, [s.d.]. Disponível em: https://tinyurl.com/2ejypmmk. Acesso em: 
4 jun. 2024.
SOUZA, T. B. A. Um modelo para avaliação da manutenibilidade de 
código-fonte orientado a objeto. 2005. TCC (Trabalho de graduação em 
Engenharia de Software) – Universidade Federal de Pernambuco, Recife, 
2005. Disponível em: https://tinyurl.com/26zj4fhv. Acesso em: 4 jun. 2024.
 
100
Unidade II
 Resumo
O gerenciamento de defeitos envolve as etapas de identificação, registro, 
correção e verificação de problemas no código ou no comportamento do 
software, ou seja, é uma parte essencial do ciclo de vida do desenvolvimento 
de software. Um defeito de software é qualquer desvio do comportamento 
esperado que leva a falhas ou mau funcionamento do sistema.
A identificação é feita por testes manuais ou automatizados, ou ainda 
relatada pelos usuários finais. Os defeitos, então, são registrados em um 
sistema de rastreamento de defeitos, quando encontrados. Esse sistema 
compila informações como a descrição do problema, a gravidade e a 
prioridade dele e as etapas necessárias para reproduzi-lo.
Após o registro, os defeitos são priorizados com base em sua gravidade 
e impacto no software. Defeitos críticos que afetam a funcionalidade 
principal do sistema são, geralmente, priorizados. Em seguida, a equipe de 
desenvolvimento trabalha na correção do defeito, elaborando uma solução 
e implementando-a no código-fonte.
Depois da correção, verifica-se a falha novamente para garantir que 
o problema foi resolvido. Isso geralmente envolve testes adicionais para 
confirmar se o defeito não está mais presente e se a funcionalidade afetada 
está funcionando conforme o esperado. Por fim, o defeito é fechado no 
sistema de rastreamento após a confirmação de que foi corrigido e foi 
gerada uma documentação adequada sobre o evento.
O gerenciamento de defeitos é fundamental para melhorar a qualidade 
do software, garantindo que problemas sejam identificados e corrigidos 
antes que impactem os usuários finais. Além disso, tal abordagem ajuda a 
reduzir custos de manutenção em longo prazo, evitando a acumulação de 
defeitos não resolvidos.
Para contribuir no momento de identificação e nos levantamentos dos 
custos do projeto de software, as métricas quantitativas como o COCOMO 
e a análise de ponto de função auxiliam na avaliação de diversos aspectos 
do software, desde sua produtividade e qualidade do código até seu 
desempenho, usabilidade, manutenibilidade e segurança.
101
QUALIDADE DE SOFTWARE
As métricas de qualidade do código se concentram na estrutura e 
legibilidade do código-fonte, ajudando a identificar áreas problemáticas 
que podem impactar a manutenibilidade e a escalabilidade do software, 
incluindo métricas como a complexidade ciclomática, a taxa de cobertura 
de código nos testes e a conformidade com padrões de codificação.
As métricas de desempenho, por outro lado, avaliam a performance do 
software em termos de tempo de resposta, disponibilidade e confiabilidade. 
Desse modo, há as métricas de tempo médio entre falhas (MTBF) e de taxa 
de falhas por unidade de tempo.
Já as métricas de usabilidade medem a facilidade de uso e a satisfação 
do usuário com o software, incluindo métricas como tempo médio para 
aprender a usá-lo, a taxa de conclusão de tarefas e as pesquisas de 
satisfação do usuário.
As métricas de manutenibilidade avaliam a facilidade de manutenção 
e evolução do software ao longo do tempo. Para isso, usam-se métricas de 
facilidade de compreensão do código e de tempo médio para fazer uma 
mudança no código.
Ao utilizar métricas da qualidade de software, é importante selecionar as 
métricas apropriadas com base nas necessidades específicas do projeto e da 
organização e, assim, interpretar os resultados com cuidado, considerando 
o contexto do software e dos usuários finais.
102
Unidade II
 Exercícios
Questão 1. (FGV 2022, adaptada) A gestão da qualidade é tarefa de fundamental importância no 
contexto econômico atual, podendo ser considerada um diferencial competitivo para as organizações. 
Devido a essa relevância, alguns estudiosos preocuparam-se em desenvolver ferramentas para auxiliar 
os gestores nesse processo, sendo o Diagrama de Ishikawa um de seus exemplos.
Nesse contexto, assinale a alternativa que descreve a ferramenta conhecida como Diagrama 
de Ishikawa.
A) Ciclo iterativo que percorre fases de planejamento, execução, checagem e correção, visando à 
melhoria contínua.
B) Representação esquematizada de modelo de processos sequenciais a serem executados 
na organização.
C) Modelo estatístico que permite identificar correlações entre variáveis independentes.
D) Gráfico que sistematiza possíveis razões de determinado problema, auxiliando a identificar 
relações de causa e efeito.
E) Tabela que analisa aspectos específicos de problemas e calcula a média ponderada para selecionar 
o prioritário.
Resposta correta: alternativa D.
Análise da questão
O Diagrama de Ishikawa é uma ferramenta visual utilizada para encontrar e organizar as possíveis 
causas de um problema ou de um efeitoespecífico. Esse diagrama é estruturado visualmente como 
uma espinha de peixe, com o ramo principal representando o problema ou o efeito a ser analisado, 
e os ramos laterais representando as categorias principais de causas que podem contribuir para esse 
problema. Normalmente, elementos como pessoas, processos, materiais, máquinas, ambiente e métodos 
estão incluídos nas categorias.
Desse modo, o Diagrama de Ishikawa pode ser definido como um gráfico que sistematiza possíveis 
razões de determinado problema, auxiliando na identificação de relações de causa e efeito.
103
QUALIDADE DE SOFTWARE
Questão 2. (UFG 2024, adaptada) A análise de pontos de função (APF) é amplamente utilizada para 
estimar o esforço de desenvolvimento, para avaliar a produtividade e fornecer uma base objetiva para a 
negociação de contratos de desenvolvimento de software. Qual é a principal métrica medida na análise 
de ponto de função?
A) Quantidade de linhas de código-fonte.
B) Complexidade ciclomática.
C) Tamanho funcional.
D) Tamanho do código binário.
E) Quantidade de instruções assembly.
Resposta correta: alternativa C.
Análise da questão
O intuito da métrica de ponto de função é medir a funcionalidade entregue pelo software, ao invés 
de medir o tamanho do código-fonte. Desse modo, a métrica de ponto de função concentra-se nas 
características do sistema que são visíveis aos usuários finais e que agregam valor ao negócio.
Para calcularmos os pontos de função, identificamos as diferentes funcionalidades do sistema, 
como entradas de dados, consultas ao banco de dados, interfaces com o usuário e relatórios gerados. 
Classificamos cada funcionalidade com base em sua complexidade e atribuímos uma pontuação. Depois, 
somamos essas pontuações para obter o tamanho funcional do sistema.

Mais conteúdos dessa disciplina