Введение в методологию DFD (Data Flow Diagram) Диаграммы потоков данных используются для описания документооборота и обработки информации. Подобно диаграммам IDEF0, DFD представляет моделируемую систему как сеть связанных между собой работ. Их можно использовать как дополнение к модели IDEF0 для более наглядного отображения текущих операций документооборота в корпоративных системах обработки информации. Главная цель DFD -- показать, как каждая работа преобразует свои входные данные в выходные, а также выявить отношения между этими работами. Создание модели потоков данных организации может быть использовано при решении таких задач как: 1) определение существующих хранилищ данных (текстовые документы, файлы, СУБД); 2) определение и анализ данных, необходимых для выполнения каждой функции процесса; 3) подготовка к созданию модели структуры данных организации (т. н. IRD-модели); 4) выделение основных и вспомогательных бизнес-процессов организации. Диаграммы потоков данных показывают, как каждый процесс преобразует свои входные данные в выходные и выявляет отношения между этими процессами, т. е. представляет моделируемую систему как сеть связанных работ. Любая DFD-диаграмма может содержать работы, внешние сущности, стрелки потоков данных и хранилища данных. Декомпозиция IDEF0 в диаграмму DFD: 1) удалить все граничные стрелки на диаграмме DFD; 2) создать соответствующие внешние сущности и хранилища данных; 3) создать внутренние стрелки, начинающиеся с внешних сущностей, вместо граничных стрелок; 3) стрелки на диаграмме IDEF0, затоннеллировать. Внешняя сущность представляет собой материальный объект или физическое лицо, выступающее как источник или приёмник информации (например, заказчики, персонал, программа, склад, инструкция). Внешние сущности на DFD по смыслу соответствуют механизмам и управлениям. Определение некоторого объекта, субъекта или сущности в качестве внешней системы указывает на то, что она находится за пределами границ проектируемой информационной системы. В связи с этим внешние сущности, как правило, отображаются только на контекстной диаграмме DFD. В процессе проектирования некоторые внешние сущности могут быть перенесены на диаграммы декомпозиции, и наоборот -- некоторые процессы могут быть представлены как внешние сущности. Внешняя сущность изображается в виде: [Заказчик] Поток представляет преобразование входных данных в выходные по определённому алгоритму. Каждый поток должен иметь имя в виде глагола неопределённой формы, за которым следует существительное, например, "Ввести сведения о клиенте". Вложенность указывается через точку: 2.3.6. Преобразование информации можно показать как с точки зрения процессов, так и с т. з. систем и подсистем. Накопитель представляет собой абстрактное устройство для хранения информации, которую можно в любое время поместить в накопитель и затем извлечь, причём способы помещения и извлечения могут быть любыми. Из описаний данных можно сформировать IRD-модель данных. Накопителю обязательно должно даваться уникальное имя, номер. Имя накопителя выбирается из соображений наибольшей информативности для разработчиков. Например, если в качестве накопителей выступают таблицы БД, то в качестве имён рекомендуется использовать имена таблиц. В качестве накопителя можно представить всю БД целиком. Накопители изображаются следующим образом: [Dl|Получаем. счета] Поток данных определяет информацию, материальный объект, передаваемый от источника к приёмнику. Реальный поток данных может быть передаваемым как угодно; должен иметь имя, характеризующие поток данных. Направление потока указывают стрелки. В диаграмме IDEF0 потоки данных соответствуют входам и выходам. В отличие от IDEF0, стрелки могут входить и выходить с любой грани сущности. Пример потока данных: ---------------- | 15 | +----------------+ |Выв. отч. о пр. | <...> +----------------+ |Бухгалтерия | ---------------- Название потока может формироваться по формуле: название объекта и статус. Построение иерархии диаграмм потоков данных Первым шагом при построении иерархии диаграмм потоков данных является построение контекстной диаграммы. Обычно при проектировании программных систем строится единая контекстная диаграмма со звездообразной топологией. В центре находится главный процесс, соединённый с приёмниками и источниками информации, посредством которой система взаимодействует с пользователем и другими внешними системами. Для сложных ИС строится иерархия контекстных диаграмм, причём диаграмма внешнего уровня не должна содержать главный процесс. После построения контекстных диаграмм полученную модель надо проверить на изолированность объектов (отсутствие информационной связи с другими объектами). Для каждой подсистемы, присутствующей на контекстных диаграммах, <...> Мини-спецификация -- это описание логики процесса. Должна формулировать его основные функции таким образом, чтобы специалист мог разработать соответствующую программу. Являются конечной вершиной в иерархии диаграмм. Структуры данных конструируются из элементов данных и могут содержать альтернативы, условные вхождения и итерации. Условное вхождение означает, что данный компонент может отсутствовать на диаграмме. Альтернатива означает вхождение одного из элементов. Итерация означает вхождение определённого числа элементов в заданном диапазоне. Моделирование IDEF3 Использует графическое описание взаимоотношений информации и объектов. Цель -- дать возможность аналитикам описать ситуацию, когда процессы выполняются в определённой последовательности, а также описать объекты, участвующие совместно в одном процессе. Любая диаграмма IDEF3 содержит работы, связи, перекрёстки и объекты ссылок. +--------------------+ |Изготовление изделия| +----------+---------+ 1.1.7 | -----------+---------- Номер работы, которая была декомпозирована, состоит из номера родительской работы, версии декомпозиции и собственного номера. В каждую работу может входить и выходить только по одной стрелке. Связи обычно делают так, чтобы они были направлены слева направо и сверху вниз. Связи бывают прямыми -----------> (Precedence) -- сплошная линия, соединящая работы и показывающая, что работа источник должна закончиться прежде, чем работа-цель начнётся. ---------->> (Object Flow) -- применяется для описания того факта, что результатом работы источника ставновится объект, необходимый для работы цели. - - - - - -> (Relational Link) -- используется для изображения связи между единицами работ, а также между единицами работ и объектами ссылок; значение задаётся аналитиком для каждого конкретного случая. Перекрёстки: окончание одной работы может служить сигналом для начала нескольких работ, или же одна работа для своего начала может ждать завершения нескольких работ. Перекрёстки используются для отображения логики слияния/разветвления: [|&], [|&|], [|X], [|X|] [|O]. Правила создания перекрёстков: 1) каждому перекрёстку для слияния предшествует перекрёсток для разветвления. Объект ссылки Выражает некие концепции или данные, которые нельзя связать с перекрёстком, стрелкой или работой. Они используются в модели для привлчения внимания читателя. При внесении объектов ссылок следует указывать тип объекта ссылки: Объект (Object) -- используется для описания того, что в действии принимает участие заслуживающий внимание объект; Ссылка (GOTO) -- используется для отображения цикличности выполнения действия; Единица действия UOB -- Unit of Behavior -- используется для многократного отображения без цикла; Заметка -- используется для документирования важных замечаний; Уточнение (ELAB -- Elaboration) -- используется для детального описания перекрёстков. Пример: +----------+ |Выполнение| |курсовой | |работы | +-----+----+ +-----------+ |1.1 | | |Выполнение | +-----+----+ +-->|разделов |---+ +---------+ +----------+ | +------+----+ | +-------------+ ->|Получение| |Подбор | | 1.1.4 | | |Оформление | +------+ |задания +-->|литературы|-->[|&] -------+----- [|&]-->|пояснительной|-->|Защита| +----+----+ +----+-----+ | | |записки | +----+-+ 1.1.2| 1.1.3| | +------------+ | +-------+-----+ 1.1.7| -----+----- -----+------ +-->|Посещение |--+ 1.1.6 | -----+-- +---------------++ |консультаций| --------+------ | |OBJECT / | - - - - - +------+-----+ |преподаватель/ | 1.1.5 | + - -+----------------+ -------+------ +----------------+ Имитационное (ситуационное) моделирование -- это метод, позволяющий строить модели, описывающие процессы так, как они проходили бы в действительности. Такую модель можно проиграть во времени как для одного испытания, так и заданного их множества. При этом результаты будут определяться случайным характером процессов. При этом по этим данным можно получить достаточно устойчивую статистику. Имитационное моделирование -- это метод исследования, при котором изучаемая система заменяется моделью, с достаточной точностью описывающей реальную систему, с которой проводятся эксперименты с целью получения информации об этой системе. К имитационному моделированию прибегают, когда: 1) дорого или невозможно экспериментировать с реальным объектом; 2) невозможно построить аналитическую модель -- в системе есть время, причины и связи, нелинейности, стохастические переменные; 3) когда необходимо сымитировать поведение системы во времени, причём временем в модели можно управлять, замедлять в случае с быстро протекающими процессами, и ускорять для моделирования системы с медленнной изменчивостью. Можно моделировать поведение тех объектов, реальные эксперименты с которыми дороги, невозможны или опасны. Виды имитационного моделирования: 1) агентное моделирование (относительно новое, появилось в 200-е годы).