Parte 2 - Tema 11 Flashcards

Calidad del software

1
Q

¿Qué son los estándares de nomenclatura y codificación?

A

Son un conjunto de reglas y convenciones que guían la forma en que se escribe el código, asegurando consistencia, legibilidad y mantenibilidad.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Por qué son importantes los estándares de nomenclatura?

A

Facilitan la comprensión del código, reducen errores y promueven la colaboración entre desarrolladores.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Cuáles son algunos ejemplos de estándares de nomenclatura comunes?

A

CamelCase para variables, PascalCase para clases, snake_case para constantes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Qué es el código limpio?

A

Es código que es fácil de leer, entender y mantener, siguiendo principios como la simplicidad, la consistencia y la modularidad.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Cuáles son los beneficios del código limpio?

A

Reduce los errores, facilita la depuración, mejora la colaboración y aumenta la vida útil del software.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Qué son las métricas de calidad del software?

A

Son medidas cuantitativas que evalúan la calidad de un software, como la complejidad ciclomática, el acoplamiento y la cohesión.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Para qué sirven las métricas de calidad?

A

Ayudan a identificar áreas de mejora en el código, a evaluar el riesgo técnico y a tomar decisiones informadas sobre el mantenimiento del software.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Cuáles son algunas métricas comunes de calidad?

A
  • Complejidad ciclomática: Mide la complejidad lógica de una función.
  • Acoplamiento: Mide la dependencia entre módulos.
  • Cohesión: Mide qué tan enfocada está una función a una tarea específica.
  • Deuda técnica: Mide el esfuerzo adicional requerido para realizar cambios en el código debido a decisiones de diseño subóptimas.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Qué es la mantenibilidad del software?

A

Es la facilidad con la que un software puede ser modificado o mejorado.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Cómo se relaciona la mantenibilidad con la calidad?

A

Un software de alta calidad es más fácil de mantener.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Qué es una herramienta de análisis de código?

A

Es una aplicación que examina el código fuente de un programa para identificar posibles errores, vulnerabilidades, ineficiencias y desviaciones de los estándares de codificación.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿Qué es el código legado?

A

Es código fuente que ha sido desarrollado y mantenido durante un largo período, a menudo utilizando tecnologías obsoletas o con una documentación escasa.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

¿Por qué es importante analizar el código legado?

A

Para comprender su funcionamiento, identificar áreas de riesgo, facilitar su mantenimiento y modernización, y prevenir errores futuros.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

¿Cuáles son los tipos principales de análisis de código?

A
  • Análisis estático: Examina el código sin ejecutarlo, identificando problemas potenciales en el código fuente.
  • Análisis dinámico: Analiza el código durante su ejecución, identificando errores que solo aparecen en tiempo de ejecución.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

¿Qué métricas se utilizan en el análisis de código?

A
  • Complejidad ciclomática: Mide la complejidad lógica de una función.
  • Acoplamiento: Mide la dependencia entre módulos.
  • Cohesión: Mide qué tan enfocada está una función a una tarea específica.
  • Deuda técnica: Mide el esfuerzo adicional requerido para realizar cambios en el código.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

¿Cuáles son algunas herramientas populares de análisis de código?

A
  • SonarQube: Plataforma de código abierto para la medición continua de la calidad del código.
  • Checkstyle: Herramienta para verificar si el código Java se ajusta a un conjunto específico de reglas de codificación.
  • PMD: Herramienta para detectar errores comunes, malos olores de código y potenciales problemas en Java, JavaScript, y otros lenguajes.
  • FindBugs: Herramienta de análisis estático que busca cientos de tipos de errores de programación en código Java.
  • Coverity: Plataforma comercial que ofrece un análisis de código estático avanzado para detectar vulnerabilidades de seguridad.
17
Q

¿Qué desafíos presenta el análisis de código legado?

A
  • Falta de documentación: Dificulta comprender el propósito del código.
  • Tecnologías obsoletas: Pueden no ser compatibles con las herramientas de análisis modernas.
  • Dependencias complejas: Pueden hacer que el análisis sea más difícil.
  • Código mal estructurado: Dificulta la identificación de patrones y dependencias.
18
Q

¿Cómo se abordan estos desafíos?

A
  • Refactorización gradual: Realizar cambios pequeños y controlados para mejorar la estructura del código.
  • Pruebas unitarias: Crear pruebas para garantizar que los cambios no introduzcan nuevos errores.
  • Herramientas de visualización: Utilizar herramientas para visualizar la estructura del código y las dependencias.