55 Встроено самое лучшее
55
Встроено самое лучшее
Утренняя сцена: электронные радиочасы будят в 6.30 утра, и вы тащите себя вниз по кратчайшей траектории до кофеварки. Вы сливаете гущу со дна в кружку, а потом минуту нагреваете это в микроволновке. При этом вы стараетесь найти вечно теряющийся пульт вашего телевизора. Пока вы пьете свой кофе, вам удается пару минут посмотреть основные новости CNN, после чего вы направляетесь к машине, чтобы испытать на себе трудности обычной утренней поездки на работу. К тому времени как вы добираетесь до офиса и щелкаете по кнопке включения своего настольного компьютера, вы, вероятно, уже воспользовались десятком или более компьютеров, в которые загружены миллионы строк кода.
Непризнанные герои, разрабатывающие программное обеспечение, не пишут код ни для мэйнфреймов, ни для PC, ни для рабочих станций. Программное обеспечение, созданное ими, нельзя найти в архивах Staples, CompUSA или Dick Smith. И все же вы пользуетесь их кодом каждый день.
Вездесущие чипы
Конечно, я говорю о повсеместных вычислительных устройствах — о процессорах и программах, скрытых внутри наших радиочасов, в микроволновых печах, в телефонах, в магнитофонах. Они внимательно прислушиваются к нашим капризам и желаниям, выражаемым с помощью кнопок, и переводят их в инфракрасные сигналы управления тем или иным устройством. Если ваш автомобиль представляет собой одну из последних моделей, то только в нем можно обнаружить целую дюжину программных процессоров, не говоря уже о мобильном телефоне, которым вы пользова-лись по пути на работу. Вы нажимаете на кнопку «Разговор» и соединяетесь через длинную цепь скрытых компьютеров, начиная с вышки сотовой связи и заканчивая цифровым телефонным коммутатором, стоящим в офисе вашего клиента. Это мир встроенных системных приложений, в котором компьютеры скрываются под разными масками и, похоже, делают все что угодно, кроме вычислений. В сравнении со встроенными приложениями остальной мир разработки программного обеспечения иногда кажется «низшей лигой».
Компьютеры, на которых работают встроенные приложения, могут выглядеть маленькими и незначительными, будучи скрытыми внутри CD-плейеров или детских игрушек. Другое дело программы. Цветной лазерный копир может содержать миллионы строк на С, а в лабораторном осциллографе тысячи классов, написанных на Smalltalk, ждут своей инициализации. Большинство этих приложений предъявляют высокие требования к точности, безошибочности, повторяемости и надежности. Ошибки могут проявляться самым очевидным образом. Они могут сбивать с толку и даже быть опасными, например в программном обеспечении рентгенологического аппарата, промышленного робота или автомобиля. Добавьте к этому необходимость работы в реальном масштабе времени, что характерно для многих приложений, и планка поднимается еще выше.
Несмотря на эти трудности или даже благодаря им огромное количество встроенных программ имеет впечатляющее качество. Встроенная система, созданная одной компанией для высококлассного офисного продукта, содержала более полутора миллионов строк кода. Во всем этом коде было обнаружено только четыре ошибки. Да, да, именно так, за два с лишним года существования этого продукта было выявлено только четыре ошибки. Почему и как им это удалось?
Стоимость апгрейда
На этот вопрос ответить довольно легко. Например, одна-единственная ошибка во встроенном обеспечении одного из принтеров Hewlett-Packard может помешать этой компании достичь новых успехов. Если достаточно серьезная ошибка обнаруживается после выпуска продукта, то расходы на апгрейд ПЗУ будут больше, чем прибыль, полученная за весь период существования данной серии. Это серьезный стимул не допускать ошибок с самого начала. Так они и делают. Ни одна большая программа не бывает идеальной, однако некоторые программисты встроенных систем создают огромные программы с качеством, настолько близким к безупречному, насколько это вообще возможно. Дальнейшее снижение количества ошибок просто-напросто потребовало бы слишком больших затрат.
Может быть, в этом отчасти и состоит проблема компаний вроде Microsoft и IBM: нет достаточного стимула для того, чтобы делать все правильно, особенно когда покупатели согласны мириться с нелепым программным обеспечением, содержащим ошибки. Поставщики программного обеспечения всегда могут незаметно внести исправления в выпускаемые продукты, или просто выпустить исправленную версию 6.0а по цене CD-дис-ка, или же выложить ее в Интернете, чтобы каждый мог самостоятельно ее скачать.
Как же незаметным героям-программистам удается достичь таких результатов? Понятно, что они не всегда работают так успешно. Отрасль встроенного программного обеспечения изобилует ужасными историями о существующем коде со множественными слоями недокументированных заплат и исправлений. Модемы разрывают связь при передаче данных, в которых содержится последовательность, применявшаяся для отладки, но случайно оставленная в окончательной версии. Существуют копиры, которые внезапно теряют нить своей работы, и поэтому им приходится проводить временную «лоботомию» с помощью быстрого выдергивания шнура питания. Даже в военной ракетной радиоэлектронике случалось так, что ракеты «отключались» в середине полета, а плохо запрограммированные навигационные часы содержали накопленные ошибки. Нечего и говорить о пользовательских интерфейсах встроенных систем. Некоторые из них являются самыми отвратительными и неудобными на планете. В сравнении с тем хламом, который является нормой для персональных компьютеров, рабочих станций и универсальных машин, встроенное программное обеспечение выглядит твердым как кремень.
Безошибочность части таких программ достигается с помощью насильно-го внедрения личной дисциплины, которая усмиряет даже самых воинственных маньяков, помешанных на стандартах. Некоторые компании, особенно в сфере телекоммуникаций и программ военного назначения, эффективно применяют «чистые» методы программирования. Согласно этим методам, сборка кода проводится очень тщательно, а программистам запрещено возвращаться к написанному коду. Другие компании достигают таких чудес, собирая системы из огромного количества компонентов повторного использования. Некоторые из случаев наиболее сложного и строгого применения объектно-ориентированной технологии относились к созданию встроенных приложений. В основном они написаны на С++, но Smalltalk также проявил себя с лучшей стороны.
Рутина
Сложные задачи, возникающие при создании встроенных приложений реального времени, привлекают множество лучших программистов, чьи личные и профессиональные интересы сочетаются с необычной культу- 1 рой программирования. Культурный контекст встроенных приложений объединяет внимание к мелким деталям и необходимость строгой дисциплины. Программирование встроенных систем может быть утомительной работой, заставляющей программиста возиться с таким «добром», как загрузка регистров, ожидание сдвига в уровне сигнала или чередование и маскирование битов. В то же время код должен быть почти идеальным, помещаться в очень маленькой памяти и работать достаточно быстро, чтобы не вызывать паузы при выводе на экран или отклонения ракет от заданного курса.
Программисты, создающие такой код, склонны работать тщательно и скрупулезно. В первую очередь они стремятся сократить количество ошибок. С точки зрения качества программного обеспечения такие программисты имеют низкий «изначальный уровень» программных багов. Конечно, дешевле всего найти и исправить те ошибки, которым вы не позволяете проникнуть в код. Программисты встроенных систем широко применяют тактику выявления изъянов непосредственно во время рабочего цикла, вылавливая ошибки как можно раньше — пока их легко найти и просто исправить. Для сокращения количества ошибок проводятся тщательные многократные проверки расчетов и кода. Такой метод требует намного меньше затрат и является более эффективным, чем тестирование и отладка на завершающей стадии проекта.
При разработке «невстроенных» программных систем популярный метод устранения ошибок основан на бета-тестировании и отладке, проходящих на 400000 сайтов. С точки зрения общих расходов, ложащихся на плечи покупателей, трудно представить себе более неэффективную и затратную схему. С другой стороны, для производителей программного обеспечения это выгодный подход при условии, что покупатели спешат платить за привилегию выполнять работу производителей, а у самих производителей нет стимула выпускать качественные продукты.
Отчасти успех программирования встроенных систем связан с культурой и контекстом, а также, как я убедился, с применяемым подходом и профессиональной подготовкой. Многие годы я веду мастер-классы по высокопроизводительной командной работе и обучаю методам проектирования с учетом юзабилити на проводимой два раза в год Конференции по встроенным системам (Embedded Systems Conference). Когда я высказывался по поводу того, насколько быстро команды программистов встроенных систем находили действительно хорошие решения учебных задач, почти всегда кто-нибудь объяснял это тем, что большинство из них — инженеры.
Для инженерного склада ума характерны прагматизм, склонность к решению задач и профессиональная точность, что определенно способствует хорошему качеству программирования. Мы бы все выиграли, действуя как инженеры. Мир программирования встроенных систем установил высокую планку качества, продемонстрировав, что создавать надежные и безошибочные программы действительно возможно. Будем надеяться, что остальной мир сможет ответить на этот вызов.
Из журнала Software Development, том 3, № 7, июль 1995 г.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Самое главное о безопасности
Самое главное о безопасности По итогам исследования, проведенного германской компанией Honey Net, которая объединяет группу исследователей, занимающихся проблемой безопасности Интернета, было установлено, что в настоящее время более миллиона компьютеров заражены
1.11.8. Самое-самое интересное
1.11.8. Самое-самое интересное И еще один блок индикаторов. Здесь формируется рейтинг по нескольким направлениям — самые обсуждаемые фильмы, сериалы, выставки, театры, СМИ, спорт. И здесь же — рейтинг запросов того, что ищут в блогах. Примечание К сожалению, главную страницу
Глава 1 Веб-сайт: самое важное[1]
Глава 1 Веб-сайт: самое важное[1] 1.1. Веб-система > веб-сайт Буквально за несколько лет сфера веб-разработок прошла путь эволюции от примитивных статичных веб-страничек (текст + картинки) до многофункциональных интегрированных с другими приложениями веб-систем. Появилась
ОКНО ДИАЛОГА: Все лучшее раздается бесплатно
ОКНО ДИАЛОГА: Все лучшее раздается бесплатно Автор: Юрий РевичНакануне интервью мне позвонили: «Юра, вы помните конференцию [Имеется в виду IV Всероссийская конференция „Защита авторских и смежных прав: актуальные вопросы“, см. „КТ“ #682], на которой выступал Троицкий?»
Самое время поговорить о футболе Василий Щепетнёв
Самое время поговорить о футболе Василий Щепетнёв Опубликовано 04 марта 2014 У Гашека обыватели при виде шпика Бретшнейдера начинали говорить о футболе. О политике — чревато, о мухах — ещё более чревато, а о футболе — безопасно. Сейчас, сто лет
13-я КОМНАТА: Лучшее — враг хорошего
13-я КОМНАТА: Лучшее — враг хорошего Автор: Владимир ГуриевЧеловека очень просто сделать счастливым.Надо сначала что-то у него отнять, а потом вернуть. Мне, например, вчера вернули горячую воду, которой не было три недели, и я уже второй день нахожусь на седьмом небе. Мне до
РЕШЕНИЕ 1 (самое верное)
РЕШЕНИЕ 1 (самое верное) Установить расширение friGate(Фрегат) для браузера Google Chrome из официального магазина расширений по ссылке:https://chrome.google.com/webstore/detail/frigate/mbacbcfdfaapbcnlnbmciiaakomhkbkbТак же ссылку на friGate(Фрегат) можно найти на официальном сайте данного
Глава 1 Самое начало
Глава 1 Самое начало Это только в первый раз страшно… Плакат в Высшей школе камикадзе Краткое содержание• Перед тем как включить• Первое включение• Искусство выключения компьютера• Домашнее задание 1Итак, компьютер куплен, привезен и распакован. Он кажется
Глава 3 Самое необходимое
Глава 3 Самое необходимое 3.1. Установка программы и ее удаление Мастер установки Кроме Microsoft написанием программ для Windows занимается множество сторонних компаний (как больших и солидных, так и маленьких и неизвестных). Также программированием для Windows занимается масса
То же самое и два сверху
То же самое и два сверху Противоборство двух конкурирующих форматов оптодисков следующего поколения, Blu-ray и HD-DVD, порой очень напоминает партию в покер. Особенно в тех вопросах, которые касаются защиты контента от копирования. Здесь противники точно так же до последнего
Глава 1: Самое слабое звено в безопасности
Глава 1: Самое слабое звено в безопасности Перевод: Yarlan Zey (yarlan@pisem.net)Компания может приобрести лучшие технологии по безопасности, какие только можно купить за деньги, натренировать своих людей так, что они станут прятать все свои секреты, прежде чем пойти ночью домой, и
Часть четвертая Возьмем от битов лучшее
Часть четвертая Возьмем от битов лучшее В этом разделе я переключусь на более позитивную перспективу, опишу отличия кибернетического тотализма от гуманизма, рассмотрев эволюцию культуры человека.Я надеюсь показать, что каждый способ мышления имеет свое законное место
Лучшее решение
Лучшее решение К сожалению, массивное всеохватывающее наблюдение хорошо помогает лишь против химического и ядерного терроризма, но эта методика совершенно бесполезна в борьбе против террористов, использующих биологические агенты. Это происходит потому, что опасные