Ubicomp applications are characterized as situation-aware, frequently-and-ephemerally-communicated and QoS-properties-associated. Using middleware to provide multiple QoS support for these ubicomp applications will enhance the development of the ubicomp applications. To satisfy the different QoS requirements of various applications in ubicomp environments, which are heterogeneous and resource-variant, it is important for the underlining middleware to adapt to different QoS requirements and environments. Situation-Aware Contract Specification Language (SA-CSL) specifies the QoS requirements of the applications. The specification includes requirements in situation-awareness, real-time constraints and security properties. This specification is used to customize the middleware architecture to better satisfy these requirements. SA-CSL is based on the Separation of Concern (SoC) discipline used in the Aspect-Oriented Software Development (AOSD). It specifies the crosscutting aspects of situation-awareness, real-time constraints and security property separately. Because of the object-oriented design, SA-CSL is open for incorporating new QoS properties specification.