Определение основных компонентов системы.
Простейшая система включает один входной поток данных, один выходной поток, одну программу, содержащую подпрограмму. Если элементы данных поступают из нескольких источником, то тогда для каждого источника предусматривается свой входной поток. Если результаты предполагается использовать несколькими способами, то надо иметь соответствующее число отдельных выходных потоков. Данные, характеризующие текущую ситуацию, могут подвергаться корректировке (обновление записи, содержащей информацию, например, о деятельности предприятия). Данные, получаемые в ходе длительного эксперимента, пополняются новыми записями. Таким образом, система должна включать в себя хотя бы три программы, выполняющие основные функции:
Ø запоминание данных;
Ø корректировка данных;
Ø использование хранящихся данных.
Если система состоит из нескольких программ, то в ней циркулирует несколько различных потоков данных.
Для каждой программы предусматривается два потоков данных:
ü входной;
ü выходной.
Если программа предназначена для корректировки, то она имеет два входных потока:
1. данные, подлежащие корректировке;
2. новую информацию.
Если выходной поток направляется не на монитор, то должен быть предусмотрен дополнительный выходной поток, отражающий процесс выполнения программы (успешное или аварийное завершение, любые отклонения от нормы).
Пример:
Упрощённая структура системы сопровождения данных:
Хранение данных |
Корректировка |
Использование данных |
Главный список |
Главный список |
Изменение данных |
оперативный отчет |
оперативный отчет |
отчет |
Исходные данные |
- длительное хранение, - процесс преобразования данных,
- поток данных.
Такую структуру имеют многие автоматизированные системы управления и ведения документации. Данная схема отображает порядок прохождения данных через систему. Это связано с тем, что хотя о прикладных системах принято судить как о наборах программ, сами данные имеют более важное значение, чем программное обеспечение.
Если программа повреждена, то можно перезаписать, тогда как восстановление данных сложнее. Поэтому надо постоянно копировать данные, иногда хранить записи обо всех проведённых корректировках.
С учетом дополнений структура системы сопровождения данных имеет вид:
Хранение данных |
Коррек-тировка данных |
Исполь-зование данных |
Изменение данных |
отчет |
Исходные данные |
Сорти-ровка данных |
Упорядо-ченные данные |
Главный файл |
Копиро-вание данных |
Главный файл |
Сбор измене-ний |
Корректи-рующий файл |
Сорти-ровка изменений |
Корректи-рующий файл |
оперативный отчет |
файл регистрации корректировок |
Определение потоков данных.
Определение потоков данных производится согласно правилам:
1. Каждому источнику данных соответствует один входной поток;
2. Если имеется совокупность наборов данных, получаемых из нескольких источников, то эти наборы распределяются по группам обрабатываемых совместно потоков данных;
3. Если не все потоки данных обрабатываются одновременно, то процесс обработки делится на этапы, в каждом из которых участвует группа совместно обрабатываемых потоков. Ещё должны существовать внутренние потоки данных, связывающие последовательные этапы.
4. Для каждого этапа обработки в системе выделяется основной выходной поток, содержащий результаты обработки и дополнительный поток для выдачи оперативных отчётов, сообщений об ошибках и т.п.
Определение процессов.
Основные правила:
1. Если потоки данных обрабатываются раздельно, то для каждого из них требуется отдельный процесс.
2. Если некоторые функции системы должны выполняться в разное время или чаще других функций, то они реализуются в виде отдельных процессов.
3. Если некоторые, из промежуточных потоков данных сохраняются для их последующего использования, то должны быть предусмотрены:
а)процесс для их запоминания;
б)процесс для сопровождения, если требуется корректировка;
в)процесс для поиска и обработки данных.
Примечание:
Когда вся совокупность определена, стоит выяснить, нет ли заранее написанных программ, которые могли бы выполнить часть необходимых функций.
Методы разработки данных.
Чтобы продемонстрировать связи, существующие между отдельными компонентами системы, используют графические схемы.
1. Графические диаграммы (граф-диаграммы)
Граф имеет вершины и рёбра. Рёбра изображаются в виде стрелок, указывающие направление передачи управления. В вершинах могут быть записаны значения переменных. Графы бывают плоские и трёхмерные.
Граф-диаграммы отображают прохождение потоков данных между процессами. Поэтому их ещё называют графами потоков данных (пример предыдущей темы – граф-диаграмма).
Такой тип схемы можно использовать как на системном уровне для описания внешних входов и выходов, так и при проектировании самих программ для описания перемещения данных между отдельными модулями. Физические носители данных здесь не указываются.
2. Диаграммы Варнье-Орра.
Здесь в иерархической структуре системы выделяются её основные элементарные составные части, которые отражают носители информации (схематичный рисунок). Сначала система делится на ряд отдельных процессов. Это 1-й уровень. На следующем уровне указываются потоки данных для каждого процесса. 3-й уровень: перечисляются наборы данных. 4-й уровень6 перечисляются соответствующие носители информации. Направление потоков данных отмечаются стрелками.
Исходные данные |
Оперативный отчёт |
Главный список |
Главный список |
Изменённые данные |
Оперативный отчёт |
Главный список |
Отчёт |
Исходные данные |
Оперативный отчёт |
Главный список |
Главный список |
Изменённые данные |
Оперативный отчёт |
Главный список |
Отчёт |
Система сопровождения данных:
Создание файла |
вход |
выход |
Корректировка данных |
вход |
выход |
Использование файла |
вход |
выход |
Примечания к диаграмме:
Наборы данных, используемые одновременно в нескольких процессах связаны между собой и имеют одинаковые имена. Этот метод применяется при разработке программ.
3. Функциональные схемы.
Состоят из одного или нескольких прямоугольных блоков, содержащих название программ. Блоки соединяются входящими в них стрелками с источниками и исходящими из них стрелками с приёмниками данных. Источники и приёмники данных – это физические носители информации (условные изображения). При построение функциональных схем внешние носители помещаются по бокам листа. Процессы и наборы данных должны чередоваться вдоль линии передачи. Процессы могут сообщаться друг с другом только с помощью наборов данных. Всякая пересылка данных из одного набора в другой осуществляется соответствующими процессами.
Пример:
Новый главный файл |
Программа корректировки |
Старый главный файл |
Коррекция файла |
Отчёт о корректировке |
- не поток данных, а указывает на то, что оба файла являются логически одним и тем же.
Проектирование программ.
Проектирование программ подобно проектированию всей системы. В отличии от системы каждая программа имеет единственное функциональное назначение и не может быть разбито на части, используемые в различные моменты времени. Сходство программы с системой заключается в наличии внешних и внутренних потоков данных, областей хранения данных, возможность разделения её на независимые модули, которые можно обрабатывать и настраивать отдельно. Модуляризация программы – это разделение её на части по некоторым правилам. Этими частями могут быть: внутренние или внешние процедуры, программные секции.
Преимущества модульности:
1. Упрощение разработки и реализации программ.
2. Облегчение чтения программ.
3. Упрощение настройки и модификации программ.
4. облегчение работы с данными, имеющие сложную структуру.
5. Возможность избежать чрезмерной детализации алгоритма.
6. Обеспечение более выгодного размещения программ в памяти ЭВМ.
Группы методов проектирования программ:
1.Методы нисходящего проектирования.
2.Методы расширения ядра.
3.Методы восходящего проектирования.
4.Методы объектно-ориентированного проектирования.
1. Метод нисходящего проектирования.
1-й шаг: формулируется предложение, описывающее функцию всей программы.
2-й шаг: определяются подфункции программы.
Эта процедура является рекурсивной, т.е. каждая из подфункций может расчленяться до тех пор, пока её составные части не будут окончательно уточнены. Здесь широко применяется стратегия пошагового уточнения.
Пошаговое уточнение.
На каждом следующем этапе декомпозиции определяются программы очередного более низкого уровня. Для этого используются процедурные языки программирования.
Пример:
1-й шаг:
Процедура! обработка_пакетов;
2-й шаг:
Процедура! обработка_пакетов;
сортировать записи по управляющим полям;
отделить правильные записи от неправильных
и обработать;
ВСЁ – Процедура!
С помощью расширения шагов процедуры выполняется дальнейшее уточнение программы. На некоторых шагах уточнения появляется необходимость в использовании управляющих структур.
Пример:
Процедура! обработка пакетов;
сортировать записи по управляющим полям;
взять первую запись;
Цикл – пока не конец входного файла;
Повторять
взять правую управляющую группу;
обработать группу записей;
ВСЁ – цикл;
обработать неправильные управляющие группы;
ВСЁ – Процедура!
Операцию сортировки надо написать и оформить в виде независимого модуля.
Разбиение на модули осуществляется эвристическим способом. На каждом этапе проектирования по возможности не уточняются операции с данными. Эти вопросы откладываются на более поздние сроки. На этапе, когда принимается решение о прекращение дальнейшего уточнения, оставшиеся неопределёнными подфункции становятся вызываемыми функциями или процедурами, а проектируемый модуль – управляющим модулем.
1. Заставляет сформулировать программу.
2. Разбить программу на проблемы.
Преимущества метода пошагового уточнения:
Преимущество состоит в том, что основное внимание при его использовании обращается на проектирование корректной программы, а не только на детальное понимание задачи. Т.к. 1-й этап проектирования – корректен, а каждый последующий этап является уточнением предыдущего лишь с небольшими изменениями, то легко может быть выполнена проверка корректности процесса разработки на всех этапах.
Недостаток метода:
Недостаток состоит в том, что на поздних стадиях проектирования может обнаружиться необходимость в структурных изменениях, требующих пересмотра более ранних конструкций.