Выявление интерфейсных ошибок

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

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

 
  Выявление интерфейсных ошибок - student2.ru

Принципы и приемы расположения дуг

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

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

Резюме

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

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

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

Размер SADT-моделей

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

В такой модели общее число блоков составляет 1365, а в четырехуровневой модели, содержащей по шесть блоков на диаграмме, общее число их - 9331.

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

Таблица 9-1. Размер иерархических моделей увеличивается со скоростью геометрической прогрессии

  Уровень в модели   Общее число блоков в модели    
4 блока/1 диаграмма 6 блоков/1 диаграмма
Тор

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

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

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

Прекращение декомпозиции

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

1) блок содержит достаточно деталей;

2) необходимо изменить уровень абстракции, чтобы достичь большей детализации блока;

3) необходимо изменить точку зрения, чтобы детализировать блок;

4) блок очень похож на другой блок той же модели;

5) блок очень похож на блок дугой модели;

6) блок представляет тривиальную функцию.

Эти правила подчеркивают практические аспекты применения SADT для описания систем реального мира с конкретной целью (например, понять работу телефонной станции, чтобы определить требования к ее программному обеспечению). Предполагая, что большинство наших читателей будут применять SADT именно так, мы далее обсудим более подробно каждый из этих пунктов для иллюстрации приведенных правил и их важных моментов. Мы будем использовать диаграмму рис. 17-1, поскольку эта диаграмма находится на самом "дне" модели экспериментального механического цеха.

Наши рекомендации