Пользователь
57,4
рейтинг
9 февраля 2011 в 19:36

Разработка → 280 000 строк кода — ни одной ошибки?



Государственная комиссия из министерства транспорта США и НАСА изучила 280 000 строчек кода в автомобилях Toyota и не нашла в них ошибок. Таким образом, названы две причины массовых случаев ДТП с участием автомобилей Toyota: это неправильное расположение коврика и залипающая педаль акселератора.

По главному пункту обвинения — сбоях в управляющей электронике и программном обеспечении — крупнейший в мире производитель автомобилей официально признан невиновным.

Это большая победа для Toyota. Сразу после оглашения выводов комиссии акции компании подскочили аж на 4,6%.

Конечно, теперь Toyota должна будет провести бесплатный ремонт миллионов автомобилей и выплатить компенсации тысячам пострадавших. Но главное, что восстановлено доверие к хайтек-компонентам самых нашпигованных электроникой автомобилей в мире. Таким образом, передовой имидж Toyota сохранён.

Ну а профессионалам остаётся только удивляться, как может нормально работать без сбоев программно-аппаратный комплекс на колёсах под управлением 280000 строчек кода. Видимо, в программировании автомобильной электроники действуют совершенно иные стандарты качества, нежели в создании софта для ПК.
Анатолий Ализар @alizar
карма
751,5
рейтинг 57,4
Пользователь
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

Комментарии (104)

  • +1
    Софт и ПО это не синонимы?
    • +39
      Ализар же
      • +2
        Этот комментарий всегда собирает много плюсов.
        • –1
          И каждый всегда, к сожалению, опускает карму.
    • 0
      Судя по всему, в коде таки были комментарии…
      • –3
        осторожно, кармадроты
  • +19
    «компьютерщикам» — Ализар, такой Ализар…
    • +30
      Ализар — катализатор дискуссий. Что бы ни написал, как бы ни написал — всегда есть повод побурлить
      • +11
        Что бы не написал — все имеет желтый заголовок. Предлагаю администрации хабра его топики выделять соответствующим цветом
        • +1
          *ни написал
          • +1
            Use Alizar's topic highlighter, Luke
    • 0
      >«компьютерщикам» — Ализар, такой Ализар…

      А по-моему он просто издевается. Тынц.
  • +9
    Сейчас читаю книгу «Бережливое производство программного обеспечения», где главная идея основана на подходе Toyota к производству автомобилей. Думаю Toyota использует такой же подход для разработки своего ПО, который исключает появления ошибок, а не ищет ошибки в уже существующем коде.
    • +37
      Единственная возможность исключить ошибки, как известно, это не писать никакого кода.
      • +1
        Конечно такой подход не исключает появления ошибок полностью, но уменьшает ихнее количество очень сильно.
      • +53
        Именно поэтому у АвтоВаза тоже нет ни одной ошибки в коде.
        • +10
          нет, просто там у кого-то в генетическом коде имеется баг.
        • 0
          До 26 апреля сего года не было ни единого разрыва
  • 0
    Главная проблема — убитый автопром США. Поэтому там явно государство сказало или отзываете Приусы свои или закроем импорт.
    • +4
      Хитрый план такой хитрый
      • +1
        Эм, это экономика ребята.
        США потеряла весь автопром кроме Форда, который держится лишь европейским отделением. Это не очень хорошо.
    • 0
      Прям как в анекдоте, продолжите сами:
      «Пришел Обама значит на совет директоров Тойоты, а там...»
    • 0
      Я за этой историей слежу практически с самого начала и она чем дальше, тем нитки всё белее. Есть такое ощущение, что неисправностей просто нет и не было никогда.
      • 0
        Эм, а я о чем?
        • 0
          Ага, это я как бы в подтверждение.
  • +71
    Говоря откровенно

    After looking at more than 280,000 lines of software code in Toyota vehicles, NASA engineers found no electronic flaws capable of producing the large throttle openings required to create dangerous, high-speed unintended acceleration incidents, the Transportation Department said in a statement releasing its findings.


    не говорит, что в коде нет ошибок :) Нет ошибок приводящих именно к самопроизвольному увеличению скорости, которое кажется и рассматривалось в деле.

    Так что не стоит думать, что в 280к кода ошибок нет
    • +49
      Не парьтесь, это фирменный стиль автора. Все привыкли давно и не воспринимают эти «новости» всерьез.
      • +7
        Все равно рад за Тойоту!
        • +3
          А уж акционеры как рады )
          • +1
            А уж программисты, которые писали этот код… мне было бы не по себе, если бы я знал, что из-за моих ошибок погибли или пострадали люди
    • +2
      В каждой новости ализара найдется такой комментарий. Может из них сделать отдельный блог? Или просить самого ализара добавлять ссылку на коммент с разбором в топик :)
      • +14
        И как вы себе это видите?
        Вот, товарищи, сама новость.
        А вот тут написано, что я дурак.

        • –3
          Тэг irony просто парсер вырезал…
          • –3
            Ну у меня тоже вырезал. Только тэг был sarcasm
      • НЛО прилетело и опубликовало эту надпись здесь
        • +12
          Может сразу дать ему отдельный Хабр? :)
  • 0
    можно узнать, как именно комиссия их изучила? баги, как известно, ищутся при тестировании, со временем
    • +5
      Отсутствие багов можно доказать математически, см. формальные методы.
      Например, в Париже есть полностью автоматизированная ветка метро. Безопасность критически важных частей была доказана именно с помощью формальных методов.
      • 0
        Критически важных естественно там не может быть, на это тестов должно быть полно. Хотя это опять таки из-за желтушности заголовка, на самом деле проверили как раз таки критические баги. Я прочитал, что проверили именно все.
      • +1
        280000 строк формальными методами? Это сколько времени надо?
      • 0
        Доказать корректность и доказать отсутвие багов — разные вещи.
      • 0
        Как как насчет проблемы полноты, P ≠ NP и иже с ним? Если говорить о формуле рассчета чего-либо это одно. Но никак не о конечном автомате в целом и программах в частности.
        • 0
          Я не эксперт по формальным методам, но если им посвящена целая область computer science и они успешно используются для проверки реальных систем — видимо, есть методы для ограничения сложности. Википедия упоминает некие методы абстракции, позволяющие проверить несколько состояний системы за один шаг («smart and domain-specific abstraction techniques to consider whole groups of states in a single operation and reduce computing time»).
  • –5
    ПО для авто влияет на седло, софт для компов копируют назло )
    • +3
      твой хип-хоп отстоен
  • 0
    >>самых нашпигованных электроникой автомобилей в мире

    orly?
    • 0
      мне почему то всегда казалось, что например автомобили акура от хонды содержат намного больше электроники, чем автомобили тойота. сам езжу на королле и не замечаю этой «нашпигованности». конечно к примеру линейка лэнд крузер содержит намного больше электроники, но опять же сравните с той же акурой.
      • –1
        Спешу напомнить, что в Америке производят и продают Lexus, который намного более продвинутый, так сказать.

        Ваш К.О.
        • +2
          Lexus подмарка Toyota.
          Ваш К.О.
          • 0
            Ну не то чтобы уж подмарка, просто эт как Nokia и Vertu. Те же яйца, только на порядок дороже и в профиль.
            • 0
              Ну да более понтовое подразделение той-же фирмы как не крути. Технологии одни и те-же, инженеры фактически тоже, дизайнеры разные.
              • +1
                Да ладно, сравните LX570 и LC 200 или GX470 и LC Prado. Какой там разные, такое чувство, что разные там только движки (и опций чуть добавили).
          • –2
            Вот это новость!
          • –1
            Можно я продолжу
            Lexus — Toyota
            Acura — Honda
            Infinity — Nissan
      • 0
        Я, честно говоря, имел в виду немцев. Например BMW с их iDrive.
  • 0
    >>Таким образом, названы две причины массовых случаев ДТП с участием >>автомобилей Toyota: это неправильное расположение коврика и >>залипающая педаль акселератора.
    К сожалению, скорее всего, есть и третья причина: человеческий фактор :(
  • 0
    Интересно, а как они смотрел, ошибок код и не даст, компилируется то он нормально, а вот всю логику проверить… смутно верится.
    • 0
      Существуют методики верификации программ, например математическими методами — берется и доказывается как теорема, что код обладает нужными свойствами, например в PVS и аналогах.
      Но дело это по многим причинам настолько редкое, муторное, долгое и дорогое, что применяется только для крайне важных программулин, например — прошивки систем жизнеобеспечения, где глюк может вызвать летальный исход.
      По идее логику работы акселератора/тормозов тоже нужно верифицировать.
      • 0
        В таких критических системах, как мне кажется, просто делаются дополнительные системы защиты, которые запрещают недопустимые состояния. Конечно, где-то и верифицируют. Но за стенами университета про «проверку моделей» я нигде больше не слышал.
  • 0
    Я так понимаю, что ПО для автомобилей и не только пишется на специализированных языках программирования, которые более адаптированы к данной отрасли.
  • +4
    Ещё одна область, в которой требуется отказоустойчивое ПО — это космос.
    Любопытные могут ознакомиться с документом NASA Software Safety Guidebook.
    Полистайте — не пожалеете. Местами весьма увлекательное чтиво.
    • 0
      Фильм был про это кстати документальный вроде
    • +3
      Поэтому американцы на Союзах летают?)
      • +2
        Нет поэтому, в их ПО гораздо меньше ошибок, чем в нашем -)
    • +1
      зашёл сюда, чтобы запостить линк.
  • НЛО прилетело и опубликовало эту надпись здесь
    • +4
      В педали и коврике ошибки таки нашлись.
      • +23
        Написать 280000 строк кода и ошибиться в коврике… Японцы…
        • +9
          Коврик небось зааутсорсили в Китай.
          • 0
            Коврики надо было заказать с DX
          • 0
            В Индию.
        • +3
          Для коврика тестов не написали.
  • 0
    Вот вроде баг фикс как выглядит
  • +1
    Чуваки, без обид, это была педаль.
    Это я вам как обладатель Яриса 2008 года говорю.
    • 0
      У Тойоты было 2 отзыва на коврик и на педаль, если мне не изменяет память, отзывали разные модели по этим отзывам.
      • 0
        Возможно — я не следил.
        Просто на моей машине была такая штука, что педаль газа «залипала» — это был чисто механический дефект (который устранили заплаткой из Японии=), электроника себя всегда ведёт корректно.
    • +1
      Чо, прям вот брала и сама разгонялась? Позвольте не поверить. Амфетамины вперемешку с водкой — более вероятный сценарий.
      • 0
        Воображение должно работать хоть немного дальше прочитанного: если больше 2-х часов за рулем и в салоне жарко и выжимаешь педаль до упора, то она не сразу возвращается на своё место, когда убираешь с неё ногу.
        • 0
          Вот чем плох автомат. На механике выжал сцепление и машине уже побоку, что педаль все еще подкидывает топливо в движок
          • 0
            Не каждый еще сможет быстро сориентироваться с залипшей педалью газа и выжать сцепление.
            • 0
              По-моему это уже проблема того самого «не каждого» :)
              • 0
                Слишком категорично. Паника в такой ситуации — это нормально.
  • +1
    Я могу представить как можно написать 280к строчек без ошибок.
    Особенно если мы говорим об автомобилях, самолетах и лифтах разных( генерируемый код, SDL, каскад тестов на конечные автоматы — в общем проходил на собственном опыте )
    Но как может внешний человек проверить «это» — не представляю в принципе
    • +4
      Проверяли люди из NASA. У них там с тестированием тоже строго.
  • +4
    Не разгонялась я, он сам пришел
  • 0
    fail
  • +4
  • +1
    У нас компания работает по созданию софта вместе с Японцами, наслышан от коллег, занятых в этом проекте о качестве работы ихних QA. Глубина проверки просто ошеломляет, отсюда и результаты…
    • +2
      ИХ
  • 0
    В книге: «Совершенный код. Мастер-класс. Стив МакКоннелл.» автор вам расскажет как в коде на 280 000 строк кода может быть минимум ошибок.
    А так сами подумайте: почему проверяла именно НАСА. Как часто программисты этой компании допускают ошибки в исходном коде?
  • 0
    Надеюсь, код был предоставлен с девайсами?

    А то тупо смотреть в чужой софт — седьмой круг ада. Другое дело погонял на камри, проверил циклы, красота.
  • +3
    У меня только что был случай. Надо было написать некую программу для брокеров (Java, Web-based + MS SQL), которая базировалась на таблицах системы управления конторой (с оборотом больше миллиарда долларов в год). Работал один с небольшой поддержкой бизнес-аналиста из IBM — это их железячный клиент, но с таким маленьким заказом им, конечно, связываться не хотелось, а отказать было неудобно, я два раза работал на ИБМ, они меня знали, поэтому попросили сделать.

    Работал 3 месяца по вечерам, но на пустой БД — мне доступ не дали даже к старым данным. Таблиц тысячи, заполнить данными нереально. Так что приходилось очень тщательно подходить к алгоритмам (там не рокет сайенс, но достаточно сложно) и кодированию.

    Начали тестировать с января, тестировали месяц. И вот неделю назад выдали отчет: не нашли ни одной ошибки.

    Это не очень большая задача — примерно 800 кб кода на джаве, html/jsp, css, ajax. Не тойота, конечно, но так чтобы с первого раза все заработало и ни одной ошибки вообще — у меня это первый раз.

  • 0
    K сенсационным выводам пришли представители фирмы Toyota, которые собственными силами расследовали причины «педальной проблемы» у продаваемых ею в США автомобилей. Такие машины, по словам их владельцев, начинали разгоняться из-за заедания педали газа — даже при нажатии на тормоз. Оказалось, что практически во всех случаях, по которым поступали жалобы, водители просто путали педали и вместо того, чтобы осадить железного коня, понукали его.

    С марта текущего года японцы исследовали данные примерно с двух тысяч бортовых самописцев на самопроизвольно ускорявшихся автомобилях. Как выяснилось по итогам анализа, чаще всего, когда машина начинала резко разгоняться, сидящий за рулём, надо полагать безотчётно, что было мочи выжимал акселератор. Эту информацию в ходе телефонного интервью сообщил представитель американского подразделения Тойоты Майк Мичелс, пояснив, что компания, тем не менее, продолжает искать и другие причины проблемы.


    www.drive.ru/toyota/shortnews/2010/07/14/3457123.html
  • +2
    Зато в Лада-калина коврик ровно лежит ))
  • 0
    Профессионалам привет.
    Учимся читать до конца.

    • +1
      «They (NASA) found no proof that electronic glitches or computer problems led to unintended acceleration in Toyota vehicles.»

      Про ошибки «вообще» я там ничего не вижу.
  • 0
    Три. Положим допустимо использовать «ихний» как притяжательное местоимение. Тогда все-равно количество *кого/чего* -> родительный падеж = «их», а не притяжательный «ихнее».
    Пример: мое величество vs. величество меня. :-)
  • +1
    >>Ну а профессионалам остаётся только удивляться, как может нормально работать без сбоев программно-аппаратный комплекс на колёсах под управлением 280000 строчек кода. Видимо, в программировании автомобильной электроники действуют совершенно иные стандарты качества, нежели в создании софта для ПК.

    вы видимо мемуаров фейнмана не читали

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.