What are the benefits of systematic software reuse?
Systematic software reuse is one great strategy for increasing productivity and improving quality in the software.
The reuse of software is one way to not “reinvent the wheel” all time that you will develop one new software or new functionality. So you can take that advantage of what already been developed.
Reuse isn't simple, but it reduce duplicate code and improve the velocity in one big project.
How do patterns and frameworks help enable systematic reuse?
Patterns show one solution for commons problems in software development. With patterns, you can take advantage of knowledge of experts that already validated this pattern. It's likely that someone has already had the same problem as you find in development and created one solution to attend so generic this problem.
Frameworks use the patterns in one specific domain to allow you to develop your application based from patterns, taking features from framework.
With patterns and frameworks you can enable systematic reuse, because the patterns are design to:
Modularize the software application, in other words, make your application divided in parts, and you can reuse each part to form other parts.
Create flexibility and extensibility, it is, create class, abstract class and functions that can easily reused in other parties of the software.
Frameworks and patterns forces you apply this patterns, and is implicit for you that you should reuse parts of your code, and framework's code.
Without frameworks you will lost much time creating features that just exists available for you.