Накануне двух юбилеев, 250-летия МГУ и 50-летия его НИВЦ, издана книга Евгения Андреевича Жоголева, одного из первых российских программистов. В ее основу положен курс лекций по технологии программирования, который он много лет кряду читал на факультете вычислительной математики и кибернетики МГУ. При его непосредственном участии произошло становление программистского коллектива в университете и вычислительном центре, он внес существенный вклад в развитие вычислительной техники. Например, были разработаны система стандартных программ и загрузчик подпрограмм для ЭВМ М-2, реализован редактор связей для ЭВМ «Стрела». Кроме того, для троичной ЭВМ «Сетунь» он создал систему команд и базовое ПО. Евгений Андреевич получил важные результаты в теории модульного программирования, синтаксического анализа, успешно работал над методикой построения синтаксически управляемых трансляторов и технологиями программирования. Его перу принадлежит и первый в нашей стране стабильный учебник по программированию для вузов, трижды издававшийся.

Е. А. Жоголев
Технология программирования
М.: Научный мир, 2004. 216 с.

Книга Е. А. Жоголева «Технология программирования» представлена как научная публикация, но ее вполне могут использовать студенты в качестве учебного пособия и преподаватели для подготовки к лекциям по программированию. Структура книги близка к семестровому курсу, и даже в каждую главу включены проверочные вопросы.

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

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

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

Следом за обсуждением свойств программ автор дает представление о технологии структурного программирования, разъясняет такие понятия, как тестирование и отладка программных средств, и показывает, каким образом достигаются их функциональность, надежность и качество. Уделено внимание соответствующим этапам разработки, внедрения и сопровождения документирования этих средств, а также управлению их созданием и аттестацией. Отдельные главы знакомят читателей с объектным подходом к разработке программных средств и компьютерной поддержкой процесса их создания и сопровождения.

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