Una documentazione unica non credo esista.

Bisogna leggere parti di diversi libri (soprattutto di ingegneria del software), fare ricerche su internet e leggere le porzioni di informazioni utili.

Per farti un'idea (solo un'idea) applicata a .NET, leggi questo .