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
»
9. Software Release Management
»
9.2. Software Change Report Generation
9.2. Software Change Report Generation
¶
TBD - What goes here?