The modeling elements of software architecture can be classified, and the classification is in fact a higher level of abstraction. In order to represent these abstraction levels, both of the software architecture template layer and the software template instance layer were defined by the template mechanism, and the basic conceptions in the two layers were explained. Then, the template-based software architecture description language (TADL) was defined using UML profile mechanism, which was extended from UML2.0. Many UML2.0 modeling elements and mechanism were reused by the <> in TADL. The design requirement, definition technology and profile of TADL were explained. Further more, the modeling basic principles and guidelines of TADL were proposed to model software architecture patterns and software architecture, and a modeling example of ATM(automatic taller machine) was given to explain these.