This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
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:
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.
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.