BS EN 50657:2017
$215.11
Railways Applications. Rolling stock applications. Software on Board Rolling Stock
Published By | Publication Date | Number of Pages |
BSI | 2017 | 144 |
1.1
This European Standard specifies the process and technical requirements for the development of software for programmable electronic systems for use in rolling stock applications.
Outside the scope of this standard is software that:
-
is part of signalling equipment (CENELEC sub-committee SC9XA applications) installed on board trains, or
-
does not contribute to, and is segregated from Rolling Stock operational functions.
1.2
This European Standard is applicable exclusively to software and the interaction between software and the system of which it is part.
1.3
Entry intentionally left empty
1.4
This European Standard applies to safety-related as well as non-safety-related software, including for example:
-
application programming,
-
operating systems,
-
support tools,
-
firmware.
Application programming comprises high level programming, low level programming and special purpose programming (for example: programmable logic controller ladder logic).
1.5
This European Standard also addresses the use of pre-existing software and tools. Such software may be used, if the specific requirements in 7.3.4.7 and 6.5.4.16 on pre-existing software and for tools in 6.7 are fulfilled.
1.6
Software developed according to a valid version of EN 50128 is considered as compliant to this standard. Software previously developed in accordance with any version of EN 50128 is also considered as compliant and not subject to the requirements on pre-existing software. For SIL1-SIL4 software under the scope of this standard, requirements included in this European Standard are equivalent to the SIL1-SIL4 software requirements of EN 50128:2011.
1.7
This European Standard considers that modern application design often makes use of software that is suitable as a basis for various applications. Such software is then configured by application data for producing the executable software for the application. This European Standard applies to such software. In addition, specific requirements for application data will be given.
1.8
Entry intentionally left empty.
1.9
This European Standard is not intended to be retrospective. It therefore applies primarily to new developments and only applies in its entirety to existing systems if these are subjected to major modifications. For minor changes, only 9.2 applies. However, application of this European Standard during upgrades and maintenance of existing software is recommended.
1.10
The relevant sections of this software standard are also applicable to programmable components (e.g. FPGA and CPLD), in addition to the applicable hardware standard (e.g. EN 50129, EN 50155, EN 61508-2). However, requirements of this software standard that are already covered by the applicable hardware standard do not need to be re-addressed.
When it is possible to exhaustively test the programmable logic for all possible inputs and internal logic states, this European Standard does not apply.
PDF Catalog
PDF Pages | PDF Title |
---|---|
2 | National foreword |
14 | 1 Scope |
15 | 2 Normative references 3 Terms, definitions and abbreviations 3.1 Terms and definitions |
21 | 3.2 Abbreviations |
22 | 4 Objectives, conformance and software integrity levels |
23 | 5 Software management and organization 5.1 Organization, roles and responsibilities 5.1.1 Objective 5.1.2 Requirements |
27 | 5.2 Personnel competence 5.2.1 Objectives 5.2.2 Requirements 5.3 Lifecycle issues and documentation 5.3.1 Objectives 5.3.2 Requirements |
30 | 6 Software assurance 6.1 Software testing 6.1.1 Objective 6.1.2 Input documents 6.1.3 Output documents |
31 | 6.1.4 Requirements 6.2 Software verification 6.2.1 Objective |
32 | 6.2.2 Input documents 6.2.3 Output documents 6.2.4 Requirements |
33 | 6.3 Software validation 6.3.1 Objective 6.3.2 Input documents 6.3.3 Output documents |
34 | 6.3.4 Requirements |
35 | 6.4 Software assessment 6.4.1 Objective 6.4.2 Input documents 6.4.3 Output documents 6.4.4 Requirements |
37 | 6.5 Software quality assurance 6.5.1 Objectives 6.5.2 Input documents 6.5.3 Output documents 6.5.4 Requirements |
40 | 6.6 Modification and change control 6.6.1 Objectives 6.6.2 Input documents 6.6.3 Output documents 6.6.4 Requirements |
41 | 6.7 Support tools and languages 6.7.1 Objectives 6.7.2 Input documents 6.7.3 Output documents 6.7.4 Requirements |
44 | 7 Software development 7.1 Lifecycle and documentation for software 7.1.1 Objectives 7.1.2 Requirements 7.2 Software requirements 7.2.1 Objectives 7.2.2 Input documents |
45 | 7.2.3 Output documents 7.2.4 Requirements |
47 | 7.3 Architecture and Design 7.3.1 Objectives 7.3.2 Input documents 7.3.3 Output documents |
48 | 7.3.4 Requirements |
54 | 7.4 Component design 7.4.1 Objectives 7.4.2 Input documents 7.4.3 Output documents 7.4.4 Requirements |
56 | 7.5 Component implementation and testing 7.5.1 Objectives 7.5.2 Input documents 7.5.3 Output documents 7.5.4 Requirements |
57 | 7.6 Integration 7.6.1 Objectives 7.6.2 Input documents 7.6.3 Output documents |
58 | 7.6.4 Requirements |
59 | 7.7 Overall Software Testing / Final Validation 7.7.1 Objectives 7.7.2 Input documents 7.7.3 Output documents |
60 | 7.7.4 Requirements |
61 | 7.8 Development of Software configured by application data 7.8.1 Objective 7.8.2 Requirements |
62 | 8 Systems configured by application data: development of application data 8.1 Objectives 8.2 Input documents |
63 | 8.3 Output documents 8.4 Requirements 8.4.1 Application Development Process |
64 | 8.4.2 Application Requirements Specification 8.4.3 Architecture and Design |
65 | 8.4.4 Application Data Production 8.4.5 Application Integration and Testing |
66 | 8.4.6 Application Validation and Assessment 8.4.7 Application preparation procedures and tools 9 Software deployment and maintenance 9.1 Software deployment 9.1.1 Objective 9.1.2 Input documents 9.1.3 Output documents |
67 | 9.1.4 Requirements |
68 | 9.2 Software maintenance 9.2.1 Objective 9.2.2 Input documents 9.2.3 Output documents |
69 | 9.2.4 Requirements |
71 | Annex A (normative)Criteria for the Selection of Techniques and Measures A.1 General |
72 | A.2 Clauses tables |
79 | A.3 Detailed tables |
84 | Annex B (normative)Key software roles and responsibilities |
97 | Annex C (informative)Documents Control Summary |
99 | Annex D (informative)Bibliography of techniques D.1 Artificial Intelligence Fault Correction D.2 Analysable Programs |
100 | D.3 Avalanche/Stress Testing D.4 Boundary Value Analysis |
101 | D.5 Backward Recovery D.6 Cause Consequence Diagrams D.7 Checklists |
102 | D.8 Control Flow Analysis D.9 Common Cause Failure Analysis D.10 Data Flow Analysis |
103 | D.11 Data Flow Diagrams D.12 Data Recording and Analysis |
104 | D.13 Decision Tables and Truth Tables D.14 Defensive Programming |
105 | D.15 Coding Standards and Style Guide |
106 | D.16 Diverse Programming |
107 | D.17 Dynamic Reconfiguration D.18 Equivalence Classes and Input Partition Testing |
108 | D.19 Error Detecting and Correcting Codes D.20 Error Guessing D.21 Error Seeding |
109 | D.22 Event Tree Analysis D.23 Fagan Inspections D.24 Failure Assertion Programming |
110 | D.25 SEEA – Software Error Effect Analysis D.26 Fault Detection and Diagnosis |
111 | D.27 Finite State Machines/State Transition Diagrams |
112 | D.28 Formal Methods D.28.1 General D.28.2 CSP – Communicating Sequential Processes |
113 | D.28.3 CCS – Calculus of Communicating Systems D.28.4 HOL – Higher Order Logic D.28.5 LOTOS D.28.6 OBJ |
114 | D.28.7 Temporal logic D.28.8 VDM – Vienna Development Method |
115 | D.28.9 Z method D.28.10 B method |
116 | D.28.11 Model Checking D.29 Formal Proof D.30 Forward Recovery |
117 | D.31 Graceful Degradation D.32 Impact Analysis D.33 Information Hiding / Encapsulation |
118 | D.34 Interface Testing D.35 Language Subset D.36 Memorizing Executed Cases |
119 | D.37 Metrics D.38 Modular Approach |
120 | D.39 Performance Modelling D.40 Performance Requirements |
121 | D.41 Probabilistic Testing D.42 Process Simulation |
122 | D.43 Prototyping / Animation D.44 Recovery Block D.45 Response Timing and Memory Constraints D.46 Re-Try Fault Recovery Mechanisms |
123 | D.47 Safety Bag D.48 Software Configuration Management D.49 Strongly Typed Programming Languages |
124 | D.50 Structure Based Testing D.51 Structure Diagrams |
125 | D.52 Structured Methodology D.53 Structured Programming |
126 | D.54 Suitable Programming languages |
127 | D.55 Time Petri Nets D.56 Walkthroughs / Design Reviews D.57 Object Oriented Programming |
128 | D.58 Traceability D.59 Metaprogramming |
129 | D.60 Procedural programming D.61 Clause intentionally left empty D.62 Clause intentionally left empty D.63 Clause intentionally left empty D.64 Clause intentionally left empty D.65 Data modelling |
130 | D.66 Control Flow Diagram/Control Flow Graph |
131 | D.67 Sequence diagram D.68 Tabular Specification Methods |
132 | D.69 Application specific language D.70 UML (Unified Modelling Language) |
133 | D.71 Domain specific languages D.72 Segregation |
135 | Annex E (informative)Changes in this European Standard compared to EN 50128:2011 |
141 | Annex ZZ (informative)Relationship between this European Standard and the Essential Requirements of EU Directive 2008/57/EC |