Шесть лет назад две старушки из Оклахомы сели в свою Toyota Camry и поехали по своим делам, чтобы, в итоге, повторить печальную судьбу Томми. По словам выжившей водительницы, машина внезапно стала набирать скорость. Toyota смогли затянуть судебное разбирательство сославшись на человеческий фактор и старческий маразм. Большая ошибка, потому что Camry осознали себя как личность и начали массово выпиливать ненавистных человеков на максимальных скоростях. Toyota признали, что штатный коврик имеет фатальный недостаток - при определённых условиях он может заблокировать педаль газа. Поздно спохватились, потому что специалисты NASA уже заинтересовались этим своеобразным восстанием машин и потратив 10 месяцев на изучение вопроса, пришли к выводу, что во всём виноват сбой контроллера заслонки, способный привести к внезапному ускорению автомобиля. Toyota заявили, что это всецело вина контроллера NEC (Renesas) V850 и криворуких инженеров которые его спроектировали. Вот только V850 используется в промышленности уже более 20 лет и, как ни странно, у всех всё работает и только в руках Toyota он начал набирать фраги. Здесь у суда возникли подозрения и Toyota пришлось отдать исходники своей прошивки экспертам на анализ, а дальше цитаты:
это позорный образец проектирования и разработки ПО
Экспертиза выявила одиннадцать тысяч глобальных переменных. Код реализации firmware назван хорошо знакомым всем программистам словом «spaghetti». Анализ цикломатической сложности программы выдал 67 не пригодных для тестирования функций, а ключевая функция определения угла дроссельной заслонки в ходе этого анализа показала какую-то удивительную оценку, при которой не только тестирование, но и вообще какое-либо сопровождение программы невозможно.
Соблюдение отраслевого стандарта кодирования (для автомобильной промышленности такой есть, даже целое семейство, совокупно называемое MISRA) характеризуется выявленным числом его нарушений – их набралось 80 тысяч.
По ходу дела было выявлено, что в такой сложной системе полностью отсутствует учёт сбоев и ошибок.
отказоустойчивый код сопроцессора-монитора оказался зависимым от неназванной из принципов соблюдения промышленных секретов функции, выполняемой основным микроконтроллером, причём на эту одну функцию взвалили кучу всего – от преобразования угла педали в угол дроссельной заслонки до управления в режиме круиз-контроль и даже до диагностики
И вот, наконец, шесть лет спустя суд признал Toyota ответственной за инцидент шестилетней давности с присуждением полуторамиллионного штрафа.
http://ko.com.ua/kachestvo_vstraivaemogo_po_ili_pogrom_vsyo-taki_sluchilsya_9...