
- •Министерство образования и науки российской федерации
- •Введение
- •1 Виды программных документов и устанавливающие их госТы
- •К. Гр. Гд – кд
- •44. 4241. 14 - 13
- •44.4241.14 - 13
- •2 Содержание основной части программных документов
- •2.1 Требования к содержанию документа Текст программы
- •Procedure InitStack(Var Top:tp); {Процедура инициализации стека}
- •2.2 Требования к содержанию документа Описание программы
- •InitStack
- •InStack
- •2.3 Требования к содержанию документа Описание применения
- •2.4 Требования к содержанию документа Спецификация
- •Список использованных источников
- •Приложение а Список госТов Единой Системы Программной Документации
- •Приложение б Пример заполнения основной части программного документа «Спецификация»
- •Приложение в Основные элементы графического изображения схем алгоритмов и программ
44. 4241. 14 - 13
Руководитель Студентка гр.4241
доц. Бариков Л.Н. Федяева Е.В.
Нормоконтролёр
доц. Попов В.П.
2014
Рисунок 2 – Пример заполнения титульного листа программного документа
3
44.4241.14 - 13
СОДЕРЖАНИЕ
1 Общие сведения 4
2 Функциональное назначение 5
3 Описание логической структуры 6
4 Схема алгоритма программы 7
5 Спецификация подпрограмм 12
6 Используемые технические средства 15
7 Вызов и загрузка 16
8 Входные данные 17
9 Выходные данные 18
Лист регистрации изменений 19
Рисунок 3 – Пример фрагмента содержания программного документа
Основная частьпрограммного документа заполняется в соответствии с ГОСТ на соответствующий вид программного документа. Рекомендации по заполнению основной части некоторых видов программных документов приведены далее в разделе 2. Единым требованием для всех документов является следующее. Каждая страница программного документа, за исключением титульного листа, имеет вверху два заполненных поля: номер страницы в правом верхнем углу и шифр соответствующего документа по центру страницы. Каждая страница документа заполняется только с одной стороны.
Часть регистрации измененийпрограммного документа согласно ГОСТ 19.603-78 представляет собой таблицу, содержащую сведения обо всех изменениях программного документа. Лист регистрации изменений должен присутствовать всегда (даже в том случае, если в программном документе изменений не было). Форма соответствующей таблицы приведена на рисунке 4.
19 44.4241.14 - 13 | |||||||||
Лист регистрации изменений | |||||||||
Изм. |
Номера листов (страниц) |
Всего листов (страниц) в докум. |
№ докум. |
Входящий № сопрово- дительного докум. и дата |
Подп. |
Дата | |||
изменён- ных |
заменён- ных |
новых |
аннули- рованных |
Рисунок 4 – Форма листа регистрации изменений
2 Содержание основной части программных документов
Материалы любого программного документа располагаются в следующей последовательности:
- титульный лист(первый лист документа, страница не нумеруется),
- лист аннотации(второй лист документа),
- лист(листы)содержания,
- текст документа,
- приложения,
- лист регистрации изменений (последний лист документа).
Приложениявыполняются при необходимости и служат для лучшего понимания принципа работы программы. Приложения могут содержать примеры использования программы, примеры расположения исходных данных в программных структурах и другие сведения, облегчающие понимание программы.
Аннотациярасполагается на отдельной пронумерованной странице документа с заголовком "АННОТАЦИЯ" (раздел документа без номера).
Содержаниедокумента располагается на отдельной пронумерованной странице (страницах) сразу после аннотации, снабжается заголовком "СОДЕРЖАНИЕ".
2.1 Требования к содержанию документа Текст программы
ГОСТ 19.101-77 определяет программный документ «Текст программы» как запись программы с необходимыми комментариями. Этот документ должен состоять из титульной части, информационной части, основной части, части регистрации изменений.
В разделе «СОДЕРЖАНИЕ» информационной частидокумента должны быть указаны названия всех программных единиц (программ, подпрограмм, модулей, и т.д.), входящих в программный комплекс и номера страниц документа, на которых располагаются тексты соответствующих программных единиц.
В основной частидокумента должны быть представлены тексты всех программных единиц, причем текст каждой программной единицы должен начинаться со спецификации и снабжаться необходимыми комментариями.Спецификациейназовем краткое определение функционального назначения программного продукта и описание входных и выходных данных, а также ряда внутренних структур данных, необходимых для понимания логики работы программы. Спецификация должна предварять общий текст программы и располагаться в отдельных строках комментария. Основной текст программы должен быть снабжен комментариями, определяющими логику работы программы.Комментариидолжны быть такими, чтобы, прочитав их без текста программы, можно было восстановить логику работы программы. Лучшей документацией внутренней логики программы является простая и ясная структура текста программы, использование сдвига по строке в соответствии с уровнем вложенности, осмысленные имена и соблюдение других правил, касающихся хорошего стиля программирования [3, 4, 5, 6]. Пример текста программы приведен на рисунке 5.
Program Control;
{Программа контроля правильности расстановки всех видов скобок в программах}
Uses Stack; {Подключение модуля для работы со стеком}
Procedure Brackets(NameF:String); {Процедура проверки правильности расстановки скобок в тексте программы - текстовом файле с именем NameF }
Procedure Error(n:Byte; s:Char); {Процедура расшифровки ошибок}
Begin Case n Of
1 : WriteLn(‘Нет соответствия ’,s,’ скобок !’);
2 : WriteLn(‘Лишняя закрывающая скобка ’,s,’ !’);
3 : WriteLn(‘Лишняя открывающая скобка ’,s,’ !’);
End;
End; {Error}
Var FT:Text; Top:TP; s,sz,sk:Char;
Begin
Assign(FT,NameF);
Reset(FT);
InitStack(Top); {Инициализация стека}
While Not Eof(FT) {Пока не достигнут конец файла}
Do Begin While Not EoLn(FT) {Пока не достигнут конец строки}
Do Begin Read(FT,s);
Case s of
‘(‘,’[‘,’{‘: InStack(s,Top);
‘}’,’]’,’)’: If Not EmptyStack(Top)
Then Begin {Стек не пуст}
OutStack(sk,Top);
Case sk of
‘(‘ : sz:=’)’;
‘[‘ : sz:=’]’;
‘{‘ : sz:=’}’
End;
If s<>sz
Then Begin Error(1,s); Exit;
End;
End
Else Begin {Стек пуст} Error(2,s); Exit;
End;
End; {Case}
End; {While}
ReadLn(FT);
End;
Close(FT);
If EmptyStack(Top) {Если стек пуст}
Then WriteLn(‘Скобки расставлены правильно!’)
Else Begin OutStack(sk,Top); Error(3,sk);
End;
End; {Brackets}
Рисунок 5 – Текст программы Control
Function FileExist(NameF:String):Boolean;
{Функция проверки существования файла любого вида}
Var F:File; {Любой вид файла}
Begin Assign(F,NameF);
{$I-} {Отключение автоматического контроля чтения-записи}
Reset(F); {Открытие файла для чтения}
{$I+} {Включение автоматического контроля чтения-записи}
If IOResult=0 {Если файл существует}
Then Begin FileExist:=True;
Close(F);
End
Else FileExist:=False;
End; {FileExist}
Var NameFT:String; s:Char;
Begin
Repeat
WriteLn(‘Введите полное имя файла с текстом проверяемой программы’);
ReadLn(NameFT);
If FileExist(NameFT) Then Brackets(NameFT)
Else WriteLn(‘Файл’,NameFT,’не существует!’);
WriteLn(‘Проверить еще одну программу ?’);
ReadLn(s);
Until Not (s in [‘Д’,’д’,’Y’,’y’]);
End.
UNIT Stack; {Модуль для работы со стеком}
INTERFACE {Интерфейсная часть модуля}
Type TInf=Char; {Тип информации}
TP=^TEl; {Ссылочный тип}
TEl=Record
inf:TInf; {Поле информации}
pSled:TP; {Поле ссылки}
End;
Procedure InitStack(Var Top:TP); {Инициализация стека}
Function EmptyStack(Top:TP):Boolean; {Проверка пустоты стека}
Procedure InStack(X:TInf;Var Top:TP); {Включение элемента}
Procedure OutStack(Var X;TInf;Var Top:TP); {Извлечение элемента}
IMPLEMENTATION {Исполняемая часть модуля}