Написание спецификаций — цель первой части второй лабораторной работы. Также спецификации являются третьим разделом курсовой работы.
На этапе определения спецификаций осуществляется точное описание функций, реализуемых ЭВМ, а также задаются структуры входных и выходных данных, методы и средства их размещения. Определяются алгоритмы обработки данных.
Центральным вопросом определения спецификаций является проблема организации базы данных. При этом решается комплекс вопросов, имеющих отношение к структуре файлов, организации доступа к ним, модификации и удаления.
В случае, когда новая система создается на основе существующих, составной частью спецификаций является схема (алгоритм) приведения существующей базы данных к новому формату. Такое преобразование может потребовать разработку специальной программы, которая становится ненужной после ее первого и единственного использования.
Все эти вопросы должны быть отражены в функциональных спецификациях, которые представляют собой документ, являющийся основополагающим в процессе разработки системы, так как содержит конкретное описание последней. Чем подробней составлены спецификации, тем меньше вероятность возникновения ошибок.
В спецификациях должны быть представлены данные для тестирования элементов системы и системы в целом. Это требование является объективным и обязательным, так как на данном этапе на параметры тестирования не будет оказывать влияние конкретная реализация системы.
Так как функциональные спецификации описывают принятые решения в целом, данный документ можно использовать для начальных оценок временных затрат, числа специалистов и других ресурсов, необходимых для проведения работ.
В общем случае спецификации определяют те функции, которые должна выполнять система, не указывая, каким образом это достигается. Составление подробных алгоритмов на этом этапе преждевременно и может вызвать нежелательные осложнения.
Пример. Далее приводится пример оформления спецификации на программу «Электронный каталог».
Внешняя спецификация:
main: procedure (File);
declare 1 File;
2 Name: string [20];
2 Album: string [15];
2 Genre: string [15];
2 Year: string [4];
if File not found then
begin
put (‘ошибка открытия файла’);
call Create;
end;
if length (File)=0 then
put (‘файл не содержит записей’);
do case (кнопка)
// Вывод содержимого файла на экран
«Просмотр»: call View;
// Поиск записи в файле
«Поиск»: call Search;
// Добавление записи
«Добавить»: call Add;
// Удаление записи из файла
«Удалить»: call Del;
// Выход из программы
«Выход»: call Exit;
end;
end main.
Внутренняя спецификация:
procedure View (File);
begin
do while EOF(File)
begin
get (запись);
put (запись);
end;
end View;
procedure Search (File);
begin
get (искомое значение);
do while EOF(File)
begin
if (искомое значение)=true then
put (Name, Album, Genre, Year);
end;
end Search;
procedure Add (File);
begin
get (запись);
put (запись в файл);
end Add;
procedure Del (File);
begin
get (запись);
put (удаление записи из файла);
end Del;
procedure Create (File);
begin
get (создание файла);
end Create;