added practice report
This commit is contained in:
parent
fc8304e1ea
commit
de327ccbc4
240
pract_rep/pract_rep.tex
Executable file
240
pract_rep/pract_rep.tex
Executable file
@ -0,0 +1,240 @@
|
||||
\documentclass[bachelor, och, pract, times]{SCWorks}
|
||||
% параметр - тип обучения - одно из значений:
|
||||
% spec - специальность
|
||||
% bachelor - бакалавриат (по умолчанию)
|
||||
% master - магистратура
|
||||
% параметр - форма обучения - одно из значений:
|
||||
% och - очное (по умолчанию)
|
||||
% zaoch - заочное
|
||||
% параметр - тип работы - одно из значений:
|
||||
% referat - реферат
|
||||
% coursework - курсовая работа (по умолчанию)
|
||||
% diploma - дипломная работа
|
||||
% pract - отчет по практике
|
||||
% nir - отчет о научно-исследовательской работе
|
||||
% autoref - автореферат выпускной работы
|
||||
% assignment - задание на выпускную квалификационную работу
|
||||
% review - отзыв руководителя
|
||||
% critique - рецензия на выпускную работу
|
||||
% параметр - включение шрифта
|
||||
% times - включение шрифта Times New Roman (если установлен)
|
||||
% по умолчанию выключен
|
||||
\usepackage[T2A]{fontenc}
|
||||
\usepackage[cp1251]{inputenc}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{tempora}
|
||||
|
||||
\usepackage[sort,compress]{cite}
|
||||
\usepackage{amsmath}
|
||||
\usepackage{amssymb}
|
||||
\usepackage{amsthm}
|
||||
\usepackage{fancyvrb}
|
||||
\usepackage{longtable}
|
||||
\usepackage{minted}
|
||||
\usepackage{array}
|
||||
\usepackage[english,russian]{babel}
|
||||
|
||||
|
||||
\usepackage[colorlinks=true]{hyperref}
|
||||
\usepackage{pgfplots}
|
||||
\pgfplotsset{compat=newest}% <-- moves axis labels near ticklabels (respects tick label widths)
|
||||
\usepackage{listings}
|
||||
\usepackage{color}
|
||||
|
||||
\definecolor{dkgreen}{rgb}{0,0.6,0}
|
||||
\definecolor{gray}{rgb}{0.5,0.5,0.5}
|
||||
\definecolor{mauve}{rgb}{0.58,0,0.82}
|
||||
|
||||
\setcounter{tocdepth}{4}
|
||||
\setcounter{secnumdepth}{4}
|
||||
|
||||
|
||||
\newcommand{\eqdef}{\stackrel {\rm def}{=}}
|
||||
\newcommand{\No}{\textnumero}
|
||||
\newtheorem{lem}{Лемма}
|
||||
\setminted{style=bw,
|
||||
linenos=true,
|
||||
breaklines=true,
|
||||
numbersep=5pt,
|
||||
tabsize=2,
|
||||
fontsize=\small,
|
||||
bgcolor=white}
|
||||
\setmintedinline{style=bw,
|
||||
bgcolor=white,
|
||||
fontsize=\normalsize
|
||||
}
|
||||
\pgfplotsset{every axis legend/.append style={at={(0.6,1)},anchor=south west}}
|
||||
%\pgfplotsset{every axis title/.style={at={(0.5,1)},above,yshift=6pt}}
|
||||
\begin{document}
|
||||
|
||||
% Кафедра (в родительном падеже)
|
||||
\chair{математической кибернетики и компьютерных наук}
|
||||
|
||||
% Тема работы
|
||||
\title{Создание клиентской части приложения управления системой}
|
||||
|
||||
% Курс
|
||||
\course{3}
|
||||
|
||||
% Группа
|
||||
\group{311}
|
||||
|
||||
% Факультет (в родительном падеже) (по умолчанию "факультета КНиИТ")
|
||||
%\department{факультета КНиИТ}
|
||||
|
||||
% Специальность/направление код - наименование
|
||||
\napravlenie{02.03.02 "--- Фундаментальная информатика и информационные технологии}
|
||||
%\napravlenie{02.03.01 "--- Математическое обеспечение и администрирование информационных систем}
|
||||
%\napravlenie{09.03.01 "--- Информатика и вычислительная техника}
|
||||
%\napravlenie{09.03.04 "--- Программная инженерия}
|
||||
%\napravlenie{10.05.01 "--- Компьютерная безопасность}
|
||||
|
||||
% Для студентки. Для работы студента следующая команда не нужна.
|
||||
%\studenttitle{Студентки}
|
||||
|
||||
% Фамилия, имя, отчество в родительном падеже
|
||||
\author{Козырева Юрия Дмитриевича}
|
||||
|
||||
% Заведующий кафедрой
|
||||
\chtitle{к.\,ф.-м.\,н., доцент} % степень, звание
|
||||
\chname{С.\,В.\,Миронов}
|
||||
|
||||
%Научный руководитель (для реферата преподаватель проверяющий работу)
|
||||
\satitle{Старший преподаватель} %должность, степень, звание
|
||||
\saname{М.\,И.\,Сафрончик}
|
||||
|
||||
% Руководитель практики от организации (только для практики,
|
||||
% для остальных типов работ не используется)
|
||||
\patitle{Заместитель генерального директора,\newline
|
||||
Руководитель обособленного подразделения \newline
|
||||
«Инженерный отдел «Саратовский»}
|
||||
\paname{Е.\,А.\,Синельников}
|
||||
|
||||
% Семестр (только для практики, для остальных
|
||||
% типов работ не используется)
|
||||
\term{6}
|
||||
|
||||
% Наименование практики (только для практики, для остальных
|
||||
% типов работ не используется)
|
||||
\practtype{производственная}
|
||||
|
||||
% Продолжительность практики (количество недель) (только для практики,
|
||||
% для остальных типов работ не используется)
|
||||
\duration{4}
|
||||
|
||||
% Даты начала и окончания практики (только для практики, для остальных
|
||||
% типов работ не используется)
|
||||
\practStart{22.06.2022}
|
||||
\practFinish{19.07.2022}
|
||||
|
||||
% Год выполнения отчета
|
||||
\date{2022}
|
||||
|
||||
\maketitle
|
||||
|
||||
% Включение нумерации рисунков, формул и таблиц по разделам
|
||||
% (по умолчанию - нумерация сквозная)
|
||||
% (допускается оба вида нумерации)
|
||||
%\secNumbering
|
||||
|
||||
|
||||
\tableofcontents
|
||||
|
||||
% Раздел "Обозначения и сокращения". Может отсутствовать в работе
|
||||
%\abbreviations
|
||||
|
||||
% Раздел "Определения". Может отсутствовать в работе
|
||||
%\definitions
|
||||
|
||||
% Раздел "Определения, обозначения и сокращения". Может отсутствовать в работе.
|
||||
% Если присутствует, то заменяет собой разделы "Обозначения и сокращения" и "Определения"
|
||||
%\defabbr
|
||||
|
||||
% Раздел "Введение"
|
||||
\intro
|
||||
Производственная практика проходила в ООО «Базальт СПО».
|
||||
|
||||
Компания «Базальт СПО» – разработчик российских операционных систем «Альт». Опыт разработки программного обеспечения составляет более 20 лет.
|
||||
|
||||
В штате компании – более 120 разработчиков, программистов и технических специалистов. Офисы компании находятся в четырёх городах: Саратов, Москва, Санкт-Петербург и Обнинск.
|
||||
|
||||
Компания имеет лицензии ФСТЭК на деятельность по разработке и производству средств защиты конфиденциальной информации, а также на деятельность по технической защите конфиденциальной информации (рег. номер 1612 и 3025 от 16 сентября 2016 года). Лицензии действуют бессрочно.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
\section{Теоретические сведения}
|
||||
\subsection{Окружение}
|
||||
«Базальт СПО» занимается разработкой линейки собственных дистрибутивов Linux, под названием "ALT". Одним из ключевых элементов ОС является система межпроцессного взаимодействия D-Bus.
|
||||
\subsubsection{Linux}
|
||||
Linux (Ли?нукс; в части случаев GNU/Linux) — семейство Unix-подобных операционных систем на базе ядра Linux, включающих тот или иной набор утилит и программ проекта GNU, и, возможно, другие компоненты. Как и ядро Linux, системы на его основе, как правило, создаются и распространяются в соответствии с моделью разработки свободного и открытого программного обеспечения. Linux-системы распространяются в основном бесплатно в виде различных дистрибутивов — в форме, готовой для установки и удобной для сопровождения и обновлений, — и имеющих свой набор системных и прикладных компонентов, как свободных, так и проприетарных.
|
||||
|
||||
Появившись как решения вокруг созданного в начале 1990-х годов ядра, уже с начала 2000-х годов системы Linux являются основными для суперкомпьютеров и серверов, расширяется применение их для встраиваемых систем и мобильных устройств, некоторое распространение системы получили и для персональных компьютеров.
|
||||
|
||||
За счёт использования свободного программного обеспечения и привлечения волонтёров каждая из систем Linux обладает значительными программными возможностями, трудно реализуемыми в прочих моделях разработки: например, в 2008 году расчёты показывали, что для того, чтобы «с нуля» разработать систему, аналогичную Fedora 9, потребовалось бы затратить 10,8 млрд \$, а совокупная себестоимость только ядра Linux оценивалась в сумму более 1,4 млрд \$, притом только за 2008 год она увеличилась на 315 млн \$, совокупный труд оценён в размере 73 тыс. человеко-лет.
|
||||
|
||||
Семейство систем, включающих в качестве компонентов основные программы проекта GNU, такие как bash, gcc, glibc, coreutils и ряд других, иногда идентифицируется как GNU/Linux. Так как традиционно большинство систем было именно таким, под «Linux» обычно подразумеваются именно они; притом существует спор об именовании GNU/Linux. Существует проект стандартизации внутренней структуры Linux-систем — Linux Standard Base, часть документов которого зарегистрирована в качестве стандартов ISO; но далеко не все системы сертифицируются по нему, и в целом для Linux-систем не существует какой-либо общепризнанной стандартной комплектации или формальных условий включения в семейство. Однако есть ряд систем на базе ядра Linux, но не имеющих в основе зависимости от программ GNU, которые поэтому "GNU/Linux" не называют, в частности, таковы мобильные системы Android и FirefoxOS.
|
||||
|
||||
Официальным логотипом и талисманом Linux является пингвин Tux, созданный в 1996 году Ларри Юингом. Торговая марка «Linux» принадлежит создателю и основному разработчику ядра Линусу Торвальдсу. При этом проект Linux в широком смысле не принадлежит какой-либо организации или частному лицу, вклад в его развитие и распространение осуществляют тысячи независимых разработчиков и компаний, одним из инструментов взаимодействия которых являются группы пользователей Linux. Существует ряд некоммерческих объединений, ставящих основной целью развитие и продвижение Linux, наиболее крупное и влиятельное из них — основанный в 2007 году The Linux Foundation. Существует значительный рынок коммерческой технической поддержки Linux-систем, на котором с долей свыше 70 \% (2017) доминирует корпорация Red Hat (поглощена IBM в 2019 году).
|
||||
\subsection{Дистрибутив ALT}
|
||||
Все дистрибутивы операционных систем ALT основаны на собственной распределённой инфраструктуре разработки, инструментарии сборки и репозитории «Сизиф» (Sisyphus).
|
||||
Инфраструктура разработки находится на территории РФ, принадлежит и поддерживается компанией «Базальт СПО». Сотрудники «Базальт СПО» и команда разработчиков ALT Linux Team принимают активное участие в международных проектах разработки свободного ПО.
|
||||
На базе репозитория Sisyphus периодически формируется стабильная ветка (программная платформа), которая поддерживается в течение длительного времени и используется в качестве базы для построения дистрибутивов линейки «Альт». На протяжении всего жизненного цикла программной платформы в ней исправляются критические ошибки, выпускаются обновления, в том числе и по безопасности. Любые изменения попадают в стабильную ветку только после обязательного функционального и регрессионного тестирования.
|
||||
В 2021 году сформирована новая десятая платформа (Aronia).
|
||||
Продукты на базе Десятой платформы выпускаются с декабря 2021 г.
|
||||
|
||||
Дистрибутив представляет собой операционную систему на основе ядра Linux и набор системного и прикладного ПО, объединённых инсталлятором (установщиком).
|
||||
Основой всех дистрибутивов «Альт» является модульная система управления Alterator, содержащая более 100 модулей для конфигурирования системы.
|
||||
Дистрибутивы «Альт» спроектированы с учётом возможности интеграции между собой. Это позволяет строить информационные системы любого масштаба, а также обеспечивает работу в гетерогенных сетях.
|
||||
Дистрибутивы «Базальт СПО» включены в Единый реестр российских программ для электронных вычислительных машин и баз данных (кроме Simply Linux).
|
||||
|
||||
\subsection{D-Bus}
|
||||
D-Bus — система межпроцессного взаимодействия, которая позволяет приложениям в операционной системе сообщаться друг с другом.
|
||||
|
||||
D-Bus является частью проекта freedesktop.org. Она обладает высокой скоростью работы, не зависит от рабочей среды, работает на POSIX-совместимых операционных системах, также существует версия для Windows (пока на стадии разработки)[1].
|
||||
|
||||
Состоит из двух частей: демона и низкоуровневого API. Существуют высокоуровневые библиотеки для фреймворков Qt, Java, GLib, C\#, Python, Ruby и библиотека для C++.
|
||||
|
||||
\subsection{Инструменты}
|
||||
В ходе практики использовались следующие инструменты: для реализации внутренней логики приложения использовался язык программирования C++ с фреймворком Qt, для описания пользовательского интерфейса применялся язык разметки QML.
|
||||
\subsubsection{Qt}
|
||||
Qt — фреймворк для разработки кроссплатформенного программного обеспечения на языке программирования C++. Для многих языков программирования существуют библиотеки, позволяющие использовать преимущества Qt: Python — PyQt, PySide; Ruby — QtRuby; Java — Qt Jambi; PHP — PHP-Qt и другие.
|
||||
|
||||
Со времени своего появления в 1996 году библиотека легла в основу многих программных проектов. Кроме того, Qt является фундаментом популярной рабочей среды KDE, входящей в состав многих дистрибутивов Linux.
|
||||
|
||||
\subsubsection{QML}
|
||||
QML (Qt Meta Language или Qt Modeling Language) — декларативный язык программирования, в основании которого лежит среда JavaScript. QML используется для разработки приложений, делающих основной упор на пользовательский интерфейс и, в целом, на дизайн графической части. Является частью Qt Quick, среды разработки пользовательского интерфейса, распространяемой вместе с Qt. Часто используется для создания приложений, ориентированных на мобильные устройства с сенсорным управлением.
|
||||
|
||||
QML-документ представляет собой дерево элементов. QML элемент, так же, как и элемент Qt, представляет собой совокупность блоков: графических (таких, как rectangle, image) и поведенческих (таких, как state, transition, animation). Эти элементы могут быть объединены, чтобы построить комплексные компоненты, начиная от простых кнопок и ползунков и заканчивая полноценными приложениями, работающими с интернетом.
|
||||
|
||||
QML элементы могут быть дополнены стандартными для JavaScript вставками путём встраивания .js файлов. Также они могут быть расширены C++ компонентами через Qt framework.
|
||||
|
||||
QML - это язык разметки; его средой выполнения JavaScript являлся пользовательский движок V4.
|
||||
|
||||
Код QML и JavaScript может быть скомпилирован в собственные двоичные файлы C++ с помощью Qt Quick Compiler. Для удобства разработки существует формат файла кэша QML, который динамически сохраняет скомпилированную версию QML для более быстрого старта при следующем запуске.
|
||||
|
||||
\section{Выполнение практического задания}
|
||||
Во время производственной практики была поставлена задача реализовать каркас пользовательской части альтератора и интерфейс одного из его модулей в качестве типового.
|
||||
\subsection{title}
|
||||
|
||||
% Раздел "Заключение"
|
||||
\conclusion
|
||||
В ходе выполнения курсовой работы были изучены различные модели генерации случайных графов, и проведены исследования стандартной модели Барабаши"--~Альберт. Проведенные эксперименты показали, модель случайного графа Барабаши"--~Альберт подходит для моделирования процессов, происходящих в социальных сетях и других сложных системах. Также были изучены различные модули языка программирования Python такие как: networkx(для работы с графами), random и numpy.random(для работы со случайными величинами), multiprocessing(для выполнения паралельных вычислений), а также matplotlib, matplotlib.pyplot и pylab(для построения и отображения графиков).
|
||||
|
||||
|
||||
|
||||
% Список литературы
|
||||
\bibliographystyle{gost780uv}
|
||||
\bibliography{thesis}
|
||||
|
||||
% Окончание основного документа и начало приложений
|
||||
% Каждая последующая секция документа будет являться приложением
|
||||
|
||||
\appendix
|
||||
\section{Текст программы}\label{app:program}
|
||||
В этом приложении приведён полный текст реализации модели Барабаши"--~Альберт.
|
||||
\begin{minted}{python}
|
||||
|
||||
\end{minted}
|
||||
\end{document}
|
Loading…
x
Reference in New Issue
Block a user