Загрузил peki4

лабораторная работа 4 Перов

Реклама
Бийский технологический институт (филиал)
федерального государственного бюджетного образовательного
учреждения высшего образования
«Алтайский государственный технический университет им. И.И. Ползунова»
Технологический факультет
Кафедра МСИА
Отчет защищен с оценкой______________
Ф.А. Попов
(подпись преподавателя)
(инициалы, фамилия)
“____”___________ 2022 г.
Отчет
по лабораторной (практической) работе № 4
Методология объектно-ориентированного моделирования. Диаграммы
классов. Объединенная диаграмма компонентов и размещения.
(название лабораторной работы)
по дисциплине Модели информационных процессов и систем
(наименование дисциплины)
ЛР 09.04.02 01.000 ОТ
(обозначение документа)
Студент группы
подпись
мИСТ-21
Е.К. Перов
(инициалы, фамилия)
Преподаватель проф., д.н
(должность, ученое звание)
Ф.А. Попов
подпись
(инициалы, фамилия)
БИЙСК 2022
1
СОДЕРЖАНИЕ
ВВЕДЕНИЕ .............................................................................................................. 3
1 Теоретическая часть ............................................................................................. 5
2 Практическая часть .............................................................................................. 8
ЗАКЛЮЧЕНИЕ ..................................................................................................... 14
2
ВВЕДЕНИЕ
Принципиальное отличие между функциональным и объектным
подходом заключается в способе декомпозиции системы. Объектноориентированный подход использует объектную декомпозицию, при этом
статическая структура описывается в терминах объектов и связей между
ними,
а
поведение
сообщениями между
системы
описывается
объектами.
Целью
построение бизнес-модели организации,
модели сценариев
использования к
в
терминах обмена
методики
позволяющей
модели,
является
перейти
определяющей
от
отдельные
объекты, участвующие в реализации бизнес-функций.
Концептуальной основой объектно-ориентированного
подхода является объектная модель, которая строится с учетом следующих
принципов:

абстрагирование;

инкапсуляция;

модульность;

иерархия;

типизация;

параллелизм;

устойчивость.
Основными понятиями объектно-ориентированного подхода являются
объект и класс.
Объект — предмет или явление, имеющее четко определенное
поведение и обладающие состоянием, поведением и индивидуальностью.
Структура и поведение схожих объектов определяют общий для них
класс. Класс – это множество объектов, связанных общностью структуры и
поведения. Следующую группу важных понятий объектного подхода
3
составляют наследование и полиморфизм. Понятие полиморфизм может быть
интерпретировано как способность класса принадлежать более чем одному
типу.
Наследование означает
построение
новых
классов
на
основе
существующих с возможностью добавления или переопределения данных и
методов.
Важным качеством объектного подхода является согласованность
моделей
деятельности
организации
и
моделей
проектируемой
информационной системы от стадии формирования требований до стадии
реализации. По объектным моделям может быть прослежено отображение
реальных сущностей моделируемой предметной области (организации) в
объекты и классы информационной системы.
Большинство
существующих
подхода включают язык
моделирования. Процесс –
методов объектно-ориентированного
моделирования и
это
описание
шагов,
описание
процесса
которые
необходимо
выполнить при разработке проекта. В качестве языка моделирования
объектного
подхода
используется
унифицированный язык
моделирования UML, который содержит стандартный набор диаграмм для
моделирования.
Цель работы: закрепление теоретического материала об особенностях
объектно-ориентированного моделирования, а также об особенностях
моделирования средствами UML.
4
1 Теоретическая часть
Диаграммы классов используются при моделировании ПС наиболее
часто. Они являются одной из форм статического описания системы с точки
зрения ее проектирования, показывая ее структуру. Диаграмма классов не
отображает динамическое поведение объектов изображенных на ней классов.
На диаграммах классов показываются классы, интерфейсы и отношения
между ними.
Класс – это основной строительный блок ПС. Это понятие
присутствует и в ОО языках программирования, то есть между классами UML
и программными классами есть соответствие, являющееся основой для
автоматической генерации программных кодов или для выполнения
реинжиниринга. Каждый класс имеет название, атрибуты и операции. Класс
на диаграмме показывается в виде прямоугольника, разделенного на 3
области. В верхней содержится название класса, в средней – описание
атрибутов (свойств), в нижней – названия операций – услуг, предоставляемых
объектами этого класса.
Атрибуты класса определяют состав и структуру данных, хранимых
в объектах этого класса. Каждый атрибут имеет имя и тип, определяющий,
какие данные он представляет. При реализации объекта в программном коде
для атрибутов будет выделена память, необходимая для хранения всех
атрибутов, и каждый атрибут будет иметь конкретное значение в любой
момент времени работы программы. Объектов одного класса в программе
может быть сколь угодно много, все они имеют одинаковый набор
атрибутов, описанный в классе, но значения атрибутов у каждого объекта
свои и могут изменяться в ходе выполнения программы.
Для каждого атрибута класса можно задать видимость (visibility). Эта
характеристика показывает, доступен ли атрибут для других классов. В
UML определены следующие уровни видимости атрибутов:
5

Открытый (public) – атрибут виден для любого другого класса
(объекта);

Защищенный (protected) – атрибут виден для потомков данного

Закрытый (private) – атрибут не виден внешними классами
класса;
(объектами) и может использоваться только объектом, его содержащим.
Последнее значение позволяет реализовать свойство инкапсуляции
данных. Например, объявив все атрибуты класса закрытыми, можно
полностью скрыть от внешнего мира его данные, гарантируя отсутствие
несанкционированного доступа к ним. Это позволяет сократить число
ошибок в программе. При этом любые изменения в составе атрибутов класса
никак не скажутся на остальной части ПС.
Класс содержит объявления операций, представляющих собой
определения запросов, которые должны выполнять объекты данного класса.
Каждая операция имеет сигнатуру, содержащую имя операции, тип
возвращаемого значения и список параметров, который может быть пустым.
Реализация операции в виде процедуры – это метод, принадлежащий классу.
Для операций, как и для атрибутов класса, определено понятие «видимость».
Закрытые операции являются внутренними для объектов класса и
недоступны из других объектов. Остальные образуют интерфейсную часть
класса и являются средством интеграции класса в ПС [1].
Диаграмма компонентов отображает зависимости программных
компонентов,
которые
представляются
в
виде
исходных,
откомпилированных и исполняемых программных кодов объектов. Один
компонент, как правило, соответствует программному коду одного пакета
классов объектов.
6
Компонент в своем составе имеет интерфейсный класс объектов,
через который осуществляется доступ к остальным классам объектов
компонента. С помощью интерфейса объекты других компонентов
обращаются не к конкретным объектам рассматриваемого компонента, а к
его интерфейсному объекту. Таким образом упрощается взаимодействие
компонентов между собой, когда при доступе к компоненту из других
компонентов не требуется знать внутреннюю структуру этого компонента.
Компонент, к которому осуществляется обращение, может быть не
объектно-ориентированным. Достаточно, чтобы у такого компонента был
только один интерфейсный класс объектов, который транслирует запросы к
компоненту в вызовы обычных процедур. У компонентов может быть
несколько интерфейсов [2].
7
2 Практическая часть
Диаграмма классов информационной системы для сервисного центра в
реализации ИС используются четыре класса, на диаграмме они помечены как
устойчивые, это означает, что их экземпляры должны содержаться в базе
данных. Серыми линиями отмечены отношения между классами. Цифрами
указывается кратность ассоциации. Кратность показывает сколько объектов
может соответствовать каждому объекту на противоположном конце.
Класс User (пользователи) предназначен для хранения информации о
пользователях системы и выполнения действий с ними, таких как операторы
приемки, мастера, руководители. Каждый экземпляр класса является одним
определенным пользователем. Данный класс содержит в себе свойства,
описывающие пользователя и несколько методов для работы с пользователем.
Свойство name – содержит реальные имя и фамилию пользователя; login –
содержит уникальное имя для авторизации в системе, является строковым
типом; password – содержит хэш пароля пользователя, является строковым
типом, и вместе с логином участвует в авторизации пользователя; role –
является идентификатором роли пользователя, имеет целочисленный тип,
может принимать следующие значения: 1 – администратор, 2 – руководитель,
3 – мастер, 4 – оператор. Методы класса необходимы для управления
пользователями. Метод createUser() позволяет создать нового пользователя в
системе. Метод updateUser() – изменить какие то сведения, поменять роль,
изменить пароль. Метод getUser() – получить сводную информацию по
пользователю, в случае оператора - увидеть сколько клиентов обслужено за
определенный период, в случае мастера - увидеть количество выполненных
ремонтов и заработанных денег. Метод removeUser() позволяет удалить
пользователя, например в случае увольнения сотрудника.
8
Класс Device (техника) предназначен для хранения информации о
технике, приходящей в ремонт, и выполнения действий с ней. Данный класс
описывается следующими свойствами: type – тип техники, является
строковым типом, и означает тип оборудования (ноутбук, компьютер,
монитор и т.д.); produce – содержит имя производителя, марки оборудования,
является строковым типом; model – содержит модель оборудования, является
строковым типом; serialNumber – содержит серийный номер для точной
идентификации
техники,
является
строковым
параметром.
Методы
необходимы для получения информации о технике, создании новой техники и
ее редактирования. Метод createDevice() создает новую запись в базе данных
с техникой, выполняется при создании заявки, в случае если клиент принес
данную технику в первый раз. Метод updateDevice() – необходим для правки
свойств, в случае опечатки или ошибок в описании техники. Метод getDevice()
отображает информацию о технике.
Класс Client (Клиент) описывает клиентов СЦ. Каждый экземпляр
класса является уникальным человеком. Состоит из следующих свойств: name
– имя фамилия клиента; phone – телефон клиента, является числом; comment –
комментарий в произвольной форме, дополнительные сведения о клиенте,
является строковым типом; status – содержит целочисленное значение,
характеризующее клиента: 0 – нейтральный, 1 – неблагонадежный, 2 –
надежный (VIP клиент). Методы практически полностью повторяют методы
класса Device. Метод createСlient() создает новую запись в базе данных,
выполняется при создании заявки, в случае если клиент пришел в первый раз
в СЦ и не записан в базе. Метод updateClient() позволяет изменить
информацию о клиенте, например указать новый номер телефона, а также
поменять статус. Метод getClient() позволяет узнать информацию о клиенте, а
также получить сводные данные, сколько раз обращался клиент, какой
средний чек и т.д. Метод getAllClient() позволяет получить список всех
клиентов сервиса.
9
Экземпляр класса Incident (Заявка в ремонт) является заявкой, с которой
происходят все основные действия в СЦ. Данный класс связан, со всеми
предыдущими классами. С классом Пользователи имеет две связи, так как
один пользователь осуществляет приемку оборудования, а другой ремонт.
Состоит из следующих свойств: created_at – дата создания заявки, является
датой; finished_at – дата завершения заявки, является датой; operatorID –
содержит идентификатор оператора, который создал заявку, является
целочисленным типом; masterID – содержит идентификатор мастера, который
выполнил ремонт по заявке, является целочисленным типом; deviceID –
содержит идентификатор техники, которая принята в ремонт, является
целочисленным типом; clientID – содержит идентификатор клиента, который
на которого оформлена заявка, является целочисленным типом; complect –
содержит информацию о комплектации техники (сумка, зарядное устройство),
строковый тип; problem – описывает неисправность, строковый тип; work –
выполненные работы, строковый тип, timework – время в часах затраченное на
выполнение ремонта, является числом; cost – стоимость выполненных работ,
является числом; recommendation – рекомендации от мастера, строковый тип;
status – целочисленный тип, определяющий статус заказа: 0 – заявка принята,
1 – заявка в работе, 2 – заявка выполнена, 4 – списана в архив. Методы данного
класса состоят из нижеследующих. Метод createIncident() – создает новую
заявку, сохраняет запись в базе данных. Метод updateIncident() – позволяет
вносить правки в заявку, а так же указывать мастеру выполненные работы,
стоимость, затраченное время, писать рекомендации. Метод startIncident()
вызывается при начале работ мастером, он меняет статус заявки с 0 (заявка
принята) на 1 (заявка в работе). Метод completIncident() вызывается при
завершение работ мастером, он меняет статус с 1 (заявка в работе) на 2 (заявка
выполнена). Метод archiveIncident() вызывается после передачи оборудования
клиенту, данный метод меняется статус на 4 (списана в архив), после чего
10
заявка списывается в архив. Метод getIncident() позволяет посмотреть
сводную информацию по заявке, включая связанные данные, такие как
информация о клиенте и о технике. Метод printDocPriem() отправляет на
принтер задание на печать акта приема оборудования. Метод printDocWork()
– отправляет на принтер задание на печать акта выполненных работ.
Связи между классами реализуют связи один-ко-многим и многие-ко
многим. Пользователи к заявкам, техника к заявкам и клиенты к заявкам,
представляют связь один ко многим. Один пользователь-оператор может
создать много заявок, так же как и пользователь-мастер может выполнить
много ремонтов по заявкам, хотя могут и не состоять ни в одной заявке.
Техника всегда принадлежит хотя бы одной заявке, потому что создается во
время создания заявки. Клиент так же всегда принадлежит хотя бы одной
заявке, так как и техника, создается при создании заявки. Существование
клиента и техники без заявки бессмысленно. Через класс заявки
осуществляется связь многие-ко-многим клиентов и техники, у клиентов и
пользователей и у техники и пользователей. Можно увидеть какую технику
приносил на ремонт клиент, каких клиентов принимал пользователь-оператор
и какую технику ремонтировал пользователь-мастер.
На рисунке 1 представлена диаграмма классов информационной
системы для сервисного центра.
11
Рисунок 1 – Диаграмма классов
На
рисунке
2
представлена
диаграмма
развертывания
модели
сервисного центра.
12
Рисунок 2 – Диаграмма развертывания
13
ЗАКЛЮЧЕНИЕ
В
ходе
выполнения
лабораторной
работы
были
рассмотрена
методология объектно-ориентированного моделирования, диаграммы классов
и компонентов.
Построены диаграммы классов и компонентов модели мебельной
фабрики.
14
15
Скачать