Le logiciel est un ensemble d'objets, UML préconise de structurer toute application pensée et conçue en objet sous forme de couches, c'est-à-dire répartir les objets de l'application dans les couches selon leurs natures.
Un objet de dialogue avec l'utilisateur doit figurer dans les couches les plus hautes, alors qu'un objet concernant les caractéristiques d'un "client" et qui sont stockées dans une table, "Microsoft Access" par exemple, doit être dans les couches les plus basses.