Принципы функционального моделирования 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Принципы функционального моделирования



Аннотация

 

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

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

Приводится подробное описание процесса создания функциональных моделей в среде программы Design/IDEF/

Предлагаются варианты процессов для самостоятельного моделирования.

В основу теоретической части положен материал из книги Марка Д.А., Клемент МакГоуэн К. Методология структурного анализа и проектирования. – М.:МетаТехнология, 1993, электронный вариант которой можно найти по адресу - www.interface.ru/case/sadt.htm

 

 


Оглавление

Введение. 5

1. Принципы функционального моделирования. 6

2. Создание функциональных моделей и диаграмм.. 9

2.1. Сбор информации. 9

2.2. Начало моделирования. 12

2.3. Продолжение моделирования. 22

2.4. Проверка диаграммы автором.. 28

2.5. Соглашения по построению диаграмм.. 33

2.6. Завершение моделирования. 40

2.7. Дополнения к диаграммам и моделям.. 43

3. Автоматизация построения модели. 45

4. Описание работы с Design/IDEF. 48

4.1. Создание диаграмм методологии IDEF0. 48

4.2. Создание словарей методологии IDEF0. 64

5. Варианты заданий на моделирование. 75

Список литературы.. 78

 

Введение

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

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

Необходимость в семантических моделях данных была впервые осознана ВВС США в середине семидесятых годов при выполнении программы ICAM (программы интегрированной компьютеризации производства). Цель этой программы состояла в повышении продуктивности производства посредством систематического внедрения компьютерных технологий. Повышение продуктивности производства в рамках программы ICAM потребовало совершенствования методов анализа и передачи информации. В результате был разработан ряд технологий, известных как IDEF-методологии (ICAM DEFinition). IDEF состоит из трех методологий моделирования, основанных на графическом представлении производственных систем:

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

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

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

 

 

Создание функциональных моделей и диаграмм

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

 

Сбор информации

Опрос – это сбор сведений. Первый опрос служит точкой отсчета в процессе моделирова­ния. Чтобы провести опрос, аналитик вначале выбирает наилучший источник информации (до­кумент или конкретного человека), а затем орга­низует его «опрос». Цель опроса – получение порции информации, необходимой для начала либо для продолжения построения определенной части модели. После первого опроса sadt-модель используется для определения той информа­ции, которую необходимо получить в ходе следу­ющего опроса. В соответствии с иерархией моде­ли может быть проведена последовательность опросов для выяснения все более конкретных де­талей рассматриваемой области.

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

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

- чтение документов;

- наблюдение за выполняемыми операциями;

- анкетирование;

- использование собственных знаний;

- составление описания.

Документы – хороший источник информа­ции, потому что они чаще всего доступны и их можно «опрашивать» в удобном для себя темпе. Чтение документов – прекрасный способ полу­чить первоначальное представление о системе и сформулировать вопросы к экспертам. Для SADT-проектов такие докумен­ты могут храниться в библиотеке проекта и рас­пространяться в виде небольших рабочих паке­тов, называемых папками.

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

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

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

Еще одна полезная стратегия – придумать описание и дать его экспертам для корректиров­ки. Придуманные описания могут дать альтерна­тивные схемы функционирования системы – схе­мы, о которых эксперты никогда не думали.

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

- опросы для сбора фактов;

- опросы для определения проблем;

- совещания для принятия решений;

- диалоги автор/читатель.

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

Ниже приведено несколько важных сове­тов, которые нужно иметь в виду в процессе опроса. Поскольку их все трудно запомнить сра­зу, перечитайте эти пункты после опроса, чтобы посмотреть, в чем вы можете улучшить свое уме­нье собирать информацию:

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

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

Следующие рекомендации, помогают под­держивать непрерывность потока и достовер­ность информации, поступающей от эксперта:

- Делайте паузы, пока эксперт думает. Дайте эксперту возможность решать, что сказать дальше. Никогда не перебивайте, подсказывая ответ или задавая другой вопрос.

- Старайтесь не задавать наводящих вопросов, вопросов-подсказок, вопросов, содержащих ответ, потому что это не позволяет эксперту делиться своими знаниями. Старайтесь не задавать кон­трольных вопросов, так как это прерывает поток информации.

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

Умение проводить опросы так же важно, как и умение строить хорошие диаграммы и мо­дели. Применяя на практике приведенные реко­мендации, вы станете более умелым интервьюе­ром. Чем лучше вы проводите опрос, тем легче получить базовые знания, необходимые для ва­ших SADT-диаграмм и SADT-моделей.

 

Начало моделирования

 

Начало моделирования в SADT означает создание диаграмм А0 и А-0, которые затем могут быть отрецензированы. Эти две диаграммы полностью рассказывают все об изучаемой системе с минимальной степенью детализации. Создавая их, аналитик предприни­мает начальную попытку декомпозировать систе­му и затем обобщить полученную декомпозицию. Декомпозиция (диаграмма А0) освещает наибо­лее важные функции и объекты системы. Объединение (диаграмма А-0) трактует систему как «черный ящик», дает ей название и опреде­ляет наиболее важные входы, управления, выхо­ды и, возможно, механизмы.

Прежде чем начать моделирование, SADT-аналитик проводит подготовку к нему, собирает информацию, декомпозирует объект и обобщает эту декомпозицию. Подготовка включает выбор цели модели (например, разработка нового программного продукта), выбор точки зрения, с которой будет представлена модель (например, группа разработки), тип созда­ваемой модели (например, модель «потокового» процесса) и предполагаемое использование построенной и проверенной модели (например, организация процесса разработки нового программного продукта). Таким образом, подготовка должна максимально облегчить сбор информации.

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

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

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

Иногда оказывается, что определить цель и точку зрения в самом начале моделирования чрезвычайно трудно. В таком случае следует составить списки данных и функций и, может быть, нарисовать диаграмму А0. Сделав это, вы начнете чувствовать систему и установите, описывает ли ее диаграмма А0 с нужной точки зрения. Может быть, вам придется нарисовать несколько альтернативных А0-диаграмм, прежде чем появится достаточная уверенность для того, чтобы осуществить выбор правильной цели и точки зрения.

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


Рис. 2.1. Определение целей и точки зрения

Рис. 2.2. Подготовка списков функций и данных

 

Рис. 2.3. Диаграмма A-0

Рис. 2.4. Диаграмма A0.


Начните свою диаграмму с выделения всех основных групп и категорий данных, используемых и генерируемых системой. И не будьте слишком дотошны – запишите все разум­ные возможности. При сомнении записывайте все, что приходит на ум, потому что лучше запи­сать слишком много, чем провести неполный анализ. Обратите внимание, что на рис. 2.2 в список вошло много деталей, хотя аналитик пытался создать диаграмму цеха как единого целого.

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

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

 

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

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

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

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

 

Исходное содержание диаграммы А0 обес­печивают списки данных и функций. Для пра­вильного описания системы содержанию надо придать форму. В SADT это делается посред­ством построения диаграммы. Начинающим авторам необходимо придерживаться опреде­ленного порядка: (1) расположите блоки на странице, (2) нарисуйте основные дуги, пред­ставляющие ограничения, (3) нарисуйте внеш­ние дуги и (4) нарисуйте все оставшиеся дуги. Со временем накопленный опыт позволит вам отойти от этой процедуры и изображать блоки и дуги в соответствии с той идеей, которую вы хотите воплотить в диаграмме.

Правильное расположение блоков является самым важным этапом построения диаграммы. Блоки располагаются в соответствии с их доми­нированием (по степени важности или по по­рядку следования). Самый доминантный блок обычно располагается в верхнем левом углу, а наименее доминантный – в нижнем правом. Это приводит к расположению, при котором более доминантные блоки ограничивают менее доми­нантные, образуя «ступенчатую» схему. Доминирование имеет важнейшее значение для ясного представления процесса. Например, не имеет смысла говорить о контроле над выполне­нием задания до изготовления детали.

Затем изображают основные дуги, представляющие ограничения. Это является второй важной частью построения диаграммы А0. Они дают основание для разбиения объекта диаграммы на 3 системные функции, изображаемые блоками. Рисуя эти дуги, проверяйте, действительно ли каждая из них оказывает влияние, соответствующее декомпози­ции объекта. Проследите по списку данных, не отсутствуют ли какие-то дуги, представляющие ограничения. Если это так, вы, возможно, захотите проверить правильность декомпозиции.

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

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

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

 

Обобщение является последним важным шагом начального этапа моделирования. Вспом­ните, что для любой SADT-диаграммы есть роди­тельская диаграмма, содержащая ее контекст, где под контекстом понимается блок с набором входных дуг, дуг управления и выходных дуг. Верхняя диаграмма модели (т.е. диаграмма А0) не составляет исключения. Контекстом для нее служит диаграмма А-0, представляющая собой обобщение всей модели. Диаграмма А-0 имеет несколько предназначений. Во-первых, она объявляет общую функцию всей системы. Напри­мер, блок на рис. 2.3 с названием разработать программный продукт ясно указывает, что делает группа разработчиков. Во-вторых, она дает множество основных типов или наборов данных, которые использует или производит система. Например, системные требования позволяют осуществлять контроль над персональными компьютерами, на базе которых разрабатывается программное обеспечение. В-третьих, А-0-диаграмма указывает взаимоотношения между основными типами данных, проводя их разграничение. Например, исследование рынка рассматривается как входное данное, нечто, изменяемое процессом, в то время как системные требования контроли­руют выполнение заданий для определенного типа ЭВМ. Таким образом, А-0-диаграмма представляет собой общий вид изучаемой системы.

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

В процессе обобщения вы убедитесь в том, что он помогает прояснить описание системы, потому что при обобщении вы просматриваете метки дуг для более точного наименования данных, которыми обмениваются система и ее среда. Кроме того, во время обобщения дуги часто объединяются для упрощения изображения модели. В этом случае дуги разветвляются на слои составляющие на диаграмме А0.

Построение диаграммы А-0 свидетельствует об окончании начального этапа моделирования. К этому моменту сделана первая попытка обобщить и описать основную деятельность системы и по­казать связь системы с ее средой. Несмотря на ограниченное число описанных деталей, диа­граммы А-0 и А0 представляют законченную кар­тину, потому что они отражают все основные входы, управления, выходы и функции системы. Общий вид системы, полученный с помощью диаграмм А-0 и А0, – основная цель аналитика на начальном этапе построения SADT-модели.

 

Продолжение моделирования

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

Декомпозиция модели похожа на началь­ный этап моделирования, но проще его. Почему? Потому что при декомпозиции модели аналитик всегда находится в контексте, определенном бло­ком со своими дугами одной из диаграмм. Эта граница, называемая границей объекта, определе­на двумя способами. Во-первых, объект, цель и точка зрения каждой новой диаграммы уже определены на диаграмме А0. Во-вторых, каждый блок, декомпозируемый в новую диаграмму, уже является ограниченным объектом. Другими сло­вами, он идентифицирует конкретную функцию и все данные, которые для нее требуются или ею порождаются. Строить диаграмму, исходя из этой информации, проще, потому что список данных создается на основе дуг, входящих в блок и выходящих из него, а также потому, что спи­сок функций подробно раскрывает название бло­ка. Процесс декомпозиции ограниченного объе­кта состоит из следующих шагов:

1. выбор блока диаграммы;

2. рассмотрение объекта, определенного этим блоком;

3. создание новой диаграммы;

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

5. создание альтернативных декомпозиций;

6. корректировка новой диаграммы;

7. корректировка всех связанных с ней диаграмм.

Шаги 1-3 представляют созидательную часть процесса. Выполняя их, аналитик концен­трирует свои усилия, связанные с выявлением новой информации об объекте, на более высоком уровне детализации, чтобы достичь ясности изло­жения. Шаги 4-7 составляют этап саморецензи­рования, в ходе которого аналитик, создав новую диаграмму, проверяет, какую она несет информа­цию и в каком она находится отношении с роди­тельской диаграммой. Затем в созданную диа­грамму и соответственно в связанные с ней диаграммы вносятся изменения, чтобы достичь ясности для других.

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

Рассмотрим диаграмму А0 для модели разработки программного продукта (рис. 2.4). На ней три блока: планирование и проектирование разработки продукта, создание программ и документации, маркетинг. Остановим свой выбор на первом блоке планирование и проектирование разработки продукта. Поняв, как происходит планирование и проектирование разработки программного обеспечения, мы, ви­димо, окажемся в лучшем положении для дальне­йшей декомпозиции остальной части модели.

Объект, определяемый блоком. Блок 1, планирование и проектирование разработки продукта, становится те­перь самостоятельным объектом декомпозиции. Для выполнения этой декомпозиции вначале бегло осмотрим обобщающую диаграмму (посмо­трите, пожалуйста, диаграмму А-0 на рис. 2.5) и вспомним цель и точку зрения модели.

Сделав это, мы увидим, что должны описать блок планирование и проектирование разработки продукта, чтобы можно было описать процесс разработки программного продукта с точки зрения руководителя разработки. Далее изучаем блок 2 диаграммы А0 и соединенные с ним дуги, чтобы выявить его особенности.

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

Стремитесь ограничиваться разумным уров­нем сложности при объединении функций и дан­ных: четыре-пять функциональных блоков, как правило, лучше всего. Слишком много данных и функций часто содержат слишком много инфор­мации. Это приводит к запутанным диаграммам. Наоборот, небольшое число блоков дает слишком мало, и диаграмма становится почти бесполез­ной. Если вы уверены, что достигли баланса, про­верьте, во всех ли отношениях написанные вами слова адекватны объекту, определенному блоком и его граничными дугами на родительской диа­грамме. Теперь у вас есть все необходимое для построения диаграммы.

Создание новой диаграммы. Новая диаграмма строится аналогично диа­граммам А0 и А-0. Блоки размещаются в соот­ветствии с доминированием (т.е. согласно взаим­ным ограничениям блоков), затем создаются основные дуги, представляющие ограничения, потом внешние и, наконец, внутренние дуги. На рис. 2.5-2.6 показаны следующие шаги работы по декомпозиции функций планирование и проектирование разработки продукта, создание программ и документации.


Рис. 2.5. Результат декомпозиции функции – Планирование и проектирование разработки продукта

Рис. 2.6. Результат декомпозиции функции – Планирование и проектирование разработки продукта


 

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

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

Может случиться, что, начав рисовать дугу, вы засомневаетесь в том, что она нужна на диа­грамме. Не изобразив дугу при первом наброске диаграммы, вы рискуете совершить ошибочный пропуск. Поскольку SADT-диаграммы всегда про­веряются другими специалистами, и поскольку отсутствующую дугу никто не сможет обнару­жить, изъятие сомнительной дуги с диаграммы – прямая дорога к возникновению ошибок и отсе­чению дополнительных возможностей. Реко­мендуется включать сомнительные дуги в диаграм­му с вопросом об их необходимости адресован­ным читателям. Полученные в ответ комментарии, скорее всего, помогут разрешить ваши сом­нения. SADT-дуги представляют собой наборы объектов и поэтому они потенциально могут нести много данных. Например, оборудование может быть просто бумагой, а может быть компьютерами, столами и т.д. Опытные SADT-аналитики не изображают каждый объект отдельной дугой. В крайнем случае, лучше давать определение новой дуги в глоссарии и, возмож­но, уточнять ее содержимое при декомпозиции тех блоков, которых она касается. Таким обра­зом, вы предоставите читателям достаточно ин­формации для понимания вашей диаграммы и не потратите много времени на избыточно подроб­ное описание модели на слишком ранней стадии, что неизбежно привело бы в дальнейшем к боль­шим переделкам.

 

Проверка диаграммы автором

 

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

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



Поделиться:


Последнее изменение этой страницы: 2016-09-13; просмотров: 847; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.186.92 (0.068 с.)