Requirement a) services the system should provide, b) how the system should react to particular inputs, and c) how the system should behave in particular situations. d) May state what (reactions, behaviours, or services) the system should not do.
• Search option given to user to search from various invoices. • User should be able to mail any report to management. • Users can be divided into groups and groups can be given separate rights. What about • Pac-man? • Blackboard? • MyASU? • Recitation Project 1?
Requirement Non-functional requirements a) Constraints on the services or functions offered by the system, such as Standards to apply, development platform, timing constraints, constraints on the development process, etc. a) Quality attributes, such as performance specifications, robustness, usability, etc.
(Constraints) • Should comply business rules and administrative functions. • Software is developed keeping downward compatibility intact. What about • Pac-man? • Blackboard? • MyASU? • Recitation Project 1 (user-friendly)?
(Quality) Property Measure Speed • Processed transactions/second • User/event response time • Screen refresh time Size • Mbytes • Number of ROM chips Ease of use • Training time • Number of help frames Reliability • Mean time to failure • Probability of unavailability • Rate of failure occurrence • Availability Robustness • Time to restart after failure • Percentage of events causing failure • Probability of data corruption on failure Portability • Percentage of target dependent statements • Number of target systems
Requirements • Is each requirement bounded and unambiguous? • Does each requirement have attribution? That is, is a source (generally, a specific individual) noted for each requirement? • Is each requirement consistent with the overall objective for the system/product? • Have all requirements been specified at the proper level of abstraction? That is, do some requirements provide a level of technical detail that is inappropriate at this stage? • Is the requirement really necessary or does it represent an add-on feature that may not be essential to the objective of the system? • Do any requirements conflict with other requirements?
Requirements • Is each requirement achievable in the technical environment that will house the system or product? • Is each requirement testable, once implemented? • Does the requirements model properly reflect the information, function and behavior of the system to be built. • Has the requirements model been partitioned in a way that exposes progressively more detailed information about the system (correct use of generalization/specialization, include, and extends).