Технологии моделирования систем. Технологии моделирования систем и структурный анализ Технология моделирования систем представляют собой набор правил, определяющих процедуры разработки моделей систем. Таких технологий существует несколько, но все они опираются на методы (методологии) структурного анализа и проектирования систем. Методы структурного анализа и проектирования (Структурные методы) являются строгой дисциплиной системного анализа и проектирования. До появления структурного анализа эта деятельность была сложна и перегружена проблемами. Роль методологии заключается в регламентации основ разработки сложных систем. Она описывает последовательность шагов, модели и подходы, тщательное следование которым приведет к хорошо работающим системам. Методологии, помогают охватить и учесть все важные этапы, шаги, моменты разработки, помогают справится с проблемами размерности, и в конечном итоге, при строгом следовании требованиям методологии, повысить качество анализа или проекта. Более того, методологии обеспечивают организационную поддержку, позволяющую большим коллективам разработчиков функционировать скоординированным образом. Структурные методы стремятся преодолеть сложность анализа и проектирования больших систем путем расчленения их на части ("черные ящики") и иерархической организации этих черных ящиков. Выгода в использовании черных ящиков заключается в том, что их пользователю не требуется знать, как они работают, необходимо знать лишь его входы и выходы, а также его назначение (т.е. функцию, которую он выполняет). Технологии моделирования систем. Технологии моделирования систем и структурный анализ Первый этап упрощения сложной системы заключается в ее разбиении на черные ящики, при этом такое разбиение должно удовлетворять следующим критериям: • • • • каждый черный ящик должен реализовывать единственную функцию системы; функция каждого черного ящика должна быть легко понимаема независимо от сложности ее реализации (например, в системе управления ракетой может быть черный ящик для расчета места ее приземления: несмотря на сложность алгоритма, функция черного ящика очевидна "расчет точки приземления"); связь между черными ящиками должна вводиться только при наличии связи между соответствующими функциями системы (например, в бухгалтерии один черный ящик необходим для расчета общей заработной платы служащего, а другой для расчета налогов - необходима связь между этими черными ящиками: заработанная плата, что требуется для расчета налогов); связи между черными ящиками должны быть простыми, насколько это возможно, для обеспечения независимости между ними. Технологии моделирования систем. Технологии моделирования систем и структурный анализ Второй этап заключается в организации черных ящиков в виде иерархических структур. Все сложные системы организованы в иерархии. Вселенная включает галактики, звездные системы, планеты, молекулы, атомы, элементарные частицы. Человек при создании сложных систем также подражает природе. Любая организация имеет директора, заместителей по направлениям, иерархию руководителей подразделений, рядовых служащих. Третий этап – применение графического языка простого и понятного как разработчику модели так и заказчику. Четвертый этап – представление результатов анализа и проектирования в виде пакета документов для заказчика и для разработчиков системы. Технологии моделирования устанавливают жесткие требования к разработке, форме и содержанию этих документов. Технологии моделирования систем. Технологии моделирования систем и структурный анализ • • • • • Во многих аспектах системный анализ является наиболее трудной частью разработки систем. В своей работе системный аналитик сталкивается со следующими проблемами: аналитику сложно получить исчерпывающую информацию для оценки требований к системе с точки зрения заказчика; заказчик, в свою очередь, не имеет достаточной информации о проблемах анализа разработки систем для того, чтобы судить, что является выполнимым, а что нет; аналитик сталкивается с чрезмерным количеством подробных сведений как о предметной области, так и о новой системе; спецификация системы из-за объема и технических терминов часто непонятна для заказчика; в случае понятности спецификации для заказчика, она будет являться недостаточной для проектировщиков и программистов, создающих систему. Применение современных структурных методов во многом решает эти проблемы. Технологии моделирования систем. Принципы структурного анализа • • • Структурным анализом принято называть метод исследования системы, которое начинается с ее общего обзора и затем декомпозируется, приобретая иерархическую структуру со все большим числом уровней. Для таких методов характерно: разбиение на уровни с ограничением числа элементов на каждом из уровней (обычно от 3 до 6-7); ограниченный контекст, включающий лишь существенные на каждом уровне детали; использование строгих формальных правил записи; последовательное приближение к конечному результату. Технологии моделирования систем. Принципы структурного анализа 1. 2. 3. 4. 5. 6. 7. 8. Все методологии структурного анализа базируются на ряде общих принципов. Решения трудных проблем путем разбиения их на множество меньших независимых задач, легких для понимания и решения. Сложность проблемы снижается при организации ее частей в древовидные иерархические структуры (т.е. система может быть понята и построена по уровням, каждый из которых добавляет новые детали). Выделение существенных с некоторых позиций аспектов системы и отвлечение от несущественных с целью представления проблемы в простом общем виде. Необходимость строгого методического подхода к решению проблемы. Несущественная на конкретном этапе информации скрывается и не рассматривается. Концептуальная общность на всех этапах анализа и разработки системы (структурный анализ структурное проектирование структурное программирование - структурное тестирование). Контроль за границами рассмотрения системы, т.е. наличием необходимых элементов и исключением лишних элементов, а также в обоснованности и согласованности элементов. Концентрация внимания на логическом проектировании для обеспечения независимости от физического проектирования. Следование всем принципам в комплексе позволяет на более ранних стадиях разработки понять, что будет представлять из себя создаваемая система, обнаружить промахи и недоработки, что, в свою очередь, облегчит работы на последующих этапах жизненного цикла системы и понизит стоимость разработки. Технологии моделирования систем. Средства структурного анализа и их взаимоотношения Структурные методологии исходят из общего положения, что системы может быть описана на основе трех понятий: • • • функция системы - то, что в системе происходит, активные действия, работы; объекты системы – материальные и информационные элементы системы, которые используются при выполнении функций системы; состояния системы - характеристика параметров системы в определенный момент времени после завершения выполнения определенной функции системы. В соответствии с этой классификацией структурные методы делятся на три группы методологий: • • • методологии, ориентированные на описание функций; методологии, ориентированные на описание данных; методологии, ориентированные на описание изменение состояний системы. Технологии моделирования систем. Средства структурного анализа и их взаимоотношения Среди всего многообразия методологий структурного анализа наиболее часто и эффективно применяемыми являются следующие: • SADT (Structured Analysis and Design Technique) модели и соответствующие им функциональные диаграммы IDEF0. • DFD (Data Flow Diagrams) - диаграммы потоков данных; • ERD (Entity-Relationship Diagrams) - диаграммы "сущность связь"; • IDEF1Х – методика разработки информационных моделей • STD (State Transition Diagrams) - диаграммы переходов состояний ; • CPN (Colored Petri Net) цветная сеть Петри – более сложный вариант диаграммы переходов. Данная методология позволяет ( с помощью специальных программных систем) наглядно смоделировать поведение системы. Технологии моделирования систем. Средства структурного анализа и их взаимоотношения Методологии SADT и DFD входят в группу методологий, ориентированных на анализ функций систем. Причем методология SADT применима для моделирования любых систем, а методология DFD широко применяется для описания функций информационных систем. Методологии ERD и IDEF1Х входят в группу методологий позволяющих описывать данные и отношения меду ними. Такие методологии непосредственно связаны с разработкой информационных систем. Третья группа представлена методологиями STD и CPN, которая применяется для описания временных аспектов функционирования систем «реального времени». Главные отличия информационных систем от систем реального Информационные системы Системы реального времени Управляемы данными Управляемы событиями Сложность структуры данных Простые структуры данных Большой объем входных данных Малое количество входных данных Интенсивный ввод/вывод Интенсивные вычисления Машинная независимость Машинная зависимость Технологии моделирования систем. SADT технология SADT (Structured Analysis and Design Technique) технология возникла в конце 60-х годов в ходе революции, вызванной структурным программированием. Структурное программирование это концепция, направленная на повышение качества разработки программных систем. Проблема возникшая в то время, заключалась в том, что затраты на разработку сложных программных систем во много раз превышали планируемые, а качество разработки программ не удовлетворяло заказчика. Концепция SADT предусматривает следующие этапы создания системы: • • • • • • • анализ - определение того, что система будет делать; проектирование - определение подсистем и их взаимодействия; реализация - разработка подсистем по отдельности; объединение - соединение подсистем в единое целое; тестирование - проверка работы системы; установка - введение системы в действие; функционирование - использование системы. Технологии моделирования систем. SADT технология Этапы распространения SADT • • • • • • • В 1969 г Дуглас Т. Росс в исходной работе "Методология структурного анализа и проектирования" (SADT) разработал методологию и язык описания систем. Первое крупное приложение SADT было реализовано в 1973 г. при разработке большого аэрокосмического проекта. В 1974 г. SADT была еще улучшена и передана одной из крупнейших европейских телефонных компаний. Появление SADT на рынке произошло в 1975 г. после годичного оформления в виде продукта. К 1981 г. SADT уже использовали более чем в 50 компаниях при работе более чем над 200 проектами, охватывавшими десятки проблемных областей, в том числе телефонные сети, аэрокосмическое производство, управление и контроль, долгосрочное и стратегическое планирование, автоматизированное производство и проектирование, конфигурация компьютерных систем, обучение персонала, встроенное программное обеспечение для оборонных систем, финансы и учет материально-технических ресурсов, обработку данных. Широкий спектр областей указывает на универсальность и мощь методологии SADT. В программе интегрированной компьютеризации производства (ICAM) Министерства обороны США была признана полезность SADT, что привело к стандартизации и публикации ее части, называемой IDEF0. Такая стандартизация вкупе с растущей автоматизированной поддержкой означает, что SADT теперь более доступна и проста в использовании. Под названием IDEF0 SADT применялась тысячами специалистов в военных и промышленных организациях. Почему SADT имеет такое широкое применение? SADT является единственной методологией, легко отражающей такие системные характеристики, как управление, обратная связь и исполнители. Это объясняется тем, что SADT изначально возникла на базе проектирования систем общего вида в отличие от других структурных методов, "выросших" из проектирования программного обеспечения. Технологии моделирования систем. SADT модель Описание системы с помощью SADT называется моделью. В SADT - моделях используется специальный графический язык – набор графических примитивов (элементов), правил их использования и интерпретации (смысла графического изображения). SADT модель может быть сосредоточена либо на функциях системы, либо на ее объектах. SADT модели, ориентированные на функции, называются функциональными моделями, а ориентированные на объекты системы - моделями данных. Технологии моделирования систем. Функциональные SADT - модели Определение SADT - модели М есть модель системы S, если М может быть использована для получения ответов на вопросы относительно S с точностью А/. Таким образом, целью модели является получение ответов на некоторую совокупность вопросов. Это означает, что сама модель должна будет дать ответы на эти вопросы с заданной степенью точности. Если модель отвечает не на все вопросы или ее ответы недостаточно точны, то считают, что модель не достигла своей цели. Первым элементом SADT модели является ее цель Вторым элементом SADT модели является "точка зрения" - позиция, с которой наблюдается система и создается ее модель. "Точку зрения" лучше всего представлять себе как место (позицию) человека или объекта, в которое надо встать, чтобы увидеть систему в действии. Третьим элементом SADT модели является система, для составляется модель. которой Определение системы формулируется на уровне «черного ящика» т.е. устанавливаются границы системы и определяются взаимосвязи системы с окружающей средой. Технологии моделирования систем. SADT модель - экспериментального механического цеха Технологии моделирования систем. SADT модель - экспериментального механического цеха Технологии моделирования систем. SADT модель - экспериментального механического цеха Технологии моделирования систем. Основные элементы диаграмм Блоки Функциональные блоки на диаграммах изображаются прямоугольниками. Блок представляет функцию или активную часть системы, поэтому названиями блоков служат глаголы или глагольные обороты. Например, названиями блоков диаграммы выполнить задание являются: определить степень выполнения задания, выбрать инструменты, подготовить рабочее место, обработать на станке и собрать. SADT требует, чтобы в диаграмме было не менее трех и не более шести блоков. Эти ограничения поддерживают сложность диаграмм и модели на уровне, доступном для чтения, понимания и использования. Менее трех блоков не позволяет выявить, что-то существенное в системе, а больше число блоков резко усложняет разработку и чтение диаграммы. В SADT каждая сторона блока имеет особое, вполне определенное назначение. Левая сторона блока предназначена для входов, верхняя - для управления, правая - для выходов, нижняя - для механизмов. Такое обозначение отражает определенные системные принципы: входы преобразуются в выходы, управление ограничивает или предписывает условия выполнения преобразований, механизмы показывают, кто, что и как выполняет функция. Например, четвертый блок диаграммы выполнить задание может быть интерпретирован следующим образом: детали, сырье и брак, обрабатываются на станке и собираются в результаты обработки с использованием оборудованного рабочего места. Технологии моделирования систем. Основные элементы диаграмм Блоки Расположение блоков SADT должно отражать степень важности выполняемой функции. В SADT этот относительный порядок называется доминированием. Доминирование понимается как влияние, которое один блок оказывает на другие блоки диаграммы. Обычно, самым доминирующим блоком диаграммы может быть либо первый из требуемой последовательности функций, либо планирующая или контролирующая функция, влияющая на все другие функции (такая, как определить степень выполнения задания). Наиболее доминирующий блок обычно размещается в верхнем левом углу диаграммы, а наименее доминирующий - в правом нижнем углу. В результате получается "ступенчатая" схема. Кроме расположения блоков доминирование отображается в нумерации блоков. Таким образом, блок с номером 1 имеет приоритет над всеми остальными блоками. Возможность отобразить доминирование в нумерации блоков, позволяет более свободно располагать блоки на диаграмме и в тех случаях, когда это необходимо нарушать ступенчатость в расположении блоков. Кроме того, номера блоков служат однозначными идентификаторами для системных функций и автоматически организуют эти функции в иерархию модели. Технологии моделирования систем. Основные элементы диаграмм Дуги • • • • • • Дуги на SADT - диаграмме изображаются одинарными линиями со стрелками на концах. Для функциональных SADT - диаграмм дуга представляет множество объектов. Под объектами в SADT понимают все то, что используется при выполнении действий. На диаграмме выполнить задание дуги представляют: материалы, написанные на бумаге (например, следующий шаг задания), физические материалы (например, сырье и заготовки), инструменты (например, набор инструментов), рабочие чертежи (например, чертежи и указания), рабочую среду (например, оборудованное рабочее место), управленческую информацию (например, статус задания). Так как в SADT дуги изображают объекты, они описываются (помечаются) существительными или существительными с определениями, располагающимися достаточно близко к линии дуги. Рекомендуется размещать описания дуг, называемые метками, как можно ближе к линиям дуг, не нарушая, однако, читабельность диаграмм. Технологии моделирования систем. Основные элементы диаграмм Дуги Дуга в SADT редко изображает один объект. Обычно она символизирует набор объектов. Например, дуга, именуемая рабочий комплект, отражает техническое задание, чертеж, план-график, некоторое сырье и заготовки. Так как дуги представляют наборы объектов, они могут иметь множество начальных точек (источников) и конечных точек (назначений). Поэтому дуги могут разветвляться и соединяться различными способами. Вся дуга или ее часть может выходить из одного или нескольких блоков и заканчиваться в одном или нескольких блоках. При этом ветви дуг показывают, из чего состоит набор объектов. Однако объединять в группы можно только логически однородные объекты, для которых можно определить обобщающее название. Для объяснения того, как дуги представляют разъединение и соединение наборов объектов, в SADT были разработаны специальные соглашения относительно представления и описания разветвлений и соединений дуг. Технологии моделирования систем. Основные элементы диаграмм Дуги • • • • Разветвления дуг, изображаемые в виде расходящихся линий, означают, что все содержимое дуг или его часть может появиться в каждом ответвлении дуги. Дуга всегда помечается до разветвления, чтобы дать название всему набору. Кроме того, каждая ветвь дуги может быть помечена или не помечена в соответствии со следующими правилами: непомеченные ветви содержат все объекты, указанные в метке дуги перед разветвлением (т.е. все объекты принадлежат этим ветвям); ветви, помеченные после точки разветвления, содержат все объекты или их часть, указанные в метке дуги перед разветвлением (т.е. каждая метка ветви уточняет, что именно содержит ветвь). Слияние дуг в SADT, изображаемое как сходящиеся вместе линии, указывает, что содержимое каждой ветви идет на формирование метки для дуги, являющейся результатом слияния исходных дуг. После слияния результирующая дуга всегда помечается для указания нового набора объектов, возникшего после объединения. Кроме того, каждая ветвь перед слиянием может помечаться или не помечаться в соответствии со следующими правилами: непомеченные ветви содержат все объекты, указанные в общей метке дуги после слияния (т.е. все объекты исходят из всех ветвей); помеченные перед слиянием ветви содержат все или некоторые объекты из перечисленных в общей метке после слияния (т.е. метка ветви ясно указывает, что содержит ветвь). Технологии моделирования систем. Основные элементы диаграмм Отношение между объектом и функцией Между объектами и функциями возможны четыре отношения: вход, управление, выход, механизм. Строгое разделение назначение сторон блока чисто графически сортируют все объекты на четыре группы. Входные дуги изображают объекты, используемые и преобразуемые функциями. Например, в процессе изготовления детали сырье трансформируется функцией обработать на станке и собрать. Управленческие дуги представляют информацию, управляющую действиями функций. Обычно управляющие дуги несут информацию, которая указывает, что должна выполнять функция. Например, следующий шаг задания определяет, какие нужно выбрать инструменты, какие потребуются станки и цеха и как инструменты и станки должны использоваться при изготовлении детали. Выходные дуги изображают объекты, в которые преобразуются входы. Например, обработать на станке и собрать преобразует сырье и брак в результаты обработки, которые в конечном итоге становятся деталями. Дуги механизмов отражают, по крайней мере частично, как функции (т.е. функции системы) реализуются. Например, подготовить рабочее место организует инструменты и станки в эффективное пространство для следующего шага задания. Это - рабочая среда, называемая оборудованным рабочим местом. Она обозначает место, где рабочий изготавливает деталь, реализуя функцию обработать на станке и собрать. Таким образом, механизмы изображают физические аспекты функции (склады, людей, организации, приборы). Технологии моделирования систем. Основные элементы диаграмм Отношение между объектом и функцией Между объектами и функциями возможны четыре отношения: вход, управление, выход, механизм. Строгое разделение назначение сторон блока чисто графически сортируют все объекты на четыре группы. Входные дуги изображают объекты, используемые и преобразуемые функциями. Например, в процессе изготовления детали сырье трансформируется функцией обработать на станке и собрать. Управленческие дуги представляют информацию, управляющую действиями функций. Обычно управляющие дуги несут информацию, которая указывает, что должна выполнять функция. Например, следующий шаг задания определяет, какие нужно выбрать инструменты, какие потребуются станки и цеха и как инструменты и станки должны использоваться при изготовлении детали. Выходные дуги изображают объекты, в которые преобразуются входы. Например, обработать на станке и собрать преобразует сырье и брак в результаты обработки, которые в конечном итоге становятся деталями. Дуги механизмов отражают, по крайней мере частично, как функции (т.е. функции системы) реализуются. Например, подготовить рабочее место организует инструменты и станки в эффективное пространство для следующего шага задания. Это - рабочая среда, называемая оборудованным рабочим местом. Она обозначает место, где рабочий изготавливает деталь, реализуя функцию обработать на станке и собрать. Таким образом, механизмы изображают физические аспекты функции (склады, людей, организации, приборы).