I dont think, just by implementing design patterns, we can address NFRs. Though in case of Performance I can definitely have my class diagram following proper J2EE design patterns like session facade, or service locator caching home/remote references to avoid multiple lookups but that will not be enough.
What I would do instead is as follows:
Performance
Class Diagram:
1> Draw class diagram following J2EE design patterns [as given above]
2> Display some specific performance monitoring classes like Aspect Oriented Programming classes for performance and then comment on how they help segregate the code and help improve performance.
3> Talk about how performance
test will be perform simulating production load in testing environments to identify performance bottlenecks before code reaching production.
Availability:
Deployment diagram:
1> Draw deployment diagram with multiple instances of servers balanced by load balancer.
2> Draw failover nodes.
2> Draw other clustered back end environment.
3> Talk about how the hot fix process will be set to perform rolling bounce of production servers [bouncing servers one after the other and not bounce everything together] to have 24*7 availability.
I think NFRs have to be managed by software and hardware changes and not just one alone.