Учебники

OOAD — Функциональное моделирование

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

Диаграммы потока данных

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

Rumbaugh et al. определили DFD как: «Диаграмма потока данных — это график, который показывает поток значений данных из их источников в объектах через процессы, которые преобразуют их в их назначения в других объектах».

Четыре основные части DFD —

  • Процессы,
  • Потоки данных,
  • Актеры и
  • Хранилища данных.

Другие части DFD —

  • Ограничения и
  • Потоки управления.

Особенности DFD

Процессы

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

Представление в DFD — процесс представлен в виде эллипса с именем, написанным внутри него, и содержит фиксированное количество значений входных и выходных данных.

Пример — на следующем рисунке показан процесс Compute_HCF_LCM, который принимает два целых числа в качестве входных данных и выводит их HCF (наибольший общий множитель) и LCM (наименьшее общее кратное).

DFD для расчета HCM и LCM

Потоки данных

Поток данных представляет собой поток данных между двумя процессами. Это может быть между субъектом и процессом или между хранилищем данных и процессом. Поток данных обозначает значение элемента данных в некоторой точке вычисления. Это значение не изменяется потоком данных.

Представление в DFD — Поток данных представлен направленной дугой или стрелкой, помеченной названием элемента данных, который он несет.

На приведенном выше рисунке Integer_a и Integer_b представляют потоки входных данных для процесса, а LCM и HCF — потоки выходных данных.

Поток данных может быть разветвлен в следующих случаях:

  • Выходное значение отправляется в несколько мест, как показано на следующем рисунке. Здесь выходные стрелки немаркированы, поскольку они обозначают одно и то же значение.

  • Поток данных содержит совокупное значение, и каждый из компонентов отправляется в разные места, как показано на следующем рисунке. Здесь каждый из разветвленных компонентов помечен.

Выходное значение отправляется в несколько мест, как показано на следующем рисунке. Здесь выходные стрелки немаркированы, поскольку они обозначают одно и то же значение.

Поток данных содержит совокупное значение, и каждый из компонентов отправляется в разные места, как показано на следующем рисунке. Здесь каждый из разветвленных компонентов помечен.

Поток данных

Актеры

Актеры — это активные объекты, которые взаимодействуют с системой, либо производя данные и вводя их в систему, либо потребляя данные, создаваемые системой. Другими словами, субъекты служат источниками и приемниками данных.

Представление в DFD — Актер представлен прямоугольником. Актеры подключены к входам и выходам и лежат на границе DFD.

Пример. На следующем рисунке показаны участники, а именно Customer и Sales_Clerk в системе встречных продаж.

Актеры в DFD

Хранилища данных

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

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

Пример. На следующем рисунке показано хранилище данных Sales_Record, в котором хранится информация обо всех продажах. Входные данные в хранилище данных содержат подробную информацию о продажах, такую ​​как товар, сумма выставления счета, дата и т. Д. Чтобы найти средние продажи, процесс извлекает записи о продажах и вычисляет среднее значение.

Хранение данных в DFD

Ограничения

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

  • В объектном моделировании ограничения определяют отношения между объектами. Они также могут определять отношения между различными значениями, которые объект может принимать в разное время.

  • В динамическом моделировании ограничения определяют отношения между состояниями и событиями различных объектов.

  • В функциональном моделировании ограничения определяют ограничения на преобразования и вычисления.

В объектном моделировании ограничения определяют отношения между объектами. Они также могут определять отношения между различными значениями, которые объект может принимать в разное время.

В динамическом моделировании ограничения определяют отношения между состояниями и событиями различных объектов.

В функциональном моделировании ограничения определяют ограничения на преобразования и вычисления.

Представление — ограничение выводится в виде строки в фигурных скобках.

Пример. На следующем рисунке показана часть DFD для расчета заработной платы сотрудников компании, которая решила поощрять всех сотрудников отдела продаж и увеличивать зарплату всех сотрудников отдела кадров. Можно видеть, что ограничение {Dept: Sales} вызывает вычисление стимула только в том случае, если отдел занимается продажами, а ограничение {Dept: HR} приводит к вычислению приращения только в том случае, если в отделе работает HR.

Ограничения в DFD

Потоки управления

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

Представление в DFD — Потоки управления представлены пунктирной дугой от процесса, производящего логическое значение, до процесса, которым они управляют.

Пример — следующий рисунок представляет DFD для арифметического деления. Делитель проверяется на ненулевое значение. Если он не равен нулю, поток управления OK имеет значение True, а затем процесс деления вычисляет частное и остаток.

Контроль потока в DFD

Разработка DFD-модели системы

Для разработки DFD-модели системы строится иерархия DFD. DFD верхнего уровня состоит из одного процесса и взаимодействующих с ним субъектов.

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

Пример. Рассмотрим систему программного обеспечения Wholesaler Software, которая автоматизирует операции оптового магазина. Магазин продается оптом и имеет клиентуру, состоящую из продавцов и владельцев розничных магазинов. Каждого клиента просят зарегистрироваться с его / ее данными, и ему дается уникальный код клиента, C_Code. Как только продажа сделана, магазин регистрирует свои данные и отправляет товар для отправки. Каждый год магазин раздает своим клиентам рождественские подарки, которые состоят из серебряной или золотой монеты в зависимости от общего объема продаж и решения владельца.

Функциональная модель для оптового программного обеспечения приведена ниже. На рисунке ниже показан DFD верхнего уровня. Это показывает программное обеспечение как единый процесс и действующих лиц, которые взаимодействуют с ним.

Актеры в системе —

  • Клиенты
  • Salesperson
  • владелец

ДФД Оптового Магазина

На следующем уровне DFD, как показано на следующем рисунке, определены основные процессы системы, определены хранилища данных и установлено взаимодействие процессов с действующими лицами и хранилища данных.

В системе можно выделить три процесса:

  • Регистрация клиентов
  • Процесс продаж
  • Выяснить подарки

Хранилища данных, которые потребуются, —

  • Данные клиента
  • Детали продаж
  • Детали подарка

DFD оптового программного обеспечения

На следующем рисунке показаны подробности процесса регистрации клиента. В нем есть три процесса: «Проверить детали», «Создать C_Code» и «Обновить данные клиента». Когда данные клиента вводятся, они проверяются. Если данные верны, генерируется C_Code и обновляется информация о клиенте хранилища данных.

DFD процесса клиента

На следующем рисунке показано расширение процесса выяснения подарков. В нем есть два процесса: Найти общий объем продаж и Определить тип подарочной монеты. Процесс Find Total Sales вычисляет годовой общий объем продаж, соответствующий каждому клиенту, и записывает данные. Принимая эту запись и решение владельца в качестве входных данных, подарочные монеты распределяются в процессе определения типа подарочной монеты.

DFD процесса подарков

Преимущества и недостатки DFD

преимущества Недостатки
DFD отображают границы системы и, следовательно, помогают изобразить отношения между внешними объектами и процессами в системе. Создание DFD занимает много времени, что может оказаться невозможным для практических целей.
Они помогают пользователям получить знания о системе. DFD не предоставляют никакой информации о поведении, зависящем от времени, то есть они не указывают, когда преобразования выполняются.
Графическое представление служит образцом для программистов при разработке системы. Они не проливают свет на частоту вычислений или причины вычислений.
DFD предоставляют подробную информацию о системных процессах. Подготовка DFDs является сложным процессом, который требует значительного опыта. Кроме того, нетехническому человеку трудно понять.
Они используются как часть системной документации. Метод подготовки является субъективным и оставляет достаточно места для неточности.

Связь между объектной, динамической и функциональной моделями

Объектная модель, динамическая модель и функциональная модель дополняют друг друга для полного объектно-ориентированного анализа.

  • Объектное моделирование развивает статическую структуру программного комплекса в терминах объектов. Таким образом, он показывает «деятелей» системы.

  • Динамическое моделирование развивает временное поведение объектов в ответ на внешние события. Он показывает последовательность операций, выполняемых над объектами.

  • Функциональная модель дает обзор того, что должна делать система.

Объектное моделирование развивает статическую структуру программного комплекса в терминах объектов. Таким образом, он показывает «деятелей» системы.

Динамическое моделирование развивает временное поведение объектов в ответ на внешние события. Он показывает последовательность операций, выполняемых над объектами.

Функциональная модель дает обзор того, что должна делать система.

Функциональная модель и объектная модель

Четыре основные части функциональной модели с точки зрения объектной модели:

  • Процесс — Процессы подразумевают методы объектов, которые должны быть реализованы.

  • Актеры — актеры — это объекты в объектной модели.

  • Хранилища данных — это либо объекты в объектной модели, либо атрибуты объектов.

  • Потоки данныхпотоки данных к субъектам или от них представляют операции над объектами или над ними. Потоки данных в или из хранилищ данных представляют собой запросы или обновления.

Процесс — Процессы подразумевают методы объектов, которые должны быть реализованы.

Актеры — актеры — это объекты в объектной модели.

Хранилища данных — это либо объекты в объектной модели, либо атрибуты объектов.

Потоки данныхпотоки данных к субъектам или от них представляют операции над объектами или над ними. Потоки данных в или из хранилищ данных представляют собой запросы или обновления.

Функциональная модель и динамическая модель

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

Объектная модель и динамическая модель

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