Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Изменение уровня абстракции




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

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

 

Посмотрите на текущее расположение и высоту выбранного вами станка. Теперь опустите или поднимите его, чтобы вам было удобно работать. Затем измените его расположение, чтобы вы могли безопасно вставить, обработать и вынуть деталь. Может быть, для этого вам придется дви­гать, поворачивать или наклонять станок. Изучите устройство станка, прежде чем пытаться его налаживать.

 

Изменение уровня абстракции обычно про­исходит, когда модель уже имеет 2-3 уровня глу­бины, и их легко заметить. Небольшие измене­ния, однако, могут остаться незамеченными для автора. Обычно ошибки обнаруживаются в про­цессе рецензирования диаграмм. Свежий взгляд читательской аудитории определяет замену "что" на "как". Если изменение уровня абстракции не обнаружено во время цикла автор/читатель, то при следующей декомпозиции диаграммы оно обычно становится очевидным.

Изменение точки зрения

Изменение точки зрения происходит при­мерно так же, как изменение уровня абстрак­ции. Это чаще всего характерно для ситуаций, когда точку зрения модели нельзя использовать для декомпозиции конкретного блока, т. е. этот блок можно декомпозировать, только если по­смотреть на него с другой позиции. 06 этом может свидетельствовать заметное изменение терминологии.

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

 

· Вы находите трудным дальнейшую деком­позицию "хорошо понятого" блока без из­менения точки зрения модели.

· Для декомпозиции блока требуется совершенно новая терминология.

· Декомпозиция описывает систему, не входящую в рассмотрение.

 

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

Сходные функции

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

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

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

Тривиальные функции

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

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

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...