Schulungen
- Schnellkurs: C++ für C Programmierer
- C++ ist nach wie vor eine wichtige Programmiersprache, vor allem wenn es um Geschwindigkeit, Verlässlichkeit oder Effizienz geht
- C++ wird immer weiter entwickelt: C++98, C++03, C++11, C++14, C++17, C++20.
- Leider ist die Komplexität der Sprache außergewöhnlich hoch
- Wie programmiert man sauber und zuverlässig?
- Welche C++ Sprachmittel erhöhen schnell die Produktivität?
- C++ Fußangeln und häufige Fehler
- Portabilität sicherstellen
- Performance sinnvoll optimieren
- Vorgaben für den gemeinsamen Programmierstil / Style Guides
- Automatische Tests / Regressionstests
- Continuous Integration
- Angepaßt auf Ihre Firma
- Aus dem Inhalt:
- classes and class hierarchies
- namespaces
- initializer_list
- templates
- C++ standard library
- containers and iterators
- std::vector, std::map ...
- C++03, C++11, C++14, C++17
- efficient sorting
- algorithms
- memory management and memory leaks
- exceptions
- smart pointers
- streams
- unit tests with cppunit
- C++ debugging and profiling tools
- Boost library
- floating-point environment
- multi threading support
- regular expressions
- random
- Wenn Softwarequalität lebenswichtig ist: MISRA Programmierstandards für sicherheitskritische Systeme:
- MISRA C und C++ wurden zunächst für die Autoindustrie entworfen, werden inzwischen auch in vielen anderen Branchen eingesetzt
- Programmierrichtlinien bestehen aus Regeln und empfohlenen Praktiken / Prozessen. Sie sollen helfen, Fehler von vorne herein zu vermeiden oder wenigstens früh zu entdecken.
- Qualititativ schlechter Quellcode führt zu
- Defekten
- Unfällen
- Rückruf von Produkten
- Langwierigem Schaden für den Ruf der Firma
- Gerichtsverfahren
- Die Produktivität der Programmierer sinkt
- sie brauchen viel Zeit um vertrackte Fehler zu lokalisieren
- Projekte verspäten sich
- Quellcode nicht portabel
- Quellcode schwer verständlich / Seiteneffekte
- MISRA Regeln wurden in andere bekannte Programmierstandards integriert, wie z.B. HighIntegrity C++, SEI CERT C und CERT C++, AdaptiveAutosar C++14 Ruleset
- Auch diverse Normen beziehen sich auf MISRA, z.B. ISO 26262 (automotive)
- Inzwischen gibt es mehrere Versionen der MISRA-Standards für C und C++:
- MISRA C:1998 für ISO:C90
- MISRA C:2004: (enhancements)
- MISRA C:2012 für ISO:C99
- MISRA C++:2008 für C++03
- MISRA C++:2020 für C++17
- Wichtig sind die Schulung der Mitarbeiter und die gerichtsfeste Organisation der Entwicklungs-Prozesse.