Проект «Сфера-80»: ТЗ для прошлого
Проект «Сфера-80»: ТЗ для прошлого

Полная версия

Проект «Сфера-80»: ТЗ для прошлого

Язык: Русский
Год издания: 2026
Добавлена:
Настройки чтения
Размер шрифта
Высота строк
Поля
На страницу:
7 из 12

— Вот, — ухватился Алексей. — Значит, блок уже наполовину родился. Мы его просто включим в план. Никакой самодеятельности, всё строго по ТЗ.

— По какому ТЗ? — усомнился Евгений. — Там же ни слова про телевизор.

Алексей усмехнулся.

— Пока ни слова, — поправил он. — Поэтому я вас и позвал.

Он постучал карандашом по тетради, возвращая внимание к заголовку «Табличный вычислитель. Черновики».

— Через неделю-другую Наталья Сергеевна будет собирать от нас предложения по уточнению ТЗ. Официально — «по результатам уточнения требований эксплуатации». Если мы сейчас чётко сформулируем, что хотим — шину, ЦУБ, порты, ВКУ, магнитофон — мы можем вписать это туда так, чтобы никто не испугался.

Евгений фыркнул.

— «Так, чтобы никто не испугался», — повторил он. — С нашими-то идеями.

— Не идеи страшны, а формулировки, — сказал Алексей. — Скажем так: поверьте моему опыту, я видел формулировки похуже.

Люба посмотрела на него внимательно. Она уже привыкла к его странным оговоркам вроде «в мою молодость уже были микросхемы помельче», но иногда эти фразы выбивали её из равновесия.

— Хорошо, — сказала она, возвращаясь в привычную плоскость. — Значит, что мы хотим продвинуть в ТЗ? Конкретно.

Алексей подумал и стал перечислять, отмечая на схеме карандашом.

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

— Без слова «шина», — напомнил Евгений.

— Без слова «шина», — согласился Алексей. — Второе. Наличие центрального… — он чуть замялся и всё-таки сказал, — управляющего блока, который задаёт порядок выполнения операций. В тексте — «внутренний управляющий узел, реализующий последовательность табличных операций».

Он отметил ЦУБ.

— Третье. Порты ввода-вывода, через которые можно подключать либо блок кнопок, либо внешние устройства. На бумаге — «разъёмы для подключения специализированных блоков индикации и управления».

Люба кивнула, уже мысленно разбирая, как это можно аккуратно зарисовать в схеме без лишних вопросов.

— Четвёртое, — продолжил Алексей. — Блок сопряжения с ВКУ. Формулировка — «возможность подключения видеоконтрольного устройства для вывода табличной информации». Никаких игр, никакой графики — только «табличная информация».

— Только, — хмыкнул Евгений. — А там уж как пойдёт.

— Пятое. Магнитофон. «Режим резервного хранения и восстановления типовых наборов табличных расчётов на бытовых магнитофонах».

— Шестое, — неожиданно вмешалась Люба. — То, что вы вчера придумали.

Она посмотрела на Алексея поверх очков. — Устойчивость к «кратковременным нарушениям питания».

Алексей удивился, потом вспомнил, что она заходила в лабораторию вечером и застала его как раз за черчением той самой стрелки от блока питания к ЦУБу.

— А, это, — сказал он. — Да. Можно туда же прописать: «реализованы меры по повышению устойчивости к кратковременным просадкам напряжения и сохранению промежуточных результатов».

Он хмыкнул. — Для министерства это будет звучать так: «ваши таблички не будут пропадать, если кто-то включит утюг». Хотя это мы, конечно, так не напишем.

— Мы напишем, что это «экономит рабочее время», — подсказал Евгений. — Они это любят.

— Верно, — согласился Алексей. — «Сокращение потерь рабочего времени при аварийных ситуациях в электросети».

Люба записывала, каллиграфически, в свой блокнот. Как только дело касалось официоза, у неё будто включалась другая скорость.

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

Она чуть смутилась. — Это я у Натальи Сергеевны подслушала, когда она ругалась на какой-то прибор: там ПЗУ было намертво зашито, и приходилось плату переделывать.

— Великолепно, — сказал Алексей. — Это как раз наш интерпретатор и наши формулы.

Евгений, сдвинув брови, смотрел то на схему, то на записки Любы, то на чай.

— Слушайте, — сказал он наконец. — Это ведь реально…

Он замолчал, подбирая слово, которое не выглядело бы слишком пафосно.

— Это ведь реально может выстрелить, — наконец произнёс он. — Если мы протащим всё это через ТЗ, дальше уже будет не так просто сказать «уберите». Всё будет узаконено. Бумага терпит.

— Бумага — терпит, — согласился Алексей. — ЕС-ка — тоже терпит, раз уж она у нас будет всё это эмулировать. А вот начальство — посмотрим.

За окном кто-то громко чихнул. Радио во соседней комнате перешло на новости. Ведущий бодро сообщал о планах по вводу новых автоматических линий на каком-то заводе, «что позволит сэкономить тысячи человеко-часов».

— Видите, — кивнул на стену Алексей. — Мы просто помогаем исполнять решения партии и правительства. Они хотят экономить человеко-часы — мы им предлагаем прибор, который экономит время. Всё честно.

— Осталось только, чтобы они захотели экономить именно на этом месте, — заметил Евгений. — А не на наших зарплатах.

Люба тихо фыркнула.

— Зарплаты — это уже научная фантастика, — сказала она. — Мы пока давайте нашу фантастику по железу закончим.

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

— «Сфера-80»? — прочитала она вслух. — Это что?

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

«Замысел для своих», вспомнил он мысленно. Ну так свои — вот они, сидят с чаем.

— Рабочее название, — сказал он. — Для себя.

— Сфера чего? — не унимался Евгений. — Сфера применения? Сфера влияния? Земная сфера?

— Сфера — потому что это штука, которая должна быть не только в одном НИИ, — объяснил Алексей, сам удивившись, как легко придумываются легенды. — Не только в одном «секторе». А круглая, в смысле — везде потихоньку. В школах, домах пионеров, лабораториях.

Он пожал плечами. — А «80» — год, к которому мы теоретически можем успеть сделать что-то похожее на серию. Если нас раньше не прикопают.

Люба задумчиво провела пальцем по карандашным буквам.

— В документах так не напишут, — сказала она. — Там будет что-нибудь скучное вроде «Учебно-демонстрационный вычислительный комплекс типа Т-…»

Она поморщилась, представляя очередной индекс.

— В документах — нет, — согласился Алексей. — Поэтому я и написал для себя. Но знаете, всякие «Агаты» и «Корветы» тоже, наверное, сначала были какими-нибудь «ЭЦВ-34/1». А потом как-то по-человечески назвались.

Евгений усмехнулся.

— Хорошо, — сказал он. — Пусть будет «Сфера». Симпатичнее, чем «БВП-1 модернизированный». Только никому в коридоре не проговоритесь, а то Петров сразу побежит регистрировать себе «Сферу-2», а нас оставит без купола.

— Купол у него над головой — это отдельная история, — заметил Алексей. — Но да, пока это название — для своих.

Он постучал пальцем по тетради. — А для всех остальных — «табличный вычислитель с расширенными возможностями учебного применения».

Они переглянулись.

— Значит так, — подвёл итог Евгений. — Я беру на себя мысли про интерпретатор. Нарисую набор «формул» так, чтобы они выглядели прилично. Без «игры в морской бой» на первом этапе, честное пионерское.

— Я доработаю схему ЦУБа, — сказала Люба. — С учётом ваших дурацких… — она всё-таки улыбнулась, — перспективных площадок. И блок ВКУ хотя бы вчерне обрисую.

— А я, — сказал Алексей, — свожу это всё в один вменяемый текст для Натальи Сергеевны.

Чтобы она могла, не краснея, вставить его в проект ТЗ.

Он поднял стакан с чаем. — За то, чтобы через неделю нас не выгнали с планёрки за «отклонение от концепции».

Они переглянулись. То ли тост, то ли заговор.

— И за то, чтобы через пару лет хотя бы один прибор по этой концепции всё-таки появился, — добавил Евгений.

— И чтобы он не сгорал от первого же выключателя, — тихо сказала Люба.

Они чокнулись стеклом. Чай едва заметно плеснул.

Где-то в глубине коридора щёлкнул автомат, на секунду лампочка под потолком моргнула и снова загорелась.

— О, — сказал Евгений. — Это к теме устойчивости к кратковременным нарушениям.

— Видите, — откликнулся Алексей. — Даже щиток за нас голосует.

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

Да, впереди были ТЗ, ГОСТы, сметы, Первые отделы и все прочие элементы советской схемы. Да, их «Сфера» пока существовала только в тетрадке в клетку и в трёх головах, собравшихся вечером в общежитии.

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

Шаг нулевой. Инициализация.

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

За стеной кто-то завёл радио «Маяк» погромче. В эфире бодрый голос рассказывал о каком-то достижении науки и техники.

Алексей усмехнулся: где-то там наверху рисовали свои красивые блок-схемы будущего. Он, тут, в комнате 317, рисовал свою — поменьше и попроще. Зато такую, которую вполне реально собрать из К155, канифоли, терпения и нескольких упрямых голов.

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

Глава 8. Язык ГОСТов

Утро следующего понедельника встретило Алексей не гулом вентиляторов, а шелестом бумаги.

КБ вяло просыпалось после выходных: кто-то в коридоре уже требовал у секретарши чай, Михалыч медленно шёл по коридору, разглядывая новую стенгазету, а на доске объявлений висела свежая бумажка «О порядке экономии бумажной продукции». Под ней кто-то аккуратно приписал карандашом: «Особенно при составлении ТЗ».

Алексей остановился на секунду, усмехнулся и поправил под мышкой пухлую папку. В папке лежала их вчерашняя «Сфера» — схемы, заметки, лист с аккуратным списком того, что они решили протащить в техзадание. Шина, ЦУБ, порты, ВКУ, магнитофон, устойчивость к провалам питания.

Теперь всё это предстояло перевести на язык, который понимало Министерство и не слишком любил Первый отдел: на язык ГОСТов.

* * *

Отдел документации жил в отдельной вселенной.

В КБ пахло канифолью и горячим текстолитом, а здесь — свежей бумагой, типографской краской и чем-то ещё, тягучим, от чего вспоминались школьные библиотеки. Стены сплошь заставлены шкафами с корешками: «ГОСТ 2.101—68», «ГОСТ 15.001—73», «Типовые формы ТЗ», сверху — аккуратные коробки с надписями «Архив. Не трогать».

За длинными столами сидели женщины разного возраста, вооружённые линейками, красными ручками и печатными машинками. Бумага шуршала, каретки стучали, где-то жужжала «Эрика». В углу негромко играл «Маяк» — ведущий бодрым голосом рассказывал о досрочном выполнении планов по выпуску чего-то важного и крупносерийного.

У окна — отдельный стол. На нём, как на пьедестале, — лампа зелёного стекла, аккуратная стопка ГОСТов, чернильница, набор цветных карандашей. И за всем этим — Наталья Сергеевна.

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

— Алексей Николаевич, — сказала она нейтрально. — С «табличным прибором» пришли?

— Сколько у нас теперь названий? — откликнулся он. — По дороге сюда успели назвать «табличным прибором», «счётной машинкой» и «настольным вычислителем».

— В протоколе он пока БВП-1, — напомнила Наталья. — Бытовой вычислительный прибор. Всё остальное — творчество масс.

Она указала ему на стул напротив, строгим жестом отодвинула в сторону текущую папку и положила перед собой чистый бланк с заголовком «Техническое задание».

— Ну что ж, — сказала она. — Попробуем из вашего творчества сделать документ.

Она посмотрела на папку у него под мышкой. — Это что, целиком вы от руки написали? Или коллективно рисовали?

— Коллектив народный, — ответил Алексей, выкладывая на стол тетрадь, несколько листов кальки и аккуратный лист с тезисами. — Я, Люба Ветрова, Евгений Громов. Схема, пояснения, список желаний.

— Желаний, — повторила она. — Ага. Значит, мне предстоит отделить желания от того, за что на планёрке спросят с Седых.

Она пролистала первые листы, остановилась на схеме с ЦУБом и тонкой шиной, приподняла бровь.

— Внутренние связи, — быстро поправил Алексей. — Унифицированные.

— Я помню, — сказала Наталья. — Вы уже пытались слово «магистраль» протащить через прошлую записку. Первый отдел потом целую неделю ходил с умным видом и интересовался, к какой «магистрали» вы это собираетесь подключать.

Она перевела взгляд с чертежей на него.

— Давайте так, Алексей Николаевич. Я сейчас внимательно слушаю, что вы хотите, а потом будем вместе решать, что «из этого можно», а что «из этого можно, но по-другому написано».

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

* * *

Он коротко изложил.

Без «компьютера» и «программирования». Только «табличный прибор», который умеет не только считать по одной методике, но и хранить несколько типовых методик, позволять оператору выбирать нужную, а в идеале — ещё и задавать последовательность шагов. Память — для чисел и для этих самых «последовательностей». Возможность «перескочить» с одной части последовательности на другую, если условие в таблице выполняется или нет. Плюс — ВКУ и магнитофон.

Слова «язык», «программа», «условный переход» он старательно глотал. Но опыт общения с документацией подсказывал: с той стороны стола сидит человек, который умеет слышать по смыслу, а не по словам.

Наталья слушала, не перебивая, делая пометки в своём блокноте. Разве что при словах «выбирать последовательность шагов» чуть-чуть нахмурилась.

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

— В рамках разрешённых, — уточнил Алексей. — С фиксированным набором операций. Сложить, вычесть, умножить, перенести, перейти к следующей строке…

Она кивнула.

— И чтобы прибор эту последовательность… запоминал?

Он осторожно кивнул.

— На уровне прибор — ничего не «понимает», — сказал он. — Просто в таблице для каждой «формулы» хранится набор шагов. Оператор вводит — прибор воспроизводит.

Он поймал её взгляд и добавил: — Мы не говорим «программа». Мы говорим «методика расчёта» или «набор табличных операций».

Наталья посмотрела на бланк ТЗ, потом снова на него.

— Хорошо, — сказала она. — Тогда давайте начнём сверху.

Она вставила бланк в машинку, старательно выровняла поля.

— Раздел первый: «Назначение и область применения». Здесь всё просто: «Прибор предназначен для выполнения типовых табличных расчётов в бухгалтериях, плановых отделах и учебных заведениях».

Она пощёлкала клавишами, проговаривая вслух. — «…обеспечивает повышение производительности труда и сокращение трудоёмкости расчётных операций». Это стандарт.

Алексей кивнул. Это была безопасная часть — все любили фразу «повышение производительности труда».

— Теперь «Основные функции». Вот здесь начнётся весёлое.

Она достала из стопки тоненькую брошюру «Типовая форма технического задания» и развернула закладку на середине.

— Смотрите, — показала она ему строчку. — Тут прямо написано: «В данном разделе перечисляются функции изделия и при необходимости — специальные режимы работы».

Она подчеркнула ногтем «при необходимости». — То есть всё, что будет звучать как «что-то новое», сразу попадёт под лупу. Особенно если там будет хоть отдалённо что-то про «самостоятельную деятельность оператора».

— Мы можем назвать это «расширенные режимы обработки табличных данных», — предложил Алексей. — Без уточнения.

— Можем, — согласилась она. — Но этого мало. Вопрос зададут при согласовании: какие именно режимы?

Она взяла карандаш, открыла чистую страницу блокнота и разделила её на две колонки.

Слева написала: «Как говорят инженеры», справа — «Как писать в ТЗ».

— Итак. Вы сказали: «адресуемое поле ячеек». Как вы это себе представляете?

— У нас таблица, — объяснил Алексей. — Строки и столбцы. Каждая ячейка имеет номер — адрес. Оператор должен иметь возможность сказать прибору: сейчас работаем с этой ячейкой, потом с той. Тогда можно хранить не просто последовательность действий «в целом», а операции над конкретными позициями.

Наталья аккуратно вывела слева: «Адресуемое поле ячеек». Справа — пока оставила пусто.

— Следующее. «Условный переход».

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

Алексей легко видел перед глазами знакомую конструкцию: `IF X> 0 THEN GOTO 50`. Только вместо X — содержимое ячейки, вместо 50 — номер строки в таблице. В детстве он проверял такие вещи, щёлкая по клавишам БК, пока строчка «IF» не вырезалась в мозгу.

— То есть, по-нашему, это «условный переход», — продолжил он вслух. — По-вашему…?

Наталья покачала головой.

— По-моему, слово «условный переход» в ТЗ на бытовой прибор — это прямой билет на беседу в одном соседнем кабинете, — сухо сказала она. — Условные переходы у нас бывают в больших ЭВМ и в задачах оборонного значения.

Она постучала карандашом по пустой правой колонке. — Для начала давайте заменим это на что-то вроде «изменения порядка обработки ячеек в зависимости от результатов вычислений».

Алексей прикинул.

— «Порядка обработки строк» — звучит невинно, — признал он. — Содержит, по сути, то же самое.

— Именно, — сказала она. — Наша задача — чтобы любой начальник, не вдаваясь в детали, увидел слова «строки», «таблицы», «учёт» и успокоился. А человек, который умеет читать между строк, понял, что там есть возможности.

Она осторожно вписала справа: «изменение порядка обработки элементов таблицы в зависимости от значений промежуточных результатов».

— Дальше, — подтолкнула она. — Что там у вас ещё… «Язык формул»?

Алексей чуть не поперхнулся.

— Я старался этого слова избегать, — сказал он. — Но да. Нам нужен хотя бы примитивный способ задавать последовательность действий так, чтобы оператор мог её посмотреть, поправить, сохранить.

Она вздохнула.

— Алексей Николаевич… люди боятся слова «язык», если это не «русский» и не «английский для специалистов по внешней торговле», — заметила она. — Особенно, если этот язык понимает техника.

Он помолчал секунду, потом осторожно:

— В руководстве по эксплуатации мы всё равно не будем писать «язык». Можно назвать это «режим табличных формул».

Он вспомнил свою первую книжку по BASIC для школьников. Тонкая, с зелёной обложкой, «Язык Бейсик для начинающих». Там автор осторожно объяснял, что это «средство составления алгоритмов решения задач». Слово «игра» в книге не встречалось ни разу, хотя половина класса использовала этот BASIC исключительно для «морского боя».

— В ТЗ, — продолжил Алексей, — можно ограничиться фразой: «Прибор обеспечивает формирование и хранение последовательностей табличных операций оператором».

Наталья потянулась к ГОСТу, полистала, что-то ищет, потом кивнула.

— Это уже ближе к тексту, который не сгрызут на экспертизе, — сказала она. — «Формирование последовательностей» звучит скучно и безопасно.

Она записала справа: «оператор имеет возможность задавать и корректировать последовательность выполнения табличных операций с последующим их хранением в памяти прибора».

— Видите? — она повернула блокнот к нему. — Ни слова про «язык», ни про «программы». Но любой более-менее толковый инженер поймёт, что это.

Алексей посмотрел на две колонки и не удержался от улыбки.

— Это похоже на таблицу перекодировки, — сказал он. — Слева — ассемблер, справа — высокоуровневый язык бюрократической спецификации.

— Не обижайте спецификации, — серьёзно ответила Наталья. — В отличие от многих программ, они иногда работают десятилетиями.

* * *

Часов через два у них появилась своя маленькая «таблица истинности» между инженерной и ГОСТовской речью.

«Шина данных» превращалась в «систему унифицированных внутренних соединений прибора».

«Регистры общего назначения» — в «внутреннее оперативное поле для хранения промежуточных результатов».

«Стек» — в «устройство временного запоминания параметров при выполнении сложных табличных расчётов».

— А если я напишу «последовательность операций с возможностью возврата к предыдущему состоянию», — сказала Наталья, — вы будете довольны?

Алексей прикинул.

— Это почти стек, — признал он. — По смыслу.

— И никаких стеков в документе, — удовлетворённо подытожила она. — Секретный стек.

Где-то к концу третьего часа они добрались до самого скользкого.

— «Адресуемое поле ячеек», — напомнила Наталья, касаясь ногтем этой строки. — Мне эта формулировка не нравится.

— Но без неё… — начал Алексей.

— Я понимаю, — перебила она. — Если нельзя указать, с какой именно ячейкой таблицы работать, ваш прибор превращается в очередной счётный аппарат с красивым корпусом.

Она наклонилась, задумчиво постучала ручкой по столу.

— Смотрите, если мы напишем «адресуемое поле ячеек», любой скучающий рецензент спросит: «А кто будет задавать эти адреса? С какой целью? Можно ли там что-то не то посчитать?»

Она подняла на него взгляд. — Вопросы «можно ли там что-то не то посчитать» нам с вами не нужны.

Алексей молча с этим согласился. В его времени к таким вопросам привыкали службы безопасности крупных корпораций. Здесь за них отвечал Первый отдел.

— Нам нужно так, — продолжила она. — Чтобы снаружи казалось: оператор только выбирает строки и столбцы, ничего особенного. А внутри вы можете работать с адресами сколько хотите.

Она сняла очки, протёрла их уголком платка, снова надела.

— Попробуем обойтись через «номера строк и граф», — сказала она. — В табличных документах это привычно.

— Вроде «оператор выбирает номер строки, номер графы»… — подхватил Алексей.

— …и прибор выполняет над соответствующим элементом таблицы указанную типовую операцию, — закончила она.

Она уже печатала, отстукивая фразу уверенно и быстро. — «…Прибор обеспечивает возможность обращения к любому элементу таблицы по его номеру строки и графы».

Алексей тихо хмыкнул.

— Это же и есть адресуемость, — сказал он. — Только вежливая.

— Адресуемость — внутри вашей схемы, — заметила Наталья. — Снаружи — у нас «нумерация строк».

Она задумалась, потом добавила ещё одну строчку: — «…включая возможность автоматического перехода к следующей или заданной строке в зависимости от результатов расчёта».

Пальцы Алексея словно рефлекторно дорисовали в воздухе: `IF SUM> 0 THEN GOTO NEXT`.

— «Автоматический переход к заданной строке в зависимости от результатов»… — повторил он. — Наталья Сергеевна, вы только что собственноручно легализовали условный переход.

— Я ничего не легализовала, — сухо сказала она. — Я всего лишь предусмотрела «удобства для оператора».

Она выдержала паузу. — Но да, если очень захотеть, на этом можно построить и то, что вы там себе придумали.

В её голосе прозвучало что-то вроде лёгкого вызова.

— Вы точно понимаете, что делаете? — спросил он.

— Вы думаете, вы один тут умный? — обиделась она без злости. — Я десяток лет пишу ТЗ на приборы, которые «по документам» всё время делают что-то скучное. А реально все знают, что делают они ещё пять интересных вещей.

На страницу:
7 из 12