BSI PD CEN/TR 17603-40:2022
$215.11
Space engineering. Software engineering handbook
Published By | Publication Date | Number of Pages |
BSI | 2022 | 202 |
This Handbook provides advice, interpretations, elaborations and software engineering best practices for the implementation of the requirements specified in EN 16603-40 (based on ECSS-E-ST-40C). The handbook is intended to be applicable to both flight and ground. It has been produced to complement the EN 16603-40 Standard, in the area where space project experience has reported issues related to the applicability, the interpretation or the feasibility of the Standard. It should be read to clarify the spirit of the Standard, the intention of the authors or the industrial best practices when applying the Standard to a space project. The Handbook is not a software engineering book addressing the technical description and respective merits of software engineering methods and tools.
PDF Catalog
PDF Pages | PDF Title |
---|---|
2 | undefined |
10 | 1 Scope |
12 | 2 References |
14 | 3 Terms, definitions and abbreviated terms 3.1 Terms from other documents 3.2 Terms specific to the present document 3.3 Abbreviated terms |
17 | 4 Introduction to space software 4.1 Getting started 4.1.1 Space projects 4.1.2 Space standards: The ECSS System |
18 | 4.1.3 Key characteristics of the ECSS System 4.1.4 Establishing ECSS Standards for a space project |
19 | 4.1.5 Software / ECSS Standards relevant for Software |
21 | 4.1.6 Why are standards a MUST for the software development process? |
22 | 4.1.7 Executing a space software project 4.1.7.1 Overview 4.1.7.2 Lessons learned 4.1.7.3 Project Management 4.1.7.4 Reviews |
23 | 4.1.7.5 Processes 4.1.8 Disciplines in Space Software Projects 4.1.8.1 Overview |
24 | 4.1.8.2 Software System Engineering (Co-engineering) 4.1.8.3 Software Design and Implementation 4.1.8.4 Software Configuration Management 4.1.8.5 Software Product Assurance 4.2 Getting compliant 4.2.1 The ECSS-E-ST-40C roles 4.2.1.1 Customer – Supplier definition |
25 | 4.2.1.2 User 4.2.1.3 The SOS Entity |
26 | 4.2.1.4 Maintainer 4.2.1.5 Operator 4.2.1.6 Conductor 4.2.1.7 Roles relationship |
28 | 4.2.2 Compliance with the ECSS-E-ST-40C |
30 | 4.2.3 Characterization of space software leading to various interpretations/applications of the standard 4.2.3.1 Introduction 4.2.3.2 Flight software characterization |
31 | 4.2.3.3 Ground segment software characterization |
33 | 4.2.4 Software criticality categories 4.2.4.1 Software criticality analysis |
34 | 4.2.4.2 Critical software |
35 | 4.2.5 Tailoring |
37 | 4.2.6 Contractual and Organizational Special Arrangements 4.2.6.1 Contractual and Organisational Aspects of Software Development 4.2.6.2 Warranty, User support and Maintenance |
39 | 4.2.6.3 Software Delivery Modalities |
40 | 4.2.6.4 Software Development Environment 4.2.6.5 Software Development Methodologies 4.2.6.6 Software Acceptance Modalities and Warranty Period |
41 | 4.2.6.7 Intellectual Property Rights management |
42 | 4.2.6.8 Other development constraints / Customer Furnished Items |
43 | 5 Guidelines 5.1 Introduction 5.2 Software related system requirement process 5.2.1 Overview 5.2.1.1 Introduction |
44 | 5.2.1.2 System engineering |
45 | 5.2.1.3 System level framework relevant for Software 5.2.1.4 Software System Engineering 5.2.1.5 Co-engineering by means of an Integrated System / Software team |
46 | 5.2.1.6 Preconditions / Tailoring 5.2.2 Software related system requirements analysis 5.2.2.1 Specification of system requirements allocated to software |
47 | 5.2.2.2 Identification of observability requirements 5.2.2.3 Specification of Human Machine Interface requirements 5.2.3 Software related system verification 5.2.3.1 Verification and Validation process requirements 5.2.3.2 System input for software validation 5.2.3.3 System input for software installation and acceptance |
48 | 5.2.4 Software related system integration and control 5.2.4.1 Identification of software versions for software integration into the system 5.2.4.2 Supplier support to system integration 5.2.4.3 Interface requirement specification 5.2.4.4 System database |
53 | 5.2.4.5 Development constraints 5.2.4.6 On board control procedures |
54 | 5.2.4.7 Development of software to be reused 5.2.4.8 Software safety and dependability requirements 5.2.4.9 Format and data medium |
55 | 5.2.5 System requirement review 5.2.5.1 Relationship between software SRR and system SRR 5.2.5.2 Software requirement reviews |
56 | 5.3 Software management process 5.3.1 Overview 5.3.2 Software life cycle management 5.3.2.1 Software life cycle identification 5.3.2.2 Identification of interfaces between development and maintenance 5.3.2.3 Software procurement process implementation 5.3.2.4 Automatic code generation |
57 | 5.3.2.5 Change to baselines 5.3.3 Software project and technical reviews 5.3.3.1 Joint reviews 5.3.3.2 Software project reviews 5.3.3.3 Software technical reviews 5.3.4 Software project reviews description |
58 | 5.3.5 Software technical reviews description 5.3.5.1 Description |
60 | 5.3.5.2 Use of Technical Reviews to accommodate various life cycles |
65 | 5.3.6 Review phasing 5.3.6.1 Review phasing for flight software |
66 | 5.3.6.2 Review phasing for ground software 5.3.7 Interface management |
67 | 5.3.8 Technical budget and margin management 5.3.8.1 Software technical budget and margin philosophy definition 5.3.8.2 Technical budget and margins computation 5.3.9 Compliance to this Standard 5.4 Software requirements and architecture engineering process 5.4.1 Overview 5.4.2 Software requirement analysis 5.4.2.1 Establishment and documentation of software requirements |
68 | 5.4.2.2 Definition of functional and performance requirements for in flight modification 5.4.2.3 Construction of a software logical model |
69 | 5.4.2.4 Conduction a software requirement review 5.4.3 Software architectural design 5.4.3.1 Transformation of software requirements into a software architecture |
70 | 5.4.3.2 Software design method |
71 | 5.4.3.3 Selection of a computational model for real-time software 5.4.3.4 Description of software behaviour 5.4.3.5 Development and documentation of the software interface 5.4.3.6 Definition of methods and tools for software intended for reuse |
76 | 5.4.3.7 Reuse of existing software |
78 | 5.4.3.8 Definition and documentation of the software integration requirements and plan 5.4.4 Conducting a preliminary design review 5.5 Software design and implementation engineering process 5.5.1 Overview 5.5.2 Design of software items 5.5.2.1 Detailed design of each software components 5.5.2.2 Development and documentation of the software interfaces detailed design 5.5.2.3 Production of the detailed design model 5.5.2.4 Software detailed design method |
79 | 5.5.2.5 Detailed design of real-time software |
80 | 5.5.2.6 Utilization of description techniques for the software behaviour 5.5.2.7 Determination of design method consistency for real-time software 5.5.2.8 Development and documentation of the software user manual 5.5.2.9 Definition and documentation of the software unit test requirements and plan 5.5.2.10 Conducting a detailed design review 5.5.3 Coding and testing 5.5.3.1 Development and documentation of the software units 5.5.3.2 Software unit testing |
83 | 5.5.4 Integration 5.5.4.1 Software integration test plan development 5.5.4.2 Software units and software component integration and testing |
85 | 5.6 Software validation process 5.6.1 Overview |
86 | 5.6.2 Validation process implementation 5.6.2.1 Establishment of a software validation process |
90 | 5.6.2.2 Selection of an ISVV organization |
93 | 5.6.3 Validation activities with respect to the technical specification 5.6.3.1 Development and documentation of a software validation specification with respect to the technical specification 5.6.3.2 Conducting the validation with respect to the technical specification 5.6.3.3 Updating the software user manual 5.6.3.4 Conducting a critical design review 5.6.4 Validation activities with respect to the requirement baseline 5.6.4.1 Development and documentation of a software validation specification with respect to the requirement baseline |
94 | 5.6.4.2 Conducting the validation with respect to the requirement baseline 5.6.4.3 Updating the software user manual 5.6.4.4 Conducting a qualification review |
95 | 5.7 Software delivery and acceptance process 5.7.1 Overview 5.7.2 Software delivery and installation |
96 | 5.7.3 Software acceptance 5.7.3.1 Acceptance test planning |
97 | 5.7.3.2 Acceptance test execution 5.7.3.3 Executable code generation and installation 5.7.3.4 Supplier’s support to customer’s acceptance |
98 | 5.7.3.5 Evaluation of acceptance testing 5.7.3.6 Conducting an acceptance review |
99 | 5.8 Software verification process 5.8.1 Overview 5.8.2 Verification process implementation 5.8.2.1 Establishment of the software verification process |
102 | 5.8.2.2 Selection of the organization responsible for conducting the verification 5.8.3 Verification activities 5.8.3.1 Verification of requirements baseline |
104 | 5.8.3.2 Verification of the technical specification 5.8.3.3 Verification of the software architectural design |
105 | 5.8.3.4 Verification of software detailed design 5.8.3.5 Verification of code 5.8.3.6 Verification of software unit testing (plan and results) 5.8.3.7 Verification of software integration |
106 | 5.8.3.8 Verification of software validation with respect to the technical specification and the requirements baseline 5.8.3.9 Evaluation of validation: complementary system level validation 5.8.3.10 Verification of software documentation 5.8.3.11 Schedulability analysis for real-time software 5.8.3.12 Technical budget management 5.8.3.13 Behaviour modelling verification 5.9 Software operation process 5.9.1 Overview 5.9.1.1 Introduction |
108 | 5.9.1.2 Incident Management |
109 | 5.9.1.3 Problem Management 5.9.1.4 Release Management 5.9.2 Process implementation 5.9.3 Operational testing 5.9.4 Software operation support 5.9.5 User support |
110 | 5.10 Software maintenance process 5.10.1 Overview 5.10.2 Process implementation 5.10.2.1 Establishment of the software maintenance process |
114 | 5.10.2.2 Long term maintenance for flight software |
117 | 5.10.3 Problem and modification analysis 5.10.4 Modification implementation 5.10.5 Conducting maintenance review 5.10.6 Software migration 5.10.7 Software retirement |
118 | 6 Selected topics 6.1 Use Cases and Scenarios 6.1.1 Relation to the Standard 6.1.2 Introduction to use cases |
119 | 6.1.3 Identification of use cases 6.1.4 Formalization of each use case |
121 | 6.1.5 Definition and guidelines |
122 | 6.2 Life cycle 6.2.1 Relation to the Standard 6.2.2 Introduction |
124 | 6.2.3 Existing life-cycle models 6.2.3.1 Sequential models (Waterfall and V Models) |
125 | 6.2.3.2 Iterative models |
133 | 6.2.3.3 Multi-level (nested) 6.2.4 Choosing a Software life-cycle |
134 | 6.2.4.2 System-Software relationships |
135 | 6.2.4.3 Customer-Supplier relationship |
136 | 6.2.4.4 Influence of the used technologies/methods/languages 6.3 Model based Engineering 6.3.1 Relation to the Standard |
137 | 6.3.2 Definition and guidelines 6.3.2.1 Modelling 6.3.2.2 Model Based System Engineering |
138 | 6.3.2.3 Model Driven Architecture 6.3.2.4 Component model |
139 | 6.3.2.5 Model Based Testing |
140 | 6.4 Testing Methods and Techniques 6.4.1 Relation to the Standard 6.4.2 Introduction 6.4.3 Definitions 6.4.3.1 Black box test 6.4.3.2 Test coverage 6.4.3.3 Test objective 6.4.3.4 White box test 6.4.4 Test objectives 6.4.4.1 Interface testing |
142 | 6.4.4.2 Robustness Testing 6.4.4.3 Performance testing |
143 | 6.4.5 Testing strategies and approaches 6.4.5.1 Introduction 6.4.5.2 Testing techniques |
147 | 6.4.6 Real Time Testing |
148 | 6.5 Autocode 6.5.1 Relation to the Standard 6.5.2 Introduction |
149 | 6.5.3 Subsystem and software relationship around autocode 6.5.3.1 Introduction 6.5.3.2 Roles 6.5.3.3 Autocoding process |
152 | 6.5.3.4 Impact on the software reviews 6.5.4 From subsystem model to autocoded model 6.5.4.1 Traceability 6.5.4.2 Configuration Management 6.5.4.3 Modelling standard |
153 | 6.5.4.4 Verification and Validation 6.5.4.5 Modelling Coverage |
154 | 7 Real-time software 7.1 Relation to the Standard 7.2 Software technical budget and margin philosophy definition 7.2.1 Introduction |
155 | 7.2.2 Load and real-time 7.2.2.1 Schedulability analysis 7.2.2.2 Theoretical worst case and operational scenario |
156 | 7.2.2.3 Margins |
158 | 7.2.3 Memory capacity 7.2.4 Numerical Accuracy 7.2.5 Interface timing budget |
159 | 7.3 Technical budget and margins computation 7.3.1 Load and real-time |
160 | 7.3.2 Memory margins 7.3.3 Numerical accuracy budget management |
161 | 7.3.4 Interface timing budget management 7.4 Selection of a computational model for real-time software 7.4.1 Introduction |
162 | 7.4.2 Recommended Terminology |
166 | 7.4.3 Computational model 7.4.3.1 Overview |
169 | 7.4.3.2 Access to Hardware Resources |
170 | 7.4.3.3 Criteria for Computational Model selection |
171 | 7.5 Schedulability analysis for real-time software 7.5.1 Overview 7.5.2 Schedulability Analysis 7.5.2.1 Needed Input |
173 | 7.5.2.2 Description of the analysis method |
174 | 7.5.2.3 Quality of Schedulability Analysis Input |
177 | 7.5.2.4 Schedulability Analysis Results |
178 | 7.5.2.5 Schedulability Analysis Checklists |