📘 Técnicas de documentación de sistemas con JavaDoc

La documentación es una parte crítica en el desarrollo de software. En proyectos profesionales —especialmente aquellos construidos con lenguajes como Java— documentar correctamente no es opcional: es lo que permite que un sistema sea entendible, mantenible y escalable.

A continuación se muestra cómo documentar sistemas usando JavaDoc, no solo desde lo técnico, sino también desde un enfoque estructurado y profesional.

📘 ¿Qué es JavaDoc?

JavaDoc es una herramienta incluida en el JDK de Java que permite generar documentación automática en formato HTML a partir de comentarios en el código fuente.

👉 Se usa para:

  • Documentar clases, métodos y atributos

  • Facilitar mantenimiento del código

  • Generar documentación profesional tipo API


🧠 Estructura básica de JavaDoc

Los comentarios JavaDoc se escriben así:

/**
 * Descripción general
 */

🧱 Ejemplo básico

/**
 * Clase que representa un empleado.
 * Contiene información básica y cálculo de salario.
 */
public class Empleado {

    private String nombre;
    private double salario;

    /**
     * Constructor de la clase Empleado
     * @param nombre Nombre del empleado
     * @param salario Salario base del empleado
     */
    public Empleado(String nombre, double salario) {
        this.nombre = nombre;
        this.salario = salario;
    }

    /**
     * Calcula el salario anual
     * @return salario anual
     */
    public double calcularSalarioAnual() {
        return salario * 12;
    }
}

🏗️ 2. Tipos de documentación en un sistema

Antes de entrar a JavaDoc, es importante entender el contexto:

📚 Tipos principales

1. Documentación funcional

Describe qué hace el sistema (para usuarios)

2. Documentación técnica

Describe cómo funciona el sistema internamente

👉 Aquí es donde entra JavaDoc

3. Documentación de API

Describe endpoints (muy común en Spring Boot)

🧱 4. Estructura de documentación con JavaDoc

📌 Nivel 1: Clase

/**
* Representa un empleado dentro del sistema.
* Contiene atributos y operaciones relacionadas con su salario.
*/
public class Empleado {
}

👉 Aquí se describe:

  • Responsabilidad de la clase
  • Contexto dentro del sistema

📌 Nivel 2: Atributos

/** Nombre del empleado */
private String nombre;

👉 Se documenta:

  • Significado del dato
  • Uso dentro del sistema

📌 Nivel 3: Métodos

/**
* Calcula el salario anual del empleado.
*
* @param salarioMensual salario base mensual
* @return salario anual calculado
*/
public double calcularSalarioAnual(double salarioMensual) {
return salarioMensual * 12;
}

👉 Este es el punto más importante de JavaDoc:

  • Define contratos
  • Explica comportamiento

🏷️ Etiquetas más usadas en JavaDoc

📌 @param

Describe parámetros de un método o constructor

@param nombre descripción del parámetro

📌 @return

Describe lo que retorna el método

@return resultado del cálculo

📌 @throws o @exception

Describe excepciones que puede lanzar el método

@throws IllegalArgumentException si el salario es negativo

📌 @author

@author TuNombre

📌 @version

@version 1.0

📌 @see

Referencia a otra clase o método

@see Empleado

📌 @since

Desde qué versión existe

@since 2026

🧩 Ejemplo completo (nivel profesional)

/**
 * Representa un empleado dentro del sistema.
 * Permite calcular salario anual y validar datos.
 * 
 * @author Edvin
 * @version 1.0
 * @since 2026
 */
public class Empleado {

    private String nombre;
    private double salario;

    /**
     * Crea un nuevo empleado.
     * 
     * @param nombre Nombre del empleado
     * @param salario Salario mensual
     * @throws IllegalArgumentException si el salario es negativo
     */
    public Empleado(String nombre, double salario) {
        if (salario < 0) {
            throw new IllegalArgumentException("Salario inválido");
        }
        this.nombre = nombre;
        this.salario = salario;
    }

    /**
     * Calcula el salario anual del empleado.
     * 
     * @return salario anual calculado
     */
    public double calcularSalarioAnual() {
        return salario * 12;
    }
}

🧠 7. Técnicas profesionales de documentación

Aquí es donde pasamos de “comentar código” a documentar sistemas de verdad:


🎯 1. Documentar intención, no obviedades

❌ Malo:

// suma dos números

✅ Bueno:

/**
* Calcula el total incluyendo impuestos aplicables según la región.
*/

🎯 2. Documentar contratos

Explicar claramente:

  • Qué recibe
  • Qué devuelve
  • Qué errores puede lanzar

🎯 3. Documentar reglas de negocio

/**
* Aplica descuento solo si el cliente es VIP.
*/

👉 Esto es oro en sistemas reales


🎯 4. Documentar excepciones

@throws IllegalArgumentException si el salario es negativo

🎯 5. Mantener consistencia

Toda tu aplicación debe tener:

  • Mismo estilo
  • Mismo nivel de detalle
  • Misma estructura

🚀 9. JavaDoc en sistemas modernos (Spring Boot)

En proyectos con Spring Boot:

👉 JavaDoc se usa para:

  • Services (lógica de negocio)
  • Models (entidades)
  • Controllers (documentación básica)

👉 Pero se complementa con:

  • Swagger (documentación de API REST)

⚙️ ¿Cómo generar la documentación?

Desde consola:

javadoc -d doc *.java

👉 Esto genera:

  • Carpeta doc

  • Archivos HTML navegables tipo página web


📂 Resultado generado

Incluye:

  • Índice de clases

  • Métodos documentados

  • Descripciones

  • Navegación tipo API profesional


🧠 Buenas prácticas

✔ Documentar:

  • Clases públicas

  • Métodos importantes

  • Interfaces

❌ Evitar:

  • Documentar código obvio

  • Repetir lo que ya dice el nombre del método

✔ Usar lenguaje claro y profesional
✔ Mantener consistencia


💡 Ejemplo aplicado a POO

En herencia:

/**
 * Clase base Empleado
 */
public class Empleado {
    public double calcularSalario() {
        return 0;
    }
}

/**
 * Clase Programador que hereda de Empleado
 */
public class Programador extends Empleado {

    /**
     * Sobrescribe el cálculo de salario
     * @return salario del programador
     */
    @Override
    public double calcularSalario() {
        return 1000;
    }
}

🎯 Conclusión

JavaDoc no es solo una herramienta, es una técnica formal de documentación de sistemas.

Bien utilizada:

  • Reduce errores
  • Mejora el trabajo en equipo
  • Facilita mantenimiento
  • Profesionaliza tu código


Comentarios