RTEMS Documentation Project RTEMS Software Engineering
5.1
  • 1. Preface
  • 2. RTEMS Project Mission Statement
    • 2.1. Free Software Project
    • 2.2. Design and Development Goals
    • 2.3. Open Development Environment
  • 3. RTEMS Stakeholders
  • 4. Introduction to Pre-Qualification
    • 4.1. Stakeholder Involvement
  • 5. Software Requirements Engineering
    • 5.1. Requirements for Requirements
      • 5.1.1. Identification
      • 5.1.2. Level of Requirements
        • 5.1.2.1. Absolute Requirements
        • 5.1.2.2. Absolute Prohibitions
        • 5.1.2.3. Recommendations
        • 5.1.2.4. Permissions
        • 5.1.2.5. Possibilities and Capabilities
      • 5.1.3. Syntax
      • 5.1.4. Wording Restrictions
      • 5.1.5. Separate Requirements
      • 5.1.6. Conflict Free Requirements
      • 5.1.7. Use of Project-Specific Terms and Abbreviations
      • 5.1.8. Justification of Requirements
      • 5.1.9. Requirement Validation
      • 5.1.10. Resources and Performance
    • 5.2. Specification Items
      • 5.2.1. Specification Item Hierarchy
      • 5.2.2. Specification Item Types
        • 5.2.2.1. Root Item Type
        • 5.2.2.2. Build Item Type
        • 5.2.2.3. Build Ada Test Program Item Type
        • 5.2.2.4. Build BSP Item Type
        • 5.2.2.5. Build Configuration File Item Type
        • 5.2.2.6. Build Configuration Header Item Type
        • 5.2.2.7. Build Group Item Type
        • 5.2.2.8. Build Library Item Type
        • 5.2.2.9. Build Objects Item Type
        • 5.2.2.10. Build Option Item Type
        • 5.2.2.11. Build Script Item Type
        • 5.2.2.12. Build Start File Item Type
        • 5.2.2.13. Build Test Program Item Type
        • 5.2.2.14. Constraint Item Type
        • 5.2.2.15. Glossary Item Type
        • 5.2.2.16. Glossary Group Item Type
        • 5.2.2.17. Glossary Term Item Type
        • 5.2.2.18. Interface Item Type
        • 5.2.2.19. Application Configuration Group Item Type
        • 5.2.2.20. Application Configuration Option Item Type
        • 5.2.2.21. Application Configuration Feature Enable Option Item Type
        • 5.2.2.22. Application Configuration Feature Option Item Type
        • 5.2.2.23. Application Configuration Value Option Item Type
        • 5.2.2.24. Interface Compound Item Type
        • 5.2.2.25. Interface Container Item Type
        • 5.2.2.26. Interface Define Item Type
        • 5.2.2.27. Interface Domain Item Type
        • 5.2.2.28. Interface Enum Item Type
        • 5.2.2.29. Interface Enumerator Item Type
        • 5.2.2.30. Interface Forward Declaration Item Type
        • 5.2.2.31. Interface Function Item Type
        • 5.2.2.32. Interface Group Item Type
        • 5.2.2.33. Interface Header File Item Type
        • 5.2.2.34. Interface Macro Item Type
        • 5.2.2.35. Interface Typedef Item Type
        • 5.2.2.36. Interface Unspecified Item Type
        • 5.2.2.37. Interface Variable Item Type
        • 5.2.2.38. Requirement Item Type
        • 5.2.2.39. Functional Requirement Item Type
        • 5.2.2.40. Action Requirement Item Type
        • 5.2.2.41. Generic Functional Requirement Item Type
        • 5.2.2.42. Non-Functional Requirement Item Type
        • 5.2.2.43. Requirement Validation Item Type
        • 5.2.2.44. Specification Item Type
        • 5.2.2.45. Test Case Item Type
        • 5.2.2.46. Test Platform Item Type
        • 5.2.2.47. Test Procedure Item Type
        • 5.2.2.48. Test Suite Item Type
      • 5.2.3. Specification Attribute Sets and Value Types
        • 5.2.3.1. Action Requirement Condition
        • 5.2.3.2. Action Requirement Name
        • 5.2.3.3. Action Requirement State
        • 5.2.3.4. Action Requirement Test Context Member
        • 5.2.3.5. Action Requirement Test Fixture Method
        • 5.2.3.6. Action Requirement Test Header
        • 5.2.3.7. Action Requirement Test Run Parameter
        • 5.2.3.8. Action Requirement Transition
        • 5.2.3.9. Action Requirement Transition Post-Conditions
        • 5.2.3.10. Action Requirement Transition Pre-Condition State Set
        • 5.2.3.11. Action Requirement Transition Pre-Conditions
        • 5.2.3.12. Application Configuration Group Member Link Role
        • 5.2.3.13. Application Configuration Option Constraint Set
        • 5.2.3.14. Application Configuration Option Name
        • 5.2.3.15. Boolean or Integer or String
        • 5.2.3.16. Build Assembler Option
        • 5.2.3.17. Build C Compiler Option
        • 5.2.3.18. Build C Preprocessor Option
        • 5.2.3.19. Build C++ Compiler Option
        • 5.2.3.20. Build Dependency Link Role
        • 5.2.3.21. Build Include Path
        • 5.2.3.22. Build Install Directive
        • 5.2.3.23. Build Install Path
        • 5.2.3.24. Build Linker Option
        • 5.2.3.25. Build Option Action
        • 5.2.3.26. Build Option C Compiler Check Action
        • 5.2.3.27. Build Option C++ Compiler Check Action
        • 5.2.3.28. Build Option Default by Variant
        • 5.2.3.29. Build Option Name
        • 5.2.3.30. Build Option Set Test State Action
        • 5.2.3.31. Build Option Value
        • 5.2.3.32. Build Source
        • 5.2.3.33. Build Target
        • 5.2.3.34. Build Test State
        • 5.2.3.35. Build Use After Directive
        • 5.2.3.36. Build Use Before Directive
        • 5.2.3.37. Constraint Link Role
        • 5.2.3.38. Copyright
        • 5.2.3.39. Enabled-By Expression
        • 5.2.3.40. Glossary Membership Link Role
        • 5.2.3.41. Integer or String
        • 5.2.3.42. Interface Brief Description
        • 5.2.3.43. Interface Compound Definition Kind
        • 5.2.3.44. Interface Compound Member Compound
        • 5.2.3.45. Interface Compound Member Declaration
        • 5.2.3.46. Interface Compound Member Definition
        • 5.2.3.47. Interface Compound Member Definition Directive
        • 5.2.3.48. Interface Compound Member Definition Variant
        • 5.2.3.49. Interface Definition
        • 5.2.3.50. Interface Definition Directive
        • 5.2.3.51. Interface Definition Variant
        • 5.2.3.52. Interface Description
        • 5.2.3.53. Interface Enabled-By Expression
        • 5.2.3.54. Interface Enum Definition Kind
        • 5.2.3.55. Interface Enumerator Link Role
        • 5.2.3.56. Interface Function Definition
        • 5.2.3.57. Interface Function Definition Directive
        • 5.2.3.58. Interface Function Definition Variant
        • 5.2.3.59. Interface Function Link Role
        • 5.2.3.60. Interface Group Identifier
        • 5.2.3.61. Interface Group Membership Link Role
        • 5.2.3.62. Interface Include Link Role
        • 5.2.3.63. Interface Notes
        • 5.2.3.64. Interface Parameter
        • 5.2.3.65. Interface Parameter Direction
        • 5.2.3.66. Interface Placement Link Role
        • 5.2.3.67. Interface Return Directive
        • 5.2.3.68. Interface Return Value
        • 5.2.3.69. Interface Target Link Role
        • 5.2.3.70. Link
        • 5.2.3.71. Name
        • 5.2.3.72. Optional String
        • 5.2.3.73. Requirement Non-Functional Type
        • 5.2.3.74. Requirement Reference
        • 5.2.3.75. Requirement Reference Type
        • 5.2.3.76. Requirement Refinement Link Role
        • 5.2.3.77. Requirement Text
        • 5.2.3.78. Requirement Validation Link Role
        • 5.2.3.79. Requirement Validation Method
        • 5.2.3.80. SPDX License Identifier
        • 5.2.3.81. Specification Attribute Set
        • 5.2.3.82. Specification Attribute Value
        • 5.2.3.83. Specification Boolean Value
        • 5.2.3.84. Specification Explicit Attributes
        • 5.2.3.85. Specification Floating-Point Assert
        • 5.2.3.86. Specification Floating-Point Value
        • 5.2.3.87. Specification Generic Attributes
        • 5.2.3.88. Specification Information
        • 5.2.3.89. Specification Integer Assert
        • 5.2.3.90. Specification Integer Value
        • 5.2.3.91. Specification List
        • 5.2.3.92. Specification Mandatory Attributes
        • 5.2.3.93. Specification Member Link Role
        • 5.2.3.94. Specification Refinement Link Role
        • 5.2.3.95. Specification String Assert
        • 5.2.3.96. Specification String Value
        • 5.2.3.97. Test Case Action
        • 5.2.3.98. Test Case Check
        • 5.2.3.99. Test Name
        • 5.2.3.100. UID
    • 5.3. Traceability of Specification Items
      • 5.3.1. History of Specification Items
      • 5.3.2. Backward Traceability of Specification Items
      • 5.3.3. Forward Traceability of Specification Items
      • 5.3.4. Traceability between Software Requirements, Architecture and Design
    • 5.4. Requirement Management
      • 5.4.1. Change Control Board
      • 5.4.2. Add a Requirement
      • 5.4.3. Modify a Requirement
      • 5.4.4. Mark a Requirement as Obsolete
    • 5.5. Tooling
      • 5.5.1. Tool Requirements
      • 5.5.2. Tool Evaluation
      • 5.5.3. Best Available Tool - Doorstop
      • 5.5.4. Custom Requirements Management Tool
    • 5.6. How-To
      • 5.6.1. Getting Started
      • 5.6.2. Glossary Specification
      • 5.6.3. Interface Specification
        • 5.6.3.1. Specify an API Header File
        • 5.6.3.2. Specify an API Element
  • 6. Software Development Management
    • 6.1. Software Development (Git Users)
      • 6.1.1. Browse the Git Repository Online
      • 6.1.2. Using the Git Repository
      • 6.1.3. Making Changes
      • 6.1.4. Working with Branches
      • 6.1.5. Viewing Changes
      • 6.1.6. Reverting Changes
      • 6.1.7. git reset
      • 6.1.8. git revert
      • 6.1.9. Merging Changes
      • 6.1.10. Rebasing
      • 6.1.11. Accessing a developer’s repository
      • 6.1.12. Creating a Patch
      • 6.1.13. Submitting a Patch
      • 6.1.14. Configuring git send-email to use Gmail
      • 6.1.15. Sending Email
      • 6.1.16. Troubleshooting
      • 6.1.17. Manage Your Code
      • 6.1.18. Private Servers
      • 6.1.19. Learn more about Git
    • 6.2. Software Development (Git Writers)
      • 6.2.1. SSH Access
      • 6.2.2. Personal Repository
      • 6.2.3. Create a personal repository
        • 6.2.3.1. Check your setup
        • 6.2.3.2. Push commits to personal repo master from local master
        • 6.2.3.3. Push a branch onto personal repo
        • 6.2.3.4. Update from upstream master (RTEMS head)
      • 6.2.4. GIT Push Configuration
      • 6.2.5. Pull a Developer’s Repo
      • 6.2.6. Committing
        • 6.2.6.1. Ticket Updates
        • 6.2.6.2. Commands
      • 6.2.7. Pushing Multiple Commits
      • 6.2.8. Ooops!
    • 6.3. Coding Standards
      • 6.3.1. Coding Conventions
        • 6.3.1.1. Source Documentation
        • 6.3.1.2. Licenses
        • 6.3.1.3. Language and Compiler
        • 6.3.1.4. Formatting
        • 6.3.1.5. Readability
        • 6.3.1.6. Robustness
        • 6.3.1.7. Portability
        • 6.3.1.8. Maintainability
        • 6.3.1.9. Performance
        • 6.3.1.10. Miscellaneous
        • 6.3.1.11. Layering
        • 6.3.1.12. Exceptions to the Rules
        • 6.3.1.13. Tools
      • 6.3.2. Eighty Character Line Limit
        • 6.3.2.1. Breaking long lines
      • 6.3.3. Deprectating Interfaces
      • 6.3.4. Doxygen Guidelines
        • 6.3.4.1. Group Names
        • 6.3.4.2. Use Groups
        • 6.3.4.3. Files
        • 6.3.4.4. Type Definitions
        • 6.3.4.5. Function Declarations
        • 6.3.4.6. Header File Examples
      • 6.3.5. File Templates
        • 6.3.5.1. Copyright and License Block
        • 6.3.5.2. C/C++ Header File Template
        • 6.3.5.3. C/C++/Assembler Source File Template
        • 6.3.5.4. Python File Template
        • 6.3.5.5. reStructuredText File Template
      • 6.3.6. Generating a Tools Patch
      • 6.3.7. Naming Rules
        • 6.3.7.1. General Rules
    • 6.4. Documentation Guidelines
      • 6.4.1. Application Configuration Options
    • 6.5. Python Development Guidelines
      • 6.5.1. Python Language Versions
      • 6.5.2. Python Code Formatting
      • 6.5.3. Static Analysis Tools
      • 6.5.4. Type Annotations
      • 6.5.5. Testing
        • 6.5.5.1. Test Organization
      • 6.5.6. Documentation
      • 6.5.7. Existing Code
      • 6.5.8. Third-Party Code
    • 6.6. Change Management
    • 6.7. Issue Tracking
  • 7. Software Test Plan Assurance and Procedures
    • 7.1. Testing and Coverage
      • 7.1.1. Test Suites
        • 7.1.1.1. Legacy Test Suites
      • 7.1.2. RTEMS Tester
  • 8. Software Test Framework
    • 8.1. The RTEMS Test Framework
      • 8.1.1. Nomenclature
      • 8.1.2. Test Cases
      • 8.1.3. Test Fixture
      • 8.1.4. Test Case Planning
      • 8.1.5. Test Case Resource Accounting
      • 8.1.6. Test Case Scoped Dynamic Memory
      • 8.1.7. Test Case Destructors
      • 8.1.8. Test Checks
        • 8.1.8.1. Test Check Parameter Conventions
        • 8.1.8.2. Test Check Condition Conventions
        • 8.1.8.3. Test Check Variant Conventions
        • 8.1.8.4. Boolean Expressions
        • 8.1.8.5. Generic Types
        • 8.1.8.6. Pointers
        • 8.1.8.7. Memory Areas
        • 8.1.8.8. Strings
        • 8.1.8.9. Characters
        • 8.1.8.10. Integers
        • 8.1.8.11. RTEMS Status Codes
        • 8.1.8.12. POSIX Error Numbers
        • 8.1.8.13. POSIX Status Codes
      • 8.1.9. Log Messages and Formatted Output
      • 8.1.10. Time Services
      • 8.1.11. Code Runtime Measurements
      • 8.1.12. Test Runner
      • 8.1.13. Test Verbosity
      • 8.1.14. Test Reporting
      • 8.1.15. Test Report Validation
      • 8.1.16. Supported Platforms
    • 8.2. Test Framework Requirements for RTEMS
      • 8.2.1. License Requirements
      • 8.2.2. Portability Requirements
      • 8.2.3. Reporting Requirements
      • 8.2.4. Environment Requirements
      • 8.2.5. Usability Requirements
      • 8.2.6. Performance Requirements
    • 8.3. Off-the-shelf Test Frameworks
      • 8.3.1. bdd-for-c
      • 8.3.2. CBDD
      • 8.3.3. Google Test
      • 8.3.4. Unity
    • 8.4. Standard Test Report Formats
      • 8.4.1. JUnit XML
      • 8.4.2. Test Anything Protocol
  • 9. Software Release Management
    • 9.1. Release Process
      • 9.1.1. Releases
        • 9.1.1.1. Release Layout
        • 9.1.1.2. Release Version Numbering
        • 9.1.1.3. Release Scripts
        • 9.1.1.4. Release Snapshots
      • 9.1.2. Release Repositories
      • 9.1.3. Pre-Release Procedure
      • 9.1.4. Release Procedure
      • 9.1.5. Post-Release Procedure
    • 9.2. Software Change Report Generation
    • 9.3. Version Description Document (VDD) Generation
  • 10. User’s Manuals
    • 10.1. Documentation Style Guidelines
  • 11. Licensing Requirements
    • 11.1. Rationale
  • 12. Appendix: Core Qualification Artifacts/Documents
  • 13. Glossary
  • 14. References
Index
RTEMS Software Engineering
  • »
  • Index

Index

A | C | D | E | G | I | R | S | T | Y

A

  • API
  • assembler language

C

  • C language
  • C11
  • CCB

D

  • Doorstop

E

  • EARS
  • ELF

G

  • GCC
  • GNAT
  • GNU

I

  • interrupt service
  • Interrupt Service Routine
  • ISVV

R

  • ReqIF
  • RTEMS

S

  • software component
  • software product
  • software unit
  • source code

T

  • task
  • thread

Y

  • YAML

© Copyright 1988, 2020 RTEMS Project and contributors

Built with Sphinx using a theme provided by Read the Docs.