Дипломная работа: Программа для визуального анализа структурных характеристик кристаллических объектов

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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 с.