I have document THAT?
The package description
Es el lugar en el cual se explica como empezar y en que hace el paquete (package), cuales son las abstracciones clave y cómo explorarlo.
Bad documentation == bad code
La documentación forma parte del código, por lo tanto, un buen código con una mala documentación se puede considerar cómo un mal código ya que no es reutilizable (solo lo entiende aquel que escribió el código)
Return codes
Descripción de los valores de retorno, ésta debe contener una descripción detallada del rango de los valores que van a ser retornados.
Preconditions, postconditions, and invariants
Una precondición es una restricción sobre el estado del objeto antes de que se llame el método.
Una postcondición, es una restricción en el estado del objeto después de que se haya completado la llamada de un método.
Una invariante es una restricción sobre el estado del objeto que garantiza que sea verdad en todo momento
Method linkage
Significa que dos métodos en una clase dependen uno del otro y hacen suposiciones de la conducta del otro.
The Class Documentation
Incluye una descripción de lo que hace en particular la clase (class) pero también describe como esa clase se relaciona con otras clases que están en el paquete.
So what constitutes good documentation?
Una buena documentación tiene cómo base, las descripciones de las clases junto que con sus relaciones entre sí, la descripción del paquete (qué hace) y todo esto acompañado con ejemplos de entrada y salida.
Exceptions
En este se especifican las excepciones o valores que pueden generar errores.
Side effects
Los efectos secundarios son la modificación del estado de los objetos relacionados.