Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГЭ-2013-анн-130515.doc
Скачиваний:
5
Добавлен:
01.05.2025
Размер:
2 Мб
Скачать
☆

3.2. Методология sadt (idef0). Ее реализация в case-средстве bPwin

Почти все методологии, относящиеся к построению моделей, ориентированных на процессы, выросли из реального опыта построения программных систем их авторами. Это накладывает на них свой отпечаток: их бывает трудно применить для построения систем общего характера. Особое положение занимает методология SADT. Она возникла не как компиляция опыта разработчиков программных систем, а была спроектирована специально для того, чтобы облегчить понимание и описание искусственных систем общего характера. SADT – методология описания систем средней сложности, основанных на концепции системного моделирования. Её можно применять для описания моделей, ориентированных как на данные, так и на процессы. Методология SADT реализована в стандарте IDEF0, и хотя различия имеются, с точки зрения построения моделей систем они незначительны.

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

Место соединения дуги с блоком определяет тип интерфейса:

  • вход функции (Input) – входит в блок слева,

  • управление или ограничение (Control) – входит в блок сверху,

  • выход функции (Output) – выходит из блока справа,

  • механизмы её выполнения (Mechanism) – входит в блок снизу.

Р ис. 17.1. Контекстная SADT-диаграмма.

По начальным буквам английских названий сторон блока эти диаграммы иногда называют ICOM-диаграммами.

Блок любой диаграммы может быть описан диаграммой нижнего уровня, которая, в свою очередь, может быть детализирована с помощью необходимого числа диаграмм. Таким образом, формируется иерархия диаграмм. Каждый блок на диаграмме имеет свой номер. Номер диаграммы отвечает номеру родительского блока. Так, A0 – диаграмма нулевого уровня, детализирующая блок контекстной диаграммы, А2 детализирует блок 2 на диаграмме А0, А21 детализирует блок 1 на диаграмме А2.

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

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

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

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

Возникает вопрос, на каком уровне остановить процесс детализации? Нужно ли доводить до этого уровня все диаграммы модели? Для этого следует вспомнить цель анализа: построение модели, которая на основании изначально нечётких представлений о предметной области даст точный ответ, что она выполняет и что должна выполнять соответствующая программная система. Если блок демонстрирует ответы на вопросы, связанные с его функционированием, детализацию следует прекратить. Заметим, что вопрос должен ставиться так: «Что делает блок?», а не «Как работает блок?» Детализировать не следует блоки, отражающие простейшие функции. При этом наличие таких блоков бывает полезно для уяснения сути предметной области. Не стоит детализировать блок, аналог которого уже есть в модели, достаточно на него сослаться в примечании. Из сказанного следует и ответ на второй вопрос: глубокая детализация необходима лишь для особо сложных или жизненно важных функций.

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

Нередко вызывает трудность выбор между входом и управлением. Нужно иметь в виду, что вход обычно преобразуется функцией блока, а управление – нет. Если всё-таки есть сомнение, следует предпочесть управление. Заметим, что управление – это не администрация предприятия, она обычно выполняет свои функции. А управлением может быть приказ, закон, правила внутреннего распорядка и т.п. Например, для функции «Составить расписание» входом может быть пожелания преподавателей, управлением – учебный план, выходом – расписание, а механизмом – бюро расписаний. А для функции «Принять экзамен» вход – студент без оценки, управление – расписание, выход – студент с оценкой, механизм – преподаватель.

Построение моделей в методологии SADT подчиняется определённым правилам, наиболее важные из которых следующие:

  • синтаксические правила: блоки, как правило, обозначаются глаголами или отглагольными существительными, дуги – существительными единственного числа именительного падежа;

  • уникальность меток и наименований: отсутствие повторяющихся имен;

  • разделение входов и управлений: определение роли данных;

  • ограничение количества блоков на каждом уровне декомпозиции 3-6 блоками;

  • связность диаграмм: соответствие дуг, инцидентных блоку, входным и выходным дугам детализирующих его диаграмм;

  • отделение организации от функции: исследуется функциональность предметной области, а не её структура.

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