In software architecture, Wright is an architecture description language developed at Carnegie Mellon University. Wright formalizes a software architecture in terms of concepts such as components, connectors, roles, and ports. The dynamic behavior of different ports of an individual component is described using the Communicating Sequential Processes (CSP) process algebra. The roles that different components interacting through a connector can take are also described using CSP. Due to the formal nature of the behavior descriptions, automatic checks of port/role compatibility, and overall system consistency can be performed.