Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2015_Alontseva_Anokhin_Saakyan_Structural_analysis

.pdf
Скачиваний:
45
Добавлен:
29.03.2016
Размер:
1.5 Mб
Скачать

Фактически сеть Петри декомпозирует систему на активные (переходы) и пассивные (позиции – хранилища маркеров) элементы. Следует отметить, что активно применяемые в структурном системном анализе диаграммы переходов состояний являются вырожденными сетями Петри, а именно, сетями с одним типом вершин (переходами).

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

введение иерархии – иерархические сети Петри; определение различий в маркерах, каждый из которых имеет

свои уникальные характеристики – раскрашенные сети Петри

(Coloured Petri Nets, CPN);

введение многоместных (содержащих несколько маркеров) позиций как последовательных, так и параллельных – сети Петри с многоместными позициями.

Динамическое моделирование с использованием сетей Петри осуществляется на основании статической функциональной и частично информационной моделей. Соответствующие инструментальные средства (например, Design/CPN для SADT и CPN-AMI, INCOME для DFD) осуществляют автоматическое преобразование функциональных моделей в прообразы сетей Петри, которые затем дорабатываются вручную. Такое преобразование базируется на том, что маркер моделирует порцию потока данных, а позиция – накопление и хранение таких порций. Каждая из диаграмм функциональной модели трансформируется в соответствующий компонент (подсеть) иерархической сети Петри. При этом работы и потоки данных DFD-диаграммы (или функции и объекты SADT-диаграммы) отображаются соответственно переходами и позициями. Хранилища данных и внешние сущности также преобразуются в позиции для каждого входящего (исходящего) потока (при этом для внешних сущностей маркируются позиции, соответствующие исходящим из них потокам). На основе информационной модели определяются правила срабатывания переходов в зависимости от значений, которые принимают атрибуты используемых сущностей.

С использованием динамической модели подобного типа можно описать и проанализировать

50

механизмы взаимодействия процессов (последовательность, параллелизм, альтернатива);

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

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

управление исключительными ситуациями, определяемое нарушениями.

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

статический анализ системы (компоненты сети, иерархия сети, соответствие типов);

динамический анализ системы для конкретного маркирования сети;

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

4.2. Сеть переходов состояний в нотации IDEF3

Благодаря пакету BPWin стандарт IDEF3 стал довольно популярным в части рисования диаграмм рабочих процессов. Однако в русскоязычной литературе практически отсутствует информация о еще одном мощном средстве, описанном в этом стандарте, – диаграммах для изображения сети переходов состояния объекта.

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

51

Символ

Состояние

&O X

Связь

Объект

ссылки

Таблица 11

Нотация сетей состояний IDEF3

Назначение

Объект, состояние объекта

Переход из одного состояния в другое: слабый – одинарная стрелка, сильный – двойная стрелка

Перекрестки И, ИЛИ, исключающее ИЛИ

Символы для организации различных видов связей и отношений

Объект ссылки. В нижней части указывается номер ссылаемого блока

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

Операция может не только «запускать» переход из одного состояния в другое, но и поддерживать некоторое состояние объекта. В этом случае операция ассоциируется не с переходом (со стрелкой), а с состоянием объекта (с кругом).

Некоторые состояния могут формироваться с использованием более сложной логики, включающей операторы И, ИЛИ, исключаю-

52

щее ИЛИ. Кроме того, методика предлагает довольно широкие изобразительные возможности для описания различных семантических отношений между элементами сети, сложных временных зависимостей и т.п. Их рассмотрение выходит за рамки данного пособия.

На рисунке 22 показан пример сети переходов состояний, описывающей процесс проектирования сайта. Этот процесс ранее уже был смоделирован в виде структурной диаграммы в нотации IDEF0 (см. рис. 5) и диаграммы рабочих процессов в нотации IDEF3 (см. рис. 8). Данный пример полностью совместим с обеими моделями, а ссылки содержат номера единиц работ, показанных на диаграмме рис. 8.

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

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

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

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

53

Рис. 22. Сеть переходов состояний «Создание сайта» в нотации IDEF3

54

Глава 5. Объектно-ориентированное моделирование

Концептуальной основой объектно-ориентированного проектирования является объектная модель, основные принципы которой сформулированы Г. Бучем (Grady Booch), Дж. Рамбо (James Rumbaugh) и И. Якобсоном (Ivar Jacobson) на рубеже 1980–90-х гг. Уни-

версальный язык моделирования UML является одним из наиболее известных современных объектных языков и принят в качестве международного стандарта17. UML – графический язык моделирования, предназначенный для описания (спецификации), визуализации, моделирования (конструирования) и документирования систем. Одним из назначений UML является создание моделей программного обеспечения и информационных систем для автоматической генерации программного кода, например, на языках Java или С++.

5.1. Элементы модели UML

Главными элементами модели UML являются сущности и отношения между ними. Сущности разделяют на четыре группы: структурные, поведенческие, группирующие и аннотационные. В таблице 12 приведены основные виды сущностей UML.

Таблица 12

 

 

Основные сущности UML

 

 

Символ

 

Назначение

 

 

 

 

1

2

 

 

 

Структурные сущности

 

 

 

 

 

 

 

 

Объект (object) – сущность, обладающая уникально-

 

 

 

стью

 

 

 

Класс (class) – множество объектов с общими атри-

 

 

 

бутами

 

 

 

Интерфейс (interface) – множество операций, опре-

 

 

 

деляющих набор услуг

 

 

 

 

 

 

 

 

 

 

 

17 ISO/IEC 19505:2012. Information technology – Object Management Group Unified Modeling Language (OMG UML)

55

Продолжение табл. 12

1

2

Кооперация (collaboration) – совокупность объектов, взаимодействующих для достижения цели

Действующее лицо (actor) – сущность, находящаяся вне системы и взаимодействующая с ней

Компонент (component) – модульная часть системы с набором интерфейсов

Артефакт (artifact) – элемент информации, который порождается или используется в процессе разработки системы

Узел (node) – вычислительный ресурс, на котором размещаются и выполняются артефакты

Поведенческие сущности

Состояние (state) – период в жизненном цикле объекта, при котором объект осуществляет деятельность или ожидает наступления события

Деятельность (activity) / действие (action) – частный случай состояния, характеризующийся продолжительными/простыми вычислениями

Вариант использования (use case) – сценарий, описывающий последовательность действий с определенным результатом

Группирующие сущности

Пакет (package) – группа элементов модели

Аннотационные сущности

Примечание (comment)

56

В UML используются четыре типа отношений, представленные в табл. 13.

Таблица 13

Основные типы отношений UML

Символ, пример Назначение

Зависимость – изменения независимой сущности влияют на зависимую. Стрелка направлена от зависимой сущности к независимой

Ассоциация – одна сущность непосредственно связана с другой. Например, частным случаем ассоциации является отношение часть-целое (агрегация)

Обобщение – одна сущность является частным случаем другой. Стрелка направлена от частного к общему

Реализация – указывает, что одна сущность является реализацией другой

5.2. Классификация диаграмм UML

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

Структурные диаграммы соответствуют концептуальным и физическим элементам системы и являются статическими компонентами модели. Каждая структурная диаграмма используются для выполнения следующих задач:

57

диаграмма классов (class diagram) – моделирование статической структуры классов системы и их взаимосвязей;

диаграмма объектов (object diagram) – моделирование объектов модели и их взаимосвязей;

диаграмма внутренней структуры (composite structure diagram) – более подробное моделирование структуры классов и компонентов системы;

диаграмма пакетов (package diagram) – представление модели системы и управление сложностью;

диаграмма компонентов (component diagram) – моделирование иерархии компонентов системы;

диаграмма развертывания (deployment diagram) – моделирование физической архитектуры системы.

Рис. 24. Структура диаграмм UML

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

58

диаграмма автомата (state machine diagram) – моделирование динамического поведения системы и ее компонентов при переходе из одного состояния в другое;

диаграмма деятельности (activity diagram) – моделирование поведения системы в рамках различных вариантов использования;

диаграммы взаимодействия (interaction diagrams) – моделирование процесса обмена сообщениями между объектами.

Диаграмма вариантов использования занимает промежуточное положение между структурными диаграммами и диаграммами поведения и часто выделяется в отдельный класс. Диаграмма вариантов использования (use case diagram) предназначена для моделирования функционирования системы в окружающей среде.

UML имеет две особенности. Первая состоит в его универсальности. С помощью диаграмм UML можно создать структурное описание любых процессов и систем с высокой глубиной детализации, а затем создать программный код, воспроизводящий эти процессы. Вторая особенность – отсутствие диалектов и разночтений. UML – это стандарт, и любое CASE-средство для построения диаграмм UML обязано подчиняться всем правилам и нотациям этого языка. Чтобы составить представление об UML не обязательно изучать все виды диаграмм. Остановимся на самых используемых из них.

5.3. Диаграмма классов

Диаграмма классов является центральной диаграммой UML для описания структуры системы. Эта диаграмма может использоваться как для составления словаря или иерархии объектов предметной области, так и для проектирования базы данных. Рассмотрим основные понятия диаграммы классов на расширенном примере «Студент – Группа – Филиал МИФИ», разобранном в главе 4 (рис. 25).

Понятие класса практически идентично понятию сущности в информационном моделировании – это обобщенный типовой объект предметной области. В отличие от сущности в ER-диаграмме, описание класса в UML – это не только перечень атрибутов, но и набор операций, которые можно выполнять над объектами этого класса, а также накладываемые ограничения и другая информация. Класс изображается в виде прямоугольника, разделенного на три части –

59

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]