80. Модели потоков данных (dfd)
Диаграммы потоков данных (DFD - Data Flow Diagrams) являются основным средством моделирования функциональных требований к проектируемой системе. С их помощью эти требования представляются в виде иерархии функциональных компонентов (процессов), связанных потоками данных. Главная цель такого представления — продемонстрировать, как каждый процесс преобразует свои входные данные в выходные, а также выявить отношения между этими процессами. Диаграммы потоков данных известны очень давно.
В фольклоре упоминается пример использования DFD для реорганизации переполненного клерками офиса, относящийся к 20-м гг. XX в. Осуществлявший реорганизацию консультант обозначил кружком каждого клерка, а стрелкой — каждый документ, передаваемый между ними. Используя такую диаграмму, он предложил схему реорганизации, в соответствии с которой два клерка, обменивающихся множеством документов, были посажены рядом, а клерки с малым взаимодействием были посажены на большом расстоянии друг от друга. Так появилась первая модель, представляющая собой потоковую диаграмму — предвестника DFD.
Для построения DFD традиционно используются две различные нотации, соответствующие методам Йордана и Гейна-Сэрсона. Эти нотации незначительно отличаются друг от друга графическим изображением символов. Далее при построении примеров будет использоваться нотация Гейна-Сэрсона. В соответствии с данными методами модель системы определяется как иерархия диаграмм потоков данных, описывающих асинхронный процесс преобразования информации от ее ввода в систему до выдачи пользователю.
Диаграммы верхних уровней иерархии (контекстные диаграммы) определяют основные процессы или подсистемы с внешними входами и выходами. Они детализируются при помощи диаграмм нижнего уровня. Такая декомпозиция продолжается, создавая многоуровневую иерархию диаграмм, до тех пор, пока не будет достигнут уровень декомпозиции, на котором процессы становятся элементарными и детализировать их далее невозможно. Источники информации (внешние сущности) порождают информационные потоки (потоки данных), переносящие информацию к подсистемам или процессам. Те, в свою очередь, преобразуют информацию и порождают новые потоки, которые переносят информацию к другим процессам или подсистемам, накопителям данных или внешним сущностям — потребителям информации. Опишем назначение основных символов DFD.
Потоки данныхявляются механизмами, использующимися для моделирования передачи информации из одной части системы в другую. Важность этого объекта очевидна: он дает название целому инструменту. Потоки на диаграммах обычно изображаются именованными стрелками, ориентация которых указывает направление движения информации. Иногда информация может двигаться в одном направлении, обрабатываться и возвращаться назад в ее источник. Такая ситуация может моделироваться либо двумя различными потоками, либо одним - двунаправленным.
Назначение процессасостоит в продуцировании выходных потоков из входных в соответствии с действием, задаваемым именем процесса. Это имя должно содержать глагол в неопределенной форме с последующим дополнением (например,ВЫЧИСЛИТЬ МАКСИМАЛЬНУЮ ВЫСОТУ). Кроме того, каждый процесс должен иметь уникальный номер для ссылок на него внутри диаграммы. Этот номер может использоваться совместно с номером диаграммы для получения уникального индекса процесса во всей модели.
Хранилище (накопитель) данныхпозволяет на определенных участках определять данные, которые будут сохраняться в памяти между процессами. Фактически хранилище представляет "срезы" потоков данных во времени. Информация, которую оно содержит, может использоваться в любое время после ее определения, при этом данные могут выбираться в любом порядке. Имя хранилища должно идентифицировать его содержимое и быть существительным. В случае, когда поток данных входит или выходит в/из хранилища, и его структура соответствует структуре хранилища, он должен иметь то же самое имя, которое нет необходимости отражать на диаграмме.
Внешняя сущность (или терминатор) представляет сущность вне контекста системы, являющуюся источником или приемником системных данных. Ее имя должно содержать существительное, например, СКЛАД ТОВАРОВ. Предполагается, что объекты, представленные такими узлами, не должны участвовать ни в какой обработке. Декомпозиция DFD осуществляется на основе процессов: каждый процесс может раскрываться с помощью DFD нижнего уровня.
Важную специфическую роль в модели играет специальный вид DFD - контекстная диаграмма,моделирующая систему наиболее общим образом. Контекстная диаграмма отражает интерфейс системы с внешним миром, а именно, информационные потоки между системой и внешними сущностями, с которыми она должна быть связана. Она идентифицирует эти внешние сущности, а также , как правило, единственный процесс, отражающий главную цель или природу системы насколько это возможно. И хотя контекстная диаграмма выглядит тривиальной, несомненная ее полезность заключается в том, что она устанавливает границы анализируемой системы. Каждый проект должен иметь ровно одну контекстную диаграмму, при этом нет необходимости в нумерации единственного ее процесса.
DFD первого уровня строится как декомпозиция процесса, который присутствует на контекстной диаграмме. Построенная диаграмма первого уровня также имеет множество процессов, которые, в свою очередь могут быть декомпозированы в DFD нижнего уровня. Таким образом строится иерархия DFD с контекстной диаграммой в корне дерева. Этот процесс декомпозиции продолжается до тех пор, пока процессы могут быть эффективно описаны с помощью коротких (до одной страницы) миниспецификаций обработки (спецификаций процессов). При таком построении иерархии DFD каждый процесс более низкого уровня необходимо соотнести с процессом верхнего уровня. Обычно для этой цели используются структурированные номера процессов. Так, например, если мы детализируем процесс номер 2 на диаграмме первого уровня, раскрывая его с помощью DFD, содержащей три процесса, то их номера будут иметь следующий вид: 2.1, 2.2 и 2.3.
Индивидуальные данные в системе часто являются независимыми. Однако иногда необходимо иметь дело с несколькими независимыми данными одновременно. Например, в системе имеются потоки ЯБЛОКИ, АПЕЛЬСИНЫ и ГРУШИ.Эти потоки могут быть сгруппированы с помощью введения нового потока ФРУКТЫ. Для этого необходимо определить формально поток ФРУКТЫ как состоящий из нескольких элементов-потомков.
Формальное определение потока задается с помощью формы Бэкуса-Наура (БНФ) в словаре данных. Понятие словаря будет рассмотрено позднее. В свою очередь, поток ФРУКТЫ сам может содержаться в потоке-предке ЕДА вместе с потоками ОВОЩИ, МЯСО и др. Такие потоки, объединяющие несколько потоков, получили название групповых.Обратная операция, расщепление потоков на подпотоки, осуществляется с использованием группового узла, позволяющего расщепить поток на любое число подпотоков. При расщеплении также необходимо формально определить подпотоки в словаре данных (с помощью БНФ).
Аналогичным образом осуществляется и декомпозиция потоков через границы диаграмм, позволяющая упростить детализирующую DFD. Пусть имеется поток ФРУКТЫ, входящий в детализируемый процесс. На детализирующей этот процесс диаграмме потока ФРУКТЫ может не быть вовсе, но вместо него могут быть потоки ЯБЛОКИ и АПЕЛЬСИНЫ (как будто бы они переданы из детализируемого процесса). В этом случае должно существовать БНФ-определение потокаФРУКТЫ, состоящего из подпотоков ЯБЛОКИ и АПЕЛЬСИНЫ, для целей балансирования. Применение этих операций над данными позволяет обеспечить структуризацию данных, увеличивает наглядность и читабельность диаграмм.
Для обеспечения декомпозиции данных и некоторых других сервисных возможностей к DFD добавляются следующие типы объектов.
1. Групповой узел.Предназначен для расщепления и объединения потоков. Изображается на диаграмме в виде круга. В некоторых случаях может отсутствовать (т.е. фактически вырождаться в точку слияния/расщепления потоков на диаграмме).
2. Узел-предок. Позволяет увязывать входящие и выходящие потоки между детализируемым процессом и детализирующей DFD. Изображается на диаграмме в виде квадрата.
3. Неиспользуемый узел.Применяется в ситуации, когда декомпозиция данных производится в групповом узле. При этом требуются не все элементы входящего в узел потока. Изображается на диаграмме кружком с буквами NU (non used).
4. Узел изменения имени.Позволяет неоднозначно именовать потоки, при этом их содержимое эквивалентно.
5. Текст в свободном формате в любом месте диаграммы.
- Процессы жизненного цикла систем (на основе iso/iec 15288)
- Структура и функциональное назначение процессов жизненного цикла программных средств (на основе iso/iec 12207)
- Модель качества и критерии качества программных средств (на основе iso/iec 9126 и iso/iec 25010)
- Оценка зрелости процессов создания и сопровождения программных средств на основе методологии cmm и cmmi (на основе iso/iec 15504)
- Система менеджмента информационной безопасности (на основе серии iso/iec 27000)
- Методы кодирования текстовой, графической и звуковой информации в эвм. Аналоговые, дискретные и цифровые сигналы
- История создания, принципы работы и основные сервисы сети Интернет.
- Представление данных в эвм. Единицы измерения информации. Двоичные приставки по гост 8.417-2002 и iec 80000-13.
- Принципы и архитектура фон Неймана.
- Порядок обработки команд микропроцессором. Прерывания. Типы прерываний.
- Поколения эвм. Основные особенности.
- I Поколение 50-60-е гг.
- II Поколение 60-70-е гг.
- III Поколение 70-80-е гг.
- IV Поколение 80-е (по наши дни?).
- Классификация запоминающих устройств в эвм. Современные реализации запоминающих устройств.
- 13. Алгебра логики. Основные законы алгебры логики. Применение алгебры логики в информатике.
- 14. Понятие алгоритма. Методы оценки алгоритмической сложности.
- 15. Понятие системы. Системный анализ. Применение системнго анализа в информатике.
- 16. Теория формальных грамматик. Основные понятия и положения. Применение в информатике.
- 17. Теория вероятностей. Основные понятия и положения. Применение в информатике.
- 18. Математические методы оптимизации и их применение в информатике.
- 19. Понятие компьютерного моделирования. Вычислительный эксперимент.
- 20. Структурное программирование. Понятия и принципы.
- 21. Объектно-ориентированное программирование. Понятия и принципы.
- 22. Декларативные языки программирования и их сфера применения.
- 23. Событийно-ориентированное программирование.
- 24. Многопоточное программирование. Процесс и поток выполнения. Средства синхронизации потоков.
- 25. Основные алгоритмы и структуры данных, применяемые в вычислительных системах.
- 26. Приёмы (шаблоны) объектно-ориентированного программирования.
- 27. Теория графов. Основные понятия. Решаемые задачи.
- 28. Средства моделирования при разработке программного обеспечения.
- 29. Инструментальные средства разработки программного обеспечения.
- 30.Методологии разработки программного обеспечения. Классификация. Особенности применения.
- 31. Программные средства для организации совместной разработки программного обеспечения.
- 32. Программный продукт. Жизненный цикл программного продукта.
- 4.1.1.1 Основные процессы жизненного цикла
- 5. Вспомогательные процессы жизненного цикла по гост р исо/мэк 12207-99.
- 4.1.1.2 Вспомогательные процессы жизненного цикла
- 33. Бизнес-процесс. Средства анализа и моделирования. Автоматизация бизнес-процессов.
- 34. Архитектура вычислительной системы, разновидности.
- 35. Аппаратное обеспечение вычислительных систем.
- 36. Архитектура вычислительной сети.
- 37. Виртуализация вычислительных ресурсов. "Облачные" вычисления.
- 38. Способы реализации человеко-машинного взаимодействия.
- 39. Принципы защиты информации в вычислительных системах и сетях.
- 40. Операционная система. Понятие и основные задачи. Классификация операционных систем.
- 41. Файловая система и принципы построения и основные функции.
- 42. Понятие машинного обучения и искусственного интеллекта. Решаемые задачи.
- 43. Методы сжатия графической информации. Области применения различных методов.
- 44. Методы сжатия звуковой информации. Области применения различных методов.
- 45. Понятие виртуальной и дополненной реальности. Средства реализации.
- 46. Компьютерная графика. Различные методы и технологии реализации.
- 47. Системы управления базами данных, разновидности.
- 48. Принципы построения реляционных баз данных. Нормализация данных.
- 49. Распределённые базы данных. Принципы построения и решаемые задачи.
- 50. Понятие открытой вычислительной системы. Классификация. Принципы построения.
- 51. Методы анализа информационных систем
- 52. Средства мониторинга сетевого трафика
- 53. Метод Монте-Карло. Принципы построения моделей для анализа эффективности информационных систем (основа построения, достоинства и недостатки).
- 54. Методы управления сетью: коммутация каналов, коммутация пакетов.
- 55. Методы балансировки трафика
- 56. Семиуровневая модель osi
- 57. Локальные вычислительные сети (топология, методы доступа)
- 58. Методы повышения достоверности при передаче информации
- 59. Понятие качества обслуживания в компьютерных сетях. Средства обеспечения качества обслуживания.
- 60. Назначение и принцип работы интернет сети
- 61. Основные протоколы сети Интернет, их назначение.
- 62. Понятие dns. Структура доменных имен в сети Интернет.
- 63. Понятие стека протоколов. Стек протоколов tcp/ip, udp/ip.
- 64. Системы автоматизированного проектирования (сапр).
- 70. Принципы построения распределенных информационных систем. Промежуточное программное обеспечение для обработки сообщений.
- 71. Сервисно-ориентированная архитектура распределённых приложений. Основные протоколы.
- 72. Корпоративные информационные системы (класс erp). Разновидности. Решаемые задачи.
- 73. Развитие новых информационно-коммуникационных технологий как база становления информационного общества
- 74. Модели жизненного цикла программного обеспечения
- 6. Модели жц программного продукта: каскадная.
- 7. Модели жц программного продукта: итерационная.
- 8. Модели жц программного продукта: спиральная (быстрого прототипирования).
- 75. Основные принципы структурного анализа систем
- 76. Консалтинг в области информационных технологий
- 77. Методика проведения обследования объектов автоматизации
- 78. Методы построения и анализа моделей деятельности предприятия
- 79. Структурно-функциональные модели
- 80. Модели потоков данных (dfd)
- 81. Модели "сущность-связь" (erd)
- 83. Объектно-ориентированный язык визуального моделирования uml
- 84. Методология rup: назначение и основные характеристики
- 85. Диаграммы вариантов использования (use-cases diagram)
- 86. Диаграммы классов (class diagram). Основные объекты диаграммы
- 87. Диаграммы деятельности (activity diagram). Основные объекты диаграммы
- 88. Диаграммы последовательности (sequence diagramm)
- 19. Uml: диаграмма состояний.