9) Программа должна предусматривать возможность введения новых групп симметрии, нового соединения с его кристаллографическими данными с последующим расчетом структурных характеристик.
Данные функциональные требования к расширению для визуализации кристаллических объектов также представлены в графическом виде на UML-диаграмме прецедентов использования (рис. 9).
Рис. 9 UML - диаграмма прецедентов использования основной функциональности программы
3.2 Средства и инструменты разработки
При выборе технологий для разработки текущего приложения использовались следующие объективные критерии:
· Размер и тип приложения
· Определение основного функционала
· Сложность проекта
· Наличие готовых библиотек и решений
· Доступные инструменты разработки
· Кроссплатформенность
· Возможность внедрения дополнительного функционала
Также немалую роль сыграли следующие аспекты:
· Текущий опыт и уровень знаний языков программирования
· Дальнейшая поддержка
· Гибкость решения
Таким образом, выбирая по данным критериям происходит экономия времени и сил для реализации текущего проекта. В таблице 4 приведено описания выбранных технологий и инструментов, а также приведено обоснования, для чего они нужны в проекте.
Таблица 4
Обоснование выбора технологий и инструментов
|
Инструмент / Технология |
Применение в проекте |
Описание |
Обоснование |
|
|
С# |
Язык программирование |
Объектно-ориентированный язык, поддерживающий полиморфизм, наследование, перегрузку операторов, статическую типизацию. |
Является одним из самых востребованных языков программирования. Используется при написании, как десктопных приложений, так и веб-серверов |
|
|
Платформа.NET |
Платформа для создания приложений. В данном случае - ASP.NET |
Общеязыковая среда исполнения |
- Поддержка нескольких языков - Кроссплатформенность - Мощная библиотека классов - Разнообразие технологий - Автоматическая сборка мусора [23] |
|
|
Phoria [24] |
Дополнительная библиотека для отображения 3D объектов |
Библиотека JavaScript для простой 3D-графики на холсте 2D рендерера. |
Работает на любом устройстве, которое может отображать HTML5 Canvas |
|
|
JavaScript |
Язык программирования frontend-части приложения |
Интерпретируемый язык программирования, который своевременно обновляет информацию на странице |
Возможность реализовывать сложное отображение веб-страницы - отображение представлений на 2D и 3D проекции, проверка корректности ввода данных в настройках |
|
|
HTML |
Отображение данных, контента веб-страницы |
Язык разметки, определяющий базовое содержание страницы и расположении блоков |
- Базовый строительный блок - Отображение всех необходимых элементов на странице |
|
|
CSS |
Стилизация приложения |
Язык стилей, позволяющий определить каким образом объект, должен отображаться на странице |
- Избегание дублирования информации для стилей - Оформление представления внешнего вида страниц |
|
|
IIS |
Развертывание web - приложения |
Сервис для работы с веб-сервером |
- Работает с протоколами HTTP/HTTPS - Поддержка компании Microsoft |
|
|
SQL Server |
База данных, хранение информации |
Высокопроизводительная СУБД для работы как в локальной сети, так и в облачной. |
- Хранение данных приложения - Упрощение развертывания - Интеграция структурированных данных |
|
|
TortoiseSVN [25] |
Контроль версий |
Простая в использовании программа контроля версий |
- Возможность управлять версиями приложения на различных этапах жизненного цикла - Возможность перемещать файлы |
3.3 Архитектура приложения
Приложение является клиент-серверным веб-приложением, поддерживающее кроссплатформенность и обработку информацию при визуализации соединений. В качестве архитектуры используется - ASP.NET.
ASP.Net -- это инфраструктура, которая используется для разработки веб-приложений. [25] Веб-страницы предоставляют простой способ объединения HTML, CSS и серверного кода.
Кроме того, приложения веб-страниц легко расширяются с помощью программируемых помощников для баз данных, графики, отображения данных и построения зависимостей.
Для создания динамичных сайтов обычно используется архитектурный паттерн MVC. Данный паттерн уже давно существует в разработке программного обеспечения. Все большинство языков и технологий используют данный подход с небольшими вариациями, но концептуально он остается тем же.
MVC разделяет приложение на три компонента - Модель, Представление и Контроллер.
· Модель: представляет оболочку данных. Класс в C # используется для описания модели. Объекты модели хранят данные, извлеченные из базы данных.
· Представление: пользовательский интерфейс. Просмотр данных модели дисплея для пользователя, а также возможность их изменять. Представление в ASP.NET MVC -- это HTML, CSS и некоторый специальный синтаксис (Razor), который облегчает взаимодействие с моделью и контроллером.
· Контроллер: обрабатывание запроса пользователя. В данном приложении пользователь использует представление и вызывает HTTP-запрос, который будет обработан контроллером. Контроллер обрабатывает запрос и возвращает соответствующее представление в качестве ответа. [26]
Клиент взаимодействует с серверами посредством HTTP запросов и ответов. В момент ввода URL-адреса в браузере, пользователь переходит на веб-сервер и направляется на контроллер. Контроллер выполняет связанное представление и модели для этого запроса, создает ответ и отправляет его обратно в браузер. Данное взаимодействие показано на рисунке 8.
Для хранения табличных значений предусмотрено использование серверной базы данных, так как это способствуют снижению нагрузки при работе с данными, позволяет на протяжении всего времени хранить и обрабатывать константные значения, а также сохраняет текущие изменения. Более того, в этом случае уменьшается избыточность и противоречивость информации, так как данные сгруппированы таким образом, что обеспечена целостность данных и уменьшен риск создания дубликатов.
При проектировании баз данных используется подход - Code First. В подходе Code-First происходит сосредоточение на домене приложения и сначала создаются классы для работы с приложением, а не происходит разработка собственной базы данных, а толкько потом происходит генерация классов, что будет соответствовать дизайну базы данных. Основные преимущества данного подхода:
· Никакой код не генерируется самостоятельно
· База является обычным хранилищем, ее легко удалить
· Простая установка среды разработки: достаточно скачать код и запустить проект
Рис. 12 Подход Code-First
Как видно на рисунке выше, Entity Framework API создает базу данных на основе классов и конфигурации домена приложения. Что означает, что сначала необходимо начать кодирование на C#, а затем Entity Framework создает базу данных из кода приложения. [27]
Выводы по главе
В главе были рассмотрены основные инструменты и технологии, используемые в приложении, описаны архитектура приложения и её составляющие. В качестве основных инструментов на backend-части используется язык С#, который позволяет реализовать оболочку данных и взаимодействие модели и контроллера. В то же время для frontend-части используются языки: JavaScript, HTML, CSS, что способствует отображению представления на страницах.
При работе с СУБД используется подход Code-First, способствующих первоначальному написанию кода, а дальше генерации базы данных.
Для создания web-приложения используется архитектурный паттерн - MVC, что способствует комбинирование основных технологий, таких как: база данных, HTML -разметки и исполняемый код.
Заключение
Программа предназначена для визуализации кристаллических структур неорганических соединений разных симметрий и их деталей (отдельные полиэдры и их сочленение) с возможностью поворота и выбора необходимого ракурса в соответствующей координатной системе, расчета структурных параметров (межатомных расстояний, валентных углов, объема полиэдра) и валентных усилий для каждого катиона и аниона, нахождения пустот в структурах с их размерами и координатами центра, построения зависимостей структурных параметров и их сопоставления.
Аналогичная процедура возможна для новых соединений при изменении состава - изоморфное замещение в катионной и анионной позициях, а при необходимости и симметрии, с дальнейшим сопоставлением рассчитанных межатомных расстояний катион-катион, катион-анион, анион-анион и валентных углов. [18]
Расчет валентных усилий для конкретного сочетания катион-анион (т.е. для конкретного состава соединений) позволяет ограничить число приемлемых для данного вещества кристаллических структур, что является основой прогнозирования новых соединений, а также может служить контролем правильности определения кристаллической структуры.
На основе основной триады фундаментальной связи «состав-строение-свойства» становится возможным управление свойствами материала направленным изменением состава, а отсюда и строения.
Программа может быть применена в высших учебных заведениях, академических, отраслевых и научно-исследовательских институтах, занимающихся получением, изучением и применением перспективных кристаллических материалов разных композиций.
Применение программы позволит сократить количество экспериментов по методу «проб и ошибок» и прогнозировано подойти к получению нужного материала с необходимым набором состава и структурных параметров, а отсюда и эксплуатационных свойств.
В качестве возможных дальнейших шагов по развитию системы можно рассматривать:
· Внедрение данного продукта на компьютер заказчика
· Модернизация и улучшение алгоритма построения и определения полиэдров
· Нахождение пустот в структуре с вычислением их размеров и координат центров
· Построение зависимостей между структурными параметрами отдельных соединений и разных (для сравнения и сопоставления)
· Расчет валентных усилий
· Объединение функционала других программ
· Модернизация загрузки соединений путем добавления файла
Список используемой литературы
1. “Crystal and Molecular Structure Visualization”// [Электронный ресурс]: Diamond. Режим доступа: https://www.crystalimpact.com/diamond/, свободный. (дата обращения: 04.02.2020).
2. The Materials Project // [Электронный ресурс] Режим доступа: https://materialsproject.org/, свободный. (дата обращения: 21.11.2019).
3. CrystalMaker // [Электронный ресурс] Режим доступа: https://library.stanford.edu/science/software/crystalmaker, свободный. (дата обращения: 21.11.2019).
4. Shape Software // [Электронный ресурс]. Режим доступа: http://www.shapesoftware.com/00_Website_Homepage/, свободный. (дата обращения: 15.02.2020).
5. XtalDraw // [Электронный ресурс]. Режим доступа: https://www.geo.arizona.edu/xtal/xtaldraw/xtaldraw.html, свободный. (дата обращения: 15.02.2020).
6. Основы кристаллохимии // [Электронный ресурс]. Режим доступа: http://icchair.niic.nsc.ru/lectures/4.shtml, свободный. (дата обращения: 21.03.2020).
7. Валентность // [Электронный ресурс]. Режим доступа: https://en.wikipedia.org/wiki/Valence_(chemistry), свободный. (дата обращения: 15.02.2020).
8. N. E. Breseand M. O'Keeffee. “Bond-Valence Parameters for Solids” 1991, pp. 1-4.
9. David Brown. “The Chemical Bond in Inorganic Chemistry: The Bond Valence Model, Edition 2” 2016, pp. 16-22.
10. Olivier Charles Gagnй. “Comprehensive derivation of bond-valence parameters for ion pairs involving oxygen” 2015, pp. 562-578.
11. Основы кристаллохимии // [Электронный ресурс]. Режим доступа: https://portal.tpu.ru/SHARED/e/EIKUPREKOVA/Teaching/Tab3/Tab/lection%206.pdf, свободный. (дата обращения: 04.04.2020).
12. ПРОСТРАНСТВЕННЫЕ ГРУППЫ СИММЕТРИИ // [Электронный ресурс]. Режим доступа: http://repo.ssau.ru/bitstream/Uchebnye-posobiya/Prostranstvennye-gruppy-simmetrii-Elektronnyi-resurs-ucheb-posobie-po-specialnosti-040501-Fundam-i-priklad-himiya-i-napravleniya-040301-Himiya-68099/1/Сережкин%20В.Н.%20Пространственные%20группы.pdf, свободный. (дата обращения: 16.04.2020).
13. Координационное число // [Электронный ресурс]. Режим доступа: https://ru.wikipedia.org/wiki/Координационное_число, свободный. (дата обращения: 20.04.2020).
14. Трехмерные преобразования и проекции // [Электронный ресурс]. Режим доступа: http://compgraph.tpu.ru/3d.htm, свободный. (дата обращения: 23.04.2020).
15. How to render 3D in 2D canvas // [Электронный ресурс]. Режим доступа: https://www.basedesign.com/blog/how-to-render-3d-in-2d-canvas, свободный. (дата обращения: 23.04.2020).
16. Строение и физические свойства кристаллов // [Электронный ресурс]. Режим доступа: https://kf-info.urfu.ru/fileadmin/user_upload/site_62_6389/pdf/crystals.pdf, свободный. (дата обращения: 23.04.2020).
17. Расстояние межатомное // [Электронный ресурс]. Режим доступа: https://chem21.info/info/12685/, свободный. (дата обращения: 19.04.2020).
18. Harry B Gray. “Electrons and chemical bonding” 1965, pp. 3-16
19. Нанивская Е.М. Программа прогнозирования динамики изменения структуры соединений при вариации состава: Курсовая работа / Нанивская Екатерина Михайловна; НИУ ВШЭ. М., 2018. 37 с.
20. ТЕОРИЯ ВАЛЕНТНОСТИ // [Электронный ресурс]. Режим доступа: https://studfile.net/preview/8176758/, свободный. (дата обращения: 05.05.2020).
21. Polyhedra Volume Calculations - A JavaScript Implementation // [Электронный ресурс]. Режим доступа: https://www.codeproject.com/Articles/13666/Polyhedra-Volume-Calculations-A-JavaScript-Impleme, свободный. (дата обращения: 06.05.2020).
22. Volume of a Polyhedron // [Электронный ресурс]. Режим доступа: https://wrf.ecse.rpi.edu/Research/Short_Notes/volume.html, свободный. (дата обращения: 06.05.2020).
23. Язык C# и платформа.NET Core // [Электронный ресурс]. Режим доступа: https://metanit.com/sharp/tutorial/1.1.php/, свободный. (дата обращения: 06.05.2020).
24. Phoria.js // [Электронный ресурс]. Режим доступа: https://github.com/kevinroast/phoria.js?files=1, свободный. (дата обращения: 06.05.2020).
25. What is ASP.NET? and it's ARCHITECTURE // [Электронныи? ресурс]. Режим доступа: https://www.guru99.com/what-is-asp-dot-net.html, свободныи?. (дата обращения: 07.05.2020).
26. ASP.NET MVC Architecture // [Электронныи? ресурс]. Режим доступа: https://www.tutorialsteacher.com/mvc/mvc-architecture, свободныи?. (дата обращения: 07.05.2020).
27. What is Code-First? // [Электронныи? ресурс]. Режим доступа: https://www.entityframeworktutorial.net/code-first/what-is-code-first.aspx, свободныи?. (дата обращения: 07.05.2020).
28. Кузьмичева Г.М. КРИСТАЛЛОХИМИЧЕСКИЕ ЗАКОНОМЕРНОСТИ В ПЕРИОДИЧЕСКОЙ СИСТЕМЕ ЭЛЕМЕНТОВ Д.И. МЕНДЕЛЕЕВА. ОСНОВНЫЕ КРИСТАЛЛИЧЕСКИЕ СТРУКТУРЫ СОЕДИНЕНИЙ: УЧЕБНОЕ / Кузьмичева Г.М, 2000. 73 с.