Pi-SPACE: A Formal Architecture Description Language Based on Process Algebra For Evolving Software Systems Reconfiguration, Architectural Evolution A critical aspect of the design of any large software system is its global structure, that is, the high level organisation of computational elements and the interactions between those elements. The underlying idea of software architecture is that better software systems can be achieved by modelling this high level organisation during design. Large software systems are always at the design stage in the sense that there is always the potential for new requirements to trigger the need for the system design to evolve. A software architecture can assist by providing a high level understanding of the scope and nature of such evolutions. The architecture therefore must provide an understanding of the components in a system, and the connectors which link those components. Further the architecture must provide an understanding of how the system can be decomposed into constituent components and connectors, and how the system can be recomposed after components and connectors have been added, deleted or replaced. To provide effective support for such evolution, an architecture description language must cope with dynamism and evolution. It must be able to describe the changing configuration of components and connectors on the fly during run time. It must be possible to incorporate new components and connectors which were not defined when the system was initially created. This paper presents an architecture description language (ADL), called Pi-SPACE, designed to cope with requirements on dynamism and evolution. Pi-SPACE provides constructs for describing architectures based on the Pi-Calculus. It supports the adding, replacing and removing of components and connectors in an evolving software system. It provides facilities for reasoning about both functional and non-functional properties. Applications of Pi-SPACE are motivated by work on the relationships between business processes (including software development) and the software systems which support them. Businesses need flexible software that enhances their ability to adapt and survive in changing markets, rather than legacy systems that restrict their business decisions.