Software architectural design is essential for complex distributed applications. Architectural specifications need to define the key aspects of the application, including its intended functions, interfaces, interoperability requirements, distributability; scalability, extensibility, target platforms and networks, and required middleware services. The authors present an architectural extension for specifying distributable components of the application and for quantifying their interaction patterns. The goal of the specification is to serve as the basis for obtaining optimal distributions of the application components over a target network that minimizes remote communication among the components. The optimal distributions are obtained by using the architectural specification to derive a BIP (binary integer programming) model and solving the resulting system. They formalize the object-oriented architectural style using the Z specification language. This style defines the detailed information necessary to derive optimal distributions using the BIP model.