But even this does not always provide sufficient information for designers and implementors to ensure that components in open systems behave as desired. A new interface-compatible component may not actually interoperate with an existing one if it fails to send the same kinds of messages to other components in the course of providing services. The remainder of this paper describes PSL, a framework for specifying the dynamic and architectural properties of open systems. These include the special properties in and out describing the reception and issuance of messages. Situations are contexts in which attributes assume particular values.
Constraints describe invariant relationships among the values of attributes.
PSL specifications document sets of properties and constraints without claiming that these fully describe a system, or ruling out the existence of unmentioned components, situations, or events. These omissions make way for the kinds of refinement and extensibility necessary in the development of open systems. As a basis for specification, PSL relies on any framework for declaring interfaces, operations, and pure value types such as integers, records, etc. Predicates are boolean expressions. Within expressions, commas may be used as low-precedence and separators.