Знакомство с методом построения функциональной модели системы IDEF0 (http://studysphere.ru/work.php?id=2809) Введение С появлением сложных систем, как производств, так и программных комплексов, появилась необходимость в создании методов и стандартов, которые позволили бы описать сложные системы целиком и максимально точно, с нужной степенью детализации. То есть позволили бы создать модель системы, с которой можно было бы работать – проектировать, анализировать и улучшать. В настоящее время таких средств много. Одним из таких средств является методология IDEF (ICAM definition). Методология IDEF состоит из нескольких методов, основными из которых являются: IDEF0 - используется для создания функциональной модели, отображающей структуру и функции системы, а так же потоки информации и материальных объектов, связывающие эти функции; IDEF1 - применяется для построения информационной модели, отображающей структуру и содержание информационных потоков, необходимых для поддержки функций системы; IDEF1X - относится к типу методов “Сущность-взаимосвязь” (ER – Entity- Relationship) и, как правило, используется для моделирования реляционных баз данных, имеющих отношение к рассматриваемой системе; IDEF2 - позволяет построить динамическую модель меняющихся во времени поведения функций, информации и ресурсов. К настоящему времени наибольшее распространение имеют методы IDEF0, IDEF1 (IDEF1X). История IDEF 60-е года ХХ века – появление методологии структурного анализа и проектирования SADT (Structural Analysis and Design Technique ) – автор Дуглас Т. Росс. 70-е года ХХ века - разработана программа интегрированной компьютеризации производства ICAM (Integrated computer aided manufacturing). В рамках этой программы на базе SADT была разработана методология моделирования IDEF (Icam definition). 1993 год – IDEF0, IDEF1 приняты в качестве стандарта в США. 2001 год – IDEF0 принята в качестве стандарта в России. Описание метода IDEF0 Основным рабочим элементом при создании модели IDEF0 является диаграмма. Каждая диаграмма содержит функциональные блоки и интерфейсные дуги (см. рис1). Блоки (прямоугольники) обозначают функции системы. Названия блоков – это глаголы или глагольные обороты. Например: сделать деталь, обработать заказ, выписать квитанцию. Каждая сторона блока имеет свое значение (см. рис. 1): левая - вход; правая - выход; верхняя - управление; нижняя - механизм. Рис. 1. Функциональный блок Блоки размещаются на диаграмме по степени важности, как это видит автор диаграммы и исходя из того, как один блок оказывает влияние на другие блоки. Это называется доминированием. Наиболее доминирующий блок располагается в левом верхнем углу, наименее в правом нижнем. Блоки нумеруются начиная с 1, в правом нижнем углу. Номер блока так же как расположение может указывать на степень важности функции. Дуги (стрелки) устанавливают связи и взаимодействия между блоками и обозначают объекты. Названия дуг – существительные. Например: деньги, инструкция, детали, продукт, станки. Интерфейсная дуга отображает элемент системы, который обрабатывается функциональным блоком или оказывает иное влияние на функцию, отображенную данным функциональным блоком. Любой блок должен иметь хотя бы одну управляющую интерфейсную дугу и одну исходящую. То есть каждый процесс должен происходить по каким-то правилам и должен выдавать результат, иначе нет необходимости его рассматривать. Диаграммы в IDEF0 строятся по принципу декомпозиции. Первая диаграмма, которая называется контекстной (на чертеже обозначается A-0) содержит всего один функциональный блок, который представляет систему как единое целое. Контекстная диаграмма обязательно содержит цель и точку зрения. Цель – это список вопросов, на которые должна отвечать разрабатываемая система, то есть краткое описание системы, точка зрения – это контекст, в котором рассматривается система. Все последующие диаграммы будут более детально описывать систему, раскрывая подфункции функциональных блоков верхних уровней. Таким образом степень детализации будет увеличиваться с каждым новым уровнем. Верхние блоки будут называться родительскими блоками. Диаграммы, которым они принадлежат родительскими диаграммами, диаграммы нижнего уровня будут называться дочерними, по отношению к функциональным блокам, которые они детализируют. Принцип декомпозиции в IDEF0 модели показан на рисунке 2. Рис. 2. Принцип декомпозиции при построении IDEF0 модели Каждый блок имеет свой уникальный порядковый номер на диаграмме (цифра в правом нижнем углу прямоугольника), а обозначение под правым углом указывает на номер дочерней для этого блока диаграммы. Отсутствие этого обозначения говорит о том, что декомпозиции для данного блока не существует. Некоторые интерфейсные дуги имеет смысл показывать только на конкретной диаграмме, тогда используется понятие туннелирования. Стрелка, помещенная в туннель там, где она присоединяется к блоку означает, что эти данные не обязательны на дочерних диаграммах. Стрелка помещенная в туннель на свободном конце, означает, что эти данные отсутствуют на родительской диаграмме (см. рис. 3). Рис.3. Туннелирование Для дополнения графического языка в IDEF0 существует глоссарий. Для каждого из элементов IDEF0: диаграмм, функциональных блоков, интерфейсных дуг записываются наборы определений , ключевых слов, которые характеризуют объект, отображенный данным элементом. Пример построения IDEF0 модели Рассмотрим построение IDEF0 модели информационной системы для сети магазинов по продажам сумок и составим примерное описание предметной области. Пример описания предметной области. Компания занимается продажами сумок. Сотрудники компании: директор, закупщик, продавцы. Директор анализирует модные тенденции, продажи в магазинах и определяет ассортимент для будущей закупки. Выдает рекомендации закупщику. Закупщик определяет максимально выгодного поставщика и оформляет заказ на поставку. Сумки закупаются у разных поставщиков. Закупщик следит за исполнением заказа. После исполнения заказа директор распределяет сумки по магазинам. Магазинов несколько. Продавцы ежедневно отчитываются директору о проданных моделях, высказывают свои пожелания по будущим заказам и наблюдения о спросе. Директор раз в неделю корректирует цены на товар, в зависимости от спроса. Раз в месяц по итогам продаж происходит поощрение лучших продавцов. Необходимо разработать информационную систему для этой компании. Разрабатываемая система должна автоматизировать и сделать эффективными процессы: определения рейтинга поставщика, выявления самых продаваемых моделей, распределения товара по магазинам, а так же определения самых старательных продавцов. Для директора должны формироваться следующие отчеты: Отчет по продажам; Отчет по поставщикам; Отчет продавцам; Отчет по распределению товара по магазинам. Отчет по продажам для директора должен в наглядной форме показывать какие модели самые продаваемые. Каким-то образом формировать рейтинг моделей. Например, так: количество проданных сумок в день – по моделям; количество проданных сумок за неделю – по моделям. Так же можно предложить формировать рейтинг типов моделей, т.е. определять сколько продается моделей в день – схожих по цвету, по форме, или по каким-то другим признакам. Отчет по поставщикам показывает список поставщиков и их рейтинги, с возможностью изменить рейтинг вручную и добавить какое-то особое примечание. Рейтинг поставщика может определяться следующим образом: по умолчанию 1; за каждую проведенную сделку +1; за срыв сделки -2; за просроченную -1; за продаваемость товара +1; директор может повысить или понизить рейтинг. Отчет по продавцам – показывает количество проданных сумок в месяц и тоже самое в денежном эквиваленте. Отчет по распределению товара по магазинам – показывает сумки какого типа есть в каждом и в каком количестве. Так же можно посмотреть и по конкретным моделям. Для закупщика необходимо сформировать отчеты: по поставщикам; общий список товаров, с возможностью заносить информацию о поступившем товаре. Для продавцов: список товаров по магазину, с возможностью заносить информацию о проданном товаре; возможность посмотреть на какую сумму сделаны продажи этим продавцом на текущую дату. Построение IDEF0 модели. Шаг 1. Построение модели начинается с определения границ системы, цели и точки зрения модели. Необходимо определить границы системы для модели "Информационная система для сети магазинов по продажам сумок". Для этого: Составляется список всех объектов, которые имеют отношение к системе. Составляется список всех функций, имеющих отношение к системе. Список объектов: характеристики сумок информация о магазинах информация о поставщиках информация о заказах информация о сотрудниках рейтинг поставщика рейтинг модели рейтинг продавца премии цены спрос Список функций: Записать заказ сумок Проследить выполнение заказа сумок Распределить сумки по магазинам Записать информацию о продаже сумок Выявить самые продаваемые модели Узнать рейтинг поставщиков Узнать рейтинг продавцов Определить размер премии по результатам продаж Корректировать цены Подсчитать прибыль Шаг 2. Теперь определяем цель и точку зрения системы. То есть нужно сформулировать цель модели "Информационная система для сети магазинов по продажам сумок" и определить, с чьей точки зрения будет описана работа этой системы. Для этого: Составляется список вопросов, на которые должна отвечать модель. Это приводит к пониманию того, как будет использоваться модель. С помощью этого набора вопросов определяется, как будет использоваться модель и формулируется в одном предложении. Это станет целью модели. Далее выбирается с чьей позиции будет рассматриваться система. Составляется список кандидатов, и выбирается тот, кто может ответить на максимальное количество вопросов. Его точка зрения станет точкой зрения модели. Список вопросов: Как увеличить прибыль фирмы? 2. Как выбрать нужный товар для заказов? 3. Как выбрать надежного поставщика? 4. Как правильно распределить товар по магазинам? 5. Как поощрять персонал? 6. Как увеличить продажи? Цель: Создать модель информационной системы для сети магазинов по продажам сумок для повышения эффективности работы, благодаря правильному выбору поставщиков, определению товара повышенного спроса, поощрению сотрудников, равномерному распределению товара по магазинам. Точка зрения: директор компании продавцы отдел закупок клиент независимый консультант друг Точка зрения: директор компании Рис. 4. Контекстная диаграмма IDEF0 модели Шаг 4. Построение диаграммы А0 Рис. 5. Диаграмма второго уровня детализации (А0). Задание Изучить стандарт IDEF0. В соответствии с предложенным вариантом задания продумать и определить основные направления деятельности организации (на ваш взгляд). Оформить описание предметной области. Описать необходимость разработки информационной системы. Проанализировать предметную область, определить цель и точку зрения построения модели информационной системы для выбранной организации. Построить IDEF0 модель информационной системы (2-3 уровня детализации). Ответить на контрольные вопросы. Оформить отчет (Титульный лист, задание, описание предметной области, IDEF0 диаграмма информационной системы). Варианты задания Мастерская по ремонту бытовой техники Библиотека Отдел технической поддержки. Прокат фильмов Учет успеваемости студентов Фирма по сборке и продаже компьютеров Учет автотранспорта Учет животных Отдел наград Отдел обращений граждан Рекламное агентство Автоперевозки Склад Аренда жилья Кадровое агентство Туристическое агентство Медицинский центр Кондитерская фабрика. Отдел закупок. Мебельная фабрика. Склад и отдел сбыта Учет памятников архитектуры Автомастерская Фирма по продаже автозапчастей Контроль за исполнением поручений Центр бытового обслуживания Фитнесс центр Учет книг в книжном магазине Ателье Контрольные вопросы Что такое система? Что такое модель системы? Какие методы описания систем вы знаете? Какая модель строится при помощи метода IDEF0? Какие основные элементы на диаграммах IDEF0? Какие могут быть входы и выходы функциональных блоков на IDEF0 диаграммах? Чем определяется уровень детализации на диаграммах IDEF0? Чем отличается контекстная диаграмма от диаграмм нижних уровней? Что такое цель создания модели и точка зрения? Для чего на IDEF0 диаграмме используется туннелирование? Литература ГОСТ Р 50.1.028-2001 Информационные технологии поддержки жизненного цикла продукции. Методология функционального моделирования. РД IDEF0 – 2000. Методология функционального моделирования IDEF0. Руководящий документ. INTEGRATION DEFINITION FOR FUNCTION MODELING (IDEF0) . Draft Federal Information Processing Standards Publication 183, 1993 December 21. Федотова, Д.Э. CASE-технологии: Практикум/ Д.Э. Федотова, Ю.Д. Семенов, К.Н. Чижик. - М.: Горячая линия – Телеком, 2005. - 160 с.: ил. Дэвид А. Марка, Клемент МакГоуэн. Методология структурного анализа и проектирования SADT (Structured Analysis & Design Technique), предисловие Дугласа Т. Росса 1999. - www.interface.ru/fset.asp?Url=/case/sadt0.htm. Верников Геннадий. Обзор стандарта IDEF0. - http://www.idefinfo.ru/content/view/12/48.