Distributed systems : architecture-driven specification using extended LOTOS