Gerard Holzmann: лекция о том, как программировали Curiosity


Gerard Holzmann из Лаборатории реактивного движения (Jet Propulsion Laboratory) NASA, на конференции HotDep 2012, прочёл лекцию о том, как писался код для марсохода Curiosity.
Какие методики, стандарты кодирования и инструменты разработки применялись программистами NASA, для написания кода.

скачать лекцию (mp4 — 228 Mb — продолжительность 1 час).

Тезисы
— написано 3.8 миллиона строк кода на языке C,
— было задействовано 40 программистов,
— код пислся в течении 5 лет (в среднем, получается 10 строк полностью тестируемого кода в час),
— работает это всё на VxWorks,
— Использовался Стандарт кодирования с проверкой по коммиту:
http://lars-lab.jpl.nasa.gov/JPL_Coding_Standard_C.pdf
(язык программирования С, 32 правила).
— Ежедневная сборка со статическим анализом кода (5 разных анализаторов),
— Warning считается ошибкой, штрафы за сломанный билд.
— Code review с использованием Scrub (какая-то внутренняя утилита).
— Юнит тесты.
— Ежедневные интеграционные тесты, штрафы за сломанный интеграционный тест.
— Утилита для логической проверки модели кода (‘logic verification with model checker’) ключевых частей программы. Выполняется математическое доказательство корректности кода на основании модели.
— Доска позора (вывешиваются фотографии нарушителей)

Ссылки
http://www.usenix.org/conference/hotdep12/tbd

По теме
Software Architecture for Autonomous Vehicles


Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение