ABSTRACT

Design patterns are a well-known technique for organising the structure of a software system in order to achieve quality or efficiency goals [3]. Several design patterns are built-in to UML-RSDS and are automatically incorporated into systems synthesised using the tools. Other patterns can be optionally selected by the developer, and there are further patterns which are recommended for UML-RSDS developments, but which need to be manually encoded. Refactorings are system restructurings which aim to improve the quality of the system specification or design, whilst preserving its semantics [2].