A formal description technique and an environment for protocol engineering