Android

Как избежать проблем с программным обеспечением

HTML Character Encoding

HTML Character Encoding

Оглавление:

Anonim

В эту цифровую эпоху вы наверняка слышали о таких гигантах социальных сетей, как Facebook и Twitter, а также о платформах электронной коммерции, таких как Alibaba и Amazon. Эти веб-сайты полагаются на различные пакеты программного обеспечения для их работы. Эти программы откровенно изменили то, как мы работаем, думаем и живем.

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

Тем не менее, ошибки в программном обеспечении могут быть весьма проблематичными, особенно в связи с нашей большей зависимостью от них в повседневной деятельности. Фактически, было довольно много случаев, когда программное обеспечение не соответствовало своему назначению, что приводило к неприятным результатам.

Мы говорим о 4 случаях, когда производительность программного обеспечения значительно не достигла своей цели, и о том, как избежать таких проблем с программным обеспечением.

Читайте также: 10 причин, по которым не стоит спешить покупать iPhone X

1. США мультигосударственный 911 Outage

911 является критически важной службой, которая позволяет людям обращаться к персоналу аварийной службы при необходимости. Время от времени, связываясь с экстренными диспетчерами через 911, можно буквально изменить жизнь и смерть.

Таким образом, это была настоящая катастрофа, когда 9 апреля 2014 года 911 маршрутизация вызовов потерпела неудачу в семи штатах США, в том числе в Калифорнии, Флориде, Миннесоте, Северной Каролине, Пенсильвании, Южной Каролине и Вашингтоне.

Этот сбой был вызван предотвратимой ошибкой кодирования, которая произошла в центре управления экстренными вызовами в Колорадо, который принадлежал Intrado.

2. Заземление парка самолетов United Airlines.

В июле 2015 года United Airlines была вынуждена заземлить весь парк самолетов из-за сбоя программного обеспечения. Это затронуло более 4900 рейсов по всему миру и привело к тому, что многие пассажиры оказались в аэропортах и ​​оказались совершенно разочарованными.

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

3. Неисправность педали акселератора Toyota Camry

В сентябре 2007 года Джин Букут ехала по межштатной автомагистрали 69 в Оклахоме вместе с пассажиром Барбарой Шварц, когда столкнулась с трудностями при управлении своей Toyota Camry.

Она попыталась поднять ноги с дросселя, но машина продолжала ускоряться. Педаль тормоза не смогла остановить машину, и она была вынуждена использовать свой экстренный тормоз.

К сожалению, это отправило машину, идущую на набережную. Шварц умер в результате, и Букут был госпитализирован на пять месяцев из-за серьезных травм.

Предполагалось, что авария произошла из-за нескольких ошибок кодирования, которые привели к сбою задачи в процессоре Camry. Этот процессор будет контролировать огромное количество функций, включая зажигание, управление дроссельной заслонкой и круиз-контроль.

Код Тойоты стал неразберихой после нескольких лет накопления новых кодов на старых. Обычно это называют «кодом спагетти».

Код спагетти излишне сложен и делает почти невозможным поиск ошибок. Более того, Toyota также нарушила несколько правил безопасности при кодировании. Следует отметить, что это не было единичным случаем непреднамеренного ускорения в Toyota.

Однако авария Bookout выявила эту проблему и выявила недостатки Toyota в их программном процессе. Было даже обнаружено, что существует более 10 миллионов способов для нежелательного ускорения, потенциально основанного на структуре кода Toyota.

Гнездо Термостат Отказ

Nest - компания, принадлежащая Alphabet, которая производит умные термостаты. Эти термостаты довольно изящны и позволяют пользователям контролировать температуру в своих домах со своих смартфонов.

Прошлой зимой у термостатов Nest произошел сбой в виде неисправного обновления программного обеспечения, которое привело к разрядке их батарей. К сожалению, эта ошибка произошла в середине зимы, оставив несколько пользователей временно без тепла. Это определенно то, что вы не хотите случиться в это время года.

Смотрите далее: Селфи не так тривиальны, как социальные медиа сделали их поздними

Краткий анализ проблем программного обеспечения

Такие подходы, как дизайн на основе моделей и TLA +, позволяют разработчикам получить более полное представление о том, как работает их программное обеспечение.

Бретт Виктор, известный компьютерный исследователь, считает, что между программистами и проблемами, которые они пытаются решить с помощью кодов, существует несоответствие.

Из-за этого разъединения программистам становится трудно представить, что они пытаются вставить в коды. Виктор считает, что это один из факторов, способствующих распространению программного обеспечения ошибок.

Тем не менее, есть надежда. Такие подходы, как дизайн на основе моделей и TLA +, позволяют разработчикам получить более полное представление о том, как работает их программное обеспечение.

Основанное на модели проектирование, как следует из названия, позволяет разрабатывать программное обеспечение с помощью визуальных моделей. TLA +, что расшифровывается как Temporal Logic of Actions, это язык, разработанный для написания спецификаций компьютерной программы. Отличительной особенностью TLA + является то, что он позволяет проводить всестороннее тестирование и проверку программного обеспечения до его публикации.

И дизайн на основе модели, и TLA + уже доказали свою солидность. Esterel technologies, фирма по разработке программного обеспечения, использует основанный на моделях дизайн для создания критически важного для безопасности программного обеспечения, в то время как TLA + используется подобными Microsoft для исправления возможной катастрофической ошибки Xbox, а Европейским космическим агентством - для переписывания кодов для зонда, который приземлился на комету.

Процесс написания кода высоко ценится программистами. Многие из них просто заинтригованы процессом написания кодов. Поэтому сложно заставить некоторых программистов принять такие подходы, как проектирование на основе моделей и TLA +. Эти подходы часто воспринимаются как строго академические без реальной жизнеспособности. Однако изменение взгляда должно произойти как можно раньше.

Также Читайте: Мы подталкиваем наших детей к слепоте

Последние мысли

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

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

Теперь представьте, что в эти приложения встроено что-то вроде искусственного интеллекта (ИИ). ИИ достаточно страшен сам по себе без программных глюков. Добавьте ошибки в смесь, и пока неясно, что может произойти.

Однако здесь есть серебряная подкладка. Приложив немного работы и добавив несколько новых инструментов, мы сможем улучшить программное обеспечение и ИИ, разработав его более разумно и протестировав его на стадах.

Будем надеяться, что заинтересованные органы воспримут эту серьезную проблему серьезно, чтобы мы могли использовать программное обеспечение в полной мере, но только для создания более безопасного и разумного будущего.

См. Далее: Искусственный интеллект: типы и будущее, которое он держит для людей