Файл: «Структура предоставляющих потребительские услуги сущностей. Вариант №3 Банкомат».pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 14.06.2023

Просмотров: 235

Скачиваний: 4

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Платежная карта - принадлежит клиенту (ассоциация), вводится в банкомат(зависимость - банкомат меняет свой статус), принадлежит банку(ассоциация, отобразим через счет, как часть банка), содержит информацию о счете(ассоциация).

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

Хранилище денежных средств - является частью банкомата, содержит в себе деньги, выдает или принимает деньги. Отношение агрегации с банкоматом, отношение ассоциации с деньгами.

Деньги - хранятся в хранилище денежных средств (ассоциация).

Транзакция - формируется банкоматом как результат действий клиента, служит для передачи информации в банк и из банка, отношение зависимости с банкоматом в обе стороны, так как транзакция может быть инициирована с обеих сторон.

Банк - является собственником банкомата (ассоциация), является собственником карты (может быть другой банк), содержит в себе счет Клиента (отношение композиции), через “связного” принимает транзакции (зависимость), отправляет подтверждение или отказ на запрос клиента (зависимость).

Счет - содержится в банке (отношение композиции), содержит в себе информацию о безналичных денежных средствах принадлежащих клиенту (ассоциация через платежную карту).

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. В банке есть счет, который связан с картой клиента.

ЗАКЛЮЧЕНИЕ

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

  • Выявление наиболее важных составляющих исследуемой сущности.
  • Определение характера связей между составляющими.
  • Определение основных параметров сущностей, участвующих в процессе функционирования банкомата.
  • Переход от сущностей к более высокому уровню абстракции - классам.
  • Построение на основании результатов выявления характера связей и классов, диаграммы классов, которая отражает структуру сущности в выражении объектно-ориентированного подхода к проектированию.

Данная работа демонстрирует, что объектно-ориентированный подход к проектированию программного обеспечения является простым и интуитивно понятным механизмом построения моделей структур сущностей.