Software architectures shift the focus of developers from lines-of-code to coarser-grained architectural elements and their overall interconnection structure. Architecture description languages (ADL) have been proposed as modeling notations to support architecture-based development. There are, however, many features of the distributed software which make the development methods of distributed software quite different from the traditional ways. Furthermore, the, traditional centralized ways with fixed interfaces are unable to adapt to the flexible requirements of distributed software. Our goal is to provide some solutions to these problems. In this paper, the AG (which stands for "attributed grammar") is first extended to refine the characters of distributed software, and then we define a BNF expression to describe the architecture of a distributed software.