Skip to content

PG04_Entidades con defecto

RSS1013 edited this page Apr 20, 2026 · 36 revisions

En este apartado se presentan un conjunto de entidades de código con defectos identificadas. Para la identificación de defectos se utilizan herramientas específicas (InCode y PMD), herramientas de medición y valores umbrales (SourceMeter y RefactorIT) e inspecciones de código manual.

Por cada instancia del defecto identificada se debe crear una fila con la siguiente información: C1: Nombre del defecto. C2: Tipo de la entidad [subsistema|clase|método]. C3: Nombre único (cualificado) de la entidad anómala. Un mismo defecto puede involucrar varias entidades, una fila por cada una. C4: Rango de líneas de código donde aparece e hiperenlace al código fuente de la entidad del repositorio público
C5: Conjunto de métricas e intervalos utilizados para su identificación si existen. C6: Otras consultas aplicadas para la detección.

C1: Defecto C2: Tipo C3: Entidad C4: Líneas C5: Métricas C6: Observaciones
God Class Clase AbstractXYItemRenderer 1-1200 NLOC alto, NOM alto, LCOM alto Detectado con InCode
Feature Envy Método XYItemRenderer.drawItem() 200-350 CBO alto, LCOM bajo Acceso intensivo a otras clases
Data Class Clase GradientXYBarPainter 1-200 NOA alto, baja lógica Uso de getters/setters
Data Clumps Método StatisticalBarRenderer 100-200 NP repetido Parámetros repetidos
Duplicación Método XYLineAndShapeRenderer 300-400 Código duplicado Detectado como duplicación interna
Long Method Método BoxAndWhiskerRenderer.draw() 150-400 NLOC alto, VG alto Método largo y complejo

Paquetes con defectos

C1 C2 C3 C4 C5 C6

Clases con defectos

Defectos dentro de clases- Medibles

C1 C2 C3 C4 C5 C6
Data Class Clase org.jfree.chart.renderer.xy.GradientXYBarPainter Verificar en GitHub NOA alto, baja lógica propia Detectado con InCode; clase centrada principalmente en datos y comportamiento simple
Data Class Clase org.jfree.chart.renderer.category.GradientBarPainter Verificar en GitHub NOA alto, baja complejidad funcional Detectado con InCode; predominan atributos y comportamiento poco complejo

Defectos dentro de clases- Complejidad innecesaria

C1 C2 C3 C4 C5 C6
God Class Clase org.jfree.chart.renderer.xy.AbstractXYItemRenderer Verificar en GitHub NLOC alto, NOM alto, LCOM alto Detectado con InCode; concentra demasiadas responsabilidades
God Class Clase org.jfree.chart.renderer.xy.XYLineAndShapeRenderer Verificar en GitHub NLOC alto, complejidad elevada, cohesión reducida Detectado con InCode
God Class Clase org.jfree.chart.renderer.category.StatisticalBarRenderer Verificar en GitHub NLOC alto, NOM alto Detectado con InCode
God Class Clase org.jfree.chart.renderer.category.BoxAndWhiskerRenderer Verificar en GitHub NLOC alto, complejidad estructural alta Detectado con InCode

Defectos dentro de clases - Duplicación

C1 C2 C3 C4 C5 C6

Defectos dentro de clases - Lógica condicional

C1 C2 C3 C4 C5 C6

Defectos entre clases - Datos

C1 C2 C3 C4 C5 C6

Defectos entre clases – Herencia

C1 C2 C3 C4 C5 C6

Defectos entre clases – Responsabilidad

C1 C2 C3 C4 C5 C6

Defectos entre clases- Adecuación al cambio

C1 C2 C3 C4 C5 C6

Defectos entre clases- Biblioteca de clases

C1 C2 C3 C4 C5 C6

Métodos con defectos

C1 C2 C3 C4 C5 C6

PG_C02 Caracterización de aplicaciones de código con Formato ISO 9126


PG03_Valores umbrales de medidas de código


PG_C04 Evaluación de la facilidad de mantenimiento. Identificación de defectos de código.

Clone this wiki locally