Refactoring asistido mediante la detección automática de code smells
Material type: TextDescription: 90 p. : il. + 1CD-ROMSubject(s):Item type | Current library | Call number | Status | Date due | Barcode |
---|---|---|---|---|---|
Tesis de posgrado | Biblioteca Fac.Informática | TES 14/26 (Browse shelf(Opens below)) | Consulta en Sala | DIF-04448 |
Browsing Biblioteca Fac.Informática shelves Close shelf browser (Hides shelf browser)
Tesina (Licenciatura en Sistemas) - Universidad Nacional de La Plata. Facultad de Informática, 2014.
1. Introducción -- 1.1. Contexto -- 1.2. Motivación -- 1.3. Objetivo -- 1.4. Contribuciones -- 1.5. Organización de la tesis -- 1.6. Convenciones -- 2. Trabajos relacionados -- 2.1. Background -- 2.1.2. Refactoring browser -- 2.1.3. Code smells y análisis de código -- 2.2. Trabajos de investigación -- 2.2.1, Refactorización basada en búsqueda: Code-Imp -- 2.2.2. Estrategias de detección: reglas basadas en métricas para la detección de fallas de diseño -- 2.2.3. QA en Java mediante la detección de Code Smells -- 2.3. Herramientas -- 2.3.1. IntelliJ IDEA -- 2.3.2. iPlasma -- 2.3.3. inFussion e inCode -- 2.3.4. Cincom VisualWorks -- 3. Arquitectura debase -- 3.1. El framework de refactoring -- 3.1.1. Uso de la herramienta -- 3.1.2. Creación de un nuevo refactoring -- 3.1.3. Refactorings -- 3.1.4. Condiciones -- 3.1.5. Ejecución de las transformaciones: los cambios y el modelo -- 3.1.6. Reescritura de código -- 3.1.7. Patrones de diseño -- 3.2. Small Lint -- 3.2.1. El framework de reglas lint -- 3.2.2. Ejemplo: Refused Bequest -- 3.2.3. Ejemplo: Long Class -- 3.2.4. Ejecución de las reglas -- 3.2.5. Patrones de diseño -- 4. Marco de trabajo -- 4.1. Definición de Code Smell -- 4.2. Relación entre code critics de Pharo y code smells -- 4.3. Code Smells catalogados -- 4.3.1. Dead Code -- 4.3.2. Long Parameter List -- 4.3.3. Large Class -- 4.3.4. Long method -- 4.3.5. Messege Chain -- 4.3.6. Duplicate Code -- 4.3.7. Temporary Field -- 4.4. Code Smells no catalogados -- 4.4.1. Inconsistent method classification -- 4.4.2. Escessive inheritance depth -- 4.4.3. Method defined in all subclasses but not in superclass -- 4.4.4. Rewrite super messages to self messages when both refer to same method -- 4.4.5. Refer to class name instead of self class -- 4.4.6. Variable is only assigned a single literal value -- 4.4.7. Resumen de asociación de Code Critics con Refactorings predefinidos -- 4.5. Code smells catalogados (Fowler) no implementados en Pharo -- 4.5.1. Duplicate Code -- 4.5.2. Divergent Change -- 4.5.3. Shotgun Surgery -- 4.5.4. Feature Envy -- 4.5.5. Data Clumps -- 4.5.6. Primitive Obsession -- 4.5.7. Switch Statements -- 4.5.8. Parallel Inheritance Hierarchies -- 4.5.9. Lazy Class -- 4.5.10. Speculative Generality -- 4.5.11. Middleman -- 4.5.12. Innappropriate Intimacy -- 4.5.13. Alternative Class with different Interfaces -- 4.5.14. Data Class -- 4.5.15. Refused Bequest -- 4.5.16. Comments -- 4.5.17. Resumen de Code Smells no detectados mediante Code Critics -- 5. Diseño de la herramienta -- 5.1. Diseño -- 5.1.1. Asociación de code critics con refactorings -- 5.1.2. Aplicación de un refactoring a partir del resultado de la ejecución de un critic -- 5.1.3. Precondiciones -- 5.1.4. Parámetros adicionales -- 5.1.5. Integración con el Class Browser -- 5.2. Implementacion de asociaciones entre code critics y refacto -- 5.2.1. Remove Class Not referenced -- 5.2.2. Push Down Method with Refused Bequest -- 5.2.3. Replace Variable Only Assigned a Single Literal Value with Query -- 5.2.4. Extract when Long Methd -- 5.3. Diagrama de clases de la herramienta -- 6. Uso de la herramienta -- 6.1. Ejecución de code critics para una clase -- 6.2. Menú de refactoring en Critic Browser -- 6.3. Diálogo de refactoring -- 6.4. Ejemplo de uso -- 7. Conclusiones y Trabajos Futuros -- 7.1. Conclusiones -- 7.2. Contribuciones -- 7.3. Limitaciones -- 7.4. Trabajos Futuros -- 8. Bibliografía
There are no comments on this title.