Cette réflexion doit permettre de répondre entre autres à deux questions essentielles en matière d'architecture logicielle : Est-ce que le logiciel doit répondre rapidement ? Quel volume de données doit-il traiter ? Mais permet également se savoir si ces données doivent-elles être centralisées ou réparties ?
L'architecture d'un logiciel
Elle décrit les principaux éléments qui composent le logiciel, ainsi que les flux d'échanges entre ces éléments.
Elle permet à l'équipe de développement d'avoir une vue d'ensemble de l'organisation du logiciel, et constitue donc en elle-même une forme de documentation.