4. МОДЕЛИРОВАНИЕ ПОТОКОВ ДАННЫХ Первым шагом пред проектных исследований является изучение того, как информация обрабатывалась в фирме до внедрения ИС и какие задачи хочет решить пользователь с помощью ИС. Во-первых, анализируется документооборот организации, - какие документы, из каких подразделений поступают в ИС и какие документы и куда должны выдаваться из ИС. Эта задача решается с помощью моделирования потоков информации и информационных процессов (процесс преобразования входных данных системы в выходные в соответствии с определенными правилами называют информационным процессом). Информационный процесс сопровождается изменением состояния предметной области. Каждое такое изменение называется событием. Существует несколько способов моделирования информационных процессов, в том числе диаграммы потоков данных Гэна и Сарсона (Gane / Sarson) - DFD - диаграммы. 4.1. Компоненты модели Гэна / Сарсона Модель, разработанная Гэном и Сарсоном, представляет собой несколько иерархически связанных диаграмм потоков данных (ДПД), которые описывают процесс преобразования данных от ввода в систему до выдачи пользователю. На верхнем уровне диаграмма определяет входы, выходы системы и основные процессы. На более детальных диаграммах каждый процесс уточняется. Достоинствами модели являются ее относительная простота, возможность установления логических связей с другими видами моделей, возможность строгого определения структуры ИС на самой ранней стадии разработки, что особенно важно для сложных систем. Рис.4.1. Изображение компонентов диаграмм Внешний объект - это предмет или лицо, являющийся источником или приемником информации, например, - заказчик, поставщик, клиент. Система и подсистемы - это части ИС. Процесс - это преобразование входных потоков данных в выходные в соответствии с определенным алгоритмом. Процесс изображается так же, как подсистема, прямоугольником и имеет номер, имя (имя начинается глаголом в неопределенной форме - "вычислить", "создать"…) и поле физической реализации. Физически процесс может быть отделом фирмы, который обрабатывает документы, либо программой, либо техническим устройством обработки данных, например - оформление приходного ордера производится в бухгалтерии. Накопитель данных - это устройство для хранения информации. Физически это может быть ящик в картотеке, файл на магнитном носителе, оперативная память ЭВМ. Накопитель данных - это прообраз будущей базы данных, поэтому описание хранящихся в нем данных должно быть увязано с информационной ER- моделью. Поток данных - это информация, передаваемая через некоторое соединение от источника к приемнику, например, - почтовые отправления, переносимые магнитные носители (диски), передаваемые курьером документы. 4.2. Порядок построения диаграммы Шаг 1. Построение контекстных диаграмм верхнего уровня иерархии. •для простых систем строится одна звездообразная диаграмма, в центре которой - главный процесс, соединенный потоками с внешними объектами; •для сложных систем (с числом внешних объектов больше 10) диаграмма содержит не один главный процесс, а набор подсистем, соединенных потоками данных. •подробно описывают все потоки и накопители данных с помощью диаграмм структур данных и списка событий. Диаграмма структуры данных показывает, из каких компонентов состоит поток данных, и строится в виде дерева. Список событий описывает различные действия внешних объектов и реакцию системы на них, он представляется в виде таблицы "Событие / Реакция". Список событий соответствует потокам данных: каждое событие формирует входной поток, а реакция - выходной поток ИС Шаг 2. Детализация подсистем и процессов. Для каждого блока строится своя детальная диаграмма, при этом следует соблюдать правила: •правило балансировки: детальная ДПД любого блока в качестве внешних источников и приемников может иметь только те компоненты, с которыми имел связь родительский блок; •правило нумерации: следует соблюдать иерархическую нумерацию процессов, например, при детализации процесса 5 вложенные процессы будут нумероваться 5.1, 5.2 и т.п. Детализация ведется до тех пор, пока процессы не станут простейшими и дальнейшее уточнение нецелесообразно (у процесса остается не более 2-3 потоков, несложно составить и кратко описать алгоритм процесса). На самом нижнем уровне детализации для каждого процесса составляется миниспецификация (описание логики алгоритма, которое может быть представлено в словесной форме и/или в виде схемы алгоритма). Шаг 3. Проверка построенных диаграмм на полноту и правильность связей. Все процессы должны быть детализированы, для всех потоков и накопителей данных должно соблюдаться правило сохранения информации (все входящие данные должны быть считаны, а все выходящие должны быть записаны). 4.3 Пример построения диаграммы В качестве предметной области рассмотрим работу видеотеки, которая получает запросы от клиентов на фильмы, проверяет членство клиентов, контролирует возврат лент, не допуская выдачу фильмов тем, кто просрочил аренду фильма. За аренду начисляется плата, за просрочку возврата - пени. Информация об аренде лент хранится отдельно от записей о членстве клиентов. Новые фильмы видеотека получает от поставщиков, фиксируя информацию о них. Служащие регулярно готовят отчеты для руководства за определенный период времени о членах видеотеки, поставщиках лент, выдаче фильмов и приобретенных лентах. Итак, приступим к анализу предметной области. Из его описания следует, что в работе видеотеки участвуют следующие группы людей: клиенты, поставщики, руководство и работники библиотеки. К внешним объектам можно отнести первые три группы пользователей. Начальная ДПД будет иметь звездообразный вид (pic.4.2). В центре находится процесс 0-го уровня "Видеотека", соединенный потоками данных с внешними объектами. Рис. 4.2 Начальная контекстная диаграмма Уточним содержание потоков данных: 1. Информация от клиента включает данные о клиенте и запрос на фильм; 2. Рис. 4.3. Пример структурной диаграммы 3. Информация для клиента включает ответ на запрос об аренде фильма и членскую карточку. 4. Информация от поставщика включает данные о поставщике и о новых фильмах; 5. Информация от руководства включает: запросы отчетов о новых членах, о новых поставщиках, о новых фильмах; об аренде фильмов, о составе видеотеки, о поставщиках вообще. 6. Информация для руководства включает все эти виды отчетов. Каждый входной поток данных порожден каким-либо событием, а выходной поток данных является ответом (реакцией) системы. Составим список событий в виде таблицы: Событие Реакция системы Новый клиент хочет стать членом видеотеки Регистрация клиента Клиент сообщает об изменении адреса Регистрация нового адреса Клиент просит фильм в аренду Рассмотрение запроса Клиент возвращает фильм Регистрация возврата Руководство находит нового поставщика Регистрация нового поставщика Изменение данных о поставщике Регистрация изменений Поставщик передает новый фильм Получение нового фильма Руководство запрашивает отчет о работе Формирование требуемого отчет Теперь можно разбить процесс 0-го уровня "Обслуживание видеотеки" на 4 процесса, отражающие основные виды деятельности видеотеки: учет членов, учет поставщиков, учет аренды фильмов, управление фондом фильмов. Поскольку компонентов системы все еще не очень много, то можно изобразить ДПД в целом (рис.4.4). Рис.4.4. Уточненная контекстная диаграмма (уровень 1) На следующем этапе можно продолжить детализацию процессов, например, рассмотрим детализацию процесса 1 - учет членов библиотеки. Этот процесс можно разбить на 4 под процесса 1.1-1.4 (рис.4.5). В центре детальной диаграммы находится накопитель данных "Члены библиотеки". Рис.4.5. Детализация контекстной диаграммы Каждый процесс на этой диаграмме имеет 2-3 входных и выходных потока данных, поэтому их дальнейшая детализация нецелесообразна. Теперь можно составить описание алгоритма каждого процесса. Например, опишем алгоритм процесса 1.1: а) начало б) получить от клиента данные для регистрации в) сравнить данные клиента со списком членов видеотеки (процесс 1.4) г) проверить: был ли клиент зарегистрирован ранее, д) если нет - то занести данные клиента в накопитель "Члены видеотеки" е) в противном случае проверить: является ли клиент должником; ж) если да - отказать клиенту в повторной регистрации и потребовать возврата долга; затем перейти к шагу "и"; з) в противном случае - обновить информацию о клиенте в накопителе "Члены видеотеки" и перейти к процессу 1.2. и) конец. Аналогично следует рассмотреть детализацию процессов 2-4, построить соответствующие детальные контекстные диаграммы и составить описание алгоритмов выполнения простейших процессов. Построение диаграмм потоков данных можно облегчить и ускорить с помощью средств автоматизации (CASE-средств): пакета CASE-аналитик, программы BPWin и др. 4.4 Построение диаграмм потоков данных в среде BPWIN. Контрольные вопросы 1. Что такое информационный процесс? 2. С какой целью строится диаграмма потоков данных? 3. Определите основные компоненты модели Гэна -Сарсона. 4. Каковы основные шаги при построении ДПД? 5. В какой момент можно закончить детализацию ДПД? 6. Что такое диаграмма структуры данных? 7. Объясните понятия события и реакции системы. 8. Как описывается алгоритм информационного процесса? 9. Перечислите известные Вам средства автоматизации анализа информационных потоков в ИС.