Design patterns aid in documenting and communicating proven design solutions to recurring problems. They describe not only how to solve design problems, but also why a solution is chosen over others and what trade-offs are made. Non-functional requirements (NFRs) are pervasive in descriptions of design patterns. They play a crucial role in understanding the problem being addressed, the trade-offs discussed, and the design solution proposed. However, since design patterns are mostly expressed as informal text, the structure of the design reasoning is not systematically organised. This paper proposes a systematic treatment of NFRs in descriptions of patterns and when applying patterns during design. The approach organises, analyses and refines non-functional requirements, and provides guidance and reasoning support when applying patterns during the design of a software system. Three design patterns taken from the literature are used to illustrate this approach.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Gross, D., Yu, E. From Non-Functional Requirements to Design through Patterns. Requirements Eng 6, 18–36 (2001). https://doi.org/10.1007/s007660170013
Issue Date:
DOI: https://doi.org/10.1007/s007660170013