Файл: Учебник Рекомендовано Федеральным государственным учреждением.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 08.11.2023

Просмотров: 668

Скачиваний: 13

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Если система содержит большое число внешних сущностей (бо­
лее 10), имеет распределенную природу или включает уже суще­
ствующие подсистемы, то строят иерархии контекстных диа­
грамм. В процессе детализации соблюдают правило балансиров­
ки — при детализации подсистемы могут использоваться ком­
поненты только тех подсистем, с которыми у анализируемой подсистемы существует информационная связь (т. е. с которыми она связана потоками данных). На недетализируемые процессы составляют спецификации, которые должны содержать текстовое описание функций данного процесса.
Приведем пример построения диаграммы потоков данных ав­
томатизированной информационной системы (АИС) «Склад оптовой торговли». АИС «Склад оптовой торговли» предназначе­
на для получения данных о движении и наличии товаров, приоб­
ретенных для оптовой продажи.
Построение иерархии диаграмм потоков данных начнем с кон­
текстной диаграммы, т.е. определим, как разрабатываемая систе­
ма будет взаимодействовать с приемниками и источниками ин­
формации (рис. 4.5).
Первичные документы по приходу товаров (приходные доку­
менты) фиксируются в журнале поступления товаров. Оформление и учет реализации товаров зависят от способа расчета за приоб­
ретаемые товары между покупателем и продавцом. Менеджер склада ведет журнал учета закупок и отпуска товаров. Данные первичных документов сохраняются в соответствующих накопи­
телях.
Внешними сущностями для разрабатываемой системы явля­
ются поставщики, покупатели, менеджер склада, отдел учета и контроля, отдел приема и оформления заказов. Сведения о них сохраняются в соответствующих таблицах (справочниках). По­
ставщик передает товар на склад. Документы на поставку товара
(накладные, счета-фактуры) вводят в базу данных. Покупатель подает заказ на приобретение товаров. В отделе приема и оформ­
ления заказов проверяется каждая строка поступившего заказа.
При отсутствии на складе какой-либо позиции оформляется за­
явка поставщику, т.е. инициируется поставка необходимого товара. На основании заказа заполняются документы на реали­
зацию товара, которые сохраняются в базе данных, распечаты­
ваются и выдаются покупателю. В конце каждого дня все при­
ходные документы передаются бухгалтеру. На основании сведе­
ний о приходе и реализации товара менеджеры склада и ра­
ботники отдела учета формируют отчеты по оборотам и остаткам товара на складе.
Диаграмма потоков данных АИС «Склад оптовой торговли» представлена на рис. 4.6.
103


П
р
и
хо
дн
ы
е
д
о
к
у
м
ен
т
ы
Рис. 4.6. Диаграмма потоков данных АИС «Склад оптовой торговли»
104

105

4.2.4. Диаграмма «сущность-связь»
Цель любой информационной системы — обработка данных об объектах реального мира в какой-либо предметной области.
Создавая базу данных для информационной системы, пользова­
тель стремится упорядочить информацию по различным призна­
кам, для того чтобы по необходимости извлекать нужную сово­
купность данных, получать выборку с желаемым сочетанием признаков. Сделать это возможно, только если данные структури­
рованы, т.е. отвечают соглашениям о способах представления данных.
Диаграмма «сущность-связь» (ER-модель данных, ER — Entity-
Relationship) обеспечивает стандартный способ определения дан­
ных и отношений между ними в информационной системе. Она включает сущности и взаимосвязи, отражающие основные бизнес- правила предметной области. Диаграммы «сущность-связь» в отличие от функциональных диаграмм определяют спецификации структур данных. Первый вариант модели «сущность-связь» был предложен Питером Ченом. В дальнейшем многими авторами были разработаны свои варианты подобных моделей. Все вари­
анты диаграмм «сущность-связь» исходят из одной идеи — графи­
ческое изображение нагляднее текстового описания. Все такие диаграммы используют графическое изображение сущностей предметной области, их свойств (атрибутов) и взаимосвязей между сущностями.
С у щ н о с т ь — это класс однотипных объектов, информация о которых имеет существенное значение для рассматриваемой предметной области. Сущность представляет собой множество экземпляров реальных или абстрактных объектов (людей, собы­
тий, состояний, предметов и т.п.).
Каждая сущность должна иметь уникальное имя, обладать од­
ним или несколькими атрибутами, которые либо принадлежат сущности, либо наследуются через связь, обладать одним или не­
сколькими атрибутами, которые однозначно идентифицируют каждый экземпляр сущности.
Имя сущности должно отражать тип или класс объекта (сту­
дент), а экземпляр сущности — это конкретный представитель данной сущности (Иванов).
На диаграмме в нотации Баркера, наиболее распространенной, сущность изображается прямоугольником, иногда с закругленны­
ми углами (рис. 4.7, а).
А т р и б у т — любая характеристика сущности, значимая для рассматриваемой предметной области и предназначенная для квалификации, идентификации, классификации, количественной характеристики или выражения состояния сущности (рис. 4.7, б).
106


f '
....... N
(
N
Имя
сущности
S
\
Имя
сущности
Имя
сущности
Атрибут 1
Атрибут 2
Атрибут 3
v
J
#Атрибут 1
* Атрибут 2
оАтрибут 3
с
^
а
б
в
Рис. 4.7. Обозначения сущности в нотации Баркера:
а —
без атрибутов;
б —
с указанием атрибутов;
в
— с уточнением атрибутов и
их типов: # — ключевой; * — обязательный; о — необязательный
Атрибут, таким образом, представляет собой некоторый тип ха­
рактеристик или свойств, ассоциированных с множеством реаль­
ных или абстрактных объектов. Экземпляр атрибута — опреде­
ленная характеристика конкретного экземпляра сущности, зна­
чение атрибута (например, «цвет» — это атрибут, а «зеленый» — экземпляр атрибута).
Атрибуты делятся на ключевые, т. е. входящие в состав уникаль­
ного идентификатора, который называют первичным ключом, и описательные — прочие. Первичный ключ — это атрибут или со­
вокупность атрибутов и/или связей, предназначенная для уни­
кальной идентификации каждого экземпляра сущности (совокуп­
ность признаков, позволяющих идентифицировать объект). Клю­
чевые атрибуты помещают в начало списка и помечают символом
«#» (рис. 4.7, в). Описательные атрибуты могут быть обязательны­
ми или необязательными. Обязательные атрибуты для каждой сущности всегда имеют конкретное значение, необязательные — могут быть не определены. Обязательные и необязательные описа­
тельные атрибуты помечают символами «*» и «о» соответственно.
С в я з ь — это отношение одной сущности к другой или к самой себе. Если любой экземпляр одной сущности связан хотя бы с одним экземпляром другой сущности, то связь является обя­
зательной (рис. 4.8, а). Необязательная связь представляет собой условное отношение между сущностями (рис. 4.8, б).
а
б
Рис. 4.8. Модальность связи:
а —
обязательная;
б
— необязательная (пунктир до середины линии)
107

Сущность 2
Сущность 1
Сущность 1
Сущность 2
Сущность 1
v— ^
/
/
\
Г

Сущность 2
а
б
в
Рис. 4.9. Обозначение отношений в нотации Баркера:
а
— «один-к-одному»;
б
— «один-ко-многим»;
в
— «многие-ко-многим»
Связь может иметь разную модальность с разных концов. Каж­
дая связь может быть прочитана как слева направо, так и справа налево.
Каждая сущность может обладать любым количеством связей с другими сущностями модели. Различают три типа отношений:
— 1*1 — «один-к-одному»;
— 1*п — «один-ко-многим»;
п*т — «многие-ко-многим» (рис. 4.9).
Связь типа «один-к-одному» означает, что один экземпляр первой сущности связан только с одним экземпляром второй сущ­
ности. Такая связь, скорее всего, свидетельствует о том, что была неверно разделена одна сущность на две (хотя иногда к такому типу связи прибегают в случае, если есть необходимость «засекре­
тить» часть данных). Связь типа «один-ко-многим» означает, что каждый экземпляр первой сущности связан с несколькими экзем­
плярами второй сущности. Связь типа «многие-ко-многим» озна­
чает, что каждый экземпляр первой сущности может быть связан с несколькими экземплярами второй сущности и наоборот. Такой тип связи является временным типом связи, допустимым на ран­
них этапах разработки модели. В дальнейшем такую связь необ-
Рис. 4.10. Обозначение ассоциированной сущности в нотации Баркера


Рис. 4.11. Обозначение идентификации посредством другой сущности в
нотации Баркера
ходимо заменить двумя связями типа «один-ко-многим» путем выделения еще одной дополнительной сущности.
Независимая сущность представляет независимые данные, которые всегда присутствуют в системе. Они могут быть как свя­
заны с другими сущностями, так и не связаны.
Зависимая сущность представляет данные, зависящие от других сущностей системы, поэтому она всегда должна быть связана с другими сущностями.
Ассоциированная сущность представляет данные, которые ассоциируются с отношениями между двумя и более сущностями.
Обычно данный вид сущностей появляется в модели для разре­
шения отношения «многие-ко-многим» (рис. 4.10).
Если экземпляр сущности полностью идентифицируется свои­
ми ключевыми атрибутами, то говорят о полной идентификации сущности. В противном случае идентификация сущности осущест­
вляется с использованием атрибутов связанной сущности, что указывается черточкой на линии связи (рис. 4.11).
Рассмотрим структуру базы данных для АИС «Склад оптовой торговли». Основными сущностями для решения указанной за­
дачи являются: «поставщик», «покупатель», «товар».
Сразу возникает очевидная связь между сущностями — «поку­
патели могут приобретать много товаров», «товары могут приоб­
ретаться многими покупателями». Отношение между ними отно­
сится к типу «многие-ко-многим» (рис. 4.12). Для разрешения этого отношения введем две ассоциированные сущности «Приходная накладная» и «Расходная накладная», которые отражают приоб­
ретение/продажу товара покупателем/поставщиком (рис. 4.13).
Проанализируем атрибуты сущностей. Каждый поставщик и покупатель является юридическим лицом и имеет наименование, адрес, банковские реквизиты. Каждый товар имеет наименование, цену, характеризуется единицей измерения. Каждая накладная имеет уникальный номер, дату выписи, список товаров с количе-
Рис. 4.12. Первый вариант ER-диаграммы
109

Товар
. Ж
Приходная
накладная
" V
Поставщик
<
Расходная
накладная
Покупатель
Рис. 4.13. Промежуточный вариант ER-диаграммы
ствами и ценами, а также общую сумму накладной. Покупатели покупают товары, получая при этом расходные накладные, в кото­
рые внесены данные о количестве и цене приобретенного товара.
Каждый покупатель может получить несколько накладных. Каждую накладную необходимо выписывать на одного покупателя. Каждая накладная должна содержать не менее одного товара (не может быть
«пустой» накладной). Каждый товар, в свою очередь, может быть продан нескольким покупателям по нескольким накладным. Ана-
Рис. 4.14. Окончательный вариант ER-диаграммы
110

логичную цепь рассуждений можно выстроить для определения связей между сущностями «Товар» и «Поставщик». Покупатель может быть одновременно и поставщиком, поэтому эти две сущ­
ности объединены в одну сущность «Контрагент». Теперь можно все это внести в диаграмму. Таким образом, после уточнения диа­
грамма будет выглядеть следующим образом (рис. 4.14).
Данная диаграмма должна быть проверена с точки зрения воз­
можности получения всех выходных данных, показанных на диа­
грамме потоков данных разрабатываемой системы.
4.3. Объектно-ориентированный подход
в моделировании систем
4.3.1. Сущность объектно-ориентированного
подхода
Принципиальное различие между структурным и объектно- ориентированным подходами заключается в способе декомпози­
ции системы. Объектно-ориентированный подход использует объектную декомпозицию, при этом структура системы описыва­
ется в терминах объектов и связей между ними, а поведение си­
стемы — в терминах обмена сообщениями между объектами. Каж­
дый объект системы обладает своим собственным поведением, моделирующим поведение объекта реального мира.
Концептуальной основой объектно-ориентированного похода является объектная модель. Основными ее элементами являются абстрагирование, инкапсуляция, модульность, иерархия.
Абстрагирование (абстракция) — предписывает включать в модель только те аспекты проектируемой системы, которые име­
ют непосредственное отношение к выполнению системой своих функций или своего целевого назначения. При этом все второ­
степенные детали опускаются, чтобы чрезмерно не усложнять процесс анализа и исследования полученной модели (так же, как, например, при проектировании жилого дома не следует отвле­
каться на подбор обоев для оклеивания его внутренних стен).
Инкапсуляция подразумевает скрытие элементов объекта, опре­
деляющих его устройство и поведение. Правило инкапсуляции — для обеспечения надежности нежелателен прямой доступ к полям объекта, чтение и обновление их содержимого должно произво­
диться посредством вызова соответствующих методов. Абстракция и инкапсуляция — взаимодополняющие понятия: абстракция вы­
деляет внешнее поведение объекта, а инкапсуляция содержит и
111