Концептуальное моделирование предметной области.
План:
- модель «сущность-связь» Питера Чена
- диаграмма классов уровня анализа UML.
Модель «Сущность-связь».
Её называют ERD-моделью. Эта модель базируется на 3 понятиях: сущность, атрибут, связь. Сущность – реальный или абстрактный объект, информация о котором должна сохраняться и быть доступной. Это бизнес-понятие и бизнес-событие предметной области. Необходимо различать тип и экземпляр сущности. Тип сущности относится к набору однородных объектов, а экземпляр – к конкретному. Например, тип – студент, экземпляр – Иванов. Моделирование БД ведется на уровне типов. Сущности обозначаются прямоугольниками. Атрибут – любая деталь, которая служит для уточнения, идентификации, классификации, числовой характеристики или выражения состояния сущности. Атрибуты используются для определения того, какая информация о сущности должна быть собрана в системе. Один или несколько атрибутов обязательно однозначно идентифицируют экземпляр сущности. Это ключ. Все экземпляры сущности должны различаться. Атрибуты обозначаются кружочками. Связь – графически изображенная ассоциация, установленная между двумя сущностями. Изображается ромбом. Существует 4 типа связи:
- Один к одному (1:1). Одному экземпляру первой сущности соответствует один или ноль экземпляров другой сущности.
- Один ко многим (1:М). Одному экземпляру первой сущности соответствует ноль, один или несколько экземпляров второй сущности.
- Многие к одному (М:1). Ноль, один или несколько экземпляров первой сущности соответствует одному экземпляру второй сущности.
- Многие ко многим (М:N). Ноль, один или несколько экземпляров одной сущности связаны с нулем, одним или несколькими экземплярами второй сущности.
Приведем пример ER-модели в нотации Питера Чена.
Обычно при разработке концептуальной модели изучается отчетность конкретной организации, структура, существующие информационные системы, законодательная база. В результате выявляются основные бизнес-понятия и бизнес-события предметной области.
Модель Питера Чена слабо формализована. В настоящее время применяются более развитые нотации, которые положены в основу CASE-средств автоматизированного проектирования ПО. CASE-средства – графический редактор, поддерживающий одну или несколько нотаций информационного моделирования, поддерживает целостность и на выходе получает программный код, соответствующий модели на выбранном ЯПВУ.
Диаграммы классов уровня анализа языка UML.
В январе 1997 года три теоретика объектно-ориентированного моделирования Г. Буч, Джим Рамбо, Айвар Якобсон объединились в компании Rational Software и разработали нотации языка объектно-ориентированного моделирования UML.
Процесс разработки ПО включает 4 стадии:
- анализ требований к автоматизированной системе.
- объектно-ориентированный анализ предметной области.
- ОО проектирование системы.
- реализация.
Подо все эти стадии существуют соответствующие диаграммы, а сам язык UML предназначен для визуального моделирования, проектирования и документирования программных систем. Разработка концептуальной модели предметной области выполняется в рамках 2 этапов: анализ требований и ОО анализ предметной области. Анализ требований визуализируется посредством 2 диаграмм: Use Case Diagram (диаграмма вариантов использования (ВИ) системы), Activity Diagram (диаграмма деятельности). Первая диаграмма отражает варианты использования системы и взаимодействующие с ними актеры, то есть отражает предназначение системы, а вторая отображает логику каждого ВИ. Процесс разработки АИС начинается с анализа требований, результатом которого является Use Case диаграмма. Она состоит из актеров – это роль объекта вне системы, напрямую взаимодействующей с ней (менеджер, работник склада), ВИ – это последовательность выполняемых системой действий, которая приводит к видимому, значимому для актера результату. Актер и ВИ связываются посредством связей: ассоциация (прямая линия), расширение – включение добавочного поведения в ВИ (штрихпунктирная линия), включение – включение добавочного обязательного поведения в ВИ, обобщение – отношение между общим и специфичным. Правила: не моделировать связи между актерами; не соединять связью два ВИ, кроме случаев связи включения и расширения; порядок выполнения ВИ не отражается в диаграмме; каждый ВИ должен быть инициирован актером; БД – это слой под диаграммой и потоки информации не отражаются на диаграмме; каждый актер может взаимодействовать с определенным набором ВИ.
Рассмотрим для примера фрагмент диаграммы ВИ тестовой информационной системы «склад деталей».
На этапе анализа требований для каждого ВИ разрабатывается диаграмма деятельности – блок-схема ВИ, которая показывает логику (алгоритм) использования.
Отдельно разрабатывается концептуальная модель предметной области, и этот процесс начинается с выявления основных концептуальных объектов, которые встречаются в системе (основные бизнес-понятия и бизнес-события в системе). Необходимо стремиться, чтобы эти объекты лежали в основе системы и удовлетворяли посредством своего атрибутивного набора описанным ВИ создаваемой системы. Концептуальная модель – это декомпозиция предметной области. Требования к системе сменяются быстрее, чем реальный мир, и задача проектировщика АИС – удовлетворить потребности заказчика на основе концептов предметной области. Основной составляющей ОО анализа в UML является разработка диаграммы классов, которая определяет типы объектов системы и различного рода связи между ними.
В UML существует 3 различные диаграммы классов:
- концептуальная модель предметной области (модель анализа)
- модель спецификации классов (модель проектирования)
- модель реализации.
Концептуальная модель – это модель анализа.
Класс – это совокупность объектов с общими атрибутами, операциями, отношениями и семантиками. Изображается в виде прямоугольника, разделенного на 3 части: имя класса, атрибуты, методы.
Отношение определяет ассоциации между классами: зависимость – это семантическое отношение между двум сущностями, при котором изменение одной влечет изменение другой (штрихпунктирная линия со стрелкой), ассоциация – структурное отношение, описывающее совокупность связей (прямая, на которой показывается степень связи (сколько экземпляров связано), обязательность (для всех экземпляров она должна быть), имя связи)). Варианты степеней: n – много, 0..0, 0..1, 0..n, 1..1, 1..n. Разновидностью ассоциации является агрегирование – отношение «часть-целое». Около целого рисуется ромб, а у частей прямые. Если ромб закрашен, то поддерживается каскадное удаление (удаление целого влечет удаление всех частей). Обобщение – отношение «подтип-супертип» (стрелка). Реализация – связь между интерфейсами и реализующими классами (штрихпунктирная линия со стрелкой).
Рассмотрим концептуальную модель «склад деталей».
|
|
|
Примечание:
- деталь сделана из конкретного материала. Эта идея использования справочника материалов. Связь М:1
- может не быть деталей, сделанных из какого-то материала (0..n)
- деталь лежит на конкретном складе, много деталей связаны с конкретным складом, склад может быть пуст. Склад – справочник для детали. Справочник всегда связан отношением «многие к одному»
- во время поставки поставляется одна деталь конкретным поставщиком, но во время поставки обязательно должны быть и поставщик и деталь
- поставщик находится в одном конкретном городе. Город – это справочник для поставщиков, могут быть города, где нет поставщиков.
- накапливается историчность регистрационных сведений поставщика, у него может меняться адрес, название и др. Атрибуты юридического лица: название, юридический адрес, ИНН, ОГРН, организационно-правовая форма, ФИО руководителя, телефон
- за 1 отпуск можно поставить (отпустить) несколько видов деталей. Строка отпуска – часть целого отпуска. Должна быть хотя бы 1 запись строки
- клиент может быть юридическим лицом или частным предпринимателем (ИП). Рационально поддерживать 2 отдельных справочника со своим реквизитом. Клиент – супер-тип двух подтипов: юридическое лицо и ИП. Во время отпуска связь поддерживается с 1 клиентом, при этом поставляется несколько видом деталей.
Принцип создания концептуальной модели:
- Составить список понятий на основе анализа требований и отобразить выбранные классы на концептуальной модели.
- Добавить необходимые ассоциации между классами, учтя при этом экземплярность связей.
- Добавить в классы атрибуты, необходимые для выполнения требований заказчика.
- Можно выделить следующие категории классов:
o Типы актеров (люди, организации).
o Актеры (роли, участники).
o Физические объекты (реальные вещи).
o Дескриптивные вещи (спецификации описания).
o Транзакции (события, процессы).
o Элементы транзакций (строка заказов, поставки).
o Места, контейнеры (магазин, склад).
В настоящее время есть готовые шаблоны концептуальных моделей предметных областей.
Таким образом, склад деталей базируется на 3 понятиях: деталь, поставщик и клиент. Введен ряд справочников в целях нормализации некоторых атрибутов: материал, город, склад. В нашей модели 2 основных бизнес-события: поставка и отпуск деталей. Это связь «многие ко многим» между деталью и поставщиком или деталью и клиентом. Кроме того, принято решение, что отпуск может включать несколько деталей, то есть расширяться. Для этого вводится строка отпуска. Клиент является супертипом для подтипов юридическое лицо и ИП, которые реализуются отдельными справочниками.