Автор Тема: ПО для Шаттла  (Прочитано 13978 раз)

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
ПО для Шаттла
« : Март 25, 2011, 05:39:32 pm »
Статья рассказывает о процессе работы над программным обеспечением шаттла и важности тестирования ПО в целом.
"Это ПО никогда не падает. Оно совершенно, настолько совершенно, насколько человек смог этого достичь. Посмотрите на статистику: последние три версии этой программы – каждая по 420.000 строк кода – имели всего по одной ошибке в каждой. Последние 11 версии этого ПО имели в сумме 17 ошибок. Коммерческие программы, подобного уровня сложности имели бы 5.000 ошибок."
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

igor

  • Sr. Member
  • ****
  • Сообщений: 438
    • Просмотр профиля
Re:ПО для Шаттла
« Ответ #1 : Март 26, 2011, 07:13:32 am »
Статья в целом интересная, но пустая какая-то. Ни слова не говорится об используемых инструментальных средствах и языках программирования.
Полагаю, что там пишут на Ада. Во всяком случае, точно не на С++.

Валерий Лаптев

  • Jr. Member
  • **
  • Сообщений: 58
    • Просмотр профиля
Re:ПО для Шаттла
« Ответ #2 : Март 26, 2011, 10:44:14 am »
Там самое интересное не инструментарий, а процесс
Цитировать
1. Продукт хорош настолько, насколько хорош план для него.

В бортовой группе шаттла, около трети процесса по написанию ПО происходит до того, как кто-либо напишет хоть одну строку кода. НАСА и группа из Локхид Мартин достигают соглашения в самых подробных описаниях, касательно всего, что новый код должен будет делать – и затем они фиксируют достигнутые договоренности на бумаге с такой скрупулезностью и точностью, которую обычно можно наблюдать при ксерокопировании. Ничто в спецификациях не может быть изменено без согласия и полного понимания с обеих сторон. И никто не изменит ни одной сроки кода без спецификации, подробно описывающей это изменение.
Понятно, что эти ребята не заботятся о прибыли, а значит, решения принимают не на основе коньюнктурных соображений, а по реальным задачам, которые требуется решить. 
В обычном бизнесе ни один бизнесмен не может себе подобного позволить - конкуренты просто раньше сделают, пусть и с ошибками. Но захватят рынок, и - финиш.
Еще нужно отметить, что многолетняя специализация позволяет достичь практически безошибочного кода. Даже когда просто сидишь на д одной задачей - код рефакторится и очищается со временем. Становится все лучше и лучше.
Бизнесмены - они принципиально по-другому работают. Быстрей следующую версию, намотать финтифлюшек, сделать рекламу и продать. 

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re:ПО для Шаттла
« Ответ #3 : Март 26, 2011, 07:58:37 pm »
Понятно, что эти ребята не заботятся о прибыли, а значит, решения принимают не на основе коньюнктурных соображений, а по реальным задачам, которые требуется решить. 
В обычном бизнесе ни один бизнесмен не может себе подобного позволить - конкуренты просто раньше сделают, пусть и с ошибками. Но захватят рынок, и - финиш.
Еще нужно отметить, что многолетняя специализация позволяет достичь практически безошибочного кода. Даже когда просто сидишь на д одной задачей - код рефакторится и очищается со временем. Становится все лучше и лучше.
Бизнесмены - они принципиально по-другому работают. Быстрей следующую версию, намотать финтифлюшек, сделать рекламу и продать. 
Очень сильно ошибаешься. Они занимаются бизнесом, просто бизнесом специфическим весьма. Если будет авария на шаттле, то велик шанс, что бизнес прикроется совсем. Поэтому и вылизывают код.

Что такое "обычный бизнес" сложно сказать. У каждого вида производства/бизнеса есть свои критерии и допуски на качество, разные критерии этого самого качества (качество весьма слабо, кстати, иногда коррелирует с безглючностью софта). Если выходишь за допустимые допуски в данной области (не важно в какую сторону -- слишком низкое качество, но короткие сроки, либо же сишком высокое качество и длинные сроки), то вылетаешь в трубу при наличии хоть какой-то конкуренции.

На качество можно в достаточной степени наплевать в оборонке современной российской, потому как конкуренции примерно нуль, и основной критерий -- чтобы производитель был отечественный. Впрочем, это дело постепенно меняется, вон уже начали закупать западное вооружение (потому, что отечественное практически не развивается). Думаю это пойдет на пользу нашим оборонным предприятиям и обороноспособности страны вообще.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Илья Ермаков

  • Full Member
  • ***
  • Сообщений: 177
    • Просмотр профиля
    • OberonCore
Re:ПО для Шаттла
« Ответ #4 : Март 26, 2011, 11:38:02 pm »
ПО для Шаттла, по крайней мере. в 80-х, разрабатывалось на HAL-S.
Достаточно низкоуровневый такой язык, системный.

У меня лежат в PDF документации по нему официальные, авиационных каких-то ведомств США.
Качал с какого-то сайта, который посвящён был именно ПО для Шаттла.

А, вот, нашёл: http://klabs.org/DEI/Processor/shuttle/
« Последнее редактирование: Март 26, 2011, 11:39:51 pm от Илья Ермаков »

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re:ПО для Шаттла
« Ответ #5 : Март 27, 2011, 12:02:46 am »
ПО для Шаттла, по крайней мере. в 80-х, разрабатывалось на HAL-S.
Достаточно низкоуровневый такой язык, системный.

У меня лежат в PDF документации по нему официальные, авиационных каких-то ведомств США.
Качал с какого-то сайта, который посвящён был именно ПО для Шаттла.

А, вот, нашёл: http://klabs.org/DEI/Processor/shuttle/
О! Спасибо, очень интересно.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

igor

  • Sr. Member
  • ****
  • Сообщений: 438
    • Просмотр профиля
Re:ПО для Шаттла
« Ответ #6 : Март 27, 2011, 12:28:15 pm »
Илья, спасибо за ссылку. Интересный материальчик.

Вот парочка интересных выдержек в моём вольном переводе.  :)
Язык разработан Чарльзом Старком.
Имеет PL/1- и Алголо-подобный синтаксис.
Ключевые слова записываются в верхнем регистре (!).

Думаю, что этот язык используется до сих пор. Скаченные документы датируются 2005 годом (кроме учебника, 1979).

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re:ПО для Шаттла
« Ответ #7 : Март 27, 2011, 01:59:37 pm »
Имеет PL/1- и Алголо-подобный синтаксис.
Кстати, покурил я тот Алгол, и по результатам имею сказать, что С и С++ имеют столько же общего с Алголом в плане синтаксиса, как и Паскаль и его производные.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Илья Ермаков

  • Full Member
  • ***
  • Сообщений: 177
    • Просмотр профиля
    • OberonCore
Re:ПО для Шаттла
« Ответ #8 : Март 27, 2011, 02:47:10 pm »
Синтаксис - дело внешнее.

Идейно Алгол был в противовес Фортрану большим шагом к систематизации, к порядку, к научности, наверное, даже можно сказать.
Об чём и уйма копий ломалось в тот период времени между поборниками не ограниченного правилами программизма и поборниками того, что всё-таки надо кристаллизовывать и принимать шаг за шагом ограничения на многообразие форм.

В этом плане Паскаль однозначно наследует Алголу, Си - однозначно продолжает другое течение.

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re:ПО для Шаттла
« Ответ #9 : Март 27, 2011, 03:00:08 pm »
Синтаксис - дело внешнее.

Идейно Алгол был в противовес Фортрану большим шагом к систематизации, к порядку, к научности, наверное, даже можно сказать.
Об чём и уйма копий ломалось в тот период времени между поборниками не ограниченного правилами программизма и поборниками того, что всё-таки надо кристаллизовывать и принимать шаг за шагом ограничения на многообразие форм.

В этом плане Паскаль однозначно наследует Алголу, Си - однозначно продолжает другое течение.
Если уж на то пошло, то Алгол упорядочил синтаксис в первую очередь (формально его описал), так же синтаксис был формально описан в B и в Паскале. (спеку на B я тут приводил). По большому счету B-семейство и Pascal-семейство отличаются лишь сложностью построения компиляторов, точнее даже не компиляторов, а лексеров и парсеров. Впрочем, сейчас разницы уже нет. Ада и Делфи не проще чем Java/C#/D и так далее.

А семантика ни там ни там формально не описана. Какие-то попытки формалоного описания семантики языков делаются и сейчас, но это ни к паскаль-семейству ни к Си семейству никакого отношения не имеет.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

igor

  • Sr. Member
  • ****
  • Сообщений: 438
    • Просмотр профиля
Re:ПО для Шаттла
« Ответ #10 : Март 27, 2011, 03:38:23 pm »
Имеет PL/1- и Алголо-подобный синтаксис.
Кстати, покурил я тот Алгол, и по результатам имею сказать, что С и С++ имеют столько же общего с Алголом в плане синтаксиса, как и Паскаль и его производные.
Большинство популярных языков можно отнести либо к группе алголоподных языков, либо к группе си-подобных языков. И дело здесь не только в синтаксисе. Илья Ермаков здесь хорошо сформулировал в чём заключается отличие между языками этих двух групп.
Мне в первую очередь было любопытно узнать, к какой группе относится язык HAL/S. Причина этого интереса понятна, в статье приводятся впечатляющие результаты использования этого (предположительно этого) языка. После беглого просмотра спецификации у меня сложилось впечатление, что язык относится к алголоподобной группе языков.
Прошу понять меня правильно. Речь идёт не о каких-то конкретных фенечках в языке, а об общей культуре проектирования языка.

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re:ПО для Шаттла
« Ответ #11 : Март 27, 2011, 03:58:48 pm »
А я про суть и говорил. Я смотрю на сам язык, точнее на его описание. Формального описания семантики языка ни для паскаля ни для Си нет. Собственно в том же Обероне даже синтаксис до конца формально не описан. Про то, насколько недоописана семантика Оберона, уже говорилось много. Я не говорю что это что-то плохое (в данный момент), это просто так.

И Си и Паскаль -- языки алгольной группы. Различия минимальны. И их производные языки аналогично.

Чтобы понять различия между группами/семействами языков, посмотрите на языки других семейств, например на языке семейства ML. Или языки семейства Lisp. Или языки Prolog-семейства.

Фортран вообще где-то отдельно живет своей жизнью.

И да, я не про синтаксис говорю, я про языки в совокупности и их семейства.

PS. А то, что там все пишется капсом, так это так было у практически всех старых языков. Посмотрите на COBOL, старый фортран, SNOBOL тот же например.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

DIzer

  • Гость
Re:ПО для Шаттла
« Ответ #12 : Март 27, 2011, 04:14:20 pm »
А я про суть и говорил. Я смотрю на сам язык, точнее на его описание. Формального описания семантики языка ни для паскаля ни для Си нет. Собственно в том же Обероне даже синтаксис до конца формально не описан. Про то, насколько недоописана семантика Оберона, уже говорилось много. Я не говорю что это что-то плохое (в данный момент), это просто так.

И Си и Паскаль -- языки алгольной группы. Различия минимальны. И их производные языки аналогично.

Чтобы понять различия между группами/семействами языков, посмотрите на языки других семейств, например на языке семейства ML. Или языки семейства Lisp. Или языки Prolog-семейства.

Фортран вообще где-то отдельно живет своей жизнью.

И да, я не про синтаксис говорю, я про языки в совокупности и их семейства.

PS. А то, что там все пишется капсом, так это так было у практически всех старых языков. Посмотрите на COBOL, старый фортран, SNOBOL тот же например.
Не понял, о чем это? обычно, под формальной семантикой подразумевают описание яп (его конструкций) в подходящих терминах какой-либо математической модели..про какую модель вы говорите и что из Оберона там не доописано? Вроде конструкций и вариаций их использования там кот наплакал.

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re:ПО для Шаттла
« Ответ #13 : Март 27, 2011, 04:22:43 pm »
Не понял, о чем это? обычно, под формальной семантикой подразумевают описание яп (его конструкций) в подходящих терминах какой-либо математической модели..про какую модель вы говорите и что из Оберона там не доописано? Вроде конструкций и вариаций их использования там кот наплакал.
Я говорю про хоть какую-нибудь модель для начала. Там не описано поведение при выходе за границы тех же, уже избитых, массивов например. Там не описана валидность конструкции ARRAY 0 OF SomeType, про синтаксис уже говорилось. Про то, что будет при делении на нуль тоже не сказано (для целых чисел). И так далее. Причем я говорю сейчас даже не о формальном описании семантики, а о простом, человеческом. А формальным там и не пахнет в общем то.

PS. И да, я не утверждаю, что для хорошего, годного ЯП просто таки обязано существоать формальное описание сементики, я говорю про то, что особых новшеств в плане описания языка, после Алгола ни в Паскаль-подсемействе, ни в Си-подсемействе не появилось.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

DIzer

  • Гость
Re:ПО для Шаттла
« Ответ #14 : Март 27, 2011, 04:43:43 pm »
Я говорю про хоть какую-нибудь модель для начала. Там не описано поведение при выходе за границы тех же, уже избитых, массивов например. Там не описана валидность конструкции ARRAY 0 OF SomeType, про синтаксис уже говорилось. Про то, что будет при делении на нуль тоже не сказано (для целых чисел). И так далее. Причем я говорю сейчас даже не о формальном описании семантики, а о простом, человеческом. А формальным там и не пахнет в общем то.

PS. И да, я не утверждаю, что для хорошего, годного ЯП просто таки обязано существоать формальное описание сементики, я говорю про то, что особых новшеств в плане описания языка, после Алгола ни в Паскаль-подсемействе, ни в Си-подсемействе не появилось.
Почему, не помню как в OBERONE (стандарте) но в КП есть "Элементы массива выбираются с помощью индексов, являющихся целыми числами из диапазоне от 0 до длина минус 1."
откуда следует что валидная длина ДОЛЖНА начинаться с 1. Конечно , для нормального человека полезнее давать это в стиле "список запрещенного" что бы потом действовать по принципу "что не запрещено то разрешено". Но суть не в этом,  обычно при описании ЯВУ стараются избегать деталей зависящих от низкоуровневых моделей исполнителя (они определяются конкретной реализацией), другое дело СИ и СИ++ - но вроде как разумные люди их ЯВУ не считают.