- •Тема 6.Инструментальные средства анализа и проектирования
- •6.1. Понятие case-средства
- •6.2. Обзор рынка case-средства структурного анализа и проектирования
- •Распределение case-средств структурного анализа по видам моделируемой деятельности
- •VantageTeam Builer
- •Visible Analyst Workbench
- •6.3. Обзор рынка case-средства объектно-ориентированного анализа и проектирования
- •6.4.1. Общие сведения о среде bPwin
- •Сравнительная характеристика средств построения uml-диаграмм
- •6.4. BPwin
- •6.4.2. Диаграммы bPwin
- •6.4.3. Работы на диаграммах bPwin
- •6.4.4. Стрелки на диаграммах bPwin
- •6.4.5. Нумерация работ и диаграмм
- •6.4.6. Каркас диаграммы
- •6.4.7. Слияние и расщепление моделей
- •6.4.8. Построение диаграммы потоков данных
- •6.4.9. Построение диаграммы потоков работ
- •Типы перекрестков
- •Типы объектов ссылок
- •Диапазоны номеров работ
- •6.4.10. Создание отчетов в bPwin
- •6.5. ErWin
- •6.5.1. Основы моделирования данных
- •6.5.2. Использование метода idefix в eRwin
- •6.5.3. Общие сведения о среде eRwin
- •6.5.3.1. Уровни представления модели данных
- •6.5.3.2. Документирование модели данных
- •6.5.3.3. Масштабирование моделей данных
- •6.5.3.4. Интерфейс eRwin
- •6.5.3.5. Уровни отображения диаграмм
- •6.5.4. Создание логической модели данных
- •6.5.4.1. Уровни логической модели
- •6.5.4.2. Сущности и атрибуты
- •6.5.4.3. Связи
- •6.5.4.4. Типы сущностей и иерархия наследования
- •6.5.4.5. Ключи
- •6.5.4.6. Нормализация данных
- •6.5.4.7. Домены
- •6.5.5. Создание физической модели данных
- •6.5.5.1. Правила валидации и значения по умолчанию
- •6.5.5.2. Индексы
- •6.5.5.3. Триггеры и хранимые процедуры
- •6.5.5.4. Вычисление размера бд
- •6.5.6. Прямое и обратное проектирование
- •6.5.7. Проектирование хранилищ данных
- •6.5.8. Генерация кода клиентской части с помощью eRwin
- •6.5.8.1. Генерация кода на языке Visual Basic
- •6.5.9. Создание отчетов и словарей
- •6.6. Rational Rose
- •6.6.1. Общая характеристика Rational Rose
- •6.6.2. Пользовательский интерфейс Rational Rose
- •6.6.3. Представление диаграмм в Rational Rose
- •6.6.4. Разработка диаграмм в Rational Rose
- •6.6.4.1. Создание диаграммы в Rational Rose
- •Назначение кнопок специальной панели инструментов диаграммы деятельности
- •6.6.4.2. Добавление на диаграмму графических элементов
- •6.6.4.2. Добавление на диаграмму связей между графическими элементами
- •6.6.5. Генерация программного кода в Rational Rose
- •6.6.5.1. Подготовка модели для генерации кода
- •6.6.5.2. Проверка модели на отсутствие ошибок
- •6.6.5.3. Создание компонентов для реализации классов
- •6.6.5.4. Отображение классов на компоненты
- •6.6.5.5. Выбор языка программирования для генерации текста программного кода
- •6.6.5.6. Установка свойств генерации программного кода
- •6.6.5.7. Выбор класса, компонента или пакета
- •6.6.5.8. Работа с текстом сгенерированного кода
6.5.4.2. Сущности и атрибуты
Основные компоненты диаграммы ERwin — это сущности, атрибуты и связи. Каждая сущность является множеством подобных индивидуальных объектов, называемых экземплярами. Каждый экземпляр индивидуален и должен отличаться от всех остальных экземпляров. Атрибут выражает определенное свойство объекта. С точки зрения БД (физическая модель) сущности соответствует таблица, экземпляру сущности — строка в таблице, а атрибуту — колонка таблицы.
Построение модели данных предполагает определение сущностей и атрибутов, т. е. необходимо определить, какая информация будет храниться в конкретной сущности или атрибуте. Сущность можно определить как объект, событие или концепцию, информация о которых должна сохраняться. сущности должны иметь наименование с четким смысловым значением, именоваться существительным в единственном числе, не носить «технических» наименований и быть достаточно важными для того, чтобы их моделировать. Именование сущности в единственном числе облегчает в дальнейшем чтение модели. Фактически имя сущности дается по имени ее экземпляра. Примером может быть сущности Заказчик (но не Заказчики!) с атрибутами Номер заказчика, Фамилия заказчика и Адрес заказчика. На уровне физической модели ей может соответствовать таблица Customer с колонками Customer_number, Customer_name и Customer_address. Каждая сущность должна быть полностью определена с помощью текстового описания. Для внесения дополнительных комментариев и определений к сущности служат свойства, определенные пользователем (UDP). Использование (UDP) аналогично их использованию в BPwin.
Как было указано выше, каждый атрибут хранит информацию об определенном свойстве сущности, а каждый экземпляр сущности должен быть уникальным. Атрибут или группа атрибутов, которые идентифицируют сущность, называется первичным ключом .
Очень важно дать атрибуту правильное имя. Атрибуты должны именоваться в единственном числе и иметь четкое смысловое значение. Соблюдение этого правила позволяет частично решить проблему нормализации данных уже на этапе определения атрибутов. Например, создание в сущности Сотрудник атрибута Телефоны сотрудника противоречит требованиям нормализации, поскольку атрибут должен быть атомарным, т. е. не содержать множественных значений. Согласно синтаксису IDEFIX имя атрибута должно быть уникально в рамках модели (а не только в рамках сущности!). По умолчанию при попытке внесения уже существующего имени атрибута ERwin переименовывает его.
Каждый атрибут должен быть определен, при этом следует избегать циклических определений, например, когда термин 1 определяется через термин 2, термин 2 — через термин 3, а термин 3 в свою очередь — через термин 1. Часто приходится создавать производные атрибуты, т. е. атрибуты, значение которых можно вычислить из других атрибутов. Примером производного атрибута может служить Возраст сотрудника, который может быть вычислен из атрибута Дата рождения сотрудника. Такой атрибут может привести к конфликтам; действительно, если вовремя не обновить значение атрибута Возраст сотрудника, он может противоречить значению атрибута Дата рождения сотрудника. Производные атрибуты — ошибка нормализации, однако их вводят для повышения производительности системы, чтобы не проводить вычисления, которые на практике могут быть сложными.
