Разработка информационной системы смарт-контрактов для купли-продажи акций

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 10.12.2019
Размер файла 1,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

4. Просмотр реестра предложений о продаже.

5. Создание заявки на покупку.

6. Перечисление средств.

Первые три подпроцесса уже были описаны в подразделе 2.3.1. Следовательно, требуется описать подпроцессы 4, 5 и 6.

Подпроцесс «Просмотр реестра предложений о продаже» обладает последовательностью действий, отражённой в таблице 2.10. В рамках данного прецедента осуществляется просмотр продавцом поступивших заявок на покупку акции.

Таблица 2.10

Описание прецедента «Просмотр реестра предложений о продаже»

Название процесса

Просмотр реестра предложений о продаже

Предшествующее событие

№ события

Описание события

1

Пользователь авторизован в информационной системе

Основной поток

№ действия

Описание действия

Наименование действия

1

Пользователь осуществляет нажатие на клавишу «Просмотр предложений на продажу»

Нажатие на клавишу «Просмотр предложений на продажу»,

Переадресация на страницу просмотра предложений на продажу

2

Система загружает список предложений

Загрузка списка предложений

3

Система отображает список предложений в виде реестра

Отображение списка предложений

Альтернативный поток

1

Если пользователь ввёл некорректное значение в поля для ввода, выводится сообщение об ошибке

Вывод сообщения об ошибке

Завершающее событие

Отсутствует

Выделенная в данном подпроцессе последовательность действий была отражена графически при помощи диаграммы последовательностей, что отображено на рисунке 2.12.

Рисунок 2.12 Диаграмма последовательностей прецедента «Просмотр реестра предложений о продаже»

Подпроцесс «Создание заявки на покупку» обладает последовательностью действий, отражённой в таблице 2.11. В рамках данного прецедента осуществляется просмотр продавцом поступивших заявок на покупку акции.

Таблица 2.11

Описание прецедента «Создание заявки на покупку»

Название процесса

Создание заявки на покупку

Предшествующее событие

№ события

Описание события

1

Пользователь авторизован в информационной системе

2

Пользователь находится на странице заявки на продажу

Основной поток

№ действия

Описание действия

Наименование действия

1

Пользователь вводит желаемое количество акций, которое планирует приобрести

Ввод данных

2

Пользователь подтверждает ввод нажатием клавиши «Отправить заявку»

Нажатие на клавишу «Отправить заявку»

3

Система сохраняет изменения и блокирует поля для ввода

Сохранение изменений, блокировка полей для ввода

Альтернативный поток

1

Если пользователь ввёл некорректное значение в поля для ввода, выводится сообщение об ошибке

Вывод сообщения об ошибке

Завершающее событие

Отсутствует

Выделенная в данном подпроцессе последовательность действий была отражена графически при помощи диаграммы последовательностей, что отображено на рисунке 2.13.

Подпроцесс «Перечисление средств» обладает последовательностью действий, отражённой в таблице 2.12. В рамках данного прецедента осуществляется просмотр продавцом поступивших заявок на покупку акции.

Рисунок 2.13 Диаграмма последовательностей прецедента «Создание заявки на покупку»

Таблица 2.12

Описание прецедента «Перечисление средств»

Название процесса

Перечисление средств

Предшествующее событие

№ события

Описание события

1

Пользователь авторизован в информационной системе

2

Пользователь находится на странице заявки на продажу

3

Пользователь является покупателем

4

Все условия подтверждены обеими сторонами

Основной поток

№ действия

Описание действия

Наименование действия

1

Пользователь производит нажатие на клавишу «Оплатить»

Нажатие на клавишу «Оплатить»

2

Система отображает окно для оплаты

Отображение окна для оплаты

3

Пользователь вводит данные для оплаты

Ввод данных для оплаты

4

Система обрабатывает платёж

Обработка платежа

5

Система замораживает средства

Заморозка средств

Альтернативный поток

1

Если пользователь ввёл некорректное значение в поля для ввода, выводится сообщение об ошибке

Вывод сообщения об ошибке

Завершающее событие

Отсутствует

Выделенная в данном подпроцессе последовательность действий была отражена графически при помощи диаграммы последовательностей, что отображено на рисунке 2.14.

Рисунок 2.14 Диаграмма последовательностей прецедента «Перечисление средств»

2.3.3 Прецедент «Администрирование»

Прецедент «Администрирование» задействуется в том случае, если пользователь проектируемой системы имеет намерения осуществить администрирование деятельности системы. Стандартный вариант использования выглядит следующим образом: пользователь открывает реестр заявок на продажу, выбирает нужную и получает по ней информацию. При необходимости формируется пакет отчётности по деятельности веб-сайта.

Список включаемых или расширяющих прецедент подпроцессов:

1. Просмотр страницы продажи акции.

2. Просмотр реестра предложений о продаже.

3. Получение отчётности по сделкам.

Первые два прецедента уже были описаны ранее, следовательно, требуется описать лишь прецедент «Получение отчётности по сделкам». Данный прецедент обладает последовательностью действий, отражённой в таблице 2.13. В рамках данного прецедента осуществляется просмотр продавцом поступивших заявок на покупку акции.

Таблица 2.13

Описание прецедента «Получение отчётности по сделкам»

Название процесса

Создание заявки на покупку

Предшествующее событие

№ события

Описание события

1

Пользователь авторизован в информационной системе

2

Пользователь является администратором

Основной поток

№ действия

Описание действия

Наименование действия

1

Нажатие пользователя на клавишу «Экспорт отчёта»

Получить отчёт

2

Системой осуществляется обращение к БД

Загрузка данных из БД

3

Системой преобразование данных в xlsx-файл

Преобразование файла

4

Пользователь загружает файл на локальное хранилище

Выгрузка файла

5

Нажатие пользователя на клавишу «Экспорт отчёта»

Получить отчёт

Альтернативный поток

Отсутствует

Завершающее событие

Отсутствует

Выделенная в данном подпроцессе последовательность действий была отражена графически при помощи диаграммы последовательностей, что отображено на рисунке 2.15.

Рисунок 2.15 Диаграмма последовательностей прецедента «Получение отчётности по сделкам»

2.4 Диаграмма классов

Также для проектируемого решения требуется определить диаграмму классов, которая позволит реализовать логическую модель данных. Данная диаграмма была реализована в нотации UML и представлена на рисунке 2.16. Классы, представленные на данной диаграмме, позволят работать с данными на базе «ASP.NET Entity FrameWork».

Рисунок 2.16 Диаграмма классов решения

Глава 3. Реализация информационной системы

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

3.1 Разработка интерфейса информационной системы

3.1.1 Страница регистрации

Данная страница предназначена для осуществления регистрации новыми пользователями информационной системы. Для осуществления регистрации пользователь выбирает тип регистрируемого лица: физическое или юридическое, а далее заполняет соответствующие выбранному типу лица текстовые поля. Внешний вид данной страницы представлен ниже на рисунке 3.1.

Рисунок 3.1 Внешний вид страницы «Регистрация»

Радио-кнопки «Физическое лицо» и «Юридическое лицо» служат для выбора типа регистрируемого пользователя. Следует отметить, что при выборе типа «Физическое лицо» скрываются поля «ОГРН» и «Название компании», тогда как при выборе типа «Юридическое лицо» данные поля отображаются, а скрываются поля «Фамилия», «Имя», «Отчество», «Номер паспорта», «Дата выдачи паспорта» и «Кем выдан».

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

Текстовые поля «Название компании» и «ОГРН» служат для ввода наименования юридического лица и его ОГРН соответственно, являются обязательными для ввода при выборе соответствующего типа пользователя.

Текстовые поля «Фамилия», «Имя», «Отчество», «Номер паспорта», «Дата выдачи паспорта» и «Кем выдан» служат для ввода информации о физическом лице, являются обязательными для ввода при выборе соответствующего типа пользователя.

Поля «Пароль» и «Подтверждение пароля» служат для выбора

3.1.2 Личный кабинет

Данная страница предназначена для отображения информации о текущем пользователе информационной системы, а также для редактирования личной информации о пользователе. Внешний вид страницы «Личный кабинет» представлен на рисунке 3.2.

Рисунок 3.2 Внешний вид страницы «Личный кабинет»

Как можно увидеть на рисунке выше, страница состоит из множества текстовых полей, в которых отображаются основные поля для текущего пользователя системы. Так, поле «Текущий баланс» отображает текущий баланс аккаунта в условной валюте типа «Эфир». Поля «Фамилия», «Имя», «Отчество», «Серия и номер паспорта», «Дата выдачи паспорта» и «Паспорт выдан» предназначены для отображения личных данных пользователя типа «Физическое лицо». Для пользователя типа «Юридическое лицо» в данном окне вместо вышеперечисленных полей личных данных отображаются поля «Наименование компании» и «ОГРН компании». При нажатии клавиши «Редактировать данные» поля ввода разблокируются и появляется возможность отредактировать личные данные.

3.1.3 Страница создания заявки на продажу акции

Данная страница предназначена для создания заявок на продажу акций. При помощи данной страницы покупатель производит ввод информации об акции, которую он намеревается разместить, и отправляет заявку на продажу данной акции. Внешний вид страницы представлен на рисунке 3.3.

Рисунок 3.3 Внешний вид страницы «Создание заявки на продажу акций»

Страница представляет собой набор полей для ввода, которые позволяют ввести соответствующие характеристики размещаемой на продажу акции. Так поле «Название эмитента» служит для ввода названия организации, которая произвела эмиссию акций. Поле «ОГРН эмитента» служит для ввода основного государственного регистрационного номера эмитента акций. Поле «ГРН выпуска акций» служит для указания государственного регистрационного номера выпуска, в котором была произведена эмиссия акций. Поля «Количество размещаемых акций», «Цена одной акции», «Номинальная стоимость одной акции» задают одноимённые характеристики заявки на продажу и служат для определения финальной стоимости сделки. Также поле «Выбрать файлы» служит для загрузки файлов типа PDF, DOCX и DOC с устройства пользователя.

Заключительным элементом является клавиша «Разместить заявку», который при нажатии на него осуществляет отправку заявки на продажу акций на ресурсе.

3.1.4 Страница информации об акции

Данная страница предназначена для просмотра информации о размещённой акции, а также для взаимодействия участников сделки между друг другом. На рисунке 3.4 представлен внешний вид данной страницы.

Рисунок 3.4 Внешний вид страницы «Информация об акции»

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

3.2 Использование технологии смарт-контрактов

Для реализации механизма смарт-контрактов на базе платформы Ethereum требуется использование JavaScript-подобного объектно-ориентированного языка самовыполняющихся контрактов «Solidity». Данный язык был применён для разработки программы, позволяющей осуществлять взаимодействие между пользователями разрабатываемой системы посредством распределённой базы данных. При написании программы за основу был взят алгоритм «TO BE» по купле-продаже акций, разработанный ранее. В результате был получен следующий листинг программы, представленный в приложении В. Как можно увидеть из листинга, процесс был разделён на стадии, а денежные средства между покупателем и продавцом переводятся с применением буферного нахождения их на балансе самого смарт-контракта. Для разработки данного программного кода была применена среда разработки «Remix IDE». Далее с целью экономии денежных средств, так как каждая транзакция в сети Ethereum затрачивает определённой количество электронной валюты, было произведено развёртывание локального окружения Ethereum при помощи программного средства «Ganache», производящего полную локальную имитацию блокчейн-платформы Ethereum. Развёртывание и деплой самого смарт-контракта был произведён при помощи фреймворка «Truffle», полностью совместимого с «Ganache». Таким образом, была развёрнута и настроена среда, позволяющая осуществлять манипуляции с данными распределённой сети блокчейн посредством транзакций.

Так как ИС разрабатывается в среде ASP.NET, изначально не имеющая поддержки функций, позволяющих осуществлять взаимодействие со средой Ethereum, было использовано стороннее расширение «Nethereum», представляющее из себя открытую интеграционную библиотеку с открытым исходным кодом для упрощения взаимодействия с блокчейн-платформой Ethereum. Так, размещение контракта посредством использования данной библиотеки выглядит образом, отображённым на рисунке 3.5.

Рисунок 3.5 Размещение контракта в сети блокчейн

Вызов же функций размещённого контракта производится при помощи методов, пример использования которых представлен на рисунке 3.6.

Рисунок 3.6 Вызов функции контракта

3.3 Тестирование информационной системы

С целью выявления и устранения непредвиденных ошибок, возникающих в процессе функционирования информационной системы, имеется необходимость проведения тестирования. Тестирование проводится при помощи метода чёрного ящика. С целью тестирования было проведено несколько типичных пользовательских сценариев, позволяющих узнать, верно ли функционирует разрабатываемая система. Тестировалось поведение основных страниц, позволяющих создать аккаунт на ресурсе, осуществить покупку/продажу акции и провести обмен денежными средствами. В результате тестирования не было выявлено критических ошибок. Результаты тестирования предоставлены в таблицах, содержащихся в приложении Г к данной работе.

Заключение

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

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

Дальнейшие исследования могут быть направлены на расширение функциональной составляющей разработанной информационной системы путём доработки программного кода смарт-контракта и веб-сайта, взаимодействующего с ним.

Библиографический список

1. J. Goldenfein, A. Leiter, Legal Engineering on the Blockchain: `Smart Contracts' as Legal Conduct // Law Critique. Vol. 28. 2018. P. 15.

2. E. Mik, Smart contracts: terminology, technical limitations and real world complexity // Law, Innovation and Technology. Vol. 9. №2. 2017. Pp. 269-300.

3. M.B. Abramowicz, Peer-to-Peer Law, Built on Bitcoin // GWU Law School Public Law Research Paper. 2015. P. 67.

4. A. Kosba, A. Miller, E. Shi, Z. Wen, C. Papamanthou, Hawk: The Blockchain Model of Cryptography and Privacy-Preserving Smart Contracts // IEEE Symposium on Security and Privacy. 2016. Vol. 1. Pp. 839-858.

5. K. Christidis, M. Devetsiokiotis, Blockchains and Smart Contracts for the Internet of Things // IEEE Access. 2016. Vol.4. Pp. 2292-2303.

6. P.U. Eze, C.R. Okpara, T. Eziokwu, A Triplicate Smart Contract Model using Blockchain Technology // Disruptive Computing, Cyber-Physical Systems (CPS), and Internet of Everything (IoE). 2017. Pp. 1-10.

7. M. Giancaspro, Is a `smart contract' really a smart idea? Insights from a legal perspective // Computer Law & Security Review. 2017. Vol. 33. №6. P. 22.

8. C.D. Clack, V.A. Bakshi, L. Braine, Smart Contract Templates: foundations, design landscape and research directions // CoRR. 2016. P. 15

9. E. Androulaki, A. Barger, V. Bortnikov, C. Cachin, K. Christidis, A. De Caro, D. Enyeart, C. Ferris, G. Laventman, Y. Manevich, S. Muralidharan, C. Murthy, B. Nguyen, M. Sethi, G. Singh, K. Smith, A. Sorniotti, C. Stathakopoulou, M. Vukoliж, S. Weed Cocco, J. Yellick, Hyperledger Fabric: A Distributed Operating System for Permissioned Blockchains // Thirteenth EuroSys Conference. Porto, Portugal. 2018. P. 15.

10. R. Gendal Brown, J. Carlyle, I. Grigg, M. Hearn, Corda: An Introduction // Corda.net. 2017. P. 15.

11. G. Wood, Ethereum: A Secure Decentralised Generalised Transaction Ledger // ETHCore.IO. 2014. P. 32.

12. J. Ecendance, U. Ehondor, Developer and Entrepreneur Guide to EOS Blockchain // 2018. P. 197.

13. Фримен А., Сандерсон С., ASP.NET MVC 3 Framework с примерами на C# для профессионалов // 2011 г., 672 стр., М: Apress.

14. C. Hur, L. Ubelhor, Developing Business Applications for the Web: With HTML, CSS, JSP, PHP, ASP.NET and Javascript // 2017 г., 576 стр., М: Mc Press.

15. M. Valenta, P. Sandner, Comparison of Ethereum, Hyperledger Fabric and Corda // Frankfurt School Blockchain Center. 2017. P. 30.

Размещено на allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.