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 .