Safer C: Advanced programming with C and its derivatives
Termin: 12. - 13. November 2013Dauer: 9:00 Uhr bis ca. 17:00 Uhr
Ort: Steigenberger Graf Zeppelin, Stuttgart
Sprache: Englisch
Referent: Prof. Dr. Les Hatton
Frühbucherrabatt: 1.405,- € zzgl. MwSt. bei Anmeldung bis 12.08.2013
Kosten: 1.550,- € zzgl. MwSt.
For engineers or engineering management in any high-integrity, business-critical or safety-critical area employing C. Number of delegates trained >5000 in 13 countries.
Course Overview
Many software failures could have been avoided using techniques we already know how to do but for some reason, do not use. One such area of significant measurable failure is inadvertent misuse of the programming language. C is particularly prone to this and a significant number of system failures can be traced to this in spite of the fact that a great deal is known on how to avoid such failures. In view of the prominence of C in consumer electronic system development today, this course presents a practical development philosophy based around the notion of safer subsets of C. Copious data is presented showing how real C systems fail, followed by detailed strategies to avoid these failures.
It is well-known that C has avoidable fault modes which have caused many systems to fail. This course teaches how to develop more reliable systems by the use of appropriate avoidance techniques.
You should attend this course if:
- You would like to improve your knowledge of known fault modes in C
- You would like a more rounded background in high-integrity and safety-critical system development.
- You develop consumer electronic systems
Course Prerequisites
Some C programming experience is highly desirable, although a number of people have taken the course with very little such experience.
Course Synopsis
This 2-day course is about a safer and more reliable way of using the language C. It is based on extensive measurements of how C systems fail and the lessons we can learn from these failures. It is particularly relevant to the production of modern embedded systems for consumer electronics and provides a comprehensive introduction to the development of modern high-integrity, business-critical and safety-critical developments. It is suitable for both inexperienced and experienced C programmers and forms a sound, rigorous basis for such development. The course is copiously illustrated with data from real systems containing many surprises and important clues how to make software more reliable. Workshops, self-assessments and intriguing problems are included.
A considerable amount of background reading can be freely downloaded from: www.leshatton.org
Day 1 and first half of Day 2
- Introduction to how systems fail with many important examples and a summary of lessons to learn.
Standardisation and evolution of the C language and relationship to C++, Java, Javascript, perl, php and others.
Cataloguing poorly-defined behaviour. Various sources of information about C failure are referenced and used to provide a comprehensive understanding of how C and C-like systems fail in practice to assist in future avoidance of failure.
Safer subsets including the MISRA standard are discussed in some detail.
Key areas of difficulty (with many examples and strategically placed workshops)
- The pre-processor
- Conversion
- Interfaces
- Pointers
- Expressions and types
- Memory
- The library
- Case studies. Contemporary C from various sources is analysed to demonstrate problems in real code.
Second half of Day 2
- The wider picture: Systems engineering concepts
- In building reliable systems, the programming language is only part of the puzzle. In this section, attention is focussed on development techniques and systems engineering concepts such as control process feedback and its role in improving reliability. In particular, a section on inspections, one of the most successful methods for detecting defect ever discovered, occupies a substantial part of the afternoon. The following topics are covered:
- Code inspections
This section describes the basics of inspections and includes an inspection workshop to teach
fundamental principles.
- Complexity: its measurement and system implications
The influence of complexity on system properties is discussed with reference to several well-known
metrics. The unusual nature of the defect curve is explained and methods of exploiting it described.
Weitere Informationen finden Sie hier zum Download.
zurückJetzt anmelden
"Sehr guter Einstieg in die Problematik." (A. Bauer, Knorr-Bremse SfS GmbH)
"Es wird viel Wissen vermittelt." (H. Scherer, Robert Bosch GmbH)
"Sehr informativer Kurs, den auch jeder Manager unbedingt besuchen sollte." (anonym)