-
Notifications
You must be signed in to change notification settings - Fork 1
PG04_Entidades con defecto
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 | C2 | C3 | C4 | C5 | C6 |
|---|---|---|---|---|---|
Defectos dentro de clases- Medibles
| C1 | C2 | C3 | C4 | C5 | C6 |
|---|---|---|---|---|---|
| Data Class | Clase | org.jfree.chart.renderer.xy.GradientXYBarPainter | URL 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 | URL 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.category.LayeredBarRenderer | líneas 60-400 URL GitHub | NLOC alto, complejidad alta, baja cohesión | Detectado con InCode |
| God Class | Clase | org.jfree.chart.renderer.category.StatisticalLineAndShapeRenderer | líneas 78-350 URL GitHub | NLOC alto, VG alto | Detectado con InCode |
| God Class | Clase | org.jfree.chart.renderer.category.StackedBarRenderer | líneas 70-300 URL GitHub | NLOC alto, NOM alto | Detectado con InCode |
| God Class | Clase | org.jfree.chart.renderer.xy.StackedXYAreaRenderer | líneas 90-350 URL GitHub | NLOC alto, LCOM alto | Detectado con InCode |
Defectos dentro de clases - Duplicación
| C1 | C2 | C3 | C4 | C5 | C6 |
|---|---|---|---|---|---|
| Internal Duplication | Clase | org.jfree.chart.renderer.xy.XYLineAndShapeRenderer | URL GitHub | Bloques de código similares | Detectado con InCode como duplicación interna |
| External Duplication | Clase | org.jfree.chart.renderer.category.StatisticalBarRenderer | URL GitHub | Similitud con otras clases del paquete renderer | Detectado con InCode como duplicación externa |
Defectos dentro de clases - Lógica condicional
| C1 | C2 | C3 | C4 | C5 | C6 |
|---|---|---|---|---|---|
Defectos entre clases - Datos
| C1 | C2 | C3 | C4 | C5 | C6 |
|---|---|---|---|---|---|
| Data Clump | |||||
| Método | org.jfree.chart.renderer.category.GanttRenderer.drawTask | Líneas 377 - 506 | (https://github.com/jfree/jfreechart/blob/master/src/main/java/org/jfree/chart/renderer/category/GanttRenderer.drawTask.java) | NP = 9 (Número de parámetros). |
VG ≈ 17 (Complejidad ciclomática).
NLOC ≈ 110 (Líneas de código efectivas). |Se confirma el diagnóstico de inCode: los parámetros plot, domainAxis, rangeAxis, dataset, row y column se pasan juntos sistemáticamente, lo que indica una falta de abstracción de "Contexto de Dibujo" | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
Defectos entre clases – Herencia
| C1 | C2 | C3 | C4 | C5 | C6 |
|---|---|---|---|---|---|
Defectos entre clases – Responsabilidad
| C1 | C2 | C3 | C4 | C5 | C6 |
|---|---|---|---|---|---|
| Feature Envy | Método | org.jfree.chart.renderer.category.StatisticalLineAndShapeRenderer.drawItem | líneas 120-250 URL GitHub | CBO alto, uso intensivo de datos externos | Detectado con InCode |
| Feature Envy | Método | org.jfree.chart.renderer.xy.ClusteredXYBarRenderer.drawItem | líneas 150-280 URL GitHub | CBO alto, acceso frecuente a datos de otras clases | Detectado con InCode |
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 |
|---|---|---|---|---|---|
| C1 | C2 | C3 | C4 | C5 | C6 |
|---|---|---|---|---|---|
- Objetivos y requisitos
- Enunciado
- Resultados obtenidos por los estudiantes
- Objetivos y requisitos
- Enunciado
- Resultados obtenidos por los estudiantes
- Objetivos y requisitos
- Enunciado
- Resultados obtenidos por los estudiantes