Diese Studienarbeit gibt einen Überblick über ausgewählte Teile des Softwareentwicklungsprozesses für sicherheitsrelevante Applikationen am Beispiel eines videobasierten Zugerkennungssystems. Eine IP-Kamera und ein externer Bildverarbeitungscomputer wurden dazu mit einer speziell entworfenen, verteilten Software ausgestattet. Die in Ada und C geschriebenen Teile kommunizieren dabei über ein dediziertes, UDP-basiertes Netzwerkprotokoll. Beide Programme wurden intensiv anhand verschiedener Techniken analysiert, die in der Norm EN 50128 festgelegt sind, welche sich speziell an Software für Eisenbahnsteuerungs- und überwachungssysteme richtet.
Eine an der Norm orientierte Struktur mit Verweisen auf die diskutierten Techniken zu Beginn eines jeden Abschnitts erlaubt einen schnellen Vergleich mit den originalen Anforderungen des Normtexts.
Zusammenfassend haben sich die Techniken bis auf wenige Ausnahmen als sehr geeignet für die praktische Entwicklung von sicherer Software erwiesen. Allerdings entbindet die Norm durch ihre teils sehr abstrakten Anforderungen das am Projekt beteiligte Personal in keinster Weise von seiner individuellen Verantwortung. Entsprechend sind die hier vorgestellten Techniken für andere Projekte nicht ohne Anpassungen zu übernehmen.:1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2 Description of the problem . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 Real-time constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 Safety requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2 Implementation details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1 Camera type and output format . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Transfer Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 Real-world constrains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4 Train Detection Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3 EN 50128 requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1 Software architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1.1 Defensive Programming . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.2 Fully Defined Interface . . . . . . . . . . . . . . . . . . . . . . . . 21
3.1.3 Structured Methodology . . . . . . . . . . . . . . . . . . . . . . . 21
3.1.4 Error Detecting and Correcting Codes . . . . . . . . . . . . . . . . 29
3.1.5 Modelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.1.6 Alternative optionally required measures . . . . . . . . . . . . . . 34
3.2 Software Design and Implementation . . . . . . . . . . . . . . . . . . . . . 35
3.2.1 Structured Methodology . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.2 Modular Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2.3 Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.2.4 Design and Coding Standards . . . . . . . . . . . . . . . . . . . . 39
3.2.5 Strongly Typed Programming Languages . . . . . . . . . . . . . . 41
3.2.6 Alternative optionally required measures . . . . . . . . . . . . . . 44
3.3 Unit Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4 Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 / This paper intends to give an overview of selected parts of the software development process for safety-relevant applications using the example of a video-based train detection. An IP-camera and an external image processing computer were equipped with a custom-built, distributed software system. Written in Ada and C, the system parts communicate via a dedicated UDP-based protocol. Both programs were subject to intense analysis according to measures laid down in the EN 50128 standard specifically targeted at software for railway control and protection systems.
Preceding each section, a structure resembling the standard document with references to the discussed measures allows for easy comparison with the original requirements of EN 50128.
In summary, the techniques have proven to be very suitable for practical safe software development in all but very few edge-cases. However, the highly abstract descriptive level of the standard requires the staff involved to accept an enormous personal responsibility throughout the entire development process. The specific measures carried out for this project may therefore not be equally applicable elsewhere.:1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2 Description of the problem . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 Real-time constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 Safety requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2 Implementation details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1 Camera type and output format . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Transfer Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 Real-world constrains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4 Train Detection Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3 EN 50128 requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1 Software architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1.1 Defensive Programming . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.2 Fully Defined Interface . . . . . . . . . . . . . . . . . . . . . . . . 21
3.1.3 Structured Methodology . . . . . . . . . . . . . . . . . . . . . . . 21
3.1.4 Error Detecting and Correcting Codes . . . . . . . . . . . . . . . . 29
3.1.5 Modelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.1.6 Alternative optionally required measures . . . . . . . . . . . . . . 34
3.2 Software Design and Implementation . . . . . . . . . . . . . . . . . . . . . 35
3.2.1 Structured Methodology . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.2 Modular Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2.3 Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.2.4 Design and Coding Standards . . . . . . . . . . . . . . . . . . . . 39
3.2.5 Strongly Typed Programming Languages . . . . . . . . . . . . . . 41
3.2.6 Alternative optionally required measures . . . . . . . . . . . . . . 44
3.3 Unit Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4 Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Identifer | oai:union.ndltd.org:DRESDEN/oai:qucosa:de:qucosa:27262 |
Date | 04 September 2013 |
Creators | Dorka, Moritz |
Contributors | Scholz, Sven, Kawan, Nils, Schütte, Jörg, Technische Universität Dresden |
Source Sets | Hochschulschriftenserver (HSSS) der SLUB Dresden |
Language | English |
Detected Language | English |
Type | doc-type:StudyThesis, info:eu-repo/semantics/StudyThesis, doc-type:Text |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.003 seconds