La documentación de software es esencial para el entendimiento y la reutilización del código. Una buena documentación debe incluir descripciones detalladas de las clases y sus interrelaciones, así como una clara explicación del paquete y ejemplos de entrada y salida.
Los efectos secundarios son la modificación del estado de los objetos relacionados.
Exceptions
En este se especifican las excepciones o valores que pueden generar errores.
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.
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.
Method linkage
Significa que dos métodos en una clase dependen uno del otro y hacen suposiciones de la conducta del otro.
Preconditions, postconditions, and invariants
Una invariante es una restricción sobre el estado del objeto que garantiza que sea verdad en todo momento
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 precondición es una restricción sobre el estado del objeto antes de que se llame el método.
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.
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)
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.