DOCUMENTACIÓN
Proceso por el cual se recopila información relevante del proyecto que se está desarrollando.
- Facilita la prevención y detección de errores
- Proyecto debe estar documentado para facilitar al personal que participa en el mismo.
- Se debe desarrollar en todas las etapas del desarrollo del proceso.
EXTERNA
- Fuera del código
- Relativa a procesos de análisis-diseño o manuales de usuario.
INTERNA
- Dentro del código
- Relativa a la programación
Proceso complejo y ayuda a:
- Facilita la reusabilidad
- Facilita la comprensión del código
- Facilita la depuración
TIPOS DE COMENTARIOS
- Repiten el código
- Explican el código
- Marcan el código
- Describen el propósito del código
JAVA
// Una línea
(Repetir/explicar sentencias)
/* LINEAS *
* LINEAS */
(Explican algoritmos/bloques de código)
/** DOCUMENTACIÓN
JAVADOC
*/
(Generar documentación automática)
JAVADOC
- Genera automáticamente la documentación a partir del código fuente en JAVA.
- Permite aunar documentación e implementaciones
Objetivo
- Control simple sobre cambios
- Documentación en HTML.
COMENTARIOS
- Comentario a incluir
/** TEXTO */
- Comentarios para el programador
// COMENTARIO DE UNA LÍNEA
/* COMENTARIO DE MÚLTIPLES LÍNEAS
DEBE APARECER JUSTO ANTES DEL CÓDIGO A DOCUMENTAR
- Antes de la clase
- Antes del método
Se realiza una explicación de lo que hace el método o para que requiere la clase.
Se incluyen las etiquetas (necesarias)
@author - Programador/a
@param - Parámetro de entrada
@return - Valor de salida
@see - Enlace a otra clase/método
@throws - Excepciones a ser tratadas
@version - Versión del método/clase
UTILIZA PRE Y POST CONDICIONES
Precondiciones : requisitos de entrada
Postcondiciones : estado final a la salida (objeto)
REFACTORIZACIÓN
FACTORIZACIÓN
- Sacar factor común
OBJETIVO
- Simplificar cálculos matemáticos
Técnica para reestructurar el código fuente, modificando la interna, sin alterar su comportamiento externo.
ESTRUCTURA INTERNA
- Dentro del código
- Lo que maneja el programador
- Código fuente
COMPORTAMIENTO EXTERNO
- Fuera del código
- Lo que ve el usuario
- Consola/interfaz gráfica
LIMPIEZA DE CÓDIGO
- Facilitar su lectura
- Facilitar el mantenimiento para:
Buscar errores.
Añadir características
Mejorar el rendimiento
REESTRUCTURACIÓN DEL CÓDIGO
Mejora el diseño
Facilitar el mantenimiento
Suprimir código innecesario
TÉCNICAS DE REFACTORIZACIÓN
Conjunto de herramientas
- No existe un orden
- No siempre se usan las mismas
- El programador debe decidir en cada momento cuál es adecuada
CATEGORÍAS DE REFACTORIZACIÓN
TÉCNICAS DE REFACTORIZACIÓN
NIVEL MÉTODO
EXTRACCIÓN DE MÉTODO
- Dividir método en varios
- Aumenta la reutilización de código
- Cuidado con el uso de parámetros y variables
REFACTORIZACIÓN EN LÍNEA
- Incluir el código de 2 método en uno
- Proceso inverso al de extracción inverso
- Útil para métodos que no aportan valor
- Cuidado con que el método no esté llamado desde otro sitio
ELIMINAR VARIABLES TEMPORALES
- Dificulta la depuración
- Extraer la expresión que calcula el valor de la variable a un método sencillo y retornarlo
- Aumento de reusabilidad de código
- Cuidado que la variable no aparezca en más lugares
AÑADIR VARIABLES TEMPORALES
- Divide una variable temporal
- Introduce una variable explicativa
- Quita asignaciones a parámetros
MOVER MÉTODOS DE UNA CLASE A OTRA
- Revisar el código
- Comprobar superclase/subclase
- Renombrar método
- Reemplazar llamadas
CONDICIONALES
DEBEN LEERSE FÁCILMENTE
DESCOMPONER UN CONDICIONAL
- Crear un método con dicha expresión
- Crear método con acciones a realizar por if/else
- Código resultante será más legible y se encapsula en métodos sus acciones. Así reusarse y facilitar la depuración.
CONSOLIDAR LA EXPRESIÓN CONDICIONAL
- Cuando existen varios condicionales que devuelven un mismo valor resulta útil unificarlos en una expresión.
NIVEL CLASE
REFACTORIZACIÓN DE MOVER CAMPOS
- Antes de mover campos
- Usar getters y setters
- No acceder a variables sino a través de getters y setters
¿QUÉ NO ES REFACTORIZAR?
NO es buscar errores en código
- El código ya debe funcionar
- Eso es depurar
- Sin embargo facilitará la depuración
NO es buscar errores en código
- No es aumentar la velocidad del programa
- Eso es optimizar el software
- Es aumentar el rendimiento del programador
NO es añadir funcionalidades
- No cambiamos el comportamiento observable del código
- Útil para el mantenimiento
Pasos a seguir:
CODIFICACIÓN
Escribir el código
DEPURACIÓN Y PRUEBA
Verificar que hace lo que se desea
REFACTORIZACIÓN
Adaptación del código para hacerlo más legible y facilitar su mantenimiento