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

1vendrov_a_m_proektirovanie_programmnogo_obespecheniya_ekonom

.pdf
Скачиваний:
114
Добавлен:
14.05.2016
Размер:
14.05 Mб
Скачать

Методические аспекты проектирования ПО

131

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

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

А

у г

В

f

А1

С

9 W А2

Рис. 2.12. Функциональная связь

В математических терминах необходимое условие для прос­ тейшего типа функциональной связи имеет следующий вид:

C-^g{B)=g{AA)).

В табл. 2.2 представлены все типы связей, рассмотренные выше.

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

132

Глава 2

Таблица 2.2

Описание типов связей

Уровень

Тип связи

значимости

 

1 ^

Случайная

1

Логическая

2Временная

3Процедурная

Характеристика типа связи

 

для функций

для данных

Случайная

 

Случайная

 

Функции одного и то­

Данные одного и того

го же множества или

же множества или ти­

типа

(например, «ре­

па

 

дактировать

все вхо­

 

 

ды»)

 

 

 

 

 

Функции одного и то­

Данные,

используе-1

го же периода време­

мые в каком-либо

ни (например, «опе­

временном интервале

рации

инициализа­

 

 

ции»)

 

 

 

 

Функции,

работаю­

Данные,

используе-1

щие в одной и той же

мые во время одной и

фазе

или

итерации

той же фазы или ите­

(например,

«первый

рации

 

проход

компилято­

 

 

ра»)

 

 

 

 

 

 

4

Коммуника­

Функции, использую­

Данные, на которые

 

 

 

ционная

щие одни и те же дан­

воздействует одна и та

|

 

 

 

ные

 

же деятельность

 

5

Последова­

Функции, выполняю­

Данные, преобразуе-1

 

 

тельная

щие

последователь­

мые последователь­

 

 

 

 

ные

преобразования

ными функциями

 

 

 

 

одних и тех же данных

 

 

1

6

Функцио­

Функции, объединяе- i Данные, связанные с

 

 

 

нальная

мые для выполнения

одной функцией

 

 

 

 

одной функции

 

 

2.3.2. МЕТОД МОДЕЛИРОВАНИЯ ПРОЦЕССОВ IDEF3

Метод моделирования IDEF3 , являющийся частью семей­ ства стандартов IDEF, был разработан в конце 1980-х годов для закрытого проекта ВВС США. Этот метод предназначен для та-

Черемных С.В,, Семенов И.О.у Ручкин B.C. Структурный анализ систем: IDEF-технологии. — М.: Финансы и статистика, 2001.

Методические аспекты проектирования ПО

133

ких моделей процессов, в которых важно понять последователь­ ность выполнения действий и взаимозависимости между ними. Хотя IDEF3 и не достиг статуса федерального стандарта США, он приобрел широкое распространение среди системных аналити­ ков как дополнение к методу функционального моделирования IDEFO (модели IDEF3 могут использоваться для детализации функциональных блоков IDEFO, не имеющих диаграмм деком­ позиции). Основой модели IDEF3 служит сценарий процесса, ко­ торый выделяет последовательность действий и подпроцессов анализируемой системы.

Как и в методе IDEFO, основной единицей модели IDEF3 яв­ ляется диафамма. Другой важный компонент модели — действие,

или в терминах IDEF3 «единица работы» (Unit of Work - UOW).

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

Наименование

действия

Обработать

 

заказ клиента

Номер действия

1.1

Рис. 2.13. Изображение и нумерация действия в диаграмме IDEF3

Существенные взаимоотношения между действиями изоб­ ражаются с помощью связей. Все связи в IDEF3 являются одно­ направленными, и хотя стрелка может начинаться или заканчи­ ваться на любой стороне блока, обозначающего действие, диаг­ раммы IDEF3 обычно организуются слева направо таким обра­ зом, что стрелки начинаются на правой и заканчиваются на ле­ вой стороне блоков. В табл. 2.3 приведены три возможных типа связей.

134

 

Глава 2

 

 

Таблица 2.3

 

Ъ1пы связей IDEF3

Изображение

Название

Назначение

 

Временное

Исходное действие должно завершиться,

 

предшество­

прежде чем конечное действие сможет на­

 

вание

чаться

 

(Temporal

 

 

precedence)

Выход исходного действия является входом

 

Объектный

 

поток (Object

конечного действия (исходное действие

 

flow)

должно завершиться, прежде чем конечное

 

 

действие сможет начаться)

^^

Нечеткое от­

Вид взаимодействия между исходным и ко- 1

ношение

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

 

(Relationship)

отдельно для каждого случая использования

 

 

такого отношения

Связь типа «временное предшествование» показывает, что ис ходное действие должно полностью завершиться, прежде чем начнется выполнение конечного действия.

Связь типа «объектный поток» используется в том случае, ког­ да некоторый объект, являющийся результатом выполнения ис­ ходного действия, необходим для выполнения конечного действия. Обозначение такой связи отличается от связи времен­ ного предшествования двойной стрелкой. Наименования потоко­ вых связей должны четко идентифицировать объект, который пе­ редается с их помощью. Временная семантика объектных связей аналогична связям предшествования, это означает, что порожда­ ющее объектную связь исходное действие должно завершиться, прежде чем конечное действие может начать выполняться.

Связь типа «нечеткое отношение» используется для выделения отношений между действиями, которые невозможно описать с использованием связей предшествования или объектных связей. Значение каждой такой связи должно быть определено, посколь­ ку связи типа «нечеткое отношение» сами по себе не предполага­ ют никаких ограничений. Одно из применений нечетких отно­ шений — отображение взаимоотношений между параллельно вы­ полняющимися действиями.

Методические аспекты проектирования ПО

135

Завершение одного действия может инициировать начало вы­ полнения сразу нескольких других действий или, наоборот, опре­ деленное действие может требовать завершения нескольких дру­ гих действий до начала своего выполнения. Соединения разбива­ ют или соединяют внутренние потоки и используются для изоб­ ражения ветвления процесса:

разворачивающие соединения используются для разбиения

потока. Завершение одного действия вызывает начало вы­ полнения нескольких других;

сворачивающие соединения объединяют потоки. Завершение одного или нескольких действий вызывает начало выполне­ ния другого действия.

В табл. 2.4 описаны три типа соединений.

 

 

 

 

Таблица 2.4

 

 

Ъшы соединений

 

 

 

1 Графическое

Название

Вид

Правила инициации

 

обозначение

 

 

 

 

 

 

 

 

 

Разворачива­

Каждое

конечное

действие

 

Соедине­

ющее

обязательно инициируется

 

&

ние «и»

Сворачиваю­

Каждое

исходное

действие

 

 

щее

обязательно должно завер­

 

 

 

 

шиться

 

 

1

 

Соедине­

Разворачива­

Одно и только одно конечное

|

X

ние «иск­

ющее

действие инициируется

лючающее

Сворачиваю­

Одно и только одно исходное 1

 

 

«или»»

щее

действие должно завершиться

|

 

Соедине­

Разворачива­

Одно или несколько конечных 1

0

ющее

действий инициируются

J

 

ние «или»

Сворачиваю­

Одно или несколько исходных 1

 

 

щее

действий должны завершиться

 

Соединения «и» инициируют выполнение конечных действий. Все действия, присоединенные к сворачивающему соединению «и», должны завершиться, прежде чем начнется выполнение сле­ дующего действия. На рис. 2.14 после обнаружения пожара иници­ ируются включение пожарной сигнализации, вызов пожарной ох­ раны, и начинается тушение пожара. Запись в журнал производит­ ся только тогда, когда все три перечисленных действия завершены.

136

Глава 2

Сделать запись в журнале & М дежурств

1.5

Рис. 2.14. Соединения «и»

Направить на лекции по кредиту

1.2

Проверить

 

Записать

заявку

X

результат

студента

экзамена

1.1

J11

1.4

 

 

Направить

 

 

на лекции

 

 

по аудиту

 

 

1.3

Рис. 2.15. Соединение «исключающее «или»»

Соединение «исключающее «или»» означает, что вне зависимос­

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

Методические аспекты проектирования ПО

137

Проверить

данные

чека

1,4

О

J2

J3

Проверить у сумму

наличных

1.5

Рис. 2.16. Соединения «или»

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

Соединение «или» предназначено для описания ситуаций, ко­ торые не могут быть описаны двумя предыдущими типами соеди­ нений. Аналогично связи нечеткого отношения соединение «или» в основном определяется и описывается непосредственно системным аналитиком. На рис. 2.16 соединение J2 может акти­ визировать проверку данных чека и/или проверку суммы налич­ ных. Проверка чека инициируется, если покупатель желает расп­ латиться чеком, проверка суммы наличных — при оплате налич-

138

Глава 2

ными. То и другое действие инициируется при частичной оплате как чеком, так и наличными.

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

Например, в спортивных состязаниях выстрел стартового пис­ толета, запуск секундомера и начало состязания должны произой­ ти одновременно. На рис. 2.17 представлена модель этого приме­ ра, построенная с использованием синхронного соединения.

 

 

Выстрелить

 

 

из

 

 

стартового

 

 

пистолета

 

 

1.2

Начать

 

Запустить

состя­

 

 

секундомер

зания

 

 

 

1.1

Л

1.3

 

 

 

Начать

 

 

забег

 

 

1.4

Рис. 2.17. Синхронное соединение

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

Методические аспекты проектирования ПО

139

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

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

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

2.3.3. МОДЕЛИРОВАНИЕ ПОТОКОВ ДАННЫХ

Общие сведения

Диаграммы потоков данных^ (Data Flow Diagrams D

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

Для построения DFD традиционно используются две различ­ ные нотации, соответствующие методам Йордона—ДеМарко и Гейна-Сэрсона. Эти нотации незначительно отличаются друг от друга графическим изображением символов. Далее в примерах будет использоваться нотация Гейна—Сэрсона.

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

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

^ Калашян А.Н,, Каляное Г.Н, Структурные модели бизнеса: DFD-техно- логии. — М.: Финансы и статистика, 2003.

140

Глава 2

гим процессам или подсистемам, накопителям данных или внешним сущностям — потребителям информации.

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

Состав диаграмм потоков данных

Основными компонентами диаграмм потоков данных явля­ ются:

внешние сущности;

системы и подсистемы;

процессы;

накопители данных;

потоки данных.

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

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

Рис. 2.18. Графическое изображение внешней сущности