Software patterns are a mechanism for capturing domain knowledge in a way that allows it to be reapplied when a new problem is encountered.
In some cases, that knowledge is applied to a new problem within the same domain. In other cases, the domain knowledge captured by a pattern can be applied by analogy to a completely different application domain.
You generally do not go out to create a pattern. Rather, you find it as you have created your application and are documenting the process – seeing how it can be applied to other systems and projects.
Requirements analysis takes time, but it’s faster than solving the wrong problem. The larger the problem, the more time needs to be spent on analysis.
Patterns for Requirements Modeling was originally found on Access 2 Learn