Информатика. Курс лекций. Громов Ю.Ю - 151 стр.

UptoLike

ют потоки данных; сплошные линииисточники и приемники данных; кружки указывают, где с данными производятся не-
которые действия; а жирные прямые линии отмечают места сохранения данных. В каждом случае символ помечается име-
нем представляемого объекта. Схема потоков данных для нашей простой ролевой игры представлена на рис. 6.8.
Метод разработки систем программного обеспечения, основанный на анализе потоков данных, возник в среде императивного
программирования. Изначально задача состояла в том, что, отслеживая пути данных в предлагаемой системе, можно обнаружить,
где элементы данных сливаются, разделяются или изменяются каким-либо другим образом. В таких местах системы обязательно
потребуются те или иные вычислительные действия, которые (взятые по отдельности или сгруппированные) позволят образовать
процедурные модули системы. Следовательно, изучение потоков данных поможет определить модульную структуру системы.
Хотя разработка метода анализа потоков данных происходила в рамках императивной парадигмы программирования,
он нашел широкое применение и в объектно-ориентированной среде. В частности, определение элементов данных в системе
помогает выявить необходимые объекты, а определение происходящих с данными измененийуточнить действия, которые
эти объекты должны выполнять.
Еще одним инструментом анализа и проектирования систем программного обеспечения является диаграмма "сущность
связь", на которой наглядно представляются присутствующие в системе элементы информации (сущности), а также суще-
ствующие между этими элементами отношения. В качестве примера рассмотрим часть диаграммы "сущностьсвязь" для
системы программного обеспечения, предназначенной для сбора информации о преподавателях, студентах и занятиях.
Прежде всего определим те сущности, которые должны содержаться в системе. Сущность Professor (Профессор) пред-
ставляет отдельного преподавателя университета; сущность Student (Студент) – отдельного студента и сущность Class (Заня-
тие) – раздел определенного курса. С каждым экземпляром сущности Professor связывается фамилия, адрес, идентификационный
номер, оклад и т.д., с каждым экземпляром сущности Student – фамилия, адрес, идентификационный номер, средний балл и т.д., с
каждым экземпляром сущности Class – название курса (История 101), семестр и год, аудитория, время проведения и т.д.
Определив присутствующие в создаваемой системе сущности, следует рассмотреть связи, существующие между ними.
Прежде всего, заметим, что каждый преподаватель ведет занятия, а каждый студент посещает их. Следовательно, связь меж-
ду сущностями Professor и Class можно определить как Teaches (Проводит), а между сущностями Student и Class как At-
tends (Посещает). (Обратите внимание, что сущности обозначаются существительными, а связи между нимиглаголами.)
Для отображения этих сущностей и связей составляют диаграмму "сущностьсвязь", показанную на рис. 6.9, где каж-
дая сущность представлена прямоугольником, а каждая связьромбом. Из этой диаграммы следует, что преподаватели свя-
заны с занятиями посредством связи Teaches, а студентыпосредством связи Attends.
Рис. 6.9. Пример диаграммы "сущностьсвязь"
Однако для двух существующих в данном примере связей характерна различная структура. Связь между сущностями
Professor и Class имеет тип "один ко многим", поскольку каждый преподаватель проводит несколько различных занятий,
однако каждое занятие проводится только одним преподавателем. В противоположность этому, связь между сущностями
Student и Class имеет тип "многие ко многим", так как каждый студент посещает несколько занятий и каждое занятие посе-
щают несколько студентов. Эта дополнительная информация представлена на рис. 6.9 с помощью стрелок, соединяющих
сущности и связи. В частности, одинарная стрелка, направленная в сторону сущности, указывает, что только одна сущность
данного вида входит в каждую связь этого типа, тогда как двойная стрелка означает, что в этой связи могут участвовать не-
сколько экземпляров данной сущности. Например, одинарная стрелка, направленная на рис. 6.9 в сторону сущности Pro-
fessor, означает, что каждое занятие проводит только один преподаватель, в то время как двойная, направленная в сторону
Рис. 6.8. Диаграмма потоков данных
в простой ролевой игре