Методика информационного моделирования в среде Design/IDEF
Исходные данные для упражнения
Постройте информационную модель, описывающую часть предметной области машиностроительного предприятия.
В процессе обследования были выделены следующие понятия предметной области:
· Сборочная единица
· Деталь
· Чертеж детали
· Сборочный чертеж
· Спецификация
· Техпроцесс
· Технологическое разрешение
· Маршрутная карта
· Операционная карта
С понятием «сборочная единица» связаны следующие свойства:
· Обозначение сборочной единицы
· Наименование
С понятием «Деталь» связаны свойства:
· Обозначение
· Наименование
· Зона
· Позиция
· Количество
С понятием «Чертеж детали» связаны свойства:
· Обозначение
· Наименование
· Масса детали
· Литера
· Количество листов
· Формат
С понятием «Сборочный чертеж» связаны свойства:
· Обозначение
· Наименование
· Литера
· Количество листов
· Формат
С понятием «Спецификация» связаны свойства:
· Обозначение
С понятием «Технологическое разрешение» связаны свойства:
· Обозначение
· Наименование
· Расцеховка
· Номер участка
· Подразделение
· Подпись технолога цеха
· Дата подписи технологом цеха
· Подпись главного технолога
· Дата подписи главным технологом
С понятием «Маршрутная карта» связаны свойства:
· Обозначение
· Наименование
С понятием «Операционная карта» связаны свойства:
· Обозначение
· Номер операции
С понятием «Техпроцесс» связаны свойства:
· Обозначение
· Наименование
· Статус техпроцесса
· Стадия техпроцесса
· Литера
Сборочная единица может содержать детали и сборочные единицы. Деталь имеет чертеж.
Сборочная единица имеет сборочный чертеж и спецификацию. Деталь, сборочная единица и сборочный чертеж указываются в спецификации. На сборочном чертеже изображаются деталь и сборочная единица.
Деталь имеет техпроцесс изготовления. Техпроцесс имеет технологическое разрешение, маршрутную карту и операционную карту. Техпроцесс может быть временным или постоянным. Когда техпроцесс находиться в состоянии «временный», он имеет срок действия (атрибут).
Постройте сущности и наполните их атрибутами. Постройте связи. Обоснуйте применение конкретных типов связей. Продумайте и обоснуйте применение миграции атрибутов. Примените кластер категорий.
Методика информационного моделирования в среде Design/IDEF
Основы IDEF1X
Правила моделирования данных
Многие принципы IDEF1X встроены в Design/IDEF в виде правил, поэтому достаточно трудно по незнанию нарушать принципы моделирования IDEF1X. Например, Design/IDEF:
- Проверяет, чтобы каждое имя сущности и атрибута было уникальным в рамках модели. Если вы попытаетесь использовать уже имеющееся в модели имя сущности или атрибута, Design/IDEF попросит вас выбрать другое имя.
- Не допускает создания идентифицирующего отношения между сущностями, если сущность-родитель не содержит атрибутов первичного ключа. (В этом случае разрешено создавать не идентифицирующее или не определенное отношение). Если позднее вы захотите добавить к сущности-родителю первичный ключ, Design/IDEF позволит вам изменить отношение на идентифицирующее.
Начало создания модели
Открытие приложения Design/IDEF
Ваш первый шаг – открытие приложения и выбор типа ориентации диаграммы модели.
1. Запустите приложение Design/IDEF.
2. Выберите в меню File | New.
Появится следующее окно диалога:
3. Выберите из списка Methodology методологию IDEF1X.
4. В списке Startup Master Page Selection выберите None.
5. Нажмите ОК.
Присвоение имени и сохранение модели
Хотя модель ещё не содержит никаких данных, хорошо бы сейчас ей присвоить имя.
1. Выберите в меню File | Save As.
Появится окно диалога Save As (Сохранить как).
2. Введите имя файла (По умолчанию тип файла .idd).
3. Нажмите Save.
Советы перед началом работы
Если при выполнении упражнений вы сделали ошибку, вы можете использовать:
- Команды в строке меню Edit | Undo и Edit | Redo, которые помнят пять предыдущих действий. (Вы можете увеличить число отменяемых или возвращаемых действий. Обратитесь за дополнительной информацией к Help).
- Команду File | Close, которая выводит на экран сообщение, чтобы убедиться, что вы не хотите сохранить внесенные изменения.
Информация для разработки примера модели
В качестве примера мы будем моделировать данные вымышленной компании Perfect Software (PS), которая производит и продаёт программное обеспечение. Эта компания нуждается в модели, описывающей данные, используемые в процессе продажи. Из бесед с персоналом PS вы узнали, что при каждой сделке купли-продажи используется информация:
- о заказчике, который приобретает продукт (продукты),
- о заказе, сделанном заказчиком,
- о продукте (продуктах), входящем в этот заказ.
Подробная информация об этих сущностях будет представлена далее.
Выбор ориентации диаграммы модели
Эти шаги направлены на то, чтобы сориентировать диаграмму модели горизонтально.
1. Выберите в меню File | Print Setup.
2. В разделе Orientation (Ориентация) поставьте флажок напротив Landscape(Альбомная).
3. Нажмите ОК.
Создание сущностей
Обзор
Этот параграф описывает по шагам процесс создания сущности модели. Затем мы создадим сущности Заказчик, Заказ, Продукт из нашего примера.
Для добавления информации о каждой сущности вы используете окно диалога Create Entity (Создать сущность). После сохранения этой информации, вы можете вернуться к ней, открыв соответствующую статью глоссария.
Создание сущности и её атрибутов
В этом параграфе вы будете создавать сущность и её атрибуты.
1. Выберите в меню Create | Entityили выберите в панели инструментов IDEF1X значок .
Произойдёт следующее:
· Курсор превратиться в указатель сущности:
· Вы окажетесь в режиме создания сущностей и будете оставаться в нём, пока не выйдете из него или не выберете другую команду.
2. Щёлкните в левой верхней части окна, чтобы поместить там сущность.
Появится окно диалога Define Entity
Вы можете ввести имя сущности. Вы должны заполнить поле Aliases (Псевдонимы) (если у сущности существуют псевдонимы) и поле Definition(Определение).
3. Заполните поля диалога.
4. Нажмите кнопку Add.
Появится окно Define Attribute.
Вкладка Attributes содержит следующие кнопки:
- Кнопка Add… (Добавить) позволяет вам добавить атрибут не закрывая окна.
- Кнопка ОК отправляет сведения о сущности и её атрибутах на хранение и закрывает окно диалога.
- Кнопка Cancel служит для закрывания окна диалога без сохранения любых внесенных вами изменений.
Окно Define Attribute содержит несколько полей для характеристик атрибутов.
- Поле Name (Имя) должно быть заполнено.
- Всегда проверяйте правильность выбора типа атрибута.
- Хотя это и необязательно, следует всё-таки вводить любые физические характеристики атрибута, которые вам известны.
Совет: Вы можете начинать каждое имя атрибута с части или с целого имени сущности. Это поможет вам идентифицировать сущность, которая владеет этим атрибутом и предотвратить возможные конфликты с другими сущностями и атрибутами, создаваемыми позднее.
- Поля Alternate Key(Альтернативный ключ) и Inversion Entry(Перестановка) служат для определения соответствующих характеристик ключа.
Заполнение полей атрибута
Заполним поля атрибута информацией.
1. Заполните поля в окне Define Attribute всех известных характеристик: Name, Definition, Type, Data Type, Length, Precision, Primary Key, Discriminator, Alternate Keys и Inversion Entries.
2. Нажмите Add(Добавить), чтобы ввести сведения об атрибуте и перейти к следующему атрибуту.
3. Обратите внимание, что на экране пробелы в имени атрибута заменены знаком «тире» (-).
Совет: Когда вы нажимаете кнопку Add, в поле Name остаётся имя последнего атрибута. Вы можете или напечатать новое имя в выделенной строке, или щёлкнуть на имени указателем и заменить только часть имени атрибута.
4. Когда закончите вводить все атрибуты сущности нажмите Ok.
Теперь окно диалога имеет следующий вид:
1. Нажмите ОК, чтобы завершить диалог.
Наша диаграмма IDEF1X должна быть похожа на представленную на рисунке:
Рассмотрим приведенную выше последовательность действий на нашем примере.
Создадим сущность Заказчик
· Создадим сущность.
· Заполним поля диалога следующими данными:
Поле | Значение |
Name (Имя) | Заказчик |
Definition (Определение) | Тот, кто приобретает или уже приобрёл один или более продуктов компании PS |
Получаем следующее:
· Добавим атрибуты сущности
Name | Definition | Type | Data Type | Length |
имя заказчика | Имя человека, сделавшего заказ | Non-primary | CHAR | |
адрес заказчика | Адрес для доставки, сообщенный заказчиком. Должен включать улицу, город, страну и почтовый индекс или иностранный почтовый код | Non-primary (Не первичный) | CHAR (символьный) | |
телефон заказчика | Номер телефона, по которому можно связаться с заказчиком в течение дня. Должен включать код города и добавочный номер | Non-primary | CHAR |
Создадим сущность Заказ
· Создадим сущность.
· Заполним поля диалога следующими данными:
Поле | Значение |
Name (Имя) | Заказ |
Definition (Определение) | Официальный заказ одного или более продуктов компании PS |
Получаем следующее:
· Зададим атрибуты сущности
Name | 6.2.1.1 Definition | Type | Data Type | Length |
номер заказа | Уникальный номер, присвоенный полученному компанией PS заказу. Если заказ получен по телефону, то для него резервируется номер, пока не будет получено письменное подтверждение заказа. | Primary | INTEGER | (N/A) |
дата заказа | Дата получения заказа компанией PS. | Non-Primary | CHAR |
Создадим сущность Продукт
· Создадим сущность.
· Заполним поля диалога следующими данными:
Поле | Значение |
Name (Имя) | Продукт |
Definition (Определение) | Покупаемое ПО |
Получаем следующее:
· Зададим атрибуты сущности
Name | 6.2.1.2 Definition | Type | Data Type | Length | Precision |
наименование продукта | Наименование ПО, которое должно включать номер версии | Primary | CHAR | (N/A) | |
цена продукта | Розничная цена продукта | Non-Primary | NUMBER |
Диаграмма будет выглядеть так:
Создание отношений
Создание отношения между сущностями
Для создания отношения:
1. Выберите в меню Create | Relationship или значок на панели инструментов IDEF1X.
2. Курсор превратится в указатель отношения:
3. Щёлкните внутри первой сущности около правой границы и переместите курсор внутрь другой сущности:
4. Щёлкните мышкой.
Появится окно диалога Define Relationship:
В окне диалога перечислены сущности, между которыми существует отношение. Окно включает поля Relationship (Имя отношения), Inverse (Имя обратного отношения) (и переключатель, если вы хотите, чтобы оба названия появились на диаграмме на разных строчках), Definition (Определение), Relationship Type (Тип отношения) и Relationship Cardinality (Мощность отношения).
Заполните поля и кликните на кнопке «ОК»
Между сущностями появится стрелка, изображающая сущность. Рядом с ней помещена метка (название отношения).
Создадим отношения в нашем примере
Определим два отношения: одно не идентифицирующее отношение между сущностями Заказчик и Заказ и одно не определённое отношение между сущностями Заказ и Продукт.
Открытие статей глоссария для объектов IDEF1X
При создании на предыдущих шагах сущностей и отношений, вводимая вами информация становилась статьями глоссария.
В этой и следующих главах вам понадобится находить и открывать некоторые статьи глоссария для сущностей, отношений, атрибутов и т.п. Для того, чтобы найти и открыть статью глоссария, вы можете:
- Дважды щёлкнуть на объекте диаграммы.
- Выделить объект на диаграмме, затем выбрать в меню Glossary | Glossary Entry.
- Выбрать из меню Glossary | Glossary Browser, затем выбрать из списка желаемый объект. Браузер глоссария содержит список объектов модели, распределённых по категориям: сущности, атрибуты, ролевые имена и отношения.
- Перейти в Браузере на вкладку Glossary. Список содержит объекты модели, распределённые по категориям. Выделите желаемый объект на кнопку Edit….
Рассмотрим возможности редактирования модели на нашем примере.
Предположим, что мы получили дополнительные сведения от персонала компании PS и внесем на основе этой новой информации изменения в модель. Эти изменения включают в себя:
- Добавление к сущности атрибута первичного ключа.
- Разрешение не определённого отношения путём создания новой сущности.
- Добавление к сущности дискриминатора и создание сущностей-категорий.
Обзор
Design/IDEF предлагает различные инструменты для улучшения внешнего вида модели. В этой главе описаны некоторые из них. Вы будете их использовать в своей учебной модели. После того, как вы внесёте изменения в учебную модель, вы сможете улучшить внешний вид модели, созданной в предыдущих главах.
Редактирование модели
Перемещение сущностей и меток
Для того, чтобы переместить сущность или метку:
1. Щёлкните на изображении объекта, чтобы выделить её.
2. Щёлкните кнопкой мыши и перетащите объект в другое место.
Размещение сущностей в один ряд
Если вы хотите сразу же изменить два и более объектов, вы должны их выделить. Здесь мы описываем способ выделения нескольких объектов с помощью кнопки Shift. За дополнительной информацией о других методах обратитесь к функции Help Design/IDEF’а.
При выделении нескольких объектов:
- Каждый выделенный объект отмечен серым или красным цветом.
- Объекты остаются выделенными, пока вы не отмените выделение, щёлкнув вне этих объектов.
Для того, чтобы разместить сущности в один ряд:
1. Выделите сущности:
· Щёлкните один раз на изображении первой сущности, которую вы хотите выделить.
Нажмите кнопку Shift и, оставляя её нажатой, щёлкните один раз на следующих сущностях.
Не отпуская Shift щёлкните на сущности, чтобы сделать её объектом ссылки и выровнять относительно неё другие сущности.
2. Выберите из меню Modify | Alignпункт Top to Top(Вершина к вершине).
3. Щёлкните вне выделенных объектов.
Теперь сущности разместились в один ряд, но расстояния между отдельными сущностями не одинаковы. Для выравнивания расстояния используется команда Spread.
Размещение сущностей на одинаковом расстоянии друг от друга
Для того, чтобы поместить сущности на одинаковом расстоянии друг от друга:
1. Выделите сущности.
2. Выберите из меню Modify | Spread пункт Spread Horizontal.
3. Щёлкните вне выделенных объектов, чтобы отменить выделение.
Рукоятки стрелки
Вы будете использовать рукоятки стрелки при редактировании траектории стрелки. Для того, чтобы на экране появились рукоятки, вы должны выделить стрелку. Когда вы хотите изменить:
· Длину сегмента стрелки, используйте одну из рукояток, которые формируют угол сегмента.
· Место присоединения стрелки к сущности, используйте рукоятку, которая присоединена к сущности.
Редактирование отношений
Открытие статьи глоссария отношения
Вы редактируете информацию об отношении так же, как и информацию о сущностях – открывая статью глоссария. Вы можете найти и открыть статью глоссария несколькими способами:
- Выделить стрелку отношения, а затем дважды щёлкнуть на ней.
- Выделить отношение, затем выбрать в меню Glossary | Glossary Entry.
- Выбрать в меню Glossary | Glossary Browser.
Изменение типа отношения
Для того, чтобы идентифицирующее отношение сделать не идентифицирующим, и наоборот, вы можете воспользоваться одним из следующих способов:
· Выделить стрелку отношения, затем выбрать в меню Create | Toggle Relationship.
· Использовать на панели инструментов IDEF1X кнопку
· Открыть статью глоссария отношения и поставить другой флажок в разделе Type.
Изменение отношения
Измените отношение между сущностями ЗАКАЗ и ЗАКАЗ-НА-ПРОДУКТ с идентифицирующего на не идентифицирующее, используя опцию меню Create | Toggle Relationship.
Изменение типа дискриминатора
Для того, чтобы дискриминатор полного кластера категорий превратить в дискриминатор неполного кластера категорий:
1. Выделите значок дискриминатора.
2. Выберите в меню Create | Toggle Discriminator или нажмите на панели инструментов кнопку
В модели нашего примера значок дискриминатора платформа показывает, что кластер категорий сущности Заказ-на-продукт полон. Предположим, что существуют и другие поддерживаемые платформы, следовательно наш кластер категорий не является полным, поэтому:
Давайте покажем, что кластер категорий не полный.
1. Выделим значок дискриминатора платформа.
2. Выберем в меню Create | Toggle Discriminator.
Теперь значок дискриминатора содержит не две горизонтальные линии, а одну.
Определение:
Ролевое имя
Ролевое имя – это имя, присваиваемое атрибуту внешнего ключа сущности. Вы можете присваивать ролевое имя атрибуту внешнего ключа или группе атрибутов внешнего ключа для упрощения модели.
Создание ролевых имён
В этом упражнении вы будете дважды назначать ролевые имена: первый раз отдельному атрибуту, второй раз группе атрибутов.
Предположим, что при создании сущности заказ атрибут номер-заказа был-бы назван просто номер.
Такое название очевидно для сущности заказно в сущности заказ-на-продуктстановиться не совсем непонятен смысл этого внешнего ключа, а для сущностей-категорий MAC, PCиUNIXсмысл полностью теряется.
Определим ролевое имя для атрибута номер:
1. Откроем статью глоссария для сущностизаказ-на-продукт.
2. Перейдем на вкладку Define Attributes и выделим атрибут номер-заказа.
3. В поле Role Name введем “заказ”.
4. Нажмите ОК, чтобы закрыть окно диалога.
Обратите внимание, что теперь сущность заказ-на-продукт содержит новое ролевое имя атрибута, которое в сущностях-категориях заменило сам атрибут номер-заказа.
Создание ролевых имён для группы атрибутов
Теперь вы можете определить ролевое имя для группы атрибутов.
Создайте в сущности ЗАКАЗ три атрибута первичного ключа (dd, mm и yyyy). (Это не обычный пример данных, которые вы можете обнаружить в реальной модели, но это простой и доходчивый способ объяснения процедуры создания и преимуществ ролевого имени). Вместе эти три атрибута образуют дату (день, месяц и год).
Мы оставим эти атрибуты в неприкосновенности для сущности ЗАКАЗ, но упростим их для сущности ЗАКАЗ-НА-ПРОДУКТ.
Для того, чтобы определить ролевое имя:
1. Откройте статью глоссария для сущности ЗАКАЗ-НА-ПРОДУКТ.
2. Выделите атрибут dd, перейдите в диалог Define Attributes.
3. В поле Role Name введите “date” (дата) и нажмите кнопку OK .
4. Повторите шаг 3 для атрибутов mm и yyyy..
5. Нажмите ОК, чтобы закрыть окно диалога.
Обратите внимание (как показано ниже), что теперь сущность ЗАКАЗ-НА-ПРОДУКТ содержит новое ролевое имя атрибута, и это ролевое имя заменило три отдельных атрибута внешнего ключа в сущностях MAC, PC и UNIX.
[1] Первичный ключ – ключ, используемый системой для идентификации объекта.
Исходные данные для упражнения
Постройте информационную модель, описывающую часть предметной области машиностроительного предприятия.
В процессе обследования были выделены следующие понятия предметной области:
· Сборочная единица
· Деталь
· Чертеж детали
· Сборочный чертеж
· Спецификация
· Техпроцесс
· Технологическое разрешение
· Маршрутная карта
· Операционная карта
С понятием «сборочная единица» связаны следующие свойства:
· Обозначение сборочной единицы
· Наименование
С понятием «Деталь» связаны свойства:
· Обозначение
· Наименование
· Зона
· Позиция
· Количество
С понятием «Чертеж детали» связаны свойства:
· Обозначение
· Наименование
· Масса детали
· Литера
· Количество листов
· Формат
С понятием «Сборочный чертеж» связаны свойства:
· Обозначение
· Наименование
· Литера
· Количество листов
· Формат
С понятием «Спецификация» связаны свойства:
· Обозначение
С понятием «Технологическое разрешение» связаны свойства:
· Обозначение
· Наименование
· Расцеховка
· Номер участка
· Подразделение
· Подпись технолога цеха
· Дата подписи технологом цеха
· Подпись главного технолога
· Дата подписи главным технологом
С понятием «Маршрутная карта» связаны свойства:
· Обозначение
· Наименование
С понятием «Операционная карта» связаны свойства:
· Обозначение
· Номер операции
С понятием «Техпроцесс» связаны свойства:
· Обозначение
· Наименование
· Статус техпроцесса
· Стадия техпроцесса
· Литера
Сборочная единица может содержать детали и сборочные единицы. Деталь имеет чертеж.
Сборочная единица имеет сборочный чертеж и спецификацию. Деталь, сборочная единица и сборочный чертеж указываются в спецификации. На сборочном чертеже изображаются деталь и сборочная единица.
Деталь имеет техпроцесс изготовления. Техпроцесс имеет технологическое разрешение, маршрутную карту и операционную карту. Техпроцесс может быть временным или постоянным. Когда техпроцесс находиться в состоянии «временный», он имеет срок действия (атрибут).
Постройте сущности и наполните их атрибутами. Постройте связи. Обоснуйте применение конкретных типов связей. Продумайте и обоснуйте применение миграции атрибутов. Примените кластер категорий.
Методика информационного моделирования в среде Design/IDEF
Основы IDEF1X