
- •Программные оболочки и пакеты Лабораторные работы
- •1. Цель работы 25
- •1. Цель работы 38
- •2. Теоретическая справка 64
- •1. Цель работы 95
- •1. Цель работы 115
- •2.2. Методология idef0
- •2.2.1. Основные принципы построения моделей idef0
- •2.2.2. Работы (Activities)
- •2.2.3. Стрелки (Arrows)
- •2.2.4. Нумерация работ и диаграмм
- •2.2.5. Диаграммы дерева узлов и feo
- •2.2.6. Каркас диаграммы
- •2.2.7. Слияние и расщепление моделей
- •2.2.8. Рекомендации по составлению диаграмм
- •2.3. Методология функционально-стоимостного анализа (abc)
- •2.4. Анализ, основанный на свойствах, заданных пользователем (udp)
- •3. Порядок выполнения работы
- •4. Содержание отчета
- •5. Контрольные вопросы
- •2.2. Диаграммы потоков работ (Workflow Diagrams)
- •2.3. Создание отчетов в bPwin
- •3. Порядок выполнения работы
- •4. Содержание отчета
- •5. Контрольные вопросы
- •2.2. Интерфейс eRwin. Уровни отображения модели
- •2.3. Подмножества модели и сохраняемые отображения
- •2.4. Создание логической модели данных с помощью eRwin
- •2.5. Сущности и атрибуты
- •2.6. Связи
- •2.7. Типы сущностей и иерархия наследования
- •2.8. Ключи
- •3. Порядок выполнения работы
- •4. Содержание отчета
- •5. Контрольные вопросы
- •2.2. Внешние и внутренние метрики размера пс. Сравнение функциональных точек и количества строк исходного кода
- •2.3. Руководство по подсчёту функциональных точек
- •2.4. Пример расчета по методу функциональных точек
- •2.5. Метод функциональных точек в пакете cosmos
- •3. Порядок выполнения работы
- •4. Содержание отчета
- •5. Контрольные вопросы
- •6. Рекомендуемая литература
- •2.2. Количество строк исходного кода (sloc)
- •2.3. Типы программной разработки
- •2.4. Стоимостные факторы
- •2.5. Уравнения, используемые в модели cocomo
- •2.6. Распределение трудозатрат по фазам разработки
- •2.4. Пример расчетов с использованием модели cocomo
- •2.5. Модель cocomo в пакете cosmos
- •3. Порядок выполнения работы
- •4. Содержание отчета
- •5. Контрольные вопросы
- •6. Рекомендуемая литература
- •2.2. Основные шаги при работе с angeLplus
- •3. Порядок выполнения работы
- •4. Содержание отчета
- •5. Контрольные вопросы
- •6. Рекомендуемая литература
- •Приложение Варианты учебных информационных систем предприятий
2.7. Типы сущностей и иерархия наследования
Как было указано выше, связи определяют, является ли сущность независимой или зависимой. Различают несколько типов зависимых сущностей.
Характеристическая - зависимая дочерняя сущность, которая связана только с одной родительской и по смыслу хранит информацию о характеристиках родительской сущности, как, например, показано на рис. 3.17.
Рис. 3.17. Пример характеристической сущности "Хобби"
Ассоциативная - сущность, связанная с несколькими родительскими сущностями. Такая сущность содержит информацию о связях сущностей. Примером ассоциативной сущности является Visit на рис. 3.16.
Именующая - частный случай ассоциативной сущности, не имеющей собственных атрибутов (только атрибуты родительских сущностей, мигрировавших в качестве внешнего ключа). Примером именующей сущности является Doctor_Patient на рис. 3.15.
Категориальная - дочерняя сущность в иерархии наследования.
Иерархия наследования (или иерархия категорий) представляет собой особый тип объединения сущностей, которые разделяют общие характеристики. Например, в организации работают служащие, занятые полный рабочий день (постоянные служащие) и совместители. Из их общих свойств можно сформировать обобщенную сущность (родовой предок) Сотрудник, как показано на рис. 3.18, чтобы представить информацию, общую для всех типов служащих. Специфическая для каждого типа информация может быть расположена в категориальных сущностях (потомках) Постоянный сотрудник и Совместитель.
Обычно иерархию наследования создают, когда несколько сущностей имеют общие по смыслу атрибуты, либо когда сущности имеют общие по смыслу связи (например, если бы Постоянный сотрудник и Совместитель имели бы сходную по смыслу связь "работает в" с сущностью Организация), либо когда это диктуется бизнес-правилами.
Для каждой категории можно указать дискриминатор - атрибут родового предка, который показывает, как отличить одну категориальную сущность от другой (например, атрибут Тип на рис. 3.18).
Рис. 3.18. Иерархия наследования. Неполная категория
Иерархии категорий
делятся на два типа - полные и неполные.
В полной категории одному экземпляру
родового предка (сущность Служащий,
рис. 3.19) обязательно соответствует
экземпляр в каком-либо потомке, т.е. в
примере служащий обязательно является
либо совместителем, либо консультантом,
либо постоянным сотрудником. Если
категория еще не выстроена полностью
и в родовом предке могут существовать
экземпляры, которые не имеют соответствующих
экземпляров в потомках, то такая категория
будет неполной. На рис. 3.18 показана
неполная категория - сотрудник может
быть не только постоянным или совместителем,
но и консультантом, однако сущность
Консультант еще не внесена в иерархию
наследования. Полная категория помечается
символом
,
неполная
.
Рис. 3.19. Иерархия наследования. Полная категория
Возможна комбинация полной и неполной категорий. На рис. 3.20 помимо постоянных сотрудников и совместителей могут быть и консультанты, что не отражено в иерархии (неполная категория), но каждый постоянный сотрудник либо мужчина, либо женщина (полная категория).
Рис. 3.20. Иерархия наследования. Комбинация полной и неполной категорий
Для создания категориальной связи следует:
• установить
курсор на кнопке
в
палитре инструментов и нажать левую
кнопку мыши;
• щелкнуть сначала по родовому предку, а затем по потомку;
• для установления второй связи в иерархии категории следует сначала щелкнуть по символу категории, затем по второму потомку.
Для редактирования категорий нужно щелкнуть правой кнопкой мыши по символу категории и выбрать в контекстном меню пункт Subtype Relationship Editor. В диалоге Subtype Relationship, показанном на рис. 3.21, можно указать атрибут - дискриминатор категории (список Discriminator Attribute Choice) и тип категории - полная/неполная (радиокнопки Complete/Incomplete).
Рис. 3.21. Диалог Subtype Relationship
Рассмотрим возможные стадии построения иерархии наследования.
Предположим, в процессе проектирования созданы сущности Постоянный сотрудник и Совместитель, как показано на рис. 3.22. Можно заметить, что часть атрибутов у этих сущностей (Фамилия, Имя, Отчество, Дата рождения, Должность) имеет одинаковый смысл. В случае обнаружения совпадающих по смыслу атрибутов следует создать новую сущность (Сотрудник) - родовой предок и перенести в нее общие атрибуты (Фамилия, Имя, Отчество, Дата рождения. Должность). Создается категориальная связь от новой сущности - родового предка к старым сущностям - потомкам. Новая сущность дополняется атрибутом-дискриминатором категории (Тип) (см. рис. 3.18).
Рис. 3.22. Сущности с общими по смыслу атрибутами
Далее проводится дополнительный поиск сущностей, имеющих общие по смыслу атрибуты с родовым предком. В примере это сущность Консультант, как показано на рис. 3.23. Общие атрибуты также переносятся в сущность - родовой предок и категория преобразуется в полную (признак полной категории устанавливается в диалоге Subtype Relationship). Сущность Консультант не имеет атрибута Должность, поэтому в родовом предке значение этого атрибута в случае консультанта будет NULL. В зависимости от бизнес-правил атрибут Должность может быть перенесен обратно из родового предка в сущности - потомки Постоянный сотрудник и Совместитель.
Рис. 3.23. Дополнительная сущность с общими по смыслу атрибутами
При необходимости создание иерархии категорий можно продолжить. Для каждого потомка может найтись сущность с общими атрибутами, тогда сущность - потомок становится родовым предком для новых потомков, и т.д.