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.