Глава 5. Лабораторная работа: Cоздание диаграммы DFD

Диаграммы потоков данных (DFD) используются для описания документооборота и обработки информации. Подобно IDEF0, DFD представляет систему как сеть связанных между собой функций. Их можно использовать как дополнение к модели IDEF0 для более наглядного отображения текущих операций документооборота в системах обработки информации.

Источники информации - внешние сущности - порождают информационные потоки данных, переносящие информацию к процессам. Те в свою очередь преобразуют информацию и порождают новые потоки, которые переносят информацию к другим процессам, хранилищам данных или внешним сущностям - потребителям информации.

Внешняя сущность - представляет собой материальный объект или физическое лицо (заказчик, склад), представляющее собой источник или приемник информации, который находится за пределами границ анализируемой системы. Обозначается в виде прямоугольника с тенью и обычно располагаются по краям диаграммы. Одна внешняя сущность может быть использована многократно на одной диаграмме, чтобы не рисовать слишком запутанных стрелок.

Процесс - представляет собой функции системы, преобразующие входные потоки в выходные в соответствии с определенным алгоритмом. Изображаются прямоугольниками со скругленными углами. Их смысл совпадает со смыслом функций IDEF0. Они также имеют входы и выходы, но не поддерживают управления и механизмы. Физически процесс - это например, отдел, выполняющее обработку входных документов и выпуск отчетов, или программа, аппаратно реализованное логическое устройство.

Поток данных - определяет информацию, передаваемую через некоторое соединение от источника к приемнику. Реальный поток данных может быть информацией передаваемой по кабелю, пересылаемыми по почте письмами, магнитными дискетами. Поскольку в DFD каждая сторона блока не имеет четкого назначения, как в IDEF0, стрелки могут подходить и выходить из любой грани блока. В DFD также применяется двунаправленные стрелки для описания диалогов типа ⌠команда-ответ■.

Хранилище данных - позволяет описать данные, которые необходимо сохранить в памяти прежде, чем использовать в функциях. То есть в отличие от стрелок, описывающих объекты в движении, хранилища изображают объекты в покое. Хранилище физически может быть реализован в виде ящика в картотеки, таблицы в оперативной памяти, файла на магнитном диске.

Рассмотрим фрагмент проекта системы, организующей работу банкомата по обслуживанию клиента по его кредитной карте.

27.Запустите CASE-средство: Пуск | Программы | Computer Associates| AllFusion | Process Modeler | BPwin

28. Создайте новую модель: выберите File | New, в поле Name введите Работа банкомата, в области Type выберите Data Flow(DFD), нажмите OK, в поле Autor введите ваше имя, например, Наташа, нажмите OK.

29. Установите русский шрифт для объекта: выберите Model | Default Fonts, выберите Context Activity, выберите Courier New или TimesET, нажмите OK

30. Внимание! Установите русский шрифт для всех типов объектов имеющихся в меню Model | Default Fonts - см. 29.

31. Введите имя процесса и описание: выберите процесс, нажмите МП, выберите Name, введите Обслужить. выберите вкладку Defenition, в поле Defenition введите определение Процесс обслуживания клиента по его кредитной карте с помощью банкомата, выберите вкладку Color, выберите розовый, нажмите OK

32. Добавьте внешнюю сущность: нажмите кнопку External Reference Tool , выберите мышью место размещения - в верхнем левом углу, введите имя сущности Клиент , нажмите OK, нажмите кнопку Poiter Tool.

33. Введите описание: выберите внешнюю сущность Клиент, нажмите МП, выберите Name, выберите вкладку Definition, в поле Defenition введите определение Клиент банка с кредитной картой, выберите вкладку Color, выберите синий, нажмите OK.

34. Добавьте внешнюю сущность Компьютер банка в нижнем правом углу и ее описание Хранит информацию о счетах всех клиентов- см. 32-33.

35. Введите поток данных: нажмите кнопку Precedence Arrow Tool , выберите правую грань внешней сущности Клиент, выберите левую грань процесса Обслужить, нажмите кнопку Poiter Tool.

36. Введите имя и тип потока данных: выберите созданный поток данных, нажмите МП, выберите Name, в поле Arrow Name введите Кредитная карта, выберите вкладку Style, в области Shape выберите двунаправленную стрелку, нажмите OK,

37. Введите описание потока данных: выберите поток данных Кредитная карта, нажмите МП, выберите вкладку Definition, в поле Definition введите Для банковского обслуживания клиент должен предоставить кредитную карту для автоматического считывания с нее информации (пароль, лимит денег, детали клиента), нажмите OK

38. Введите поток данных Ключевые данные и его описание Для банковского обслуживания клиент должен ввести ключевые данные - пароль, запрос на обслуживание - см. 35-37

⌠Банковское обслуживание■ должно: (1) выдать сообщение, приглашающее клиента ввести ключевые данные, (2) выдать клиенту деньги, (3) выдать клиенту выписку по проведенному обслуживанию, включающую выписку о деньгах, выписку по балансу, выписку по операции, проведенной банком.

39. Введите потоки данных Сообщение, Деньги, Выписка - см. Рис.1.

40. Введите описание потоков Сообщение, Деньги, Выписка - см. 37.

Процесс ⌠Обслужить■ и внешняя сущность ⌠Компьютер банка■ обмениваются следующей информацией: (1) данные по счету клиента в банке, (2) протокол обслуживания, включающий информацию об обработанной документации, изымаемой денежной сумме и данные по истории запроса.

41. Введите потоки данных Данные по счету, Протокол обслуживания - см. Рис.1.

42. Введите описание потоков Данные по счету, Протокол обслуживания - см. 37

43. Создайте диаграмму декомпозиции: выберите процесс Обслужить, выберите на палитре инструментов кнопку декомпозиции , в окне Activity Box Count выберите DFD, в списке Number of Activities... выберите 4, выберите OK.

44. Добавьте хранилище данных: нажмите кнопку Date store tool , введите имя хранилища Данные кредитной карты - см. Рис.2

45. Добавьте еще раз хранилище данных Данные кредитной карты с целью избежать пересечений линий потоков данных.

Процесс Получить пароль осуществляет прием и проверку пароля клиента и имеет потоки: (1) внешний выходной поток Собщение для информирования клиента о своей готовности принять пароль, (2) входной поток Введенный пароль как элемент внешнего потока Ключевые данные, (3) входной поток Пароль из хранилища Данные кредитной карты для проверки вводимого клиентом пароля.

46. Введите имя процесса Получить пароль - см. Рис.2

47. Введите потоки данных Сообщение, Введенный пароль, Пароль - см. Рис.2.

48. Введите описание процесса Получить пароль и потоков данных Сообщение, Введенный пароль, Пароль.

Процесс Получить запрос на обслуживание осуществляет прием и проверку запроса клиента на проведение необходимой ему банковской операции и имеет на входе-выходе следующие процессы: (1) внешний выходной поток Сообщение для информирования клиента о своей готовности принять запрос на обслуживание, (2) входной поток Запрос на обслуживание как элемент внешнего потока Ключевые данные, (3) входной поток Лимит денег из хранилища Данные кредитной карты для контроля наличия денег на счете клиента.

49. Введите имя процесса Получить запрос на обслуживание - см. Рис .2

50. Введите потоки данных Сообщение, Запрос на обслуживание, Лимит денег - см. Рис.2

51. Введите описание процесса Получить запрос на обслуживание и потоков данных Сообщение, Запрос на обслуживание, Лимит денег.

Процесс Обработать запрос на обслуживание имеет (1) внешний входной поток Данные по счету (из сущности Компьютер банка), (2) входной поток Детали клиента, (3) входной поток Денежная сумма (из процесса Получить запрос на обслуживание), (4) внешние выходные потоки Выписка, Деньги, Протокол обслуживания.

52. Введите имя процесса Обработать запрос на обслуживание - см. Рис.2

53. Введите потоки данных Данные по счету, Детали клиента, Выписка, Деньги, Протокол обслуживания, Денежная сумма - см. Рис. 2.

54. Введите описание процесса Обработать запрос на обслуживание и потоков данных Данные по счету, Детали клиента, Выписка, Деньги, Протокол обслуживания, Денежная сумма.

Процесс Обработать кредитную карту осуществляет считывание информации с кредитной карты и имеет на входе внешний поток Кредитная карта, на выходе - поток Данные кредитной карты.

55. Введите имя процесса Обработать кредитную карту - см. Рис.2

56. Введите потоки данных Кредитная карта, Данные кредитной карты - см. Рис.2.

57. Введите описание процесса Обработать кредитную карту и потоков данных Кредитная карта, Данные кредитной карты.

58. Создайте диаграмму декомпозиции процесса Обработать запрос на обслуживание - см. 43:

Процесс Обработать документацию банка выполняет обработку внутренней банковской документации по клиенту и имеет (1) входной поток Детали клиента, (2) выходной поток Обработанная документация (часть внешнего потока Протокол обслуживания).

59. Введите имя процесса Обработать документацию банка.

60. Введите потоки данных Детали клиента, Обработанная документация - см. Рис.3.

61. Введите описание процесса Обработать документацию банка и потоков данных Детали клиента, Обработанная документация.

Процесс Распечатать баланс клиента выдает справку по истории счета клиента и по балансу клиента и имеет (1) входные потоки Детали клиента и Данные по балансу (часть внешнего потока Данные по счету), (2) выходные потоки Выписка по балансу (часть внешнего потока Выписка) и Данные по истории запроса (часть внешнего потока Протокол обслуживания).

62. Введите имя процесса Распечатать баланс клиента.

63. Введите потоки данных Детали клиента, Данные по балансу, Выписка по балансу, Данные по истории запроса - см. Рис.3.

64. Введите описание процесса Распечатать баланс клиента и потоков данных Детали клиента, Данные по балансу, Выписка по балансу, Данные по истории запроса.

Процесс Приготовить деньги клиенту обеспечивает выдачу наличных денег и информирование компьютера банка об изъятии из банка денег. Процесс имеет (1) входные потоки Денежная сумма и Детали клиента, (2) выходные потоки Деньги и Денежная сумма (часть потока Протокол обслуживания).

65. Введите имя процесса Приготовить деньги клиента.

66. Введите потоки данных Денежная сумма, Детали клиента, Деньги, Денежная сумма - см. Рис.3.

67. Введите описание процесса Приготовить деньги клиента и потоков данных Денежная сумма, Детали клиента, Деньги, Денежная сумма.

Процесс Распечатать операцию клиента выдает справку по истории счета клиента и уведомление по проведенной операции и имеет потоки (1) входные - Данные по счету и Детали клиента, (2) выходные - Выписка по операции (часть потока Выписка) и Данные по истории запроса (часть потока Протокол обслуживания).

68. Введите имя процесса Распечатать операцию клиента..

69. Введите Данные по счету, Детали клиента, Выписка по операции, Данные по истории запроса - см. Рис.3.

70. Введите описание процесса Распечатать операцию клиента и потоков данных Данные по счету, Детали клиента, Выписка по операции, Данные по истории запроса.