Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Presentacion Final Version
Presentacion Final Version
Motivacin: Construccin de jerarquas de clases Anlisis de Conceptos Formales Desarrollo de la Metodologa Implementacin: Jernimo Casos de Estudio: Collections y Swing Anlisis de Resultados: Patrones de codificacin Lecciones Aprendidas Conclusiones
Herencia
Tipos :
Implementacin / Subclasificacin Interfaz Clase
Reingeniera
Patrones de Codificacin de Jerarquas de Clases en Aplicaciones Orientadas a Objetos 3
Clase A
a1 m1 { } m2 { } m3 { this.m1}
Clase C
a2 a3 m6 { this.m1 } m7 { this.m2 }
m4 { this.m1 } m5 { this.m2 }
Clase D
m8 { a1 } m4 { super.m4 }
Clase E
m9 { a2, a3 } m6 { super.m6 }
Deteccin no trivial
Documentacin desactualizada No explcitos en el cdigo fuente.
Qu esconden?
Definiciones, utilizaciones, reutilizaciones,
extensiones, cancelaciones
Es una herramienta que permite identificar grupos de elementos que tienen propiedades comunes. Elementos importantes
Tabla de incidencia Concepto Lattice
Patrones de Codificacin de Jerarquas de Clases en Aplicaciones Orientadas a Objetos
Rock
Jos Juan Ana Camila Pedro Mara Nicols Gastn X X X X
Pop
Jazz
X X X X X X X X X X
X X
Jerarqua de clases
Tabla de incidencia
Patrones
Propiedades Lattice
10
Qu son?
Conjunto de caractersticas
Para qu sirven?
Extraccin de informacin Agrupadas conforman patrones
Cmo se detectan?
Patrones de Codificacin de Jerarquas de Clases en Aplicaciones Orientadas a Objetos 11
Ejemplo
Concreto en ancestro X
12
Qu son?
Conjunto de propiedades
Tipos
Buenas prcticas Prcticas irregulares Malas prcticas
13
Ejemplo
Comportamiento concreto local redefinido
14
Anlisis de cdigo fuente Extraccin de propiedades Construccin de la tabla de incidencia y el lattice Inferencia de patrones
Clculo de mtricas
Patrones de Codificacin de Jerarquas de Clases en Aplicaciones Orientadas a Objetos 15
16
Construccin de un metamodelo del cdigo fuente Se utiliz una biblioteca de terceros: Recoder
Cdigo fuente
Metamodelo
17
Caractersticas consideradas
Ubicacin de la declaracin Tipo de invocacin Mtodos de acceso a estado,
Propiedades
18
Propiedades
Se utiliz y extendi la biblioteca de ACF Colibri Construccin de la tabla de incidencia a partir de las propiedades detectadas Usando la tabla de incidencia se construye el lattice
19
Tabla de incidencia
Lattice
Dos fases:
1. Bsqueda automtica de instancias
Lattice
Patrones
20
Mtricas
22
23
El nombre del mtodo size() coincide con el nombre de la variable de instancia size.
24
25
Tipos de patrones
Tipos de patrones Buenas Prcticas
8
5
17
10
3
0
5
2
26
Collections vs Swing
Elementos
40000 30000 20000 10000 0 Collections Swing 200 150 100 50
Propiedades
Densidad
0 Collections Swing
27
80%
658
60%
Malas Prcticas
48 56
40%
20%
543
0%
Collections
Swing
28
Volumen de informacin
Patrones de Codificacin de Jerarquas de Clases en Aplicaciones Orientadas a Objetos 29
30
Definicin de Superpatrones Ampliar informacin de las propiedades Continuar con el anlisis de resultados Analizar cuerpo de los mtodos Incorporar propiedades negativas
Patrones de Codificacin de Jerarquas de Clases en Aplicaciones Orientadas a Objetos 31
Construccin de jerarquas de clases Anlisis de Conceptos Formales Desarrollo de la Metodologa Implementacin: Jernimo Casos de Estudio: Collections y Swing Patrones de codificacin
32