Reusable Architecture Templates and Automatic Specification Mapping for the Efficient Implementation of ATM Protocols