подлинники программных документов. Необходимость этого документа определяется на этапе разработки и утверждения технического задания только для программного обеспечения со сложной архитектурой.
Текст программы (код вида документа — 12) должен содержать текст программы с необходимыми комментариями. Необходимость этого документа определяется на этапе разработки и утверждения технического задания.
Описание программы (код вида документа — 13) должно содержать сведения о логической структуре и функционировании программы.
Ведомость эксплуатационных документов (код вида документа — 20) должна содержать перечень эксплуатационных документов на программу, к которым относятся документы с кодами 30, 31, 32, 33, 34, 35, 46. Необходимость этого документа также определяется на этапе разработки и утверждения технического задания.
Формуляр (код вида документа — 30) должен содержать основные характеристики программного обеспечения, комплектность и сведения об эксплуатации программы.
Описание применения (код вида документа — 31) должно содержать сведения о назначении программного обеспечения, области применения, применяемых методах, классе решаемых задач, ограничениях для применения, минимальной конфигурации технических средств.
Руководство системного программиста (код вида документа — 32) должно содержать сведения для проверки, обеспечения функционирования и настройки программы на условия конкретного применения.
Руководство программиста (код вида документа — 33) должно содержать сведения для эксплуатации программного обеспечения.
Руководство оператора (код вида документа — 34) должно содержать сведения для обеспечения процедуры общения оператора с вычислительной системой в процессе выполнения программного обеспечения.
Описание языка (код вида документа — 35) должно содержать описание синтаксиса и семантики языка.
Руководство по техническому обслуживанию (код вида документа — 46) должно содержать сведения для применения тестовых и диагностических программ при обслуживании технических средств.
Программа и методика испытаний (код вида документа — 51) должны содержать требования, подлежащие проверке при испытании программного обеспечения, а также порядок и методы их контроля.
Пояснительная записка (код вида документа — 81) должна содержать информацию о структуре и конкретных компонентах программного обеспечения, в том числе схемы алгоритмов, их общее описание, а также обоснование принятых технических и технико-экономических решений.
Составляется на стадии эскизного и технического проектов.
Прочие документы (коды вида документа — 90—99) могут составляться на любых стадиях разработки, т. е. на стадиях эскизного, технического и рабочего проектов.
6.2. Пояснительная записка
Пояснительная записка должна содержать всю информацию, необходимую для сопровождения и модификации программного обеспечения: сведения о его структуре и конкретных компонентах, общее описание алгоритмов и их схемы, а также обоснование принятых технических и технико-экономических решений.
Содержание пояснительной записки по стандарту (ГОСТ 19.404—79) должно включать следующие разделы:
введение;
назначение и область применения;
технические характеристики;
ожидаемые технико-экономические показатели;
источники, используемые при разработке.
В разделе Введение указывают наименование программы и документа, на основании которого ведется разработка.
В разделе Назначение и область применения указывают назначение программы и дают краткую характеристику области применения.
Раздел Технические характеристики должен содержать следующие подразделы:
• постановку задачи, описание применяемых математических методов и допущений и ограничений, связанных с выбранным математическим аппаратом;
описание алгоритмов и функционирования программы с обоснованием принятых решений;
описание и обоснование выбора способа организации входных и выходных данных;
описание и обоснование выбора состава технических и программных средств на основании проведенных расчетов или анализов.
В разделе Ожидаемые технико-экономические показатели указывают технико-экономические показатели, обосновывающие преимущество выбранного варианта технического решения.
В разделе Источники, использованные при разработке, указывают перечень научно-технических публикаций, нормативно-технических документов и других научно-технических материалов, на которые есть ссылки в исходном тексте.
Пояснительная записка составляется профессионалами в области разработки программного обеспечения для специалистов того же уровня квалификации. Следовательно, в ней уместно использовать специальную терминологию, ссылаться на специальную литературу и т. п.
6.3. Руководство пользователя
В настоящее время часто используют еще один эксплуатационный документ, в который отчасти входит руководство системного программиста, программиста и оператора. Этот документ называют Руководством пользователя. Появление такого документа явилось следствием широкого распространения персональных компьютеров, работая на которых пользователи совмещают в своем лице трех указанных специалистов.
Составление документации для пользователей имеет свои особенности, связанные с тем, что пользователь, как правило, не является профессионалом в области разработки программного обеспечения. В книге С. Дж. Гримм [17] даны рекомендации по написанию подобной программной документации:
учитывайте интересы пользователей — руководство должно содержать все инструкции, необходимые пользователю;
излагайте ясно, используйте короткие предложения;
избегайте технического жаргона и узкоспециальной терминологии, если все же необходимо использовать некоторые термины, то их следует пояснить;
• будьте точны и рациональны — длинные и запутанные руководства обычно никто не читает, например, лучше привести рисунок формы, чем долго ее описывать.
Руководство пользователя, как правило, содержит следующие разделы:
общие сведения о программном продукте;
описание установки;
описание запуска;
инструкции по работе (или описание пользовательского интерфейса);
сообщения пользователю.
Раздел Общие сведения о программе обычно содержит наименование программного продукта, краткое описание его функций, реализованных методов и возможных областей применения.
Раздел Установка обычно содержит подробное описание действий по установке программного продукта и сообщений, которые при этом могут быть получены.
В разделе Запуск, как правило, описаны действия по запуску программного продукта и сообщений, которые при этом могут быть получены.
Раздел Инструкции по работе обычно содержит описание режимов работы, форматов ввода-вывода информации и возможных настроек.
Раздел Сообщения пользователю должен содержать перечень возможных сообщений, описание их содержания и действий, которые необходимо предпринять по этим сообщениям.
6.4. Руководство системного программиста
По ГОСТ 19.503—79 руководство системного программиста должно содержать всю информацию, необходимую для установки программного обеспечения, его настройки и проверки работоспособности. Кроме того, как указывалось выше, в него часто включают и описание необходимого обслуживания, которое раньше приводилось в руководстве оператора (ГОСТ 19.505—79) и/или руководстве по техническому обслуживанию (ГОСТ 19.508—79). В настоящее время данную схему используют для составления руководства системному администратору.
Руководство системного программиста должно содержать следующие разделы:
общие сведения о программном продукте;
структура;
настройка;
проверка;
дополнительные возможности;
сообщения системному программисту.
Раздел Общие сведения о программе должен включать описание назначения и функций программы, а также сведения о технических и программных средствах, обеспечивающих выполнение данной программы (например, объем оперативной памяти, требования к составу и параметрам внешних устройств, требования к программному обеспечению и т. п.).
В разделе Структура программы должны быть приведены сведения о структуре программы, ее составных частях, о связях между составными частями и о связях с другими программами.
В разделе Настройка программы должно быть приведено описание действий по настройке программы на условия практического применения.
В разделе Проверка программы должно быть приведено описание способов проверки работоспособности программы, например контрольные примеры.
В разделе Дополнительные возможности должно быть приведено описание дополнительных возможностей программы и способов доступа к ним.
В разделе Сообщения системному программисту должны быть указаны тексты сообщений, выдаваемых в ходе выполнения настройки и проверки программы, а также в ходе ее выполнения, описание их содержания и действий, которые необходимо предпринять по этим сообщениям [1].
Контрольные вопросы
Назовите виды программных документов.
Как составляется пояснительная записка?
Каким образом составляется руководство пользователя?
Как составляется руководство системного администратора?
Глава 7
РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
7.1. Инструментальные средства разработки программ
Инструментальное программное обеспечение (Software tools) — программное обеспечение, используемое в ходе разработки, корректировки или развития других программ: редакторы, компиляторы, отладчики, вспомогательные системные программы, графические пакеты и др.
Сюда входят языки программирования, интегрированные среды разработки программ, CASE-системы и др.
7.1.2. Выбор языка программирования
Существующие на сегодняшний день языки программирования можно выделить в следующие группы [1, 56]:
универсальные языки высокого уровня;
специализированные языки разработчика программного обеспечения;
специализированные языки пользователя;
языки низкого уровня.
В группе универсальных языков высокого уровня безусловным лидером на сегодня является язык С++. Действительно, он имеет ряд достоинств:
масштабируемость. На языке С++ разрабатывают программы для самых различных платформ и систем;
возможность работы на низком уровне с памятью, адресами, портами, что при неосторожном использовании может легко превратиться в недостаток;
С++ имеет мощный препроцессор, унаследованный от С, но, как и любой другой мощный инструмент, требует осторожного использования;
возможность создания обобщенных алгоритмов для разных типов данных, их специализация и вычисления на этапе компиляции, используя шаблоны.
При этом язык С++ обладает рядом существенных недостатков:
подключение интерфейса внешнего модуля через препро-цессорную вставку заголовочного файла (#include) серьезно замедляет компиляцию при подключении большого количества модулей;
недостаток информации о типах данных во время компиляции;
сложность для изучения и компиляции;
некоторые преобразования типов неинтуитивны. В частности, операция над беззнаковым и знаковым числами выдает беззнаковый результат.
Для С++ существует большое количество библиотек классов, поддерживающих создание пользовательского интерфейса, клиент-серверных приложений, работу с базами данных и т. д., поэтому пока альтернативы С++ нет [40]. Для второстепенных проектов иногда используется Visual Basic. Язык Java рассматривался как альтернатива Basic, но из-за отсутствия визуального средства разработки форм он пока остается малопригодным. Современный Object Pascal, как и Pascal, предложенный Н. Виртом в середине 70-х годов XX в., остается наиболее привлекательным для обучения основам программирования в силу своей простоты, структурированности и обнаружения компилятором большого количества не только синтаксических, но и семантических ошибок.
В нынешнее время в отличие от 60-х годов XX в. языки программирования создаются крайне редко. За последние 15 лет можно отметить лишь две новинки, получившие широкое распространение — это Java (Sun Microsystems, 1995 г.), ставший популярным во многом благодаря технологии его использования в Интернете и появления такого понятия, как виртуальная Java-машина, и С# (Microsoft, 2000 г.), созданный на основе С++.
Создателем языка является сотрудник Microsoft Андреас Хейлсберг. Он стал известным в мире программистов задолго до того, как пришел в Microsoft. Хейлсберг входил в число ведущих разработчиков одной из самых популярных сред разработки — Delphi. В Microsoft он участвовал в создании версии Java — J++, так что опыта в написании языков и сред программирования ему не занимать. Как отмечал сам Андреас Хейлсберг, С# создавался как язык компонентного программирования, и в этом одно из главных достоинств языка, направленное на возможность повторного использования созданных компонентов. Другие достоинства языка С#:
сохраняет лучшие черты популярных языков программирования С/С++, на основе которых он создан. В связи с этим облегчается переход программистов от С++ к С#;
является проще и надежнее С++. Простота и надежность главным образом связаны с тем, что на С# хотя и допускаются, но не поощряются такие опасные свойства С++, как указатели, адресация, разыменование, адресная арифметика;
является полностью объектно-ориентированным языком, где даже типы, встроенные в язык, представлены классами;
реализует возможности наследования и универсализации;
учитывает все возможности Framework .Net, так как С# создавался параллельно с данной средой;
благодаря каркасу Framework .Net, ставшему надстройкой над операционной системой, программисты С# получают те же преимущества работы с виртуальной машиной, что и программисты Java. Эффективность кода даже повышается, поскольку исполнительная среда CLR представляет собой компилятор промежуточного языка, в то время как виртуальная Java-машина является интерпретатором байт-кода;
мощная библиотека каркаса поддерживает удобство построения различных типов приложений на С#, позволяя легко строить Web-службы, другие виды компонентов, достаточно просто сохранять и получать информацию из базы данных и других хранилищ данных;
• является источником надежного и эффективного кода Кроме вышеописанных языков к группе универсальных
принадлежат также Modula, Ada, COBOL, FORTRAN и некоторые другие. Каждый из вышеописанных языков имеет свои особенности и, соответственно, свою область применения. В настоящее время универсальные языки программирования применяются в самых различных областях человеческой деятельности, таких как:
научные вычисления (языки С++, FORTRAN, Java);
системное программирование (языки С++, Java);
обработка информации (языки С++, COBOL, Java);
искусственный интеллект (LISP, Prolog);
издательская деятельность (Postscript, TeX);
удаленная обработка информации (Perl, PHP, Java, С++);
описание документов (HTML, XML).
С течением времени одни языки развивались, приобретали новые черты и остались востребованными, другие утратили свою актуальность и сегодня представляют в лучшем случае чисто теоретический интерес (Focal, PL/1 и др.). В значительной степени это связано с такими факторами: