Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1vendrov_a_m_proektirovanie_programmnogo_obespecheniya_ekonom

.pdf
Скачиваний:
114
Добавлен:
14.05.2016
Размер:
14.05 Mб
Скачать

Методические аспекты проектирования ПО

151

ведет к неадекватности модели реальной предметной области. В качестве примера достаточно рассмотреть модель операции по снятию денег с вклада физического лица в банке. В настоящий момент существуют более тридцати типов таких вкладов. Для мо­ делирования соответствующих операций целесообразно исполь­ зовать единственную DFD, поскольку все без исключения опера­ ции имеют одни и те же входы (сберегательная книжка и расход­ ный ордер) и выходы (сберегательная книжка и наличные день­ ги) и различаются лишь механизмами начисления процентов. Ес­ ли же попытаться структурировать эти операции путем группи­ рования по какому-либо признаку (срочные, пенсионные, разме­ ры процентов и т.п.) в соответствии с ограничениями SADT, то получится как минимум 6 диаграмм (верхний уровень и округ­ ленная в большую сторону дробь 30/7), сложность каждой из ко­ торых не меньше сложности единственной диаграммы, модели­ рующей все операции.

Согласованность с другими средствами структурного анализа.

Главным достоинством любых моделей является возможность их интеграции с моделями других типов. В данном случае речь идет о согласованности функциональных моделей со средствами мо­ делирования данных. Согласование SADT-модели с ERM прак­ тически невозможно или носит искусственный характер. В свою очередь, DFD и ERM взаимно дополняют друг друга и являются согласованными, поскольку в DFD присутствует описание структур данных, непосредственно используемое для построения ERM.

Интеграция с другими процессами ЖЦ ПО. Важная характе­ ристика модели — ее совместимость с моделями, используемыми в последующих процессах (прежде всего в процессе проектирова­ ния).

DFD могут быть легко преобразованы в модели проектируе­ мой системы. Известен ряд алгоритмов автоматического преоб­ разования иерархии DFD в структурные карты различных видов, что обеспечивает логичный и безболезненный переход от форми­ рования требований к проектированию системы. С другой сторо­ ны, формальные методы преобразования SADT-диаграмм в про­ ектные решения отсутствуют.

Необходимо отметить, что рассмотренные разновидности средств структурного анализа примерно одинаковы с учетом воз­ можностей изобразительных средств моделирования. При этом

152

Глава 2

одним из основных критериев выбора того или иного метода яв­ ляется степень владения им со стороны консультанта или анали­ тика, грамотность выражения своих мыслей на языке моделиро­ вания. В противном случае в моделях, построенных с использо­ ванием любого метода, будет невозможно разобраться.

2.3.6. МОДЕЛИРОВАНИЕ ДАННЫХ

Основные понятия модели «сущность связь»

Цель моделирования данных состоит в обеспечении разра­ ботчика системы концептуальной схемой базы данных в форме одной модели или нескольких локальных моделей, которые от­ носительно легко могут быть отображены в любую систему баз данных.

Наиболее распространенным средством моделирования дан­ ных (предметной области) является модель «сущность-связь» (ERM). Она была впервые введена Питером Ченом в 1976 г Базо­ выми понятиями ERM являются сущность, связь и атрибут.

Сущность (Entity) — реальный либо воображаемый объекту ющий существенное значение длярассматриваемой предметно ласти.

Каждая сущность должна иметь наименование, выраженное существительным в единственном числе. Примерами сущностей могут быть такие классы объектов, как «Поставщик», «Сотруд­ ник», «Заказ». Каждая сущность в модели изображается в виде прямоугольника с наименованием (рис. 2.23).

Рис. 2.23. Графическое представление сущности

Основной (неформальный) способ идентификации сущнос­ тей ~ это поиск абстракций, описывающих физические или ма­ териальные объекты, процессы и события, роли людей, органи­ зации и другие понятия. Единственным формальным способом

Методические аспекты проектирования ПО

153

идентификации сущностей является анализ текстовых описаний предметной области, выделение из описаний имен существи­ тельных и выбор их в качестве «кандидатов» на роль абстракций.

Экземпляр сущности — это конкретный представитель данной сущности. Например, экземпляром сущности «Сотрудник» мо­ жет быть «Сотрудник Иванов».

Экземпляры сущностей должны быть различимы, т.е. сущнос­ ти должны иметь некоторые свойства, уникальные для каждого экземпляра этой сущности. Каждый экземпляр сущности должен однозначно идентифицироваться и отличаться от всех других эк­ земпляров данного типа сущности. Каждая сущность должна об­ ладать некоторыми свойствами:

иметь уникальное имя; к одному и тому же имени должна всегда применяться одна и та же интерпретация; одна и та же интерпретация не может применяться к различным име­ нам, если только они не являются псевдонимами;

обладать одним или несколькими атрибутами, которые ли­ бо принадлежат сущности, либо наследуются через связь;

обладать одним или несколькими атрибутами, которые од­ нозначно идентифицируют каждый экземпляр сущности.

Атрибут (Attribute) — любая характеристика сущности, зн мая для рассматриваемой предметной области и предназначе для квалификации, идентификации, классификации, количес ной характеристики или выражения состояния сущности.

Атрибут представляет тип характеристик или свойств, ассоци­ ированных с множеством реальных или абстрактных объектов (людей, мест, событий, состояний, идей, предметов и т.д.). Экзем­ пляр атрибута - это определенная характеристика отдельного элемента множества. Экземпляр атрибута определяется типом характеристики и ее значением, называемым значением атрибу­ та. В ERM атрибуты ассоциируются с конкретными сущностями. Таким образом, экземпляр сущности должен обладать един­ ственным определенным значением для ассоциированного атри­ бута.

Наименование атрибута должно быть выражено существи­ тельным в единственном числе (возможно, с характеризующими прилагательными).

Примерами атрибутов сущности «Сотрудник» могут быть та­ кие атрибуты, как «Табельный номер», «Фамилия», «Имя», «От­ чество», «Должность», «Зарплата» и т.п.

154

Глава 2

Атрибуты изображаются в пределах прямоугольника, опреде­ ляющего сущность (рис. 2.24).

Сотрудник

Табельный номер Фамилия Имя Отчество Должность Зарплата

Рис. 2.24. Сущность с атрибутами

Виды атрибутов:

простой состоит из одного элемента данных;

составной — состоит из нескольких элементов данных;

однозначный — содержит одно значение для одной сущнос­ ти;

многозначный — содержит несколько значений для одной сущности;

необязательный — может иметь пустое (неопределенное) значение;

производный представляет значение, производное от зна­ чения связанного с ним атрибута.

Уникальным идентификатором называется неизбыточный

бор атрибутов, значения которых в совокупности являются уни­ кальными для каждого экземпляра сущности. Неизбыточность заключается в том, что удаление любого атрибута из уникального идентификатора нарушает его уникальность.

Сущность может иметь несколько различных уникальных идентификаторов, они изображаются на диаграмме подчеркива­ нием (рис. 2.25).

Каждая сущность может обладать любым количеством связей

с другими сущностями модели. Связь (Relationship) — поименован

ная ассоциация между двумя сущностями, значимая для рассм риваемой предметной области. Связь — это ассоциация межд сущностями, при которой каждый экземпляр одной сущности ассоциирован с произвольным (в том числе нулевым) количест­ вом экземпляров второй сущности, и наоборот.

Методические аспекты проектирования ПО

1 55

Сотрудник

Табельный номер Фамилия Имя Отчество Должность Зарплата

Рис. 2.25. Сущность с уникальным идентификатором

Степенью связи называется количество сущностей, участвую­ щих в связи. Связь степени 2 называется бинарной, степени N— N- арной. Связь, в которой одна и та же сущность участвует в разных ролях, называется рекурсивной, или унарной. Один из возможных вариантов графического изображения связи показан на рис. 2.26.

Сотрудник

Отдел

 

Табельный_номер

Номер_отдела

ФИО

 

Рис. 2.26. Обозначение сущностей и связи

Пары чисел на диаграмме отражают две важные характерис­ тики связи - мощность связи (второе число) и класс принадлеж­ ности (первое число).

Мощностью связи называется максимальное число экземпля­ ров сущности, которое может быть связано с одним экземпляром данной сущности. Мощность связи может быть равна 1, N (любое число) и может быть конкретным числом. Мощности связи на рис. 2.26 означают: каждый сотрудник может работать не более чем в одном отделе, а в каждом отделе может работать любое чис­ ло сотрудников.

Класс принадлежности характеризует обязательность участия экземпляра сущности в связи. Класс принадлежности может принимать значение О {необязательное участие — экземпляр од­ ной сущности может быть связан с одним или несколькими эк-

156

Глава 2

земплярами другой сущности, а может быть и не связан ни с од­ ним экземпляром) или 1 {обязательное участие - экземпляр од­ ной сущности должен быть связан не менее чем с одним экземп ром другой сущности). Классы принадлежности на рис. 2.26 оз­ начают: каждый сотрудник обязательно работает в каком-либо отделе, а в некоторых отделах может и не быть сотрудников.

Связь может иметь один из следующих трех типов (в зависи­ мости от значения мощности):

1. ОдиН'К'Одному (обозначается 1:1), показана на рис. 2.27.

Сотрудник

0,1

Руководит

1,1

Отдел

 

 

 

 

 

 

 

Табельный номер

Номер_отдела

ФИО

 

Рис. 2.27. Связь типа 1:1

2.Один-кО'Многим (обозначается 1:п), показана на рис. 2.26.

3.Многие-кО'Многим (обозначается m:n), показана на рис.

2.28.

Сотрудник

1,N y ^ e o T a e T j T X ^^^

Отдел

 

 

 

Табельный номер

N. Ставка

У

Номер_отдела

ФИО

 

Рис. 2.28. Связь типа m:n

Виды идентификаторов

Существуют следующие виды идентификаторов:

первичный/альтернативный: сущность может иметь нес­ колько идентификаторов (рис. 2.29). Один должен являться основным (первичным), а другие - альтернативными. Пер­ вичный идентификатор на диаграмме подчеркивается. Аль­ тернативные идентификаторы предваряются символами <1> для первого альтернативного идентификатора, <2> для второго и т.д. В концептуальном моделировании данных

Методические аспекты проектирования ПО

157

различие первичных и альтернативных идентификаторов обычно не используется. В реляционной модели, получен­ ной из концептуальной модели данных, первичные ключи используются в качестве внешних ключей. Альтернативные идентификаторы не копируются в качестве внешних клю­ чей в другие таблицы;

простой/составной: идентификатор, состоящий из одного атрибута, является простым, из нескольких атрибутов — сос­ тавным (см. рис. 2.29);

абсолютный/относительный: если все атрибуты, составляю­ щие идентификатор, принадлежат сущности, то идентифи­ катор является абсолютным. Если один или более атрибутов идентификатора принадлежат другой сущности, то иденти­ фикатор является относительным. Когда первичный иден­ тификатор является относительным, сущность определяет­ ся как зависимая сущность, поскольку ее идентификатор за­ висит от другой сущности, в примере на рис. 2.30 иденти­ фикатор сущности «Строка-заказа» является относитель­ ным. Он включает идентификатор сущности «Заказ», что показано на рисунке подчеркиванием 1.1.

Сотрудник

Составной

 

Табельный номер

альтернативный

<1>Фамилия

идентификатор

<1>Дата рождения-'

 

Имя

 

Адрес

 

Рис. 2.29. Составной альтернативный идентификатор

Заказ

Строка_заказа

1,N

и. Номер строки

Номер заказа

Дата заказа

Номер продукта

Общая сумма KD

Описание продукта

Количество продукта

Рис. 2.30. Относительный идентификатор

158

Глава 2

Связи с атрибутами

Как и сущности, связи могут иметь атрибуты. В примере на рис. 2.31 для того, чтобы найти оценку студента, нужно знать не только идентификатор студента, но и номер курса. Оценка не является атрибутом студента или атрибутом курса; она явля­ ется атрибутом обеих этих сущностей. Это атрибут связи меж^ ду студентом и курсом, которая в примере называется «Регист­ рация».

1 Студент

 

 

Курс

Идентификатор

0,N ' Регистрация

O.N

Номер курса

студента

 

Описание

Имя студента

 

 

курса

Адрес

\^^ Оценка ^/

Телефон

 

Рис. 2.31. Связь с атрибутами

Связь между сущностями в концептуальной модели данных является типом, который представляет множество экземпляров связи между экземплярами сущностей. Для того чтобы иденти­ фицировать определенный экземпляр сущности, используется идентификатор сущности. Точно так же для определения экземп­ ляров связи между сущностями требуется идентификатор связи. Так, в примере на рис. 2.31 идентификатором связи «Регистра­ ция» является идентификатор студента и номер курса, поскольку вместе они определяют конкретный экземпляр связи студентов и курсов.

Связи «супертип-подтип»

В связи «супертип-подтип» (рис. 2.32) общие атрибуты типа определяются в сущности-супертипе, сущность-подтип наследу­ ет все атрибуты супертипа. Экземпляр подтипа существует толь­ ко при условии существования определенного экземпляра супер­ типа. Подтип не может иметь идентификатора (он импортирует его из супертипа).

Методические аспекты проектирования ПО

159

Учредитель

Реестровый номер

Юридическое лицо

Физическое лицо

Код организационно-

Номер паспорта

правовой формы

Серия паспорта

Код вида деятельности

 

Наименование

 

Адрес

 

Рис. 2.32. Связь «супертип-подтип»

Пример нотации модели «сущность-связь» — метод IDEF1X

Метод IDEF1X, входящий в семейство стандартов IDEF, использует разновидность модели «сущность-связь» и реализо­ ван в ряде распространенных CASE-средств (в частности, ERwin).

Сущность в методе IDEF1X является независимой от иденти­ фикаторов, или просто независимой, если каждый экземпляр сущности может быть однозначно идентифицирован без опреде­ ления его отношений с другими сущностями. Сущность называ­ ется зависимой от идентификаторов, или просто зависимой, ес однозначная идентификация экземпляра сущности зависит от его отношения к другой сущности (рис. 2.33).

Каждой сущности присваивается уникальное имя и номер, разделяемые косой чертой «/» и помещаемые над блоком.

Связь может дополнительно определяться с помощью указа­ ния мощности (количества экземпляров сущности-потомка, ко­ торое может существовать для каждого экземпляра сущности-ро­ дителя). В IDEF1X могут быть выражены следующие мощности связей:

160

Глава 2

Имя сущности/Номер

Служащий/44

сущности

Имя сущности/Номер

Проектное задание/56

сущности

Рис. 2.33. Независимые (а) и зависимые (б) от идентификатора сущности

каждый экземпляр сущности-родителя может иметь нуль, один или более одного связанного с ним экземпляра сущ­ ности-потомка;

каждый экземпляр сущности-родителя должен иметь не ме­ нее одного связанного с ним экземпляра сущности-потомка;

каждый экземпляр сущности-родителя должен иметь не бо­ лее одного связанного с ним экземпляра сущности-потомка;

каждый экземпляр сущности-родителя связан с некоторым

фиксированным числом экземпляров сущности-потомка. Если экземпляр сущности-потомка однозначно определяет­

ся своей связью с сущностью-родителем, то связь называется идентифицирующей, в противном случае — неидентифицирующей.

Связь изображается линией, проводимой между сущностьюродителем и сущностью-потомком с точкой на конце линии у сущности-потомка (рис. 2.34). Мощность связи может прини­ мать следующие значения: N — нуль, один или более, Z — нуль или один, Р — один или более. По умолчанию мощность связи принимается равной Л^.

Идентифицирующая связь между сущностью-родителем и сущностью-потомком изображается сплошной линией (рис. 2.35). Сущность-потомок в идентифицирующей связи является зависимой от идентификатора сущностью. Сущность-родитель в идентифицирующей связи может быть как независимой, так и за-