|
|
|
Online Process Main Page Supporting Requirements
DescriptionOverview: This concept describes the supporting requirements. Definition: Supporting requirements are requirements that define necessary system quality attributes such as performance, usability and reliability, as well as global functional requirements that are not captured in behavioral requirements artifacts such as use-cases. Supporting Requirements Categories: Supporting requirements are categorized according to the FURPS+ model (Functional, Usability, Reliability, Performance, Supportability + constraints). Constraints include design, implementation, interfaces, physical constraints, and business rules. A description of each of these types of requirements follows. Supporting requirements and Use Cases, together, define the requirements of the system. These requirements support the features listed in the Vision statement. Each requirement should support at least one feature, and each feature should be supported by at least one to requirement. In general, functional requirements describe behavior and are captured in Use Cases. Non-functional requirements are captured in the Supporting Requirements Specification. However, nonfunctional requirements that are closely associated with a particular Use Case are often captured within the Use Case itself to simplify communication and maintenance. Similarly, there are global, or system-wide, functional requirements that are often captured among the supporting requirements for the same reasons. Functional requirements Functionality requirements include all the overarching, system wide functional requirements. These functional requirements represent the main system features that are familiar within the business domain or technically oriented requirements such as auditing, licensing, localization, mail, online help, printing, reporting, security, system management, or workflow.
Usability requirements Usability requirements include requirements based on human factors and user interface issues such as accessibility, interface aesthetics, and consistency within the user interface.
Reliability requirements Reliability requirements include aspects such as availability, accuracy, predictability, frequency of failure or recoverability of the system from shut-down failure.
Performance requirements Performance requirements address concerns such as throughput of information through the system, system response time and resource usage.
Supportability requirements Supportability requirements include requirements such as compatibility and the abilities to test, adapt, maintain, configure, install, scale, localize, and so on. + Constraints The + of the FURPS+ acronym allows you to specify constraints, such as design, implementation, interfaces, physical constraints, and business rules: - Design constraints limit the design and state requirements on the approach that should be taken in developing the system.
- Implementation constraints put limits on coding or construction (required standards, languages, tools, or platform)
- Interface constraints are requirements to interact with external systems, describing protocols or the nature of the information that is passed across that interface.
- Physical constraints affect the hardware or packaging housing the system (shape, size, and weight).
- Business rules are policies or decisions that govern how the business operates. They may constrain the steps described in the Use Case flow.
Check Items: - Have all requirements that are derived from existing standard and regulations been specified?
Guideline: There is a finite set of requirements to consider when it comes to gathering system-wide requirements, qualities, or constraints. Many of them are unfamiliar to stakeholders; therefore, they may find it difficult to answer questions related to topics such as availability, performance, scalability, or localization. You can use this guideline and the associated checklist Checklist: Supporting Requirements when speaking to stakeholders to ensure that all topics are discussed. Make sure that stakeholders understand the costs of their selections and do not end up wanting everything that is on the list. Functional: Usability: Usability requirements are critical to the success of any system. Unfortunately, usability requirements are often the most poorly specified requirements. Consider this common requirement: The system shall be easy to use. This doesn't help much, because it cannot be verified. While capturing usability requirements, it is a good idea to identify issues and concerns first, and then refine these into verifiable requirements later (see Guideline: Writing Good Requirements). According to a traditional definition, usability consists of five factors: You may want to use the following method to identify and specify usability requirements: Identify the key usability issues by looking at critical tasks, user profiles, system goals, and previous usability problems. Choose the appropriate style to express the requirements: Performance style: Specify how fast users can learn various tasks and how fast they can perform the tasks after training. Defect style: Rather than measuring task times, identify usability defects and specifies how frequently they may occur.
- Guideline style: Specify the general appearance and response time of the user interface by reference to an accepted and well-defined standard
Write the actual requirements, including performance criteria (see Guideline: Writing Good Requirements for more information).
Reliability: Reliability includes the system's ability to continue running under stress and adverse conditions. In the case of an application, reliability relates to the amount of time that the software is available and running as opposed to time unavailable. Specify reliability acceptance levels, as well as how they will be measured and evaluated. Describe reliability criteria in measurable terms. This is usually expressed as the allowable time between failures or the total allowable failure rate. Other important reliability considerations include: Accuracy: Specify requirements for the precision (resolution) and the accuracy (by some known standard) that is required in any calculation performed or in system output. Availability: Specify requirements for the percentage of time the system is available for use, hours of use, maintenance access, and degraded-mode operations. Availability is typically specified in terms of the Mean Time Between Failures (MTBF). Recoverability: Specify requirements for recovery from failure. This is typically specified in terms of the Mean Time to Repair (MTTR). Frequency and severity of failures: Specify the maximum defect rate (typically expressed as defects/KSLOC or defects/function-point) and severity of failures. Severity may be categorized in terms of minor, significant, and critical defects. The requirements must define each of these terms unambiguously. For example, a critical defect could be defined as one that results in loss of data or complete inability to use certain functionality of the system.
Performance: Response times: Specify the amount of time available for the system to complete specified tasks and transactions (average, maximum). Use units of measurement. Examples: Throughput: Specify the capacity of the system to support a given flow of information (for example, transactions per second). Capacity: Specify on the volumes that the product must be able to deal with and the numbers of data stored by the product. Make sure that the requirement description is quantified, and thus can be tested. Use unit of measurement such as: the number of customers or transactions the system can accommodate, resource usage (memory, disk, . . . ) or degradation modes (what is the acceptable mode of operation when the system has been degraded in some manner) Examples: Start-up: The time for the system to start up. Shut-down: The time for the system to shut down.
Supportability: Adaptability: Are there any special requirements regarding adaptation of the software (including upgrading)? List requirements for the ease with which the system is adapted to new environments. Compatibility: Are there any requirements regarding this system and its compatibility with previous versions of this system or legacy systems that provide the same capability? Configurability: Will the product be configured after it has been deployed? In what way will the system be configured? Installation: State any special requirements regarding system installation Level of Support: What is the level of support that the product requires? This is often done using a Help desk. If there are to be people who provide support for the product, is that support considered part of what you are providing to the customer? Are there any requirements for that support? You might also build support into the product itself, in which case this is the place to write those requirements. Consider the level of support that you anticipate providing and what forms it might take. Maintainability: Are there any special requirements regarding system maintenance? What are the requirements for the intended release cycle for the product and the form that the release will take? Quantify the time necessary to make specified changes to the product. There may also be special requirements for maintainability, such as a requirement that the product must be able to be maintained by its end-users or developers who are not your development team. This has an effect on the way that the product is developed, and there may be additional requirements for documentation or training. Describe the type of maintenance and the amount of effort required. Examples: Scalability: What volumes of users and data will the system support? This specifies the expected increases in size that the product must be able to handle As businesses grow (or are expected to grow), the software products must increase their capacities to cope with the new volumes. This may be expressed as a profile over time. Testability: Are there any special requirements regarding the testability of the system?
Constraints (+):
Interface Requirements (+): Describe both the user interface and interfaces with external systems. User interface Describe requirements related to user interfaces that are to be implemented by the software. The intention of this section is to state the requirements, but not to describe the user interface itself, because interface design may overlap the requirements-gathering process. This is particularly true if you are using prototyping as part of your requirements gathering process. As you develop prototypes, it is important to capture the requirements that relate to the look and feel of the user interface. In other words, be sure that you understand your client's intentions for the product's look and feel. Record these as requirements, rather than merely using a prototype for approval. Interfaces to external systems or devices Software interfaces: Are there any external systems with which this system must interface? Are there any constraints on the nature of the interface between this system and any external system, such as the format of data passed between these systems? Do they use any particular protocol? Describe software interfaces with other components. These may be purchased components, components reused from another application, or components being developed for subsystems outside of the scope of the system under consideration, but with which this it must interact. For each system, consider both provided and required interfaces. - Hardware interfaces: Define any hardware interfaces that are to be supported by the software, including logical structure, physical addresses, expected behavior, and so on.
- Communications interfaces: Describe any communications interfaces to other systems or devices, such as local area networks (LANs), remote serial devices, and so on.
Business Rules (+): Besides technical requirements, also consider the particular business domain in which the system needs to fit. Business rules or policies that the system must conform to may constrain system functionality. Business rules are referred to by system use cases and can be in the form of decision tables, computation rules, decision trees, algorithms, and so forth. Describing the rules in the flows of the use cases usually clutters the use-case specifications. Therefore, they are normally captured in separate artifacts or as annexes related to the use-case specifications. In many cases, a business rule applies to more then one use case. Shared business rules should be stored in a single repository, such as a supporting requirements document.
|
Last modified at 2/4/2008 4:51 AM by Administrator
|
|
|
|