Здесь я хочу сосредоточиться только на одной теме, с которой приходиться иметь дело программисту в отечественных предприятиях, особенно в НИИ - на наборе стандартов ЕСПД. Не считаю себя большим знатоком ЕСПД - есть люди, которые десятки лет по нему работают, и наверняка меня поправят. Статья скорее пытается набросать контуры «дорожной карты» для тех, кто только входит в курс дела.
Системы обозначений на каждом уровне и в каждой организации свои, для каждого случая придется разбираться отдельно. Чтобы быстро понять, “чей” стандарт перед глазами, можно использовать шпаргалку .
Если известно обозначение стандарта, то получить его коды по КГС и ОКС можно, к примеру, на вот этом толковом сайте .
Итак, вернемся к обозначениям ГОСТов. Их может быть два варианта:
В следующих частях планирую уже добраться до конца списка стандартов ЕСПД.
Единая система программной документации |
ГОСТ 19.003-80ВзаменГОСТ 19428-74 |
СХЕМЫ АЛГОРИТМОВ И ПРОГРАММ.ОБОЗНАЧЕНИЕ УСЛОВНЫЕ ГРАФИЧЕСКИЕ |
|
United system for program documentation. Graphical flowchart symbols. |
Постановлением Государственного комитета СССР по стандартам от 24 апреля 1980 г. ¹ 1867 срок введения установлен
с 01.07 1981 г.
Настоящий стандарт распространяется на условные графические обозначения (символы) в схемах алгоритмов и программ, отображающие основные операции процесса обработки данных и программирования для систем программного обеспечения вычислительных машин, комплексов и систем независимо от их назначения и области применения.
Стандарт не распространяется на записи и обозначения, помещаемые внутри символа или рядом с ним, служащие для уточнения выполненных им функций.
Стандарт устанавливает перечень, наименование, форму, размеры символов и отображаемые символами функции.
Стандарт соответствует МС ИСО 1028-73 в части обозначений символов
1.1. Перечень, наименование, обозначение и размеры обязательных символов и отображаемые ими функции в алгоритме и программе обработки данных должны соответствовать указанным в табл. 1.
Таблица 1.
Наименование |
Обозначение и размеры в мм |
Функция |
1. Процесс | Выполнение операций или группы операций, в результате которых изменяется значение, форма представления или расположение данных | |
2. Решение | Выбор направления выполнения алгоритма или программы в зависимости от некоторых переменных условий | |
3. Модификация | Выполнение операций, меняющих команды или группу команд, изменяющих программу | |
4. Предопределенный процесс | Использование ранее созданных и отдельно описанных алгоритмов или программ | |
5. Ручная операция | Автономный процесс, выполняемый вручную или при помощи неавтоматически действующих средств | |
6. Вспомогательная операция | Автономный процесс, выполняемый устройством, не управляемым непосредственно процессором | |
7. Слияние | Объединение двух или более множеств в единое множество | |
8. Выделение | Удаление одного или нескольких множеств из единого множества | |
9. Группировка | Объединение двух или более множеств с выделением нескольких других множеств | |
10. Сортировка | Упорядочение множества по заданным признакам | |
11. Ручной ввод | Ввод данных вручную при помощи неавтономных устройств с клавиатурой, набором переключателей, кнопок | |
12. Ввод-вывод | Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод) | |
13. Неавтономная память | Ввод-вывод данных в случае использования запоминающего устройства, управляемого непосредственно процессором | |
14. Автономная память | Ввод-вывод данных в случае использования запоминающего устройства, не управляемого непосредственно процессором | |
15. Документ | Ввод-вывод данных, носителем которых служит бумага | |
16. Перфокарта | Ввод-вывод данных, носителем которых служит перфокарта | |
17. Колода перфокарт | Отображение набора перфокарт | |
18. Файл | Представление организованных на основе общих признаков данных, характеризующих в совокупности некоторый объект обработки данных. Символ используется в сочетании с символами конкретных носителей данных, выполняющих функции ввода-вывода | |
19. Перфолента | Ввод-вывод данных, носителем которых служит перфолента | |
20. Магнитная лента | Ввод-вывод данных, носителем которых служит магнитная лента | |
21. Магнитный барабан | Ввод-вывод данных, носителем которых служит магнитный барабан | |
22. Магнитный диск | Ввод-вывод данных, носителем которых служит магнитный диск | |
23. Оперативная память | Ввод-вывод данных, носителем которых служит магнитный сердечник | |
24. Дисплей | Ввод-вывод данных, если непосредственно подключенное к процессу устройство воспроизводит данные и позволяет оператору ЭВМ вносить изменения в процессе их обработки | |
25. Канал связи | Передача данных по каналам связи | |
26. Линия потока | Указание последовательности между символами | |
27. Параллельные действия | Начало или окончание двух и более одновременно выполняемых операций | |
28. Соединитель | Указание связи между прерванными линиями потока, связывающими символами | |
29. Пуск – останов | Начало, конец, прерывание процесса обработки данных или выполнения программы | |
30. Комментарий | Связь между элементом схемы и пояснением |
1.2. Перечень, наименование, обозначение и размеры рекомендуемых символов и отображаемые ими функции в алгоритме и программе обработки данных должны соответствовать указанным в табл. 2.
Таблица 2
Наименование |
Обозначение и размеры в мм |
Функция |
1. Межстраничный соединитель | Указание связи между разъединенными частями схем алгоритмов и программ, расположенных на разных листах | |
2. Магнитная карта | Ввод-вывод данных, носителем которых служит магнитная карта | |
3. Ручной документ | Формирование документа в результате выполнения ручных операций | |
4. Архив | Хранение комплекта упорядоченных носителей данных в целях повторного применения | |
5. Автономная обработка | Преобразование исходных данных в результате выполнения автономных операций | |
6. Расшифровка | Считывание с носителя данных, перекодирование и печать на том же или другом носителе данных в результате выполнения автономной операции | |
7. Кодирование | Нанесение кодированной информации на носитель в результате выполнения автономной операции | |
8. Копирование |
Программы для ЭВМ оформляются в соответствии с требованиями Единой системы программной документации (ЕСПД) . ЕСПД - набор ГОСТов, устанавливающих правила оформления, содержание, структуру программных документов.
Данный how-to содержит выдержки из ЕСПД. Полные сведения можно получить непосредственно из ГОСТов.
Кратко алгоритм оформления программы и виды программных документов изображены на рисунке. Более подробно процесс оформления описан далее.
Программный документ - документ, содержащий сведения, необходимые для разработки, изготовления, сопровождения и эксплуатации программ.
Каждый отдельный программный документ оформляется по (общим для всех докуметнов ЕСПД) требованиям ГОСТ 19.101-77 , ГОСТ 19.103-77 , ГОСТ 19.104-78 , ГОСТ 19.105-78 , ГОСТ 19.106-78 , ГОСТ 19.604-78 (более подробное описание данных ГОСТов следует ниже) и ГОСТа для конкретного программного документа.
ГОСТ 19.106-78 устанавливает правила выполнения программных документов для печатного способа выполнения.
Важно отметить, что данный ГОСТ не распространяется на программный документ "Текст программы".
Материалы программного документа должны располагаться в следующей последовательности :
В аннотации указывают издание программы, кратко излагают назначение и содержание документа. Если документ состоит из нескольких частей, в аннотации указывают общее количество частей. Содержание документа размещают на отдельной (пронумерованной) странице (страницах) после аннотации, снабжают заголовком «СОДЕРЖАНИЕ», не нумеруют как раздел и включают в общее количество страниц документа.
Форматирование текста:
В ГОСТе присутствует образец листа, где указаны поля, места для нумерации страниц и шифра.
Таблица символов относится к служебным программам Windows, то есть, она бесплатная и входит в состав операционной системы Windows. С ее помощью можно найти символы, которых нет на клавиатуре, скопировать их в память компьютера и затем вставить в какое-либо приложение.
Эта таблица есть во всех версиях Windows: 10, 8, 7, Vista, XP. И работает она везде одинаково. Подробно для Windows 7 описано .
Это можно сделать одним из трех вариантов, предложенных ниже:
1) В строке Поиск нужно ввести без кавычек “таблица символов”. В результате поиска должна появиться ссылка на Таблицу символов.
2) Либо в главном меню: Пуск - Программы - Стандартные - Служебные - Таблица символов.
3) Третий вариант для того, чтобы найти таблицу символов. Используем , то есть:
Таблица символов дает возможность посмотреть все символы, которые входят в какой-либо шрифт. Рассмотрим это на конкретном примере.
Для наглядности эта таблица представлена ниже на рисунке:
Рис. 1. Таблица символов Windows для шрифта Times New Roman. Выделен символ “Параграф”. Указаны клавиши для ввода параграфа: Alt+0167
Порядок расположения символов в Таблице символов такой:
Как скопировать символ из Таблицы символов и поместить его туда, где требуется?
Предлагаю для этого два способа:
Мы копируем (не скачиваем, а именно копируем) символ в Таблице символов для того, чтобы временно поместить его в память компьютера (или аналогичного устройства). Такая временная память называется .
Такой буфер нужен для того, чтобы временно туда поместить символ, а потом вставить его из буфера туда, где мы хотим видеть этот символ. Таким образом, символ не скачивается на диск компьютера, а временно помещается в оперативную память компьютера, то есть, в буфер обмена. А из этого буфера пользователь может вставить символ туда, где потребуется.
Разберем на конкретном примере, как можно символ из Таблицы закинуть в буфер обмена, а потом достать его оттуда и разместить туда, где это необходимо.
Чтобы скопировать символ в память компьютера, нам надо его выделить. Для этого достаточно кликнуть по необходимому символу (цифра 1 на рис. 2).
Затем щелкаем по кнопке «Выбрать» (2 на рис. 2):
Рис. 2. Кликнуть по необходимому символу и нажать на кнопку “Выбрать”
В итоге символ попадет в строку “Для копирования” (1 на рис. 3). Для того, чтобы символ оказался в буфере обмена, надо кликнуть по кнопке «Копировать» (2 на рис. 3):
Рис. 3. Копируем символ из Таблицы в буфер обмена
Есть и быстрый вариант:
По символу кликнуть два раза мышкой и он будет скопирован в буфер обмена.
После этого остается перейти в соответствующее приложение (или в текстовый редактор) и вставить скопированный символ из буфера обмена.
Для этого надо поставить в приложении (в , текстовом редакторе и т.п.) курсор в нужное место и нажать на две клавиши Ctrl+V (они выполняют команду “Вставить”).
Если не получается с клавишами Ctrl+V, тогда кликаем правой кнопкой мыши там, где должен быть помещен символ. Откроется меню, в котором щелкаем команду “Вставить”. После этого появится скопированный символ.
Заметим, что можно в Таблице символов в строку “Для копирования” поместить сразу несколько символов и одновременно все их скопировать. Тогда произойдет вставка сразу всех скопированных символов туда, где это требуется (в Блокнот, в какое-то приложение и т.п.)
Для каждого символа в Таблице имеется строго свое сочетание клавиш.
Справа в таблице символов Windows (3 на рис. 3) Вы можете увидеть, какую комбинацию клавиш нужно нажать, чтобы вставить выбранный символ в нужном Вам приложении.
Например, для знака параграфа § следует нажать сочетание клавиш Alt+0167, при этом можно использовать только цифры с малой цифровой клавиатуры.
Более подробно о том, как на практике проверить кодировку символов, используя малую цифровую клавиатуру, можно узнать . Такой способ ввода символов, которых нет на клавиатуре, требует определенных навыков и, думаю, что редко используется обычными пользователями.
Упражнение по компьютерной грамотности:
1) Откройте Таблицу символов Windows. Выберите шрифт, которым Вы чаще всего пользуетесь. Найдите два-три символа, которых нет на клавиатуре, выделите и скопируйте их в буфер обмена.
2) Откройте текстовый редактор (например, Блокнот) и вставьте из буфера обмена скопированные туда ранее символы.
Михаил Острогорский , 2010
Нас иногда спрашивают, как правильно присвоить документу код, шифр, номер и т. п. Скажем сразу, что это не великая наука. Но, во-первых, не код и не шифр, а обозначение , во всяком случае, если мы намерены соблюдать ЕСПД (ГОСТ 19) или КСАС (ГОСТ 34) . Во-вторых, давайте сначала разберемся, в чем смысл обозначений документов.
В машинописно-бумажные времена обозначения документов служили для ведения архива. Представьте себе крупную организацию, которая заказывает или собственными силами разрабатывает много программ или автоматизированных систем . Технической документации у нее тоже накапливается много. Чтобы ориентироваться в ней, помимо всего прочего необходимо снабдить каждый документ уникальным идентификатором. В качестве такового отечественные стандарты предлагают использовать обозначение , формируемое по определенным регулярным правилам. О них и пойдет речь.
Обозначения документов нужны не прокурору, не Ростехрегулированию , не разработчику программы или системы, а, в первую очередь, заказчику. Если ваш заказчик требует во что бы то ни стало снабдить созданные для него документы «кодом по госту», можно в ответ поинтересоваться, ведет ли он архив технической документации. К сожалению, в большинстве случаев ответ будет отрицательным. Если же заказчик располагает таким архивом, то, скорее всего, электронным, а не бумажным. В электронных архивах уникальные идентификаторы обычно присваиваются документам автоматически.
Таким образом, присвоение документам гостированных обозначений сегодня в значительной мере лишено смысла и представляет собой «магический ритуал». Как быть, если заказчик все-таки настаивает на его исполнении? Разумеется, исполнять.
Структура обозначения системного документа в соответствии с ГОСТ 34.201-89 показана ниже. Расшифровка частей обозначения приведена в таблице.
A.B.CCC.DD.EE.F-G.M
Часть обозначения | Значение |
A | код организации-разработчика системы. В ГОСТ 34.201-89 сказано: «Код организации-разработчика присваивают в соответствии с общесоюзным классификатором предприятий, учреждений и организаций (ОКПО) или по правилам, установленным отраслевыми НТД». По известным причинам общесоюзного классификатора сегодня с нами нет, зато существует Общероссийский классификатор предприятий и организаций (ОКПО). Код ОКПО входит в состав официальных реквизитов организации, и его должны знать у вас в бухгалтерии. Если вам очень не хочется звонить в бухгалтерию, попробуйте найти свою компанию в онлайновом справочнике , но имейте в виду, что надпись на табличке у дверей офиса не всегда совпадает с названием юридического лица. Кроме того, по ГОСТ 2.201-80 организации-разработчику должен быть присвоен четырехбуквенный код для формирования обозначений конструкторских документов. Централизованным присвоением кодов занимаются уполномоченные организации, например, ФГУП «Стандартинформ » и ОАО «Стандартэлектро ». Это реально существующая практика, некоторые компании даже публикуют на своих сайтах свидетелсьтва о присвоении им кода |
B | код классификационной характеристики типа системы или ее части. Согласно ГОСТ 34.201-89, этот код следует выбирать из общесоюзного классификатора продукции, на смену которому сегодня пришел Общероссийский классификатор продукции (ОКП) . Он многократно опубликован в Интернете, вы без труда найдете его по приведенной здесь ссылке или с помощью поисковика. В этом классификаторе собрана вся возможная продукция от шагающих экскаваторов до булавок. Раздел классификатора, посвященный автоматизированным системам, начинается строкой 425000 Программно-технические комплексы для автоматизированных систем . Возможно, в классификаторе имеются другие строки, которые вам больше подходят по специфике системы. Попробуйте найти их обычной функцией поиска по тексту страницы. В качестве альтенативы ОКП стандарт предлагает использовать общесоюзный классификатор подсистем и комплексов задач АСУ (ОКПКЗ). Насколько нам известно, он был отменен, но ничем другим не заменен, таким образом, эта ссылка делается достоянием истории |
CCC | регистрационный номер автоматизированной системы или ее части. Предполагается, что разработчик организовал у себя учет выпускаемых автоматизированных систем и присваивает им регистрационные номера. Если у вас в компании это не принято, значит, вы не можете полноценно соблюдать требования КСАС. Начните новую жизнь, заведите журнал регистрации выпущенных систем. Нумерация систем ведется по каждому типу (т. е. коду классификационной характеристики, см. выше) систем отдельно. Как быть организации, которая ухитрилась выпустить 1000 однотипных автоматизированных систем, стандарт не говорит |
DD | код документа (точнее, типа документа) по ГОСТ 34.201-89 . Например, код руководства пользователя — И3 (и-три), а код программы и методики испытаний — ПМ . |
EE | номер документа одного наименования. Допустим, у вас в комплекте документации три технологические инструкции для трех разных функциональных ролей. В этом случае у них будут номера 01, 02 и 03 . Правила назначения этих номеров (по дате выпуска документа, по названиям в алфавитном порядке или как-нибудь иначе) не уточняются. Главное, чтобы номера шли последовательно с единицы. Если в комплект входит только один документ некоторого типа, например, одна пояснительная записка к техническому проекту, номер не присваивают, а соответствующая позиция в обозначении пропускается |
F | номер редакции документа. Речь идет о тех редакциях, которые вы официально передаете заказчику, а он их официально принимает и утверждает. Если в процессе рецензирования и согласования документа заказчик многократно присылал вам замечания, а вы ему в ответ исправленный файл, о новых редакциях документа речь не идет, это рабочие материалы и только. Новая редакция возникает в том случае, если заказчик утверждает новый вариант документа, сохраняя при этом предыдущий, и в принципе в каких-нибудь ситуациях может пользоваться ими обоими. В противном случае устаревший вариант можно аннулировать и забыть о нем навсегда. Номера присваивают редакциям, начиная со второй. В первой редакции соответствующая позиция в обозначении пропускается |
G | номер части документа. Документ можно физически разделить на несколько частей. Обычно так поступают, чтобы документ было удобнее читать или переплетать. Если документ не разделен на части, номер не присваивают, а соответствующая позиция в обозначении пропускается |
M | в 1989 году электронные документы еще были явлением новым и непривычным. Типичный документ представлял собой лист или стопку листов бумаги с согласующими и утверждающими подписями. Тот факт, что дискета или магнитная лента с записанным на ней текстом тоже может быть документом, требовал отдельного осмысления. Поэтому к обозначению таких документов добавляли букву M . Как ни странно, эта практика и теперь не лишена оснований, поскольку у нас в стране в официальном документообороте фигурируют именно бумажные документы с оригинальными подписями компетентных лиц и «мокрыми» печатями организаций. Поэтому, например, технологическая инструкция, за несоблюдение которой сотрудника можно официально наказать, должна быть выполнена именно в таком виде. Но если заказчик требует от нас, допустим, текст программы (документ, предусмотренный ЕСПД), мы все-таки можем предоставить ему не грузовик листингов, а компакт-диск. Обозначение такого документа должно завершаться буквой M, которую отделяют от предыдущей части точкой (а не дефисом!) |
В качестве примера присвоим обозначение технологической инструкции для пользователя этого сайта. Сайт будем рассматривать в качестве автоматизированной системы, которую мы разработали сами для себя, причем это был наш первый опыт разработки систем такого типа. Пользователем будем считать сотрудника «Философта», который публикует на сайте статьи. Условимся также, что ответственный за публикацию — не единственная функциональная роль. Еще у нас есть ответственный за размещение рекламных баннеров, для которого написана своя технологическая инструкция. Действует первая редакция технологической инструкции, документ не разделен на части, существует в виде бумажного оригинала с подписями и печатями. С учетом перечисленных обстоятельств обозначение получается таким:
63755082.425750.001.И2.01, где
63755082 — код ООО «Философт» согласно ОКПО.
425750 — код строки Программно-технические комплексы для автоматизации обработки информации в торговле, материально-техническом обеспечении согласно ОКП. Автор статьи полистал ОКП, подумал и решил, что данная характеристика подходит нашему сайту лучше всех остальных там предлагаемых. Возможно, он заблуждается.
001 — регистрационный номер автоматизированной системы этого типа в нашем внутреннем учете (давайте считать, что мы его ведем).
И2 — код технологической инструкции по ГОСТ 34.201-89.
01 — номер технологической инструкции в комплекте технической документации на сайт. Напомним, что есть еще одна, для менеджера по рекламным баннерам, у нее номер 02.
В п. 3.2 ГОСТ 34.602-89 есть фраза, в которой упоминается некий код ТЗ: «Номера листов (страниц) проставляют, начиная с первого листа, следующего за титульным листом, в верхней части листа (над текстом, посередине) после обозначения кода ТЗ на АС». Вместе с тем, в ГОСТ 34.201-89 приведены коды документов, разрабатываемых на стадиях, начиная с эскизного проекта, но кода для ТЗ там нет, что несколько сбивает с толку.
При формировании кода ТЗ на АС можно принять во внимание п. 3.5. ГОСТ 34.602-89, в котором сказано: «При необходимости на титульном листе ТЗ на АС допускается помещать установленные в отрасли коды, например: гриф секретности, код работы, регистрационный номер ТЗ и др.», и присвоить код произвольно, сославшись на то, что так принято в отрасли или определено НТД конкретного предприятия. Кроме того, можно вспомнить, что по ГОСТ 24.101-80 у технического задания был код 2А, и присвоить документу обозначение по схеме, описанной выше. Но в общем это все уже напоминает схоластический подсчет количества чертей на кончике иглы.
Структура обозначения программного документа в соответствии с ГОСТ 19.103-77 показана ниже. Расшифровка частей обозначения приведена в таблице. Номер редакции, номер документа и номер части документа образуются так же, как для системных документов (в исторической перспективе наоборот, но мы просим читателя простить нам этот анахронизм).
A.B.CCCCC-DD EE FF-G
Часть обозначения | Значение |
A | код страны. В наше время разумно указывать двухбуквенный код в соответствии со стандартом ISO 3166-1 : RU для России, KZ для Казахстана и т. д. |
B | код организации-разработчика. По аналогии с системными документами можно указывать код ОКПО |
CCCCC | регистрационный номер программы. Согласно ГОСТ 19.103-77 , он должен присваиваться «в соответствии с Общесоюзным классификатором программ, утверждаемым Госстандартом в установленном порядке». Как соблюдать это требование сегодня, нам неизвестно. Обратите внимание на год утверждения стандарта: 1977. Многое изменилось с тех пор в нашей жизни |
DD | номер редакции документа |
EE | код вида документа в соответствии с ГОСТ 19.101-77 |
FF | номер документа данного вида |
G | номер части документа |
Начальная часть обозначения, A.B.CCCCC-DD, служит обозначением самой программы и одновременно главного связанного с ней документа, спецификации.
Любую программу или автоматизированную систему можно рассматривать как изделие и документировать на общих основаниях, руководствуясь ЕСКД (ГОСТ 2) . Этой же серией стандартов следует пользоваться при документировании технических средств , например серверов, рабочих станций, всевозможных специализированных устройств и т. п. Правила присвоения обозначений конструкторским документам устанавливает ГОСТ 2.201-80. Здесь мы воздержимся от пересказа этого документа, но не сомневаемся, что теперь читатель без труда найдет и освоит его.
Если документ снабжен листом утверждения, у последнего должно быть свое обозначение. Оно формируется по элементарному правилу: к обозначению документа следует добавить шифр ЛУ, отделив его дефисом, например: 63755082.425750.001.И2.01-ЛУ.
Внимательный читатель заметил, что если бы все организации аккуратно придерживались таких правил, обозначения документов оказались бы уникальными в пределах страны. Тогда можно было бы, предположим, учредить национальный каталог технической документации, через который любой инженер мог бы запросить нужный ему документ. Наверно это облегчило бы интеграцию автоматизированных систем разных ведомств, а ведь мы сегодня испытываем много всяких бюрократических неудобств именно из-за их изолированности. Например, пенсионеры вынуждены брать в ЗАГСе справку, что они еще живы, и лично доставлять ее в Собес, только тогда им выписывают всякие надбавки и льготы. Спрашивается, почему бы автоматизированным системам ЗАГСа и Собеса не работать с единым массивом данных. С другой стороны, умудренный опытом читатель заметит, что эти рассуждения грешат утопизмом, и будет прав.
Не исключено, что обозначения документов способны и сегодня приносить пользу при разработке и согласовании крупных комплектов технической документации. В переписке между собой и в различных рабочих материалах участникам проекта часто приходится делать ссылки на документы, перечислять или упоминать их в разных контекстах. Когда количество документов в проекте возрастает, ссылаться на них по названиям становится неудобно. В течение проекта названия могут подвергаться правке, кроме того, люди часто указывают их по памяти, сокращая и делая ошибки, что закономерно приводит к путанице. Например, заказчик сообщает об ошибке в одном документе, а разработчик его не понимает и вносит ненужные исправления в другой с похожим названием. Есть надежда, что использование обозначений поможет избавиться от подобных неурядиц.