Место логической модели в процессе проектирования
При проектировании программного обеспечения или других инженерных систем выделяют три уровня моделей:
- концептуальные: отображают предметную область в форме взаимосвязанных объектов без указаний способов их физического хранения; на этом этапе важно выявить номенклатуру участвующих в интересующем разработчиков процессе объектов, процессов и связей; примером такой модели могут служить диаграммы Use Case семейства UML;
- логические: строятся на основе концептуальной и сосредотачивается на детальном описании объектов, их атрибутов и взаимосвязей; пример - диаграммы классов UML;
- наконец, физические модели являются материальными воплощениями логических: компьютерными программами, механическими устройствами, экономическими структурами и т.п.
Таким образом, логическая модель является непосредственной основой для реализации физической. На основе логических моделей можно проектировать базы данных, компьютерные приложения и т.п.
Рисунок 1. Пример логической модели. Автор24 — интернет-биржа студенческих работ
Элементы логической модели
Обычно логическая модель графически выражается с помощью диаграмм, состоящих из следующих элементов:
- сущности: описывают объекты предметной области, и субъекты, воздействующие на нее;
- атрибуты: свойства объектов и субъектов;
- связи: взаимоотношения между сущностями;
- свойства связей: правила и ограничения этих взаимоотношений.
Сущности на диаграммах отображаются в виде прямоугольников, разбитых на горизонтальные фрагменты. В самом верхнем из них указывается наименование сущности (субъекта, объекта). Затем перечисляются атрибуты.
Наиболее ценными элементами графически выраженных логических моделей являются отношения (связи) между сущностями. Это не просто линии, а нотации, оформляемые по определенным правилам. Одиночная линия на конце линии означает "один", ветвление - "многие". Таким образом можно изобразить отношения "один к одному", "один ко многим", "многие к многим".
Рисунок 2. Элементы линии для обозначения связей на диаграмме. Автор24 — интернет-биржа студенческих работ
Кроме того, вертикальная черта у конца линии означает "обязательно", кружок - "не обязательно". Связи всегда надписываются для того, чтобы было понятно их функциональное назначение.
Набор взаимоисключающих отношений между сущностями обозначается с помощью дуги.
Рисунок 3. Обозначение взаимоисключающих связей. Автор24 — интернет-биржа студенческих работ
В примере о заказе пиццы можно предусмотреть сущность "Позиция заказа" с атрибутом "Количество" и соотнести ее с сущностями "Клиент" и "Сорт пиццы". Клиент может заказать разные сорта пиццы, при этом может отличаться и количество заказанных единиц. Заказ оформляется как таблица, где каждая строка ("Позиция заказа") указывает приобретаемые клиентом в рамках заказа сорт пиццы и количество изделий данного сорта.
Основные требования к логической модели
Существуют критерии, в соответствии с которыми можно оценить полноценность логической модели:
- она должна содержать все значимые сущности и связи;
- все они должны быть поименованы в терминах предметной области;
- связи должны быть отмечены кратностью (например, один — многие);
- для каждой связи следует указать направление чтения;
- для каждой сущностей должны быть перечислены основные атрибуты.
Модель должна читаться следующим образом:
[Сущность 1] — [Связь] — [Сущность 2]
Возвращаясь к рассмотренному примеру, можно сказать, что сущность "Клиент" связана с сущностью "Заказ" отношением "может оформлять". При этом "Заказ" состоит из "Позиций", обладающих атрибутами "Сорт" и "Количество", при этом "Сорт" выделен в отдельную сущность с атрибутом "Название". Клиент может сделать любое количество заказов (в том числе нулевое), но заказ невозможен без указания клиента. В заказе может быть любое количество позиций (следует уточнить максимальное и минимальное значения и допустимость нулевых значений).
Существует ряд дополнительных требований к оформлению логической модели:
- сущности следует группировать по смыслу;
- следует избегать пересечения связей;
- расположение объектов на диаграмме должно способствовать удобству ее восприятия.
При создании логических моделей рекомендуется руководствоваться следующими правилами:
- необходимо определить границы моделирования, ответив на вопрос: какую часть исследуемой предметной области модель должна охватить? границы моделирования определяются исследуемыми процессами (например, продажа пиццы), либо фрагментом информационного пространства, соответствующим решаемой задаче (например, обработка электронной почты);
- разработка логической модели начинается с начала исследования предметной области и ведется на протяжении всего процесса проектирования; это итеративный, многоступенчатый процесс, в ходе которого последовательно уточняются и детализируются представления о предметной области;
- при разработке логических моделей следует сущности называть именами существительными, связи — глаголами, чтобы чтение диаграммы хотя бы приближенно соответствовало конструкциям обычного человеческого языка.