ソフトウェアドキュメンテーション
ユーザー文書はソフトウェアの契約の一部を構成する。
ユーザー文書の形式として広く採用されている3つの形式がある。チュートリアル形式は新規ユーザーにとっては最も便利であり、特定のタスクを手順を追ってガイドしてくれる。テーマごとの文書形式は、章や節ごとに特定のテーマを解説したものであり、中級ユーザー向けと言える。最後の形式は、コマンドやタスクを単純に辞書的順序で並べたもので、通常それぞれの項目に関連項目への相互参照が記されている。これは自分がどういう情報を求めているか判っている上級ユーザー向けといえる。実際の製品では、これら3つの形式の文書が同時に付属することはあまりないため、ユーザーがその点に不満を持つこともある。
ユーザー文書の提供形式として、パーソナルコンピュータ上のオンラインヘルプしか用意せず、コマンドやメニュー項目に関する情報しか与えないということも多い。この場合、チュートリアルや詳細な情報は、ソフトウェア開発者から特別な支援を受けた出版業者が書籍の形で販売することが多い。
設計文書は様々な形式がある。どのように(HOW)使うのかよりも、なぜ(WHY)そのように設計されているかを解説することに注力していることが多い。例えば、データ構造がそのようになっている背景となる原理を解説したり、特定オブジェクトのメンバー関数をリストアップしたり、コードの追加方法を記述したりする。あるクラスがなぜそのように構成されているかを説明し、パターンを示し、よりよい方法の概略を提案したり、今後の改善を提案したりする。これらは、コードに関する文書やユーザー向け文書には不適切だが、設計にとっては重要である。
アーキテクチャ文書は設計文書の特殊例である。ある意味で、アーキテクチャ文書はコードからの第3の生成物(第1はコードに関する文書、第2は設計文書)である。アーキテクチャ文書にはコードに固有な部分はほとんどない。特定のルーチンのプログラム方法を説明することはほとんどなく、あるルーチンがなぜ現在のような形になっているかさえ説明しない。代わりにそのルーチンの存在意義や動機となった要求仕様などを解説する。