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