You know what you want your system to do and you know how it should work. However, there are a number of other things you need to consider. Part 3 of 3. EFFICIENCY Specifies how well the software utilizes scarce resources: CPU cycles, disk space, memory, bandwidth, etc. PERFORMANCE The performance constraints specify the timing characteristics of the software. Certain tasks or features are more time-sensitive than others; the non-functional requirements should identify those software functions that have constraints on their performance. * Transaction Criteria - determine the number of transactions going through your system. For example: how many invoices per day and how many inventory lines per invoice? * What are your performance expectations? Are your expectations different for different parts of the system? ENVIRONMENT Defines where the system is to run and how it is to be accessed. Various options exist depending on your needs: * Personal Computer, mainly used if there is only one person using the system * Server - the system runs on a central computer but is accessed from your personal computer, mainly used where the users work at one site or office * Cloud - the system runs in the 'cloud', such as Google App Engine, and can be accessed from anywhere, including your office USABILITY Ease-of-use requirements address the factors that constitute the capacity of the software to be understood, learned, and used by its intended users. * Are there any legal requirements you must comply with? * Do all the screens and reports follow the same 'look and feel' - are the buttons in the same places and in the same order? * Does the system come complete with manuals: user manuals, help files, technical manuals and training material. * Define how training is to occur. Will a training environment be created specifically for training? How will training occur and when? How will you fit in training while also running your business? SUPPORTABILITY Supportability refers to the ability of technical support personnel to install, configure, and monitor computer products, identify exceptions or faults, debug or isolate faults to root cause analysis, and provide hardware or software maintenance in pursuit of solving a problem and restoring the product into service. Incorporating serviceability facilitating features typically results in more efficient product maintenance and reduces operational costs and maintains business continuity. * How is system performance monitored? What can your business do to improve performance and when is the vendor notified? * How are system errors identified, simple error messages or system logs? * What is the fault logging system? Includes response time requirements and escalation procedures. Please get in touch if there is anything Freeman Software can do to help your business succeed.