
Л06-ТИПИС.ppt
- Количество слайдов: 63
Моделирование потоков данных (процессов) Лекция 6 Галиаскаров (с) 2008
Содержание лекции n Назначение методологии DFD n Графические элементы нотации DFD n Построение диаграмм DFD n Спецификации процессов n Словарь данных Галиаскаров (с) 2008 2
Содержание лекции n Назначение методологии DFD n Графические элементы нотации DFD n Построение диаграмм DFD n Спецификации процессов n Словарь данных Галиаскаров (с) 2008 3
Определение n DFD — общепринятое сокращение от англ. Data Flow Diagrams — диаграммы потоков данных. n Так называется методология графического структурного анализа, описывающая внешние по отношению к системе источники и адресаты данных, логические функции, потоки данных и хранилища данных, к которым осуществляется доступ Галиаскаров (с) 2008 4
Назначение DFD n являются основным средством моделирования n n функциональных требований к проектируемой системе; создаются для моделирования существующего процесса движения информации; используются для описания документооборота, обработки информации; применяются как дополнение к модели IDEFO для более наглядного отображения текущих операций документооборота (обмена информацией); обеспечивают проведение анализа и определения основных направлений реинжиниринга ИС Галиаскаров (с) 2008 5
Отличия от IDEF 0 n DFD-диаграммы создавались как средство проектирования программных систем, тогда как IDEF 0 - как средство проектирования систем вообще, поэтому DFD имеют более богатый набор элементов, адекватно отражающих их специфику (например, хранилища данных являются прообразами файлов или баз данных) n Наличие мини-спецификаций DFD-процессов нижнего уровня позволяет преодолеть логическую незавершенность IDEF 0 и построить полную функциональную спецификацию разрабатываемой системы. n Существуют и поддерживаются рядом CASE-инструментов алгоритмы автоматического преобразования иерархии DFD в структурные карты, демонстрирующие межсистемные и внутрисистемные связи, а также иерархию систем, что в совокупности с мини-спецификациями является завершенным заданием для программиста Галиаскаров (с) 2008 6
Содержание лекции n Назначение методологии DFD n Графические элементы нотации DFD n Построение диаграмм DFD n Спецификации процессов n Словарь данных Галиаскаров (с) 2008 7
Графические элементы нотации DFD n Внешняя сущность n Система или подсистема n Процесс, функциональный блок, деятельность, центр обработки n Хранилище, накопитель n Поток данных Галиаскаров (с) 2008 8
Виды нотаций n Нотация Гейна-Сарсона n Будет использоваться нами n Нотация Йордана n Имеет различия в изображении процессов и хранилищ Галиаскаров (с) 2008 9
Внешняя сущность n Внешняя сущность представляет собой материальный объект или физическое лицо, представляющее собой источник или приемник информации и обладающее поведением. n Внешние сущности обеспечивают необходимые входы для системы и/или являются приемниками для ее выходов. n Одна внешняя сущность может одновременно предоставлять входы и принимать выходы. Отдел (другая система) ПОЛЬЗОВАТЕЛ Ь БУХГАЛТЕРИ Я Устройство ЗАКАЗЧИ К Физическое лицо ПРИНТЕР Галиаскаров (с) 2008 10
Внешняя сущность. Имя n Именительное существительное, обозначающее предмет n Может иметь идентифицирующий сущность номер, начинающийся с E (от англ. Entity) n Примеры: Пользователь, Клиент, Менеджер, Отдел кадров, 1 С: Предприятие, Сеть, Браузер, Модуль расчета, Государственная организация Галиаскаров (с) 2008 11
Система или подсистема n Подсистема (или система) на контекстной диаграмме изображается следующим образом: Поле номера 1 Поле имени Подсистема обслуживания клиентов Поле имени проектировщика Галиаскаров (с) 2008 12
Процесс n Процесс представляет собой преобразование входных потоков данных в выходные в соответствии с определенным алгоритмом. Поле номера 1. 1 Поле имени Рассчитать остаток средств Поле физической реализации Галиаскаров (с) 2008 13
Процесс. Имя n Имя функции должно содержать глагол в неопределенной форме с последующим дополнением. n Функции обычно именуются по названию системы, например "Разработка системы автоматизированного проектирования''. n Рекомендуется использовать глаголы, отображающие динамические отношения, например: «рассчитать» , «получить» , «заказать» , «фрезеровать» , «точить» , «вычислить» , «включить» , «моделировать» и т. д. n Если автор использует такие глаголы, как “обработать”, “модернизировать”, или “отредактировать”, то это означает, что он, вероятно, пока недостаточно глубоко понимает данную функцию процесса и требуется дальнейший анализ. Галиаскаров (с) 2008 14
Хранилище, накопитель n Накопитель данных представляет собой абстрактное устройство для хранения информации, которую можно в любой момент поместить в накопитель и через некоторое время извлечь, причем способы помещения и извлечения могут быть любыми. D 1 Получаемые счета D 2 Журнал посещений D 3 Галиаскаров (с) 2008 Студенты 15
Хранилище. Имя n Именительное существительное, обозначающее предмет или совокупность предметов n Может иметь идентифицирующий хранилище номер, начинающийся с D (от англ. Datastore) Галиаскаров (с) 2008 16
Поток данных n Поток данных определяет информацию, передаваемую через некоторое соединение от источника к приемнику. 1. 1 Вывести отчет о продажах Отчет о продажах Руководство Бухгалтерия Галиаскаров (с) 2008 17
Поток данных. Дополнительно n Имеют имя – именительное существительное, обозначающее объект n Могут сливаться и разветвляться n Соединяют: Внешнюю сущность с процессом или системой n Процесс с процессом n Процесс с хранилищем n (Not) внешняя сущность с внешней сущностью n Галиаскаров (с) 2008 18
Поток данных. Примеры Смесь для кексов Сахар Яйца Испечь кекс Кекс Молоко Галиаскаров (с) 2008 19
Поток данных. Примеры Существующий номер Номер телефона Проверить номер телефона Несуществующий номер Галиаскаров (с) 2008 20
Поток данных. Примеры Заказ Выполнить заказ Детали заказа Создать Счет-фактуру Галиаскаров (с) 2008 Создать Документы на отгрузку Обновить Инвентарный список 21
Поток данных. Примеры Адрес клиента индекс Проверить индекс Улица, дом Проверить улицу, дом Номер телефона Галиаскаров (с) 2008 Проверить номер 22
Поток данных. Примеры Детали заказа Принять заказ заявка D 1 Заказы Ответить на заявку Ответ Уведомление о получении Галиаскаров (с) 2008 23
Содержание лекции n Назначение методологии DFD n Графические элементы нотации DFD n Построение диаграмм DFD n Спецификации процессов n Словарь данных Галиаскаров (с) 2008 24
Построение диаграмм DFD n Два способа построения диаграмм в методологии DFD: Подход традиционного структурного анализа n Подход событийного разделения (event partitioning) n Галиаскаров (с) 2008 25
Традиционный структурный анализ n строится физическая модель, отображающая текущее состояние дел; n полученная модель преобразуется в логическую модель, которая отображает требования к существующей системе; n строится модель, отображающая требования к будущей системе; n строится физическая модель, на основе которой должна быть построена новая система Галиаскаров (с) 2008 26
Традиционный структурный анализ n Сформировать контекстную диаграмму n Взаимодействие системы (один процесс) и системного окружения (внешние сущности) n Декомпозировать ее до диаграммы нулевого уровня n Набор процессов, хранилищ и потоков данных между ними n Декомпозировать каждый процесс n Набор подпроцессов, хранилищ и потоков данных n Завершить декомпозицию при достижении элементарного процесса n Два–три входа-выхода, очевидность последовательности действий процесса Галиаскаров (с) 2008 27
Пример в нотации Йордана Галиаскаров (с) 2008 28
Еще пример в нотации Йордана Контекстная диаграмма Диаграмма нулевого уровня Декомпозиция, завершающаяся спецификациями Галиаскаров (с) 2008 29
Контекстная диаграмма n Для сложных ИС строится иерархия контекстных диаграмм. При этом контекстная диаграмма верхнего уровня содержит не единственный главный процесс, а набор подсистем, соединенных потоками данных. n Признаками сложности (в смысле контекста) могут быть: n n n наличие большого количества внешних сущностей (десять и более); распределенная природа системы; многофункциональность системы с уже сложившейся или выявленной группировкой функций в отдельные подсистемы. Галиаскаров (с) 2008 30
Контекстная диаграмма. Нотация Гейна-Сарсона n Контекстная DFD-диаграмма часто состоит из одного функционального блока и нескольких внешних сущностей. Функциональный блок на этой диаграмме обычно имеет имя, совпадающее с именем всей системы. Галиаскаров (с) 2008 31
Диаграмма нулевого уровня Галиаскаров (с) 2008 32
Событийное разделение n Сформировать контекстную диаграмму n Цель системы, один блок, внешние сущности, список событий n Сформировать модель поведения n Одна диаграмма, один процесс на каждое событие из модели окружения, хранилища, потоки данных между ними n Входные потоки показывают необходимую информацию для обработки события n Выходные потоки демонстрируют реакцию процесса на событие Галиаскаров (с) 2008 33
Пример в нотации Йордана Галиаскаров (с) 2008 34
Список событий Клиент заказывает книгу Клиент отправляет платеж Клиент запрашивает информацию о книге Клиент запрашивает разрешение вернуть книгу Клиент запрашивает статус заказа Клиент запрашивает стстус платежа Клиент хотел бы ежемесячно получать новые предложения (В) 8. Клиент запрашивает … 9. Клиент желает … 10. Расчетная система ежедневно запрашивает информацию о платежах (В) 1. 2. 3. 4. 5. 6. 7. Галиаскаров (с) 2008 35
Список событий 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Расчетной системе необходимо ежедневно … (В) Расчетной системе необходимо ежемесячно … (В) Расчетной системе необходимо квартально … (В) Расчетной системе необходимо ежемесячно … (В) Расчетной системе необходимо ежедневно … (В) Руководство устанавливает новый лимит кредита для клиентов Расчетной системе необходимо ежедневно … (В) Типография сообщает о готовности к изданию Руководство визирует заказ Типография предлагает … Галиаскаров (с) 2008 36
Список событий 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. Типография выставляет счет-фактуру Руководство запрашивает … Отдел маркетинга запрашивает адреса клиентов Отделу маркетинга требуются статистические отчеты продаж Отделу маркетинга требуется … Издательство сообщает о новых книгах Авторам требуется ежеквартальный отчет о гонораре (В) Складу необходимы данные отгрузки и адреса доставки (В) Склад получает книги из типографии Склад получает … Галиаскаров (с) 2008 37
Список событий 30. Ежемесячно склад проводит инвентаризацию 31. Склад организует доставку заказов 32. Склад делает … 33. Отдел снабжения объявляет о новом проекте 34. Продавец размещает заказа от имени клиента 35. Отдел маркетинга извещает. . . 36. Клиент сообщает об изменении адреса 37. Автор сообщает … 38. Клиент делает выбор … 39. Счет фактура должна быть отправлена клиенту Галиаскаров (с) 2008 38
Процесс 1. Обработать заказ Галиаскаров (с) 2008 39
Процесс 30. Зарегистрировать возврат книги от клиента Галиаскаров (с) 2008 40
Процесс 34. Известить о запросе аванса Галиаскаров (с) 2008 41
Правила детализации n правило балансировки - означает, что при детализации подсистемы или процесса детализирующая диаграмма в качестве внешних источников/приемников данных может иметь только те компоненты (подсистемы, процессы, внешние сущности, накопители данных), с которыми имеет информационную связь детализируемая подсистема или процесс на родительской диаграмме; n правило нумерации - означает, что при детализации процессов должна поддерживаться их иерархическая нумерация. Например, процессы, детализирующие процесс с номером 12, получают номера 12. 1, 12. 2, 12. 3 и т. д. Галиаскаров (с) 2008 42
Признаки завершения детализации n наличия у процесса относительно небольшого количества входных и выходных потоков данных (2 -3 потока); n возможности описания преобразования данных процессом в виде последовательного алгоритма; n выполнения процессом единственной логической функции преобразования входной информации в выходную; n возможности описания логики процесса при помощи спецификации небольшого объема (не более 20 -30 строк). Галиаскаров (с) 2008 43
Содержание лекции n Назначение методологии DFD n Графические элементы нотации DFD n Построение диаграмм DFD n Спецификации процессов n Словарь данных Галиаскаров (с) 2008 44
Спецификация процесса n Спецификация процесса (СП) используется для описания функционирования процесса в случае отсутствия необходимости детализировать его с помощью DFD (т. е. если он достаточно невелик, и его описание может занимать до одной страницы текста). n Она должна формулировать его основные функции таким образом, чтобы в дальнейшем специалист, выполняющий реализацию проекта, смог выполнить их или разработать соответствующую программу. Миниспецификация является конечной вершиной иерархии DFD. n Множество всех СП является полной спецификацией системы Галиаскаров (с) 2008 45
Требования к спецификации n для каждого процесса нижнего уровня должна существовать n n одна и только одна спецификация; спецификация должна определять способ преобразования входных потоков в выходные; нет необходимости (на данном этапе) определять метод реализации этого преобразования; спецификация должна стремиться к ограничению избыточности - не следует переопределять то, что уже было определено на диаграмме или в словаре данных; набор конструкций для построения спецификации должен быть простым и стандартным. Галиаскаров (с) 2008 46
Способы задания спецификаций n Структурированный естественный язык n Псевдокод n Деревья и таблицы принятия решения n Визуальные языки проектирования Галиаскаров (с) 2008 47
Структурированный естественный язык n Структурированный естественный язык применяется для читабельного, строгого описания спецификаций процессов. n Он является разумной комбинацией строгости языка программирования и читабельности естественного языка и состоит из подмножества слов, организованных в определенные логические структуры, арифметических выражений и диаграмм. @ВХОД = СЛОВА ПАМЯТИ @ВЫХОД = ХРАНИМЫЕ ЗНАЧЕНИЯ @СПЕЦПРОЦ Для всех СЛОВ ПАМЯТИ ВЫПОЛНИТЬ: Распечатать ХРАНИМЫЕ ЗНАЧЕНИЯ Галиаскаров (с) 2008 48
Деревья и таблицы решения n Проектирование спецификаций процессов с помощью таблиц решений (ТР) заключается в задании матрицы, отображающей множество входных условий в множество действий. да С 1 D 1, D 2 нет да С 2 D 1, D 2 нет да С 3 D 1, D 2 нет D 4, D 3 Галиаскаров (с) 2008 49
Визуальные языки проектирования n Визуальные языки проектирования являются относительно новой, оригинальной методикой разработки спецификаций процесса. Они базируются на основных идеях структурного программирования и позволяют определять потоки управления с помощью специальных иерархически организованных схем. n Одним из наиболее известных подходов к визуальному проектированию спецификаций является подход с использованием FLOW-форм. n Каждый символ FLOW-формы имеет вид прямоугольника и может быть вписан в любой внутренний прямоугольник любого другого символа. Символы помечаются с помощью предложений на естественном языке или с использованием математической нотации. Галиаскаров (с) 2008 50
Пример FLOW-диаграммы For j = 1 to n Do …сравнить и поменять местами… If a[j] > a[j + 1] нет да …поменять местами… temp = a[j] = a[j + 1] = temp Галиаскаров (с) 2008 51
Содержание лекции n Назначение методологии DFD n Графические элементы нотации DFD n Построение диаграмм DFD n Спецификации процессов n Словарь данных Галиаскаров (с) 2008 52
Словарь данных n Организованный список n всех элементов данных системы n с их точными определениями n Это дает возможность различным категориям пользователей (от системного аналитика до программиста) иметь общее понимание всех входных и выходных потоков и компонент хранилищ. Галиаскаров (с) 2008 53
В словарь входят: n описание значений потоков и хранилищ, изображенных на n n DFD; описание композиции агрегатов данных, движущихся вдоль потоков, т. е. комплексных данных, которые могут расчленяться на элементарные символы (например, АДРЕС ПОКУПАТЕЛЯ содержит ПОЧТОВЫЙ ИНДЕКС, ГОРОД, УЛИЦУ и т. д. ); описание композиции групповых данных в хранилище; специфицирование значений и областей действия элементарных фрагментов информации в потоках данных и хранилищах; описание деталей отношений между хранилищами. Галиаскаров (с) 2008 54
Содержимое словаря n Для каждого потока данных в словаре необходимо хранить n n n имя потока, его тип и атрибуты. n Информация по каждому потоку состоит из ряда словарных статей, каждая из которых начинается с ключевого слова - заголовка соответствующей статьи, которому предшествует символ “@”. Галиаскаров (с) 2008 55
Тип потока n простые (элементарные) или групповые (комплексные) потоки; n внутренние (существующие только внутри системы) или внешние (связывающие систему с другими системами) потоки; n потоки данных или потоки управления; n непрерывные (принимающие любые значения в пределах определенного диапазона) или дискретные (принимающие определенные значения) потоки. Галиаскаров (с) 2008 56
Атрибуты потока n имена-синонимы потока данных в соответствии с узлами изменения n n n n имени; БНФ-определение в случае группового потока; единицы измерения потока; диапазон значений для непрерывного потока, типичное его значение и информацию по обработке экстремальных значений; список значений и их смысл для дискретного потока; список номеров диаграмм различных типов, в которых поток встречается; список потоков, в которые данный поток входит (как элемент БНФопределения); комментарий, включающий дополнительную информацию (например о цели введения данного потока). Галиаскаров (с) 2008 57
БНФ-нотация n Форма Бэкуса-Наура позволяет формально описать расщепление/ объединение потоков. n Поток может расщепляться на собственные отдельные ветви, на компоненты потока-предка или на то и другое одновременно. n БНФ-статья используется для описания компонент данных в потоках данных и в хранилищах. n Ее синтаксис имеет вид: n @БНФ = <простой оператор> / <БНФ-выражение> Галиаскаров (с) 2008 58
БНФ-выражения n = - означает "композиция из", n + - означает "И", n [ ! ] - означает "ИЛИ", n ( ) - означает, что компонент в скобках не обязателен, n { } - означает итерацию компонента в скобках, n " " - означает литерал. Галиаскаров (с) 2008 59
БНФ-выражения. Примеры n 3{болт}7 - от 3 до 7 итераций n 1{болт} - 1 и более итераций n {шайба}3 - не более 3 итераций n @БНФ = [ винт ! болт + 2{гайка}2 + (прокладка) ! клей ] Ниже приведен пример описания потока данных с помощью БНФ: n @ИМЯ = ВОСЬМЕРИЧНАЯ ЦИФРА n @ТИП = дискретный поток n @БНФ = [ "0"!"1"!"2"!"3"!"4"!"5"!"6"!"7" ] Галиаскаров (с) 2008 60
БНФ-выражения. Примеры n n n n n @ИМЯ = ВВЕДЕННАЯ КРЕДИТНАЯ КАРТА @ТИП = управляющий поток @БНФ = /указывает, что кредитная карта введена/ @ИМЯ = ДАННЫЕ КРЕДИТНОЙ КАРТЫ @ТИП = дискретный поток @БНФ = ПАРОЛЬ + ДЕТАЛИ КЛИЕНТА + ЛИМИТ ДЕНЕГ @ИМЯ = ДАННЫЕ ПО БАЛАНСУ @ТИП = дискретный поток @БНФ = /текущий баланс счета клиента/ @ЕДИНИЦА ИЗМЕРЕНИЯ = доллар Галиаскаров (с) 2008 61
БНФ-выражения. Примеры n n n n @ДИАПАЗОН = +/- 100000 @ТОЧНОСТЬ =. 01 @ИМЯ = ДЕНЬГИ @ТИП = дискретный поток @БНФ = /деньги, выдаваемые клиенту/ @ЕДИНИЦА ИЗМЕРЕНИЯ = доллар @НОРМА = 5. . 1000 @КОММЕНТАРИЙ Сумма выдаваемых денег должна делиться на 5 @ИМЯ = ПРОТОКОЛ ОБСЛУЖИВАНИЯ @ТИП = дискретный поток @БНФ = (ОБРАБОТАННАЯ ДОКУМЕНТАЦИЯ)+ + (ДЕНЕЖНАЯ СУММА) + + (ДАННЫЕ ПО ИСТОРИИ ЗАПРОСА) Галиаскаров (с) 2008 62
Рекомендуемая литература n С. В. Черемных, И. О. Семенов, В. С. Ручкин. Моделирование и анализ систем. IDEFтехнологии: практикум. М: Финансы и статистика, 2002 Галиаскаров (с) 2008 63