How do you address QoS requirements (performance and reliability) in Part II ?
I think that the only thing we can do is to write some reasons why system would satisfy those requirements. We can repose only on software design. For example, don't use EJBs for bulk updates , use JNDI cache and things like that.
Performance and reliability are both complex topics. Here are only a few points to keep in mind when reviewing the system architecture and design. I am not sure how this fits in with your exam, but when I audit or troubleshoot real systems these are some of the things I look for.
In terms of performance, look at how the system scales. Can it scale horizontally? Can the application be clustered? Basically look through the whole design and see if there is anything fundamentally flawed from a performance point of view. Where would the bottlenecks be? How do you plan to test to verify your suspicions? How does performance degrade with load? How long does it take to process a request, under normal conditions, versus under a heavy load? Think about disk I/O, network I/O, and threading and concurrency to ensure requests can be handled in parallel. Occasionally it pays to think about the algorithms used (remember big "O"?).
In terms of reliability, review the design and look for single points of failure. Does the design support redundancy at each layer, including the database, appliation server and webserver? If a disk fails on one of the machines, or a janitor accidentally knocks out the power cord, will it shut down your system?
Guys, I've similar problem of representing QoS parameters as part of design. We cannot include this as part of list of deliverables (for SCEA). I'm not sure how to go about it. Maris Orbidans.. did you get to any approach?
As for me, I have mentioned some points about non-func requirements in my assignment. I have not submitted assignment yet. but i guess it's ok to mention some of these points like security, performance etc.