In nutshell, based on the FURPS design, non-functional requirements fall into following category
- Usability
- Reliability
- Performance
- Security
PS: I found a good post emphasizing the need for checklists. Here it is.
Usability:
- Is the UI consistent with different locales? eg. can it verify addresses and zip codes according to regions? Does database schema support multiple locales?
- How simple is server installation process?
- How simple is client installation process?
- Can I automate deployment of client application on large number of machines?
- Is the uninstallation clean and removing all entries from file system and registry?
- How accessible is documentation?
- Is it easy to use according to user's profile?
- What if multiple users are using the application concurrently?
- Is it data locked effectively to avoid corruption, but is not over locked to hinder usability?
- Can I update the server first without impacting the users?
- Can I make sure the user's machine will be updated before they can access the server?
- Can I import my data from application I am currently using?
- Can I export the data to other applications I will be using? Are the security policies also migrated with the data?
- What is level of application availability required?
- For a typical server, is application logic separate from data?
- What if the database server crashed?
- Is there a redundant data server available?
- Is data available through attached through SAN or LAN?
- Is there any need to rollback to some point in history if there is a virus attack or application bug?
- What is our data snapshot policy?
- What is the cost (time, resource) to restore a snapshot?
- What happens to the new data that was entered while we restored the older snapshot?
- Or, was the application down at that time? Or, will be lose the new data?
- What if the entire data center power tripped?
- Is another data center required to resume operations?
- How much time will it take to resume operations?
- Do we need to make application distributed so that users won't notice any power tripping?
- What about application servers?
- Does the server run on virtual servers?
- Can it use virtual storage?
- What is the maximum load this application can handle?
- Can I add more servers if load increases?
- What network bandwidth is required?
- What configuration for user machine is good?
- What can we do to reduce network traffic?
- What can we do to make sure client runs on a leaner machine?
- The load on my server is high, can I partition the data for each business unit and have multiple servers?
- I migrated from one server to another, how can I make sure I do not need to update all users?
- I have some old data I won't be regularly using; can I archive that data and remove from main database?
- Do we need additional front end machine to secure data at backend?
- What security policies do I need to change?
- How do I define user access polices for every department and make sure they are not able to sneak into each other's data without permission?
- I had a breach, can I analyze the impact from audit logs?
- Oops, a user accidentally deleted a data, how soon can the user or admin recover from the situation?
No comments:
Post a Comment