Цифровой журнал «Компьютерра» 2011 № 32 (80) | страница 7



Концептуальная целостность. Разделяй и властвуй.

К середине 1973 года, выбрав язык разработки, в NASA определились с контрактами на создание PASS. Поскольку основной контракт на производство челноков был у компании Rockwell Corporation, последняя, естественно, посчитала, что будет создавать шаттлы, включая и программное обеспечение для них, единолично. Тем более что опыт разработки систем авионики для реактивных самолётов у Rockwell был немалый.

Но не тут-то было. Контракт на создание челночного софта NASA разделила между Rockwell и... IBM. Определённый резон в этом был: несмотря на то что, по предварительным оценкам, объём программного обеспечения для шаттлов был значительно меньше, чем для проекта Apollo, разнообразие программ и высочайшие требования к отказоустойчивости системы были таковы, что одной, пусть и опытной компании, справиться с задачей было не под силу. IBM предоставляла для проекта свои компьютеры AP-101, и уровень квалификации её программистов был нисколько не хуже уровня сотрудников Rockwell. Ещё одним немаловажным фактором, определившим выбор в пользу Голубого гиганта, была территориальная близость штаб-квартиры IBM и космического центра имени Джонсона. NASA, намучившись с проектом Apollo, программисты которого располагались в далёком Кембридже, посчитала, что разработчиков лучше иметь под боком.

Итак, 10 марта 1973 года космическое агентство заключило контракт с компанией IBM, которая выступала в качестве головного подрядчика программной системы PASS. Поскольку программисты IBM не сильно смыслили в авионике, им в помощь придавались ударные силы разработчиков Rockwell. Ну и в качестве консультирующией стороны, имеющей опыт разработки космического софта, привлекалась лаборатория Дрепера.

Участие в проекте множества рабочих групп легко могло привести к хаосу и бесконечным, бессмысленным сражениям и «перетягиванию одеяла». Поэтому в NASA чётко разграничили полномочия участников проекта, определив, какие типы документов делает каждый из них. Было предложено использовать три уровня документов, обозначавшихся соответственно "А", "В" и "С". Документы уровня "А" разрабатывались программистами IBM и содержали описание общей структуры системы PASS и функции её базовых модулей. Уровень "В" тоже создавался айбиэмовцами, но при поддержке специалистов из Intermetrics. В этих документах структура и функции модулей детализировались вплоть до конкретных параметров и используемых структур языка HAL/S. За уровень "С" отвечали разработчики Rockwell. Используя свой опыт проектирования систем авионики, они предлагали конкретную реализацию той или иной подпрограммы. Зачастую излишне конкретную. Как сказал один из участников проекта, видимо, из-за срыва единоличного контракта ребята из Rockwell давали бумаги, описывающие не «что делать», а «как делать».