Проектирование системы. Проектирование систем. Проектирование информационных систем ( на примере методов структурного системного анализа)
Скачать 1.64 Mb.
|
любой блок обязательно должен иметь стрелки управления, наличие ко- торых гарантирует работоспособность функции и обеспечивает наложе- ние ограничений и включение/выключение функций системы; • если данные служат и для управления, и для входа, то вычерчиваются только стрелки управления, что уменьшает сложность диаграммы и дела- ет очевидным управляющий характер данных; • расстояние между параллельными стрелками должно быть максималь- но возможным (с учетом габаритов диаграммы), что позволяет оставить больше места для меток и помогает зрительно определять количество стрелок и прослеживать их пути; • расстояние между блоками и поворотами стрелок должно быть макси- мально возможным (с учетом габаритов диаграммы), что позволяет об- легчить процесс чтения и уменьшить вероятность перепутать две разные стрелки; • циклические обратные связи для одного и того же блока выполняются только для того, чтобы более четко подчеркнуть значение повторно ис- пользуемого объекта. Обычно обратную связь изображают на диаграмме, декомпозирующей блок. Однако иногда требуется выделить повторно ис- пользуемые объекты; • обратные связи «выход-управление» вычерчиваются «вверх и над» («верхняя» петля), что позволяет указать ограничивающие обратные свя- зи при минимальном числе линий и пересечений, а также собрать все стрелки управления в правой верхней части диаграммы; 187 • обратные связи «выход-вход» вычерчиваются «вниз и под» («нижняя» петля), что позволяет указать обратные потоки данных при минимальном числе линий и пересечений, а также собрать все входные стрелки в левой нижней части диаграммы; • обратные связи «выход-механизм» должны быть показаны как «вниз и под»; • количество необязательных пересечений стрелок при соединении большого числа блоков, число петель и поворотов каждой стрелки, долж- ны быть минимальным, что позволяет значительно уменьшить сложность диаграммы. Это ручная и, в случае насыщенных диаграмм, творческая функция; • иногда разрешается выделять буферы и повторно используемые объек- ты; • слияние стрелок производится, если они имеют общий источник или приемник, или если они представляют связанные данные. В таком случае общее название лучше описывает суть данных; • следует минимизировать число стрелок, касающихся каждой стороны блока, если, конечно, природа данных не слишком разнородна; • если возможно, стрелки присоединяются к блокам в одной и той же ICOM- позиции. Тогда соединение стрелок конкретного типа с блоками будет согласованным, и чтение диаграммы упростится; • при соединении большого числа блоков необходимо избегать необяза- тельных пересечений стрелок. Следует минимизировать число петель и поворотов каждой стрелки; • блоки (функции) являются сопряженными через среду, если они имеют связи с источником, генерирующим данные, без конкретного определе- ния отношения отдельной части данных к какому-либо блоку; • две или более функций являются сопряженными через запись, если они связаны с набором данных и не обязательно зависят от того, представле- ны ли все возможные интерфейсы как сопряжение через среду. Тип ин- 188 терфейса, показанный на последнем рисунке, предпочтителен, поскольку определяются отношения конкретных элементов данных к каждому бло- ку; • необходимо использовать (где это целесообразно) выразительные воз- можности ветвящихся стрелок; • при наличии стрелок со сложной топологией целесообразно повторить метку для удобства ее идентификации. Туннелирование. При описании сложных систем для их корректного и подробного представления используется большое число стрелок. Стрелки, входящие в блок и выходящие из него на диаграмме верхнего уровня, являются точно теми же самыми, что и дуги, входящие в диаграмму нижнего уровня и выходящие из нее, потому что блок и диаграмма представ- ляют одну и ту же часть системы. Часто стрелки могут быть объединены (слиты), но встречаются случаи, когда при описании новых деталей появляются достаточно важные объекты си- стемы, не показанные ранее на более высоких уровнях иерархии модели. Одна- ко, эти детали не столь важны, чтобы их показывать на более высоких уровнях модели. Например, стрелку, изображающую «деталь» на входе в функциональ- ный блок «Обработать на токарном станке» не имеет смысла отражать на диа- граммах более высоких уровней – это будет только перегружать диаграммы и делать их сложными для восприятия. Достаточно часто встречается другой случай, когда отдельные интер- фейсные стрелки не стоит рассматривать в дочерних диаграммах ниже опреде- ленного уровня – это будет только перегружать их и делать сложными для вос- приятия. Возникает необходимость избавиться от отдельных «концептуальных» интерфейсных стрелок и не детализировать их глубже некоторого уровня. Для решения подобных задач в стандарте IDEF0 предусмотрен механизм туннелирования. В большинстве случаев туннелирование применяется для изображения 189 малозначимых стрелок. В принципе любая стрелка на диаграмме, независимо от своего содержания, может быть «помещена в туннель». Туннельная стрелка – стрелка (со специальной нотацией), не удовлетворяющая обычному требова- нию, согласно которому каждая стрелка на дочерней диаграмме должна соот- ветствовать стрелкам на родительской диаграмме. Символ «туннеля» (Arrow Tunnel) в виде двух круглых скобок вокруг начала интерфейсной дуги обозначает, что эта дуга не была унаследована от функционального родительского блока и появилась (из «туннеля») только на этой диаграмме. В свою очередь, такое же обозначение вокруг конца (стрелки) интер- фейсной дуги в непосредственной близи от блока–приемника означает тот факт, что в дочерней по отношению к этому блоку диаграмме эта дуга отоб- ражаться и рассматриваться не будет. Чаще всего бывает, что отдельные объекты и соответствующие им ин- терфейсные дуги не рассматриваются на некоторых промежуточных уровнях иерархии, – в таком случае они сначала «погружаются в туннель», а затем при необходимости «возвращаются из туннеля». Стрелки с заключенными в скобки концами выполняют эти задачи, поскольку они не рассматриваются как часть границы при касании ими блока и, следовательно, не переносятся на диа- грамму, декомпозирующую этот блок. Туннелирование рекомендуется применять только опытным аналитикам в случаях, когда диаграммы становятся слишком сложными для чтения и пони- мания. Помещение стрелок в туннель осуществляется не просто для удобства – это важный способ точной регулировки модели не столько для описания систе- мы, как для существенного упрощает ее описания. Задание стрелке статуса « туннельная» позволяет аналитику избежать хаотического заполнения нежела- тельными подробностями диаграмм высокого уровня, а наличие у туннельной стрелки идентифицирующего ее обозначения дает возможность управлять по- явлением необходимых деталей, не запутывая общие описания родительских диаграмм. Кроме того, «туннельные» обозначения помогают скрывать сведе- 190 ния, необходимые только для верхних уровней модели, что минимизирует ве- роятность загромождения диаграмм-декомпозиций необязательной информаци- ей. Виды туннельных стрелок: • со скрытыми приемниками. Стрелка имеет скрытый приемник, если она касается блока, но не появляется на диаграмме, которая его декомпо- зирует (дочерняя). Если стрелка мигрирует с верхнего уровня на нижний, причем на нижнем уровне данные используются одинаково во всех функ- циях без исключения, т.е. предполагается, что не нужно детализировать стрелку, т.к. стрелка на дочерней функции именована до разветвления, а после разветвления ветви не имеют собственного имени. В этом случае стрелка на нижнем уровне может быть удалена, после чего на родитель- ской диаграмме она может быть туннелирована, а в комментарии к стрел- ке или в словаре можно указать, что данные будут использоваться во всех функциях дочерних диаграммах. Такое туннелирование называется «не-в- дочерней-функции». Туннельные стрелки, имеющие скрытый приемник, кончаются скобками, чтобы отразить тот факт, что такая стрелка идет к какой-то другой части модели, либо непосредственно выходит из модели, или что она не будет более в этой модели рассматриваться; • со скрытыми источниками. Стрелка имеет скрытый источник, если она является внешней стрелкой, отсутствующей на родительской диаграмме. Данный тип туннельной стрелки применяется, если на какой-либо диа- грамме нижнего уровня возникает необходимость изо-бразить малозна- чимые данные или объекты, которые не обрабатываются/используются функцией на текущем уровне, то они направляются на вышестоящий уро- вень (на родительскую диаграмму). В свою очередь, если эти данные на используются на родительской диаграмме, то они направляются еще вы- ше, и т. д. В результате малозначимая стрелка будет присутствовать на всех уровнях, а это затруднит чтение всех диаграмм, на которых она со- держится. В этом случае организуется туннелирование стрелки на самом 191 нижнем уровне, которое получило название «не-в-родительской- диаграмме».Туннельные стрелки от скрытого источника имеют скобки вокруг конца интерфейсной стрелки в непосредственной близи от блока- приемника. Такая нотация означает, что на родительской диаграмме стрелка не отображается и рассматриваться не будет, а данные не опреде- ляются/описываются в исходной диаграмме и отсутствуют на родитель- ской диаграмме. Заключение в скобки начала проходящих через туннель стрелок, появляющихся из неизвестного источника, указывает на то, что эти стрелки появляются из некоторой другой части модели или непосред- ственно извне. Опыт свидетельствует, что ситуации требующие создания туннельных стрелок встречаются редко, и если это все же происходит, то следует применять туннелирование с большой осторожностью. При неправильном использовании туннельные стрелки быстро становятся прикрытием плохого моделирования. Поэтому рекомендуется сначала проводить стрелки сквозь границы блоков, а затем определять, в каких случаях это снижает качество описания. Только по- сле этого можно помещать стрелки в туннели для улучшения читабельности модели. ICOM. В IDEF0 принята система маркирования, позволяющая аналитику точно идентифицировать и проверять связи по стрелкам между диаграммами. Эта схема кодирования стрелок получила название ICOM – название по пер- вым буквам английских эквивалентов слов вход (Input), управление (Control), выход (Output), механизм (Mechanism). ICOM – это коды, предназначенные для идентификации граничных стре- лок, содержат префикс, соответствующий типу стрелки (I, С, О или М), и по- рядковый номер. Буква следует перед числом, определяющим относительное положение точки подключения стрелки к родительскому блоку; это положение определяется слева направо или сверху вниз. 192 Основной ICOM-код – это узловой номер, который появляется там, где выполняется декомпозиция функционального блока и создается его подробное описание на дочерней диаграмме. Все остальные ссылочные коды базируются на узловых номерах. Например, код «C3», написанный возле граничной стрелки на дочерней диаграмме, указывает, что эта стрелка соответствует третьей (сле- ва) управляющей стрелке родительского блока. ICOM- кодыпредставляют собой ссылочные выражения, которые присва- иваются всем элементам модели: диаграммам, блокам, стрелкам и примечани- ям. Коды используются в различных контекстах для точного указания на нуж- ный элемент модели. Например, кодирование связывает каждую дочернюю диаграмму со сво- им родительским блоком. Если блоки на дочерней диаграмме подвергаются дальнейшей декомпозиции и подробно описываются на дочерних диаграммах следующего уровня, то на каждую новую диаграмму назначаются новые ICOM- коды, связывающие граничные стрелки этих диаграмм со стрелками их роди- тельских блоков. Иногда буквенные ICOM-коды, определяющие роли граничных стрелок (вход, управление, механизм), могут меняться при переходе от родительского блока к дочерней диаграмме. Например, управляющая стрелка в родительском блоке может быть входом на дочерней диаграмме. Аналогично, вход родитель- ского блока может быть управлением для одного или более дочерних блоков. Коды ICOM позволяют: • быстро проверять согласованность внешних стрелок диаграммы с гра- ничными стрелками соответствующего блока родительской диаграммы; • связывать граничные стрелки на дочерней диаграмме со стрелками роди- тельского блока; • обеспечивать согласованность декомпозиции, поскольку все стрелки, входящие в диаграмму и выходящие из нее, должны быть учтены; • обеспечивать требуемую строгость; 193 • создавать совокупность неявных связующих звеньев между страницами, которые можно быстро изменить при изменении границ; • облегчать процесс чтения и рецензирования IDEF0-диаграмм; • облегчать проверку согласованности декомпозиции; • упрощать внесение локальных изменений в диаграмму; • объединять различные варианты диаграмм в модели. В моделях сбои часто происходят в точках интерфейса. Для IDEF- диаграмм интерфейсными являются места соединения диаграмм со своими родителями, именно поэтому каждую декомпозицию необходимо аккуратно со- единять со своим родителем, используя ICOM-метки. При построении диаграммы с меньшей доминантностью стрелки, касаю- щиеся декомпозируемого блока, используются в качестве источников и прием- ников для стрелок, которые создаются на новой диаграмме. После завершения создания диаграммы-потомка для обеспечения согла- сованности ее внешние стрелки стыкуются с родительской диаграммой. Одним из способов такой стыковки служит присваивание кодов ICOM внешним стрел- кам новой диаграммы согласно следующему алгоритму: 1) прежде чем составлять список данных, записать имена и коды для всех стрелок, образующих границу. Это поможет при декомпозиции умень- шить вероятность пропуска части граничных стрелок; 2) аналитик должен представить себе рисунок новой диаграммы как бы внутри декомпозируемого блока; 3) зрительно продлить внешние стрелки почти до края диаграммы и зри- тельно соединить каждую внешнюю стрелку диаграммы с соответствую- щей граничной стрелкой декомпозируемого блока; 4) присвоить код каждой зрительной связи (I -для входных стрелок, С – для связей между стрелками управления, О – для связей между выходными стрелками, М – для связей между стрелками механизма; 194 5) добавить после каждой буквы цифру, соответствующую положению дан- ной стрелки среди других стрелок того же типа, касающихся родитель- ского блока. Причем входные и выходные стрелки пересчитываются сверху вниз, а стрелки управлений и механизмов пересчитываются слева направо; 6) записать каждый код около окончания каждой внешней стрелки; 7) для выделения связи внешних стрелок с соответствующими граничными стрелками, границу субъекта изобразить жирной линией; 8) выполнив декомпозицию, вернуться назад к исходному блоку родитель- ской диаграммы и соединить каждую внешнюю стрелку новой диаграм- мы с соответствующей стрелкой, касающейся этого блока. Это позволит избежать пропуска необходимого соединения. Декомпозиция (Decomposition) является основным понятием стандарта IDEF 0. Принцип декомпозиции применяется при разбиении сложного процесса на составляющие его функции. При этом уровень детализации процесса опре- деляется непосредственно разработчиком модели. Декомпозиция позволяет постепенно и структурированно представлять модель системы в виде иерархической структуры отдельных диаграмм, что де- лает ее менее перегруженной и легко усваиваемой. Диаграмма – это основная единица описания системы, расположенная на отдельном листе, представляющая функции и интерфейсы в виде блоков и дуг. Место соединения дуги с блоком определяет тип интерфейса. Диаграммы яв- ляются графическим представлением знаний экспертов о моделируемой систе- ме и предметом обсуждения со специалистами конкретной предметной обла- сти. Аналитик представляет знания экспертов, изложенные с помощью есте- ственного языка, используя графическую нотацию IDEF0, давая более нагляд- ное, лаконичное и однозначное описание системы, не жертвуя при этом каче- 195 ством представления. Таким образом, в ходе разработки диаграмм знания экс- пертов структурируются, и устраняется неоднозначность описаний за счет: • стандартизации интерпретации графических обозначений. Так, например, содержание контекстной диаграммы интерпретируется следующим обра- зом: «Процесс преобразует Вход в Выход при выполнении условий, за- данных в Управление с помощью Механизма»; • декомпозиции блоков диаграмм более высокого уровня, когда за счет бо- лее точных описаний на диаграммах-потомках устраняется неоднознач- ность возможных интерпретаций. Моделирование IDEF0 всегда начинается с представления системы как единого целого – одного функционального блока с интерфейсными дугами, простирающимися за пределы рассматриваемой области. Такая диаграмма с одним функциональным блоком называется контекстной диаграммой. Контекстная диаграмма – это IDEF0-диаграмма, расположенная на вершине иерархии диаграмм, представляющая собой самое общее описание си- стемы, состоит из одного блока, описывающего функцию верхнего уровня, стрелок и пояснительного текста, определяющего точку зрения и цель мо- делирования. Эти утверждения помогают руководить разработкой модели и ввести этот процесс в определенные рамки. Контекстная диаграмма имеет узловой номер A-n (n = 0), которая пред- ставляет контекст модели. Диаграмма верхнего уровня обозначается идентифи- катором «А-0» (произносится «А минус ноль»), на которой объект моделирова- ния представлен единственным блоком с граничными стрелками, отобража- ющими связь системы с окружающей средой, устанавливает область моделиро- вания, определяет |