-
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: 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 |
| 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, uso de datos externos | 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 |
|---|---|---|---|---|---|
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