Software Architecture

Garlan loosely defines architecture as a software system's gross organization as a collection of interacting components.
He recognizes six aspects of software development where architecture can play an important role: