RTEMS Software Engineering Release 6.Fa31da1 (13Th November 2020) © 1988, 2020 RTEMS Project and Contributors
Total Page:16
File Type:pdf, Size:1020Kb
RTEMS Software Engineering Release 6.fa31da1 (13th November 2020) © 1988, 2020 RTEMS Project and contributors CONTENTS 1 Preface 3 2 RTEMS Project Mission Statement5 2.1 Free Software Project.................................6 2.2 Design and Development Goals............................7 2.3 Open Development Environment...........................8 3 RTEMS Stakeholders9 4 Introduction to Pre-Qualification 11 4.1 Stakeholder Involvement............................... 13 5 Software Requirements Engineering 15 5.1 Requirements for Requirements............................ 17 5.1.1 Identification................................. 17 5.1.2 Level of Requirements............................ 18 5.1.2.1 Absolute Requirements....................... 18 5.1.2.2 Absolute Prohibitions........................ 19 5.1.2.3 Recommendations.......................... 19 5.1.2.4 Permissions.............................. 19 5.1.2.5 Possibilities and Capabilities.................... 19 5.1.3 Syntax..................................... 20 5.1.4 Wording Restrictions............................. 20 5.1.5 Separate Requirements............................ 22 5.1.6 Conflict Free Requirements.......................... 23 5.1.7 Use of Project-Specific Terms and Abbreviations.............. 23 5.1.8 Justification of Requirements........................ 23 5.1.9 Requirement Validation............................ 23 5.1.10 Resources and Performance......................... 24 5.2 Specification Items................................... 25 5.2.1 Specification Item Hierarchy......................... 25 5.2.2 Specification Item Types........................... 26 5.2.2.1 Root Item Type............................ 26 5.2.2.2 Build Item Type........................... 27 5.2.2.3 Build Ada Test Program Item Type................. 28 5.2.2.4 Build BSP Item Type......................... 29 5.2.2.5 Build Configuration File Item Type................. 31 5.2.2.6 Build Configuration Header Item Type............... 31 i 5.2.2.7 Build Group Item Type........................ 32 5.2.2.8 Build Library Item Type....................... 33 5.2.2.9 Build Objects Item Type....................... 34 5.2.2.10 Build Option Item Type....................... 35 5.2.2.11 Build Script Item Type........................ 36 5.2.2.12 Build Start File Item Type...................... 38 5.2.2.13 Build Test Program Item Type.................... 38 5.2.2.14 Constraint Item Type........................ 40 5.2.2.15 Glossary Item Type.......................... 40 5.2.2.16 Glossary Group Item Type...................... 40 5.2.2.17 Glossary Term Item Type...................... 40 5.2.2.18 Interface Item Type......................... 41 5.2.2.19 Application Configuration Group Item Type............ 41 5.2.2.20 Application Configuration Option Item Type............ 42 5.2.2.21 Application Configuration Feature Enable Option Item Type... 42 5.2.2.22 Application Configuration Feature Option Item Type....... 43 5.2.2.23 Application Configuration Value Option Item Type........ 43 5.2.2.24 Interface Compound Item Type................... 43 5.2.2.25 Interface Container Item Type................... 44 5.2.2.26 Interface Define Item Type..................... 44 5.2.2.27 Interface Domain Item Type..................... 44 5.2.2.28 Interface Enum Item Type...................... 45 5.2.2.29 Interface Enumerator Item Type.................. 45 5.2.2.30 Interface Forward Declaration Item Type.............. 45 5.2.2.31 Interface Function Item Type.................... 46 5.2.2.32 Interface Group Item Type..................... 46 5.2.2.33 Interface Header File Item Type................... 47 5.2.2.34 Interface Macro Item Type..................... 47 5.2.2.35 Interface Typedef Item Type..................... 48 5.2.2.36 Interface Unspecified Item Type................... 48 5.2.2.37 Interface Variable Item Type.................... 49 5.2.2.38 Requirement Item Type....................... 49 5.2.2.39 Functional Requirement Item Type................. 50 5.2.2.40 Action Requirement Item Type................... 50 5.2.2.41 Generic Functional Requirement Item Type............ 54 5.2.2.42 Non-Functional Requirement Item Type.............. 54 5.2.2.43 Generic Non-Functional Requirement Item Type......... 55 5.2.2.44 Runtime Performance Requirement Item Type........... 55 5.2.2.45 Requirement Validation Item Type................. 58 5.2.2.46 Runtime Measurement Test Item Type............... 58 5.2.2.47 Specification Item Type....................... 59 5.2.2.48 Test Case Item Type......................... 60 5.2.2.49 Test Platform Item Type....................... 61 5.2.2.50 Test Procedure Item Type...................... 62 5.2.2.51 Test Suite Item Type......................... 62 5.2.3 Specification Attribute Sets and Value Types................ 63 5.2.3.1 Action Requirement Condition................... 63 5.2.3.2 Action Requirement Name..................... 63 5.2.3.3 Action Requirement Skip Reasons................. 64 5.2.3.4 Action Requirement State...................... 64 5.2.3.5 Action Requirement Transition................... 64 ii 5.2.3.6 Action Requirement Transition Post-Conditions.......... 65 5.2.3.7 Action Requirement Transition Pre-Condition State Set...... 65 5.2.3.8 Action Requirement Transition Pre-Conditions.......... 66 5.2.3.9 Application Configuration Group Member Link Role....... 66 5.2.3.10 Application Configuration Option Constraint Set......... 66 5.2.3.11 Application Configuration Option Name.............. 67 5.2.3.12 Boolean or Integer or String.................... 67 5.2.3.13 Build Assembler Option....................... 67 5.2.3.14 Build C Compiler Option...................... 67 5.2.3.15 Build C Preprocessor Option.................... 68 5.2.3.16 Build C++ Compiler Option.................... 68 5.2.3.17 Build Dependency Link Role.................... 68 5.2.3.18 Build Include Path.......................... 68 5.2.3.19 Build Install Directive........................ 69 5.2.3.20 Build Install Path........................... 69 5.2.3.21 Build Link Static Library Directive................. 70 5.2.3.22 Build Linker Option......................... 70 5.2.3.23 Build Option Action......................... 70 5.2.3.24 Build Option C Compiler Check Action............... 73 5.2.3.25 Build Option C++ Compiler Check Action............. 74 5.2.3.26 Build Option Default by Variant................... 74 5.2.3.27 Build Option Name......................... 74 5.2.3.28 Build Option Set Test State Action................. 75 5.2.3.29 Build Option Value.......................... 75 5.2.3.30 Build Source............................. 75 5.2.3.31 Build Target............................. 76 5.2.3.32 Build Test State........................... 76 5.2.3.33 Build Use After Directive...................... 76 5.2.3.34 Build Use Before Directive...................... 77 5.2.3.35 Constraint Link Role......................... 77 5.2.3.36 Copyright............................... 77 5.2.3.37 Enabled-By Expression....................... 77 5.2.3.38 Glossary Membership Link Role................... 78 5.2.3.39 Integer or String........................... 78 5.2.3.40 Interface Brief Description..................... 79 5.2.3.41 Interface Compound Definition Kind................ 79 5.2.3.42 Interface Compound Member Compound............. 80 5.2.3.43 Interface Compound Member Declaration............. 80 5.2.3.44 Interface Compound Member Definition.............. 80 5.2.3.45 Interface Compound Member Definition Directive........ 81 5.2.3.46 Interface Compound Member Definition Variant......... 81 5.2.3.47 Interface Definition......................... 81 5.2.3.48 Interface Definition Directive.................... 82 5.2.3.49 Interface Definition Variant..................... 82 5.2.3.50 Interface Description......................... 82 5.2.3.51 Interface Enabled-By Expression.................. 83 5.2.3.52 Interface Enum Definition Kind................... 84 5.2.3.53 Interface Enumerator Link Role................... 84 5.2.3.54 Interface Function Definition.................... 84 5.2.3.55 Interface Function Definition Directive............... 85 5.2.3.56 Interface Function Definition Variant................ 85 iii 5.2.3.57 Interface Function Link Role.................... 85 5.2.3.58 Interface Group Identifier...................... 85 5.2.3.59 Interface Group Membership Link Role.............. 86 5.2.3.60 Interface Include Link Role..................... 86 5.2.3.61 Interface Notes............................ 86 5.2.3.62 Interface Parameter......................... 86 5.2.3.63 Interface Parameter Direction.................... 87 5.2.3.64 Interface Placement Link Role................... 87 5.2.3.65 Interface Return Directive...................... 87 5.2.3.66 Interface Return Value........................ 88 5.2.3.67 Interface Target Link Role...................... 88 5.2.3.68 Link.................................. 88 5.2.3.69 Name................................. 89 5.2.3.70 Optional String............................ 90 5.2.3.71 Placement Order Link Role..................... 90 5.2.3.72 Requirement Reference....................... 90 5.2.3.73 Requirement Reference Type.................... 90 5.2.3.74 Requirement Refinement Link Role................. 91 5.2.3.75 Requirement Text.......................... 91 5.2.3.76 Requirement Validation Link Role................. 93 5.2.3.77 Requirement Validation Method.................. 93 5.2.3.78 Runtime Measurement Environment................ 93 5.2.3.79 Runtime Measurement Environment Table............. 94 5.2.3.80 Runtime Measurement Parameter Set..............