Лабораторная работа 2 Диаграмма...

17
Лабораторная работа 2 «Диаграмма классов» Цель работы: Получение практических навыков моделирования классов. Задание на выполнение 1. Изучить материал, представленный в файле «Расширенные концепции клас- сов и объектов.pdf». 2. Изучить методические указания по созданию диаграмм класс с использова- нием MS Visio. 3. Разобраться в примере модели классов. 4. Подготовить диаграмму классов, описывающую группу классов в соответ- ствии с вариантом. Добавить в классы атрибуты и операции, в соответствии с кон- текстом варианта задания. При выполнении задания можно добавлять собствен- ные классы. Варианты заданий вар. Описание 1 Календарь, событие, напоминание, контактное лицо, год, неделя, день. Учесть следующие факты: 1) календарей может быть несколько; 2) календарь состоит из дней, группированных по неделям и месяцам; 3) каждое событие связано с одним календарем, может происходить один раз в день и повторяться в другие дни; 4) события могут быть связаны с контактными лицами; 5) с каждым событием может быть связано напоминание. Напоминания могут быть по электронной почте или в виде звукового сигнала, разовые или периодичные. 2 Абонент, рабочая станция абонента, сервер оператора, тариф, сеанс свя- зи, счет. Учесть следующие факты: 1) сервер предоставляет рабочей станции абонента доступ к ресурсам оператора (интернет, хранилище данных, вычислительные мощности) во время сеанса связи; 2) каждая услуга предоставляется по собственному тарифу; 3) для каждой услуги возможно несколько тарифов; 4) с каждым абонентом связан индивидуальный счет (account), в зависи- мости от остатка средств на и предоставляется услуга (либо предостав- ляется, либо нет); 5) абонент самостоятельно пополняет свой счет; оператор может отправ- лять абонентам уведомление о необходимости пополнения счета. 3 Клиент, борт, водитель, автомобиль, диспетчер, заказ, тариф.

Upload: others

Post on 02-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Лабораторная работа 2 Диаграмма классовmastefanov.com/wp-content/uploads/2014/09/6-lb2.pdf · 2015-10-07 · Лабораторная работа

Лабораторная работа №2 «Диаграмма классов»

Цель работы: Получение практических навыков моделирования классов.

Задание на выполнение 1. Изучить материал, представленный в файле «Расширенные концепции клас-

сов и объектов.pdf». 2. Изучить методические указания по созданию диаграмм класс с использова-

нием MS Visio. 3. Разобраться в примере модели классов. 4. Подготовить диаграмму классов, описывающую группу классов в соответ-

ствии с вариантом. Добавить в классы атрибуты и операции, в соответствии с кон-текстом варианта задания. При выполнении задания можно добавлять собствен-ные классы.

Варианты заданий

№ вар. Описание

1 Календарь, событие, напоминание, контактное лицо, год, неделя, день. Учесть следующие факты: 1) календарей может быть несколько; 2) календарь состоит из дней, группированных по неделям и месяцам; 3) каждое событие связано с одним календарем, может происходить один раз в день и повторяться в другие дни; 4) события могут быть связаны с контактными лицами; 5) с каждым событием может быть связано напоминание. Напоминания могут быть по электронной почте или в виде звукового сигнала, разовые или периодичные.

2 Абонент, рабочая станция абонента, сервер оператора, тариф, сеанс свя-зи, счет. Учесть следующие факты: 1) сервер предоставляет рабочей станции абонента доступ к ресурсам оператора (интернет, хранилище данных, вычислительные мощности) во время сеанса связи; 2) каждая услуга предоставляется по собственному тарифу; 3) для каждой услуги возможно несколько тарифов; 4) с каждым абонентом связан индивидуальный счет (account), в зависи-мости от остатка средств на и предоставляется услуга (либо предостав-ляется, либо нет); 5) абонент самостоятельно пополняет свой счет; оператор может отправ-лять абонентам уведомление о необходимости пополнения счета.

3 Клиент, борт, водитель, автомобиль, диспетчер, заказ, тариф.

Page 2: Лабораторная работа 2 Диаграмма классовmastefanov.com/wp-content/uploads/2014/09/6-lb2.pdf · 2015-10-07 · Лабораторная работа

Учесть следующие факты: 1) клиент через диспетчера осуществляет заказ такси. Вызвать он может только одно такси; 2) для выполнения каждого заказа назначается борт (автомобиль с води-телем); 3) автомобили могут быть следующих типов – седан и микроавтобус; 4) тариф определяется в зависимости от типа автомобиля, клиента (пер-сональной накопительной скидки).

4 Склад, магазин, торговая точка, товар, клиент, поставщик, счет. Учесть следующие факты: 1) торговая точка и магазин реализуют товары, предоставленные по-ставщиком. Магазин – это торговая точка, с собственным складом; 2) клиенты могут быть как физическими, так и юридическими лицами; 3) поставщики – только юридические лица; 4) денежные операции с юридическими лицами осуществляются через один банковский счет;

5 Курс (предмет), лекция, лабораторное занятие, практическое занятие, за-чет, экзамен, деканат, кафедра, преподаватель, поток, группа, студент. Учесть следующие факты: 1) студенты объединены в группы, а группы в поток; 2) по каждому предмету для каждого потока может быть только один лектор, и 2 (один из них может быть сам лектор) преподавателя лабора-торных занятий; 3) по каждому предмету обязательно есть лекции, а так же в зависимости от предмета могут быть практические, лабораторные занятия, а так же зачет или экзамен; 4) у разных потоков по одному и тому же предмету могут быть разные преподаватели; 5) лектор по каждому студенту сообщает информацию в деканат о посе-щаемости занятий, промежуточном контроле, сдачах курсовых работ, сдачах экзамена или зачета; 6) преподаватели работают на определенной кафедре, к которой припи-сан предмет.

6 Налог, физическое лицо, юридическое лицо, трудовая книжка, налого-вый инспектор, ФНС, счет. Учесть следующие факты: 1) подоходный налог физических лиц (работники организаций) платит его наниматель; 2) ПБОЮЛ – предприниматели без образования юридического лица – физические лица, которые имеют свое «предприятие» (которое приносит определенный доход) и могут, при этом, работать на организации; 3) физическое лицо может быть работником организации и ПБОЮЛ од-

Page 3: Лабораторная работа 2 Диаграмма классовmastefanov.com/wp-content/uploads/2014/09/6-lb2.pdf · 2015-10-07 · Лабораторная работа

новременно, более того, может быть работником нескольких организа-ций; 4) физическое лицо может иметь только одно основное место работы (организация в которой лежит трудовая книжка), и работать по совме-стительству в нескольких организаций (в том числе и по основному ме-сту работы), но уже без предоставления трудовой книжки; 5) налог может быть подоходным (облагается физическое лицо, но сам налог платит его наниматель – юридическое лицо), на прибыль (платит юридическое лицо и ПБОЮЛ), на транспорт (платят все =))); 6) ответственным за предоставление информации и уплату налогов должностями юридических лиц, являются главный бухгалтер и дирек-тор; 7) все налоги перечисляются на счет ФНС, а дело каждого физического и юридического лица контролируется налоговым инспектором.

7 Банк, счет, клиент, кредит, вклад, ценные бумаги, валюта. Учесть следующие факты: 1) клиенты банка могут покупать и продавать ценные бумаги и валюту через банк; 2) клиенты могут открывать вклад и брать кредит у банка, при этом для каждого отдельного кредита или вклада заводится свой счет; 3) клиенты могут быть физическими и юридическими лицами.

8 Школа, детская площадка, директор, школьный совет, класс, книга, школьник, учитель, кафетерий, комната отдыха, компьютер, парта, стул, линейка, карандаш, качели. Учесть следующие факты: 1) детская площадка, класс, кафетерий, комната отдыха – это помещения и площади школы; 2) директор управляет работой школы, будучи ее работником; 3) учителя – работники школе; 4) школьники учатся в школе, занятия проходят в определенных классах, и на них школьники могут использовать книги, линейки, карандаши; 5) в классах располагаются парты, стулья, компьютеры; 6) услугами кафетерия могут воспользоваться все желающие; 7) комната отдыха только для сотрудников школы; 8) школьный совет – группа людей, состоящая из родителей школьников, влияющая на работу школы.

9 Философ, стол, вилка (задача об обедающих философах). Учесть следующее: 1) 5 философов сидят за круглым столом, на котором лежат 5 вилок; 2) каждый философ может дотянуться только до двух вилок (по одной с каждой стороны); 3) каждая вилка может быть взята только одним философом;

Page 4: Лабораторная работа 2 Диаграмма классовmastefanov.com/wp-content/uploads/2014/09/6-lb2.pdf · 2015-10-07 · Лабораторная работа

4) вилка может либо лежать на столе, либо находиться в руке у филосо-фа; 5) философ может есть только двумя вилками.

10 Замок, ров, подъемный мост, башня, лестница, подземелье, этаж, кори-дор, комната, камень, человек, приведение. Учесть следующие факты: 1) у замка может быть нескольких башен; 2) в замке несколько этажей; 3) на каждом этаже располагается несколько комнат, переход в которые осуществляется из общего коридора; 4) в замке есть подземелье; 5) владельцы замка – лорд и леди, их работники – кухарка и дворецкий; 6) приведение обитает в подземелье и очень пугает кухарку; 7) замок построен из камня;

11 Выражение, константа, переменная, функция, список аргументов, опера-тор отношения, член, арифметический оператор, оператор, компьютер-ная программа. Учесть следующие факты: 1) компьютерная программа состоит из операторов, функций, констант, переменных; 2) функция, в свою очередь, состоит из операторов, констант, перемен-ных, и имеет список аргументов; 3) операторы представляют собой выражения (которые состоят из чле-нов, связанных между собой арифметическими операторами: сложение, деление, вычитание, умножение; члены – это константы, переменные и функции, которым, в свою очередь, в качестве аргументов передаются константы и переменные), связанные между собой операторами отноше-ния; 4) операторы сложения и вычитания могут быть унарными (применяться только к одному операнду) или бинарными (применяться к двум операн-дам)

12 Файловая система, файл, ASCII-файл, двоичный файл, файл-каталог, диск, привод, дорожка, сектор, цилиндр. Учесть следующие факты: 1) привод состоит из одного или нескольких дисков, поделенных на до-рожки (концентрические кольцевые области); 2) каждая дорожка делится на секторы – равные отрезки. Все дорожки имеют одинаковое число секторов; 3) равноотстоящие от центра дорожки разных дисков образуют цилиндр; 4) файловая система – определяет порядок хранения файлов на жестком диске. То есть жесткий диск оперирует только адресами секторов, и дан-ными (нулями и единицами) содержащимися в них, а файловая система

Page 5: Лабораторная работа 2 Диаграмма классовmastefanov.com/wp-content/uploads/2014/09/6-lb2.pdf · 2015-10-07 · Лабораторная работа

организует их в файлы и каталоги; 5) файлы могут быть файлами-каталогами, ASCII-файлами, двоичными файлами; 6) файл-каталог может содержать все перечисленные виды файлов

13 Классы задачи о ханойских башнях Варианты: 1) Башня состоит из 3-х стержней. На каждом стержне надето несколько дисков в определенном порядке. 2) Башня состоит из 3-х стержней. Диски на стержнях объединены в подмножества, называемые стопками. Стопка – упорядоченное множе-ство дисков. Каждый диск принадлежит ровно одной стопке. На одном стержне может быть несколько стопок, расположенных в определенном порядке. 3) Башня состоит из 3-х стержней. Диски на стержнях объединены в подмножества, как в п.2. На одном стержне может быть несколько сто-пок. Стопка обладает рекурсивной структурой – состоит одного диска, находящегося в самом ее низу, и не более чем одной вложенной стопки (в зависимости от высоты стопки). 4) Аналогично п.3, но с тем отличием, что на стержне находится ров-но одна стопка, а все остальные – вложенные по отношению к ней. Реализовать 4-й вариант

14 Шахматная фигура, горизонталь, вертикаль, поле, доска, ход, дерево хо-дов. Учесть следующие факты: 1) шахматное поле рисуется на шахматной доске; 2) фигура располагается физически на доске, но логически связана с ячейкой поля; 3) поле разделено на горизонтали и вертикали, их пересечение определя-ет адрес ячейки; 4) фигуры могут перемещаться по полю. Они могут перемещаться как на пустую ячейку, так и на занятую, убирая замещаемую фигуру с поля; 5) дерево ходов – последовательность ходов фигур;

15 Дилер, игрок, счет, банк, ставка, колода, карта, комбинация, борд. Учесть следующее 1) дилером назначается один из игроков, он раздает по 2 «закрытые» кар-ты каждому игроку, и формирует борд (3 карты после первого раунда, +1 карта в следующем раунде и +1 карта в третьем раунде); 2) число игроков за одним столом – от 2 до 10; 3) на каждом ходу игрок может сделать ставку (в банк со своего счета) или не делать ставку, а так же отказаться от борьбы за банк; 4) карты раздаются из колоды (52 карты);

Page 6: Лабораторная работа 2 Диаграмма классовmastefanov.com/wp-content/uploads/2014/09/6-lb2.pdf · 2015-10-07 · Лабораторная работа

6) свою комбинацию игрок может составить из всех (максимум 7) до-ступных ему карт; 7) выигрывает игрок, у которого оказывается самая старшая комбинация, или ставку которого никто не уровнял.

16 Спортсмен, биатлонист, лыжник, прыгун с трамплина, министерство спорта, олимпиада, соревнование, спортивная школа, тренер. Учесть следующие факты: 1) спортсмены занимаются разными зимними видами спорта, каждый из которых имеет свои особенности, поэтому различают спортсменов – би-атлонистов, лыжников, прыгунов на лыжах с трамплина; 2) каждый спортсмен проходит обучение в спортивной школе под руко-водством своего тренера; один тренер может работать с несколькими спортсменами; 3) все спортсмены участвуют в соревнованиях; в каждом соревновании, каждый спортсмен занимает определенное место; 4) участие в олимпийских играх – мечта любого спортсмена, но не все спортсмены показывают достаточный результат, для участия в них; 5) спортивную школу финансирует министерство спорта, оно же опреде-ляет спортсменов, представляющих страну на олимпийских играх;

17 Дорога, перекресток, главная дорога, второстепенная дорога, автомо-биль, водитель, дорожный знак Учесть следующие факты: 1) водитель управляет автомобилем; 2) автомобиль под управлением водителя двигается по дорогам; 3) дороги могут быть главные и второстепенные; 4) перекрестки бывают двух типов: пересекаются равнозначные дороги и пересекаются главная и второстепенная дорога; 5) водитель, осуществляющий движение на авто по второстепенной до-роге должен пропустить автомобили, двигающиеся по главной дороге 6) при пересечении равнозначных дорог, водитель должен пропустить автомобиль справа 7) будем исходить из того, что при повороте и движении прямо правила одинаковые 8) водитель может с поворачивать с одной дороги на другую; 9) одновременно водитель может находиться либо на перекрестке, либо на дороге;

18 Планшет, смартфон, сообщение, текстовое сообщение, голосовое сооб-щение, видео-сообщение, разговор, видео-разговор, человек. Учесть следующие факты: 1) несколько человек могут общаться друг с другом на расстоянии с по-мощью планшетов и смартфонов; 2) люди могут разговаривать друг с другом передавая только звук

Page 7: Лабораторная работа 2 Диаграмма классовmastefanov.com/wp-content/uploads/2014/09/6-lb2.pdf · 2015-10-07 · Лабораторная работа

(аудио-связь), видео и звук (видео-связь) или посылать друг другу сооб-щения – голосовые, текстовые, видео. 3) в разговоре может участвовать одновременно несколько человек (кон-ференц-связь);

19 Человек, письмо, абзац, предложение, слово, буква, знак пунктуации Учесть следующие особенности русского романа: 1) дочка знатной аристократки ведет тайную переписку с поручиком Ржевским; 2) мать дочки тайно читает письма обоих, чтобы не допустить иных свя-зей с поручиком и, как следствие, позора дочери; 3) письма состоят из абзацев, которые, в свою очередь состоят из пред-ложений; 4) каждое предложение, состоит из слов и знаков пунктуации; 5) каждое слово состоит из букв (минимум одной); 6) в зависимости от интонации, предложение может заканчиваться точ-кой, восклицательным и вопросительным знаками, троеточием.

20 Человек, воображение, книга, литературное произведение, сюжет, персо-наж, образ. Учесть следующие факты: 1) у каждого человека есть воображение; 2) каждый человек в жизни читал больше одной книги; 3) книга может содержать несколько литературных произведений; 4) в каждом произведении есть определенный сюжет, участниками кото-рого являются некоторые персонажи; 5) во время прочтения литературного произведения, воображение чело-века создает образы персонажей этого произведения. 6) некоторые образы влияют на жизнь человека и сохраняются в его па-мяти человека на всю жизнь.

21 Клавиатура, мышь, компьютер, человек, операционная система, редактор диаграмм, событие, щелчок кнопкой мыши, нажатие на клавишу. Учесть следующие факты: 1) человек рисует диаграмму в редакторе диаграмм; 2) для взаимодействия с редактором он использует мышку и клавиатуру, которые подключены к компьютеру; 3) операционная система, при возникновении события (нажатия клавиши клавиатуры или щелчок кнопкой мыши) передает редактору диаграммы данные по событию, на которые он реагирует соответствующим образом (например добавляет новый класс на диаграмму);

22 Стол, стул, человек, ложка, тарелка, суп, томат, картофель, петрушка, бульон.

Page 8: Лабораторная работа 2 Диаграмма классовmastefanov.com/wp-content/uploads/2014/09/6-lb2.pdf · 2015-10-07 · Лабораторная работа

Учесть следующие факты: 1) на столе лежат тарелки и ложки; 2) человек сидит на стуле рядом со столом; 3) в тарелку налит суп, состоящий из бульона, картошки, томатов, пет-рушки; 4) человек есть суп из тарелки с помощью ложки; 5) ложка либо лежит на столе, либо находится в руке у человека;

23 Лист, буфер, выделение, соединительная линия, блок (прямоугольник), сегмент, точка. Учесть следующие факты: 1) диаграмма состоит из блоков и соединительных линий; 2) соединительная линия состоит из сегментов, который характеризуются 2-мя точками (при этом каждый 2 сегмента имеют одну общую точку); 3) набор блоков и соединительных линий относится либо к листу, либо к буферу, либо к выделению. То есть один и тот же набор не может одно-временно быть связанным, например, и с листом и с выделением, или и с выделением, и с буфером.

24 Документ, лист, рисунок, текст, геометрическая фигура, группа, эллипс, прямоугольник, отрезок. Учесть следующие факты: 1) документ состоит из листов, на которых могут располагаться рисунки, текст, геометрические фигуры; 2) к геометрическим фигурам относится эллипс, прямоугольник, отрезок; 3) текст, рисунки и геометрические фигуры могут объединяться в груп-пы; 4) один и тот же элемент документа, может принадлежать одновременно только одной группе; 5) группа может состоять минимум из двух элементов;

25 Читатель, книга, читательский билет, библиотека, журнал, газета, сбор-ник научных статей, бумажные издания. Учесть следующие факты: 1) читатель зарегистрирован в библиотеке, и имеет читательский билет (который уникален для каждой библиотеки и для каждого читателя); 2) читатель может брать бумажные издания в библиотеке – журналы, га-зеты, книги, сборники статей. 3) информация о каждом бумажном издании, которое читатель взял в библиотеке, заносится в читательский билет.

26 Слово, буква, звук, словарь, тип (существительное, глагол, прилагатель-ное, наречие), Учесть следующие факты:

Page 9: Лабораторная работа 2 Диаграмма классовmastefanov.com/wp-content/uploads/2014/09/6-lb2.pdf · 2015-10-07 · Лабораторная работа

1) в словаре описано множество слов; 2) с каждым словом связаны варианты его написания – последователь-ность букв, варианты переноса, варианты произношения – последова-тельность звуков, тип (глагол, существительное, прилагательное, наре-чие); 3) для каждого слова описано одно и более его значений (в зависимости от контекста использования); 4) значения слова записываются в порядке убывания частоты использо-вания; 5) у многих слов есть антонимы и синонимы; 6) для каждого слова приведена этимология (происхождение слова).

27 Поезд, машинист, вокзал, пассажир, проводник, вагон купе, вагон плац-карт, место, билет. Учесть следующие факты: 1) поезд состоит из вагонов (купи и/или плацкарт) 2) машинист управляет поездом, проводник – ответственен за свой вагон; 3) пассажир садится на поезде на вокзале, поезд делает на вокзале оста-новку; 4) билет дает право пассажиру на проезд в конкретном поезде, в кон-кретном вагоне, на конкретном месте;

28 Фабрика по производству рыбной продукции, порт, рыболовецкое судно, морская живность, моряк, сеть, работник фабрики, рыбные консервы, за-мороженные морепродукты, крабовые палочки. 1) в маленьком портовом городе есть фабрики по производству рыбной продукции и один порт; 2) все жители этого города работают либо моряками, либо на фабрике; 3) моряки работают на рыболовецких суднах – ловят морскую живность сетями; 4) весь улов моряки продают на фабрику; 5) на фабрике, из живности, купленной у моряков, изготавливают кон-сервы, замороженную продукцию, крабовые палочки

29 Человек, физическое тело, астральное тело, душа, грех, болезнь, карма, земля. По одной из философий, верно следующее: 1) человек состоит из трех частей: тело, разум и душа; 2) человек воплощается на земле много раз (реинкарнация); 3) в процессе реинкарнации, в каждом воплощении тело человека созда-ется заново, разум и духовное тело – развиваются; 4) в каждом воплощении человек совершает определенные поступки, идущие в разрез с гармонией вселенной (грехи). Такие поступки возмож-ны только с использованием тела и/или разума; 5) каждый такой поступок находит отражение в карме человека, которая

Page 10: Лабораторная работа 2 Диаграмма классовmastefanov.com/wp-content/uploads/2014/09/6-lb2.pdf · 2015-10-07 · Лабораторная работа

влияет на жизнь человека в текущем и последующих воплощениях – приводя в его жизнь болезни, до тех пор, пока он не осознает совершен-ные им грехи; 6) каждый поступок, созвучный гармонии вселенной, положительно вли-яет на здоровье физического тела человека (повышая тонус и уменьшая подверженность болезням).

30 Болотный житель, болото, жестянка, корабль, летающий корабль, прин-цесса, жених. Учесть следующие сюжетные особенности: 1) водяной живет на болоте; 2) жизнь водяного – жестянка; 3) друзья водяного – лягушки и пиявки; 4) водяной подсказал Ивану как заставить корабль летать; 5) летающий корабль нужен Ивану, чтобы жениться на Забаве; 6) Полкан тоже хочет жениться на забаве, и для этого он хочет убить Ивана; 7) но Забава любит Ивана, и хочет выйти замуж только за него.

Page 11: Лабораторная работа 2 Диаграмма классовmastefanov.com/wp-content/uploads/2014/09/6-lb2.pdf · 2015-10-07 · Лабораторная работа

Использование Microsoft Visio 2010 для создания диаграмм классов Если верить рекламе Microsoft, то Visio – это приложение для создания диаграмм и схем, по-

могающее визуализировать, исследовать и распространять сложные данные. В Visio сложные для понимания таблицы и текст можно преобразовать в наглядные доступные схемы. Проверим это. Запустите приложение (Пуск => Все программы => Microsoft Visio => Microsoft Visio 2010).

По умолчанию, при запуске Visio открывается диалог создания файла, если этого не произо-шло, выберите в меню «Файл» пункт «Со-здать».

Если в списке по-следних использован-ных шаблонов отсут-ствует «Схема модели UML», необходимо найти ее в категориях шаблонов. Для этого выберите категорию «Программы и базы данных», и из предла-гаемых шаблонов вы-берите «Схема модели UML» и нажмите на кнопку «Создать» (справа, под описание шаблона), или просто

щелкните по нему дважды левой кнопкой мыши. Вообще, шаблоны этой категории могут быть полезны вам в дальнейшем.

После выбора шаблона откроет-ся рабочее поле (рисунок 1). Вообще, шаблон – это, по сути, набор инстру-

ментов. Как видно на рисунке, по умолчанию, в левой части представляется инструментарий, а в правой – рабочий лист, на который методом drag and drop помещаются те или иные элементы мо-дели. Рассмотрим инструментарий подробнее.

Сверху (1) располагаются наборы инструментов для различных диаграмм. Вообще говоря в Visio определена куча элементов, но для удобства навигации – они разбиты на шаблоны (по сути- наборы элементов). В загруженном нами шаблоне «Схема модели UML» есть 9 наборов (которые соответствуют 9-ти видам моделей UML). Для создания модели классов (диаграммы классов) ис-пользуется набор «Статическая структура UML». Разумеется, если вам нужен какой-то элемент, не входящий в состав этого набора (или более обще – шаблона), его можно добавить через меню «дополнительные фигуры», находящееся на первом месте в инструментарии.

В набор «Статическая структура UML» входит ряд элементов (2). Для решения поставлен-ной задачи в данной лабораторной работе достаточно следующих элементов: - Класс - Двуместная ассоциация (она же бинарная двунаправленная) - Обобщение - Композиция - Класс ассоциации - N-арная ассоциация - Класс N-арной ассоциации - Тип данных

Page 12: Лабораторная работа 2 Диаграмма классовmastefanov.com/wp-content/uploads/2014/09/6-lb2.pdf · 2015-10-07 · Лабораторная работа

Элементы в инструментарии можно менять местами (все тем же пресловутым drag ‘n drop - ом), поместив в одну кучу наиболее часто используемые (как, например, на рисунке 1 все пере-численные ранее элементы помещены над слегка заметной разделительной линией). Рассмотрим эти элементы.

Класс

Перетаскиваем класс на рабочий лист. Visio дает ему имя класс1. Но прежде чем поменять его обратим внимание на проводник по моделям (рисунок 1 – 3-я часть инструментария). Проводник служит для быстрого доступа к элементам модели. И этот класс был помещен в «Типы данных C#», там же автома-тически создана структурная схема (с именем «Структурная схема -1», по сути – это наша диаграмма), к которой относится наш класс. Напомню, в одной модели может быть несколько диаграмм. Чтоб не запутаться, можно переименовать схему точно так же, как вы переименовываете файлы в проводнике. Пере-именовать класс можно здесь же (в проводнике по моделям), или открыв окно параметров класса,

щелкнув по нему 2 раза левой кнопкой мыши (либо в проводнике моделей, либо на рабочем ли-сте). На данном этапе обучения нас интересуют только 3 категории настроек: Класс, Атрибуты, Операции.

Категория параметров Класс (общие свой-ства класса):

1) Имя – здесь задается имя класса. 2) Полый путь – отражает местоположение

класса в проекте (модели). Можно задать место нахождения класса в виде пути (переход записы-

Рисунок 1. Наборы инструментов Visio

1 2 3

Page 13: Лабораторная работа 2 Диаграмма классовmastefanov.com/wp-content/uploads/2014/09/6-lb2.pdf · 2015-10-07 · Лабораторная работа

вается как два двоеточия) в этом поле, а можно «перетащить» его туда, куда нужно в проводнике по моделям.

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

4) Видимость – позволяет указать доступ к классу (открытый – public, закрытый – private, за-крытый в пределах иерархии наследования – protected). По умолчанию классы моделируются от-крытыми.

5) IsRoot, IsLeaf, IsAbstract, IsActive – так же указывают на особенности класса: является ли он предком (то есть является корневым классом в иерархии наследования и не является предком других классов) или потомком, стоящим на последней ступени в иерархии наследования (то есть ни один класс не может быть его наследником), или абстрактным (нельзя создать экземпляр аб-страктного класса), или активным (представляет собой поток управления).

6) Документация – информация, содержащаяся здесь, как правило, описывает назначение класса и используется при составлении документации.

Из всех этих настроек меняем только ИМЯ! Категория параметров Атрибуты. Представляет собой таблицу атрибутов класса. Чтобы до-

бавить атрибут нажимаем кнопку «Создать». Если содержимое вы-падающих списков не отобража-ется полностью, растяните окош-ко или столбец. Для любого атри-бута нужно указать имя, выбрать тип (тип выбирайте в той же кате-гории, что и класс – в нашем слу-чае «Типы данных C#»), види-мость, кратность, начальное зна-чение. Выбранный атрибут можно удалить или дублировать (с по-

мощью одноименных операциям кнопок). Кроме того, если в классе определено несколько атри-бутов, можно перемещать выбранный атрибут в списке вверх и вниз (кнопки «Вверх» и «Вниз»).

Категория параметров Операции. Представляет собой таблицу операций класса. Работа с операциями аналогична атрибу-там. Однако в этой таблице опре-делены только имя операции, тип возвращаемого значения, види-мость, область действия и являет-ся ли она полиморфной. Для того, что указать параметры операции, нужно зайти в ее свойства (выде-лить нужную операцию в таблице и нажать кнопку «Свойства»). В появившемся окне выбрать кате-горию «Параметры», и добавить параметры аналогично атрибутам в классе. Для каждого параметра операции определяется имя, тип данных, вид (in, out, in-out) и зна-чение по умолчанию.

Добавленные атрибуты и операции также видны в провод-нике по моделям – в виде дерева.

Еще одно важное замеча-ние. При удалении класса с листа, он остается в проводнике по мо-

Page 14: Лабораторная работа 2 Диаграмма классовmastefanov.com/wp-content/uploads/2014/09/6-lb2.pdf · 2015-10-07 · Лабораторная работа

делям, поэтому для окончательного удаления класса, его нужно удалить и в этом проводнике.

Двуместная ассоциация, агрегация, композиция. Допустим, мы создали два класса, как показано на рисунке. Теперь нужно их соединить со-

ответствующей ассоциацией. Для этого перетаскиваем элемент «Двуместная ассоциация» на рабо-чий лист. Благодаря особенностям Visio (этот аспект схем сделан через жопу) соединительные линии не ри-суются от одного объекта к друго-му. То есть, сначала мы переносим ассоциацию (как любой элемент) на рабочий лист, а затем ее концы вручную соединяем с классами.

Особый момент, разработчики Visio предложили механизм «приклеивания» - то есть на каждом блоке есть ряд точек, к которым можно приклеить конец соединителя (в общем случае, или ассоциации в нашем случае). Если вы воспользовались им, то при изменении положения класса, Visio самостоятельно дорисует ассоци-ацию. Однако, благодаря этому механизму – большинство соединительных линий оказываются

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

Для каждой ассоциации можно настроить:

1) имя; 2) полный путь (аналогично

классам); 3) направление чтения имен – используется при прослеживании модели и указании направле-

ния ассоциации; 4) настроить полюса (окончания ассоциаций). Для каждого полюса можно указать имя, тип

агрегации, видимость, кратность, и возможность навигации (прослеживания). - Если нужно, что у полюса не было имени – просто сотрите его. - Для указания агрегации – в столбце агрегат выберите пункт «общий». - Для создания композиции – в столбце агрегат выберите пункт «составное». - Чтобы оставить просто ассоциацию – в столбце агрегат выберите пункт «нет» (это значение

по умолчанию). - Кратность можно выбрать из списка, а можно ввести вручную после даблклика левой кноп-

кой мыши по ячейке со значением кратности. - Возможность прослеживания в данном учебном курсе нас не интересует. Имя ассоциации по умолчанию не отображается. Чтобы исправить эту ситуацию, щелкните

правой кнопкой мыши по ассоциации и в контекстном меню выберите пункт «Параметры отоб-ражения фигуры UML», и в по-явившемся окне, в общих пара-метрах поставьте галочку напротив опции «Имя». После чего жмите ОК.

N-арная ассоциация

Единственно отличие, с точки зрения свойств, N-арной ассоциации от двухместной – это от-сутствие возможности указать направление чтения имен, и, наоборот, есть возможность указать число окончаний – по умолчанию 3.

Page 15: Лабораторная работа 2 Диаграмма классовmastefanov.com/wp-content/uploads/2014/09/6-lb2.pdf · 2015-10-07 · Лабораторная работа

Обобщение С точки зрения элемента, соединяющего два класса, обобщение ничем не отличается от

двухместной ассоциации. А из параметров обобщения, на данном этапе нас может интересовать только имя.

Класс ассоциации, класс N-арной ассоциации

Единственная особенность класса ас-социации состоит в том, что он обладает параметрами, как ассоциации (параметры полюсов ассоциации), так и класса (атри-буты, операции). И то и другое мы уже рас-смотрели ранее, но по отдельности, в опи-сании ассоциации и класса.

Тип данных Для создания перечисления, нужно ис-

пользовать элемент «тип данных». Этот эле-мент похож на класс, в котором так же можно настроить операции, но вместо атрибутов зада-на категория «перечисление», которая стано-вится доступной при указании стереотипа «enumeration».

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

Так можно создать перечисле-ние fruits, содержащее различные фрукты. При желании, значения мож-но не указывать (в этом случае ячейки в столбце «литерал» оставляйте пустыми).

Page 16: Лабораторная работа 2 Диаграмма классовmastefanov.com/wp-content/uploads/2014/09/6-lb2.pdf · 2015-10-07 · Лабораторная работа

Пример модели классов

На рис. 2 показана модель классов системы управления окнами для рабочей станции. Эта модель зна-чительно упрощена (для реальной модели потребовалось бы несколько страниц), но она демонстрирует многие конструкции моделей классов и их совместное использование.

Класс Window определяет общие параметры окон всех типов, в частности прямоугольную границу, определяемую атрибутами х1, у1, х2, у2, и операции, позволяющие отображать и скрывать окно, а также помещать его на передний или на задний план в общем наборе окон.

Холстом (canvas) называется область, в которой может отображаться графика. Canvas наследует гра-ницу от класса Window и добавляет размеры области холста, которые определяются атрибутами сх1, су1, сх2, су2. Canvas содержит множество элементов, на что указывает ассоциация с классом Shape. Все фигуры характеризуются цветом и шириной линии. Фигуры могут быть линиями, эллипсами или многоугольника-ми. Каждый класс фигур обладает своими собственными параметрами. Многоугольник (Polygon) определя-ется списком его вершин. Эллипсы (Ellipse) и многоугольники являются замкнутыми фигурами, которые характеризуются цветом и шаблоном заливки. Линии (Line) являются одномерными, а потому не могут быть залиты. Холст поддерживает операции добавления и удаления элементов.

Текстовое окно TextWindow – это разновидность окна с полосами прокрутки ScrollingWindow, которое характеризуется двумя смещениями прокрутки xOffset и yOffset и поддерживает операцию scroll, изменяю-щую значения смещений. Текстовое окно содержит строку и поддерживает операции вставки и удаления

Рисунок 2. Упрощенная модель классов системы управления окнами

Window

+x1+y1+x2+y2

+display()+undisplay()+raise()+lower()

ScrollingWindow

+xOffset+yOffset

+scroll()

Canvas

+cx1+cy1+cx2+cy2

+addElement()+deleteElement()

Panel

Shape

+color+lineWidth

PanelItem

+x+y+label

Event

+action

Text Window

+string

+insert()+delete()

Scrolling Canvas Line

+x1+y1+x2+y2

+draw()

Closed Shape

+fillColor+fillPattern

Button

+string+depressed

Chois Item TextItem

+maxLength+currengntStri

ChoiseEntry

+string+value

Ellipse

+x+y+a+b

+draw()

Polygon

+draw()

0..1

1

+itemName+itemName

+notifyEvent

1

* +keyboardEvent1

*

+choices

1

*+currentChoise

0..1

1

{subset}

+window

+elements

1

*

Point

+x+y

+vertices

1* {ordered}

Page 17: Лабораторная работа 2 Диаграмма классовmastefanov.com/wp-content/uploads/2014/09/6-lb2.pdf · 2015-10-07 · Лабораторная работа

символов. Холст с прокруткой (ScrollingCanvas) – особая разновидность холста, поддерживающая прокрут-ку. Это окно одновременно является холстом и окном с прокруткой. Таким образом, оно являет собой при-мер множественного наследования.

Панель (Panel) содержит множество объектов PanelItem, каждый из которых характеризуется уни-кальным в рамках одной панели именем itemName, о чем говорит наличие квалификатора у соответствую-щей ассоциации. Каждый элемент панели может принадлежать только одной панели. Такой элемент пред-ставляет собой предопределенный значок, посредством которого пользователь может взаимодействовать с системой. Элементы панели бывают трех видов: кнопки, переключатели и текстовые элементы. Кнопка (Button) характеризуется отображаемой на экране строкой, а также атрибутом depressed, который показыва-ет, нажата она или нет. Переключатель (Switch) позволяет пользователю выбрать один из предопределен-ных вариантов, каждый из которых является объектом класса ChoiceEntry, характеризующимся отображае-мой строкой и возвращаемым при его выборе значением. Между ChoiceItem и ChoiceEntry имеется две ас-социации: ассоциация один-ко-многим определяет множество доступных вариантов, а ассоциация один-к-одному определяет выбранный вариант. Выбранный вариант должен быть одним из доступных, поэтому одна ассоциация является подмножеством другой, на что указывает стрелка со словом {subset}. Это пример ограничения.

Когда элемент панели выбирается пользователем, это порождает событие (Event), которое представ-ляет собой объединение сигнала о происшествии с подлежащим выполнению действием. Все виды элемен-тов панелей имеют ассоциации notifyEvent. Каждый элемент связан с одним событием, но одно и то же со-бытие может порождаться несколькими элементами панели. Текстовые элементы порождают события дру-гого типа, связанные с нажатием на клавишу клавиатуры, происходящим в тот момент, когда текстовый элемент является выбранным. Эти события указываются ассоциацией с именем полюса keyboardEvent. Тек-стовые элементы наследуют событие notifyEvent от суперкласса PanelItem. Событие notifyEvent порождает-ся при выделении текстового элемента мышью.

Эта модель обладает множеством недостатков. Например, нам следовало бы определить тип Rectangle, который можно было бы использовать для определения границ окон и холстов, а не вводить два одинаковых набора из четырех атрибутов. Линия могла бы быть частным случаем полилинии (последова-тельности соединенных между собой линейных сегментов), и тогда полилиния и многоугольник были бы подклассами нового суперкласса, определяющего список точек. Здесь не хватает множества атрибутов, операций и классов, которые необходимы для реальной оконной системы. Между окнами должны быть ас-социации, например, они могут перекрывать одно другое. Тем не менее, эта простая модель даст вам неко-торое ощущение того, что должна представлять собой модель классов. Можно критиковать ее, потому что она содержит в себе некоторые четкие утверждения. Такая модель могла бы послужить основой для созда-ния более полной модели.