Файл: «Структура предоставляющих потребительские услуги сущностей. Вариант №3 Банкомат».pdf
Добавлен: 14.06.2023
Просмотров: 231
Скачиваний: 4
СОДЕРЖАНИЕ
1. ОПИСАНИЕ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПОДХОДА
2. Понятия класс, объект, сущность
3. Принципы объектно-ориентированного программирования
4. Объектно-ориентированный подход к анализу структуры сущности
6. Определение и основные функции
8. Характер связей между сущностями
9. Описание основных атрибутов каждой сущности
Платежная карта - принадлежит клиенту (ассоциация), вводится в банкомат(зависимость - банкомат меняет свой статус), принадлежит банку(ассоциация, отобразим через счет, как часть банка), содержит информацию о счете(ассоциация).
Банкомат - взаимодействует с клиентом посредством интерфейсов ввода и вывода информации (зависимость), взаимодействует с картой, содержит в себе хранилище денег (агрегация), генерирует транзакции (зависимость), принимает транзакции из банка (зависимость), отображает информацию с помощью средств вывода, получает информацию с помощью средств ввода, является собственностью банка (ассоциация).
Хранилище денежных средств - является частью банкомата, содержит в себе деньги, выдает или принимает деньги. Отношение агрегации с банкоматом, отношение ассоциации с деньгами.
Деньги - хранятся в хранилище денежных средств (ассоциация).
Транзакция - формируется банкоматом как результат действий клиента, служит для передачи информации в банк и из банка, отношение зависимости с банкоматом в обе стороны, так как транзакция может быть инициирована с обеих сторон.
Банк - является собственником банкомата (ассоциация), является собственником карты (может быть другой банк), содержит в себе счет Клиента (отношение композиции), через “связного” принимает транзакции (зависимость), отправляет подтверждение или отказ на запрос клиента (зависимость).
Счет - содержится в банке (отношение композиции), содержит в себе информацию о безналичных денежных средствах принадлежащих клиенту (ассоциация через платежную карту).
9. Описание основных атрибутов каждой сущности
Клиент - основной атрибут - платежная карта и PIN
Платежная карта - имеет следующие атрибуты:
- Номер карты
- Собственник
- Банк-эмитент
Банкомат - имеет следующие атрибуты
- Адрес
- Номер
- Банк собственник
- ID в системе банка
- Также содержит в себе хранилище денег
Хранилище денег - имеет следующие атрибуты
- Количество купюр каждого номинала
Деньги - имеют основной атрибут - номинал купюры
Транзакция - главный атрибут - реквизиты
Банк - имеет следующие атрибуты
- Адрес
- Счета
Счет - имеет следующие важные атрибуты
- Номер счета
- Количество средств на счете
- Владелец счета
Также опишем основные методы, реализуемые интерфейсами ввода и вывода
Интерфейс “Ввод” реализует следующие методы
- getPin():int - записывает данные PIN кода карты в транзакцию для проверки в банке
- getRecs():String- записывает в транзакцию реквизиты для платежа или перевода
- getChoice() - Регистрирует выбор функции банкомата клиентом
Интерфейс “Вывод” реализует следующие методы:
- printCheck() - печатает отчет о результатах выполнения транзакции на принтере банкомата
- showBalance() - демонстрирует баланс карты на экране банкомата.
Также в системе присутствует еще один интерфейс, который обеспечивает обмен данными между банкоматом и информационной системой банка, назовем его “Связной” он должен реализовывать следующие методы:
- sendTrans():Transaction - отправка транзакции в банк для принятия решения о выполнении
- getTrans():Transaction - получение ответа от банка, может содержать в себе как просто одобрение запрошенного действия, так и например баланс счета клиента и другую информацию, которую может запросить клиент из банка посредством банкомата ( выписка по счету и т.д.)
Итак, нами определены основные сущности и интерфейсы банкомата, определен набор атрибутов каждой сущности, определены методы, которые реализуют интерфейсы, определены связи между сущностями и интерфейсами. Приступим к отображению сущностей в виде абстракций - классов. Изобразим диаграммы каждого класса и интерфейса.
10. Диаграммы классов и интерфейсов
Клиент
|
Клиент - это абстрактный человек, у которого есть платежная карта и который знает секретный код от этой карты. Конечно у человека гораздо больше атрибутов (пол, возраст, место работы…), но к использованию банкомата они все не относятся |
Платежная карта
|
Любая платежная карта несет на себе свой номер, который обычно состоит из 16 цифр, поэтому выбран тип long, запись имени владельца - выбран тип строковых переменных string и информацию и банке, который выпустил карту, представим ее также в строковом формате. |
Банкомат
|
Любой банкомат является установленным по определенному адресу address:string который выражается строкой, имеет серийный номер, который, в свою очередь, может содержать в себе как цифры, так и буквы, поэтому также тип string. Банкомат принадлежит определенному банку, название которого также строка string, должен содержать в себе идентификатор для однозначного отождествления в банковской информационной сети bid:int возьмем тип int, его емкости достаточно, для записи всех банкоматов любого банка. Также банкомат содержит в себе объект класса Хранилище денег, назовем его repository. |
Хранилище денег
|
Хранилище содержит информацию о количестве в нем денег каждого номинала, для хранения этой информации выбран ассоциативный массив, где ключом является номинал купюры, а значением является ее количество в хранилище. Также определены основные методы. getMoney - выдает купюру номинала объекта Money, putMoney - вносит в хранилище купюру номинала объекта Money, checkBalance - проверяет возможность выдачи запрошенной суммы из хранилища. |
Деньги
|
Деньги самый простой объект, имеет всего один атрибут - номинал купюры. |
Транзакция
|
Транзакция представляет собой динамический массив строк, содержащий перечень реквизитов, необходимых для проведения операции, к которой относится транзакция. Например, при начале работы клиента с банкоматом будет передана транзакция содержащая в себе тип операции (идентификация клиента), необходимые данные карты (например ее номер), персональный идентификационный номер - PIN клиента. Банковская ИС по заданному алгоритму проверит соответствие данных и ответит, можно ли продолжать обслуживание. |
Банк
|
Банк, также как и Клиент, имеет гораздо больше атрибутов, чем указано в диаграмме его класса (уставной капитал, форма собственности, имена учредителей…), однако нас в данной работе, применительно к банкомату, интересует то, что в банке существует счет, к которому привязана Платежная карта Клиента. |
Счет
|
Каждый существующий счет имеет следующие важные для нас атрибуты: номер счета, который состоит из 20 цифр, поэтому тип long, Количество денег на счете balance:double, тип double, по причине того, что запись может быть с плавающей точкой, например при начислении процентов на вклад. Также определим два метода этого класса, increaseBalance увеличивает баланс счета на заданную величину, decreaseBalance уменьшает баланс счета на заданную величину. |
Ввод данных
|
Интерфейс ввода данных реализует 3 метода: ввод PIN Клиента, ввод реквизитов, необходимых для выполнения одной из функций банкомата (например, сумму денег к выдаче), метод getChoice определяет выбор Клиентом функции банкомата (таких как выдача/внесение наличных, проведение платежа или перевода, выдача информации о доступном остатке на платежной карте и других, представленных в каждом конкретном случае) |
Вывод данных
|
Интерфейс вывода реализует методы printCheck - распечатывает на принтере банкомата информацию о результате транзакции (например, “баланс пополнен на 100 руб.”) и метод showBalance, который отображает на экране банкомата информацию об остатке доступных средств на балансе счета, к которому привязана Платежная карта. |
Связной
|
Интерфейс Messenger реализует связь банкомата с ИС банка, для этого определены методы sendTrans, который отправляет транзакцию и getTrans, который получает ответ от кредитной организации. |
В результате определения связей между сущностями и перехода от сущностей к классам и интерфейсам, получаем следующую диаграмму классов, описывающих структуру сущности “банкомат”. См. Диаграмма 1.
11. ДИАГРАММА
Диаграмма 1: Диаграмма Классов
На диаграмме представлено, как клиент взаимодействует с банкоматом посредством интерфейсов ввода и вывода данных. Банкомат содержит в себе хранилище денег, в котором лежат денежные купюры. Банкомат взаимодействует с Банком посредством транзакций, через интерфейс Messenger. В банке есть счет, который связан с картой клиента.
ЗАКЛЮЧЕНИЕ
В данной работе мы продемонстрировали процесс моделирования диаграммы классов, которая отображает структуру сущности, предоставляющей потребительские услуги - банкомат. Последовательными шагами нашей работы были следующие этапы:
- Выявление наиболее важных составляющих исследуемой сущности.
- Определение характера связей между составляющими.
- Определение основных параметров сущностей, участвующих в процессе функционирования банкомата.
- Переход от сущностей к более высокому уровню абстракции - классам.
- Построение на основании результатов выявления характера связей и классов, диаграммы классов, которая отражает структуру сущности в выражении объектно-ориентированного подхода к проектированию.
Данная работа демонстрирует, что объектно-ориентированный подход к проектированию программного обеспечения является простым и интуитивно понятным механизмом построения моделей структур сущностей.