With the emergence of the Object Management Groups CORBA (Common Object Request Broker Architecture) and comparable platforms heterogeneous and distributed computing is facilitated. Providing location-, language-, and platform-transparency, CORBA promotes the independent development of software components and standardizes the interaction between components. However, the design of entire software architectures for distributed component-oriented software systems with complex client-server relationships is still a major problem. In this paper we consider an approach to describe the architecture of distributed software systems. This approach is based on a component model of software which contains additional information about distribution. Rather than describing the distribution properties within a component most of these properties are stated with the use relation between components which may be local or remote. We sketch how this design description can be transformed into a distributed object-oriented implementation according to OMGs CORBA standard. We discuss how a performance model can be derived systematically from an architecture description. Thus the design of complex, hierarchically structured distributed software systems can be assessed wrt. response time of remote operation invocations, for example.