Файл: Объектно-ориентированный анализ и программирование.Библиотека..pdf
Добавлен: 28.04.2023
Просмотров: 404
Скачиваний: 4
СОДЕРЖАНИЕ
1.Краткая характеристика библиотеки
2.Описание объектной модели и взаимодействие ее частей
2.1.Описание объектной модели.
2.2.Взаимодействие работников библиотеки с пользователем.
3.Построение диаграммы классов
3.1.Определение диаграммы классов.
Следующее, что мы рассмотрим это атрибут. Это свойство класса, которое может принимать множество значений. Множество допустимых значений атрибута образует домен. Атрибут имеет имя и отражает некоторое свойство моделируемой сущности, общее для всех объектов данного класса. Класс может иметь произвольное количество атрибутов.
Операция — реализация функции, которую можно запросить у любого объекта класса. Операция показывает, что можно сделать с объектом. Исполнение операции часто связано с обработкой и изменением значений атрибутов объекта, а также изменением состояния объекта. Пример изображения класса мы можем посмотреть в приложении 1.
Синтаксис UML для свойств классов (в отдельных программных средствах, например, в IBM UML Modeler, порядок записи параметров может быть различным):
<признак видимости> <имя атрибута> : <тип данных = <значение по умолчанию>
<признак видимости> <имя операции> <(список аргументов)>
Видимость свойства указывает на возможность его использования другими классами. Один класс может "видеть" другой, если тот находится в области действия первого и между ними существует явное или неявное отношение.
В языке UML различают три уровня видимости:
- видимый (public) — данный элемент виден всем сущностям. Обозначаются знаком " + " перед именем атрибута или операции;
- protected (защищенный) — этот элемент виден внутри методов класса и наследующим сущностям. Обозначаются знаком " # ";
- private (закрытый) — этот элемент виден только внутри методов данного класса. Обозначаются символом " - " .[5]
Итак, классы в UML изображаются на диаграммах классов, которые дают возможность описать систему в статическом состоянии - найти типы объектов системы, а также установить статические связи между объектами.
Между классами возможны различные отношения:
- зависимость;
- обобщение;
- ассоциация.
Отношение зависимости (приложение 2) - это отношение использования. То есть отношение зависимости используется когда изменение одного элемента модели может потребовать изменение другого элемента модели, который от него зависит.
Отношение обобщение — это отношение между родителем — класс " клиент" и потомком — классы "корпоративный клиент" или " частный клиент". Объекты класса - потомка могут использоваться там, где встречаются объекты класса - родителя, но не наоборот. При этом он наследует свойства родителя.
Отношение ассоциации соответствует наличию некоторого отношения между классами, т.е. это отношение, показывающее, что объекты одного типа неким образом связаны с объектами другого типа (" клиент " может сделать " заказ").
С понятием ассоциации связаны четыре важных дополнительных понятия: имя, роль, кратность и агрегация. Во-первых, ассоциации может быть присвоено имя, характеризующее природу связи. Смысл имени уточняется с помощью черного треугольника, который располагается над линией связи справа или слева от имени ассоциации. Этот треугольник указывает направление чтения имя связи. Пример именованной ассоциации показан в приложении 3 Треугольник показывает, что именованная ассоциация должна читаться как «Студент учится в Университете».
Другим способом именования ассоциации является указание роли каждого класса, участвующего в этой ассоциации. Роль класса, как и имя конца связи в ER-модели, задается именем, помещаемым под линией ассоциации ближе к данному классу. В приложении 4 показаны две ассоциации между классами Человек и Университет, в которых эти классы играют разные роли. Как мы видим, объекты класса Человек могут выступать в роли РАБОТНИКОВ при участии в ассоциации, в которой объекты класса Университет играют роль НАНИМАТЕЛЯ. В другой ассоциации объекты класса Человек играют роль СТУДЕНТА, а объекты класса УНИВЕРСИТЕТ – роль ОБУЧАЮЩЕГО.[6]
В общем случае, для ассоциации могут задаваться и ее собственное имя, и имена ролей классов. Это связано с тем, что класс может играть одну и ту же роль в разных ассоциациях, так что в общем случае пара имен ролей классов не идентифицирует ассоциацию. С другой стороны, в простых случаях, когда между двумя классами определяется только одна ассоциация, можно вообще не связывать с ней дополнительные имена.
Кратностью (multiplicity) роли ассоциации называется характеристика, указывающая, сколько объектов класса с данной ролью может или должно участвовать в каждом экземпляре ассоциации (в UML экземпляр ассоциации называется соединением – link, но мы не будем здесь использовать этот термин, чтобы не создавать путаницу – все-таки трудно одновременно говорить про связи, ассоциации и соединения, имея в виду разные понятия). Наиболее распространенным способом задания кратности роли ассоциации является указание конкретного числа или диапазона. Например, указание «1» говорит о том, что каждый объект класса с данной ролью должен участвовать в некотором экземпляре данной ассоциации, причем в каждом экземпляре ассоциации может участвовать ровно один объект класса с данной ролью. Указание диапазона «0..1» говорит о том, что не все объекты класса с данной ролью обязаны участвовать в каком-либо экземпляре данной ассоциации, но в каждом экземпляре ассоциации может участвовать только один объект. Аналогично, указание диапазона «1..*» говорит о том, что все объекты класса с данной ролью должны участвовать в некотором экземпляре данной ассоциации, и в каждом экземпляре ассоциации должен участвовать хотя бы один объект (верхняя граница не задана). [6]
Обычная ассоциация между двумя классами характеризует связь между равноправными сущностями: оба класса находятся на одном концептуальном уровне. Но иногда в диаграмме классов требуется отразить тот факт, что ассоциация между двумя классами имеет специальный вид «часть-целое». В этом случае класс «целое» имеет более высокий концептуальный уровень, чем класс «часть». Ассоциация такого рода называется агрегатной. Графически агрегатные ассоциации изображаются в виде простой ассоциации с незакрашенным ромбом на стороне класса-«целого». Простой пример агрегатной ассоциации показан в приложение 5.
3.2.Диаграмма классов библиотеки "Добрые руки"
Мы с Вами уже рассмотрели взаимосвязь посетителя и работников библиотеки в п.п. 2.2 данной работы. Теперь построим диаграмму классов для нашей библиотеки.
Центральным для нас является посетитель библиотеки и сама библиотека. Они и будет первыми классами. Всего их будет восемь. Посетителем могут быть как дети, так и взрослые - это третий и четвертый классы. Остальные четыре - это работники библиотеки: а именно наша милая гардеробщица, библиотекарь читального зала (БЧЗ), библиотекарь абонементного зала (БАЗ) и работник, который отслеживает своевременную сдачу книг, скажем контролер.
Условимся, что класс будем обозначать прямоугольником, теперь разместим наши классы на диаграмме.
Контролер
Библиотека
Гардеробщица
Посетитель
БЧЗ
Ребенок
Взрослый
БАЗ
Диаграмма классов. Расположение классов.
Как уже было сказано, посетитель для нас является центральным классом, поэтому я его поместил в центре. Остальные четыре класса расположены вокруг центрального.
Теперь необходимо определить атрибуты для каждого класса. Начнем с библиотеки. У библиотеки есть адрес, номер телефона, режим работы. Графически изобразим так:
Библиотека
- адрес
- № телефона
- режим работы
Атрибуты класса "Библиотека"
Одним из центральных классов является класс Посетитель. Для каждого посетителя в библиотеке требуются его личные данные, для ведения учета, заполнения читательских билетов. К таким данным относятся: ФИО, адрес проживания, номер контактного телефона и паспортные данные. Эти данные и будут атрибутами нашего класса. Графически изображается так:
Посетитель
- ФИО
- адрес
- № телефона
- паспорт
Атрибуты класса "Посетитель"
Далее разберем атрибуты взрослого и ребенка, они схожи - ФИО, возраст, адрес, номер телефона, для взрослого паспортные данные.
Взрослый
Ребенок
- ФИО
- адрес
- № телефона
- паспорт
- возраст
- ФИО
- адрес
- № телефона
- возраст
Атрибуты классов "Взрослый" и "Ребенок"
Теперь рассмотрим атрибуты для библиотекарей - работников зала и контролера, т.к. атрибуты у них похожи: ФИО, должность, название отдела, табельный номер. Графически изобразим так:
БЧЗ
БАЗ
Контролер
- ФИО
- должность
- название отдела
- табельный номер
- ФИО
- должность
- название отдела
- табельный номер
- ФИО
- должность
- название отдела
- табельный номер
Атрибуты классов "БЧЗ", "БАЗ", "Контролер
Рассмотрим атрибуты для последнего класса "Гардеробщица" - ФИО, адрес проживания, номер телефона, должность.
Гардеробщица
- ФИО
- должность
- адрес
- № телефона
Атрибуты класса "Гардеробщица"
Теперь необходимо рассмотреть операции для каждого класса. Первой рассмотрим операции библиотеки: дает знания, обслуживает читателя. Далее будем рассматривать Посетителя. Операции посетителя: сдает и забирает одежду в гардеробе, берет книги для чтения, сдает книги, читает.
Операции Взрослого посетителя наследую все операции посетителя т.к являются потомком класса, читает любую литературу, доступную в библиотеке.
Операции Ребенка также дублируют операции посетителя, только читают дети литературу, доступную их возраста.
Операции БЧЗ: выдает читательский билет, ищет книги в архивной комнате, выдает книги, проверяет сохранность книг, при возврате, принимает книги, не принимает книги и устанавливает штраф, следит за порядком в читальном зале.
Операции БАЗ: заводит абонемент, записывает выбранные читателем книги для выдачи, принимает книги, которые сдают, проверяет сохранность книг, не принимает книги, которые сдают и устанавливает штраф, следит за порядком в зале.
Операции Контролера: проверяет формуляры, следит за своевременной сдаче книг, уведомляет недобросовестных читателей о просрочке сдачи книги.
Операции Гардеробщицы: принимает одежду. выдает номерок, выдает одежду, принимает номерок. следит за сохранностью верхней одежды.
Отобразим все составляющие на нашей диаграмме классов (Приложение 6).
Вот такой получается диаграмма классов. Только это еще не совсем диаграмма. Необходимо отобразить на ней связи и рассмотреть их. Отображение связей изображено в приложении В. Диаграмма классов готова.
3.3.Выводы.
Целью нашей работы является исследовать структуру предоставляющей услуги библиотеки.
Для достижения цели поставим для себя задачи:
- проанализировать библиотеку, выделить наиболее значимые ее составляющие;
- установить характер связей между составляющими;
- построить диаграмму классов, отражающую установленные взаимосвязи
Мы рассмотрели сущность - библиотека. Работа библиотеки достаточно сложный механизм, требующий автоматизации процессов. В этом как никогда может помочь диаграмма классов, а также другие виды диаграмм. Мы рассмотрели достаточно поверхностный срез библиотеки. Если углубиться то можно построить несколько диаграмм классов и связать из между собой, тогда достаточно хорошо будет видно, где и какие элементы системы можно удалить, за ненадобностью, какие наоборот добавить. Какие детали системы работы можно укрупнить, какие рассмотреть более детально.
Процесс составления диаграммы классов - увлекательный процесс, который захватывает. При разработке диаграммы приходили мысли, где можно еще добавить класс и т.п.
Если вернуться непосредственно к нашей диаграмме, то она помогает рассмотреть, что в библиотеке нет охранника, который следил за охраной помещения и сотрудники залов могли сосредоточиться конкретно на своей работе.
Одним их плюсов является разделение залов на два - абонементный и читальный, что позволяет работать читателям с теми изданиями, которые можно читать, только в библиотеке.
Неплохо было бы составить еще несколько диаграмм с классами и подклассами книг, которые помогли бы систематизировать расстановку книг на стеллажах по литературным жанрам и плюсом по алфавитному порядку, для упрощения работы как сотрудникам библиотеки, так и посетителям, также возможность введения дополнительных услуг, таких как копирование, сканирование нужных статей и отрывок книг, сделать зал ожидания и отдыха для читателей, т.к. в нашу библиотеку приходят не только взрослые, но и дети и много привлекательных и главное удобных приятных мелочей для посетителей, например оповещение об окончании абонемента.