reliability | a customer's problem | whenever the benefits of doing so outweigh the costs | | | the design of the system | the average amount of time between failures or the probability of a failure in a given period | if cost-benefit analysis shows that it will have minimum benefit but still cost a lot to develop | | 4.5 - Types of Requirements | a system of sufficient quality - one that is sufficiently usable, safe, efficient, reliable and maintainable | complexity of code | | various stakeholders, other software systems and any documentation that might be available | problem statement | the number of mistakes made by the software engineers who developed the software | | a fact | | a unique number for traceability | non-functional requirement | all stakeholders | if there is any doubt whether it is realistic | other requirements into a requirements document | ensuring the software is easy to implement and change, and also ensuring that if failures occur, the system can handle them or can recover easily | a diagram | commenting | how it will be implemented in order to give the designer as much freedom as possible to make decisions | the freedom of software engineers as they make design decisions because it limits what resources can be used and sets bounds on aspects of the software's quality | benefits that outweigh the costs of development | a natural language such as English (using present tense and active voice), sometimes supplemented by a formal mathematical language, and often by some form of diagram | clear and consistent notation, using language that the customers can understand, and consistent with the other requirements | An important quality of software that measures the frequency of failures, as encountered by testers and end-users | a constraint that must be adhered to during development | more important than efficiency in a safety-critical system |