AAMI SW91 2018
$140.32
ANSI/AAMI SW91:2018 – Classification of defects in health software
Published By | Publication Date | Number of Pages |
AAMI | 2018 | 76 |
Provides a common language for the classification of defects occurring in health software.
PDF Catalog
PDF Pages | PDF Title |
---|---|
1 | ANSI/AAMI SW91:2018; Classification of defects in health software |
2 | Objectives and uses of AAMI standards and recommended practices |
3 | Title page |
4 | AAMI Standard Copyright information |
5 | Contents |
6 | Committee representation |
7 | Foreword |
9 | 1 Scope 2 Normative references 3 Terms and definitions |
10 | 4 Defect codes 4.1. Defect code hierarchy and scope |
11 | 4.2. Defect code use |
12 | 4.3. Adding defect codes 5 Taxonomy 5.1. General 5.2. Planning (1) 5.2.1. General 5.2.2. Plan documentation (1.1) 5.2.3. Plan feasibility (1.2) |
13 | 5.3. Requirements (2) 5.3.1. General 5.3.2. Requirement correctness (2.1) 5.3.2.1. General 5.3.2.2. Requirement accuracy (2.1.1) 5.3.2.3. Requirement clarity (2.1.2) 5.3.2.4. Requirement relevance (2.1.3) 5.3.3. Requirement completeness (2.2) 5.3.3.1. General 5.3.3.2. Requirement uniqueness (2.2.1) 5.3.3.3. Requirement scope (2.2.2) |
14 | 5.3.3.4. Requirement adequacy (2.2.3) 5.3.4. Requirement logic (2.3) 5.3.4.1. General 5.3.4.2. Requirement soundness (2.3.1) 5.3.4.3. Requirement reasonableness (2.3.2) 5.3.4.4. Requirement achievability (2.3.3) |
15 | 5.3.4.5. Requirement compatibility (2.3.4) 5.3.4.6. Requirement specificity (2.3.5) 5.3.5. Requirement verifiability (2.4) 5.4. Architecture and design (3) 5.4.1. General |
16 | 5.4.2. System decomposition (3.1) 5.4.3. Segregation necessary for risk control (3.2) 5.4.4. Scalability (3.3) 5.4.5. Thread/task interactions (3.4) 5.4.5.1. General 5.4.5.2. Thread reentrancy (3.4.1) 5.4.5.3. Thread safety (3.4.2) 5.4.5.4. Thread priority (3.4.3) 5.4.5.5. Transactional integrity (3.4.4) |
17 | 5.4.5.6. Resource management and control (3.4.5) 5.4.6. Performance (3.5) 5.4.6.1. General 5.4.6.2. Throughput (3.5.1) 5.4.6.3. Response time or delay (3.5.2) 5.4.6.4. Capacity (3.5.3) 5.4.6.5. Resource utilization (3.5.4) |
18 | 5.4.7. Operating environment selection (3.6) 5.4.8. Third-party software (3.7) 5.4.8.1. General 5.4.8.2. Third-party software functional and performance requirements (3.7.1) 5.4.8.3. Third-party software selection (3.7.2) 5.4.8.4. Third-party software documentation (3.7.3) |
19 | 5.4.8.5. Extraneous third-party software functionality (3.7.4) 5.4.9. Security (3.8) |
20 | 5.4.10. Code reuse (3.9) 5.4.11. Algorithm selection (3.10) 5.4.12. Hardware interfaces (3.11) 5.4.12.1. General 5.4.12.2. Interrupts/exceptions (3.11.1) 5.4.12.3. Hardware usage (3.11.2) |
21 | 5.4.12.4. I/O Timing or throughput (3.11.3) 5.4.13. Failure to capture design (3.12) 5.5. Implementation (4) 5.5.1. General 5.5.2. Data definition (4.1) 5.5.2.1. General |
22 | 5.5.2.2. Scalar data type (4.1.1) 5.5.2.2.1. General 5.5.2.2.2. Scalar data operations (4.1.1.1) 5.5.2.2.3. Scaled fixed-point precision (4.1.1.2) 5.5.2.2.4. Scaled fixed-point range (4.1.1.3) 5.5.2.3. Scalar size (4.1.2) 5.5.2.3.1. General 5.5.2.3.2. Scalar precision (4.1.2.1) 5.5.2.3.3. Scalar range (4.1.2.2) 5.5.2.3.4. Array declaration (4.1.2.3) 5.5.2.3.5. Array bounds (4.1.2.4) |
23 | 5.5.2.3.6. Array dimensioning (4.1.2.5) 5.5.2.4. Data alignment (4.1.3) 5.5.2.5. Data initial value correctness (4.1.4) 5.5.2.5.1. General 5.5.2.5.2. Data uninitialized (4.1.4.1) 5.5.2.5.3. Data cloning (4.1.4.2) |
24 | 5.5.2.5.4. Data initializer type (4.1.4.3) 5.5.2.5.5. Data symbolic value (4.1.4.4) |
25 | 5.5.2.5.6. Data literal value (4.1.4.5) 5.5.2.6. Data scope (4.1.5) 5.5.2.6.1. General 5.5.2.6.2. Data accessibility (4.1.5.1) 5.5.2.6.3. Use outside declared scope (4.1.5.2) 5.5.2.6.4. Unintended access (4.1.5.3) |
26 | 5.5.2.6.5. Unintended dependency (4.1.5.4) 5.5.2.7. Data protection (4.1.6) 5.5.2.7.1. General 5.5.2.7.2. Public data declared private (4.1.6.1) 5.5.2.7.3. Private data declared public (4.1.6.2) 5.5.2.8. Data access qualifier (4.1.7) |
27 | 5.5.3. Data use and processing (4.2) 5.5.3.1. General 5.5.3.2. Object compatibility (4.2.1) 5.5.3.2.1. General 5.5.3.2.2. Type compatibility (4.2.1.1) 5.5.3.2.3. Scaling compatibility (4.2.1.2) 5.5.3.2.4. Endian-ness compatibility (4.2.1.3) 5.5.3.2.5. Casting and conversions (4.2.1.4) |
28 | 5.5.3.3. Object referencing (4.2.2) 5.5.3.3.1. General 5.5.3.3.2. Null object reference (4.2.2.1) 5.5.3.3.3. Reference outside declared bounds (4.2.2.2) 5.5.3.3.4. Reference to wrong element (4.2.2.3) 5.5.3.3.5. Use after free (4.2.2.4) 5.5.3.3.6. Free after free (4.2.2.5) 5.5.3.3.7. Failure to free (4.2.2.6) 5.5.3.3.8. Lost reference (4.2.2.7) |
29 | 5.5.3.4. Object access privilege (4.2.3) 5.5.3.4.1. General 5.5.3.4.2. Access authorization (4.2.3.1) 5.5.3.4.3. Access privileges (4.2.3.2) 5.5.3.4.4. Access protection (4.2.3.3) 5.5.3.5. Coherency (4.2.4) |
30 | 5.5.3.6. Context save/restore (4.2.5) 5.5.3.6.1. General 5.5.3.6.2. Failure to save/restore (4.2.5.1) 5.5.3.6.3. Incomplete save/restore (4.2.5.2) 5.5.3.6.4. Failure to check restore (4.2.5.3) 5.5.3.7. Data validity checks (4.2.6) 5.5.3.8. Data manipulations (4.2.7) 5.5.3.8.1. General |
31 | 5.5.3.8.2. Mixed sign (4.2.7.1) 5.5.3.8.3. Rounding and significant digits (4.2.7.2) 5.5.3.8.4. Infinite/NaN result (4.2.7.3) |
32 | 5.5.3.9. Expression evaluation (4.2.8) 5.5.3.9.1. General 5.5.3.9.2. Operator (4.2.8.1) 5.5.3.9.3. Grouping (4.2.8.2) 5.5.3.10. Cleanup (4.2.9) 5.5.3.11. Execution time (4.2.10) |
33 | 5.5.3.12. Returned error code (4.2.11) 5.5.3.13. Processing timeout (4.2.12) 5.5.4. Control flow (4.3) 5.5.4.1. General 5.5.4.2. General structure (4.3.1) 5.5.4.2.1. General |
34 | 5.5.4.2.2. Unreachable code (4.3.1.1) 5.5.4.2.3. Dead end code (4.3.1.2) 5.5.4.3. Control logic (4.3.2) 5.5.4.3.1. General 5.5.4.3.2. Duplicated control logic (4.3.2.1) 5.5.4.3.3. Infeasible control logic (4.3.2.2) |
35 | 5.5.4.3.4. Switch case selection (4.3.2.3) 5.5.4.3.5. No switch default case (4.3.2.4) 5.5.4.3.6. Multi-way branch (4.3.2.5) 5.5.4.3.7. Control logic syntax (4.3.2.6) |
36 | 5.5.4.4. Loops and iterations (4.3.3) 5.5.4.4.1. General 5.5.4.4.2. Loop terminal condition or value (4.3.3.1) 5.5.4.4.3. Loop iteration values (4.3.3.2) 5.5.4.4.4. Loop exit condition (4.3.3.3) 5.5.4.5. Control state (4.3.4) |
37 | 5.5.4.6. Incorrect exception handling (4.3.5) 5.5.5. Software interfaces (4.4) 5.5.5.1. General 5.5.5.2. Component invocation (4.4.1) 5.5.5.2.1. General 5.5.5.2.2. Component availability (4.4.1.1) 5.5.5.2.3. Component identity (4.4.1.2) 5.5.5.2.4. Component order (4.4.1.3) |
38 | 5.5.5.3. Interface parameter – invocation (4.4.2) 5.5.5.3.1. General 5.5.5.3.2. Interface API (4.4.2.1) 5.5.5.3.3. Interface parameter type (4.4.2.2) 5.5.5.3.4. Interface parameter structure (4.4.2.3) 5.5.5.3.5. Interface parameter value (4.4.2.4) 5.5.5.3.6. Interface parameter sequence (4.4.2.5) |
39 | 5.5.5.4. Component return interpretation (4.4.3) 5.5.6. Inheritance and polymorphism (4.5) 5.5.6.1. General 5.5.6.2. Unable to override functionality (4.5.1) 5.5.6.3. Wrong method called – arguments (4.5.2) 5.5.6.4. Wrong method called – inheritance (4.5.3) 5.5.6.5. Inherited functionality incorrect (4.5.4) 5.5.7. Conditional code (4.6) |
40 | 5.5.8. Unwanted code (4.7) 5.5.9. Incorrect design translation (4.8) 5.5.10. Missed design translation (4.9) |
41 | 5.5.11. Coding standards violations (4.10) 5.5.11.1. General 5.5.11.2. Control flow and nesting (4.10.1) 5.5.11.3. Modularity and complexity (4.10.2) 5.5.11.4. Naming, data definition, declarations (4.10.3) 5.5.11.5. Calling, invoking, and accessing (4.10.4) |
42 | 5.5.11.6. Structure and format (4.10.5) 5.6. Test (5) 5.6.1. General 5.6.2. Test design (5.1) 5.6.2.1. General 5.6.2.2. Test case design (5.1.1) 5.6.2.3. Test case completeness (5.1.2) 5.6.2.4. Test steps (5.1.3) 5.6.2.5. Predicted test outcome (5.1.4) 5.6.2.6. Predicted test path (5.1.5) 5.6.2.7. Initialization of test data (5.1.6) 5.6.2.8. Test tools (5.1.7) |
43 | 5.6.2.9. Test sequencing (5.1.8) 5.6.2.10. Test design configuration (5.1.9) 5.6.2.11. Test verification method (5.1.10) 5.6.3. Test execution (5.2) 5.6.3.1. General 5.6.3.2. Test execution use error (5.2.1) 5.6.3.3. Test database (5.2.2) 5.6.3.4. Test execution configuration (5.2.3) 5.6.3.5. Test Results verification (5.2.4) 5.6.3.6. Test case selection (5.2.5) |
44 | 5.6.4. Test documentation (5.3) 5.7. Release (6) 5.7.1. General 5.7.2. Release version or configuration (6.1) 5.7.3. Release integrity (6.2) 5.7.4. Release authentication (6.3) 5.7.5. Build and release tools (6.4) 5.8. Maintenance (7) 5.8.1. General 5.8.2. Runtime operating environment (7.1) |
45 | 5.8.3. Installation procedure failed (7.2) 5.8.4. Third-party components (7.3) 5.8.5. Manufacturer’s change installations (7.4) 5.8.5.1. General 5.8.5.2. Failure to notify end-user of available changes (7.4.1) 5.8.5.3. Failure to apply changes from manufacturer (7.4.2) 5.8.6. Third-party change installations (7.5) 5.8.6.1. General 5.8.6.2. Failure to integrate updated third-party software into release (7.5.1) |
46 | 5.8.6.3. Failure to notify end-user of approved changes from third party (7.5.2) 5.8.6.4. Failure to apply changes from third party (7.5.3) 5.8.6.5. Applying change from third party without notification from manufacturer (7.5.4) 5.8.6.6. Manufacturer does not test change from third party (7.5.5) 5.8.7. Database upgrades (7.6) |
47 | Annex A (informative) Uses of defect data |
49 | Annex B (informative) FDA Evaluation result code to SW91 defect code mapping Table B.1 – Mapping between FDA evaluation codes and SW91 defect codes |
52 | Annex C (informative) IEC/TR 80002-1 to SW91 Defect code mapping Table C.1 – Mapping between IEC/TR 80002-1 and SW91 defect codes |
62 | Annex D (informative) Common weakness enumeration (CWE) to SW91 defect code mapping Table D.1 – Mapping between CWE and SW91 defect codes |
66 | Annex E (informative) Examples using SW91 during root cause analysis |
71 | Annex F (informative) SW91 Defect category and code table Table F.1 – SW91 Defect category and code table |
75 | Annex G (informative) Defect inclusion criteria |
76 | Bibliography |