Функциональное моделирование в нотации IDEF0

Методология IDEF0 разработана на основе методологии SADT (Structured Analysis and Design Technique) и представляет собой совокупность методов, правил и процедур, предназначенных для построения функциональной модели объекта какой-либо предметной области. Функциональная модель отображает функциональную структуру объекта, т.е. производимые им действия и связи между этими действиями. МодельIDEF0 состоит из диаграмм, фрагментов текстов и глоссария, имеющих ссылки друг на друга.

Диаграммы – главные компоненты модели, все функции информационной системы и интерфейсы на них представлены как блоки и дуги. Место соединения дуги с блоком определяет тип интерфейса.

Функциональный блок (Activity Box) – это графическое изображение в виде прямоугольника (рисунок 4.7) некоторой функции рассматриваемой системы. По требованиям стандарта название каждого функционального блока должно быть сформулировано в глагольном наклонении (например, «производить услуги», а не «производство услуг»).

Функциональное моделирование в нотации IDEF0 - student2.ru

Рисунок 4.7 – Функциональный блок нотации IDEF0

Каждая из четырех сторон функционального блока имеет своё определенное значение (роль):

- Control (управление). Стрелки сверху означают на основании чего выполняется данный процесс – законы, стандарты, приказы и т.д.;

- Input (вход). Стрелки слева – данные или объекты, используемые или изменяемые процессом;

- Output (выход). Стрелки справа – основные результаты деятельности процесса, конечные продукты;

- Mechanism (механизм/исполнитель). Стрелки снизу означают посредством чего или с помощью кого реализуется данный процесс – материальные и/или кадровые ресурсы, необходимые для процесса. Механизм может быть человеком, компьютером или любым другим устройством, которое помогает выполнять данную функцию.

Пример IDF0-диаграммы приведен на рисунке 4.8.

Функциональное моделирование в нотации IDEF0 - student2.ru

Рисунок 4.8 – Функциональнаяй модель системы как IDEF0-диаграмма

4.2.3 Модель анализа вариантов использования

Модель анализа строится на основе разработанных вариантов использования и модели предметной области. Модель анализа является основой для проектирования системы.

Анализ вариантов использования включает в себя:

- идентификацию классов, участвующих в реализации потоков событий вариантов исользования;

- распределения поведения, реализуемого вриантом использования, между классами;

- определение атрибутов (свойств) и ассоциаций классов.

В процессе анализа в потоках событий выявляются классы следующих стереотипов:

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

- классы-сущности (Entity) – представляют собой понятия разрабатываемой системы (соответствуют классам модели предметной области);

- управляющие классы (Control) – обеспечивают координацию поведения объектов в системе.

Классы анализа отражают функциональные требования к системе и моделируют объекты предметной областии. Совокупность классов анализа представляет собой концептуальную модель системы.

Проектирование

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

Проектирование включает в себя:

- идентификацию архитектурных решений и механизмов;

- выявление подсистем и интерфейсов на основе анализа взаимодействий между классами анализа;

- формирование архитектурных уровней;

- проектирование конфигурации системы;

- детализация классов, уточнение их операций и атрибутов, а также моделирование состояний системы и уточнение взаимосвязей между классами.

Модель проектирования

Модель проектирования – это объектная модель, которая описывает физическую реализацию вариантов использования.

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

- специфична для данной реализации;

- стереотипы классов модели зависят от выбранного языка реализации;

- многоуровневая, динамическая и формализованная;

- должна поддерживться в течение всего жизненного цикла системы;

- в процессе визуальной разработки находиться в тесной связи с моделью реализации.

Основой для разработки классов проектирования является диаграмма классов. Диаграмма классов (design class diagram) иллюстрирует спецификации программных классов и интерфейсов (например, интерфейсов Java, С#) в приложении. Обычно на такую диаграмму выносится следующая информация:

- классы, ассоциации и атрибуты;

- интерфейсы со своими операциями и константами;

- методы и зависимости.

Пример диаграммы классов (с учетом классов среды разработки MS Visual Studio) приведен на рисунке 4.9. В отличие от диаграммы классов из модели предметной области, диаграммы классов проектирования отображают определения программных сущностей, а не понятия предметной области (рисунок 4.10).

Функциональное моделирование в нотации IDEF0 - student2.ru

Рисунок 4.9 – Диаграмма классов проектирования

Функциональное моделирование в нотации IDEF0 - student2.ru

Рисунок 4.10 – От классов предметной области к классам проектирования

Класс проектирования может быть реализован в выбранном языке проектирования как интерфейс.

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

Класс проектирования может быть активным, т.е. объекты этого класса будут использовать свой собственный поток (нить) управления, работая параллельно с другими активными объектами.

Для описания взаимодейсвия классов проектирования используются диаграммы взаимодействия (последовательности, коммуникации) и состояний. Пример диаграммы состояний приведен на рисунке 4.11.

Ахитектурно значимым в модели проектирования обычно считается декомпозиция модели проектирования на подсистемы, интерфейсы и зависимости между ними (пример на рисунке 4.12). Эта декомпозиция очень важна, так как перечисленные артефакты образуют общую структуру системы.

Функциональное моделирование в нотации IDEF0 - student2.ru

Рисунок 4.11 – Диаграмма состояний

Функциональное моделирование в нотации IDEF0 - student2.ru

Рисунок 4.12 – Декомпозиция системы на подсистемы (диаграмма пакетов)

В структурном проектировании, когда главное внимание уделяется функциональности системы, для отображения архитектурных решений можно использовать схему взаимодействия программ (пример на рисунке 4.13)

Функциональное моделирование в нотации IDEF0 - student2.ru

Рисунок 4.13 – Схема взаимодействия программ (ГОСТ 19.701-90)

Модель развертывания

Модель развертывания – это объектная модель, которая описывает физическое размещение подсистем по вычислительным узлам системы. Примеры отображения модели развертывания с помощью диаграммы развертывания приведены на рисунках 4.14, 4.15

Функциональное моделирование в нотации IDEF0 - student2.ru

Рисунок 4.14 – Диаграмма развертывания

Функциональное моделирование в нотации IDEF0 - student2.ru

Рисунок 4.15 – Управляющие классы на диаграмме развертывания

Модель развертывания можно представить и в виде «свободного рисунка» (пример на рисунке 4.16).

Функциональное моделирование в нотации IDEF0 - student2.ru

Рисунок 4.16 – Структура системы

Для модели развертывания характерно следующее:

- каждый узел представляет собой вычислительный ресурс (например, процессор);

- узел имеет связи, представляющие собой каналы обмена информацией (например, Интернет);

- модель развертывания описывает несколько различных конфигураций сети (включая конфигурацию для тестирования);

- функциональность (процесс), выполняющаяся в узле, определяется подсистемой (компонентом), загруженной на узле;

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

Традиционная конфигурация ссистемы предполагает трехуровневую архитектуру:

- уровень клиента (взаимодействие с пользователем);

- уровень взаимодйствия с базой данных;

- уровень прикладной функциональности (прикладная логика).

В современной практике проектирования для представления такой структуры используется шаблонModel-view-controller (MVC, «Модель-представление-поведение»). Данный шаблон – это архитектура программного обеспечения, в которой модель данных приложения, пользовательский интерфейс и управляющая логика разделены на три отдельных компонента, так, что модификация одного из компонентов оказывает минимальное воздействие на другие компоненты.

Шаблон MVC позволяет разделить данные, представление и обработку действий пользователя на три отдельных компонента (рисунок 4.17):

- Модель (Model). Модель предоставляет данные (обычно для View), а также реагирует на запросы (обычно от контролера ), изменяя свое состояние.

- Представление (View). Отвечает за отображение информации (пользовательский интерфейс).

- Поведение (Controller). Интерпретирует данные, введенные пользователем, и информирует модель и представление о необходимости соответствующей реакции.

Функциональное моделирование в нотации IDEF0 - student2.ru

Рисунок 4.17 – Диаграмма классов шаблона MVC

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

Реализация

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

Модель реализации

Модель реализации описывает, как реализуются в виде компонентов (исходных текстов, сценариев, двоичных файлов, таблиц, документов, исполняемых модулей) элементы модели проектирования.

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

Функциональное моделирование в нотации IDEF0 - student2.ru

Рисунок 4.18 – Обозначение компонентов (UML)

Функциональное моделирование в нотации IDEF0 - student2.ru

a)

Функциональное моделирование в нотации IDEF0 - student2.ru

b)

Рисунок 4.19 – Диаграмма компонентов

Графические решения для отображения программных компонент могут использовать как «свободные рисунки» (рисунок 4.20), так и схемы ГОСТ 19.701-90 (приложение «Примеры схем ГОСТ 19.701-90»)

Функциональное моделирование в нотации IDEF0 - student2.ru

Рисунок 4.20 – Схема компонентов системы

В дипломном проекте модель реализации следует дополнить спецификацией классов или функциональной спецификацией.

Пример спецификации класса:

OPCHDAConnectorRuntime

Class Reference

Коннектор в режиме исполнения

Public Member Functions

- OPCHDAConnectorRuntime (TaggedObjectPrimaryTreeNode node)

Конструктор.

- void ChangeDesignModePhase (ProjectItemState state)

- void SetErrorMessage (Exception e)

Установка сообщения об ошибке для системного тега.

- IHistorySyncReader QueryHistorySyncReader (string tag, string attribute)

Возвращает интерфейс опроса истории источника данных.

Protected Member Functions

- override voidOnDesignModeChanging (ProjectItemState state)

Запуск/останов.

- override voidOnAttributeValueSetting (string tagName, string attributeName,

AttributeValue value)

Устанавливается значение атрибута.

Пример функциональной спецификации:

Модульsendsms.pl:

Название: daemonize

Назначение: Перевод выполняемого модуля в режим демона.

Входные параметры: нет.

Выходные параметры: нет.

Название: connectDB

Назначение: Подключение к БД MySQL.

Входные параметры: адрес сервера баз данных, номер порта, имя пользователя, пароль.

Выходные параметры: указатель на объект БД.

Название: LOG

Назначение: Запись строки в LOG-файл.

Входные параметры: Строка для записи в LOG-файл.

Выходные параметры: нет.

Название: sendtextMsg

Назначение: отправка обычного текстового сообщения.

Входные параметры: Номер отправителя, номер получателя, содержимое текстового сообщения.

Выходные параметры: В случае успешной отправки сообщения – 0, в противном случае – 1.

Модель тестирования

Модель тестирования описывает, как при помощи тестов проверяются исполняемые компоненты модели реализации. Модель тестирования включает:

- набор тестовых примеров;

- процедры тестирования;

- тестовые компоненты (созданные для автоматизации тестирования).

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

Таблица 4.1 План тестирования

  Функция (вариант использования) Тест Результаты
Начало работы Запуск программы Появляется главное окно программы
... ... ... ...

Подтверждение выполнения тестов приводится в виде "скриншотов" (рисунки 4.21, 4.22).

Функциональное моделирование в нотации IDEF0 - student2.ru

Рисунок 4.21 – Пример тестирования компонент провайдера мобильных услуг

Функциональное моделирование в нотации IDEF0 - student2.ru

Рисунок 4.22 – Пример создания биометрического пароля

Примеры описания процесса разработки

Наши рекомендации