4.2. Универсальность системы. Обсуждается уровень независимости системы от конкретных внешних условий, с учетом которых она разрабатывается. Это характеризует сложность перевода системы на другие вычислительные установки.
4.3. Надежность функционирования. Рассматриваются такие вопросы, как ожидаемое время наработки на отказ, способы корректировки ошибок, проверка достоверности информации, точность результатов, статистические характеристики всех модулей, осуществляющих вероятностные расчеты, например генераторов псевдослучайных чисел.
4.4. Защита информации. Описываются средства, обеспечивающие сохранность данных и авторизацию доступа, используемые способы кодирования.
5. Документация по системе.
5.1. Пособия и руководства. Приводится перечень документации, прилагаемой к системе, пособий, форм отчетности, рабочих описаний, системной и программной документации.
5.2. Спецификации программ. Дается общее функциональное описание отдельных программ, входящих в состав системы. Эта информация служит руководством при разработке программ.
5.3. Организация данных. Приводится общее описание взаимодействия отдельных информационных потоков в системе. Эти сведения используются при разработке принципов организации данных.
Поскольку многие из перечисленных задач связаны друг с другом, возникает необходимость в планировании последовательности их решения. Для анализа распределения работ часто применяются так называемые ПЕРТ - диаграммы.
ПЕРТ является прямой транскрипцией английского сокращения PERT, составленного из первых букв названия «program evaluation review technique» (методика анализа и корректирования планов). ПЕРТ-диаграмма представляет собой граф, содержащий описания работ и событий и характеризующий процесс взаимодействия работ во времени. Ребра графа обозначают работы, его вершины — события. Обычно под событием понимается завершение одной работы и начало другой, причем вторая не может быть начата, прежде чем завершится первая. На рис. 13.2 приведен сокращенный вариант ПЕРТ-диаграммы_ описывающей процесс проектирования прикладной системы. Поставив в соответствие каждой работе ожидаемое время ее выполнения, можно определить максимальный по продолжительности путь от начальной до конечной вершины графа, который называют критическим путем проектирования системы.
рис 13.2
На уровне аппаратуры компьютера и операционной системы данные представляются в форме, которая не воспринимается пользователем легко.
Данные разделяются на две группы: простые и структурированные. Простое данное в каждый момент обладает одним значением. Структурированное данное формируется группой данных, каждое из которых может быть простым или структурированным. К простым данным относятся флаги, коды, даты, числа, символы. К структурированным данным относятся строки, массивы, таблицы, списки, стеки, очереди, множества, записи, файлы. Файлы и базы данных должны обязательно состоять из структурированных элементов. Внешние для программной системы данные также формируются из структурированных элементов.
В языке Паскаль, например, имеются как средства для задания правил формирования структур, так и средства для непосредственного описания данных:
Type TEN_BY_TWENTY = array[10,20] of real;
Var A,B,C : TEN_BY_TWENTY;
Запись на Паскале может быть определена следующим образом:
type CUSTOMER = record
NAME: string;
ADDRESS: string;
TELEPHONE: string;
ACCOUNT_BALANCE: real;
PAYMENT_DATE: integer
end
Часто невозможно заранее, до начала работы программы установить размер структуры данных. Такие данные называются динамическими, их размер устанавливается в процессе работы программы. В большинстве языков программирования нельзя задавать динамически изменяемые структуры данных. Программисту необходимо указывать наибольшее число экземпляров - максимальный размер каждой структуры.
Программист, проектировщик и пользователь имеют разные взгляды на организацию данных. В соответствии с этим могут быть выделены три уровня организации данных:
o Логическая организация данных: проектный уровень.
o Представление данных: уровень языка реализации.
o Физическая организация данных: машинный уровень.
Логическая организация данных отражает взгляд пользователя на данные. В ее основе лежат требования пользователя и внутренне присущие данным связи. Это наиболее важный уровень абстракции, используемый при представлении данных, поскольку именно требования пользователей определяют облик проектируемой системы. Если на этапе проектирования системы удачно выбрана логическая организация данных, изменения системных требований, не приводящие к модификации логической структуры данных, не повлекут за собой реорганизации на более низких уровнях представления данных.
Только на логическом уровне могут применяться формальные методы описания динамически изменяющихся структур. Никакая дополнительная информация о членах семьи не изменит общую логическую структуру семьи:
семья =отец, мать, ребенок ...
отец = имя, возраст, профессия
мать = имя, возраст, девичья фамилия,
ребенок = имя, возраст, пол
Новые данные о членах семьи не нарушают ее общей организации, но могут привести к изменениям в представлении информации.
Описание данных на языке программирования относится к уровню представления данных. Отношения между данными задаются в виде, характерном для конкретного языка.
Уровень физической организации связан с системным программным обеспечением. На этом уровне приходится оперировать с границами слов, размерами полей, двоичными кодами и физическими записями. Отметим, что системное программное обеспечение управляет потоком данных между программами и внешними устройствами, а языки программирования управляют обменом данными между программами.
Алгоритмы содержат определение пошагового процесса обработки данных с описанием преобразований данных и описанием функций управления. Они могут быть записаны на естественном языке, на языке программирования, с помощью математической или другой символической нотации. Алгоритм не содержит описания структуры обрабатываемых данных. Название алгоритма может указывать на его назначение (например, алгоритм сортировки, обращения матриц, игры в «крестики и нолики» и т. д.) или определять используемый в нем метод решения.
Известны три основных вида средств проектирования структуры управления программой
1. структурное программирование,
2. схемы передач управления и
3. управляющие таблицы.
Все они предназначены для организации нормального функционирования программы, т. е. с их помощью определяются следующие свойства программы: порядок следования отдельных шагов обработки, ситуации и типы данных, вызывающие изменения процесса обработки, а также повторно используемые функции программы.
Структурное программирование основано на использовании трех стандартных структур: следования, выбора, повторения. Для изображения алгоритма используются псевдокод, блок-схемы.
Псевдокод отличается от обычных детализированных устных алгоритмов стандартизацией конструкций, форматированием описания, использованием ключевых слов и удобным для понимания, строгим оформлением. Ключевые слова выбираются так, чтобы сделать алгоритм ясным, строгим и однозначным.
Конструкция следования имеет следующий вид:
Р; Q
Здесь Р и Q — простые предложения, обозначающие операции преобразования данных или информационного обмена, например такие, как ЧИТАТЬ, ПИСАТЬ или ВЫЧИСЛИТЬ
Конструкции следования представляют собой наборы операторов, выполняемых в порядке их записи. Если запись ведется на псевдокоде, операторы должны быть расположены последо-иательно на отдельных строках и выровнены по левому краю. При необходимости оператор можно продолжить на второй строке, причем продолжение должно начинаться правее позиции, по которой осуществляется выравнивание:
Читать карту
I [ечатать данные с нее, как заголовки столбцов, располагая их в верхней части
страницы
Читать другую карту Печатать данные с нее, располагая их под заголовками соответствующих
столбцов
Конструкции выбора представляют собой операторы, выполняемые только один раз и при определенных условиях. Сущест-иуют различные способы реализации этих конструкций в разных и шках программирования.
if ь2 - 4ас <0 { отрицательный дискриминант} then {уравнение не имеет действительных корней}
печатать—сообщение—об—ошибке else {существуют два действительных корня}
вычислить (-b ± V(b2 -4ac))/(2a) i печатать—корни
Конструкции повторений представляют собой последовательность операторов, выполняемых несколько раз. К их числу относятся циклические структуры различных видов, в том числе и циклы, использующие счетчики и индексные переменные. Управление функционированием большей части циклических структур осуществляется с помощью проверки условия окончания или условия продолжения выполнения цикла. В псевдокоде, описывающем цикл, следует указывать, что тело цикла выполняется по крайней мере один раз, если проверка производится в Конце цикла, или что возможен случай, когда тело цикла ни paly не выполняется, если проверка осуществляется в его начале.
Способы реализации циклов в языках программирования существенно отличаются друг от друга. При описании циклов следует использовать выравнивание строк и применять комментарии: