Разработка web-приложения решения задачи оптимизации состава многокомпонентной плавильной шихты



Download 2,24 Mb.
Pdf ko'rish
bet5/5
Sana12.07.2022
Hajmi2,24 Mb.
#782972
1   2   3   4   5
Bog'liq
shporA

Математическая модель задачи. 
Обозначим 
x
i
 
содержание 
i
-го компо-
нента (%), используемого для приготовления плавильной шихты. Очевидно, 
что 
x
i

0, 
i
= 1, 2, …, 
N
(
N
– общее количество компонентов шихты). При 
условии, что содержание химического элемента 
B
j
(
j
= 1, …, 
M
, где 
М
– об-
щее количество химических элементов) в 
i
-м компоненте плавильной шихты 
равно 
a
ij
, тогда содержание химического элемента 
B
j
 
в шихте составит вели-
чину 0,01


=
N
i
i
ij
x
a
1
, а стоимость компонентов, израсходованных для приготов-
ления 1 т шихты, будет равна 0,01 
 
=
N
i
i
i
x
c
1
усл.ед./т. 
С учетом ограничений на содержание элементов 
B
j
в шихте, для вели-
чин x
i
получим следующие неравенства: 
M
1,2,...,
j
1
=




=
,
b
x
a
b
max
,
j
N
i
i
ij
min
,
j



12 
Таким образом, математическая модель задачи об оптимальном составе 
многокомпонентной сталеплавильной шихты принимает вид 
Целевая функция:
;
min
x
c
)
x
(
Z
X
N
i
i
i

 
=
=
1
(1.1) 
Ограничения: 
;
b
x
a
,
max
,
j
N
i
i
ij



=
1
01
0
(1.2) 
;
b
x
a
,
min
,
j
N
i
i
ij



=
1
01
0
(1.3) 
N).
1,2,...,
(j
100
0
1
=

=

=
N
j
j
j
,
x
,
x
(1.4)
1.3 Современные компьютерные средства решения задач оптимизации 
Оптимизация – целенаправленная деятельность, заключающаяся в по-
лучении наилучших результатов при соответствующих условиях. 
Методы оптимизации могут быть скалярными (оптимизация проводит-
ся по одному критерию), векторными (оптимизация проводится по многим 
критериям), поисковыми (включают методы регулярного и методы случайно-
го поиска), аналитическими (методы дифференциального исчисления, мето-
ды вариационного исчисления и др.), вычислительными (основаны на мате-
матическом программировании, которое может быть линейным, нелиней-
ным, дискретным, динамическим, стохастическим, эвристическим и т.д.), 
теоретико-вероятностными, теоретико-игровыми и др. [2].
Программа Maple – своего рода патриарх в семействе систем символь-
ной математики и до сих пор является одним из лидеров среди универсаль-
ных систем символьных вычислений. Maple предоставляет удобную среду 
для компьютерных экспериментов, в ходе которых пробуются различные 
подходы к задаче, анализируются частные решения, а при необходимости 
программирования отбираются требующие особой скорости фрагменты. Па-


13 
кет позволяет создавать интегрированные среды с участием других систем и 
универсальных языков программирования высокого уровня. Когда расчеты 
произведены и требуется оформить результаты, то можно использовать сред-
ства этого пакета для визуализации данных и подготовки иллюстраций для 
публикации. Для завершения работы остается подготовить печатный матери-
ал в среде Maple, а затем можно приступать к очередному исследованию [3].
MathCad – редактор математических текстов с широкими возможно-
стями символьных вычислений и прекрасным интерфейсом.
Все вычисления 
здесь осуществляются на уровне визуальной записи выражений в общеупо-
требительной математической форме. Пакет имеет хорошие подсказки, по-
дробную документацию, функцию обучения использованию, целый ряд до-
полнительных модулей и приличную техническую поддержку производите-
ля. Пакет имеет удобные возможности импорта/экспорта данных. Например, 
можно работать с электронными таблицами Microsoft MS Excel прямо внутри 
MathCad-документа [4]. 
Solver Foundation – это библиотека для математического программиро-
вания, моделирования и оптимизации. С помощью математического модели-
рования решаются задачи принятия решений. Solver Foundation предлагает 
высококачественные инструменты для разработчиков, собирающихся ис-
пользовать методы оптимизации в своих решениях, позволяя решать модели 
в приложениях даже разработчикам, которые не являются экспертами в ма-
тематическом моделировании. 
На сегодняшний момент Solver Foundation обладает следующими клю-
чевыми возможностями: 

моделирование и решение сценариев с помощью ограничений, целей 
и данных; 

разработка на языке Optimization Modeling Language (OML), импера-
тивно в C#, функционально в F# или на любом другом языке .NET; 

встроенные решатели задач для наиболее распространенных типов 
моделей; 


14 

интеграция с популярными инструментами Microsoft Office Excel и 
SharePoint для создания и решения моделей. 
Хотя задачи оптимизации скорее математические, чем типовые разра-
ботки. Все больше и больше разработчиков обучаются самостоятельно, ми-
нуя университеты, в которых преподают оптимизацию и высшую математи-
ку. Большим преимуществом Solver Foundation является то, что можно со-
средоточиться на моделировании и разработке, и не нужно заботиться о том, 
как работают алгоритмы [5]. 
1.4 Средства реализации современных web-приложений 
Для создания веб-приложений на стороне сервера используются разно-
образные технологии и любые языки программирования, способные осу-
ществлять вывод в стандартную консоль. 
HTML – язык разметки гипертекста (Hypertext Markup Language), или, 
как его чаще называют. HTML – это компьютерный язык, лежащий в основе 
World Wide Web (Всемирной Паутины). Благодаря языку HTML любой текст 
можно разметить, преобразовав его в гипертекст с последующей публикаци-
ей в Web. 
Язык HTML имеет собственный набор символов, с помощью которых 
Web-браузеры отображают страницу. Эти символы, называемые дескрипто-
рами, включают в себя элементы, необходимые для создания гиперссылок. 
Одной из отличительных особенностей HTML-документов является то, 
что сам документ содержит только текст, а все остальные объекты встраива-
ются в документ в момент его отображения Браузером с помощью специаль-
ных тэгов и хранятся отдельно. При сохранении HTML-файла в месте раз-
мещения документа создается папка, в которую помещаются сопутствующие 
ему графические элементы оформления [6]. 
CSS (англ. Cascading Style Sheets «каскадные таблицы стилей») – фор-
мальный язык описания внешнего вида документа (веб-страницы), написан-


15 
ного с использованием языка разметки (чаще всего HTML или XHTML). 
Также может применяться к любым XML-документам, например, к SVG или 
XUL. 
CSS используется создателями веб-страниц для задания цветов, шриф-
тов, стилей, расположения отдельных блоков и других аспектов представле-
ния внешнего вида этих веб-страниц. Основной целью разработки CSS явля-
лось отделение описания логической структуры веб-страницы (которое про-
изводится с помощью HTML или других языков разметки) от описания 
внешнего вида этой веб-страницы (которое теперь производится с помощью 
формального языка CSS). Такое разделение может увеличить доступность 
документа, предоставить большую гибкость и возможность управления его 
представлением, а также уменьшить сложность и повторяемость в структур-
ном содержимом. 
Кроме того, CSS позволяет представлять один и тот же документ в раз-
личных стилях или методах вывода, таких как экранное представление, пе-
чатное представление, чтение голосом (специальным голосовым браузером 
или программой чтения с экрана), или при выводе устройствами, использу-
ющими шрифт Брайля [7].
JavaScript – язык программирования JavaScript разработан фирмой 
Netscape для создания интерактивных HTML-документов. Это объектно-
ориентированный язык разработки встраиваемых приложений, выполняю-
щихся как на стороне клиента, так и на стороне сервера. Синтаксис языка 
очень похож на синтаксис Java, поэтому его называют Java-подобным. 
Основные области применения JavaScript делятся на следующие кате-
гории: 

динамическое создание документа с помощью сценария; 

оперативная проверка достоверности заполняемых пользователем 
полей форм HTML до передачи их на сервер; 

создание динамических HTML-страниц совместно с каскадными 
таблицами стилей и объектной моделью документа; 


16 

взаимодействие с пользователем при решении "локальных" задач, 
решаемых приложением JavaScript, встроенном в HTML-страницу [8].
PHP – (англ. PHP: Hypertext Preprocessor – «PHP: препроцессор гипер-
текста»; первоначально PHP/FI (Personal Home Page / Form Interpreter), а поз-
же названный Personal Home Page Tools – «Инструменты для создания пер-
сональных веб-страниц») – скриптовый язык общего назначения, интенсивно 
применяемый для разработки веб-приложений. 
В первую очередь PHP используется для создания скриптов, работаю-
щих на стороне сервера, для этого его, собственно, и придумали. PHP спосо-
бен решать те же задачи, что и любые другие CGI-скрипты, в том числе об-
рабатывать данные html-форм, динамически генерировать html страницы и 
тому подобное. Но есть и другие области, где может использоваться PHP. 
Вторая область – это создание скриптов, выполняющихся в командной 
строке. То есть с помощью PHP можно создавать такие скрипты, которые бу-
дут исполняться, вне зависимости от web-сервера и браузера, на конкретной 
машине. 
И последняя область – это создание GUI-приложений (графических ин-
терфейсов), выполняющихся на стороне клиента [9].
C# (C Sharp) – объектно-ориентированный язык программирования. C# 
относится к семье языков с C-подобным синтаксисом, из них его синтаксис 
наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддер-
живает полиморфизм, перегрузку операторов (в том числе операторов явного 
и неявного приведения типа), делегаты, атрибуты, события, свойства, обоб-
щённые типы и методы, итераторы, анонимные функции с поддержкой за-
мыканий, LINQ, исключения, комментарии в формате XML. 
Платформа ASP.NET Core представляет технологию от компании 
Microsoft, предназначенную для создания различного рода веб-приложений: 
от небольших веб-сайтов до крупных веб-порталов и веб-сервисов. С одной 
стороны, ASP.NET Core является продолжением развития платформы 
ASP.NET. Но, с другой стороны, это не просто очередной релиз. Выход 


17 
ASP.NET Core фактически означает революцию всей платформы, ее каче-
ственное изменение. ASP.NET Core теперь полностью является opensource-
фреймворком. Все исходные файлы фреймворка доступны на GitHub. 
ASP.NET Core может работать поверх кроссплатформенной среды .NET 
Core, которая может быть развернута на основных популярных операцион-
ных системах: Windows, Mac OS, Linux. И таким образом, с помощью 
ASP.NET Core мы можем создавать кроссплатформенные приложения. И хо-
тя Windows в качестве среды для разработки и развертывания приложения до 
сих пор превалирует, но теперь уже мы не ограничены только этой операци-
онной системой. То есть мы можем запускать веб-приложения не только на 
ОС Windows, но и на Linux и Mac OS. А для развертывания веб-приложения 
можно использовать традиционный IIS, либо кроссплатформенный веб-
сервер Kestrel [10].
1.5 Постановка цели и задач исследования 
Цель данного исследования направлена на создание веб-сервиса, поз-
воляющего автоматизировать решение задачи оптимизации состава много-
компонентной плавильной шихты. 
Проводимое исследование позволит рассчитывать состав шихты, выво-
дить все элементы и компоненты данной шихты для пользователя, что может 
поспособствовать в будущем для усовершенствования процесса получения 
плавильной шихты. 
Задачи, которые необходимо выполнить для достижения цели исследо-
вания: 
1.
Ознакомиться с разработанными технологиями по оптимизации со-
става шихты. 
2.
Создать алгоритмическое обеспечение математической модели вы-
бора оптимального состава многокомпонентной плавильной шихты.
3.
Определиться с выбором средств разработки web-сервиса. 


18 
4.
Создать в системе Jira поэтапное выполнение проекта. 
5.
Сформулировать требования к функциональным характеристикам 
сервиса. 
6.
Сформулировать требования к пользовательскому интерфейсу сер-
виса. 
7.
Разработать функциональную модель программного обеспечения. 
8.
Разработать архитектуру системы оптимизации состава плавильной 
шихты. 
9.
Спроектировать и реализовать базу данных. 
10.
Создать репозиторий на ресурсе по управлению версиями 
(Bitbucket). 
11.
Разработать пользовательское приложение. 
12.
Реализовать справочную систему. 
13.
Развернуть и настроить систему сервиса. 
14.
Настроить бесперебойную отладку сервиса. 
15.
Введение исходных данных и проведение необходимых расчетов. 
16.
Вывод на экран результатов в виде диаграммы и таблиц. 
17.
Сформировать отчет во внешний файл.
1.6 Выводы 
Подводя итоги к 1 главе можно сделать вывод о том, что было рас-
смотрено получение плавильной шихты, рассмотрена математическая модель 
выбора оптимального состава многокомпонентной плавильной шихты, при-
ведены цели и задачи данного проекта, рассмотрены примеры современных 
средств решения задач оптимизации, а также средств реализации современ-
ных web-приложений. 


19 
2 ПРОЕКТИРОВАНИЕ И РЕАЛИЗАЦИЯ WEB-ПРИЛОЖЕНИЯ 
ОПТИМИЗАЦИИ СОСТАВА МНОГОКОМПОНЕНТНОЙ
ПЛАВИЛЬНОЙ ШИХТЫ
2.1 Организация процесса разработки в системе Jira 
Jira – коммерческая система отслеживания ошибок, предназначена для 
организации взаимодействия с пользователями, хотя в некоторых случаях 
используется и для управления проектами. 
Благодаря данному сервису мне будет удобно выполнять каждый этап 
своего проекта, так как каждую поставленную задачу я смогу создать в JIRA, 
что значительно упростить процесс разработки проекта. Также, мне удобнее 
будет отслеживать свой прогресс по ходу создания web-сервиса. 
На рисунках 2.1–2.11 отображены задачи, которые были созданы в си-
стеме JIRA. 
Рисунок 2.1 – Окно задачи «Установка SQL Server 2014» 
В данной задаче необходимо произвести установку SQL Server 2014, 
который позволит нам спроектировать базу данных. 


20 
Рисунок 2.2 – Окно задачи «Спроектировать базу данных» 
В данной задаче необходимо спроектировать базу данных, в которой 
должны содержаться справочники компонентов шихты, химических элемен-
тах, а также сведения о содержании химических элементов в компонентах. 
Реализовать проект с базой данных. 
Рисунок 2.3 – Окно задачи «Скорректировать схему базы данных» 
В данной задаче необходимо в схеме базы данных учесть содержание 
минимального и максимального содержания химических элементов в каждом 
компоненте. 


21 
Рисунок 2.4 – Окно задачи «Модель расчета задачи оптимизации» 
Для создания модели расчета необходимо создать на платформе MVC 
модель для расчета задачи оптимизации плавильной шихты. Использовать 
математическую библиотеку Microsoft Solver Foundation.
Рисунок 2.5 – Окно задачи «Создать личный кабинет пользователя» 


22 
В данной задаче необходимо было настроить регистрацию пользовате-
лей в программе. Сделать личный кабинет пользователя. В личном кабинете 
пользователь должен: 

видеть демонстрационный пример расчета задачи оптимизации; 
Каждый зарегистрированный пользователь в своем личном кабинете 
вводит, редактирует и удаляет только свои данные в таблицы. Это не мешает 
остальным зарегистрированным пользователям. 
Рисунок 2.6 – Окно задачи «Усовершенствовать условия решения
задачи» 
В ходе решения данной задачи был усовершенствован проект. Было 
сделано решение задачи для условия произвольного количества компонентов 
плавильной шихты. Компоненты шихты пользователь выбирает самостоя-
тельно.


23 
Рисунок 2.7 – Окно задачи «Настроить обмен с репозиторием Bitbucket» 
Для хранения версий проекта был выбрана система управления верси-
ями Bitbucket. 
Рисунок 2.8 – Окно задачи «Создать интерфейс ввода исходных данных» 
В данной задаче произведена подготовка web-страницы ввода исход-
ных данных. 
На странице был обеспечен ввод/корректировка следующих исходных 
данных: 

ограничения на содержание химических элементов в шихте, % масс.


24 
Рисунок 2.9 – Окно задачи «Отображение результатов расчета
в численном виде» 
На данном этапе была создана web-страница с отображением результа-
тов расчета задачи оптимизации в численном виде. 
Рисунок 2.10 – Окно задачи «Диаграмма с результатами расчета» 
В данной задаче необходимо сформировать диаграмму по результатам 
расчета задачи оптимизации плавильной шихты.


25 
Рисунок 2.11 – Окно задачи «Экспорт результатов в Excel» 
В данной задаче был реализована функция вывода варианта расчета во 
внешний файл Excel. В файле отображены название проекта, дата создания, 
все исходные данные, результаты расчета. Ссылка на функцию формирова-
ния файла Excel отображена на странице с результатами расчета. 
2.2 Требования к функциональным характеристикам системы 
Требования, предъявляемые к функциональным характеристикам ин-
формационной системы: 
1.
Регистрация и возможность ввода реквизитов уже зарегистрирован-
ному пользователю. 
2.
Построение базы данных: варианты расчета, компоненты шихты, 
химические элементы, состав компонентов шихты. 
3.
Автоматическое заполнение базы данных. 
4.
Реализация расчета состава плавильной шихты. 
5.
Визуализация результатов расчета в численном и графическом виде. 
6.
Экспорт результатов во внешний файл. 


26 
2.3 Требования к пользовательскому интерфейсу приложения 
Требования, предъявляемые к пользовательскому интерфейсу инфор-
мационной системы следующие. 
1.
Информационная система должна поддерживать русский язык. 
2.
Элементы интерфейса (пункты меню, кнопки, поля ввода в формах, 
раскрывающиеся списки и т.д.) должны адаптироваться по размеру под 
устройство, на котором просматривается система, и под основной сценарий 
использования данного устройства. 
3.
Дизайн пользовательского интерфейса должен быть разработан с 
учетом принципа сохранения работоспособности при потере части функцио-
нальности системы. Некоторые элементы дизайна могут иметь упрощенный 
вид, но основной функционал должен оставаться доступным. 
4.
Интерфейс должен быть спроектирован с учетом целей, мотивов и 
потребностей целевой аудитории при использовании системы веб-
статистики. 
5.
Интерфейс системы должен позволять решать задачи пользователя 
наиболее быстрым, простым и удобным из возможных способов.
6.
Интерфейс системы должен быть рассчитан на пользователей, не 
имеющих специальных технических знаний и навыков в области компьютер-
ной техники, и быть легко осваиваем ими, желательно без необходимости 
обращения в службу техподдержки. 
7.
На сервисе необходимо присутствие контактной информации разра-
ботчика. 
Можно сделать вывод, что дизайн и удобство интерфейса должны со-
ответствовать ожиданиям современных пользователей, которые имеют опыт 
работы с лучшими образцами подобных сервисов. 


27 
2.4 Разработка функциональной модели программного обеспечения 
При проектировании web-приложения оптимизации состава многоком-
понентной плавильной шихты была использована методология функцио-
нального моделирования IDEF0. Методология используется для создания 
функциональной модели, описания структуры и функций системы, а также 
для отображения потоков информации и материальных объектов, связываю-
щих эти функции. 
Описание системы с помощью IDEF0 называется функциональной мо-
делью. Функциональная модель предназначена для описания существу-ющих 
бизнес-процессов, в котором используются как естественный, так и графиче-
ский языки. Для передачи информации о конкретной системе источником 
графического языка является сама методология IDEF0. 
Методология IDEF0 предписывает построение иерархической системы 
диаграмм - единичных описаний фрагментов системы. Сначала проводится 
описание системы в целом и ее взаимодействия с окружающим миром (кон-
текстная диаграмма), после чего проводится функциональная декомпозиция - 
система разбивается на подсистемы и каждая подсистема описывается от-
дельно (диаграммы декомпозиции). Затем каждая подсистема разбивается на 
более мелкие и так далее до достижения нужной степени подробности [11].
Для построения функциональной модели был выбран Ramus Education-
al. Для описания разрабатываемой информационной системы необходимо 
рассмотреть верхний уровень, который представлен на рисунке 2.12. 


28 
Рисунок 2.12 – Верхний уровень функциональной модели 
На первом уровне функциональной модели присутствуют важные по-
токи входной информации, которые проходят через проектируемую структу-
ру. На данном уровне можно увидеть, что система на входt принимает рекви-
зиты для входа в личный кабинет. На выходе системы будут получены ре-
зультаты расчета задач оптимизации и отчет по решению задач оптимизации. 
Интерфейс можно разбить на 3 блока: методика расчета, требования к 
предоставлению результатов и нормативно-справочная информация (НСИ). 
Необходимо учесть, что под документами понимается инструкции ведения 
технологических процессов, существующих на предприятии и утверждённых 
в качестве стандарта предприятия и руководства пользователей для работы с 
автоматизированными рабочими местами.
Математическая модель системы состоит из набора уравнений для рас-
чета химического состава конечной плавильной шихты и определения опти-
мального количества компонентов и элементов, из которых состоит плавиль-


29 
ная шихта. Требования пользователей описывают необходимый функционал 
системы, способы отображения информации. 
Механизмами исполнения функциональной модели являются аппартно-
программное обеспечение компьютера и пользователь. 
2.4.1 Декомпозиция первого уровня.
 
Информационная система разбита 
на несколько подсистем, которые взаимосвязаны между собой по методоло-
гии функционального моделирования IDEF0. Данные подсистемы представ-
лены на рисунке 2.13. 
Рисунок 2.13 – Декомпозиция первого уровня функциональной модели
оптимизации плавильной шихты 
Функция «Аутентификация и авторизация пользователя» является пер-
вым этапом при решении задачи оптимизации состава многокомпонентной 
плавильной шихты. 
Функция «Формирование исходных данных» позволяет сформировы-
вать данные, которые позволят произвести дальнейший расчет. После фор-


30 
мирования эти данные будут использоваться для дальнейшего расчета и по-
строения графической диаграммы. 
Функция «Расчет состава плавильной шихты» позволяет произвести 
расчет и получить результат. 
Функция «Формирование результатов на экране» позволяет визуализи-
ровать результаты расчета и представить их в виде диаграммы. 
Функция «Экспорт результатов расчета во внешний файл» позволяет 
экспортировать полученные результаты в файл Excel. Это позволит пользо-
вателю работать с результатами расчета в режиме «оффлайн». 
2.4.2 Декомпозиция функции А1 «Аутентификация и авторизация 
пользователя». Декомпозиция первой функции подразделяется на одну со-
ставляющую – «Регистрация пользователя» (рисунок 2.14). 
Рисунок 2.14 – Декомпозиция функции «А1» 
На входе в данную функцию будут получены «реквизиты входа», на 
выходе получается зарегистрированный пользователь, который, имея свои 
данные пользователя может спокойно осуществлять вход в систему. Реквизи-


31 
ты нового пользователя сохраняются и отправляются в базу данных для того, 
чтобы система запомнила данного пользователя. 
2.4.3 Декомпозиция функции А2 «Формирование исходных данных». 
Функция «Заполнение базы данных» позволяет пользователю заполнять базу 
данных исходными данным для дальнейшего расчета. Функция «Сформиро-
вать вариант исходных данных для расчета» позволяет пользователю сфор-
мировать вариант исходных данных, который также, в дальнейшем, понадо-
бится ему для дальнейшего расчета и построения диаграмм (рисунок 2.15). 
Рисунок 2.15 – Декомпозиция функции «А2» 
На выходе будет получен набор исходных данных для расчета. 
2.4.4 Декомпозиция функции «Расчет состава плавильной шихты». 
Функция «А31» позволяет учитывать ограничения химических элементов в 
шихте для расчета. Функция «А32» позволяет учесть стоимость компонентов 
шихты. По итогу, на выходе будут получены результаты расчета со всеми 
необходимыми ограничениями и учтенными позициями (рисунок 2.16). 


32 
Рисунок 2.16 – Декомпозиция функции «А3» 
2.4.5 Декомпозиция функции «Формирование результатов на экране». 
Функция «А41» отвечает за формирование таблиц с оптимальным со-
ставом шихты, состав уже с учтенными ограничениями. После формирование 
таблиц строится диаграмма, за которую отвечает функция «А42» и далее, на 
выходе, будут получены результаты расчета задачи оптимизации, рисунок 
2.17. 


33 
Рисунок 2.17 – Формирование результатов на экране 
2.4.6 Функция «Экспорт результатов во внешний файл».
 
Эта последняя 
функция, которая отвечает за экспорт результатов расчета в файл Excel. Да-
лее, если пользователь пожелает, то он сможет анализировать и работать с 
результатами в режиме «оффлайн», для этого ему не надо будет запускать 
веб-сервис и производить вновь расчет. Достаточно просто запустить экспор-
тированный файл и приступить к необходимым действиям.
 
2.5 
Разработка 
архитектуры 
системы 
оптимизации 
состава 
многокомпонентной плавильной шихты 
Архитектура – это структура программы или вычислительной системы, 
определяющая ее работу на самом высоком концептуальном уровне, включая 
аппаратные и программные компоненты, видимые снаружи свойства этих 
компонентов, отношения между ними, а также документирование системы 


34 
(см. рисунок 2.18). Документирование архитектуры упрощает процесс взаи-
модействия между участниками проекта, позволяет зафиксировать принятые 
на ранних этапах проектирования решения о высокоуровневом дизайне си-
стемы и использовать элементы этого дизайна и шаблоны повторно в других 
проектах. 
Любое веб-приложение представляет собой набор статических и дина-
мических веб-страниц. Статическая веб-страница — это страница, которая 
всегда отображается перед пользователем в неизменном виде. Веб-сервер от-
правляет страницу по запросу веб-браузера без каких-либо изменений. В 
противоположность этому, сервер вносит изменения в динамическую веб-
страницу перед отправкой ее браузеру. По причине того, что страница меня-
ется, она называется динамической [12].
Веб-приложение состоит из клиентской и серверной частей, тем самым 
реализуя технологию «клиент-сервер». Клиентская часть реализует пользова-
тельский интерфейс, формирует запросы к серверу и обрабатывает ответы от 
него. 
Серверная часть получает запрос от клиента, выполняет вычисления, 
после этого формирует веб-страницу и отправляет её клиенту по сети с ис-
пользованием протокола HTTP. Само веб-приложение может выступать в ка-
честве клиента других служб, например, базы данных или другого веб-
приложения, расположенного на другом сервере. Хранение данных програм-
мы осуществляется, в основном, на web-сервере, поддерживается использо-
вание серверов баз данных, обмен информацией происходит по сети [13].
Как правило, клиент – это браузер, но встречаются и исключения (в тех 
случаях, когда один веб-сервер выполняет запрос к другому, роль клиента 
играет первый). В классической ситуации (когда роль клиента выполняет 
браузер) для того, чтобы пользователь увидел графический интерфейс при-
ложения в окне браузера, последний должен обработать полученный ответ 
веб-сервера, в котором будет содержаться информация, реализованная с 
применением HTML, CSS, JS (самые используемые технологии). Именно эти 


35 
технологии «дают понять» браузеру, как именно необходимо «отрисовать» 
все, что он получил в ответе. 
Веб-сервер (web-server) – это сервер, отвечающий за прием и обработку 
запросов (HTTP-запросов) от клиентов к веб-сайту. В качестве клиентов 
обычно выступают различные веб-браузеры. В ответ веб-сервер выдает кли-
ентам HTTP-ответы, в большинстве случаев – вместе с HTML-страницей, ко-
торая может содержать: всевозможные файлы, изображения, медиа-поток 
или любые другие данные. Также веб-сервер выполняет функцию исполне-
ния скриптов, например, таких как CGI, JSP, ASP и PHP, которые отвечают 
за организацию запросов к сетевым службам, базам данных, доступу к фай-
лам, пересылке электронной почты и другим приложениям электронной 
коммерции [14].
Рисунок 2.18 – Архитектура веб-приложения 
Данный проект был реализован с помощью технологии Blazor, входя-
щий в состав платформы ASP.NET Core, архитектура представлена следую-
щая, рисунок 2.19. 


36 
Рисунок 2.19 – Архитектура технологии Blazor 
При загрузке приложения среда выполнения .NET запускается и указы-
вает на сборку приложения. Выполняется логика запуска приложения, и кор-
невые компоненты преобразуются для просмотра. Blazor вычисляет обновле-
ния пользовательского интерфейса на основе выведенных выходных данных 
компонентов. Затем применяются обновления модели DOM. 
2.6 Управление версиями проекта на основе веб-сервиса Bitbucket 
Управление версиями проекта очень удобное программное обеспече-
ние, так как оно облегчает работу с информацией. Благодаря данному про-
граммному обеспечения есть возможность хранения нескольких версий про-
екта, как ранних, так и самых последних. Это позволяет откатиться на более 
раннюю версию, если в последующих версиях выявлена какая-либо ошибка.


37 
Существует множество программных обеспечений, которые основы-
ваются на управлении версиями проекта, однако мой выбор выпал именно на 
Bitbucket. 
Bitbucket – это сервис, централизованно хранящий репозитории (фай-
лов, доступных для дальнейшего распространения по сети) Git и Mercurial, 
бесплатный для 5 пользователей и платный для больших команд. Преимуще-
ство Bitbucket перед аналогичным сервисом GitHub - возможность создания 
закрытых репозиториев (не open source). Размер репозитория не должен пре-
вышать 2 Гб, потому что, прежде всего, Bitbucket – контроль версий кода, а 
не файловое хранилище. 
Для того, чтобы хранить версии данного проекта, мною был создан ре-
позиторий в Bitbucket под названием «SteelMeltingMixtureApp». 
Все добавленные версии проекта хранятся в ветке «master», которые 
представлены на рисунке 2.20. 
Рисунок 2.20 – Основная ветка «master» 


38 
Однако, была создана еще одна ветка «Babushkin», в этой ветке хранят-
ся версии, которые не использовались в разработке проекта, либо наработки, 
которые не понадобились для реализации веб-сервиса (рисунок 2.21). 
Рисунок 2.21 – Ветка разработчика «Babushkin» 
Научным руководителем была создана ветка «Lavrov», для контроля 
исполнения проекта и проверки правильности выполнения поставленных за-
дач (рисунок 2.22). 
Рисунок 2.22 – Ветка научного руководителя «Lavrov» 


39 
2.7 Проектирование и реализация базы данных 
База данных – представленная в объективной форме совокупность са-
мостоятельных материалов (статей, расчётов, нормативных актов, судебных 
решений и иных подобных материалов), систематизированных таким обра-
зом, чтобы эти материалы могли быть найдены и обработаны с помощью 
электронной вычислительной машины (ЭВМ) [15].
Существует большое количество средств реализации баз данных. При 
реализации базы данных мною была выбрана Microsoft SQL Server 2014. 
Главное преимущество программы тесная интеграция с программными про-
дуктами от Microsoft и возможность экспорта/импорта данных в большин-
ство распространенных форматов данных, что позволяет использовать MS 
SQL Server как центральное хранилище данных [16].
Главная задача моей базы данных – хранение исходных данных для 
проведения расчета шихты. 
На рисунке 2.23 представлена схема базы данных. 


40 
Рисунок 2.23 – Схема БД 
Данный проект разрабатывался на платформе ASP.NET Core, при этом 
использовалась технология Blazor. 
Blazor представляет UI-фреймворк для создания интерактивных при-
ложений, которые могут работать как на стороне сервера, так и на стороне 
клиента, на платформе .NET. На стороне клиента, и на стороне сервера при 
определении кода в качестве языка программирования применяется C#, вме-
сто JavaScript. А для описания визуального интерфейса используются стан-
дартные HTML и CSS. 
Есть две подсистемы, на которые подразделяется Blazor: 
1)
Blazor Server. 
2)
Blazor WebAssembly. 
При разработке данного проекта использовалась именно подсистема 
Blazor WebAssembly. 


41 
WebAssembly позволяет создавать одностраничные интерактивные 
приложения клиентской стороны, которые запускаются в браузере пользова-
теля и работают с помощью технологии WebAssembly. При построении и за-
пуске приложения Blazor WebAssembly файлы с кодом C# и Razor компили-
руются в сборки .NET. Затем Blazor WebAssembly (а если точнее скрипт 
blazor.webassembly.js) загружает среду выполнения .NET, сборки и их зави-
симости и настраивает среду выполнения .NET для выполнения сборок. 
Blazor WebAssembly не зависит от сервера. По большому счету, может быть 
достаточно статического сервера, на котором размещены все файлы прило-
жения. Все необходимые файлы загружаются браузером, и после загрузки 
файлов приложение работает полностью на стороне браузера и совершенно 
не зависит от сервера. 
Разработка проекта началась с построении БД. На рисунке 2.24 показа-
ны файлы, которые соответствуют таблицам в БД. 
Рисунок 2.24 – Классы таблиц БД 
На рисунке 2.25 изображен основной класс, с помощью которого осу-
ществляется подключение к модели БД. 


42 
Рисунок 2.25 – Фрагмент кода, отражающий модель БД 
На рисунке 2.26 изображен код, позволяющий обращаться к 2-ум таб-
лицам в БД. В конечном итоге, она выдает нам список. 
Рисунок 2.26 – Обращение к таблицам «LimitElements» и «ElementNames» 
Данные списки соответствуют классам этих таблиц, которые были 
изображены на рисунке 2.24. Данные списки передаются в переменные «lim» 
и «nam». Иными словами, данные из базы мы получаем в формате этих клас-
сов dbContext. 
Переменные l и n это классы таблиц, которые мы запросили. Далее, с 
помощью equals идет сравнение 2-ух таблиц. То есть здесь происходит обра-
щение к таблицам и последующее их сравнение для связи таблиц и их соот-
ветствия. Далее, идет строчка «where l.SchichtenId == idschichten», это
условие для проверки поля «SchichtenId» и сравнение параметра, который 


43 
был получен в контроллер и от клиента «Get(int idschichten)». В результате 
получается набор элементов шихты для того, чтобы их не путали. 
На рисунке 2.27 изображен код, отражающий шаблон страницы 
Рисунок 2.27 – Файл «Index.html» 
При загрузке страницы razor отвечают события, которые прописаны 
после @code, далее уже начинается язык С#, рисунок 2.28. 


44 
Рисунок 2.28 – События, которые происходят при загрузке страницы 
«LimitData.razor» 
На данной картинке идет запрос в конструкции try, catch. То есть «lim-
its = await Http.GetFromJsonAsync("limit")» данный код отраждает 
запрос, который получает сериализованные данные из контроллера 
«LimitController». 
На рисунке 2.29 происходит формирование таблиц базы данных. Если 
присмотреться к коду, то можно заметить что при формировании каждой 
таблицы каждой строке назначается тип, значение, также указано, что 
значение 0 не разрешено. Благодаря автоинкременту, то есть когда 
добавляется в таблицу запись, первичный ключ записывается автоматически. 
Первоначально, при регистрации пользователя возникает уведомление, 
совершить миграцию или нет, после этого происходит подключение к БД.


45 
Рисунок 2.29 – Фрагмент кода формирования таблиц БД 
На рисунке 2.30 изображен код, который отражает шаблонные 
таблицы, которые появляются при создании БД. 


46 
Рисунок 2.30 – Создание шаблонных таблиц в БД 
На рисунке 2.31 изображен код, который отражает таблицу с 
реквизитами пользователя, то есть данный логин, после регистрации 
пользователя, записывается в данную таблицу. 
Рисунок 2.31 – Таблица, в которой сохраняется логин пользователя 
На рисунке 2.32 изображен код, который отражает язык SQL. Здесь 
происходит запуск кода SQL. Здесь выделен блок с автором, датой создания 


47 
и пояснением. Далее с помощью кода «@IdSchichten int» происходит 
объявление переменной. Функция «ISNULL» позволяет проверить 
возвращаемое значение на 0, будет ли оно равно 0 или нет. Если значение 
равно 0, то записываем тогда значение 0. Дальше идет переименовка 
переменных. Далее, код «SELECT ComponentNames.ComponentName, 
ElementNames.ElementName, PivotTable.percentage FROM PivotTable INNER 
JOIN» позволяет обратиться к 3-м таблицам, с условием
Рисунок 2.32 – Фрагмент кода, который позволяет произвести запуск
кода SQL 
На 
рисунке 
2.33 
изображен 
код 
«SELECT 
ComponentNames.ComponentName, 
ElementNames.ElementName, 
PivotTable.percentage FROM PivotTable INNER JOIN», который позволяет 
обратиться к 3-м таблицам, с условием, что параметр «SchichtenId» равен 
параметру «@IdSchichten». То есть, сначала результат получается в виде 
строк, однако благодаря коду эти строки разворачиваются в столбцы. Этот 
разворот делает функция «Pivot», в скобках указана агрегатная функция 
«Sum», она берет поле «percentage» из таблицы «ElementName», которая 


48 
вернулась под запрос. «in», значения, которые будут получены будут 
вписаны в поля Si,Mn,Cr и т.д. 
Рисунок 2.33 – Обращение к таблицам 
На рисунке 2.34 изображен код, отражающие команду «INSERT 
INTO», которая позволяет записать в определенную таблицу определенные 
значения. 
Рисунок 2.34 – Команда INSERT INTO 
На данном рисунке происходит первая запись исходной таблицы в 
пользователя «ne7atuve@gmail.com». Поэтому перед записью необходимо 
указать пользователя, через которого будет подгружаться таблица. 
На рисунке 2.35 указываются компоненты состава многокомпонентной 
плавильной шихты, которые будут содержаться в таблице. 
Рисунок 2.35 – Компоненты состава шихты 
На рисунке 2.36 указываются элементы, ограничения, стоимость, кото-
рые также будут записаны в таблицу.


49 
Рисунок 2.36 – Запись остальных параметров в таблицу 
Благодаря данным записям в коде удалось заполнить исходную табли-
цу необходимыми компонентами, элементами и другими параметрами. 
На рисунке 2.37 изображен код, который позволяет записывать опреде-
ленные значения в строки таблицы. 
Рисунок 2.37 – Значения, записанные в строки таблицы 


50 
На 
рисунке 
2.38 
изображен 
код 
из 
файла 
«ApplicationDbContextModelSnapshot.cs», 
данный 
файл 
создает 
автоматически при формировании базы данных, он соответственно, 
относится только к базовым таблицам 
Рисунок 2.38 – Шаблонная миграция, которая создается автоматически 
Обращение к базам идет с помощью технологии EntityFramework, 
которая и предоставляет доступ к базе данных. 
2.8 Разработка пользовательского приложения 
При запуске приложения пользователь перед собой видит главную 
страницу проекта, где указана информация по проекту. Для того, чтобы поль-
зователь мог совершать навигацию по вкладках ему необходимо авторизо-


51 
ваться, либо зарегистрироваться. После того, как регистрация, либо автори-
зация прошла успешно, то пользователь может спокойно работать с проек-
том, рисунок 2.39. 
Рисунок 2.39 – Главная страница проекта 
На рисунке 2.40 изображен код, который позволяет пользователю 
проводить авторизацию, регистрацию в проекте, либо выйти из проекта. 
Рисунок 2.40 – Владки для регистрации, входа и выхода 


52 
На рисунке 2.41 изображен код, который отражает вкладки приложения 
при запуске. Данные вкладки соответствуют страницам расширения .razor, 
которые находятся в
Рисунок 2.41 – Вкладки в приложении 
Верстка, которую можно заметить на рисунке 2.41 идет шаблонная, с 
применением фреймворка bootstrap. 
При нажатии на какую-либо из вкладок, допустим вкладку «Сводная 
таблица», вызывается страница razor, а именно, «SummaryTable.razor», 
рисунок 2.42. 


53 
Рисунок 2.42 – Страница razor «SummaryTable.razor» 
В данной вкладке будут отображаться варианты, с расчетом, который 
будет производен автоматически после авторизации или регистрации. 
На рисунке 2.43 изображено событие загрузки страницы «Sum-
maryTable.razor». То есть при переходе на вкладку «Сводная таблица» начи-
нается выполнять код «protected override async Task OnInitializedAsync()…», 
начальная инициализация иными словами. Здесь отправляется get-запрос в 
«schichten» контроллер. Из контроллера приходит ответ и загружается пере-
менная «_schichten», когда эта переменная загружается, срабатывает
условие «@if (components == null)», рисунок 2.44. Пока этот компонент не 
загружен, срабатывает другое условие «@if (schichtenVariant == null)». Если 


54 
не срабатывает ни один из запросов, то появляется запись «Загрузка…». По-
сле этого загружается разметка таблицы (рисунок 2.45). 
Рисунок 2.43 – Метод, при котором осуществляется загрузка страницы 
Рисунок 2.44 – Условия загрузки страницы 
Рисунок 2.45 – Загрузка таблицы 


55 
Благодаря конструкции foreach у пользователя загружается 
сохраненный вариант. Благодаря функции «onclick» происходит переход к 
методу «STable», который отвечает за построение таблицы сохраненного 
варианта. Далее будет получен параметр «int i», этот параметр отправляется 
get-запросом в контроллер, он добавляется к адресной строке контроллера. 
Этот параметр был получен из таблицы. Далее, из этого компонента с 
помощью Linq заполняются переменные, которые объявлены (рисунок 2.46). 
Рисунок 2.46 – Метод «Task STable» 
На данной рисунке изображен метод «IndexOf», который ищет в строке 
подстроку начала. Если этот метод находит подстроку, то он возвращает 
начало этой строки, она должна быть нулевой. Дальше в переменую 
записывается «limits» и получается в итоге значения, который появляются в 
верстке. 
Далее, на рисунке 2.47 изображен код, отражающий верстку диаграм-
мы расчета состав шихты 


56 
Рисунок 2.47 – Верстка диаграммы расчета состава шихты 
На рисунке 2.48 изображен код, позволяющий изменять данные 
пользователю, а также выбирать компоненты для расчета. 
Рисунок 2.48 – Вкладка «UserData»
На рисунке 2.49 изображен код, который отражает 3 переменные, эти 
переменные при обращении к контроллеру поочередно загружаются и, 
соответственно, загружается верстка, а в эту верстку уже загружаются 
данные. 


57 
Рисунок 2.49 – Объявление переменных для загрузки верстки 
Загрузка 
верстки 
этой 
страницы 
происходит 
посредством 
использования цикла foreach (рисунок 2.50). 
Рисунок 2.50 – Загрузка верстки посредством цилка «foreach» 
На рисунке 2.51 есть функция «bind-value», которая позволяет 
привязывать измененное значение. Иными словами, данная функция 
позволяет сохранять пользователю введенное значение, а потом использовать 
при дальнейшем расчете. 


58 
Рисунок 2.51 – Сохранение значений с помощью функции «bind-value» 
Текстовые поля для редактирования привязаны к переменной 
«limitCom». Измененные данные передаются автоматически в переменную. 
Для того, чтобы сохранить внесенные изменения в компоненты и 
элементы используется функция «button» (рисунок 2.52). 
Рисунок 2.52 – Кнопка для сохранения внесенных изменений 
Как 
происходит 
процесс 
сохранения. 
Благодаря 
функции 
«SaveChange», 
которая 
отправляет 
post-запрос 
в 
контроллер 
«SaveDBController», рисунок 2.53. 
Рисунок 2.53 – Контроллер «SaveDBController» 
На рисунке 2.54 изображено две десериализации. С помощью 
десериализации приходит ответ в виде переменных, которые ранее 
отправлялись, привязанные с помощью функции «bind-value».


59 
Рисунок 2.54 – Десериализация для получения привязанных переменных 
Далее, необходимо получить текущего пользователя. Сначала 
выводится текущий пользователь, далее идет обращение к «AspNetUsers». 
Далее идет Sql запрос, чтобы вывело списком «UserName» и «Email», 
рисунок 2.55. 
Рисунок 2.55 – Получение текущего пользователя с помощью Sql запроса 
На рисунке 2.56 изображен код, который позволяет пользователю 
ознакомиться с разработчиками проекта. 


60 
Рисунок 2.56 – Вкладка «Авторы» 
2.9 Выводы 
Таким образом, подводя итоги ко 2-ой главе можно сделать вывод о 
том, что мною было разработано приложение, позволяющее регистрировать 
пользователя, проводить расчет демонстрационного варианта, вносить кор-
рективы в исходные данные для какого-либо расчета, производить расчет из-
мененных данных и выводить диаграмму на экран со всеми компонентами и 
элементами входящими в состав плавильной шихты. Для этого были исполь-
зованы самые современные методы реализации, для реализации функцио-
нальной модели была использована программа «Ramus Educational». Для ре-
ализации базы данных была использована программа Microsoft SQL Server 
2014. Для реализации веб-сервиса использовалась среда разработки Microsoft 
Visual Studio 2019 и платформа Blazor.


61 
3 ФУНКЦИОНАЛЬНЫЕ ВОЗМОЖНОСТИ ПРОГРАММНОГО 
ОБЕСПЕЧЕНИЯ СИСТЕМЫ ОПТИМИЗАЦИИ 
СОСТАВА МНОГОКОМПОНЕНТНОЙ ПЛАВИЛЬНОЙ ШИХТЫ
3.1 Развертывание и настройка системы 
При запуске программы на экране мы увидим главную страницу, на ко-
торой можно будет зайти в личный кабинет, авторизоваться, провести реги-
страцию (если пользователь новый), посмотреть информацию о разработчи-
ках, посмотреть информацию о продукте (рисунок 3.1).
Рисунок 3.1 – Главная страница АИС оптимизации плавильной шихты 
Если пользователь зашел впервые на веб-сервис, то ему необходимо 
пройти регистрацию, регистрация нового пользователя представлена на ри-
сунке 3.2. 


62 
Рисунок 3.2 – Страница регистрации пользователя в web-приложении 
Если пользователь уже зарегистрирован, то ему необходимо пройти ав-
торизацию, введя свои реквизиты входа, рисунок 3.3. 
Рисунок 3.3 – Страница авторизации пользователя в web-приложении 


63 
После авторизации или регистрации пользователя перед ним будет 
представлен демонстрационный вариант (рисунок 3.4). Тут будет представ-
лен исходный вариант расчета плавильной шихты. Необходимо по нему 
кликнуть, чтобы появилась таблица. 
Рисунок 3.4 – Страница личного кабинета пользователя в web-приложении 
После того, как пользователь кликнул на исходный вариант, перед ним 
откроется таблица со всеми заданными параметрами (рисунок 3.5). 


64 
Рисунок 3.5 – Исходная таблица состава шихты 
Для того, чтобы получить решение задачи оптимизации по исходным 
данным из данной таблицы, пользователю необходимо перейти в пункт «Рас-
чет», результат будет на экране (рисунок 3.6). 
Рисунок 3.6 – Кнопка «Расчет» 


65 
Если пользователь будет изменять данные и производить свой расчет, 
то цвет компонентов в диаграмме будет меняться. То есть если у возврата 
был цвет красный, то в следующий раз у него может быть цвет синий и т.д. 
3.2 Ввод исходных данных и проведение расчетов 
Для проведения универсального расчета, который предполагает воз-
можность корректировки данных пользователю необходимо перейти в пункт 
«User Data» и, если необходимо, изменить исходные параметры, которые 
необходимы для расчета (рисунок 3.7). 
Рисунок 3.7 – Заполнение таблицы на странице web-приложения 
Здесь введены исходные ограничения, пользователь может изменить их 
и нажать кнопку «Сохранить».
На рисунке 3.8 пользователь изменил ограничения и нажал кнопку со-
хранить. 


66 
Рисунок 3.8 – Измененные элементы 
После того, как пользователь нажал кнопку сохранить, у него появится 
таблица для выбора компонентов, которые будут участвовать в дальнейшем 
расчете (рисунок 3.9). 
Рисунок 3.9 – Компоненты состава шихты 


67 
Пользователь выбрал 6 компонентов кроме последнего «Чугун 
литейный хромоникелевый» (рисунок 3.10). 
Рисунок 3.10 – Выбор необходимых компонентов 
После выбора достаточно нажать кнопку «Сохранить», после этого пе-
ред пользователем отобразится слово «OK» (рисунок 3.11). 
Рисунок 3.11 – Сообщение об успешном сохранении 
После этого, пользователю необходимо перейти во вкладку «Сводная 
таблица» и кликнуть на появившийся вариант (рисунок 3.12). 


68 
Рисунок 3.12 – Вариант расчета шихты 
После того, как пользователь кликнул по появившемуся варианту, 
перед ним появится таблица с выбранными компонентами и введенными 
ограничениями. Если присмотреться, то можно заметить, что компонента 
«Чугун литейный хромоникелевый» нет в таблица, а ограничения, которые 
были указаны ранее вывелись такими, какими они были сохранены (рисунок 
3.13). 
Рисунок 3.13 – Расчет щихты с корректировкой ограничений и выбором 
компонентов 
После этого, пользователь может перейти во вкладку «Расчет» и 
увидит перед собой диаграмму, в которой будут находиться все выбранные 
компоненты (рисунок 3.14). 


69 
Рисунок 3.14 – Диаграмма с выбранными компонентами состава шихты 
Помимо расчетов, пользователь может посмотреть информацию, о раз-
работчиках и в случае необходимости, обратиться по указанной почте или 
номеру телефона (рисунок 3.15). 
Рисунок 3.15 – Информация о разработчиках 
3.3 Выводы 
Таким образом, можно подвести итог к 3-ей главе, приложение реали-
зовано в соответствии с функциональными требованиями. Интерфейс про-
граммы удобен и понятен для пользователя. Все функции программы соблю-
дены.


70 
ЗАКЛЮЧЕНИЕ 
Научная новизна полученных в работе результатов заключается в при-
менении нового метода эффективной организации и ведения специализиро-
ванного алгоритмического и программного обеспечения решения задачи оп-
тимизации расчета многокомпонентной плавильной шихты, ориентированно-
го на повышение эффективности управления процессами получения каче-
ственных сплавов с использованием современных методов обработки ин-
формации:
− использование гибкой методологии разработки (Agile) и таск-трекера 
Atlassian JIRA для ведения проекта, взаимодействия с заказчиком во время 
разработки, отслеживания ошибок, визуального отображения задач и мони-
торинга процесса их выполнения; 
− функциональное моделирование процессов для реализации web-
приложения решения задачи оптимизации затрат на перевозку продукции на 
основе методологии IDEF0 и средства реализации Ramus Educational; 
− использование методики коллективного владения программным ко-
дом на основе сервиса (удаленного репозитория) Atlassian Bitbucket. 
Практическая значимость результатов заключается в том, что разрабо-
танное программное обеспечение позволит: 
− производить расчёт оптимального состава многокомпонентной пла-
вильной шихты; 
− инженерно-технологическому персоналу литейных цехов металлур-
гических предприятий сократить время на выполнение расчетов состава мно-
гокомпонентной плавильной шихты за счет реализации эргономичного web-
интерфейса; 
− специалистам отдела сопровождения информационных систем 
предоставляет условия для снижения трудозатрат на сопровождение, совер-
шенствование и развитие системы с учетом пожеланий пользователей. 


71 
Результаты работы могут быть использованы также в учебном процес-
се для обучения бакалавров и магистрантов по направлению «Информацион-
ные системы и технологии». 
Таким образом, подводя итоги, можно сделать вывод о том, что было 
разработано web-приложение, благодаря которому осуществляется расчет 
многокомпонентной плавильной шихты. Результат пользователь получает в 
виде диаграммы состава шихты, где указаны все компоненты, использован-
ные при расчете в процентном содержании. Данные, полученные при расче-
те, можно проанализировать и сделать выводы. Веб-сервис был разработан в 
соответствие со всеми требованиями и соответствует всем поставленным за-
дачам. 
Работа над проектом будет продолжена, чтобы довести его разработку 
до самого оптимального завершения. 


72 
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 
1.
Математическое моделирование металлургических процессов в АСУ 
ТП: учебное пособие / Н.А. Спирин, В.В. Лавров, В.Ю. Рыболовлев [и др.]; 
под ред. Н.А. Спирина. – Екатеринбург: УрФУ, 2014. – 558 с. Электронный 
научный 
архив 
УрФУ: 
http://elar.urfu.ru/handle/10995/27839

портал 
информационно-образовательных 
ресурсов 
УрФУ: 
http://study.urfu.ru/Aid/ViewMeta/13079
; библиотека кафедры.
2.
«Студопедия – информационный ресурс» [Электронный ресурс], 
Электронный запрос «Что такое оптимизация». Сайт. – Режим доступа: 
https://studopedia.org/12-6653.html
, свободный.
3.
«Обзор программ для символьной математики» [Электронный 
ресурс], Электронный запрос «Современные компьютерные средства 
решения 
задач 
оптимизации». 
Сайт. 
– 
Режим 
доступа: 
https://compress.ru/article.aspx?id=16152
, свободный. 
4.
Вычислительный практикум в среде MathCAD [Электронный 
ресурс], Электронный запрос «Что такое MathCAD». Сайт. – Режим доступа: 
http://www.math.mrsu.ru/text/courses/mcad/vvedenie.htm
, свободный. 
5.
База знаний Programming Store [Электронный ресурс], Электронный 
запрос «Что такое Microsoft Solver Foundation». Сайт. – Режим доступа: 
https://wiki.programstore.ru/microsoft-solver-foundation/
, свободный. 
6.
Википедия – Свободная энциклопедия [Электронный ресурс], 
Электронный запрос «Что такое HTML». Сайт. – Режим доступа: 
https://ru.wikipedia.org/wiki/HTML
, свободный. 
7.
Википедия – Свободная энциклопедия [Электронный ресурс], 
Электронный запрос «Что такое CSS». Сайт. – Режим доступа: 
https://ru.wikipedia.org/wiki/CSS
, свободный. 
8.
Языки JavaScript и VBScript. [Электронный ресурс], Электронный 
запрос 
«Что 
такое 
JavaScript». 
Сайт. 
– 
Режим 
доступа: 


73 
https://sites.google.com/site/tehnologiamacromediaflash/home/voprosy-i-
zadania/laboratornye-raboty/lekcii
, свободный. 
9.
PHP: Hypertext Preproccesor. [Электронный ресурс], Электронный 
запрос 
«Что 
такое 
PHP». 
Сайт. 
– 
Режим 
доступа: 
https://www.php.net/manual/ru/intro-whatcando.php
, свободный. 
10.
Википедия – Свободная энциклопедия [Электронный ресурс], 
Электронный запрос «Что такое С Sharp». Сайт. – Режим доступа: 
https://ru.wikipedia.org/wiki/C_Sharp
, свободный. 
11.
Методология функционального моделирования IDEF0. Госстандарт 
России. – М.: ИПК «Издательство стандартов», 2000. – 75 с. 
http://www.nsu.ru/smk/files/idef.pdf
 . 
12.
Антонов А.В. Системный анализ: учебник для студентов вузов, 
обучающихся по направлению "Информатика и вычисл. техника" и 
специальности "Автоматизир. системы обраб. информации и упр." / А.В. 
Антонов. – М.: Высшая школа, 2004. – 454 с.
13.
Введение в математическое моделирование: учеб. пособие для вузов 
/ В.Н. Ашихмин, М.Г. Бояршинов, М.Б. Гитман [и др.]; под ред. П.В. Трусова. 
– М.: Интермет-Инжиниринг, 2000. – 336 с.; М.: Логос, 2004. – 440 с.
14.
Дейт К.Дж. Введение в системы баз данных. Пер. с англ. – М.: 
Издательский дом «Вильямс», 2000. – 848 с. (4 экз.); 2005. – 1328 с.; 2008. – 
1328 с.; 2002. – 1072 с.; 2001. – 1072 с.; 2008. – 1328 с.; 2006. – 1328 с. 
15.
Карпова Т.С. Базы данных: модели, разработка, реализация / Т.С. 
Карпова. – СПб.: Питер, 2001. – 304 с.; 2-е изд. – М.: Интуит, 2016. – 403 с.
16.
Лошкарев Н.Б. Указания к оформлению дипломных и курсовых 
проектов и работ: методические указания / Н.Б. Лошкарев, А.Н. Лошкарев, 
Л.А. Зайнуллин. – Екатеринбург: УГТУ–УПИ, 2007. – 49 с. 


74 
ПРИЛОЖЕНИЕ Фрагмент листинга программного кода 
Разработан в файле Startup.cs, отвечающий за запуск приложения. 
namespace
SMM.Server 

public
class
Startup

public
Startup
(IConfiguration configuration) 

Configuration = configuration; 

public
IConfiguration Configuration { 
get
; } 
// This method gets called by the runtime. Use this method to add services to the 
container.
// For more information on how to configure your application, visit 
https://go.microsoft.com/fwlink/?LinkID=398940
public
void
ConfigureServices(IServiceCollection services) 

services.AddDbContext(options => 
options.UseSqlServer( 
Configuration.GetConnectionString(
"DefaultConnection"
))); 
services.AddDatabaseDeveloperPageExceptionFilter(); 
services.AddDefaultIdentity(options => op-
tions.SignIn.RequireConfirmedAccount = 
true

.AddEntityFrameworkStores(); 
services.AddIdentityServer() 
.AddApiAuthorization(); 
services.AddAuthentication() 
.AddIdentityServerJwt(); 
services.AddControllersWithViews(); 
services.AddRazorPages(); 

// This method gets called by the runtime. Use this method to configure the HTTP 
request pipeline.
public
void
Configure(IApplicationBuilder app, IWebHostEnvironment env) 

if
(env.IsDevelopment()) 

app.UseDeveloperExceptionPage(); 
app.UseMigrationsEndPoint(); 
app.UseWebAssemblyDebugging(); 

else

app.UseExceptionHandler(
"/Error"
); 
// The default HSTS value is 30 days. You may want to change this for 
production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts(); 

app.UseHttpsRedirection(); 
app.UseBlazorFrameworkFiles(); 


75 
app.UseStaticFiles(); 
app.UseRouting(); 
app.UseIdentityServer(); 
app.UseAuthentication(); 
app.UseAuthorization(); 
app.UseEndpoints(endpoints => 

endpoints.MapRazorPages(); 
endpoints.MapControllers(); 
endpoints.MapFallbackToFile(
"index.html"
); 
});
Файл «Index.html», отвечает за построение диаграммы при расчете, а 
также скрипты, для корректной работы сервиса. 
<
!DOCTYPE
html
>
<
html
>
<
head
>
<
meta
charset
="utf-8"
/>
<
meta
name
="viewport"
content
="width=device-width, initial-scale=1.0, maximum-
scale=1.0, user-scalable=no"
/>
<
title
>
SMM
title
>
<
base
href
="/"
/>
<
link
href
="css/bootstrap/bootstrap.min.css"
rel
="stylesheet"
/>
<
link
href
="css/app.css"
rel
="stylesheet"
/>
<
link
href
="SMM.Client.styles.css"
rel
="stylesheet"
/>
<
link
href
="manifest.json"
rel
="manifest"
/>
<
link
rel
="apple-touch-icon"
sizes
="512x512"
href
="icon-512.png"
/>
head
>
<
body
>
<
div
id
="app">
Loading...
div
>
<
div
id
="blazor-error-ui">
An unhandled error has occurred. 
<
a
href
=""
class
="reload">
Reload
a
>
<
a
class
="dismiss">
🗙
a
>
div
>
<
script
src
="_content/Microsoft.AspNetCore.Components.WebAssembly.Authentication/AuthenticationSe
rvice.js">script
>
<
script
src
="_framework/blazor.webassembly.js">script
>
<
script
>
navigator.serviceWorker.register(
'service-worker.js'
);
script
>
<
script
>
function
fDrawPie() { 
let
cnv = document.getElementById(
'cnv'
), 
ctx = cnv.getContext(
'2d'
), 
com = [58.33, 4.49, 10.01, 9.17, 6.0, 12.0, 0], 
col = [
"#3f5"

"#d09"

"#67f"

"#ff0"

"#574"

"#f11"

"#0ff"

"#805"

"#509"

"#fe5"
], 
x = 256, y = 224, p50 = Math.PI / 50; 
ctx.clearRect(0, 0, cnv.width, cnv.height); 
for
(
let
i = 0, s = 0; i < 7; i++) { 
ctx.beginPath(); 
ctx.fillStyle = col[i]; 
ctx.moveTo(x, y); 
ctx.arc(x, y, 185, p50 * s, p50 * (s += com[i])); 


76 
ctx.closePath(); 
ctx.fill(); 

ctx.font = 
"18px Consolas"

ctx.fillStyle = 
"#00D"

for
(
let
i = 0, s = 0, h = 0; i < 7; i++) { 
s = com[i]; 
ctx.translate(x, y) 
ctx.rotate(p50 * (s / 2 + h)); 
ctx.translate(-x, -y) 
if
(s > 2) ctx.fillText(s + 
'%'
, x + 175 - ctx.measureText(s + 
'%'
).width, y + 4.5); 
h = s / 2; 


script
>
body
>
html
>

Download 2,24 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish