Você está na página 1de 5

16/04/2024, 19:21 Avaliação Final (Discursiva) - Individual

Prova Impressa
VOLTAR
GABARITO | Avaliação Final (Discursiva) - Individual
A+
(Cod.:956738)
Alterar modo de visualização
Peso da Avaliação 2,00
Prova 76579164
Qtd. de Questões 2
Nota 10,00

As ferramentas de métricas de software desempenham um papel fundamental na análise e avaliação


da qualidade do código de um programa. Elas fornecem informações importantes sobre diferentes
aspectos do software, permitindo que os desenvolvedores identifiquem problemas e façam melhorias.
Algumas das principais métricas analisadas por essas ferramentas incluem a complexidade
ciclomática, o código duplicado, vulnerabilidades e bugs, padronização/estilo, débito técnico e a
cobertura de testes. Cada uma dessas métricas abrange aspectos específicos do código e contribui para
uma avaliação completa do projeto.

Fonte: adaptado de: BARRADAS, T. Análise contínua de qualidade do software. Medium, 2019.
Disponível em: https://medium.com/thiagobarradas/an%C3%A1lise-cont%C3%ADnua-de-qualidade-
do-software-bb7b03518bcc. Acesso: 25 jan. 2024.

Identifique e explique brevemente duas métricas analisadas pelas ferramentas de métricas de


software, descrevendo sua importância na avaliação da qualidade do código.

Resposta esperada

Complexidade Ciclomática: essa métrica mensura a complexidade de partes do software


contando os possíveis caminhos independentes que podem ser executados. Quanto maior a
complexidade ciclomática, mais difícil é entender, testar e manter o código. Uma alta
complexidade ciclomática pode indicar trechos de código com muitas estruturas condicionais e
loops, o que pode levar a erros e dificultar a manutenção futura.

Código Duplicado: essa métrica identifica trechos de código duplicados ou com fluxos
semelhantes, mas com partes diferentes na escrita. A presença de código duplicado pode levar a
problemas de manutenção, pois qualquer alteração feita em um trecho duplicado deve ser
replicada em todos os outros trechos iguais, aumentando o esforço necessário para manter o
software. Além disso, o código duplicado pode resultar em inconsistências e dificultar a
compreensão do sistema como um todo.

about:blank 1/5
16/04/2024, 19:21 Avaliação Final (Discursiva) - Individual

PIMENTA, D.; GUERREIRO, L. R.; QUINCOZES, V. E. Estimativas e Métricas de Software.


Florianópolis: Arqué, 2023.

Ferramentas de Métricas.

Minha resposta

Complexidade Ciclomática: A complexidade ciclomática é uma medida quantitativa da


complexidade de um programa. Ela está relacionada ao número de caminhos independentes no
código-fonte, representando o número mínimo de caminhos necessários para percorrer todas as
instruções do programa. Quanto maior a complexidade ciclomática, maior a dificuldade de
entender, testar e manter o código. Portanto, ferramentas que analisam a complexidade
ciclomática ajudam os desenvolvedores a identificar partes do código que podem ser
simplificadas, refatoradas ou modularizadas, visando reduzir a complexidade e melhorar a
qualidade do software. Código Duplicado: A detecção de código duplicado é uma métrica que
identifica partes do código que são repetidas em diferentes partes do sistema. O código duplicado
pode levar a problemas de manutenção, aumentando a dificuldade de realizar alterações e
introduzindo o risco de inconsistências e erros. Ferramentas que analisam o código duplicado
ajudam os desenvolvedores a identificar essas redundâncias e a consolidar o código duplicado
em funções ou módulos reutilizáveis. Isso promove a modularidade, a coesão e a reutilização de
código, contribuindo para a melhoria da qualidade e da manutenibilidade do software.

Retorno da correção

Parabéns, acadêmico, sua resposta atingiu os objetivos da questão e você contemplou o esperado,
demonstrando a competência da análise e síntese do assunto abordado, apresentando excelentes
argumentos próprios, com base nos materiais disponibilizados.

Segundo Pressman (2006), medir o progresso das equipes de desenvolvimento de software pode ser
uma etapa crucial para melhorar a eficiência e a produtividade. Métricas de software podem ser
usadas para rastrear uma variedade de características de desenvolvimento de software. Entender as
métricas de software e como rastreá-las ajudará você a gerenciar melhor o processo de programação.
Segundo Pandian (2004), uma métrica de software é uma medida mensurável ou contável das
características do software. As métricas de engenharia de software podem ser usadas para várias
coisas, como avaliar o desempenho do software, planejar itens de trabalho, estimar a produtividade e
assim por diante.

Fonte: adaptado de: PRESSMAN, R. S. Engenharia de Software. São Paulo: McGraw-Hill, 2006.

Baseado na questão da medição do progresso das equipes de desenvolvimento de software e nos


conceitos de métrica de software, simule a construção de um sistema e destaque esses tópicos de
métrica que você terá que cumprir para fazer a sua validação.

about:blank 2/5
16/04/2024, 19:21 Avaliação Final (Discursiva) - Individual

Resposta esperada

Espera-se que o estudante elabore a criação de um software fictício e, baseado nesse software,
traga todos os conceitos de métrica de software para poder fazer a implementação dessas
métricas, tanto com a equipe de desenvolvimento quanto com o próprio software.

Para simular a construção de um sistema de software e destacar os tópicos relacionados à métrica


de software, é importante considerar várias métricas ao longo do ciclo de vida do
desenvolvimento do software. Aqui estão alguns tópicos de métricas que seriam relevantes para
essa validação:

Produtividade da equipe: Medir a eficiência da equipe ao longo do tempo, quantificando a


quantidade de trabalho realizado em relação ao tempo e aos recursos empregados.

Qualidade do código: Utilizar métricas como complexidade ciclomática, índice de coesão, índice
de acoplamento e número de defeitos por linha de código para avaliar a qualidade do código
produzido pela equipe.

Cobertura de testes: Avaliar a eficácia dos testes implementados pela equipe, medindo a
porcentagem do código que é exercida pelos testes automatizados.

Tempo de resposta do sistema: Medir o tempo que o sistema leva para responder a solicitações
do usuário, garantindo que as melhorias no desempenho sejam alcançadas ao longo do tempo.

Taxa de entrega: Monitorar a frequência com que novas versões do software são entregues aos
usuários, buscando aumentar a frequência de entrega sem comprometer a qualidade.

Satisfação do cliente: Coletar feedback dos usuários para avaliar sua satisfação com o software
entregue, utilizando pesquisas de satisfação e análise de avaliações e comentários.

Uso de recursos: Monitorar o consumo de recursos, como memória e capacidade de


processamento, para garantir que o software seja eficiente em termos de recursos.

Ciclo de vida do defeito: Acompanhar o ciclo de vida dos defeitos, desde sua descoberta até sua
correção, para identificar áreas de melhoria no processo de desenvolvimento e garantir a entrega
de software de alta qualidade.

about:blank 3/5
16/04/2024, 19:21 Avaliação Final (Discursiva) - Individual

Padrões de codificação: Verificar se os desenvolvedores estão aderindo aos padrões de


codificação estabelecidos, utilizando ferramentas de análise estática de código para identificar
violações de padrões.

Estabilidade do sistema: Medir a frequência e a gravidade das falhas no sistema em produção,


buscando reduzir a ocorrência de incidentes e aumentar a estabilidade do software.

PIMENTA, D.; GUERREIRO, L. R.; QUINCOZES, V. E. Estimativas e Métricas de Software.


Florianópolis: Arqué, 2023.

Conceito da Estimativa e do Planejamento de Software.

Minha resposta

Para exemplificar, vou utilizar as etapas de desenvolvimento de um sistema para uma lanchonete
que servirá para a realização de pedidos. Medição do Progresso: Para medir o progresso das
equipes de desenvolvimento em cada etapa, irei utilizar técnicas como o método de pontos de
função ou o método de pontos de teste, adaptados para o contexto do desenvolvimento do
sistema da lanchonete. Essas técnicas permitem quantificar o trabalho realizado e estimar o
esforço necessário para completar cada etapa. 1 - Levantamento de Requisitos: Nesta etapa, a
equipe de desenvolvimento e os stakeholders da lanchonete se reúnem para entender os
requisitos do sistema, incluindo funcionalidades esperadas, interfaces com o usuário, integração
com sistemas existentes, etc. Métrica: Número de requisitos levantados e documentados. 2 -
Projeto e Arquitetura: Com base nos requisitos levantados, a equipe de desenvolvimento projeta a
arquitetura do sistema, definindo a estrutura geral, os componentes principais e os padrões de
design a serem seguidos da lanchonete. Métrica: Completação do documento de arquitetura do
software. 3 - Implementação: Na implementação equipe de desenvolvimento codifica o sistema
de acordo com o projeto e a arquitetura definidos, implementando as funcionalidades e as
interfaces necessárias. Métrica: Número de linhas de código escritas e taxa de cobertura de
código. 4 - Testes: Serão realizados testes para verificar se o sistema atende aos requisitos
definidos, identificar e corrigir defeitos e garantir que o software funcione conforme o esperado.
Métrica: Percentual de defeitos encontrados e corrigidos, cobertura de teste alcançada. 5 -
Implantação e Avaliação: O sistema é implantado no ambiente de produção da lanchonete e
avaliado pelos usuários finais para garantir que atenda às suas necessidades e expectativas.
Métrica: Feedback dos usuários finais sobre a usabilidade e a funcionalidade do sistema.
Validação Final: A validação final do sistema será realizada através de testes de aceitação
conduzidos pelos usuários finais da lanchonete, onde eles testam o sistema em um ambiente
realista de uso e verificam se atende aos requisitos e expectativas estabelecidos. O sucesso dessa
validação é avaliado com base no feedback positivo dos usuários e na ausência de defeitos
críticos identificados durante os testes de aceitação.

about:blank 4/5
16/04/2024, 19:21 Avaliação Final (Discursiva) - Individual

Retorno da correção

Parabéns, acadêmico, sua resposta atingiu os objetivos da questão e você contemplou o esperado,
demonstrando a competência da análise e síntese do assunto abordado, apresentando excelentes
argumentos próprios, com base nos materiais disponibilizados.

Imprimir

about:blank 5/5

Você também pode gostar