RTEMS Documentation Project RTEMS Software Engineering
5.0.0-m2005-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.2. Specification Items
      • 5.2.1. Item Types
      • 5.2.2. Requirements
      • 5.2.3. Build Configuration
      • 5.2.4. Interface Requirement
      • 5.2.5. Interface
      • 5.2.6. Interface - Application Configuration
      • 5.2.7. Test Procedure
      • 5.2.8. Test Suite
      • 5.2.9. Test Case
      • 5.2.10. Resources and Performance
    • 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 Validation
    • 5.5. Requirement Management
      • 5.5.1. Change Control Board
      • 5.5.2. Add a Requirement
      • 5.5.3. Modify a Requirement
      • 5.5.4. Mark a Requirement as Obsolete
    • 5.6. Tooling
      • 5.6.1. Tool Requirements
      • 5.6.2. Tool Evaluation
      • 5.6.3. Selected Tool - Doorstop
  • 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
  • »
  • Search


© Copyright 1988, 2020 RTEMS Project and contributors

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