L'architecture logicielle englobe la structure et la documentation d'un système, ainsi que les éléments et les relations entre ceux-ci. Elle nécessite une gestion efficace par des architectes logiciels et s'inscrit dans l'évolution des méthodes de gestion de projet telles que l'agilité et le développement itératif. Le document décrit également les étapes du parcours d'un étudiant vers l'expertise en architecture logicielle, de l'apprentissage de la programmation à la production de code réutilisable.